docs: overhaul rover documentation

This commit is contained in:
chfriedrich98
2025-06-25 13:03:46 +10:00
committed by Hamish Willee
parent ee3708ca82
commit 22f4222795
48 changed files with 886 additions and 1722 deletions
-14
View File
@@ -1,14 +0,0 @@
# Ackermann Rovers
<Badge type="tip" text="PX4 v1.16" /> <Badge type="warning" text="Experimental" />
An _Ackermann rover_ controls its direction by pointing the front wheels in the direction of travel — the [Ackermann steering 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.
::: info
PX4 does not require that the vehicle uses the Ackermann geometry and will work with any front-steering rover.
:::
![Axial Trail Honcho](../../assets/airframes/rover/rover_ackermann/axial_trail_honcho.png)
See [Configuration/Tuning](../config_rover/ackermann.md) to set up your rover and [Drive Modes](../flight_modes_rover/ackermann.md) for the supported flight (aka drive) modes.
-85
View File
@@ -1,85 +0,0 @@
# Aion Robotics R1 UGV
<Badge type="tip" text="PX4 v1.15" />
The [Aion R1](https://www.aionrobotics.com/) vehicle was chosen to test and improve the differential drive support for PX4, and to improve driver support for Roboclaw Motor Controllers, such as the [RoboClaw 2x15A](https://www.basicmicro.com/RoboClaw-2x15A-Motor-Controller_p_10.html).
The documentation and driver information here should also make it easier to work with Roboclaw controllers on other vehicles, and to work with vehicles like the [Aion R6](https://www.aionrobotics.com/r6).
Currently, PX4 supports MANUAL mode for this setup.
![Aion Robotics R1 UGV](../../assets/airframes/rover/aion_r1/r1_rover_no_bg.png)
## Parts List
- [Aion R1 (Discontinued)](https://www.aionrobotics.com/)
- [Documentation](https://github-docs.readthedocs.io/en/latest/r1-ugv.html)
- [RoboClaw 2x15A](https://www.basicmicro.com/RoboClaw-2x15A-Motor-Controller_p_10.html)
- [R1 Roboclaw specifications](https://resources.basicmicro.com/aion-robotics-r1-autonomous-robot/)
- [Auterion Skynode](../companion_computer/auterion_skynode.md)
## Assembly
The assembly consists of a 3D-printed frame on which all the autopilot parts were attached.
For this build this includes an [Auterion Skynode](../companion_computer/auterion_skynode.md), connected to a Pixhawk Adapter Board that interfaces with the RoboClaw motor controllers over serial.
![R1 Assembly](../../assets/airframes/rover/aion_r1/r1_assembly.png)
::: info
If using a standard Pixhawk you could connect the RoboClaw to the Autopilot without an Adapter Board.
:::
The RoboClaw should be connected to a suitable suitable serial (UART) port on the flight controller, such as `GPS2` or `TELEM1`.
Other RoboClaw wiring is detailed in the [RoboClaw User Manual](https://downloads.basicmicro.com/docs/roboclaw_user_manual.pdf) 'Packet Serial Wiring' section and shown below (this setup has been validated for compatibility).
![Serial Wiring Encoders](../../assets/airframes/rover/aion_r1/wiring_r1.jpg)
## PX4 Configuration
### Rover Configuration
Use _QGroundControl_ for rover configuration:
1. In the [Basic Configuration](../config/index.md) section, select the [Airframe](../config/airframe.md) tab.
1. Choose **Aion Robotics R1 UGV** under the **Rover** category.
![Select Airframe](../../assets/airframes/rover/aion_r1/r1_airframe.png)
### RoboClaw Configuration
First configure the serial connection:
1. Navigate to the [Parameters](../advanced_config/parameters.md) section in QGroundControl.
- Set the [RBCLW_SER_CFG](../advanced_config/parameter_reference.md#RBCLW_SER_CFG) parameter to the serial port to which the RoboClaw is connected (such as `GPS2`).
- [RBCLW_COUNTS_REV](../advanced_config/parameter_reference.md#RBCLW_COUNTS_REV) specifies the number of encoder counts required for one wheel revolution.
This value should be left at `1200` for the tested `RoboClaw 2x15A Motor Controller`.
Adjust the value based on your specific encoder and wheel setup.
- RoboClaw motor controllers must be assigned a unique address on the bus.
The default address is 128 and you should not need to change this (if you do, update the PX4 parameter [RBCLW_ADDRESS](../advanced_config/parameter_reference.md#RBCLW_ADDRESS) to match).
::: info
PX4 does not support multiple RoboClaw motor controllers in the same vehicle — each controller needs a unique address on the bus, and there is only one parameter for setting the address in PX4 (`RBCLW_ADDRESS`).
:::
Then configure the actuator configuration:
1. Navigate to [Actuators Configuration & Testing](../config/actuators.md) in QGroundControl.
1. Select the RoboClaw driver from the list of _Actuator Outputs_.
For the channel assignments, disarm, minimum, and maximum values, please refer to the image below.
![RoboClaw QGC](../../assets/airframes/rover/aion_r1/roboclaw_actuator_config_qgc.png)
For systems with more than two motors, it is possible to assign the same function to several motors.
The reason for the unusual values, can be found in the [RoboClaw User Manual](https://downloads.basicmicro.com/docs/roboclaw_user_manual.pdf) under `Compatibility Commands` for `Packet Serial`:
```plain
Drive motor forward. Valid data range is 0 - 127. A value of 127 = full speed forward, 64 =
about half speed forward and 0 = full stop.
```
## See also
- [roboclaw](../modules/modules_driver.md#roboclaw) driver
- [Roboclaw User Manual](https://downloads.basicmicro.com/docs/roboclaw_user_manual.pdf)
-11
View File
@@ -1,11 +0,0 @@
# Differential Rovers
<Badge type="tip" text="PX4 v1.16" /> <Badge type="warning" text="Experimental" />
A differential rover's motion is controlled using a differential drive mechanism, where the left and right wheel speeds are adjusted independently to achieve the desired forward speed and yaw rate.
Forward motion is achieved by driving both wheels at the same speed in the same direction.
Rotation is achieved by driving the wheels at different speeds in opposite directions, allowing the rover to turn on the spot.
![Aion R1](../../assets/airframes/rover/aion_r1/r1_rover_no_bg.png)
See [Configuration/Tuning](../config_rover/differential.md) to set up your rover and [Drive Modes](../flight_modes_rover/differential.md) for the supported flight (aka drive) modes.
+39 -24
View File
@@ -9,42 +9,57 @@ Maintainer volunteers, [contribution](../contribute/index.md) of new features, n
![Rovers](../../assets/airframes/rover/rovers.png)
PX4 supports the following rover types:
| Rover Type | Steering |
| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [**Ackermann**](../frames_rover/ackermann.md) | Direction is controlled by pointing wheels in the direction of travel. This kind of steering is used on most commercial vehicles, including cars, trucks etc. |
| [**Differential**](../frames_rover/differential.md) | Direction is controlled by moving the left- and right-side wheels at different speeds (also know as skid or tank steering). |
| [**Mecanum**](../frames_rover/mecanum.md) | Direction is controlled by moving each mecanum wheel individually at different speeds and in different directions. |
PX4 provides support for the three most common types of rovers:
| Rover Type | Steering |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [**Ackermann**](#ackermann) | Direction is controlled by pointing wheels in the direction of travel. This kind of steering is used on most commercial vehicles, including cars, trucks etc. |
| [**Differential**](#differential) | Direction is controlled by moving the left- and right-side wheels at different speeds. |
| [**Mecanum**](#mecanum) | Direction is controlled by moving each mecanum wheel individually at different speeds and in different directions. |
The supported frames can be seen in [Airframes Reference > Rover](../airframes/airframe_reference.md#rover).
## Flashing the Rover Build
## Ackermann
Rovers use a custom build that must be flashed onto your flight controller instead of the default PX4 build:
<Badge type="tip" text="PX4 v1.16" /> <Badge type="warning" text="Experimental" />
1. First build the rover firmware for your flight controller from the `main` branch (there is no release build, so you can't just select this build from QGroundControl).
An Ackermann rover controls its direction by pointing the front wheels in the direction of travel — the [Ackermann steering 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.
To build for rover with the `make` command, replace the `_default` suffix with `_rover`.
For example, to build rover for px4_fmu-v6x boards, you would use the command:
::: info
PX4 does not require that the vehicle uses the Ackermann geometry and will work with any front-steering rover.
:::
```sh
make px4_fmu-v6x_rover
```
![Axial Trail Honcho](../../assets/airframes/rover/axial_trail_honcho.png)
::: info
You can also enable the modules in default builds by adding these lines to your [board configuration](../hardware/porting_guide_config.md) (e.g. for fmu-v6x you might add them to [`main/boards/px4/fmu-v6x/default.px4board`](https://github.com/PX4/PX4-Autopilot/blob/main/boards/px4/fmu-v6x/default.px4board)):
## Differential
```sh
CONFIG_MODULES_ROVER_ACKERMANN=y
CONFIG_MODULES_ROVER_DIFFERENTIAL=y
CONFIG_MODULES_ROVER_MECANUM=y
```
<Badge type="tip" text="PX4 v1.16" /> <Badge type="warning" text="Experimental" />
Note that adding the rover modules may lead to flash overflow, in which case you will need to disable modules that you do not plan to use (such as those related to multicopter or fixed wing).
:::
A differential rover's motion is controlled using a differential drive mechanism, where the left and right wheel speeds are adjusted independently to achieve the desired forward speed and yaw rate.
Forward motion is achieved by driving both wheels at the same speed in the same direction.
Rotation is achieved by driving the wheels at different speeds in opposite directions, allowing the rover to turn on the spot.
2. Load the **custom firmware** that you just built onto your flight controller (see [Loading Firmware > Installing PX4 Main, Beta or Custom Firmware](../config/firmware.md#installing-px4-main-beta-or-custom-firmware)).
![Aion R1](../../assets/airframes/rover/aion_r1/r1_rover_no_bg.png)
::: info
The differential setup also work for rovers with skid or tank steering.
:::
## Mecanum
<Badge type="tip" text="PX4 v1.16" /> <Badge type="warning" text="Experimental" />
A Mecanum rover is a type of mobile robot that uses Mecanum wheels to achieve omnidirectional movement. These wheels are unique because they have rollers mounted at a 45-degree angle around their circumference, allowing the rover to move not only forward and backward but also side-to-side and diagonally without needing to rotate first.
Each wheel is driven by its own motor, and by controlling the speed and direction of each motor, the rover can move in any direction or spin in place.
![Mecanum rover](../../assets/airframes/rover/rover_mecanum.png)
## See Also
- [Drive Modes](../flight_modes_rover/index.md).
- [Configuration/Tuning](../config_rover/index.md)
- [Complete Vehicles](../complete_vehicles_rover/index.md)
## Simulation
-10
View File
@@ -1,10 +0,0 @@
# Mecanum Rovers
<Badge type="tip" text="PX4 v1.16" /> <Badge type="warning" text="Experimental" />
A Mecanum rover is a type of mobile robot that uses Mecanum wheels to achieve omnidirectional movement. These wheels are unique because they have rollers mounted at a 45-degree angle around their circumference, allowing the rover to move not only forward and backward but also side-to-side and diagonally without needing to rotate first.
Each wheel is driven by its own motor, and by controlling the speed and direction of each motor, the rover can move in any direction or spin in place.
![Mecanum rover](../../assets/airframes/rover/rover_mecanum/rover_mecanum.png)
See [Configuration/Tuning](../config_rover/mecanum.md) to set up your rover and [Drive Modes](../flight_modes_rover/mecanum.md) for the supported flight (aka drive) modes.