Skip to content

(Deprecated) Rover Position Control

WARNING

This information applies to the original generic rover module that was derived from the fixed wing controller. It has been replaced with new modules for Ackermann and Differential-steering rovers. This module is no longer supported and will receive no updates.

PX4 supports rovers (Unmanned Ground Vehicles - UGVs) with ackermann and differential steering.

This section contains build logs/instructions for assembling as well as configuring a number of UGV frames.

Traxxas Rover Picture

Rover Types

PX4 supports rovers with:

  • Differential steering: direction is controlled by moving the left- and right-side wheels at different speeds.

    This kind of steering commonly used on bulldozers, tanks, and other tracked vehicles.

  • Ackermann steering: direction is controlled by pointing wheels in the direction of travel (ackermann geometry compensates for the fact that wheels on the inside and outside of the turn move at different rates). This kind of steering is used on most commercial vehicles, including cars, trucks etc.

The supported frames can be seen in Airframes Reference > Rover: these are the frames like Generic Ground Vehicle (Deprecated) that include "(Deprecated)" in their name.

How to Configure a Rover

Ackermann Steering Configuration

Setting up a rover with Ackermann steering is straightforward:

  1. In the Airframe configuration, select the Generic Ground Vehicle (Deprecated).

    Select Ackermann steered airframe

    Select the Apply and Restart button.

  2. Open the Actuators Configuration & Testing to map the steering and throttle functions to flight controller outputs.

Differential Steering Configuration

  1. In the Airframe configuration, select either the Aion Robotics R1 UGV or NXP Cup car: DF Robot GPX (Deprecated)

    Select Differential steered airframe

Select the Apply and Restart button.

  1. Open the Actuators Configuration & Testing and map the left and right motor functions to flight controller outputs.

Simulation

Gazebo Classic provides simulations for both types of steering:

Drive Modes (Rover)

Flight modes (or more accurately "Drive modes" for ground vehicles) provide autopilot support to make it easier to manually drive the vehicle, to execute autonomous missions, or to defer control to an external system.

PX4 ground vehicles using the deprecated rover position control module only support manual mode, mission mode and offboard mode (other modes may be offered in a ground station, but these all behave just like manual mode).

Manual Mode

Manual mode is the only manual mode for ground vehicles on PX4, and requires a manual controller (RC controller, gamepad, joystick etc.).

In this mode, motors are stopped when RC control sticks are centered. To move the vehicle you move the sticks outside of the center.

As soon as you release the control sticks they will return to the center deadzone. This will turn off the motors and center the wheels. There is no active braking, so the vehicle may continue to move until its momentum dissipates.

Mission Mode

Mission mode is an automatic mode that causes the vehicle to execute a predefined autonomous mission plan that has been uploaded to the flight controller. The mission is typically created and uploaded with a Ground Control Station (GCS) application, such as QGroundControl.

Offboard Mode

Offboard mode causes the vehicle to obey position, velocity, or attitude, setpoints provided over MAVLink. Not all setpoint types make sense for a ground vehicle, or are supported.

INFO

This mode is intended for vehicle control from companion computers and ground stations!

Further Information

Traxxas Stampede VXL

This vehicle was chosen to understand how a Pixhawk could be used for wheeled platforms. We chose to use a Traxxas vehicle as they are very popular and it is a very strong brand in the RC community. The idea was to develop a platform that allows for easy control of wheeled UGVs with an autopilot.

Traxxas Stampede VXL

Parts List

Assembly

The assembly consists of a wooden frame on which all the autopilot parts were attached. Tests showed that a better vibration insulation should be used, especially for the Pixhawk and the Flow module.

Stampede Chassis

Wooden Panel Top

Wooden Panel Bottom

Traxxas Stampede Final Assembly

Side View Final Assembly

Wodden panel fixture

For this particular mounting we chose to use the clip supplied with the rover to attach the upper plate. For this, two supports were 3D printed. The CAD files are provided here.

WARNING

It is HIGHLY RECOMMENDED to set the ESC in training mode (see Traxxas Stampede Manual), which reduces power to 50%.

Output Connections

PWM OutputActuator
MAIN2Steering servo
MAIN4Throttle (ESC input)

Configuration

Rovers are configured using QGroundControl in the same way as any other vehicle.

The main rover-specific configuration is setting the correct frame:

  1. Switch to the Basic Configuration section in QGroundControl
  2. Select the Airframe tab.
  3. Scroll down the list to find the Rover icon.
  4. Choose Traxxas stampede vxl 2wd from the drop down list.

Select Airframe

Usage

At the current time, PX4 only supports Mission and Manual modes when a RC remote is connected. To use the mission mode, first upload a new mission to the vehicle with QGC. Then, BEFORE ARMING, select MISSION and then arm.

WARNING

It is very important to do a mission composed *only** of normal waypoints (i.e. no takeoff waypoints etc.) and it is crucial to set the waypoint height of **every** waypoint to 0 for correct execution. Failing to do so will cause the rover to continuously spin around a waypoint.

A correct mission setup looks as follows:

mission

Video