Help with uXRCE : subscribe to ROS2 topics error : deserialization

Hi !
I am trying to control my drone using ROS2.

My hardware/software :

  • Pixhawk 6x V1.14.0
  • Raspberry pi3 with TELEM2 serial connection
  • uXRCE on the Raspberry
  • My PC running ROS2 on the same network as the Rasperry

I managed to :

Send an Arm command to my drone through a px4_ros_com ROS2 program using /fmu/in/vehicle_command
Get some of the /fmu/out/ topics like /fmu/out/vehicle_attitude, but some of them come with the error : [SUBSCRIBER Error ] Deserialization of data failed → Function deserialize_change

These are the topic concerned :

  • /fmu/out/position_setpoint_triplet
  • /fmu/out/vehicle_status
  • /fmu/out/vehicle_gps_position
  • /fmu/out/vehicle_local_position

When using ‘ros2 topic echo’, the same error occurs.

1 Like

Hello,
This type of problems can occur if the version of the px4_msgs package and the version of the PX4 Autopilot you are running are different.

These two libraries share the version number, can you check that you have the same version number between the px4 and the px4_msgs ? (for instance 1.14 which is the latest stable)

Hi, I have the same problem(in my case “/fmu/out/vehicle_gps_position” and “/fmu/out/vehicle_local_position”), so I checked the versions of both px4 and px4_msgs. But the problem wasn’t solved…

Hello everyone,

Thanks for the help, I’ve found the solution !

In fact i use the developer firmware in my Pixhawk (V.1.15.0 alpha), which allows me to access to all the topics mentioned except “/fmu/out/position_setpoint_triplet”.