(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.
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:
In the Airframe configuration, select the Generic Ground Vehicle (Deprecated).
Select the Apply and Restart button.
Open the Actuators Configuration & Testing to map the steering and throttle functions to flight controller outputs.
Differential Steering Configuration
In the Airframe configuration, select either the Aion Robotics R1 UGV or NXP Cup car: DF Robot GPX (Deprecated)
Select the Apply and Restart button.
- 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:
- Ackermann: ackermann rover
- Differential: r1 rover
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
- Basic Configuration > Flight Modes - How to map RC control switches to specific flight modes
- Flight Modes (Multicopter)
- Flight Modes (Fixed-wing)
- Flight Modes (VTOL)
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.
Parts List
- Traxxas Stampede All of this is used except for the top plastic cover.
- Pixhawk Mini (Discontinued)
- 3DR 10S Power Module
- 3DR 433MHz Telemetry Module (EU)
- Spektrum Dxe Controller or other PX4-compatible remotes
- Spektrum Quad Race Serial Receiver w/Diversity
- PX4Flow (Deprecated)
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.
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 Output | Actuator |
---|---|
MAIN2 | Steering servo |
MAIN4 | Throttle (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:
- Switch to the Basic Configuration section in QGroundControl
- Select the Airframe tab.
- Scroll down the list to find the Rover icon.
- Choose Traxxas stampede vxl 2wd from the drop down list.
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: