uORB message ids missing

I’ve been following the guide to setup up PX4-ROS 2 bridge here: ROS 2 User Guide (PX4-ROS 2 Bridge) | PX4 User Guide, as well as the following offboard control example. I’ve been tasked with getting px4_sitl_rtps up and running with Ubuntu Jammy 22.04 and ROS 2 Humble. Much of the documentation is only updated to Ubuntu 20.04 but I’ve been following as closely as possible, I don’t have the option of using another version of Ubuntu or ROS 2.

I’m able to successfully run “make px4_sitl_rtps gazebo”, however when I try to launch the micrortps_client in another terminal (after sourcing my ros distro), I run into the following error:

terminate called after throwing an instance of ‘eprosima::fastcdr::exception::BadParamException’
** what(): Unexpected byte value in Cdr::deserialize(bool), expected 0 or 1**

The various forums I’ve seen have suggested that there might be issue with one or more messages in the uorb_rtps_message_ids.yaml files as well as the urtps_bridge yaml files. I’ve made the changes to the topics in the documentation regarding trajectory set point, vehicle command, and offboard control in my ~/px4_ros_com_ros2/src/px4_ros_com/templates directory, however the uorb_rtps_message_ids.yaml file is missing in the PX4-Autopilot/msg/tools directory. I thought that the necessary files would be created during compilation, and I’m having trouble navigating manual generation.

Has anyone else had the same issue? Apologies for the rough question/lack of detail, it’s my first task at my first job out of college and I’m navigating a new area. I can provide more detail/output if needed, I would appreciate anyone willing to try and help!

Hello Graham. I am facing the same issue. I followed the same guide. Did you solve it?

I have Ubuntu 20.04 and the error is equal

I changed a number of things and I’m no longer getting this error. I believe using a newer version of FastDDS helps, instead of using version 2.0.0, I cloned 2.5.2.

Now when I run make px4_sitl_rtps gazebo and I start the micrortps_agent after sourcing in another terminal and I start the sensor combined listener after sourcing in another terminal, it seems that I’m not getting a publisher match and I get no output.

1 Like

I am facing the same issue. I managed to get rid of the “Cdr::deserialze(bool), expected 0 or 1” error following px4_sitl_rtps doesn't work with px4_ros_com micrortps_bridge · Issue #19917 · PX4/PX4-Autopilot · GitHub, but cannot yet receive messages on any topic although the agent seems to be running properly.