Publish position setpoints in Body coordinate frame using Mavros


Hello, I hope I am posting in the right section.

I am a relatively new user of mavros and px4, and I am trying to publish positions setpoints by publishing into the setpoint_position/local topic. I got started using the optical flow iris gazebo model and the Python Offboard examples on (using a slightly modified version of mavros_test_common to disable the GPS and home position checks).

I am trying to send setpoints relative to the current position of the drone. I thought of using subscribers to read the current local pose and publishing the setpoints relative to those but it seems very convoluted. I suspect changing the frame of reference to be body fixed should be simpler.

I am quite confused about the current coordinate frames used to publish the setpoints. At the moment positive x seems to correspond to North, positive y to West and positive z to Up, which does not correspond to any coordinate frames I ve encountered. In the example, the frame_id parameter is set to “base_footprint”, but I have tested with any other string and it yields the same results.

What process should I follow to change the frame of reference to body fixed? Is there any example python code available that I can follow?

Maybe using setpoint_raw messages would work better, but I did not find a resource listing the bitmasks that should be used.

Thanks for your help.

1 Like

The coordination is on the pixhawk PCB, it has its own coordination system. I’am also learning how to set point.