# Rovers (experimental)

:::warning Support for rover is [experimental](..#experimental-vehicles).

* Does not have a maintainer.
* Not regularly tested by the core development team.
* Limited support for different types of vehicles.

Maintainer volunteers, [contribution](../contribute) of new features, new frame configurations, or other improvements would all be very welcome! :::

PX4 supports rovers (Unmanned Ground Vehicles - UGVs) with [ackermann and differential](#rover-types) steering.

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

![Traxxas Rover Picture](https://4155462212-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LArEa7z2SPawfl3HpCD%2Fuploads%2Fgit-blob-bd55b0c7d54f0e0d321073bc4899a79015b3caa7%2Ffinal_side.jpg?alt=media)

## 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](https://en.wikipedia.org/wiki/Ackermann_steering_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](../airframe_reference#rover).

## How to Configure a Rover

### Ackermann Steering Configuration

Setting up a rover with Ackermann steering is straightforward:

1.  In the [Airframe](../config/airframe) configuration, select the _Generic Ground Vehicle_.

    ![Select Ackermann steered airframe](https://4155462212-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LArEa7z2SPawfl3HpCD%2Fuploads%2Fgit-blob-3e1a78bf9054b31c5a9aaa15c4ed07b72882c0e6%2Fairframe_rover_ackermann.png?alt=media)

    Select the **Apply and Restart** button.
2. Open the [Actuators Configuration & Testing](../config/actuators) to map the steering and throttle functions to flight controller outputs.

### Differential Steering Configuration

1.  In the [Airframe](../config/airframe) configuration, select either the _Aion Robotics R1 UGV_ or _NXP Cup car: DF Robot GPX_

    ![Select Differential steered airframe](https://4155462212-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LArEa7z2SPawfl3HpCD%2Fuploads%2Fgit-blob-3acff5d95309f62fe5ebe290a929fed0b2f4350a%2Fairframe_rover_aion.png?alt=media)

Select the **Apply and Restart** button.

1. Open the [Actuators Configuration & Testing](../config/actuators) and map the left and right motor functions to flight controller outputs.

## Simulation

[Gazebo Classic](../development/simulation/sim_gazebo_classic) provides simulations for both types of steering:

* Ackermann: [ackermann rover](../../development/simulation/sim_gazebo_classic/gazebo_vehicles#ackermann-ugv)
* Differential: [r1 rover](../../development/simulation/sim_gazebo_classic/gazebo_vehicles#differential-ugv)

## Videos

This video shows the [Traxxas Stampede Rover](frames_rover/traxxas_stampede) (an Ackermann vehicle).

@[youtube](https://youtu.be/N3HvSKS3nCw)
