I am trying to work with DDS on ROSBOT XL (ROS2 Humble version) so I can run some heavy algorithms from my laptop (Ubuntu 22.04 with ROS2 humble installed) integrated with the robot. I have already installed CycloneDDS on both the ROSBOT XL and my laptop. They are both on the same wifi network and I am also able to ping from my laptop to robot and vice versa. But when I run the command “ros2 topic list”, it shows all the topics only in the robot, but not on my laptop. Can someone please help in this regard? I am not sure what am i missing here.
Yes I am using the docker (rosbot-xl-autonomy). So basically I follow these commands to start the rosbot:
>cd rosbot-xl-autonomy
>just start-rosbot
Then when I open another terminal I view the ros2 topic list and I can see all the topics here. I suppose, through DDS, the robot and my laptop can connect and show me the same topic list on my laptop too. Please correct me if I am wrong.
Sending ROS data and DDS configuration
Docker sends data as root by default, which causes problems with data transfer. We’ve included several ready-made configurations in snaps, including the recommended one: udp (multicast), which addresses this issue by running nodes as root.
sudo snap set <snap> ros.transport=udp # udp is default configuration
Recommendation
I encourage you to use the rosbot-autonomy repository, preferably from the main branch.
This is currently the easiest configuration to run, with the new Husarion OS, which uses snaps. There’s no need to reinstall the entire system; you can install the rosbot and husarion-rplidar snaps.
Thanks a lot Mr. Rafal! I have successfully launched gazebo environment and also RViz2 with rosbot using the snap. Can I also include some dynamic obstacles in the same gazebo environment? Also, I want to apply some algorithms like reinforcement learning for navigation or modify the existing controllers for better obstacle avoidance. Kindly advise if it is possible using the snap.
Hi @Sheeba,
Gazebo simulation is only possible by building the code from source rosbot_ros. It’s possible to add additional objects to Gazebo, including dynamic actors. However, I encourage you to explore Gazebo’s capabilities.
In the case of RL issues, I have no experience and can’t provide anything interesting.