PX4 Rover *Indoor* Offboard control

For anybody in the future! After some serious digging we found a solution. For PX4 1.12.3, it looks like Rover only supports velocity control in OFFBOARD mode with no GPS, with all other controls (mission and position) requiring GPS enabled. This is detailed in this PR: Support offboard velocity setpoints for rover by Jaeyoung-Lim · Pull Request #13225 · PX4/PX4-Autopilot · GitHub

However you must send velocity messages via SET_POSITION_TARGET_LOCAL_NED with position and acceleration ignore flags set. Working with mavros, you will need to send PositionTarget messages via setpoint_raw/local rather than setpoint_velocity. The control_velocity function within the source makes this clearer: PX4-Autopilot/RoverPositionControl.cpp at v1.12.3 · PX4/PX4-Autopilot · GitHub

Note however that there seems to be an update on the horizon ([Project tracker] Rover control improvements · Issue #19956 · PX4/PX4-Autopilot · GitHub) so this might change for future releases!

3 Likes