Good morning everyone
I am trying to create a RTPS communication link between my Pixracer and my Rpi.
These two are connected physically with a USB to UART connection. For the moment I managed to create communication between these two sides, the topics are created successfully and the messages are exchanged as well.
Still, on agent side (Rpi), even if the messages arrive, I cannot subscribe to them (they seem to be empty).
Here the versions of the packets I use:
px4_ros_com: latest, adjusted to match Firmware msgs.
px4_msgs: the one matching Firmware msgs.
Here an output example when I start the Agent, and then I stop it after a min:
--- MicroRTPS Agent --- [ micrortps_agent ] Starting link... [ micrortps_agent ] UART transport: device: /dev/ttyUSB0; baudrate: 460800; sleep: 1us; poll: 1ms; flow_control: No --- Subscribers --- - Timesync subscriber started ----------------------- ---- Publishers ---- - BatteryStatus publisher started - Timesync publisher started - VehicleControlMode publisher started - VehicleGpsPosition publisher started - VehicleLandDetected publisher started - VehicleOdometry publisher started ----------------------- ^C[ micrortps_agent ] Interrupt signal (2) received. [ micrortps_transport ] Closed UART. [ micrortps_agent ] SENT: 522messages - 26100bytes [ micrortps_agent ] RECEIVED: 10659messages - 2063346bytes; 39417 LOOPS - 52.401 seconds - 39.38KB/s
As you can see, the messages are exchanged successfully.
Still, if I try something like:
ros2 topic echo /VehicleControlMode_PubSubTopic
on another terminal, I get no output and on the Agent terminal it does not appear “VehicleControlMode matched”, as it does normally on SITL.
Thanks in advance
I am connected to the drone with SSH over the same LAN.
If I try to issue the echo command on a generic workspace on my laptop, the topic matches and I see the data being print on the terminal.
May the SSH connection be the cause? I don’t get why the Agent doesn’t accept subs from Rpi side, but instead he listens over SSH for matching subs…