Move PX4 Guide source into /docs (#24490)

* Add vitepress tree

* Update existing workflows so they dont trigger on changes in the docs path

* Add nojekyll, package.json, LICENCE etc

* Add crowdin docs upload/download scripts

* Add docs flaw checker workflows

* Used docs prefix for docs workflows

* Crowdin obvious fixes

* ci: docs move to self hosted runner

runs on a beefy server for faster builds

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* ci: don't run build action for docs or ci changes

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* ci: update runners

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* Add docs/en

* Add docs assets and scripts

* Fix up editlinks to point to PX4 sources

* Download just the translations that are supported

* Add translation sources for zh, uk, ko

* Update latest tranlsation and uorb graphs

* update vitepress to latest

---------

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
Co-authored-by: Ramon Roche <mrpollo@gmail.com>
This commit is contained in:
Hamish Willee
2025-03-13 16:08:27 +11:00
committed by GitHub
co-authored by Ramon Roche
parent 8e6d2ebe4a
commit 88d623bedb
5176 changed files with 558771 additions and 2 deletions
+14
View File
@@ -0,0 +1,14 @@
# Ackermann Rovers
<Badge type="tip" text="main (planned for: 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.
+86
View File
@@ -0,0 +1,86 @@
# 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).
Документація та інформація про драйвери тут також повинна полегшити роботу з контролерами Roboclaw на інших транспортних засобах, а також з транспортними засобами, такими як [Aion R6](https://www.aionrobotics.com/r6).
На даний момент PX4 підтримує режим MANUAL для цієї настройки.
![Aion Robotics R1 UGV](../../assets/airframes/rover/aion_r1/r1_rover_no_bg.png)
## Список деталей
- [Aion R1 (Припинено)](https://www.aionrobotics.com/)
- [Документація](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](https://resources.basicmicro.com/aion-robotics-r1-autonomous-robot/)
- [Auterion Skynode](../companion_computer/auterion_skynode.md)
## Збірка
Збірка складається з рами, виготовленої за допомогою 3D-друку, на яку були закріплені всі частини автопілота.
Для цієї збірки це включає [Auterion Skynode](../companion_computer/auterion_skynode.md), підключений до плати адаптера Pixhawk, яка взаємодіє з контролерами руху RoboClaw через послідовний порт.
![Збірка R1](../../assets/airframes/rover/aion_r1/r1_assembly.png)
:::info
Якщо використовуєте стандартний Pixhawk, ви можете підключити RoboClaw до автопілота без плати адаптера.
:::
RoboClaw повинен бути підключений до відповідного послідовного (UART) порту на контролері польоту, такого як `GPS2` або `TELEM1`.
Інші з'єднання RoboClaw детально описані в розділі [Посібник користувача RoboClaw](https://downloads.basicmicro.com/docs/roboclaw_user_manual.pdf) "Проводка пакетної послідовної передачі даних" та показані нижче (ця настройка була перевірена на сумісність).
![Послідовне підключення енкодерів](../../assets/airframes/rover/aion_r1/wiring_r1.jpg)
## Конфігурація PX4
### Конфігурація Rover
Використовуйте _QGroundControl_ для налаштування рухомого об'єкту:
1. У розділі [Основні налаштування](../config/index.md) виберіть вкладку [Каркас](../config/airframe.md).
2. Оберіть **Aion Robotics R1 UGV** у категорії **Rover**.
![Select Airframe](../../assets/airframes/rover/aion_r1/r1_airframe.png)
### Конфігурація RoboClaw
Спочатку налаштуйте послідовне з'єднання:
1. Перейдіть до розділу [Параметри](../advanced_config/parameters.md) в QGroundControl.
- Встановіть параметр [RBCLW_SER_CFG](../advanced_config/parameter_reference.md#RBCLW_SER_CFG) на послідовний порт, до якого підключений RoboClaw (наприклад, `GPS2`).
- [RBCLW_COUNTS_REV](../advanced_config/parameter_reference.md#RBCLW_COUNTS_REV) визначає кількість лічильників енкодера, необхідних для одного оберту колеса.
Це значення повинно бути залишено на `1200` для протестованого `Контролера руху RoboClaw 2x15A`.
Відрегулюйте значення на основі вашого конкретного енкодера та налаштувань колеса.
- Контролери моторів RoboClaw повинні мати унікальну адресу на шині.
Стандартна адреса - 128, і вам не потрібно її змінювати (якщо ви це робите, оновіть параметр PX4 [RBCLW_ADDRESS](../advanced_config/parameter_reference.md#RBCLW_ADDRESS) відповідно).
:::info
PX4 не підтримує кілька контролерів моторів RoboClaw у тому ж транспортному засобі — кожен контролер повинен мати унікальну адресу на шині, і є лише один параметр для встановлення адреси в PX4 (`RBCLW_ADDRESS`).
:::
Потім налаштуйте конфігурацію приводу:
1. Перейдіть до [Конфігурації та тестування приводів](../config/actuators.md) в QGroundControl.
2. Виберіть драйвер RoboClaw зі списку _Виводів приводів_.
Для призначень каналу, роззброю, мінімальних та максимальних значень, будь ласка, звертайтеся до зображення нижче.
![RoboClaw QGC](../../assets/airframes/rover/aion_r1/roboclaw_actuator_config_qgc.png)
Для систем з більш ніж двома двигунами можливо призначити одну й ту ж функцію кільком двигунам.
Причина нестандартних значень можна знайти в [Користувацькому посібнику RoboClaw](https://downloads.basicmicro.com/docs/roboclaw_user_manual.pdf) під `Командами сумісності` для `Пакетної послідовної передачі даних`:
```plain
Приводити двигун вперед. Діапазон дійсних даних - від 0 до 127. Значення 127 = повна швидкість вперед, 64 =
приблизно напівшвидкість вперед і 0 = повна зупинка.
```
## Дивись також
- [roboclaw](../modules/modules_driver.md#roboclaw) driver
- [Посібник користувача Roboclaw](https://downloads.basicmicro.com/docs/roboclaw_user_manual.pdf)
+11
View File
@@ -0,0 +1,11 @@
# Differential Rovers
<Badge type="tip" text="main (planned for: 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.
+57
View File
@@ -0,0 +1,57 @@
# Марсохід
<LinkedBadge type="warning" text="Experimental" url="../airframes/#experimental-vehicles"/>
:::warning
Support for rover is [experimental](../airframes/index.md#experimental-vehicles).
Maintainer volunteers, [contribution](../contribute/index.md) of new features, new frame configurations, or other improvements would all be very welcome!
:::
![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. |
The supported frames can be seen in [Airframes Reference > Rover](../airframes/airframe_reference.md#rover).
## Flashing the Rover Build
Rovers use a custom build that must be flashed onto your flight controller instead of the default PX4 build:
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).
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:
```sh
make px4_fmu-v6x_rover
```
::: 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)):
```sh
CONFIG_MODULES_ROVER_ACKERMANN=y
CONFIG_MODULES_ROVER_DIFFERENTIAL=y
CONFIG_MODULES_ROVER_MECANUM=y
```
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).
:::
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)).
## Симуляція
[Gazebo](../sim_gazebo_gz/index.md) provides simulations for ackermann and differential rovers:
- [Ackermann rover](../sim_gazebo_gz/vehicles.md#ackermann-rover)
- [Differential rover](../sim_gazebo_gz/vehicles.md#differential-rover)
![Rover gazebo simulation](../../assets/airframes/rover/rover_simulation.png)
+10
View File
@@ -0,0 +1,10 @@
# Mecanum Rovers
<Badge type="tip" text="main (planned for: 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.
@@ -0,0 +1,178 @@
# (Deprecated) Rover Position Control
<LinkedBadge type="warning" text="Experimental" url="../airframes/#experimental-vehicles"/>
:::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](../frames_rover/ackermann.md) and [Differential-steering](../frames_rover/differential.md) rovers.
This module is no longer supported and will receive no updates.
:::
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](../../assets/airframes/rover/traxxas_stampede_vxl/final_side.jpg)
## 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](../airframes/airframe_reference.md#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](../config/airframe.md) configuration, select the _Generic Ground Vehicle (Deprecated)_.
![Select Ackermann steered airframe](../../assets/config/airframe/airframe_rover_ackermann.png)
Select the **Apply and Restart** button.
2. Open the [Actuators Configuration & Testing](../config/actuators.md) to map the steering and throttle functions to flight controller outputs.
### Differential Steering Configuration
1. In the [Airframe](../config/airframe.md) configuration, select either the _Aion Robotics R1 UGV_ or _NXP Cup car: DF Robot GPX (Deprecated)_
![Select Differential steered airframe](../../assets/config/airframe/airframe_rover_aion.png)
Select the **Apply and Restart** button.
1. Open the [Actuators Configuration & Testing](../config/actuators.md) and map the left and right motor functions to flight controller outputs.
## Симуляція
[Gazebo Classic](../sim_gazebo_classic/index.md) provides simulations for both types of steering:
- Ackermann: [ackermann rover](../sim_gazebo_classic/vehicles.md#ackermann-ugv)
- Differential: [r1 rover](../sim_gazebo_classic/vehicles.md#differential-ugv)
## 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](#manual-mode), [mission mode](#mission-mode) and [offboard mode](#offboard-mode) (other modes may be offered in a ground station, but these all behave just like 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.
Як тільки ви відпустите ручки керування, вони повернуться до центральної мертвої зони.
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](../flying/missions.md) 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](https://docs.qgroundcontrol.com/master/en/).
### Offboard Mode
[Offboard mode](../flight_modes/offboard.md) 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!
:::
## Подальша інформація
- [Базова конфігурація > Режими польоту](../config/flight_mode.md) - Як відповідати перемикачі керування RC конкретним режимам польоту
- [Flight Modes (Multicopter)](../flight_modes_mc/index.md)
- [Flight Modes (Fixed-wing)](../flight_modes_fw/index.md)
- [Flight Modes (VTOL)](../flight_modes_vtol/index.md)
## 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](../../assets/airframes/rover/traxxas_stampede_vxl/stampede.jpg)
### Список деталей
- [Traxxas Stampede](https://traxxas.com/products/models/electric/stampede-vxl-tsm) All of this is used except for the top plastic cover.
- [Pixhawk Mini (Discontinued)](../flight_controller/pixhawk_mini.md)
- Модуль живлення 3DR 10S
- 3DR 433MHz Telemetry Module (EU)
- [Spektrum Dxe Controller](http://www.spektrumrc.com/Products/Default.aspx?ProdId=SPM1000) or other PX4-compatible remotes
- [Spektrum Quad Race Serial Receiver w/Diversity](http://www.spektrumrc.com/Products/Default.aspx?ProdID=SPM4648)
- [PX4Flow](../sensor/px4flow.md) (Deprecated)
### Збірка
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](../../assets/airframes/rover/traxxas_stampede_vxl/stampede_chassis.jpg)
![Wooden Panel Top](../../assets/airframes/rover/traxxas_stampede_vxl/panel_top.jpg)
![Wooden Panel Bottom](../../assets/airframes/rover/traxxas_stampede_vxl/panel_bottom.jpg)
![Traxxas Stampede Final Assembly](../../assets/airframes/rover/traxxas_stampede_vxl/final_assembly.jpg)
![Side View Final Assembly](../../assets/airframes/rover/traxxas_stampede_vxl/final_side.jpg)
![Wodden panel fixture](../../assets/airframes/rover/traxxas_stampede_vxl/mounting_detail.jpg)
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](https://github.com/PX4/PX4-user_guide/raw/main/assets/airframes/rover/traxxas_stampede_vxl/plane_holders.zip).
:::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) |
### Налаштування
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](../config/index.md) section in _QGroundControl_
2. Select the [Airframe](../config/airframe.md) tab.
3. Scroll down the list to find the **Rover** icon.
4. Choose **Traxxas stampede vxl 2wd** from the drop down list.
![Select Airframe](../../assets/airframes/rover/traxxas_stampede_vxl/airframe_px4_rover_traxxas_stampede_vxl_2wd.jpg)
### Використання
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](../../assets/airframes/rover/traxxas_stampede_vxl/correct_mission.jpg)
## Відео
<iframe width="740" height="416" src="https://www.youtube.com/embed/N3HvSKS3nCw" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>