We have a Husarion Panther, and I am trying to access and visualize the topics on my laptop that is connected to the same network as the Panther.
While I can see the list of topics on the terminal, I cannot visualize them on rviz2, and when I do ros2 topic echo, I get: A message was lost!!!
When I connect to the Panther with SSH, I can echo and visualize the topics and see and read them if I connect my laptop to the robot directly with a LAN cable.
The only issue I am facing is when I try to do so by connecting to the same network via Wi-Fi.
The problem is most likely related to the configuration of a different version of the ROS distribution or a different DDS configuration. Currently, Panther is based on ROS 2 Humble and uses the rmw_cyclonedds_cpp implementation.
ROS Distribution
If you use another distribution, you need to reinstall ROS or use VM/Docker with appropriate distro.
DDS Configuration
If the distribution is the same and the problem still occurs.
Install the dds implementation package:
sudo apt install ros-humble-rmw-cyclonedds-cpp
Specify in the terminal what version you are using by:
User computer guide
In this thread I described more information about User Computer.
I will try to generalize the article about User Computer Setup Guide | Husarion in the coming days to make the instructions as general as possible for any computer.
cyclone.xml
Cyclone by default create and use cyclonedds.xml, so it is not necessary to create new one if default configuration satisfied you. However for specific platforms, may be necessary to specific communication interface (wifi / ethernet only).
We followed the steps listed here and seems to be correct except we still can’t access ROS topics from the RPi. The User Computer has the IP 10.15.20.3, internet is enabled, and am able to ping the RPi.
Do we need a cyclonedds config on the RPi outside the Docker AND on the User Computer to be able to cast the ROS topics from the RPi panther_ros docker to the User Computer?
RMW implementation
Specifying the same DDS implementation export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp is necessary to communicate between two nodes.
Cyclone configuration
If you use docker in Jetson, please clear the docker interfaces using the command docker network prune.
Please also check the available interfaces for Jetson ip addr show.
I assume that on Jetson you should create a similar file cyclonedds.xml and instead of hnet0 you should provide the correct interface related to the Ethernet port.
Then specify the DDS configuration using: