We are trying to control a drone from ROS2 over FastRTPS using the topic
VehicleAttitudeSetPoint_PubSubTopic, but our drone is failing miserably the instant we switch to OFFBOARD mode as seen in the attached video.
Taking your advice @tsc21 (from this thread) we looked at how the MAVLink message is handled and in addition went to look in Mavros how the different flags are set to reproduce the exact same sequences as when the mavlink messages are sent from Mavros. We also took the bit from the px4_ros_com offboard example for timestamp synchronisation.
But whenever we switch to OFFBOARD mode, setpoints for the body rate controllers stop being sent (you can see the red curve stutter in the video) and the drone crashes. I would have expected to still have an attitude controller running and sending setpoints to the underlying controlers, but for some reason this is not happening even after reproducing the exact same behavior (in terms of uORB topics) as when a mavlink message is sent by Mavros and received by PX4.
I also saw that other people faced the same issue without finding answers. @Andrew_Saba did you find a solution to your problem ?
What did we miss ?
PX4-Autopilotversion : 378b41a
Please find in this public Google Drive :
- A video showing the problem
- The ulog files for this flight
- The code used during this flight (spidrone_control.py, spidrone_control.yaml)