Skip to content

Basic Setup

Configure the rover frame and outputs

  1. Enable Rover support by flashing the PX4 rover build onto your flight controller. Note that this is a special build that contains rover-specific modules.

  2. In the Airframe configuration select the your rover type: Generic Rover Ackermann/Generic Rover Differential/Generic Rover Mecanum:

    QGC screenshot showing selection of the airframe 'Generic ackermann rover'

    Select the Apply and Restart button.

    INFO

    If this airframe is not displayed and you have checked that you are using rover firmware (not the default), you can alternatively enable this frame by setting the SYS_AUTOSTART parameter directly to the following value:

    Rover Type
    Ackermann51000
    Differential50000
    Mecanum52000

:::

  1. Open the Actuators Configuration & Testing to map the motor/servo functions to flight controller outputs.

That is the minimum setup to use the rover in Manual mode.

INFO

The rest of the tuning on this page is not mandatory for Manual mode, but it will have an effect on the behaviour of the rover.

WARNING

Do not skip the rest of this setup if you intend to use more sophisticated modes! All parameters will be mandatory for all subsequent modes, except those tagged as (Optional).

Geometric Parameters

First, we set up the geometric parameters of the rover:

Geometric parameters

Navigate to Parameters in QGroundControl and set the parameters in the group for your frame type.

Ackermann

  1. RA_WHEEL_BASE [m]: Measure the distance from the back to the front wheels.

  2. RA_MAX_STR_ANG [deg]: Measure the maximum steering angle.

  3. (Optional) RA_STR_RATE_LIM [deg/s]: Maximum steering rate you want to allow for your rover.

    TIP

    This value depends on your rover and use case. For bigger rovers there might be a mechanical limit that is easy to identify by steering the rover at a standstill and increasing RA_STR_RATE_LIM until you observe the steering rate to no longer be limited by the parameter. For smaller rovers you might observe the steering to be too aggressive. Set RA_STR_RATE_LIM to a low value and steer the rover at a standstill. Increase the parameter until you reach the maximum steering rate you are comfortable with.

:::

WARNING

A low maximum steering rate makes the rover worse at tracking steering setpoints, which can lead to a poor performance in the subsequent modes.

Differential

  1. RD_WHEEL_TRACK [m]: Measure the distance from the centre of the right wheel to the centre of the left wheel.

Mecanum

  1. RM_WHEEL_TRACK [m]: Measure the distance from the centre of the right wheel to the centre of the left wheel.

Speed Parameters

  1. RO_MAX_THR_SPEED [m/s]: Drive the rover at full throttle and set this parameter to the observed value of the ground speed.

    INFO

    This parameter is also used for the feed-forward term of the closed loop speed control. It will be further adjusted in the velocity tuning step.

:::

  1. (Optional) RO_ACCEL_LIM [m/s^2]: Maximum acceleration you want to allow for your rover.

    TIP

    Your rover has a maximum possible acceleration which is determined by the maximum torque the motor can supply. This may or may not be appropriate for your vehicle and use case.

    One approach to determine an appropriate value is:

    1. From a standstill, give the rover full throttle until it reaches the maximum speed.
    2. Disarm the rover and plot the measured_speed_body_x from RoverVelocityStatus.
    3. Divide the maximum speed by the time it took to reach it and set this as the value for RO_ACCEL_LIM.

    Some RC rovers have enough torque to lift up if the maximum acceleration is not limited. If that is the case:

    1. Set RO_ACCEL_LIM to a low value, give the rover full throttle from a standstill and observe its behaviour.
    2. Increase RO_ACCEL_LIM until the rover starts to lift up during the acceleration.
    3. Set RO_ACCEL_LIM to the highest value that does not cause the rover to lift up.

:::

  1. (Optional) RO_DECEL_LIM [m/s^2]: Maximum deceleration you want to allow for your rover.

    TIP

    The same considerations as in the configuration of RO_ACCEL_LIM apply.

:::

INFO

This parameter is also used for the calculation of the speed setpoint in modes that are position controlled.

(Optional) Stick Input Mapping

Input shaping can be used to adjust the default linear mapping from stick inputs [1,1] to normalized setpoints [1,1]. Applying this specifically to the steering input, can provide a smoother driving experience, by enabling the user to make small adjustments when the stick is close to the center, but still send large inputs when moving them to the edges. We provide this input shaping through the super exponential function:

δ=(fx3+x(1f))(1g)1g|x|

with:

  • δ[1,1]= Normalized steering setpoint.
  • x[1,1]= Normalized stick input.
  • f= RO_YAW_EXPO: 0 Purely linear input curve, 1 Purely cubic input curve.
  • g= RO_YAW_SUPEXPO: 0 Pure Expo function, 0.7 reasonable shape enhancement for intuitive stick feel, 0.95 very strong bent input curve only near maxima have effect.

In Manual mode we can additionally scale δ with an additional parameter r:

This scaling is useful to limit the normalized steering setpoint, if it is too aggresive for your rover in manual mode.

You can experiment with the relationships graphically using the PX4 SuperExpo Rover calculator.

INFO

In Acro, Stabilized and Position Mode, δ is instead scaled by r= RO_YAW_RATE_LIM for all rovers. This leads to a yaw rate setpoint ψ˙=δr [-RO_YAW_RATE_LIM, RO_YAW_RATE_LIM]. This parameter is setup during rate tuning.

INFO

The input shaping through RO_YAW_EXPO and RO_YAW_SUPEXPO applies for all manual modes, while RD_YAW_STK_GAIN/RM_YAW_STK_GAIN only affects full manual mode.

You can now continue the configuration process with rate tuning.

Parameter Overview

参数描述Unit
RO_MAX_THR_SPEEDSpeed the rover drives at maximum throttlem/s
RO_ACCEL_LIM(Optional) Maximum allowed accelerationm/s2
RO_DECEL_LIM(Optional) Maximum allowed decelerationm/s2
RO_YAW_EXPO(Optional) Yaw rate expo factor
RO_YAW_SUPEXPO(Optional) Yaw rate super expo factor

Ackermann Specific

参数描述Unit
RA_WHEEL_BASEWheel basem
RA_MAX_STR_ANGMaximum steering angledeg
RA_STR_RATE_LIM(Optional) Maximum allowed steering ratedeg/s

Differential Specific

参数描述Unit
RD_WHEEL_TRACKWheel trackm
RD_YAW_STK_GAIN(Optional) Yaw stick gain for Manual mode

Mecanum Specific

参数描述Unit
RM_WHEEL_TRACKWheel trackm
RM_YAW_STK_GAIN(Optional) Yaw stick gain for Manual mode