Rover Offboard: rover_speed_setpoint / rover_rate_setpoint

Hi everyone,
I’m trying to control a PX4 v1.17 rover in Offboard via ROS 2. Offboard mode is accepted, the vehicle arms, failsafe is not triggered, and my rover setpoint topics are being received — but the rover does not actuate (wheels don’t spin). Also, internal uORB throttle/steering setpoints don’t appear to be produced.

Setup / context

  • PX4: v1.17

  • Vehicle type: rover

  • ROS 2: publishing setpoints continuously (about 50 Hz)

What is being published from ROS 2

These topics are streaming:

  • /fmu/in/offboard_control_mode

    • velocity = true
  • /fmu/in/rover_speed_setpoint

    • speed_body_x ≈ 0.86
  • /fmu/in/rover_rate_setpoint

    • yaw_rate_setpoint ≈ -0.18

What PX4 sees (MAVLink console)

Using listener on PX4:

  • listener rover_speed_setpointupdates normally

  • listener rover_rate_setpointupdates normally

But:

  • listener rover_throttle_setpoint → prints only the topic header (no data / no updates)

  • listener rover_steering_setpoint → same (header only)

So it looks like PX4 receives rover_speed_setpoint and rover_rate_setpoint, but it does not generate/update rover_throttle_setpoint / rover_steering_setpoint, and there’s no actual actuation.

Vehicle state

Commander reports:

  • Armed

  • navigation mode: Offboard

  • failsafe: no

Failsafe flags snapshot during the session:

    • global_position_invalid: true

    • home_position_invalid: true

    • manual_control_signal_lost: true
      These might be acceptable for rover offboard, but I’m not sure if any of them blocks rover actuation / throttle output.

Question

  1. What conditions must be met for PX4 rover Offboard to translate rover_speed_setpoint + rover_rate_setpoint into rover_throttle_setpoint + rover_steering_setpoint?

  2. Are there specific PX4 parameters (rover, safety, offboard, navigator, actuator mapping) that can prevent throttle/steering setpoints from being generated even when offboard is accepted?

  3. What logs / uORB topics should I check to see why throttle/steering are not produced? (I can provide a .ulg log if needed.)

Any advice on what to inspect next would be appreciated.

Hi, have you tried using an external mode (see here) instead of the legacy “Offboard” mode? External modes get more testing and offer a cleaner API than “Offboard”. It’s still offboard in the sense that part of the controller is running on the ROS side and not PX4.

May I ask if you have resolved this issue? I am encountering the same problem and it is very troubling.