Describe the bug
Title: uxrce_dds_client stops publishing data after random uptime, requires flight controller reboot to recover
Description:
Describe the bug
I am using MicroXRCEAgent udp4 -p 8888 on the companion computer to stream IMU and other topics for SLAM. Everything works fine initially – I can see all topics and receive data normally. However, after a random period of successful operation (sometimes minutes, sometimes longer), all topics suddenly stop receiving data on the ROS 2 side. Running ros2 topic list still shows the topic names, but ros2 topic echo or ros2 topic hz shows no messages at all.
The problem persists even if I:
- Restart the
MicroXRCEAgent on the companion computer.
- Reboot the companion computer entirely.
The only way to restore data flow is to completely power-cycle the flight controller (or do a full reboot of the FC). After the FC boots up again, the connection and data flow work normally until the next random failure.
To Reproduce
- Set up PX4 with
uxrce_dds_client using UDP transport (udp4 -p 8888).
- Launch
MicroXRCEAgent udp4 -p 8888 on companion computer.
- Start a ROS 2 node that subscribes to topics like
/fmu/out/sensor_combined and publish /fmu/in/vehicle_visual_odometry for SLAM.
- Let the system run. After some time, the data stream stops without any error messages on the companion computer side.
Expected behavior
The data stream should continue uninterrupted, or if an error occurs, there should be a clear disconnection/reconnection message or an error log.
Actual behavior
Data stream stops silently. Agent restart does not fix it. Only FC power-cycle recovers the connection.
Flight Controller Status During Failure
I connected to the NSH console while the problem was occurring and ran uxrce_dds_client status. The output shows the client is "Running, connected", timesync is converged, and payload TX is still being reported, yet no data reaches the ROS 2 side:
nsh> uxrce_dds_client status
INFO [uxrce_dds_client] Running, connected
INFO [uxrce_dds_client] Using transport: udp
INFO [uxrce_dds_client] Agent IP: 192.168.11.10
INFO [uxrce_dds_client] Agent port: 8888
INFO [uxrce_dds_client] Custom participant: no
INFO [uxrce_dds_client] Localhost only: no
INFO [uxrce_dds_client] Payload tx: 50588 B/s
INFO [uxrce_dds_client] Payload rx: 0 B/s
INFO [uxrce_dds_client] timesync converged: true
uxrce_dds_client: cycle: 497239 events, 2840103749us elapsed, 5711.75us avg, min 97us max 1013193us 6120.769us rms
uxrce_dds_client: cycle interval: 497240 events, 127432.67us avg, min 98us max 378138561us 85807904.000us rms
This seems to indicate the client on the FC side thinks everything is normal, but no data is received by the agent.
Environment :
nsh> ver all
HW arch: CUAV_X25_EVO
PX4 git-hash: 1e2463daf5ef34d8b32907ce564699bbba98beb1
PX4 version: Release 1.16.1 (17826303)
PX4 git-branch: cuav-release/1.16.1
OS: NuttX
OS version: Release 11.0.0 (184549631)
OS git-hash: 886acbbdb4f061e5c0ce1a76afbcfa7cb7df9849
Build datetime: Mar 4 2026 09:32:27
Build uri: localhost
Build variant: default
Toolchain: GNU GCC, 10.2.1 20201103 (release)
PX4GUID: 000600000000333334373033510500290029
MCU: STM32H7[4|5]xxx, rev. V
nsh>
- Companion computer: Jetson Orin NX, Ubuntu 22.04, ROS 2 Humble
- Connection: Gigabit Ethernet switch (IP: 192.168.11.x)
Micro-XRCE-DDS-Agent version: v3.0.1
I do not have prior debugging experience with this specific issue. If you require any further information, please let me know what details I need to provide.
Flight Log / Additional Information
No response
Describe the bug
Title:
uxrce_dds_clientstops publishing data after random uptime, requires flight controller reboot to recoverDescription:
Describe the bug
I am using
MicroXRCEAgent udp4 -p 8888on the companion computer to stream IMU and other topics for SLAM. Everything works fine initially – I can see all topics and receive data normally. However, after a random period of successful operation (sometimes minutes, sometimes longer), all topics suddenly stop receiving data on the ROS 2 side. Runningros2 topic liststill shows the topic names, butros2 topic echoorros2 topic hzshows no messages at all.The problem persists even if I:
MicroXRCEAgenton the companion computer.The only way to restore data flow is to completely power-cycle the flight controller (or do a full reboot of the FC). After the FC boots up again, the connection and data flow work normally until the next random failure.
To Reproduce
uxrce_dds_clientusing UDP transport (udp4 -p 8888).MicroXRCEAgent udp4 -p 8888on companion computer./fmu/out/sensor_combinedand publish/fmu/in/vehicle_visual_odometryfor SLAM.Expected behavior
The data stream should continue uninterrupted, or if an error occurs, there should be a clear disconnection/reconnection message or an error log.
Actual behavior
Data stream stops silently. Agent restart does not fix it. Only FC power-cycle recovers the connection.
Flight Controller Status During Failure
I connected to the NSH console while the problem was occurring and ran
uxrce_dds_client status. The output shows the client is "Running, connected", timesync is converged, and payload TX is still being reported, yet no data reaches the ROS 2 side:This seems to indicate the client on the FC side thinks everything is normal, but no data is received by the agent.
Environment :
Micro-XRCE-DDS-Agentversion: v3.0.1I do not have prior debugging experience with this specific issue. If you require any further information, please let me know what details I need to provide.
Flight Log / Additional Information
No response