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
@@ -0,0 +1,167 @@
# Керування Загальним Приводом
Ви можете під'єднати довільне обладнання до невикористаних виводів PX4 і керувати ним за допомогою [Пристрою дистанційного керування](#generic-actuator-control-with-rc) або [MAVLink](#generic-actuator-control-with-mavlink) (як окремі команди, так і у [місії](#generic-actuator-control-in-missions)).
Це корисно, коли вам потрібно використовувати тип корисного навантаження, для якого немає пов’язаної команди MAVLink, або для якого PX4 не має відповідної інтеграції.
:::info
Віддавайте перевагу використанню інтегрованого апаратного забезпечення та команд MAVLink відповідно до конкретного апаратного забезпечення, наприклад для [Захватів](../peripherals/gripper.md), замість керування загальним приводом, коли це можливо.
Використання інтегрованого обладнання дозволяє оптимізувати [планування та поведінку місії](../flying/package_delivery_mission.md), оскільки місія може знати ключові факти про апаратне забезпечення, наприклад, скільки часу потрібно для запуску.
:::
## Керування загальним приводом за допомогою MAVLink
[MAV_CMD_DO_SET_ACTUATOR](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_SET_ACTUATOR) може бути використано для встановлення значення для до 6 приводів (одночасно).
Цю команду можна використовувати в [місіях](#generic-actuator-control-in-missions), створивши елемент місії «Set actuator», або як окрему команду.
Виводи, якими потрібно керувати, вказуються на екрані конфігурації [Actuators](../config/actuators.md#actuator-outputs) шляхом призначення функцій від `Peripheral via Actuator Set 1` до `Peripheral via Actuator Set 6` для бажаних [виводів приводу](../config/actuators.md#actuator-outputs).
![Налаштування виводу загального приводу в QGC](../../assets/peripherals/qgc_generic_actuator_output_setting_example.png)
`MAV_CMD_DO_SET_ACTUATOR` `param1` до `param6` контролюють виводи, пов'язані `Peripheral via Actuator Set 1` до `Peripheral via Actuator Set 6` відповідно.
Наприклад, на зображенні вище, вивід `AUX5` пов'язано з функцією `Peripheral via Actuator Set 1`.
Щоб керувати приводом, підключеним до `AUX5`, потрібно встановити значення `MAV_CMD_DO_SET_ACTUATOR.param1`.
<!-- PX4 v1.14 bug https://github.com/PX4/PX4-Autopilot/issues/21966 -->
## Керування загальним приводом за допомогою RC
За допомогою каналів пристрою дистанційного керування можна керувати до 6 PWM чи CAN виводами автопілота.
Виводи, якими потрібно керувати, вказуються на екрані конфігурації [Actuators](../config/actuators.md#actuator-outputs) шляхом призначення функцій від `RC AUX 1` до `RC AUX 6` потрібним [виводам приводу](../config/actuators.md#actuator-outputs).
Щоб зіставити певний RC канал із функцією виводу `RC AUX n` (і, отже, з її призначеним виводом), ви використовуєте параметр [RC_MAP_AUXn](../advanced_config/parameter_reference.md#RC_MAP_AUX1), який має той самий номер `n`.
Наприклад, щоб керувати приводом, приєднаним до AUX контакту 3 (скажімо), ви повинні призначити функцію виводу `RC AUX 5` виводу `AUX3`.
Потім ви можете використовувати RC канал для керування виводом `AUX3` за допомогою `RC_MAP_AUX5`.
## Керування загальним приводом у місіях
Щоб використовувати керування загальним приводом у місії, ви повинні спочатку [налаштувати виводи, якими ви хочете керувати за допомогою MAVLink](#generic-actuator-control-with-mavlink).
Потім у _QGroundControl_ ви можете встановити значення виводів приводу в місії за допомогою елементу місії **Set actuator** (це додає [MAV_CMD_DO_SET_ACTUATOR](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_SET_ACTUATOR) до завантаженого плану місії).
Важливо зазначити, що при керуванні загальним приводом ані _QGroundControl_, ані PX4 нічого не знають про апаратне забезпечення, яке запускається.
Під час обробки елемента місії PX4 просто встановить виводи відповідно до наданих значень, а потім негайно перейде до наступного елемента місії.
Якщо апаратне забезпечення вимагає часу для активації, і вам потрібно зупинитися на поточній точці маршруту, щоб це сталося, тоді вам потрібно буде спланувати місію з додатковими елементами, щоб досягти бажаної поведінки.
:::info
Це одна з причин переваги інтегрованого апаратного забезпечення!
Це дозволяє будувати місії в загальному вигляді, з будь-якою поведінкою, що залежить від апаратного забезпечення, або часом, керованим конфігурацією політного стека.
:::
Щоб використовувати загальний привід у місії:
1. Створіть елемент місії waypoint, де вам потрібна команда приводу.
2. Змініть елемент місії waypoint на елемент місії «Set actuator»:
![Елемент місії Set actuator](../../assets/qgc/plan/mission_item_editors/mission_item_select_set_actuator.png)
- Виберіть заголовок у редакторі маршрутної точки місії, щоб відкрити редактор **Select Mission Command**.
- Виберіть категорію **Advanced**, а потім пункт **Set actuator** (якщо елемента немає, спробуйте новішу версію _QGroundControl_ або щоденну збірку).
Це змінить тип елемента місії на «Set actuator».
3. Виберіть підключені приводи та встановіть їхні значення (вони нормалізовані між -1 і 1).
![Елемент місії Set actuator](../../assets/qgc/plan/mission_item_editors/set_actuator.png)
## MAVSDK (приклад скрипту)
Наступний [MAVSDK](https://mavsdk.mavlink.io/main/en/index.html) [приклад коду](https://github.com/mavlink/MAVSDK/blob/main/examples/set_actuator/set_actuator.cpp) показує, як ініціювати випуск корисного навантаження за допомогою методу [`set_actuator()`](https://mavsdk.mavlink.io/main/en/cpp/api_reference/classmavsdk_1_1_action.html#classmavsdk_1_1_action_1ad30beac27f05c62dcf6a3d0928b86e4c) плагіну MAVSDK Action.
Значення індексів в `set_actuator()` зіставляються з виводами корисного навантаження MAVLink, визначених для вашого планера.
:::info
MAVSDK надсилає MAVLink команду [MAV_CMD_DO_SET_ACTUATOR](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_SET_ACTUATOR).
:::
```cpp
#include <mavsdk/mavsdk.h>
#include <mavsdk/plugins/action/action.h>
#include <chrono>
#include <cstdint>
#include <iostream>
#include <future>
using namespace mavsdk;
void usage(const std::string& bin_name)
{
std::cerr << "Usage :" << bin_name << " <connection_url> <actuator_index> <actuator_value>\n"
<< "Connection URL format should be :\n"
<< " For TCP : tcp://[server_host][:server_port]\n"
<< " For UDP : udp://[bind_host][:bind_port]\n"
<< " For Serial : serial:///path/to/serial/dev[:baudrate]\n"
<< "For example, to connect to the simulator use URL: udp://:14540\n";
}
int main(int argc, char** argv)
{
if (argc != 4) {
usage(argv[0]);
return 1;
}
const std::string connection_url = argv[1];
const int index = std::stod(argv[2]);
const float value = std::stof(argv[3]);
Mavsdk mavsdk;
const ConnectionResult connection_result = mavsdk.add_any_connection(connection_url);
if (connection_result != ConnectionResult::Success) {
std::cerr << "Connection failed: " << connection_result << '\n';
return 1;
}
std::cout << "Waiting to discover system...\n";
auto prom = std::promise<std::shared_ptr<System>>{};
auto fut = prom.get_future();
// We wait for new systems to be discovered, once we find one that has an
// autopilot, we decide to use it.
mavsdk.subscribe_on_new_system([&mavsdk, &prom]() {
auto system = mavsdk.systems().back();
if (system->has_autopilot()) {
std::cout << "Discovered autopilot\n";
// Unsubscribe again as we only want to find one system.
mavsdk.subscribe_on_new_system(nullptr);
prom.set_value(system);
}
});
// We usually receive heartbeats at 1Hz, therefore we should find a
// system after around 3 seconds max, surely.
if (fut.wait_for(std::chrono::seconds(3)) == std::future_status::timeout) {
std::cerr << "No autopilot found, exiting.\n";
return 1;
}
// Get discovered system now.
auto system = fut.get();
// Instantiate plugins.
auto action = Action{system};
std::cout << "Setting actuator...\n";
const Action::Result set_actuator_result = action.set_actuator(index, value);
if (set_actuator_result != Action::Result::Success) {
std::cerr << "Setting actuator failed:" << set_actuator_result << '\n';
return 1;
}
return 0;
}
```
## Тестування
Корисні навантаження, які запускаються сервоприводами та іншими приводами, наприклад захватами, можна протестувати в [стані pre-arm](../getting_started/px4_basic_concepts.md#arming-and-disarming), який вимикає мотори, але дозволяє приводам рухатися.
Це безпечніше, ніж тестування, коли апарат увімкнено.
Корисне навантаження камери можна запустити та перевірити в будь-який час.
+13
View File
@@ -0,0 +1,13 @@
# Корисне навантаження та камери
Корисне навантаження – це обладнання, яке транспортується апаратом для досягнення цілей користувача або місії.
PX4 підтримує широкий спектр корисних навантажень для апаратів, включаючи камери різних типів, вантаж, прилади тощо.
Payloads are connected to [Flight Controller outputs](../getting_started/px4_basic_concepts.md#outputs-motors-servos-actuators), and can be triggered automatically in missions, manually from an RC Controller or Joystick, or from a Ground Station (via MAVLink/MAVSDK commands).
- [Payload Use Cases](../payloads/use_cases.md)
- [Місія доставки посилок](../flying/package_delivery_mission.md)
- [Generic Actuator Control](../payloads/generic_actuator_control.md)
- [Camera](../camera/index.md)
- [Gimbal \(Mount\) Configuration](../advanced/gimbal_control.md)
- [Grippers](../peripherals/gripper.md)
+59
View File
@@ -0,0 +1,59 @@
# Використання корисного навантаження
Цей розділ містить кілька загальних випадків використання "корисного навантаження дронів" та те, як вони підтримуються PX4.
## Дрони для картографування
Дрони для картографування використовують камери для знімання зображень з інтервалами у часі або відстані під час обстежень.
PX4 підтримує камери, які підключені через [MAVLink](../camera/mavlink_v2_camera.md) або до [Flight Controller Outputs](../camera/fc_connected_camera.md).
Обидва типи камер підтримують використання варіанту використання картографування, але за допомогою іншого набору команд/елементів місій MAVLink.
## Вантажні дрони (доставлення посилок)
Вантажні дрони зазвичай використовують захоплювачі, лебідки та інші механізми, щоб розвантажувати пакунки в місцях призначення.
PX4 підтримує _доставку посилок у місіях_ за допомогою [захвату](../peripherals/gripper.md).
Захоплювачі також можна активувати за допомогою [MAV_CMD_DO_GRIPPER](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_GRIPPER) команди MAVLink, або вручну за допомогою кнопки джойстика.
Встановлення та інформація про використання:
- [Захоплювач](../peripherals/gripper.md)
- [Політ > Планування місії доставки посилок](../flying/package_delivery_mission.md)
:::info
Support for winches and other release mechanisms is also intended.
Якщо вам необхідно здійснити доставлення вантажу, використовуючи апаратне забезпечення, яке ще не інтегроване, ви можете використати [Керування Загальним Приводом](../payloads/generic_actuator_control.md).
:::
## Спостереження, Пошук & Порятунок
Дрони Спостереження, Пошуку & Порятунку мають вимоги, подібні до картографічних дронів.
Основні відмінності полягають у тому, що, окрім польоту в запланованій зоні огляду, їм зазвичай потрібен хороший автономний контроль над камерою для знімання зображень і відео, і їм може знадобитися можливість працювати вдень і вночі
Використовуйте [MAVLink](../camera/mavlink_v2_camera.md), який підтримує [протокол камери MAVLink](https://mavlink.io/en/services/camera.html), оскільки це дозволяє захоплення зображень і відео, масштабування, керування сховищем, кілька камер на одному апараті та перемикання між ними тощо.
Ці камери можна контролювати як вручну з QGroundControl, так і через MAVSDK (як для [операцій автономної камери](https://mavsdk.mavlink.io/main/en/cpp/api_reference/classmavsdk_1_1_camera.html), так і в [місіях](https://mavsdk.mavlink.io/main/en/cpp/api_reference/structmavsdk_1_1_mission_1_1_mission_item.html#structmavsdk_1_1_mission_1_1_mission_item_1a0299fbbe7c7b03bc43eb116f96b48df4)).
Дивіться [MAVLink Camera](../camera/mavlink_v2_camera.md), щоб дізнатися як налаштувати камеру на роботу з MAVLink.
:::info
Камери, підключені безпосередньо до політного контролера підтримують _тільки_ активацію камери та навряд чи підходять для більшості діяльностей зі спостереження/пошуку.
:::
Пошуково-рятувальному безпілотнику також може знадобитися транспортувати вантажі, наприклад, для екстреної допомоги туристу, що застряг.
Перегляньте [Вантажні дрони](#cargo-drones-package-delivery) вище, щоб отримати інформацію про доставлення корисного вантажу.
## Сільськогосподарські дрони/Обприскування насаджень
Сільськогосподарські безпілотні літальні апарати зазвичай використовуються для картографування стану рослин, виявлення шкідників і догляду за тваринами (випасання, відстеження тощо).
Ці варіанти використання подібні до [картографування](#mapping-drones) та [спостереження, пошуку & порятунку](#surveillance-search-rescue) наведених вище.
Хоча для окремих культур/тварин можуть знадобитися спеціальні камери, інтеграція з PX4 залишається такою ж.
Сільськогосподарський дрон також можна використовувати для обприскування посівів.
У цьому випадку розпилювачем необхідно керувати як [загальним приводом](../payloads/generic_actuator_control.md):
- [Керування Загальним Приводом](../payloads/generic_actuator_control.md#generic-actuator-control-with-mavlink) пояснює, як можна під'єднати виводи політного контролера до розпилювача, щоб ним можна було керувати за допомогою MAVLink.
Більшість розпилювачів мають засоби керування для ввімкнення/вимкнення помпи; деякі також дозволяють контролювати швидкість потоку або область розпилення (тобто, керуючи формою сопла або використовуючи спінер для розподілу корисного навантаження).
- Ви можете визначити область для оприскування, використовуючи [Survey патерн](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/plan_view/pattern_survey.html), або ви можете визначити сітку для польоту, використовуючи точки маршрутів.
У будь-якому випадку важливо переконатися, що траєкторія польоту апарату та його висота забезпечують належне покриття для конкретного спрею, що використовується.
- Щоб увімкнути та вимкнути розпилювач, ви повинні додати [елемент місії "Set actuator"](../payloads/generic_actuator_control.md#generic-actuator-control-in-missions) до вашої місії до та після survey патерну.