MicroRTPS client not receiving messages from agent in hardware

Hi guys,

I am currently trying to run the offboard control example (ROS 2 Offboard Control Example | PX4 User Guide) in px4_ros_com package on actual hardware. I already succeeded in gazebo with SITL, and it works perfectly with quadcopter lifting up for 5 meters high. Now, I want to replicate the same work on hardware.

After get microRTPS agent and client started on both px4 and companion computer ends, I firstly launch the sensor_combined_listener, and everything works well. Then, I try to run offboard control example publisher. The node is running well, and in agent, the proper subscriber is matched, and correct ros topic is published.

However, this message seems have not been delivered to client. Checking the status of client, no message was received, but a lot of messages are being sent. Similarly, checking the uORB topic with listener, no change in topics too. When I check on the agent, 12670 messages have been sent, and exactly same amount of messages have been received.

What is the possible issue here?

Since the SITL works well, it should not be an issue with ROS. Also since listener can work, I don’t think it is an issue with hardware (I guess?). Most interestingly, as long as you wait for long enough time, and checking for client status, some messages (1, 2 , or maybe 3) are reported to be received.

Tried with another example publisher (debug_vector_advertiser), not working in the exact same way.

Has anyone else encountered similar issues? What does it mean by “SENT Message” in agent? Does it mean that the message already being subscribed, serialized, wrote, and sent? Or maybe any deeper level errors will not be checked when this message is sent.

Thanks.