mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-23 00:43:34 +08:00
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:
co-authored by
Ramon Roche
parent
8e6d2ebe4a
commit
88d623bedb
@@ -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).
|
||||
|
||||

|
||||
|
||||
`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»:
|
||||
|
||||

|
||||
|
||||
- Виберіть заголовок у редакторі маршрутної точки місії, щоб відкрити редактор **Select Mission Command**.
|
||||
- Виберіть категорію **Advanced**, а потім пункт **Set actuator** (якщо елемента немає, спробуйте новішу версію _QGroundControl_ або щоденну збірку).
|
||||
Це змінить тип елемента місії на «Set actuator».
|
||||
|
||||
3. Виберіть підключені приводи та встановіть їхні значення (вони нормалізовані між -1 і 1).
|
||||
|
||||

|
||||
|
||||
## 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), який вимикає мотори, але дозволяє приводам рухатися.
|
||||
|
||||
Це безпечніше, ніж тестування, коли апарат увімкнено.
|
||||
|
||||
Корисне навантаження камери можна запустити та перевірити в будь-який час.
|
||||
@@ -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)
|
||||
@@ -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 патерну.
|
||||
Reference in New Issue
Block a user