Robotics StackExchange | Archived questions

Problem reserving CacheChange in reader with different ROS_DOMAIN_IDs

Hi all

I am using ROS 2 in an academic context. We have some programmable model cars for teaching the basics of autonomous driving. In our laboratory, logically we have one local network, physically available via wired and wireless connection (using an wifi access point in bridge mode).

Currently, we have three project groups working independently. Sometimes, the students are all working at the same time. It is totally possible that one student is running a gazebo simulation on one computer, a second student is examining a stored test-run via ros bag play on his own laptop, while a third student is doing a test-drive with the model car. This means, that multiple instances of the same ROS 2 environment may be active on the various machines. They are all using different unique ROS_DOMAIN_IDs so they should be independent from each other. In fact, they are not:

For example, when one student opens rqt to observe the simulation on the very machine the simulation is running on, the control system on the model car stops receiving data from its internal sensors. This interruption only lasts for a couple of seconds, but can have devastating effects since the car may crash into the next best wall. During the interruption, this message is printed multiple times (once per publish, I guess):

Problem reserving CacheChange in reader: 01.0f.7d.26.ee.12.08.5e.01.00.00.00|0.0.12.4 -> Function processDataMsg

I can stop this from happening by pulling network cables or disabling the wifi. However, doing research and software development without internet access is not feasible nowadays. Is there any other setting I can adjust to make the ROS 2 instances truly independent? I am using ROS 2 humble on Ubuntu 22.02 with the default eProsima Fast DDS implementation.

Kind Regards
Hermann

Note: These similar questions do not describe the same problem:

Asked by fhwedel-hoe on 2022-12-20 04:15:58 UTC

Comments

Answers