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!