Rosanswers logo

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


1 Answer 1


Rosanswers logo

There is the Nodelets concept. Maybe not exactly what you are looking for, but can be of some help.

It is designed primarily for high-throughput applications and implements zero-copy mechanism to achieve high performance.

Originally posted by Boris with karma: 3060 on 2013-09-21

This answer was ACCEPTED on the original site

Post score: 1


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.