being message based, ROS allows only topic advertising/publishing/subscribing (broadcast message paradigm), and service calls (client/server paradigm).
some cognitive architectures have another paradigm, based on a shared working memory, i.e.:
- a node can write some data in the working memory;
- a node can subscribe to changes happening in the working memory, based on type of the data, content of the data, or whom is making the change;
- a node can remove some data from the working memory;
- a node can change some data in the working memory;
- a newly started node, can immediately know all data present in the working memory.
did something like this already exist in ROS? otherwise, it could be implemented on top of the already existing communication primitives, and providing a library for the clients, and one additional node for keeping the memory persistent during the session.
pros? cons?
I found myself needing such a shared memory paradigm for an application (involving high level control of the robot and planning), and instead of coding everything into my node, I'd like to decouple this concept, as it could be re-used for a zillion other different applications inside ROS.
Originally posted by fferri on ROS Answers with karma: 46 on 2013-09-21
Post score: 0