mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-23 06:36:45 +08:00
New Crowdin translations - uk (#24548)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
This commit is contained in:
@@ -10,4 +10,4 @@
|
||||
|
||||
## Дивіться також
|
||||
|
||||
- [Периферійні пристрої](../peripherals/README.md) - включає неосновні приводи, такі як захвати, парашути, тощо.
|
||||
- [Периферійні пристрої](../peripherals/README.md) - включає неосновні приводи, такі як захвати, парашути, тощо.
|
||||
@@ -129,7 +129,7 @@ The on-screen gimbal control can be used to move/test a connected MAVLink camera
|
||||
|
||||
2. Open QGroundControl and enable the on-screen camera control (Application settings).
|
||||
|
||||

|
||||

|
||||
|
||||
3. Make sure the vehicle is armed and flying, e.g. by entering with `commander takeoff`.
|
||||
|
||||
|
||||
@@ -128,21 +128,21 @@ You add some "boilerplate" code to regularly listen for changes in the [uORB Top
|
||||
|
||||
- **px4_platform_common/module_params.h** для отримання макросу `DEFINE_PARAMETERS`:
|
||||
|
||||
```cpp
|
||||
#include <px4_platform_common/module_params.h>
|
||||
```
|
||||
```cpp
|
||||
#include <px4_platform_common/module_params.h>
|
||||
```
|
||||
|
||||
- **parameter_update.h** для доступу до повідомлень uORB `parameter_update`:
|
||||
|
||||
```cpp
|
||||
#include <uORB/topics/parameter_update.h>
|
||||
```
|
||||
```cpp
|
||||
#include <uORB/topics/parameter_update.h>
|
||||
```
|
||||
|
||||
- **Subscription.hpp** для uORB C++ API підписки:
|
||||
|
||||
```cpp
|
||||
#include <uORB/Subscription.hpp>
|
||||
```
|
||||
```cpp
|
||||
#include <uORB/Subscription.hpp>
|
||||
```
|
||||
|
||||
Derive your class from `ModuleParams`, and use `DEFINE_PARAMETERS` to specify a list of parameters and their associated parameter attributes.
|
||||
Назви параметрів мають збігатися з визначеннями метаданих параметрів.
|
||||
@@ -194,7 +194,7 @@ void Module::parameters_update()
|
||||
- `_param_update_sub.updated()` повідомляє нам, чи є _будь-яке_ оновлення в uORB-повідомленні `param_update` (але не вказує, який саме параметр змінено).
|
||||
- Якщо було оновлено "деякий" параметр, ми копіюємо оновлення у `parameter_update_s` (`param_update`), щоб очистити очікуване оновлення.
|
||||
- Then we call `ModuleParams::updateParams()`.
|
||||
This "under the hood" updates all parameter attributes listed in our `DEFINE_PARAMETERS` list.
|
||||
This "under the hood" updates all parameter attributes listed in our `DEFINE_PARAMETERS` list.
|
||||
|
||||
Атрибути параметрів (`_sys_autostart` і `_att_bias_max` у цьому випадку) можна використовувати для відображення параметрів, і вони будуть оновлюватися щоразу, коли значення параметра змінюватиметься.
|
||||
|
||||
@@ -267,12 +267,12 @@ YAML meta data is intended as a full replacement for the **.c** definitions.
|
||||
- Приклад використання визначень YAML можна знайти у визначенні параметрів MAVLink: [/src/modules/mavlink/module.yaml](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/module.yaml).
|
||||
- YAML-файл реєструється у системі збірки cmake шляхом додавання
|
||||
|
||||
```cmake
|
||||
MODULE_CONFIG
|
||||
module.yaml
|
||||
```
|
||||
```cmake
|
||||
MODULE_CONFIG
|
||||
module.yaml
|
||||
```
|
||||
|
||||
до секції `px4_add_module` файлу `CMakeLists.txt` цього модуля.
|
||||
до секції `px4_add_module` файлу `CMakeLists.txt` цього модуля.
|
||||
|
||||
#### Мета-дані YAML з багатьма екземплярами (шаблонами)
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ PX4 визначає ряд [стандартних мелодій/тем](../ge
|
||||
7. Коли ви будете готові зберегти музику:
|
||||
- Натисніть **F2**, щоб дати мелодії назву та зберегти її у підпапці _/Music_ вашої інсталяції Melody Master.
|
||||
- Натисніть **F7**, прокрутіть список вихідних форматів праворуч, щоб перейти до ANSI.
|
||||
Файл буде експортовано в _кореневий каталог_ каталогу Melody Master (з такою самою назвою та розширенням типу файлу).
|
||||
Файл буде експортовано в _кореневий каталог_ каталогу Melody Master (з такою самою назвою та розширенням типу файлу).
|
||||
|
||||
8. Відкрийте файл.
|
||||
Результат може виглядати так:
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
1. Відкрийте меню QGroundControl: **Settings > Parameters > Sensor Calibration**.
|
||||
2. Параметри, розташовані в розділі, як показано нижче (або ви можете знайти їх):
|
||||
|
||||

|
||||

|
||||
|
||||
## Підсумок параметра
|
||||
|
||||
|
||||
@@ -52,80 +52,80 @@ arm-none-eabi-objcopy -O ihex build/px4_fmu-v6x_bootloader/px4_fmu-v6x_bootloade
|
||||
1. Отримайте бінарний файл, який містить завантажувальник (або від команди розробників, або [зіберіть його самостійно](#building-the-px4-bootloader)).
|
||||
|
||||
2. Get a [Debug Probe](../debug/swd_debug.md#debug-probes-for-px4-hardware).
|
||||
Підключіть зонд до комп'ютера за допомогою USB та налаштуйте `gdbserver`.
|
||||
Підключіть зонд до комп'ютера за допомогою USB та налаштуйте `gdbserver`.
|
||||
|
||||
3. Перейдіть до каталогу, що містить бінарний файл, і запустіть команду для обраного вами завантажувача в терміналі:
|
||||
|
||||
- FMUv6X
|
||||
- FMUv6X
|
||||
|
||||
```sh
|
||||
arm-none-eabi-gdb px4_fmu-v6x_bootloader.elf
|
||||
```
|
||||
```sh
|
||||
arm-none-eabi-gdb px4_fmu-v6x_bootloader.elf
|
||||
```
|
||||
|
||||
- FMUv6X-RT
|
||||
- FMUv6X-RT
|
||||
|
||||
```sh
|
||||
arm-none-eabi-gdb px4_fmu-v6xrt_bootloader.elf
|
||||
```
|
||||
```sh
|
||||
arm-none-eabi-gdb px4_fmu-v6xrt_bootloader.elf
|
||||
```
|
||||
|
||||
- FMUv5
|
||||
- FMUv5
|
||||
|
||||
```sh
|
||||
arm-none-eabi-gdb px4fmuv5_bl.elf
|
||||
```
|
||||
```sh
|
||||
arm-none-eabi-gdb px4fmuv5_bl.elf
|
||||
```
|
||||
|
||||
H7 Завантажувачі з [PX4/PX4-Autopilot](https://github.com/PX4/PX4-Autopilot) мають назву за шаблоном `*._bootloader.elf`.
|
||||
Завантажувачі з [PX4/PX4-Bootloader](https://github.com/PX4/PX4-Bootloader) мають назву за шаблоном `*_bl.elf`.
|
||||
H7 Завантажувачі з [PX4/PX4-Autopilot](https://github.com/PX4/PX4-Autopilot) мають назву за шаблоном `*._bootloader.elf`.
|
||||
Завантажувачі з [PX4/PX4-Bootloader](https://github.com/PX4/PX4-Bootloader) мають назву за шаблоном `*_bl.elf`.
|
||||
|
||||
:::
|
||||
|
||||
4. Термінал _gdb_ з'являється, і він повинен відображати такий вивід:
|
||||
|
||||
```sh
|
||||
GNU gdb (GNU Tools for Arm Embedded Processors 7-2017-q4-major) 8.0.50.20171128-git
|
||||
Copyright (C) 2017 Free Software Foundation, Inc.
|
||||
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
|
||||
This is free software: you are free to change and redistribute it.
|
||||
There is NO WARRANTY, to the extent permitted by law.
|
||||
Type "show copying" and "show warranty" for details.
|
||||
This GDB was configured as "--host=x86_64-linux-gnu --target=arm-none-eabi".
|
||||
Type "show configuration" for configuration details.
|
||||
For bug reporting instructions, please see:
|
||||
<http://www.gnu.org/software/gdb/bugs/>.
|
||||
Find the GDB manual and other documentation resources online at:
|
||||
<http://www.gnu.org/software/gdb/documentation/>.
|
||||
For help, type "help".
|
||||
Type "apropos word" to search for commands related to "word"...
|
||||
Reading symbols from px4fmuv5_bl.elf...done.
|
||||
```
|
||||
```sh
|
||||
GNU gdb (GNU Tools for Arm Embedded Processors 7-2017-q4-major) 8.0.50.20171128-git
|
||||
Copyright (C) 2017 Free Software Foundation, Inc.
|
||||
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
|
||||
This is free software: you are free to change and redistribute it.
|
||||
There is NO WARRANTY, to the extent permitted by law.
|
||||
Type "show copying" and "show warranty" for details.
|
||||
This GDB was configured as "--host=x86_64-linux-gnu --target=arm-none-eabi".
|
||||
Type "show configuration" for configuration details.
|
||||
For bug reporting instructions, please see:
|
||||
<http://www.gnu.org/software/gdb/bugs/>.
|
||||
Find the GDB manual and other documentation resources online at:
|
||||
<http://www.gnu.org/software/gdb/documentation/>.
|
||||
For help, type "help".
|
||||
Type "apropos word" to search for commands related to "word"...
|
||||
Reading symbols from px4fmuv5_bl.elf...done.
|
||||
```
|
||||
|
||||
5. Find your `<dronecode-probe-id>` by running an `ls` command in the **/dev/serial/by-id** directory.
|
||||
|
||||
6. Тепер підключіться до debug probe з наступною командою:
|
||||
|
||||
```sh
|
||||
tar ext /dev/serial/by-id/<dronecode-probe-id>
|
||||
```
|
||||
```sh
|
||||
tar ext /dev/serial/by-id/<dronecode-probe-id>
|
||||
```
|
||||
|
||||
7. Увімкніть Pixhawk за допомогою іншого USB-кабелю та під’єднайте зонд до порту `FMU-DEBUG`.
|
||||
|
||||
::: info
|
||||
Якщо ви використовуєте зонд Dronecode, вам може знадобитися зняти футляр, щоб підключитися до порту `FMU-DEBUG` (наприклад, на Pixhawk 4 це можна зробити за допомогою викрутки T6 Torx).
|
||||
::: info
|
||||
Якщо ви використовуєте зонд Dronecode, вам може знадобитися зняти футляр, щоб підключитися до порту `FMU-DEBUG` (наприклад, на Pixhawk 4 це можна зробити за допомогою викрутки T6 Torx).
|
||||
|
||||
:::
|
||||
|
||||
8. Використовуйте таку команду, щоб знайти SWD Pixhawk і підключитися до нього:
|
||||
|
||||
```sh
|
||||
(gdb) mon swdp_scan
|
||||
(gdb) attach 1
|
||||
```
|
||||
```sh
|
||||
(gdb) mon swdp_scan
|
||||
(gdb) attach 1
|
||||
```
|
||||
|
||||
9. Завантажте двійковий файл в Pixhawk:
|
||||
|
||||
```sh
|
||||
(gdb) load
|
||||
```
|
||||
```sh
|
||||
(gdb) load
|
||||
```
|
||||
|
||||
Після оновлення завантажувача ви можете [завантажити прошивку PX4](../config/firmware.md) за допомогою _QGroundControl_.
|
||||
|
||||
@@ -146,8 +146,8 @@ arm-none-eabi-objcopy -O ihex build/px4_fmu-v6x_bootloader/px4_fmu-v6x_bootloade
|
||||
|
||||
2. [Оновіть прошивку](../config/firmware.md#custom) з образом, що містить новий/потрібний завантажувач.
|
||||
|
||||
::: info
|
||||
Оновлений завантажувач може бути постачений у власній прошивці (наприклад, від команди розробників), або він може бути включений у останню головну гілку.
|
||||
::: info
|
||||
Оновлений завантажувач може бути постачений у власній прошивці (наприклад, від команди розробників), або він може бути включений у останню головну гілку.
|
||||
|
||||
:::
|
||||
|
||||
@@ -156,7 +156,7 @@ arm-none-eabi-objcopy -O ihex build/px4_fmu-v6x_bootloader/px4_fmu-v6x_bootloade
|
||||
4. [Знайдіть](../advanced_config/parameters.md) та увімкніть параметр [SYS_BL_UPDATE](../advanced_config/parameter_reference.md#SYS_BL_UPDATE).
|
||||
|
||||
5. Перезавантажте (відключіть / підключіть плату).
|
||||
Оновлення завантажувача займе лише кілька секунд.
|
||||
Оновлення завантажувача займе лише кілька секунд.
|
||||
|
||||
Зазвичай на цьому етапі ви можливо захочете [оновити прошивку](../config/firmware.md) ще раз, використовуючи правильно/ново встановлений загрузчик.
|
||||
|
||||
@@ -176,25 +176,25 @@ arm-none-eabi-objcopy -O ihex build/px4_fmu-v6x_bootloader/px4_fmu-v6x_bootloade
|
||||
1. Вставте SD-карту (це дозволяє реєструвати журнали завантаження для відлагодження будь-яких проблем).
|
||||
|
||||
2. [Оновіть програмне забезпечення](../config/firmware.md) до версії PX4 _master_ (під час оновлення програмного забезпечення перевірте **Розширені налаштування** і виберіть **Розробницьку збірку (master)** із випадаючого списку).
|
||||
_QGroundControl_ автоматично виявить, що апаратне забезпечення підтримує FMUv2 і встановить відповідне програмне забезпечення.
|
||||
_QGroundControl_ автоматично виявить, що апаратне забезпечення підтримує FMUv2 і встановить відповідне програмне забезпечення.
|
||||
|
||||

|
||||

|
||||
|
||||
Зачекайте, доки транспортний засіб перезавантажиться.
|
||||
Зачекайте, доки транспортний засіб перезавантажиться.
|
||||
|
||||
3. [Знайдіть](../advanced_config/parameters.md) та увімкніть параметр [SYS_BL_UPDATE](../advanced_config/parameter_reference.md#SYS_BL_UPDATE).
|
||||
|
||||
4. Перезавантажте (відключіть / підключіть плату).
|
||||
Оновлення завантажувача займе лише кілька секунд.
|
||||
Оновлення завантажувача займе лише кілька секунд.
|
||||
|
||||
5. Тоді знову [Оновити програмне забезпечення](../config/firmware.md).
|
||||
На цей раз _QGroundControl_ повинен автоматично визначити обладнання як FMUv3 і відповідним чином оновити програмне забезпечення.
|
||||
На цей раз _QGroundControl_ повинен автоматично визначити обладнання як FMUv3 і відповідним чином оновити програмне забезпечення.
|
||||
|
||||

|
||||

|
||||
|
||||
::: info
|
||||
Якщо апаратне забезпечення має [Помилки в кремнієвій мікросхемі](../flight_controller/silicon_errata.md#fmuv2-pixhawk-silicon-errata), воно все одно буде виявлене як FMUv2, і ви побачите, що FMUv2 було знову встановлено (у консолі).
|
||||
У цьому випадку ви не зможете встановити апаратне забезпечення FMUv3.
|
||||
::: info
|
||||
Якщо апаратне забезпечення має [Помилки в кремнієвій мікросхемі](../flight_controller/silicon_errata.md#fmuv2-pixhawk-silicon-errata), воно все одно буде виявлене як FMUv2, і ви побачите, що FMUv2 було знову встановлено (у консолі).
|
||||
У цьому випадку ви не зможете встановити апаратне забезпечення FMUv3.
|
||||
|
||||
:::
|
||||
|
||||
|
||||
@@ -92,29 +92,29 @@ ESC OneShot слід [налаштувати на використання ре
|
||||
|
||||
- Мінімальне значення для мотора (за замовчуванням: 1100 мкс) повинно забезпечувати повільний, але надійний оберт мотора, а також надійно запускати його після зупинки.
|
||||
|
||||
Ви можете підтвердити, що мотор обертається мінімально (без пропеллерів) в [TestActuator](../config/actuators. d#actuator-testing), увімкнувши повзунки, а потім переміщуючи повзунок виводу тесту для двигуна в першу позицію відключення від низу.
|
||||
Правильне значення має зробити так, що мотор обертається негайно і надійно при пересуванні повзунка зі стану роззброєності до мінімуму.
|
||||
Ви можете підтвердити, що мотор обертається мінімально (без пропеллерів) в [TestActuator](../config/actuators. d#actuator-testing), увімкнувши повзунки, а потім переміщуючи повзунок виводу тесту для двигуна в першу позицію відключення від низу.
|
||||
Правильне значення має зробити так, що мотор обертається негайно і надійно при пересуванні повзунка зі стану роззброєності до мінімуму.
|
||||
|
||||
Щоб знайти «оптимальне» мінімальне значення, пересуньте повзунок вниз (режим роззброєності).
|
||||
Потім збільшуйте значення PWM-виходу в режимі `роззброєності` невеликими інкрементами (наприклад, 1025 мкс, 1050 мкс і т. д.), доки мотор не почне надійно обертатися (краще бути трохи вище, ніж трохи нижче).
|
||||
Введіть це значення в параметр «мінімум» для всіх вихідних PWM сигналів мотора, а вихідний сигнал `роззброєності` відновіть до `1100 мкс`.
|
||||
Щоб знайти «оптимальне» мінімальне значення, пересуньте повзунок вниз (режим роззброєності).
|
||||
Потім збільшуйте значення PWM-виходу в режимі `роззброєності` невеликими інкрементами (наприклад, 1025 мкс, 1050 мкс і т. д.), доки мотор не почне надійно обертатися (краще бути трохи вище, ніж трохи нижче).
|
||||
Введіть це значення в параметр «мінімум» для всіх вихідних PWM сигналів мотора, а вихідний сигнал `роззброєності` відновіть до `1100 мкс`.
|
||||
|
||||
- Максимальне значення для мотора (за замовчуванням: `1900 мкс`) слід вибрати так, щоб збільшення значення не зробило мотор обертатися швидше.
|
||||
|
||||
Ви можете підтвердити, що мотор обертається швидко при максимальному значенні у режимі [Тестування приводів](../config/actuators.md#actuator-testing), перемістивши пов'язаний слайдер випробування вверх.
|
||||
Ви можете підтвердити, що мотор обертається швидко при максимальному значенні у режимі [Тестування приводів](../config/actuators.md#actuator-testing), перемістивши пов'язаний слайдер випробування вверх.
|
||||
|
||||
Щоб знайти "оптимальне" максимальне значення, спочатку перемістіть повзунок вниз (роззброєно).
|
||||
Потім збільште налаштування вихідної потужності PWM `вимкненої` близько до максимального значення за замовчуванням (`1900`) - мотори повинні розганятися.
|
||||
Слухайте тон мотора, коли збільшуєте максимальне значення PWM для виводу поетапно (наприклад, 1925 мкс, 1950 мкс і так далі).
|
||||
Оптимальне значення визначається в той момент, коли звук моторів не змінюється при збільшенні значення виводу.
|
||||
Введіть це значення в параметр `максимум` для всіх виводів ШІМ мотора, а також відновіть значення виводу `знято` на `1100 мкс`.
|
||||
Щоб знайти "оптимальне" максимальне значення, спочатку перемістіть повзунок вниз (роззброєно).
|
||||
Потім збільште налаштування вихідної потужності PWM `вимкненої` близько до максимального значення за замовчуванням (`1900`) - мотори повинні розганятися.
|
||||
Слухайте тон мотора, коли збільшуєте максимальне значення PWM для виводу поетапно (наприклад, 1925 мкс, 1950 мкс і так далі).
|
||||
Оптимальне значення визначається в той момент, коли звук моторів не змінюється при збільшенні значення виводу.
|
||||
Введіть це значення в параметр `максимум` для всіх виводів ШІМ мотора, а також відновіть значення виводу `знято` на `1100 мкс`.
|
||||
|
||||
- Значення виводу «знято» для мотора (за замовчуванням: `1000 мкс`) повинно зупиняти мотор і залишати його зупиненим.
|
||||
|
||||
Ви можете підтвердити це в розділі [Тестування виконавчих механізмів](../config/actuators.md#actuator-testing), перемістивши слайдер виводу тестування до фіксованого положення у нижній частині слайдера і спостерігаючи, що двигун не обертається.
|
||||
Ви можете підтвердити це в розділі [Тестування виконавчих механізмів](../config/actuators.md#actuator-testing), перемістивши слайдер виводу тестування до фіксованого положення у нижній частині слайдера і спостерігаючи, що двигун не обертається.
|
||||
|
||||
Якщо ESC обертається за замовчуванням на значенні 1000 мкс, то ESC не правильно калібрується.
|
||||
Якщо використовуєте ESC, який не може бути калібрований, вам слід зменшити значення виведення ШІМ для виводу до значення, коли мотор більше не обертається (наприклад, 950 мкс або 900 мкс).
|
||||
Якщо ESC обертається за замовчуванням на значенні 1000 мкс, то ESC не правильно калібрується.
|
||||
Якщо використовуєте ESC, який не може бути калібрований, вам слід зменшити значення виведення ШІМ для виводу до значення, коли мотор більше не обертається (наприклад, 950 мкс або 900 мкс).
|
||||
|
||||
::: info
|
||||
VTOL and fixed-wing motors do not need any special PWM configuration.
|
||||
|
||||
@@ -87,14 +87,14 @@ DNS=10.41.10.254
|
||||
|
||||
3. Введіть команди "like" до наведених нижче у _Консоль MAVLink_ (щоб записати значення у файл конфігурації):
|
||||
|
||||
```sh
|
||||
echo DEVICE=eth0 > /fs/microsd/net.cfg
|
||||
echo BOOTPROTO=fallback >> /fs/microsd/net.cfg
|
||||
echo IPADDR=10.41.10.2 >> /fs/microsd/net.cfg
|
||||
echo NETMASK=255.255.255.0 >>/fs/microsd/net.cfg
|
||||
echo ROUTER=10.41.10.254 >>/fs/microsd/net.cfg
|
||||
echo DNS=10.41.10.254 >>/fs/microsd/net.cfg
|
||||
```
|
||||
```sh
|
||||
echo DEVICE=eth0 > /fs/microsd/net.cfg
|
||||
echo BOOTPROTO=fallback >> /fs/microsd/net.cfg
|
||||
echo IPADDR=10.41.10.2 >> /fs/microsd/net.cfg
|
||||
echo NETMASK=255.255.255.0 >>/fs/microsd/net.cfg
|
||||
echo ROUTER=10.41.10.254 >>/fs/microsd/net.cfg
|
||||
echo DNS=10.41.10.254 >>/fs/microsd/net.cfg
|
||||
```
|
||||
|
||||
4. Після встановлення конфігурації мережі можна від’єднати кабель USB.
|
||||
|
||||
@@ -113,36 +113,36 @@ Note that there are many more [examples](https://netplan.io/examples/) and instr
|
||||
Для установки Ubuntu комп'ютера:
|
||||
|
||||
1. In a terminal, create and open a `netplan` configuration file: `/etc/netplan/01-network-manager-all.yaml`
|
||||
Below we do this using the _nano_ text editor.
|
||||
Below we do this using the _nano_ text editor.
|
||||
|
||||
```
|
||||
sudo nano /etc/netplan/01-network-manager-all.yaml
|
||||
```
|
||||
```
|
||||
sudo nano /etc/netplan/01-network-manager-all.yaml
|
||||
```
|
||||
|
||||
2. Скопіюйте та вставте наступну конфігураційну інформацію у файл (зверніть увагу: відступи мають значення!):
|
||||
|
||||
```
|
||||
network:
|
||||
version: 2
|
||||
renderer: NetworkManager
|
||||
ethernets:
|
||||
enp2s0:
|
||||
addresses:
|
||||
- 10.41.10.1/24
|
||||
nameservers:
|
||||
addresses: [10.41.10.1]
|
||||
routes:
|
||||
- to: 10.41.10.1
|
||||
via: 10.41.10.1
|
||||
```
|
||||
```
|
||||
network:
|
||||
version: 2
|
||||
renderer: NetworkManager
|
||||
ethernets:
|
||||
enp2s0:
|
||||
addresses:
|
||||
- 10.41.10.1/24
|
||||
nameservers:
|
||||
addresses: [10.41.10.1]
|
||||
routes:
|
||||
- to: 10.41.10.1
|
||||
via: 10.41.10.1
|
||||
```
|
||||
|
||||
Збережіть і закрийте файл.
|
||||
Збережіть і закрийте файл.
|
||||
|
||||
3. Застосуйте конфігурацію _netplan_, введіть наступну команду в термінал Ubuntu.
|
||||
|
||||
```
|
||||
sudo netplan apply
|
||||
```
|
||||
```
|
||||
sudo netplan apply
|
||||
```
|
||||
|
||||
### Комп’ютер-супутник Налаштування мережі Ethernet
|
||||
|
||||
@@ -189,9 +189,9 @@ Assuming you have already [Set up the Ethernet Network](#setting-up-the-ethernet
|
||||
|
||||
3. Запустіть QGroundControl та [визначте комунікаційний канал](https://docs.qgroundcontrol.com/master/en/SettingsView/SettingsView.html) (**Налаштування додатка > Канали зв'язку**), вказавши _адресу сервера_ та порт як IP-адресу та порт, призначений в PX4, відповідно.
|
||||
|
||||
Припускаючи, що значення встановлені так, як описано в решті цієї теми, налаштування виглядатиме наступним чином:
|
||||
Припускаючи, що значення встановлені так, як описано в решті цієї теми, налаштування виглядатиме наступним чином:
|
||||
|
||||

|
||||

|
||||
|
||||
4. Після цього QGroundControl має підключитися, якщо ви виберете це посилання.
|
||||
|
||||
@@ -205,14 +205,14 @@ Assuming you have already [Set up the Ethernet Network](#setting-up-the-ethernet
|
||||
|
||||
1. [Set up the Ethernet Network](#setting-up-the-ethernet-network) so your companion computer and PX4 run on the same network.
|
||||
2. Modify the [PX4 Ethernet Port Configuration](#px4-ethernet-network-setup) to connect to a companion computer.
|
||||
You might change the parameters [MAV_2_REMOTE_PRT](../advanced_config/parameter_reference.md#MAV_2_REMOTE_PRT) and [MAV_2_UDP_PRT](../advanced_config/parameter_reference.md#MAV_2_UDP_PRT) to `14540`, and [MAV_2_MODE](../advanced_config/parameter_reference.md#MAV_2_MODE) to `2` (Onboard).
|
||||
You might change the parameters [MAV_2_REMOTE_PRT](../advanced_config/parameter_reference.md#MAV_2_REMOTE_PRT) and [MAV_2_UDP_PRT](../advanced_config/parameter_reference.md#MAV_2_UDP_PRT) to `14540`, and [MAV_2_MODE](../advanced_config/parameter_reference.md#MAV_2_MODE) to `2` (Onboard).
|
||||
3. Дотримуйтесь інструкцій у [MAVSDK-python](https://github.com/mavlink/MAVSDK-Python), щоб установити та використовувати MAVSDK.
|
||||
|
||||
Наприклад, ваш код буде підключатися до PX4 за допомогою:
|
||||
Наприклад, ваш код буде підключатися до PX4 за допомогою:
|
||||
|
||||
```python
|
||||
await drone.connect(system_address="udp://10.41.10.2:14540")
|
||||
```
|
||||
```python
|
||||
await drone.connect(system_address="udp://10.41.10.2:14540")
|
||||
```
|
||||
|
||||
:::info
|
||||
MAVSDK can connect to the PX4 on port `14550` if you don't modify the PX4 Ethernet port configuration.
|
||||
@@ -235,38 +235,38 @@ MAVSDK can connect to the PX4 on port `14550` if you don't modify the PX4 Ethern
|
||||
1. Підключіть ваш автопілот і компаньйон комп'ютер за допомогою Ethernet.
|
||||
|
||||
2. [Start the uXRCE-DDS client on PX4](../middleware/uxrce_dds.md#starting-the-client), either manually or by customizing the system startup script.
|
||||
Note that you must use the IP address of the companion computer and the UDP port on which the agent is listening (the example configuration above sets the companion IP address to `10.41.10.1`, and the agent UDP port is set to `8888` in the next step).
|
||||
Note that you must use the IP address of the companion computer and the UDP port on which the agent is listening (the example configuration above sets the companion IP address to `10.41.10.1`, and the agent UDP port is set to `8888` in the next step).
|
||||
|
||||
3. [Start the micro XRCE-DDS agent on the companion computer](../middleware/uxrce_dds.md#starting-the-agent).
|
||||
For example, enter the following command in a terminal to start the agent listening on UDP port `8888`.
|
||||
For example, enter the following command in a terminal to start the agent listening on UDP port `8888`.
|
||||
|
||||
```sh
|
||||
MicroXRCEAgent udp4 -p 8888
|
||||
```
|
||||
```sh
|
||||
MicroXRCEAgent udp4 -p 8888
|
||||
```
|
||||
|
||||
4. Run a [listener node](../ros2/user_guide.md#running-the-example) in a new terminal to confirm the connection is established:
|
||||
|
||||
```sh
|
||||
source ~/ws_sensor_combined/install/setup.bash
|
||||
ros2 launch px4_ros_com sensor_combined_listener.launch.py
|
||||
```
|
||||
```sh
|
||||
source ~/ws_sensor_combined/install/setup.bash
|
||||
ros2 launch px4_ros_com sensor_combined_listener.launch.py
|
||||
```
|
||||
|
||||
Якщо все налаштовано правильно, в терміналі повинен відображатися наступний вивід:
|
||||
Якщо все налаштовано правильно, в терміналі повинен відображатися наступний вивід:
|
||||
|
||||
```sh
|
||||
RECEIVED SENSOR COMBINED DATA
|
||||
=============================
|
||||
ts: 855801598
|
||||
gyro_rad[0]: -0.00339938
|
||||
gyro_rad[1]: 0.00440091
|
||||
gyro_rad[2]: 0.00513893
|
||||
gyro_integral_dt: 4997
|
||||
accelerometer_timestamp_relative: 0
|
||||
accelerometer_m_s2[0]: -0.0324082
|
||||
accelerometer_m_s2[1]: 0.0392213
|
||||
accelerometer_m_s2[2]: -9.77914
|
||||
accelerometer_integral_dt: 4997
|
||||
```
|
||||
```sh
|
||||
RECEIVED SENSOR COMBINED DATA
|
||||
=============================
|
||||
ts: 855801598
|
||||
gyro_rad[0]: -0.00339938
|
||||
gyro_rad[1]: 0.00440091
|
||||
gyro_rad[2]: 0.00513893
|
||||
gyro_integral_dt: 4997
|
||||
accelerometer_timestamp_relative: 0
|
||||
accelerometer_m_s2[0]: -0.0324082
|
||||
accelerometer_m_s2[1]: 0.0392213
|
||||
accelerometer_m_s2[2]: -9.77914
|
||||
accelerometer_integral_dt: 4997
|
||||
```
|
||||
|
||||
## Дивіться також
|
||||
|
||||
|
||||
@@ -152,15 +152,15 @@ PX4 також видає підмножину інформації переві
|
||||
Типова послідовність запуску:
|
||||
|
||||
1. Увімкнення живлення.
|
||||
- Усі приводи заблоковано у беззбройному(вимкненому) положенні
|
||||
- Неможливо озброїти(збурити).
|
||||
- Усі приводи заблоковано у беззбройному(вимкненому) положенні
|
||||
- Неможливо озброїти(збурити).
|
||||
2. Перемикання безпеки натиснуто.
|
||||
- Система зараз перевіряється перед збурюванням: актуатори без збурювання можуть рухатися (наприклад, елерони).
|
||||
- Безпека системи відключена: можливість озброєння(збурення).
|
||||
- Система зараз перевіряється перед збурюванням: актуатори без збурювання можуть рухатися (наприклад, елерони).
|
||||
- Безпека системи відключена: можливість озброєння(збурення).
|
||||
3. Видається команда на озброєння(збурення).
|
||||
|
||||
- Система озброєна(збурена).
|
||||
- Усі мотори та приводи можуть рухатися.
|
||||
- Система озброєна(збурена).
|
||||
- Усі мотори та приводи можуть рухатися.
|
||||
|
||||
### COM_PREARM_MODE=Disabled та Safety Switch
|
||||
|
||||
@@ -170,15 +170,15 @@ PX4 також видає підмножину інформації переві
|
||||
Послідовність запуску така:
|
||||
|
||||
1. Увімкнення живлення.
|
||||
- Усі приводи заблоковано у беззбройному(вимкненому) положенні
|
||||
- Неможливо озброїти(збурити).
|
||||
- Усі приводи заблоковано у беззбройному(вимкненому) положенні
|
||||
- Неможливо озброїти(збурити).
|
||||
2. Перемикання безпеки натиснуто.
|
||||
- _All actuators stay locked into disarmed position (same as disarmed)._
|
||||
- Безпека системи відключена: можливість озброєння(збурення).
|
||||
- _All actuators stay locked into disarmed position (same as disarmed)._
|
||||
- Безпека системи відключена: можливість озброєння(збурення).
|
||||
3. Видається команда на озброєння(збурення).
|
||||
|
||||
- Система озброєна(збурена).
|
||||
- Усі мотори та приводи можуть рухатися.
|
||||
- Система озброєна(збурена).
|
||||
- Усі мотори та приводи можуть рухатися.
|
||||
|
||||
### COM_PREARM_MODE=Always and Safety Switch
|
||||
|
||||
@@ -189,13 +189,13 @@ PX4 також видає підмножину інформації переві
|
||||
Послідовність запуску така:
|
||||
|
||||
1. Увімкнення живлення.
|
||||
- Система зараз перевіряється перед збурюванням: актуатори без збурювання можуть рухатися (наприклад, елерони).
|
||||
- Неможливо озброїти(збурити).
|
||||
- Система зараз перевіряється перед збурюванням: актуатори без збурювання можуть рухатися (наприклад, елерони).
|
||||
- Неможливо озброїти(збурити).
|
||||
2. Перемикання безпеки натиснуто.
|
||||
- Безпека системи відключена: можливість озброєння(збурення).
|
||||
- Безпека системи відключена: можливість озброєння(збурення).
|
||||
3. Видається команда на озброєння(збурення).
|
||||
- Система озброєна(збурена).
|
||||
- Усі мотори та приводи можуть рухатися.
|
||||
- Система озброєна(збурена).
|
||||
- Усі мотори та приводи можуть рухатися.
|
||||
|
||||
### COM_PREARM_MODE=Safety(Безпека) або вимкнено(Disabled) та без перемикача безпеки(No Safety Switch)
|
||||
|
||||
@@ -205,11 +205,11 @@ PX4 також видає підмножину інформації переві
|
||||
Послідовність запуску така:
|
||||
|
||||
1. Увімкнення живлення.
|
||||
- Усі приводи заблоковано у беззбройному(вимкненому) положенні
|
||||
- Безпека системи відключена: можливість озброєння(збурення).
|
||||
- Усі приводи заблоковано у беззбройному(вимкненому) положенні
|
||||
- Безпека системи відключена: можливість озброєння(збурення).
|
||||
2. Видається команда на озброєння(збурення).
|
||||
- Система озброєна(збурена).
|
||||
- Усі мотори та приводи можуть рухатися.
|
||||
- Система озброєна(збурена).
|
||||
- Усі мотори та приводи можуть рухатися.
|
||||
|
||||
### COM_PREARM_MODE=Завжди і без зміни безпеки
|
||||
|
||||
@@ -219,11 +219,11 @@ PX4 також видає підмножину інформації переві
|
||||
Послідовність запуску така:
|
||||
|
||||
1. Увімкнення живлення.
|
||||
- Система зараз перевіряється перед збурюванням: актуатори без збурювання можуть рухатися (наприклад, елерони).
|
||||
- Безпека системи відключена: можливість озброєння(збурення).
|
||||
- Система зараз перевіряється перед збурюванням: актуатори без збурювання можуть рухатися (наприклад, елерони).
|
||||
- Безпека системи відключена: можливість озброєння(збурення).
|
||||
2. Видається команда на озброєння(збурення).
|
||||
- Система озброєна(збурена).
|
||||
- Усі мотори та приводи можуть рухатися.
|
||||
- Система озброєна(збурена).
|
||||
- Усі мотори та приводи можуть рухатися.
|
||||
|
||||
### Параметри
|
||||
|
||||
|
||||
@@ -102,11 +102,11 @@ PX4 підтримує два процедури калібрування:
|
||||
|
||||
9. Відкрийте вікно терміналу в каталозі **Firmware/Tools** і запустіть сценарій калібрування python:
|
||||
|
||||
```sh
|
||||
python process_sensor_caldata.py <full path name to .ulog file>
|
||||
```
|
||||
```sh
|
||||
python process_sensor_caldata.py <full path name to .ulog file>
|
||||
```
|
||||
|
||||
Буде створено файл **.pdf**, у якому відображатимуться вимірювані дані та підгонка кривої для кожного датчика, а також файл **.params**, що містить параметри калібрування.
|
||||
Буде створено файл **.pdf**, у якому відображатимуться вимірювані дані та підгонка кривої для кожного датчика, а також файл **.params**, що містить параметри калібрування.
|
||||
|
||||
10. Увімкніть плату, підключіть _QGroundControl_ та завантажте параметри зі створеного файлу **.params** на плату за допомогою _QGroundControl_. Відсоток виконання друкується на системній консолі під час калібрування.
|
||||
|
||||
|
||||
@@ -152,29 +152,29 @@ Three axis body fixed magnetometer data at a minimum rate of 5Hz is required to
|
||||
Magnetometer data fusion can be configured using [EKF2_MAG_TYPE](../advanced_config/parameter_reference.md#EKF2_MAG_TYPE):
|
||||
|
||||
0. Automatic:
|
||||
- The magnetometer readings only affect the heading estimate before arming, and the whole attitude after arming.
|
||||
- Heading and tilt errors are compensated when using this method.
|
||||
- Incorrect magnetic field measurements can degrade the tilt estimate.
|
||||
- The magnetometer biases are estimated whenever observable.
|
||||
- The magnetometer readings only affect the heading estimate before arming, and the whole attitude after arming.
|
||||
- Heading and tilt errors are compensated when using this method.
|
||||
- Incorrect magnetic field measurements can degrade the tilt estimate.
|
||||
- The magnetometer biases are estimated whenever observable.
|
||||
1. Magnetic heading:
|
||||
- Only the heading is corrected.
|
||||
The tilt estimate is never affected by incorrect magnetic field measurements.
|
||||
- Tilt errors that could arise when flying without velocity/position aiding are not corrected when using this method.
|
||||
- The magnetometer biases are estimated whenever observable.
|
||||
- Only the heading is corrected.
|
||||
The tilt estimate is never affected by incorrect magnetic field measurements.
|
||||
- Tilt errors that could arise when flying without velocity/position aiding are not corrected when using this method.
|
||||
- The magnetometer biases are estimated whenever observable.
|
||||
2. Deprecated
|
||||
3. Deprecated
|
||||
4. Deprecated
|
||||
5. None:
|
||||
- Magnetometer data is never used.
|
||||
This is useful when the data can never be trusted (e.g.: high current close to the sensor, external anomalies).
|
||||
- The estimator will use other sources of heading: [GPS heading](#yaw-measurements) or external vision.
|
||||
- When using GPS measurements without another source of heading, the heading can only be initialized after sufficient horizontal acceleration.
|
||||
See [Estimate yaw from vehicle movement](#yaw-from-gps-velocity) below.
|
||||
- Magnetometer data is never used.
|
||||
This is useful when the data can never be trusted (e.g.: high current close to the sensor, external anomalies).
|
||||
- The estimator will use other sources of heading: [GPS heading](#yaw-measurements) or external vision.
|
||||
- When using GPS measurements without another source of heading, the heading can only be initialized after sufficient horizontal acceleration.
|
||||
See [Estimate yaw from vehicle movement](#yaw-from-gps-velocity) below.
|
||||
6. Init only:
|
||||
- Magnetometer data is only used to initialize the heading estimate.
|
||||
This is useful when the data can be used before arming but not afterwards (e.g.: high current after the vehicle is armed).
|
||||
- After initialization, the heading is constrained using other observations.
|
||||
- Unlike mag type `None`, when combined with GPS measurements, this method allows position controlled modes to run directly during takeoff.
|
||||
- Magnetometer data is only used to initialize the heading estimate.
|
||||
This is useful when the data can be used before arming but not afterwards (e.g.: high current after the vehicle is armed).
|
||||
- After initialization, the heading is constrained using other observations.
|
||||
- Unlike mag type `None`, when combined with GPS measurements, this method allows position controlled modes to run directly during takeoff.
|
||||
|
||||
The following selection tree can be used to select the right option:
|
||||
|
||||
@@ -236,7 +236,7 @@ The following selection tree can be used to select the right option:
|
||||
|
||||
2. Витягніть `.ulg` файл журналу за допомогою, наприклад, [QGroundControl: Аналізувати > Завантажити журнал](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/analyze_view/log_download.html)
|
||||
|
||||
Той самий файл журналу можна використовувати для налаштування оцінювача вітру багатовертольотника [multirotor wind estimator](#mc_wind_estimation_using_drag).
|
||||
Той самий файл журналу можна використовувати для налаштування оцінювача вітру багатовертольотника [multirotor wind estimator](#mc_wind_estimation_using_drag).
|
||||
|
||||
:::
|
||||
|
||||
@@ -452,8 +452,8 @@ PX4 дозволяє постійно об'єднувати дальномер
|
||||
|
||||
1. Проведіть польоти один раз у режимі позиції [Position mode](../flight_modes_mc/position.md) повторно вперед/назад/ліворуч/праворуч/вгору/вниз між спокоєм і максимальною швидкістю (найкращі результати отримуються, коли цей тест проводиться в спокійних умовах).
|
||||
2. Extract the **.ulg** log file using, for example, [QGroundControl: Analyze > Log Download](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/analyze_view/log_download.html)
|
||||
::: info
|
||||
The same **.ulg** log file can also be used to tune the [static pressure position error coefficients](#correction-for-static-pressure-position-error).
|
||||
::: info
|
||||
The same **.ulg** log file can also be used to tune the [static pressure position error coefficients](#correction-for-static-pressure-position-error).
|
||||
|
||||
:::
|
||||
3. Використовуйте журнал зі сценарієм Python [mc_wind_estimator_tuning.py](https://github.com/PX4/PX4-Autopilot/tree/main/src/modules/ekf2/EKF/python/tuning_tools/mc_wind_estimator), щоб отримати оптимальний набір параметрів.
|
||||
|
||||
@@ -38,14 +38,14 @@ PX4 підтримує точне приземлення для _Multicopters_
|
||||
Режим Точної посадки має три етапи:
|
||||
|
||||
1. **Горизонтальний підхід:** Транспортний засіб підходить до цілі горизонтально, утримуючи свою поточну висоту.
|
||||
Як тільки положення цілі відносно транспортного засобу опускається нижче порогового значення ([PLD_HACC_RAD](../advanced_config/parameter_reference.md#PLD_HACC_RAD)), відбувається вхід до наступної фази.
|
||||
Якщо ціль втрачається під час цієї фази (не видно довше, ніж [PLD_BTOUT](../advanced_config/parameter_reference.md#PLD_BTOUT)), ініціюється процедура пошуку (під час необхідної точної посадки) або транспортний засіб робить звичайну посадку (під час можливої точної посадки).
|
||||
Як тільки положення цілі відносно транспортного засобу опускається нижче порогового значення ([PLD_HACC_RAD](../advanced_config/parameter_reference.md#PLD_HACC_RAD)), відбувається вхід до наступної фази.
|
||||
Якщо ціль втрачається під час цієї фази (не видно довше, ніж [PLD_BTOUT](../advanced_config/parameter_reference.md#PLD_BTOUT)), ініціюється процедура пошуку (під час необхідної точної посадки) або транспортний засіб робить звичайну посадку (під час можливої точної посадки).
|
||||
|
||||
2. **Спуск над ціль:** Транспортний засіб спускається, залишаючись при цьому над ціллю.
|
||||
Якщо ціль втрачається під час цієї фази (не видно довше, ніж `PLD_BTOUT`), ініціюється процедура пошуку (під час необхідної точної посадки) або транспортний засіб робить звичайну посадку (під час можливої точної посадки).
|
||||
Якщо ціль втрачається під час цієї фази (не видно довше, ніж `PLD_BTOUT`), ініціюється процедура пошуку (під час необхідної точної посадки) або транспортний засіб робить звичайну посадку (під час можливої точної посадки).
|
||||
|
||||
3. **Останній підхід:** Коли транспортний засіб знаходиться близько до землі (ближче, ніж [PLD_FAPPR_ALT](../advanced_config/parameter_reference.md#PLD_FAPPR_ALT)), він спускається, залишаючись при цьому над ціллю.
|
||||
Якщо ціль втрачається під час цієї фази, спуск продовжується незалежно від виду точної посадки.
|
||||
Якщо ціль втрачається під час цієї фази, спуск продовжується незалежно від виду точної посадки.
|
||||
|
||||
Процедури пошуку ініціюються на перших і других етапах і виконуються не більше [PLD_MAX_SRCH разів](../advanced_config/parameter_reference.md#PLD_MAX_SRCH).
|
||||
Діаграма потоку фаз посадки
|
||||
|
||||
@@ -54,19 +54,19 @@ The setup was tested with the current release of _QGroundControl_ running on Ubu
|
||||
Стандартна швидкість передачі даних модуля - 19200. However, the PX4 _iridiumsbd_ driver requires a baud rate of 115200 so it needs to be changed using the [AT commands](https://www.groundcontrol.com/en/wp-content/uploads/2022/02/IRDM_ISU_ATCommandReferenceMAN0009_Rev2.0_ATCOMM_Oct2012.pdf).
|
||||
|
||||
1. Connect to the module with using a 19200/8-N-1 setting and check if the communication is working using the command: `AT`.
|
||||
Відповідь має бути: `OK`.
|
||||
Відповідь має бути: `OK`.
|
||||
|
||||
2. Змінити швидкість передачі:
|
||||
|
||||
```
|
||||
AT+IPR=9
|
||||
```
|
||||
```
|
||||
AT+IPR=9
|
||||
```
|
||||
|
||||
3. Знову підключіться до моделі з параметрами 115200/8-N-1 і збережіть конфігурацію за допомогою:
|
||||
|
||||
```
|
||||
AT&W0
|
||||
```
|
||||
```
|
||||
AT&W0
|
||||
```
|
||||
|
||||
Модуль тепер готовий до використання з PX4.
|
||||
|
||||
@@ -102,55 +102,55 @@ drivers/telemetry/iridiumsbd
|
||||
|
||||
1. Сервер, який працює як ретранслятор повідомлень, повинен мати статичну IP-адресу та два загальнодоступних відкритих TCP-порти:
|
||||
|
||||
- `5672` для брокера повідомлень _RabbitMQ_ (можна змінити в налаштуваннях _rabbitmq_)
|
||||
- `45679` для інтерфейсу HTTP POST (можна змінити у файлі **relay.cfg**)
|
||||
- `5672` для брокера повідомлень _RabbitMQ_ (можна змінити в налаштуваннях _rabbitmq_)
|
||||
- `45679` для інтерфейсу HTTP POST (можна змінити у файлі **relay.cfg**)
|
||||
|
||||
2. Встановіть необхідні модулі python:
|
||||
|
||||
```sh
|
||||
sudo pip install pika tornado future
|
||||
```
|
||||
```sh
|
||||
sudo pip install pika tornado future
|
||||
```
|
||||
|
||||
3. Встановіть брокер повідомлень `rabbitmq`:
|
||||
|
||||
```sh
|
||||
sudo apt install rabbitmq-server
|
||||
```
|
||||
```sh
|
||||
sudo apt install rabbitmq-server
|
||||
```
|
||||
|
||||
4. Налаштуйте облікові дані брокера (змініть PWD на ваш бажаний пароль):
|
||||
|
||||
```sh
|
||||
sudo rabbitmqctl add_user iridiumsbd PWD
|
||||
sudo rabbitmqctl set_permissions iridiumsbd ".*" ".*" ".*"
|
||||
```
|
||||
```sh
|
||||
sudo rabbitmqctl add_user iridiumsbd PWD
|
||||
sudo rabbitmqctl set_permissions iridiumsbd ".*" ".*" ".*"
|
||||
```
|
||||
|
||||
5. Клонувати репозиторій [SatComInfrastructure](https://github.com/acfloria/SatComInfrastructure.git):
|
||||
|
||||
```sh
|
||||
git clone https://github.com/acfloria/SatComInfrastructure.git
|
||||
```
|
||||
```sh
|
||||
git clone https://github.com/acfloria/SatComInfrastructure.git
|
||||
```
|
||||
|
||||
6. Перейдіть до розташування репозиторію _SatComInfrastructure_ і налаштуйте черги брокера:
|
||||
|
||||
```sh
|
||||
./setup_rabbit.py localhost iridiumsbd PWD
|
||||
```
|
||||
```sh
|
||||
./setup_rabbit.py localhost iridiumsbd PWD
|
||||
```
|
||||
|
||||
7. Перевірте налаштування:
|
||||
|
||||
```sh
|
||||
sudo rabbitmqctl list_queues
|
||||
```
|
||||
```sh
|
||||
sudo rabbitmqctl list_queues
|
||||
```
|
||||
|
||||
Це повинно дати вам список із 4 черг: `MO`, `MO_LOG`, `MT`, `MT_LOG`
|
||||
Це повинно дати вам список із 4 черг: `MO`, `MO_LOG`, `MT`, `MT_LOG`
|
||||
|
||||
8. Edit the `relay.cfg` configuration file to reflect your settings.
|
||||
|
||||
9. Запустіть скрипт реле в режимі відокремленого виконання:
|
||||
|
||||
```sh
|
||||
screen -dm bash -c 'cd SatcomInfrastructure/; ./relay.py
|
||||
```
|
||||
```sh
|
||||
screen -dm bash -c 'cd SatcomInfrastructure/; ./relay.py
|
||||
```
|
||||
|
||||
Інші інструкції включають:
|
||||
|
||||
@@ -178,15 +178,15 @@ drivers/telemetry/iridiumsbd
|
||||
|
||||
1. Встановіть необхідні модулі python:
|
||||
|
||||
```sh
|
||||
sudo pip install pika tornado future
|
||||
```
|
||||
```sh
|
||||
sudo pip install pika tornado future
|
||||
```
|
||||
|
||||
2. Клонуйте репозиторій SatComInfrastructure:
|
||||
|
||||
```sh
|
||||
git clone https://github.com/acfloria/SatComInfrastructure.git
|
||||
```
|
||||
```sh
|
||||
git clone https://github.com/acfloria/SatComInfrastructure.git
|
||||
```
|
||||
|
||||
3. Відредагуйте конфігураційний файл **udp2rabbit.cfg**, щоб відображати ваші налаштування.
|
||||
|
||||
@@ -194,20 +194,20 @@ drivers/telemetry/iridiumsbd
|
||||
|
||||
5. Додавайте UDP з'єднання в QGC з параметрами:
|
||||
|
||||
- Порт прослуховування: 10000
|
||||
- Цільові хости: 127.0.0.1:10001
|
||||
- Висока затримка: позначено
|
||||
- Порт прослуховування: 10000
|
||||
- Цільові хости: 127.0.0.1:10001
|
||||
- Висока затримка: позначено
|
||||
|
||||

|
||||

|
||||
|
||||
### Перевірка
|
||||
|
||||
1. Відкрийте термінал на комп'ютері наземної станції та перейдіть до розташування репозиторію _SatComInfrastructure_.
|
||||
Потім запустіть скрипт **udp2rabbit.py**:
|
||||
Потім запустіть скрипт **udp2rabbit.py**:
|
||||
|
||||
```sh
|
||||
./udp2rabbit.py
|
||||
```
|
||||
```sh
|
||||
./udp2rabbit.py
|
||||
```
|
||||
|
||||
2. Надішліть тестове повідомлення з облікового запису [RockBlock](https://rockblock.rock7.com/Operations) до створеної групи доставки на вкладці `Тестові групи доставки`.
|
||||
|
||||
@@ -218,37 +218,37 @@ drivers/telemetry/iridiumsbd
|
||||
## Запуск системи
|
||||
|
||||
1. Запустіть _QGroundControl_.
|
||||
Спочатку вручну підключіть високо запізнюваний зв'язок, а потім звичайний телеметрійний зв'язок:
|
||||
Спочатку вручну підключіть високо запізнюваний зв'язок, а потім звичайний телеметрійний зв'язок:
|
||||
|
||||

|
||||

|
||||
|
||||
2. Відкрийте термінал на комп'ютері наземної станції та перейдіть до розташування репозиторію _SatComInfrastructure_.
|
||||
Потім запустіть скрипт **udp2rabbit.py**:
|
||||
Потім запустіть скрипт **udp2rabbit.py**:
|
||||
|
||||
```sh
|
||||
./udp2rabbit.py
|
||||
```
|
||||
```sh
|
||||
./udp2rabbit.py
|
||||
```
|
||||
|
||||
3. Увімкніть транспортний засіб.
|
||||
|
||||
4. Дочекайтеся, доки на QGC не буде отримано перше повідомлення `HIGH_LATENCY2`.
|
||||
Це можна перевірити за допомогою віджету _Інспектора MAVLink_ або на панелі інструментів за допомогою _індикатора зв'язку(LinkIndicator)_.
|
||||
Це можна перевірити за допомогою віджету _Інспектора MAVLink_ або на панелі інструментів за допомогою _індикатора зв'язку(LinkIndicator)_:
|
||||
Це можна перевірити за допомогою віджету _Інспектора MAVLink_ або на панелі інструментів за допомогою _індикатора зв'язку(LinkIndicator)_.
|
||||
Це можна перевірити за допомогою віджету _Інспектора MAVLink_ або на панелі інструментів за допомогою _індикатора зв'язку(LinkIndicator)_:
|
||||
|
||||

|
||||

|
||||
|
||||
Індикатор зв'язку завжди показує назву пріоритетного зв'язку.
|
||||
Індикатор зв'язку завжди показує назву пріоритетного зв'язку.
|
||||
|
||||
5. Супутникова система зв'язку тепер готова до використання.
|
||||
Пріоритетний зв'язок, через який надсилаються команди, визначається наступними способами:
|
||||
Пріоритетний зв'язок, через який надсилаються команди, визначається наступними способами:
|
||||
|
||||
- Якщо користувач не вказав зв'язок, звичайний радіо телеметрійний зв'язок віддається перевагу перед високозапізнюваним зв'язком.
|
||||
- Автопілот та QGC перехоплюватимуть звичайний радіо телеметрійний зв'язок на високозапізнюваний зв'язок, якщо транспортний засіб зброєний, а радіо телеметрійний зв'язок втрачений (не отримано жодного повідомлення MAVLink протягом певного часу).
|
||||
Як тільки радіо телеметрійний зв'язок відновлюється, QGC та автопілот повертаються до нього.
|
||||
- Користувач може вибрати пріоритетний зв'язок через індикатор зв'язку на панелі інструментів.
|
||||
Це посилання зберігається як пріоритетне посилання, поки воно активне або користувач вибирає інше пріоритетне посилання:
|
||||
- Якщо користувач не вказав зв'язок, звичайний радіо телеметрійний зв'язок віддається перевагу перед високозапізнюваним зв'язком.
|
||||
- Автопілот та QGC перехоплюватимуть звичайний радіо телеметрійний зв'язок на високозапізнюваний зв'язок, якщо транспортний засіб зброєний, а радіо телеметрійний зв'язок втрачений (не отримано жодного повідомлення MAVLink протягом певного часу).
|
||||
Як тільки радіо телеметрійний зв'язок відновлюється, QGC та автопілот повертаються до нього.
|
||||
- Користувач може вибрати пріоритетний зв'язок через індикатор зв'язку на панелі інструментів.
|
||||
Це посилання зберігається як пріоритетне посилання, поки воно активне або користувач вибирає інше пріоритетне посилання:
|
||||
|
||||

|
||||

|
||||
|
||||
## Усунення проблем
|
||||
|
||||
|
||||
@@ -797,3 +797,4 @@ div.frame_variant td, div.frame_variant th {
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -4,4 +4,4 @@ frame: VTOL
|
||||
newEditLink: en/assembly/_assembly.md
|
||||
---
|
||||
|
||||
<!--@include: _assembly.md-->
|
||||
<!--@include: _assembly.md-->
|
||||
@@ -3,4 +3,4 @@ frame: General
|
||||
newEditLink: en/assembly/_assembly.md
|
||||
---
|
||||
|
||||
<!--@include: _assembly.md-->
|
||||
<!--@include: _assembly.md-->
|
||||
@@ -49,7 +49,7 @@ GPS/компас слід [монтувати на раму](../assembly/mount_g
|
||||

|
||||
|
||||
:::info
|
||||
Pixhawk V6X<sup>®</sup> несумісний з NEO V2 GPS вбудованим дзвіночком: вам слід використовувати [NEO3/NEO 3Pro](https://store.cuav.net/shop/neo-3/) замість нього.
|
||||
Pixhawk V6X<sup>®</sup> is not compatible with NEO V2 GPS built-in buzzer: you should use [NEO3/NEO 3Pro](https://store.cuav.net/shop/neo-3/) instead.
|
||||
Вбудований безпечний вимикач в GPS-модулі увімкнений _за замовчуванням_ (коли включений, PX4 не дозволить вам готувати до польоту).
|
||||
Щоб вимкнути безпеку, натисніть і утримуйте безпечний вимикач протягом 1 секунди.
|
||||
Ви можете натиснути безпечний вимикач знову, щоб увімкнути безпеку та відключити транспортний засіб (це може бути корисно, якщо, з якихось причин, ви не можете вимкнути транспортний засіб за допомогою вашого пульта дистанційного керування або наземної станції).
|
||||
|
||||
@@ -32,4 +32,4 @@
|
||||
Деякі посилання, які ви можете знайти корисними:
|
||||
|
||||
- [An Introduction to Shock & Vibration Response Spectra, Tom Irvine](http://www.vibrationdata.com/tutorials2/srs_intr.pdf) (free paper)
|
||||
- [Structural Dynamics and Vibration in Practice - An Engineering Handbook, Douglas Thorby](https://books.google.ch/books?id=PwzDuWDc8AgC\&printsec=frontcover) (preview).
|
||||
- Structural Dynamics and Vibration in Practice - An Engineering Handbook, Douglas Thorby (preview).
|
||||
|
||||
@@ -188,16 +188,16 @@ PX4 видає повідомлення MAVLink [CAMERA_TRIGGER](https://mavlink
|
||||
|
||||
1. На консолі PX4:
|
||||
|
||||
```shell
|
||||
camera_trigger test
|
||||
```
|
||||
```shell
|
||||
camera_trigger test
|
||||
```
|
||||
|
||||
2. Від _QGroundControl_:
|
||||
|
||||
Клацніть на **Запуск камери** на головній панелі інструментів.
|
||||
Ці знімки не відображаються або не підраховуються для геотегування.
|
||||
Клацніть на **Запуск камери** на головній панелі інструментів.
|
||||
Ці знімки не відображаються або не підраховуються для геотегування.
|
||||
|
||||

|
||||

|
||||
|
||||
## Приклад Sony QX-1 (Фотограметрія)
|
||||
|
||||
|
||||
@@ -17,4 +17,4 @@ PX4 інтегрується з трьома типами камер:
|
||||
## Дивіться також
|
||||
|
||||
- [Gimbal (кріплення для камери)](../advanced/gimbal_control.md)
|
||||
- [Інтеграція/Архітектура камери](../camera/camera_architecture.md) (Розробники PX4)
|
||||
- [Інтеграція/Архітектура камери](../camera/camera_architecture.md) (Розробники PX4)
|
||||
@@ -86,7 +86,7 @@ PX4 переістовує їх з тим самим ідентифікатор
|
||||
|
||||
1. Змініть невикористаний параметр `MAV_n_CONFIG`, такий як [MAV_2_CONFIG](../advanced_config/parameter_reference.md#MAV_2_CONFIG), щоб він був присвоєний порту, до якого підключена ваша камера.
|
||||
2. Встановіть відповідний [MAV_2_MODE](../advanced_config/parameter_reference.md#MAV_2_MODE) на `2` (На борту).
|
||||
Це забезпечує, що правильний набір повідомлень MAVLink випромінюється та пересилається.
|
||||
Це забезпечує, що правильний набір повідомлень MAVLink випромінюється та пересилається.
|
||||
3. Можливо, вам доведеться встановити деякі інші параметри, залежно від вашого з'єднання - наприклад, швидкість передачі даних.
|
||||
|
||||
Підключіться та налаштуйте камеру, як рекомендовано в її посібнику користувача.
|
||||
|
||||
@@ -112,7 +112,7 @@ PX4 видає команди [MAVLink Camera Protocol v2](https://mavlink.io/en
|
||||
|
||||
1. Змініть невикористаний параметр `MAV_n_CONFIG`, такий як [MAV_2_CONFIG](../advanced_config/parameter_reference.md#MAV_2_CONFIG), щоб він був присвоєний порту, до якого підключена ваша камера/компаньйонський комп'ютер.
|
||||
2. Встановіть відповідний [MAV_2_MODE](../advanced_config/parameter_reference.md#MAV_2_MODE) на `2` (На борту).
|
||||
Це забезпечує, що правильний набір повідомлень MAVLink випромінюється для супутнього комп'ютера (або камери).
|
||||
Це забезпечує, що правильний набір повідомлень MAVLink випромінюється для супутнього комп'ютера (або камери).
|
||||
3. Встановіть [MAV_2_FORWARD](../advanced_config/parameter_reference.md#MAV_2_FORWARD), щоб дозволити пересилання комунікацій з порту на інші порти, такі як той, що підключений до наземної станції.
|
||||
4. Можливо, вам доведеться встановити деякі інші параметри, залежно від типу підключення та будь-яких конкретних вимог камери щодо очікуваної швидкості передачі даних і т. д.
|
||||
|
||||
|
||||
@@ -69,15 +69,15 @@ To install the RPi CM4 companion computer:
|
||||
|
||||
1. Disconnect the `FAN` wiring.
|
||||
|
||||

|
||||

|
||||
|
||||
2. Видаліть ці 4 гвинти на задній стороні підлогової дошки.
|
||||
|
||||

|
||||

|
||||
|
||||
3. Видаліть підставку корпусу, встановіть CM4 та використовуйте 4 гвинти для його кріплення (як показано):
|
||||
|
||||

|
||||

|
||||
|
||||
4. Прикріпіть кришку знову.
|
||||
|
||||
@@ -115,29 +115,29 @@ RPi CM4 та контролер польоту повинні бути живл
|
||||
|
||||
1. Switch Dip-Switch to `RPI`.
|
||||
|
||||

|
||||

|
||||
|
||||
2. Підключіть комп'ютер до порту USB-C _CM4 Slave_, що використовується для живлення та прошивки RPi.
|
||||
|
||||

|
||||

|
||||
|
||||
3. Отримайте `usbboot`, зберіть його та запустіть.
|
||||
|
||||
```sh
|
||||
sudo apt install libusb-1.0-0-dev
|
||||
git clone --depth=1 https://github.com/raspberrypi/usbboot
|
||||
cd usbboot
|
||||
make
|
||||
sudo ./rpiboot
|
||||
```
|
||||
```sh
|
||||
sudo apt install libusb-1.0-0-dev
|
||||
git clone --depth=1 https://github.com/raspberrypi/usbboot
|
||||
cd usbboot
|
||||
make
|
||||
sudo ./rpiboot
|
||||
```
|
||||
|
||||
4. Тепер ви можете встановити свою перевагу Linux дистрибутив за допомогою `rpi-imager`.
|
||||
Переконайтеся, що ви додали налаштування WiFi та SSH (приховані за символом шестерні / розширеним).
|
||||
Переконайтеся, що ви додали налаштування WiFi та SSH (приховані за символом шестерні / розширеним).
|
||||
|
||||
```sh
|
||||
sudo apt install rpi-imager
|
||||
rpi-imager
|
||||
```
|
||||
```sh
|
||||
sudo apt install rpi-imager
|
||||
rpi-imager
|
||||
```
|
||||
|
||||
5. Після завершення відключення USB-C CM4 Slave (це відмонтує томи та вимкне CM4).
|
||||
|
||||
@@ -146,8 +146,8 @@ RPi CM4 та контролер польоту повинні бути живл
|
||||
7. Увімкніть CM4, надаючи живлення через порт USB-C CM4 Slave.
|
||||
|
||||
8. Щоб перевірити, чи запускається/працює, ви можете або:
|
||||
- Перевірте, чи є вихід HDMI
|
||||
- Підключіться через SSH (якщо налаштовано в rpi-imager, і є доступ до WiFi).
|
||||
- Перевірте, чи є вихід HDMI
|
||||
- Підключіться через SSH (якщо налаштовано в rpi-imager, і є доступ до WiFi).
|
||||
|
||||
## Налаштуйте послідовне підключення PX4 до CM4 MAVLink
|
||||
|
||||
@@ -167,13 +167,13 @@ FC повинен бути налаштований для підключенн
|
||||
|
||||
1. Підключіть комп'ютер, на якому працює QGroundControl, через порт USB Type C на базовій платі, позначеній як `FC`
|
||||
|
||||

|
||||

|
||||
|
||||
2. [Встановіть параметри](../advanced_config/parameters.md):
|
||||
|
||||
- `MAV_1_CONFIG` = `102`
|
||||
- `MAV_1_MODE = 2`
|
||||
- `SER_TEL2_BAUD` = `921600`
|
||||
- `MAV_1_CONFIG` = `102`
|
||||
- `MAV_1_MODE = 2`
|
||||
- `SER_TEL2_BAUD` = `921600`
|
||||
|
||||
3. Перезавантажте FC.
|
||||
|
||||
@@ -185,13 +185,13 @@ FC повинен бути налаштований для підключенн
|
||||
|
||||
2. Увімкніть послідовний порт RPi, запустивши `RPi-config`
|
||||
|
||||
- Перейдіть до `3 Варіанти інтерфейсу`, потім `I6 Серійний порт`.
|
||||
Потім введіть:
|
||||
- `login shell accessible over serial → No`
|
||||
- `serial port hardware enabled` → `Yes`
|
||||
- Перейдіть до `3 Варіанти інтерфейсу`, потім `I6 Серійний порт`.
|
||||
Потім введіть:
|
||||
- `login shell accessible over serial → No`
|
||||
- `serial port hardware enabled` → `Yes`
|
||||
|
||||
3. Завершіть і перезавантажте.
|
||||
This will add `enable_uart=1` to `/boot/config.txt`, and remove `console=serial0,115200` from `/boot/cmdline.txt`.
|
||||
This will add `enable_uart=1` to `/boot/config.txt`, and remove `console=serial0,115200` from `/boot/cmdline.txt`.
|
||||
|
||||
4. Тепер MAVLink-трафік повинен бути доступний на `/dev/serial0` з швидкістю передачі даних 921600.
|
||||
|
||||
@@ -201,9 +201,9 @@ FC повинен бути налаштований для підключенн
|
||||
|
||||
2. Встановіть MAVSDK Python:
|
||||
|
||||
```sh
|
||||
python3 -m pip install mavsdk
|
||||
```
|
||||
```sh
|
||||
python3 -m pip install mavsdk
|
||||
```
|
||||
|
||||
3. Скопіюйте приклад з [прикладів MAVSDK-Python](https://github.com/mavlink/MAVSDK-Python/tree/main/examples).
|
||||
|
||||
@@ -247,7 +247,7 @@ Note that we could have used WiFi for the link, but by setting up a dedicated ro
|
||||
|
||||
To set up a local ethernet connection between CM4 and the flight computer, the two Ethernet ports need to be connected using the provided 8 pin to 4 pin connector.
|
||||
|
||||

|
||||

|
||||
|
||||
Схема виводів кабелю:
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ To use [ROS 2/uXRCE-DDS](../ros2/user_guide.md) instead of MAVLink on `TELEM2`,
|
||||
Безпечним і легким у налаштуванні варіантом є використання плати адаптера USB-послідовного порту від FTDI Chip для підключення від `TELEM2` на Pixhawk до USB-порту на супутниковому комп'ютері.
|
||||
Нижче наведено зв'язку карту `TELEM2` до FTDI.
|
||||
|
||||
| TELEM2 | | FTDI | &nbsp; |
|
||||
| TELEM2 | | FTDI | |
|
||||
| ------ | ------------------------------ | ---- | ------------------------------------------------------------ |
|
||||
| 1 | +5V (red) | | DO NOT CONNECT! |
|
||||
| 2 | Tx (out) | 5 | FTDI RX (yellow) (in) |
|
||||
|
||||
@@ -132,50 +132,50 @@ make px4_fmu-v6c_default upload
|
||||
|
||||
1. Встановіть `raspi-config`:
|
||||
|
||||
```sh
|
||||
sudo apt update
|
||||
sudo apt upgrade
|
||||
sudo apt-get install raspi-config
|
||||
```
|
||||
```sh
|
||||
sudo apt update
|
||||
sudo apt upgrade
|
||||
sudo apt-get install raspi-config
|
||||
```
|
||||
|
||||
2. Open `raspi-config`:
|
||||
|
||||
```sh
|
||||
sudo raspi-config
|
||||
```
|
||||
```sh
|
||||
sudo raspi-config
|
||||
```
|
||||
|
||||
3. Перейдіть до **Варіанти інтерфейсу**, а потім клацніть **Серійний порт**.
|
||||
|
||||
- Виберіть **No**, щоб вимкнути послідовний вхід у оболонку.
|
||||
- Виберіть **Так**, щоб увімкнути послідовний інтерфейс.
|
||||
- Клацніть **Завершити** та перезапустіть RPi.
|
||||
- Виберіть **No**, щоб вимкнути послідовний вхід у оболонку.
|
||||
- Виберіть **Так**, щоб увімкнути послідовний інтерфейс.
|
||||
- Клацніть **Завершити** та перезапустіть RPi.
|
||||
|
||||
4. Відкрийте файл конфігурації завантаження прошивки в редакторі `nano` на RaPi:
|
||||
|
||||
```sh
|
||||
sudo nano /boot/firmware/config.txt
|
||||
```
|
||||
```sh
|
||||
sudo nano /boot/firmware/config.txt
|
||||
```
|
||||
|
||||
5. Додайте наступний текст в кінець файлу (після останнього рядка):
|
||||
|
||||
```sh
|
||||
enable_uart=1
|
||||
dtoverlay=disable-bt
|
||||
```
|
||||
```sh
|
||||
enable_uart=1
|
||||
dtoverlay=disable-bt
|
||||
```
|
||||
|
||||
6. Далі збережіть файл і перезапустіть RPi.
|
||||
|
||||
- У `nano` ви можете зберегти файл за допомогою такої послідовності комбінацій клавіш: **ctrl+x**, **ctrl+y**, **Enter**.
|
||||
- У `nano` ви можете зберегти файл за допомогою такої послідовності комбінацій клавіш: **ctrl+x**, **ctrl+y**, **Enter**.
|
||||
|
||||
7. Перевірте, чи доступний послідовний порт.
|
||||
В даному випадку ми використовуємо наступні команди для перегляду серійних пристроїв:
|
||||
В даному випадку ми використовуємо наступні команди для перегляду серійних пристроїв:
|
||||
|
||||
```sh
|
||||
cd /
|
||||
ls /dev/ttyAMA0
|
||||
```
|
||||
```sh
|
||||
cd /
|
||||
ls /dev/ttyAMA0
|
||||
```
|
||||
|
||||
Результат команди повинен містити підключення RX/TX `/dev/ttyAMA0` (зверніть увагу, що цей послідовний порт також доступний як `/dev/serial0`).
|
||||
Результат команди повинен містити підключення RX/TX `/dev/ttyAMA0` (зверніть увагу, що цей послідовний порт також доступний як `/dev/serial0`).
|
||||
|
||||
RPi наразі налаштований для роботи з RPi та зв'язку за допомогою послідовного порту `/dev/ttyAMA0`.
|
||||
Зверніть увагу, що ми встановимо додаткове програмне забезпечення в наступних розділах для роботи з MAVLink та ROS 2.
|
||||
@@ -199,38 +199,38 @@ PX4 рекомендує використовувати [MAVSDK](https://mavsdk.
|
||||
2. Відкрийте QGroundControl (повинно з'єднатися з транспортним засобом).
|
||||
3. [Перевірте/змініть наступні параметри](../advanced_config/parameters.md) в QGroundControl:
|
||||
|
||||
```ini
|
||||
MAV_1_CONFIG = TELEM2
|
||||
UXRCE_DDS_CFG = 0 (Disabled)
|
||||
SER_TEL2_BAUD = 57600
|
||||
```
|
||||
```ini
|
||||
MAV_1_CONFIG = TELEM2
|
||||
UXRCE_DDS_CFG = 0 (Disabled)
|
||||
SER_TEL2_BAUD = 57600
|
||||
```
|
||||
|
||||
Зверніть увагу, що параметри можуть вже бути налаштовані належним чином.
|
||||
Для отримання інформації про те, як працюють послідовні порти та конфігурація MAVLink, див. [Конфігурація послідовного порту](../peripherals/serial_configuration.md) та [Периферійні пристрої MAVLink](../peripherals/mavlink_peripherals.md).
|
||||
Зверніть увагу, що параметри можуть вже бути налаштовані належним чином.
|
||||
Для отримання інформації про те, як працюють послідовні порти та конфігурація MAVLink, див. [Конфігурація послідовного порту](../peripherals/serial_configuration.md) та [Периферійні пристрої MAVLink](../peripherals/mavlink_peripherals.md).
|
||||
|
||||
Потім встановіть налаштування MAVProxy на RPi за допомогою наступних термінальних команд:
|
||||
|
||||
1. Встановіть MAVProxy:
|
||||
|
||||
```sh
|
||||
sudo apt install python3-pip
|
||||
sudo pip3 install mavproxy
|
||||
sudo apt remove modemmanager
|
||||
```
|
||||
```sh
|
||||
sudo apt install python3-pip
|
||||
sudo pip3 install mavproxy
|
||||
sudo apt remove modemmanager
|
||||
```
|
||||
|
||||
2. Запустіть MAVProxy, встановивши порт для підключення до `/dev/ttyAMA0` та швидкість передачі даних, щоб відповідати PX4:
|
||||
|
||||
```sh
|
||||
sudo mavproxy.py --master=/dev/serial0 --baudrate 57600
|
||||
```
|
||||
```sh
|
||||
sudo mavproxy.py --master=/dev/serial0 --baudrate 57600
|
||||
```
|
||||
|
||||
Зверніть увагу, що вище ми використовували `/dev/serial0`, але ми могли б так само добре використовувати `/dev/ttyAMA0`.
|
||||
Якщо ми підключалися через USB, тоді ми замість цього встановили порт як `/dev/ttyACM0`:
|
||||
Зверніть увагу, що вище ми використовували `/dev/serial0`, але ми могли б так само добре використовувати `/dev/ttyAMA0`.
|
||||
Якщо ми підключалися через USB, тоді ми замість цього встановили порт як `/dev/ttyACM0`:
|
||||
|
||||
```sh
|
||||
sudo chmod a+rw /dev/ttyACM0
|
||||
sudo mavproxy.py --master=/dev/ttyACM0 --baudrate 57600
|
||||
```
|
||||
```sh
|
||||
sudo chmod a+rw /dev/ttyACM0
|
||||
sudo mavproxy.py --master=/dev/ttyACM0 --baudrate 57600
|
||||
```
|
||||
|
||||
|
||||
:::
|
||||
@@ -258,26 +258,26 @@ The [ROS 2 Guide](../ros2/user_guide.md) and [uXRCE-DDS](../middleware/uxrce_dds
|
||||
|
||||
2. [Перевірте/змініть наступні параметри](../advanced_config/parameters.md) в QGroundControl:
|
||||
|
||||
```ini
|
||||
MAV_1_CONFIG = 0 (Disabled)
|
||||
UXRCE_DDS_CFG = 102 (TELEM2)
|
||||
SER_TEL2_BAUD = 921600
|
||||
```
|
||||
```ini
|
||||
MAV_1_CONFIG = 0 (Disabled)
|
||||
UXRCE_DDS_CFG = 102 (TELEM2)
|
||||
SER_TEL2_BAUD = 921600
|
||||
```
|
||||
|
||||
[MAV_1_CONFIG=0](../advanced_config/parameter_reference.md#MAV_1_CONFIG) та [UXRCE_DDS_CFG=102](../advanced_config/parameter_reference.md#UXRCE_DDS_CFG) вимикають MAVLink на TELEM2 та увімкнюють клієнт uXRCE-DDS на TELEM2, відповідно.
|
||||
Швидкість `SER_TEL2_BAUD` встановлює швидкість передачі даних зв'язку.\
|
||||
Ви так само можете налаштувати підключення до `TELEM1`, використовуючи або `MAV_1_CONFIG`, або `MAV_0_CONFIG`.
|
||||
[MAV_1_CONFIG=0](../advanced_config/parameter_reference.md#MAV_1_CONFIG) та [UXRCE_DDS_CFG=102](../advanced_config/parameter_reference.md#UXRCE_DDS_CFG) вимикають MAVLink на TELEM2 та увімкнюють клієнт uXRCE-DDS на TELEM2, відповідно.
|
||||
Швидкість `SER_TEL2_BAUD` встановлює швидкість передачі даних зв'язку.\
|
||||
Ви так само можете налаштувати підключення до `TELEM1`, використовуючи або `MAV_1_CONFIG`, або `MAV_0_CONFIG`.
|
||||
|
||||
Вам потрібно перезавантажити керування польотом, щоб застосувати будь-які зміни до цих параметрів.
|
||||
Вам потрібно перезавантажити керування польотом, щоб застосувати будь-які зміни до цих параметрів.
|
||||
|
||||
:::
|
||||
|
||||
3. Перевірте, що модуль [uxrce_dds_client](../modules/modules_system.md#uxrce-dds-client) зараз працює.
|
||||
Ви можете це зробити, запустивши наступну команду в QGroundControl [MAVLink Console](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/analyze_view/mavlink_console.html):
|
||||
Ви можете це зробити, запустивши наступну команду в QGroundControl [MAVLink Console](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/analyze_view/mavlink_console.html):
|
||||
|
||||
```sh
|
||||
uxrce_dds_client status
|
||||
```
|
||||
```sh
|
||||
uxrce_dds_client status
|
||||
```
|
||||
|
||||
:::info
|
||||
Якщо модуль клієнта не працює, ви можете запустити його вручну в консолі MAVLink:
|
||||
@@ -298,32 +298,32 @@ uxrce_dds_client start -t serial -d /dev/ttyS3 -b 921600
|
||||
|
||||
2. Встановіть git за допомогою терміналу RPi:
|
||||
|
||||
```sh
|
||||
sudo apt install git
|
||||
```
|
||||
```sh
|
||||
sudo apt install git
|
||||
```
|
||||
|
||||
3. Встановіть агент uXRCE_DDS:
|
||||
|
||||
```sh
|
||||
git clone https://github.com/eProsima/Micro-XRCE-DDS-Agent.git
|
||||
cd Micro-XRCE-DDS-Agent
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ..
|
||||
make
|
||||
sudo make install
|
||||
sudo ldconfig /usr/local/lib/
|
||||
```
|
||||
```sh
|
||||
git clone https://github.com/eProsima/Micro-XRCE-DDS-Agent.git
|
||||
cd Micro-XRCE-DDS-Agent
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ..
|
||||
make
|
||||
sudo make install
|
||||
sudo ldconfig /usr/local/lib/
|
||||
```
|
||||
|
||||
Див. [uXRCE-DDS > Встановлення агента Micro XRCE-DDS](../middleware/uxrce_dds.md#micro-xrce-dds-agent-installation) для альтернативних способів встановлення агента.
|
||||
Див. [uXRCE-DDS > Встановлення агента Micro XRCE-DDS](../middleware/uxrce_dds.md#micro-xrce-dds-agent-installation) для альтернативних способів встановлення агента.
|
||||
|
||||
4. Запустіть агента в терміналі RPi:
|
||||
|
||||
```sh
|
||||
sudo MicroXRCEAgent serial --dev /dev/serial0 -b 921600
|
||||
```
|
||||
```sh
|
||||
sudo MicroXRCEAgent serial --dev /dev/serial0 -b 921600
|
||||
```
|
||||
|
||||
Зверніть увагу, як ми використовуємо раніше налаштований послідовний порт і ту саму швидкість передачі даних, що й для PX4.
|
||||
Зверніть увагу, як ми використовуємо раніше налаштований послідовний порт і ту саму швидкість передачі даних, що й для PX4.
|
||||
|
||||
Тепер, коли обидва агент та клієнт працюють, ви повинні бачити активність як на консолі MAVLink, так і на терміналі RPi.
|
||||
Ви можете переглянути доступні теми за допомогою наступної команди на RPi:
|
||||
|
||||
@@ -82,18 +82,18 @@ Alpha AWUS036ACH - це карта середньої потужності, як
|
||||
5. Налаштуйте камерний канал. Відкрийте `/etc/systemd/system/fpv-camera.service` і розкоментуйте конвеєр відповідно до вашої камери (камера PI або камера Logitech)
|
||||
6. Відкрийте `/etc/wifibroadcast.cfg` і налаштуйте канал WiFi відповідно до налаштувань вашої антени (або використовуйте замовчуваний #165 для 5.8GHz)
|
||||
7. Налаштуйте PX4 на вивід потоку телеметрії зі швидкістю 1500 Кбіт/с (інші швидкості UART не добре відповідають дільникам частоти RPI).
|
||||
Підключіть UART Pixhawk до UART Raspberry PI.
|
||||
У розділі `/etc/wifibroadcast.cfg` файлу розкоментуйте `peer = 'serial:ttyS0:1500000'` секцію.
|
||||
Підключіть UART Pixhawk до UART Raspberry PI.
|
||||
У розділі `/etc/wifibroadcast.cfg` файлу розкоментуйте `peer = 'serial:ttyS0:1500000'` секцію.
|
||||
|
||||
### Використання ноутбука Linux як GCS (важче, ніж використання RasPi)
|
||||
|
||||
1. На **наземному** Linux комп'ютері розробки:
|
||||
|
||||
```sh
|
||||
sudo apt install libpcap-dev libsodium-dev python3-all python3-twisted
|
||||
git clone -b stable https://github.com/svpcom/wfb-ng.git
|
||||
cd wfb-ng && make deb && sudo apt install ./deb_dist/wfb-ng*.deb
|
||||
```
|
||||
```sh
|
||||
sudo apt install libpcap-dev libsodium-dev python3-all python3-twisted
|
||||
git clone -b stable https://github.com/svpcom/wfb-ng.git
|
||||
cd wfb-ng && make deb && sudo apt install ./deb_dist/wfb-ng*.deb
|
||||
```
|
||||
|
||||
2. Слідуйте інструкції з [Setup HOWTO](https://github.com/svpcom/wfb-ng/wiki/Setup-HOWTO) для завершення встановлення
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
<Redirect to="../complete_vehicles_mc/betafpv_beta75x" />
|
||||
<Redirect to="../complete_vehicles_mc/betafpv_beta75x" />
|
||||
@@ -1 +1 @@
|
||||
<Redirect to="../complete_vehicles_mc/crazyflie2" />
|
||||
<Redirect to="../complete_vehicles_mc/crazyflie2" />
|
||||
@@ -1 +1 @@
|
||||
<Redirect to="../complete_vehicles_mc/crazyflie21" />
|
||||
<Redirect to="../complete_vehicles_mc/crazyflie21" />
|
||||
@@ -1 +1 @@
|
||||
<Redirect to="../complete_vehicles_mc/holybro_kops2" />
|
||||
<Redirect to="../complete_vehicles_mc/holybro_kops2" />
|
||||
@@ -1 +1 @@
|
||||
<Redirect to="../complete_vehicles_mc/intel_aero" />
|
||||
<Redirect to="../complete_vehicles_mc/intel_aero" />
|
||||
@@ -1 +1 @@
|
||||
<Redirect to="../complete_vehicles_mc/mindracer210" />
|
||||
<Redirect to="../complete_vehicles_mc/mindracer210" />
|
||||
@@ -1 +1 @@
|
||||
<Redirect to="../complete_vehicles_mc/mindracer_BNF_RTF" />
|
||||
<Redirect to="../complete_vehicles_mc/mindracer_BNF_RTF" />
|
||||
@@ -1 +1 @@
|
||||
<Redirect to="../complete_vehicles_mc/modalai_starling" />
|
||||
<Redirect to="../complete_vehicles_mc/modalai_starling" />
|
||||
@@ -1 +1 @@
|
||||
<Redirect to="../complete_vehicles_mc/nanomind110" />
|
||||
<Redirect to="../complete_vehicles_mc/nanomind110" />
|
||||
@@ -1 +1 @@
|
||||
<Redirect to="../complete_vehicles_mc/px4_vision_kit" />
|
||||
<Redirect to="../complete_vehicles_mc/px4_vision_kit" />
|
||||
@@ -51,54 +51,54 @@ _Crazyflie 2.0_ було [припинено/замінено](../flight_control
|
||||
|
||||
1. Завантажте вихідний код завантажувача PX4:
|
||||
|
||||
```sh
|
||||
git clone https://github.com/PX4/Bootloader.git
|
||||
```
|
||||
```sh
|
||||
git clone https://github.com/PX4/Bootloader.git
|
||||
```
|
||||
|
||||
2. Перейдіть до верхньої директорії вихідного коду та скомпілюйте його за допомогою:
|
||||
|
||||
```sh
|
||||
make crazyflie_bl
|
||||
```
|
||||
```sh
|
||||
make crazyflie_bl
|
||||
```
|
||||
|
||||
3. Поставте Crazyflie 2.0 у режим DFU, виконавши ці кроки:
|
||||
- Спочатку переконайтеся, що він знеструмлений.
|
||||
- Утримуйте кнопку скидання (див. малюнок нижче...).
|
||||

|
||||
- Підключіть до USB-порту комп'ютера.
|
||||
- Через секунду синій світлодіод повинен почати блимати, а через 5 секунд повинен почати блимати швидше.
|
||||
- Відпустіть кнопку.
|
||||
- Спочатку переконайтеся, що він знеструмлений.
|
||||
- Утримуйте кнопку скидання (див. малюнок нижче...).
|
||||

|
||||
- Підключіть до USB-порту комп'ютера.
|
||||
- Через секунду синій світлодіод повинен почати блимати, а через 5 секунд повинен почати блимати швидше.
|
||||
- Відпустіть кнопку.
|
||||
|
||||
4. Встановіть _dfu-util_:
|
||||
|
||||
```sh
|
||||
sudo apt-get update
|
||||
sudo apt-get install dfu-util
|
||||
```
|
||||
```sh
|
||||
sudo apt-get update
|
||||
sudo apt-get install dfu-util
|
||||
```
|
||||
|
||||
5. Виконайте прошивку завантажувальника за допомогою _dfu-util_ та від'єднайте Crazyflie 2.0, коли це зроблено:
|
||||
|
||||
```sh
|
||||
sudo dfu-util -d 0483:df11 -a 0 -s 0x08000000 -D ./build/crazyflie_bl/crazyflie_bl.bin
|
||||
```
|
||||
```sh
|
||||
sudo dfu-util -d 0483:df11 -a 0 -s 0x08000000 -D ./build/crazyflie_bl/crazyflie_bl.bin
|
||||
```
|
||||
|
||||
Коли увімкнено Crazyflie 2.0, жовтий світлодіод повинен мигати.
|
||||
Коли увімкнено Crazyflie 2.0, жовтий світлодіод повинен мигати.
|
||||
|
||||
6. Завантажте вихідний код завантажувача автопілоту PX4:
|
||||
|
||||
```sh
|
||||
git clone https://github.com/PX4/PX4-Autopilot.git
|
||||
```
|
||||
```sh
|
||||
git clone https://github.com/PX4/PX4-Autopilot.git
|
||||
```
|
||||
|
||||
7. Перейдіть до верхньої директорії вихідного коду та скомпілюйте його за допомогою:
|
||||
|
||||
```sh
|
||||
make bitcraze_crazyflie_default upload
|
||||
```
|
||||
```sh
|
||||
make bitcraze_crazyflie_default upload
|
||||
```
|
||||
|
||||
8. Коли вас попросять підключити пристрій, підключіть Crazyflie 2.0.
|
||||
Жовтий світлодіод повинен почати блимати, що вказує на режим завантажувача.
|
||||
Потім червоний світлодіод повинен увімкнутися, що вказує на те, що процес мигання розпочався.
|
||||
Жовтий світлодіод повинен почати блимати, що вказує на режим завантажувача.
|
||||
Потім червоний світлодіод повинен увімкнутися, що вказує на те, що процес мигання розпочався.
|
||||
|
||||
9. Очікування завершення.
|
||||
|
||||
|
||||
@@ -64,56 +64,56 @@ Crazyflie 2.1 може літати лише в режимі [Стабілізо
|
||||
|
||||
1. Завантажте вихідний код завантажувача PX4:
|
||||
|
||||
```sh
|
||||
git clone https://github.com/PX4/Bootloader.git --recurse-submodules
|
||||
```
|
||||
```sh
|
||||
git clone https://github.com/PX4/Bootloader.git --recurse-submodules
|
||||
```
|
||||
|
||||
2. Перейдіть до верхньої директорії вихідного коду та скомпілюйте його за допомогою:
|
||||
|
||||
```sh
|
||||
make crazyflie21_bl
|
||||
```
|
||||
```sh
|
||||
make crazyflie21_bl
|
||||
```
|
||||
|
||||
3. Поставте Crazyflie 2.1 у режим DFU, виконавши ці кроки:
|
||||
- Спочатку переконайтеся, що він знеструмлений.
|
||||
- Переконайтеся, що акумулятор від'єднаний.
|
||||
- Утримуйте кнопку скидання (див. малюнок нижче...).
|
||||

|
||||
- Підключіть до USB-порту комп'ютера.
|
||||
- Через секунду синій світлодіод повинен почати блимати, а через 5 секунд повинен почати блимати швидше.
|
||||
- Відпустіть кнопку.
|
||||
- Спочатку переконайтеся, що він знеструмлений.
|
||||
- Переконайтеся, що акумулятор від'єднаний.
|
||||
- Утримуйте кнопку скидання (див. малюнок нижче...).
|
||||

|
||||
- Підключіть до USB-порту комп'ютера.
|
||||
- Через секунду синій світлодіод повинен почати блимати, а через 5 секунд повинен почати блимати швидше.
|
||||
- Відпустіть кнопку.
|
||||
|
||||
4. Встановіть _dfu-util_:
|
||||
|
||||
```sh
|
||||
sudo apt-get update
|
||||
sudo apt-get install dfu-util
|
||||
```
|
||||
```sh
|
||||
sudo apt-get update
|
||||
sudo apt-get install dfu-util
|
||||
```
|
||||
|
||||
5. Виконайте прошивку завантажувальника за допомогою _dfu-util_ та від'єднайте Crazyflie 2.1, коли це зроблено:
|
||||
|
||||
```sh
|
||||
sudo dfu-util -d 0483:df11 -a 0 -s 0x08000000 -D ./build/crazyflie21_bl/crazyflie21_bl.bin
|
||||
```
|
||||
```sh
|
||||
sudo dfu-util -d 0483:df11 -a 0 -s 0x08000000 -D ./build/crazyflie21_bl/crazyflie21_bl.bin
|
||||
```
|
||||
|
||||
Коли увімкнено Crazyflie 2.1, жовтий світлодіод повинен мигати.
|
||||
Коли увімкнено Crazyflie 2.1, жовтий світлодіод повинен мигати.
|
||||
|
||||
6. Завантажте вихідний код завантажувача автопілоту PX4:
|
||||
|
||||
```sh
|
||||
git clone https://github.com/PX4/PX4-Autopilot.git
|
||||
```
|
||||
```sh
|
||||
git clone https://github.com/PX4/PX4-Autopilot.git
|
||||
```
|
||||
|
||||
7. Перейдіть до верхньої директорії вихідного коду та скомпілюйте його за допомогою:
|
||||
|
||||
```sh
|
||||
cd PX4-Autopilot/
|
||||
make bitcraze_crazyflie21_default upload
|
||||
```
|
||||
```sh
|
||||
cd PX4-Autopilot/
|
||||
make bitcraze_crazyflie21_default upload
|
||||
```
|
||||
|
||||
8. Коли вас попросять підключити пристрій, підключіть Crazyflie 2.1.
|
||||
Жовтий світлодіод повинен почати блимати, що вказує на режим завантажувача.
|
||||
Потім червоний світлодіод повинен увімкнутися, що вказує на те, що процес мигання розпочався.
|
||||
Жовтий світлодіод повинен почати блимати, що вказує на режим завантажувача.
|
||||
Потім червоний світлодіод повинен увімкнутися, що вказує на те, що процес мигання розпочався.
|
||||
|
||||
9. Очікування завершення.
|
||||
|
||||
@@ -124,20 +124,20 @@ Crazyflie 2.1 може літати лише в режимі [Стабілізо
|
||||
1. Завантажте останній [завантажувач Crazyflie 2.1](https://github.com/bitcraze/crazyflie2-stm-bootloader/releases)
|
||||
|
||||
2. Поставте Crazyflie 2.1 у режим DFU, виконавши ці кроки:
|
||||
- Спочатку переконайтеся, що він знеструмлений.
|
||||
- Переконайтеся, що акумулятор від'єднаний.
|
||||
- Утримуйте кнопку скидання.
|
||||
- Підключіть до USB-порту комп'ютера.
|
||||
- Через секунду синій світлодіод повинен почати блимати, а через 5 секунд повинен почати блимати швидше.
|
||||
- Відпустіть кнопку.
|
||||
- Спочатку переконайтеся, що він знеструмлений.
|
||||
- Переконайтеся, що акумулятор від'єднаний.
|
||||
- Утримуйте кнопку скидання.
|
||||
- Підключіть до USB-порту комп'ютера.
|
||||
- Через секунду синій світлодіод повинен почати блимати, а через 5 секунд повинен почати блимати швидше.
|
||||
- Відпустіть кнопку.
|
||||
|
||||
3. Виконайте прошивку завантажувальника за допомогою _dfu-util_ та від'єднайте Crazyflie 2.1, коли це зроблено:
|
||||
|
||||
```sh
|
||||
sudo dfu-util -d 0483:df11 -a 0 -s 0x08000000 -D cf2loader-1.0.bin
|
||||
```
|
||||
```sh
|
||||
sudo dfu-util -d 0483:df11 -a 0 -s 0x08000000 -D cf2loader-1.0.bin
|
||||
```
|
||||
|
||||
Коли увімкнено Crazyflie 2.1, жовтий світлодіод повинен мигати.
|
||||
Коли увімкнено Crazyflie 2.1, жовтий світлодіод повинен мигати.
|
||||
|
||||
4. Встановіть останнє програмне забезпечення для польоту Bitcraze Crazyflie 2.1, використовуючи [цей](https://www.bitcraze.io/documentation/tutorials/getting-started-with-crazyflie-2-x/#update-fw) посібник.
|
||||
|
||||
|
||||
@@ -82,26 +82,26 @@ Starling має [відкрите SDK](https://docs.modalai.com/voxl-developer-b
|
||||
#### Налаштування відображення
|
||||
|
||||
1. **Увімкніть приймач**: Як тільки ваш квадрокоптер увімкнено, ви помітите, що синій світлодіод приймача ELRS мигає.
|
||||
Це свідчить про те, що отримувач увімкнений, але ще не встановив зв'язок з передавачем.
|
||||
Це свідчить про те, що отримувач увімкнений, але ще не встановив зв'язок з передавачем.
|
||||
|
||||

|
||||

|
||||
|
||||
2. **Увійдіть в режим зв'язку**: Для ініціювання зв'язку відкрийте термінал та виконайте команди `adb shell` та `voxl-elrs -bind`.
|
||||
Ви побачите, що світлодіод приймача перемикається на миготливий в режимі миттєвого реагування, сигналізуючи, що тепер він у режимі зв'язку.
|
||||
Ви побачите, що світлодіод приймача перемикається на миготливий в режимі миттєвого реагування, сигналізуючи, що тепер він у режимі зв'язку.
|
||||
|
||||

|
||||

|
||||
|
||||
#### Налаштування передавача
|
||||
|
||||
1. **Отримайте доступ до меню**: На вашому передавачі радіо Commando 8, включеному в комплект, натисніть ліву кнопку режиму, щоб відкрити систему меню.
|
||||
|
||||

|
||||

|
||||
|
||||
2. **Перейдіть до ExpressLRS**: Використовуйте праву кнопку, щоб вибрати перший пункт меню, який повинен бути "ExpressLRS."
|
||||
|
||||
3. **Знайдіть опцію Bind**: Після вибору опції "ExpressLRS" прокрутіть вниз до нижньої частини меню, щоб знайти розділ "Bind". Це можна зробити, натиснувши праву кнопку донизу, поки ви не досягнете опцію "Прив'язка".
|
||||
|
||||

|
||||

|
||||
|
||||
4. **Ініціювати Прив'язку**: Виберіть "Прив'язати", щоб перевести передавач у режим прив'язки. Ви будете знати, що процес був успішним, коли передавач видасть сигнал, вказуючи на успішне зв'язування.
|
||||
|
||||
|
||||
@@ -42,17 +42,17 @@ This kit is still highly recommended for developing and testing vision solutions
|
||||
## Попередження та сповіщення
|
||||
|
||||
1. Комплект призначений для проєктів комп'ютерного зору, які використовують камеру, спрямовану вперед (він не має камер глибини, спрямованих вниз або назад).
|
||||
Consequently it can't be used (without modification) for testing features that require a downward-facing camera.
|
||||
Consequently it can't be used (without modification) for testing features that require a downward-facing camera.
|
||||
|
||||
2. Уникання перешкод у місіях можна тестувати лише за наявності сигналу GPS (місії використовують GPS-координати).
|
||||
Запобігання зіткненням можна перевірити в режимі позиціювання за умови, що є стійке захоплення позиції, отримане або з GPS, або з оптичного потоку.
|
||||
Запобігання зіткненням можна перевірити в режимі позиціювання за умови, що є стійке захоплення позиції, отримане або з GPS, або з оптичного потоку.
|
||||
|
||||
3. Порт, позначений `USB1`, може глушити GPS, якщо його використовувати з периферійним пристроєм _USB3_ (вимкніть GPS-залежні функції, зокрема місії).
|
||||
Саме тому образ завантаження постачається на флешці _USB2.0_.
|
||||
Саме тому образ завантаження постачається на флешці _USB2.0_.
|
||||
|
||||
4. PX4 Vision v1 з ECN 010 або вище (несуча плата RC05 і вище), _UP Core_ може живитися як від розетки постійного струму, так і від акумулятора.
|
||||
|
||||
 
|
||||
 
|
||||
|
||||
5. Всі PX4 Vision v1.5 _UP Core_ можна живити як від мережі постійного струму, так і від батареї.
|
||||
|
||||
@@ -136,37 +136,37 @@ PX4 Vision DevKit містить наступні компоненти:
|
||||
|
||||
1. Підключіть [сумісний RC приймач](../getting_started/rc_transmitter_receiver.md#connecting-receivers) до транспортного засобу (не постачається в комплекті):
|
||||
|
||||
- Видаліть/відкрутіть верхню пластину (де йде батарея) за допомогою інструменту з головками шестигранника H2.0.
|
||||
- [Підключіть приймач до контролера польоту](../assembly/quick_start_pixhawk4.md#radio-control).
|
||||
- Прикріпіть знову верхню пластину.
|
||||
- Встановіть RC-приймач на плату кар'єра _UP Core_ на задній частині транспортного засобу (використовуйте зажими або двосторонній скотч).
|
||||
- Переконайтеся, що антени вільні від будь-яких перешкод і електрично ізольовані від рами (наприклад, закріпіть їх під платою або до рук або ніг транспортного засобу).
|
||||
- Видаліть/відкрутіть верхню пластину (де йде батарея) за допомогою інструменту з головками шестигранника H2.0.
|
||||
- [Підключіть приймач до контролера польоту](../assembly/quick_start_pixhawk4.md#radio-control).
|
||||
- Прикріпіть знову верхню пластину.
|
||||
- Встановіть RC-приймач на плату кар'єра _UP Core_ на задній частині транспортного засобу (використовуйте зажими або двосторонній скотч).
|
||||
- Переконайтеся, що антени вільні від будь-яких перешкод і електрично ізольовані від рами (наприклад, закріпіть їх під платою або до рук або ніг транспортного засобу).
|
||||
|
||||
2. [Прив'яжіть](../getting_started/rc_transmitter_receiver.md#binding) земельні та повітряні блоки керування RC (якщо ще не зроблено).
|
||||
Процедура прив'язки залежить від конкретної радіосистеми, яку використовують (прочитайте посібник користувача приймача).
|
||||
Процедура прив'язки залежить від конкретної радіосистеми, яку використовують (прочитайте посібник користувача приймача).
|
||||
|
||||
3. Підніміть стійку GPS до вертикального положення та вкрутіть кришку на тримач на базовій пластині. (Не потрібно для v1.5)
|
||||
|
||||

|
||||

|
||||
|
||||
4. Уставте попередньо зображену USB2.0-ручку зі набору в порт _UP Core_, позначений як `USB1` (виділено нижче).
|
||||
|
||||

|
||||

|
||||
|
||||
5. Запустіть транспортний засіб з повністю зарядженою батареєю.
|
||||
:::info
|
||||
Переконайтеся, що гвинти від'єднані перед підключенням батареї.
|
||||
:::info
|
||||
Переконайтеся, що гвинти від'єднані перед підключенням батареї.
|
||||
|
||||
:::
|
||||
|
||||
6. Підключіть земельну станцію до мережі WiFi транспортного засобу (через кілька секунд) за допомогою наступних типових облікових даних:
|
||||
|
||||
- **SSID:** pixhawk4
|
||||
- **Пароль:** px4vision
|
||||
- **SSID:** pixhawk4
|
||||
- **Пароль:** px4vision
|
||||
|
||||
:::tip
|
||||
Ім'я мережі WiFi, пароль та інші облікові дані можуть бути змінені після підключення (за бажанням), використовуючи веб-переглядач для відкриття URL-адреси: `http://192.168.4.1`.
|
||||
Швидкість передачі даних (baud rate) не повинна змінюватися з 921600.
|
||||
:::tip
|
||||
Ім'я мережі WiFi, пароль та інші облікові дані можуть бути змінені після підключення (за бажанням), використовуючи веб-переглядач для відкриття URL-адреси: `http://192.168.4.1`.
|
||||
Швидкість передачі даних (baud rate) не повинна змінюватися з 921600.
|
||||
|
||||
:::
|
||||
|
||||
@@ -174,39 +174,39 @@ PX4 Vision DevKit містить наступні компоненти:
|
||||
|
||||
8. [Налаштувати/калібрувати](../config/index.md) транспортний засіб:
|
||||
|
||||
:::info
|
||||
Транспортний засіб повинен прибути попередньо каліброваним (наприклад, з вбудованим програмним забезпеченням, конструкцією корпусу, батареєю та датчиками, всі встановлені).
|
||||
Проте вам все одно потрібно калібрувати радіосистему (яку ви щойно підключили), і часто варто повторно виконати калібрування компаса.
|
||||
:::info
|
||||
Транспортний засіб повинен прибути попередньо каліброваним (наприклад, з вбудованим програмним забезпеченням, конструкцією корпусу, батареєю та датчиками, всі встановлені).
|
||||
Проте вам все одно потрібно калібрувати радіосистему (яку ви щойно підключили), і часто варто повторно виконати калібрування компаса.
|
||||
|
||||
:::
|
||||
|
||||
- [Калібрування Радісистеми](../config/radio.md)
|
||||
- [Калібрувати Компас](../config/compass.md)
|
||||
- [Калібрування Радісистеми](../config/radio.md)
|
||||
- [Калібрувати Компас](../config/compass.md)
|
||||
|
||||
9. (Опціонально) Налаштуйте перемикач режиму польоту на пульті дистанційного керування, скориставшись [вибором режиму польоту](../config/flight_mode.md).
|
||||
|
||||
:::info
|
||||
Режими також можна змінити за допомогою _QGroundControl_
|
||||
:::info
|
||||
Режими також можна змінити за допомогою _QGroundControl_
|
||||
|
||||
:::
|
||||
|
||||
Ми рекомендуємо визначити RC контролери для перемикачів:
|
||||
Ми рекомендуємо визначити RC контролери для перемикачів:
|
||||
|
||||
- [Режим позиції](../flight_modes_mc/position.md) - безпечний ручний режим польоту, який можна використовувати для тестування запобігання зіткнень.
|
||||
- [Режим місії](../flight_modes_mc/mission.md) - виконуйте місії та тестуйте уникання перешкод.
|
||||
- [Режим повернення](../flight_modes_mc/return.md) - повернення транспортного засобу безпечно до точки запуску та посадка.
|
||||
- [Режим позиції](../flight_modes_mc/position.md) - безпечний ручний режим польоту, який можна використовувати для тестування запобігання зіткнень.
|
||||
- [Режим місії](../flight_modes_mc/mission.md) - виконуйте місії та тестуйте уникання перешкод.
|
||||
- [Режим повернення](../flight_modes_mc/return.md) - повернення транспортного засобу безпечно до точки запуску та посадка.
|
||||
|
||||
10. Прикріпіть гвинти з обертанням, як показано:
|
||||
|
||||

|
||||

|
||||
|
||||
- Напрямки гвинтів можна визначити за мітками: _6045_ (звичайний, проти годинникової стрілки) та _6045_**R** (обернений, за годинниковою стрілкою).
|
||||
- Напрямки гвинтів можна визначити за мітками: _6045_ (звичайний, проти годинникової стрілки) та _6045_**R** (обернений, за годинниковою стрілкою).
|
||||
|
||||

|
||||

|
||||
|
||||
- Закрутіть тісно за допомогою наданих гайок пропелера:
|
||||
- Закрутіть тісно за допомогою наданих гайок пропелера:
|
||||
|
||||

|
||||

|
||||
|
||||
## Політ дроном з униканням
|
||||
|
||||
@@ -216,31 +216,31 @@ PX4 Vision DevKit містить наступні компоненти:
|
||||
|
||||
2. Зачекайте, доки завершиться послідовність завантаження та система уникання розпочне роботу (транспортний засіб відхилить команди на озброєння під час завантаження).
|
||||
|
||||
:::tip
|
||||
Процес завантаження/початку роботи триває близько 1 хвилини з постачаної USB-флешки (або 30 секунд з [внутрішньої пам'яті](#install_image_mission_computer)).
|
||||
:::tip
|
||||
Процес завантаження/початку роботи триває близько 1 хвилини з постачаної USB-флешки (або 30 секунд з [внутрішньої пам'яті](#install_image_mission_computer)).
|
||||
|
||||
:::
|
||||
|
||||
3. Перевірте, що система уникання почала працювати належним чином:
|
||||
|
||||
- Журнал сповіщень _QGroundControl_ відображає повідомлення: **Підключена система уникнення**.
|
||||
- Журнал сповіщень _QGroundControl_ відображає повідомлення: **Підключена система уникнення**.
|
||||
|
||||

|
||||

|
||||
|
||||
- Червоний лазер видно на передній частині камери _Structure Core_.
|
||||
- Червоний лазер видно на передній частині камери _Structure Core_.
|
||||
|
||||
4. Зачекайте, доки світлодіод GPS не засвітиться зеленим кольором.
|
||||
Це означає, що у транспортного засобу є GPS фіксація і він готовий до польоту!
|
||||
Це означає, що у транспортного засобу є GPS фіксація і він готовий до польоту!
|
||||
|
||||
5. Підключіть наземну станцію до мережі WiFi транспортного засобу.
|
||||
|
||||
6. Знайдіть безпечне зовнішнє місце для польоту, ідеально з деревом або якою-небудь іншою зручною перешкодою для тестування PX4 Vision.
|
||||
|
||||
7. Для тестування [попередження про зіткнення](../computer_vision/collision_prevention.md), увімкніть [Режим Позиції](../flight_modes_mc/position.md) та літайте вручну до перешкоди.
|
||||
Транспортний засіб повинен сповільнити і зупинитися протягом 6м від перешкоди (відстань може бути [змінена](../advanced_config/parameters.md) за допомогою параметра [CP_DIST](../advanced_config/parameter_reference.md#CP_DIST)).
|
||||
Транспортний засіб повинен сповільнити і зупинитися протягом 6м від перешкоди (відстань може бути [змінена](../advanced_config/parameters.md) за допомогою параметра [CP_DIST](../advanced_config/parameter_reference.md#CP_DIST)).
|
||||
|
||||
8. To test obstacle avoidance, create a mission where the path is blocked by an obstacle.
|
||||
Потім перейдіть до [Режиму Місії](../flight_modes_mc/mission.md), щоб запустити місію, і спостерігайте, як транспортний засіб рухається навколо перешкоди, а потім повертається на запланований курс.
|
||||
Потім перейдіть до [Режиму Місії](../flight_modes_mc/mission.md), щоб запустити місію, і спостерігайте, як транспортний засіб рухається навколо перешкоди, а потім повертається на запланований курс.
|
||||
|
||||
## Розробка за допомогою комплекту
|
||||
|
||||
@@ -285,22 +285,22 @@ PX4 та супутниковий комп'ютер обмінюються да
|
||||
2. [Увійдіть в супровідний комп'ютер](#login_mission_computer) (як описано вище).
|
||||
|
||||
3. Відкрийте термінал та виконайте наступну команду, щоб скопіювати зображення на внутрішню пам'ять (eMMC).
|
||||
Термінал буде пропонувати ввести кількість відповідей під час процесу прошивки.
|
||||
Термінал буде пропонувати ввести кількість відповідей під час процесу прошивки.
|
||||
|
||||
```sh
|
||||
cd ~/catkin_ws/src/px4vision_ros/tools
|
||||
sudo ./flash_emmc.sh
|
||||
```
|
||||
```sh
|
||||
cd ~/catkin_ws/src/px4vision_ros/tools
|
||||
sudo ./flash_emmc.sh
|
||||
```
|
||||
|
||||
:::info
|
||||
Всю інформацію, збережену в комп'ютері _UP Core_, буде видалено при виконанні цього сценарію.
|
||||
:::info
|
||||
Всю інформацію, збережену в комп'ютері _UP Core_, буде видалено при виконанні цього сценарію.
|
||||
|
||||
:::
|
||||
|
||||
4. Витягніть USB-флешку.
|
||||
|
||||
5. Перезавантажте пристрій.
|
||||
Тепер ком'ютер _UP Core_ буде завантажений з внутрішньої пам'яті (eMMC).
|
||||
Тепер ком'ютер _UP Core_ буде завантажений з внутрішньої пам'яті (eMMC).
|
||||
|
||||
### Запустіть супутній комп'ютер
|
||||
|
||||
@@ -324,24 +324,24 @@ PX4 та супутниковий комп'ютер обмінюються да
|
||||
|
||||
1. Підключіть клавіатуру та мишу до _UP Core_ через порт `USB2`:
|
||||
|
||||

|
||||

|
||||
|
||||
- Використовуйте кабель USB-JST з комплекту, щоб отримати роз'єм USB A
|
||||
- Використовуйте кабель USB-JST з комплекту, щоб отримати роз'єм USB A
|
||||
|
||||

|
||||

|
||||
|
||||
- До кабелю можна підключити USB хаб, якщо клавіатура та миша мають окремі роз'єми.
|
||||
- До кабелю можна підключити USB хаб, якщо клавіатура та миша мають окремі роз'єми.
|
||||
|
||||
2. Підключіть монітор до порту HDMI _UP Core_.
|
||||
|
||||

|
||||

|
||||
|
||||
Екран входу в Ubuntu повинен з'явитися на моніторі.
|
||||
Екран входу в Ubuntu повинен з'явитися на моніторі.
|
||||
|
||||
3. Увійдіть в _UP Core_ за допомогою облікових даних:
|
||||
|
||||
- **Username:** px4vision
|
||||
- **Password:** px4vision
|
||||
- **Username:** px4vision
|
||||
- **Password:** px4vision
|
||||
|
||||
### Розробка / Розширення уникнення PX4
|
||||
|
||||
@@ -356,39 +356,39 @@ PX4 та супутниковий комп'ютер обмінюються да
|
||||
|
||||
1. Вимкніть процес уникання за допомогою наступної команди:
|
||||
|
||||
```sh
|
||||
systemctl stop avoidance.service
|
||||
```
|
||||
```sh
|
||||
systemctl stop avoidance.service
|
||||
```
|
||||
|
||||
Ви можете просто перезавантажити машину, щоб перезапустити службу.
|
||||
Ви можете просто перезавантажити машину, щоб перезапустити службу.
|
||||
|
||||
Інші корисні команди підтримуються:
|
||||
Інші корисні команди підтримуються:
|
||||
|
||||
```sh
|
||||
# restart service
|
||||
systemctl start avoidance.service
|
||||
```sh
|
||||
# restart service
|
||||
systemctl start avoidance.service
|
||||
|
||||
# disable service (stop service and do not restart after boot)
|
||||
systemctl disable avoidance.service
|
||||
# disable service (stop service and do not restart after boot)
|
||||
systemctl disable avoidance.service
|
||||
|
||||
# enable service (start service and enable restart after boot)
|
||||
systemctl enable avoidance.service
|
||||
```
|
||||
# enable service (start service and enable restart after boot)
|
||||
systemctl enable avoidance.service
|
||||
```
|
||||
|
||||
2. Вихідний код пакету уникання перешкод можна знайти за адресою https://github.com/PX4/PX4-Avoidance, який розташований в `~/catkin_ws/src/avoidance`.
|
||||
|
||||
3. Внесіть зміни до коду! Щоб отримати останній код уникання, витягніть код з репозиторію уникання:
|
||||
|
||||
```sh
|
||||
git pull origin
|
||||
git checkout origin/master
|
||||
```
|
||||
```sh
|
||||
git pull origin
|
||||
git checkout origin/master
|
||||
```
|
||||
|
||||
4. Побудуйте пакет
|
||||
|
||||
```sh
|
||||
catkin build local_planner
|
||||
```
|
||||
```sh
|
||||
catkin build local_planner
|
||||
```
|
||||
|
||||
Робоче середовище ROS розміщене в `~/catkin_ws`.
|
||||
Для посилання на розробку в ROS та використання робочого простору catkin, див. [Посібники ROS catkin](http://wiki.ros.org/catkin/Tutorials).
|
||||
|
||||
@@ -33,4 +33,4 @@ They may come either fully assembled or in parts.
|
||||
## Дивіться також
|
||||
|
||||
- [Повні Транспортні Засоби (Фіксовані Крила)](../complete_vehicles_fw/README.md)
|
||||
- [Повні Транспортні Засоби (MC)](../complete_vehicles_mc/README.md)
|
||||
- [Повні Транспортні Засоби (MC)](../complete_vehicles_mc/README.md)
|
||||
@@ -47,7 +47,7 @@ PX4 v1.14 (and later) supports the [LightWare LiDAR SF45](../sensor/sf45_rotatin
|
||||
|
||||
- Attach and configure the distance sensor on a particular port (see [sensor-specific docs](../sensor/rangefinders.md)) and enable collision prevention using [CP_DIST](#CP_DIST).
|
||||
- Модифікуйте драйвер для встановлення орієнтації.
|
||||
This should be done by mimicking the `SENS_CM8JL65_R_0` parameter (though you might also hard-code the orientation in the sensor _module.yaml_ file to something like `sf0x start -d ${SERIAL_DEV} -R 25` - where 25 is equivalent to `ROTATION_DOWNWARD_FACING`).
|
||||
This should be done by mimicking the `SENS_CM8JL65_R_0` parameter (though you might also hard-code the orientation in the sensor _module.yaml_ file to something like `sf0x start -d ${SERIAL_DEV} -R 25` - where 25 is equivalent to `ROTATION_DOWNWARD_FACING`).
|
||||
- Modify the driver to set the _field of view_ in the distance sensor UORB topic (`distance_sensor_s.h_fov`).
|
||||
|
||||
## PX4 (Software) Setup
|
||||
@@ -184,7 +184,7 @@ Next, adjust the relevant parameters to the appropriate values and add arbitrary
|
||||
|
||||
The diagram below shows a simulation of collision prevention as viewed in Gazebo.
|
||||
|
||||

|
||||

|
||||
|
||||
## Development Information/Tools
|
||||
|
||||
@@ -203,85 +203,85 @@ The Lua script works by extracting the `obstacle_distance_fused` data at each ti
|
||||
|
||||
2. Configure PX4 to publish obstacle distance data (so that it is available to PlotJuggler):
|
||||
|
||||
Add the [`obstacle_distance_fused`](../msg_docs/ObstacleDistance.md) UORB topic to your [`dds_topics.yaml`](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/uxrce_dds_client/dds_topics.yaml) so that it is published by PX4:
|
||||
Add the [`obstacle_distance_fused`](../msg_docs/ObstacleDistance.md) UORB topic to your [`dds_topics.yaml`](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/uxrce_dds_client/dds_topics.yaml) so that it is published by PX4:
|
||||
|
||||
```sh
|
||||
- topic: /fmu/out/obstacle_distance_fused
|
||||
type: px4_msgs::msg::ObstacleDistance
|
||||
```
|
||||
```sh
|
||||
- topic: /fmu/out/obstacle_distance_fused
|
||||
type: px4_msgs::msg::ObstacleDistance
|
||||
```
|
||||
|
||||
For more information see [DDS Topics YAML](../middleware/uxrce_dds.md#dds-topics-yaml) in _uXRCE-DDS (PX4-ROS 2/DDS Bridge)_.
|
||||
For more information see [DDS Topics YAML](../middleware/uxrce_dds.md#dds-topics-yaml) in _uXRCE-DDS (PX4-ROS 2/DDS Bridge)_.
|
||||
|
||||
3. Open PlotJuggler and navigate to the **Tools > Reactive Script Editor** section.
|
||||
In the **Script Editor** tab, add following scripts in the appropriate sections:
|
||||
In the **Script Editor** tab, add following scripts in the appropriate sections:
|
||||
|
||||
- **Global code, executed once:**
|
||||
- **Global code, executed once:**
|
||||
|
||||
```lua
|
||||
obs_dist_fused_xy = ScatterXY.new("obstacle_distance_fused_xy")
|
||||
obs_dist_min = Timeseries.new("obstacle_distance_minimum")
|
||||
```
|
||||
```lua
|
||||
obs_dist_fused_xy = ScatterXY.new("obstacle_distance_fused_xy")
|
||||
obs_dist_min = Timeseries.new("obstacle_distance_minimum")
|
||||
```
|
||||
|
||||
- **function(tracker_time)**
|
||||
- **function(tracker_time)**
|
||||
|
||||
```lua
|
||||
obs_dist_fused_xy:clear()
|
||||
```lua
|
||||
obs_dist_fused_xy:clear()
|
||||
|
||||
i = 0
|
||||
angle_offset = TimeseriesView.find("/fmu/out/obstacle_distance_fused/angle_offset")
|
||||
increment = TimeseriesView.find("/fmu/out/obstacle_distance_fused/increment")
|
||||
min_dist = 65535
|
||||
i = 0
|
||||
angle_offset = TimeseriesView.find("/fmu/out/obstacle_distance_fused/angle_offset")
|
||||
increment = TimeseriesView.find("/fmu/out/obstacle_distance_fused/increment")
|
||||
min_dist = 65535
|
||||
|
||||
-- Cache increment and angle_offset values at tracker_time to avoid repeated calls
|
||||
local angle_offset_value = angle_offset:atTime(tracker_time)
|
||||
local increment_value = increment:atTime(tracker_time)
|
||||
-- Cache increment and angle_offset values at tracker_time to avoid repeated calls
|
||||
local angle_offset_value = angle_offset:atTime(tracker_time)
|
||||
local increment_value = increment:atTime(tracker_time)
|
||||
|
||||
if increment_value == nil or increment_value <= 0 then
|
||||
print("Invalid increment value: " .. tostring(increment_value))
|
||||
return
|
||||
end
|
||||
if increment_value == nil or increment_value <= 0 then
|
||||
print("Invalid increment value: " .. tostring(increment_value))
|
||||
return
|
||||
end
|
||||
|
||||
local max_steps = math.floor(360 / increment_value)
|
||||
local max_steps = math.floor(360 / increment_value)
|
||||
|
||||
while i < max_steps do
|
||||
local str = string.format("/fmu/out/obstacle_distance_fused/distances[%d]", i)
|
||||
local distance = TimeseriesView.find(str)
|
||||
if distance == nil then
|
||||
print("No distance data for: " .. str)
|
||||
break
|
||||
end
|
||||
while i < max_steps do
|
||||
local str = string.format("/fmu/out/obstacle_distance_fused/distances[%d]", i)
|
||||
local distance = TimeseriesView.find(str)
|
||||
if distance == nil then
|
||||
print("No distance data for: " .. str)
|
||||
break
|
||||
end
|
||||
|
||||
local dist = distance:atTime(tracker_time)
|
||||
if dist ~= nil and dist < 65535 then
|
||||
-- Calculate angle and Cartesian coordinates
|
||||
local angle = angle_offset_value + i * increment_value
|
||||
local y = dist * math.cos(math.rad(angle))
|
||||
local x = dist * math.sin(math.rad(angle))
|
||||
local dist = distance:atTime(tracker_time)
|
||||
if dist ~= nil and dist < 65535 then
|
||||
-- Calculate angle and Cartesian coordinates
|
||||
local angle = angle_offset_value + i * increment_value
|
||||
local y = dist * math.cos(math.rad(angle))
|
||||
local x = dist * math.sin(math.rad(angle))
|
||||
|
||||
obs_dist_fused_xy:push_back(x, y)
|
||||
obs_dist_fused_xy:push_back(x, y)
|
||||
|
||||
-- Update minimum distance
|
||||
if dist < min_dist then
|
||||
min_dist = dist
|
||||
end
|
||||
end
|
||||
-- Update minimum distance
|
||||
if dist < min_dist then
|
||||
min_dist = dist
|
||||
end
|
||||
end
|
||||
|
||||
i = i + 1
|
||||
end
|
||||
i = i + 1
|
||||
end
|
||||
|
||||
-- Push minimum distance once after the loop
|
||||
if min_dist < 65535 then
|
||||
obs_dist_min:push_back(tracker_time, min_dist)
|
||||
else
|
||||
print("No valid minimum distance found")
|
||||
end
|
||||
```
|
||||
-- Push minimum distance once after the loop
|
||||
if min_dist < 65535 then
|
||||
obs_dist_min:push_back(tracker_time, min_dist)
|
||||
else
|
||||
print("No valid minimum distance found")
|
||||
end
|
||||
```
|
||||
|
||||
4. Enter a name for the script on the top right, and press **Save**.
|
||||
Once saved, the script should appear in the _Active Scripts_ section.
|
||||
Once saved, the script should appear in the _Active Scripts_ section.
|
||||
|
||||
5. Start streaming the data using the approach described in [Plotting uORB Topic Data in Real Time using PlotJuggler](../debug/plotting_realtime_uorb_data.md).
|
||||
You should see the `obstacle_distance_fused_xy` and `obstacle_distance_minimum` timeseries on the left.
|
||||
You should see the `obstacle_distance_fused_xy` and `obstacle_distance_minimum` timeseries on the left.
|
||||
|
||||
Note that you have to press **Save** again to re-enable the scripts after loading a new log file or otherwise clearing data.
|
||||
|
||||
@@ -293,7 +293,7 @@ New sensor data is compared to the existing map, and used to update any sections
|
||||
|
||||
The angles in the `obstacle_distance` topic are defined as follows:
|
||||
|
||||

|
||||

|
||||
|
||||
The data from rangefinders, rotary lidars, or companion computers, is processed differently, as described below.
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Інтерфейс планування маршруту
|
||||
|
||||
<Badge type="warning" text="Removed" />
|
||||
<Badge type="warning" text="Removed PX4 v1.15" />
|
||||
|
||||
:::warning
|
||||
The **Path Planning Interface**, along with the features **Obstacle avoidance in Missions** and **Safe Landing** are no longer supported or maintained, and _should not_ be used in any PX4 version.
|
||||
|
||||
@@ -95,7 +95,7 @@ For more detailed/additional information, see: [Using PX4's Navigation Filter (E
|
||||
|
||||
Приблизна оцінка затримки може бути отримана з журналів, перевіряючи зсув між частотами IMU та частотами EV:
|
||||
|
||||

|
||||

|
||||
|
||||
:::info
|
||||
Графік зовнішніх даних проти вбудованої оцінки (як вище) може бути створений за допомогою [FlightPlot](../log/flight_log_analysis.md#flightplot) або подібних засобів аналізу польоту.
|
||||
@@ -132,15 +132,15 @@ For more detailed/additional information, see: [Using PX4's Navigation Filter (E
|
||||
Якщо ці кроки є послідовними, ви можете спробувати свій перший польот:
|
||||
|
||||
1. Покладіть літак на землю і почніть передавати зворотний зв'язок `ODOMETRY` (як вище).
|
||||
Потягніть палицю газу вниз і зберметизуйте двигуни.
|
||||
Потягніть палицю газу вниз і зберметизуйте двигуни.
|
||||
|
||||
На цьому етапі, зліва палиця на найнижчому положенні, перейдіть у режим позиціонного контролю.
|
||||
Ви повинні побачити зелену лампочку.
|
||||
Зелена лампочка свідчить про те, що доступний зворотний зв'язок позиції, і позиційний контроль активований.
|
||||
На цьому етапі, зліва палиця на найнижчому положенні, перейдіть у режим позиціонного контролю.
|
||||
Ви повинні побачити зелену лампочку.
|
||||
Зелена лампочка свідчить про те, що доступний зворотний зв'язок позиції, і позиційний контроль активований.
|
||||
|
||||
2. Покладіть палицю газу в середину (мертву зону), щоб літак підтримував свою висоту.
|
||||
Підняття палиці збільшить висоту посилки, тоді як зниження значення зменшить її.
|
||||
Так само, інша палиця змінить положення над землею.
|
||||
Підняття палиці збільшить висоту посилки, тоді як зниження значення зменшить її.
|
||||
Так само, інша палиця змінить положення над землею.
|
||||
|
||||
3. Збільшуйте значення перемикача газу, і літак злетить. Відразу після цього поверніть його в середину.
|
||||
|
||||
|
||||
@@ -71,41 +71,41 @@ events::send<uint8_t, float>(events::ID("event_name"),
|
||||
- `/* EVENT`: Цей тег вказує, що коментар описує метадані для наступної події.
|
||||
|
||||
- **event_name**: ім'я події (`events::ID(event_name)`).
|
||||
- повинно бути унікальним в межах всього вихідного коду PX4.
|
||||
Як загальне правило, додайте префікс з назвою модуля або вихідного файлу для великих модулів.
|
||||
- має бути дійсна назва змінної, тобто не повинна містити пробіли, двокрапки тощо.
|
||||
- з цього імені отримується 24-бітний ID події за допомогою геш-функції.
|
||||
Це означає, що до тих пір, поки ім'я події залишається однаковим, ID залишиться тим же.
|
||||
- повинно бути унікальним в межах всього вихідного коду PX4.
|
||||
Як загальне правило, додайте префікс з назвою модуля або вихідного файлу для великих модулів.
|
||||
- має бути дійсна назва змінної, тобто не повинна містити пробіли, двокрапки тощо.
|
||||
- з цього імені отримується 24-бітний ID події за допомогою геш-функції.
|
||||
Це означає, що до тих пір, поки ім'я події залишається однаковим, ID залишиться тим же.
|
||||
|
||||
- **Рівень журналювання**:
|
||||
|
||||
- припустимі рівні журналювання такі ж, як і у перерахуванні MAVLink [MAV_SEVERITY](https://mavlink.io/en/messages/common.html#MAV_SEVERITY).
|
||||
Рівні перелічені за зменшенням важливості:
|
||||
- припустимі рівні журналювання такі ж, як і у перерахуванні MAVLink [MAV_SEVERITY](https://mavlink.io/en/messages/common.html#MAV_SEVERITY).
|
||||
Рівні перелічені за зменшенням важливості:
|
||||
|
||||
```plain
|
||||
Emergency,
|
||||
Alert,
|
||||
Critical,
|
||||
Error,
|
||||
Warning,
|
||||
Notice,
|
||||
Info,
|
||||
Debug,
|
||||
Disabled,
|
||||
```
|
||||
```plain
|
||||
Emergency,
|
||||
Alert,
|
||||
Critical,
|
||||
Error,
|
||||
Warning,
|
||||
Notice,
|
||||
Info,
|
||||
Debug,
|
||||
Disabled,
|
||||
```
|
||||
|
||||
```
|
||||
Попередньо ми вказали окремий зовнішній і внутрішній рівень журналювання, які є рівнями для користувачів GCS і в файлі журналу, відповідно: `{events::Log::Error, events::LogInternal::Info}`.
|
||||
```
|
||||
```
|
||||
Попередньо ми вказали окремий зовнішній і внутрішній рівень журналювання, які є рівнями для користувачів GCS і в файлі журналу, відповідно: `{events::Log::Error, events::LogInternal::Info}`.
|
||||
```
|
||||
|
||||
- **Повідомлення про подію**:
|
||||
- Коротке повідомлення про подію в один рядок.
|
||||
Може мати шаблонні замінники для аргументів (наприклад `{1}`). Для додаткової інформації дивіться нижче. Для додаткової інформації дивіться нижче.
|
||||
- Коротке повідомлення про подію в один рядок.
|
||||
Може мати шаблонні замінники для аргументів (наприклад `{1}`). Для додаткової інформації дивіться нижче. Для додаткової інформації дивіться нижче.
|
||||
|
||||
- **Опис події**:
|
||||
- Докладний, необов'язковий опис події.
|
||||
- Може бути кілька рядів/абзаців.
|
||||
- It may contain template placeholders for arguments (e.g. `{2}`) and supported tags (see below)
|
||||
- Докладний, необов'язковий опис події.
|
||||
- Може бути кілька рядів/абзаців.
|
||||
- It may contain template placeholders for arguments (e.g. `{2}`) and supported tags (see below)
|
||||
|
||||
#### Аргументи та перерахування
|
||||
|
||||
@@ -124,35 +124,35 @@ Events can have a fixed set of arguments that can be inserted into the message o
|
||||
|
||||
- символи можна екранувати за допомогою \\
|
||||
|
||||
Ці символи повинні бути екрановані: '\\\\', '\\<', '\\{'.
|
||||
Ці символи повинні бути екрановані: '\\\\', '\\<', '\\{'.
|
||||
|
||||
- теги що підтримуються:
|
||||
|
||||
- Профілі: `<profile name="[!]NAME">CONTENT</profile>`
|
||||
- Профілі: `<profile name="[!]NAME">CONTENT</profile>`
|
||||
|
||||
`CONTENT` буде показано, лише якщо назва збігається з налаштованим профілем.
|
||||
Це може бути використано, наприклад, щоб приховати інформацію для розробників від кінцевих користувачів.
|
||||
`CONTENT` буде показано, лише якщо назва збігається з налаштованим профілем.
|
||||
Це може бути використано, наприклад, щоб приховати інформацію для розробників від кінцевих користувачів.
|
||||
|
||||
- URLs: `<a [href="URL"]>CONTENT</a>`.
|
||||
If `href` is not set, use `CONTENT` as `URL` (i.e.`<a>https://docs.px4.io</a>` is interpreted as `<a href="https://docs.px4.io">https://docs.px4.io</a>`)
|
||||
- URLs: `<a [href="URL"]>CONTENT</a>`.
|
||||
If `href` is not set, use `CONTENT` as `URL` (i.e.`<a>https://docs.px4.io</a>` is interpreted as `<a href="https://docs.px4.io">https://docs.px4.io</a>`)
|
||||
|
||||
- Parameters: `<param>PARAM_NAME</param>`
|
||||
- Parameters: `<param>PARAM_NAME</param>`
|
||||
|
||||
- не дозволено використовувати вкладені теги того ж типу
|
||||
- не дозволено використовувати вкладені теги того ж типу
|
||||
|
||||
- аргументи: шаблонні замінники, що відповідають синтаксису python з індексацією що починається з 1 (замість 0)
|
||||
|
||||
- загальна форма: `{ARG_IDX[:.NUM_DECIMAL_DIGITS][UNIT]}`
|
||||
- загальна форма: `{ARG_IDX[:.NUM_DECIMAL_DIGITS][UNIT]}`
|
||||
|
||||
UNIT:
|
||||
UNIT:
|
||||
|
||||
- m: горизонтальна відстань в метрах
|
||||
- m_v: вертикальна відстань в метрах
|
||||
- m^2: площа в метрах квадратних
|
||||
- m/s: швидкість у метрах в секунду
|
||||
- C: температура у градусах Цельсія
|
||||
- m: горизонтальна відстань в метрах
|
||||
- m_v: вертикальна відстань в метрах
|
||||
- m^2: площа в метрах квадратних
|
||||
- m/s: швидкість у метрах в секунду
|
||||
- C: температура у градусах Цельсія
|
||||
|
||||
- `NUM_DECIMAL_DIGITS` підходить тільки для аргументів у вигляді дійсних чисел.
|
||||
- `NUM_DECIMAL_DIGITS` підходить тільки для аргументів у вигляді дійсних чисел.
|
||||
|
||||
## Логування
|
||||
|
||||
|
||||
@@ -38,24 +38,24 @@ _Польотні завдання_ використовуються у [Реж
|
||||
|
||||
- Оновіть відмітку про авторське право до поточного року
|
||||
|
||||
```cmake
|
||||
############################################################################
|
||||
#
|
||||
# Copyright (c) 2021 PX4 Development Team. All rights reserved.
|
||||
#
|
||||
```
|
||||
```cmake
|
||||
############################################################################
|
||||
#
|
||||
# Copyright (c) 2021 PX4 Development Team. All rights reserved.
|
||||
#
|
||||
```
|
||||
|
||||
- Модифікуйте код щоб він відповідав новому завданню, наприклад замініть `FlightTaskOrbit` на `FlightTaskMyTask`.
|
||||
Код буде виглядати приблизно так:
|
||||
Код буде виглядати приблизно так:
|
||||
|
||||
```cmake
|
||||
px4_add_library(FlightTaskMyTask
|
||||
FlightTaskMyTask.cpp
|
||||
)
|
||||
```cmake
|
||||
px4_add_library(FlightTaskMyTask
|
||||
FlightTaskMyTask.cpp
|
||||
)
|
||||
|
||||
target_link_libraries(FlightTaskMyTask PUBLIC FlightTask)
|
||||
target_include_directories(FlightTaskMyTask PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
```
|
||||
target_link_libraries(FlightTaskMyTask PUBLIC FlightTask)
|
||||
target_include_directories(FlightTaskMyTask PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
```
|
||||
|
||||
4. Оновіть файл заголовків (у цьому випадку **FlightTaskMyTask. pp**): Більшість завдань повторно реалізує віртуальні методи `activate()` і `update()`, в цьому прикладі ми також маємо приватну змінну.
|
||||
|
||||
@@ -140,35 +140,35 @@ _Польотні завдання_ використовуються у [Реж
|
||||
|
||||
- Оновіть `MPC_POS_MODE` ([multicopter_position_mode_params.](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mc_pos_control/multicopter_position_mode_params.c)), щоб додати варіант для вибору "MyTask", якщо параметр має раніше невикористане значення, наприклад 5:
|
||||
|
||||
```c
|
||||
...
|
||||
* @value 0 Direct velocity
|
||||
* @value 3 Smoothed velocity
|
||||
* @value 4 Acceleration based
|
||||
* @value 5 My task
|
||||
* @group Multicopter Position Control
|
||||
*/
|
||||
PARAM_DEFINE_INT32(MPC_POS_MODE, 5);
|
||||
```
|
||||
```c
|
||||
...
|
||||
* @value 0 Direct velocity
|
||||
* @value 3 Smoothed velocity
|
||||
* @value 4 Acceleration based
|
||||
* @value 5 My task
|
||||
* @group Multicopter Position Control
|
||||
*/
|
||||
PARAM_DEFINE_INT32(MPC_POS_MODE, 5);
|
||||
```
|
||||
|
||||
- Додайте мітку case для нового варіанту в операторі switch для параметра в [FlightModeManager.cpp](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/flight_mode_manager/FlightModeManager.cpp#L266-L285), щоб увімкнути завдання коли `_param_mpc_pos_mode` має відповідне значення.
|
||||
|
||||
```cpp
|
||||
...
|
||||
// manual position control
|
||||
...
|
||||
switch (_param_mpc_pos_mode.get()) {
|
||||
...
|
||||
case 3:
|
||||
error = switchTask(FlightTaskIndex::ManualPositionSmoothVel);
|
||||
break;
|
||||
case 5: // Add case for new task: MyTask
|
||||
error = switchTask(FlightTaskIndex::MyTask);
|
||||
break;
|
||||
case 4:
|
||||
....
|
||||
...
|
||||
```
|
||||
```cpp
|
||||
...
|
||||
// manual position control
|
||||
...
|
||||
switch (_param_mpc_pos_mode.get()) {
|
||||
...
|
||||
case 3:
|
||||
error = switchTask(FlightTaskIndex::ManualPositionSmoothVel);
|
||||
break;
|
||||
case 5: // Add case for new task: MyTask
|
||||
error = switchTask(FlightTaskIndex::MyTask);
|
||||
break;
|
||||
case 4:
|
||||
....
|
||||
...
|
||||
```
|
||||
|
||||
## Перевірка нового польотного завдання
|
||||
|
||||
|
||||
+18
-18
@@ -43,13 +43,13 @@ The airframe must fly well enough to handle moderate disturbances, and should be
|
||||
2. Take off and <div style="display: inline;" v-if="$frontmatter.frame === 'Multicopter'">hover at 1m above ground in [Altitude mode](../flight_modes_mc/altitude.md) or [Stabilized mode](../flight_modes_mc/manual_stabilized.md)</div><div style="display: inline;" v-else-if="$frontmatter.frame === 'Plane'">fly at cruise speed in [Position mode](../flight_modes_fw/position.md) or [Altitude mode](../flight_modes_fw/altitude.md)</div>.
|
||||
|
||||
3. Use the RC transmitter roll stick to perform the following maneuver, tilting the vehicle just a few degrees: _roll left > roll right > center_ (The whole maneuver should take about 3 seconds).
|
||||
Транспортний засіб повинен стабілізуватися протягом 2 коливань.
|
||||
Транспортний засіб повинен стабілізуватися протягом 2 коливань.
|
||||
|
||||
4. Повторіть маневр, нахиляючись з більшими амплітудами при кожної спроби.
|
||||
Якщо транспортний засіб може стабілізуватися протягом 2 коливань під кутом близько 20 градусів, перейдіть до наступного кроку.
|
||||
Якщо транспортний засіб може стабілізуватися протягом 2 коливань під кутом близько 20 градусів, перейдіть до наступного кроку.
|
||||
|
||||
5. Повторіть ті ж маніпуляції, але по осі поля.
|
||||
Як вище, почніть з невеликих кутів і підтвердіть, що транспортний засіб може стабілізуватися самостійно протягом 2 коливань, перш ніж збільшувати нахил.
|
||||
Як вище, почніть з невеликих кутів і підтвердіть, що транспортний засіб може стабілізуватися самостійно протягом 2 коливань, перш ніж збільшувати нахил.
|
||||
|
||||
If the drone can stabilize itself within 2 oscillations it is ready for the [auto-tuning procedure](#auto-tuning-procedure).
|
||||
|
||||
@@ -72,35 +72,35 @@ The RC sticks cannot be used during autotuning (moving the sticks will stop the
|
||||
1. Perform the [pre-tuning test](#pre-tuning-test).
|
||||
|
||||
2. Takeoff using RC control <div style="display: inline;" v-if="$frontmatter.frame === 'Multicopter'">in [Altitude mode](../flight_modes_mc/altitude.md).
|
||||
Hover the vehicle at a safe distance and at a few meters above ground (between 4 and 20m).</div><div v-else-if="$frontmatter.frame === 'Plane'">
|
||||
Once flying at cruise speed, activate [Hold mode](../flight_modes_fw/hold.md).
|
||||
This will guide the plane to fly in circle at constant altitude and speed.</div>
|
||||
Hover the vehicle at a safe distance and at a few meters above ground (between 4 and 20m).</div><div v-else-if="$frontmatter.frame === 'Plane'">
|
||||
Once flying at cruise speed, activate [Hold mode](../flight_modes_fw/hold.md).
|
||||
This will guide the plane to fly in circle at constant altitude and speed.</div>
|
||||
|
||||
3. Enable autotune.
|
||||
|
||||
<div v-if="$frontmatter.frame === 'Plane'">
|
||||
<div class="tip custom-block"><p class="custom-block-title">TIP</p>
|
||||
<div v-if="$frontmatter.frame === 'Plane'">
|
||||
<div class="tip custom-block"><p class="custom-block-title">TIP</p>
|
||||
|
||||
If an [Enable/Disable Autotune Switch](#enable-disable-autotune-switch) is configured you can just toggle the switch to the "enabled" position.
|
||||
If an [Enable/Disable Autotune Switch](#enable-disable-autotune-switch) is configured you can just toggle the switch to the "enabled" position.
|
||||
|
||||
</div></div>
|
||||
</div></div>
|
||||
|
||||
1. In QGroundControl, open the menu **Vehicle setup > PID Tuning**:
|
||||
1. In QGroundControl, open the menu **Vehicle setup > PID Tuning**:
|
||||
|
||||

|
||||

|
||||
|
||||
2. Select either the _Rate Controller_ or _Attitude Controller_ tabs.
|
||||
2. Select either the _Rate Controller_ or _Attitude Controller_ tabs.
|
||||
|
||||
3. Ensure that the **Autotune enabled** button is enabled (this will display the **Autotune** button and remove the manual tuning selectors).
|
||||
3. Ensure that the **Autotune enabled** button is enabled (this will display the **Autotune** button and remove the manual tuning selectors).
|
||||
|
||||
4. Read the warning popup and click on **OK** to start tuning.
|
||||
4. Read the warning popup and click on **OK** to start tuning.
|
||||
|
||||
4. Дрон спочатку почне виконувати швидкі рухи кочення, а потім рухи тангажу та рухи курсу.
|
||||
The progress is shown in the progress bar, next to the _Autotune_ button.
|
||||
The progress is shown in the progress bar, next to the _Autotune_ button.
|
||||
|
||||
5. <div style="display: inline;" v-if="$frontmatter.frame === 'Multicopter'">Manually land and disarm to apply the new tuning parameters.
|
||||
Takeoff carefully and manually test that the vehicle is stable.</div><div v-else-if="$frontmatter.frame === 'Plane'">The tuning will be immediately/automatically be applied and tested in flight (by default).
|
||||
PX4 потім проведе 4-секундний тест і поверне нове налаштування, якщо буде виявлено проблему.</div>
|
||||
Takeoff carefully and manually test that the vehicle is stable.</div><div v-else-if="$frontmatter.frame === 'Plane'">The tuning will be immediately/automatically be applied and tested in flight (by default).
|
||||
PX4 потім проведе 4-секундний тест і поверне нове налаштування, якщо буде виявлено проблему.</div>
|
||||
|
||||
:::warning
|
||||
If any strong oscillations occur, land immediately and follow the instructions in the [Troubleshooting](#troubleshooting) section below.
|
||||
|
||||
+46
-46
@@ -448,9 +448,9 @@ QGC потім автоматично обере наступний двигун
|
||||
|
||||
4. One motor will start spinning (click **Spin Motor Again** if it stops spinning too quickly to note.)
|
||||
|
||||
Виберіть відповідний двигун в розділі геометрії.
|
||||
Виберіть відповідний двигун в розділі геометрії.
|
||||
|
||||

|
||||

|
||||
|
||||
5. Після призначення всіх двигунів інструмент встановить правильне відображення двигунів для виходів, а потім вийде.
|
||||
|
||||
@@ -467,15 +467,15 @@ Actuator outputs for both motors and servos can be _manually_ assigned using sli
|
||||
1. First assign functions to the outputs that you think are _likely_ to be correct in the _Actuator Outputs_ section.
|
||||
2. Toggle the **Enable sliders** switch in _Actuator Testing_ section.
|
||||
3. Перемістіть повзунок для приводу, який ви хочете перевірити:
|
||||
- Двигуни повинні бути переведені в положення мінімального тяги.
|
||||
- Сервоприводи повинні бути переміщені близько до середнього положення.
|
||||
- Двигуни повинні бути переведені в положення мінімального тяги.
|
||||
- Сервоприводи повинні бути переміщені близько до середнього положення.
|
||||
4. Перевірте, який привод рухається на транспортному засобі.
|
||||
This should match the actuator positions for your geometry (the [airframe reference](../airframes/airframe_reference.md) shows motor positions for a number of standard airframes).
|
||||
- Якщо правильний привод рухається, перейдіть до наступного кроку.
|
||||
- Якщо неправильний привод рухається, поміняйте призначення виводу.
|
||||
- Якщо нічого не рухається, то збільште регулятор наполовину діапазону, потім вище, якщо потрібно.
|
||||
Якщо після цього нічого не рухається, вихід може бути не підключений, можливо, двигун не живиться або вихід може бути неправильно налаштований.
|
||||
Вам потрібно буде вирішити проблему (можливо, спробуйте інші виходи виконавчих пристроїв, щоб побачити, чи "щось" рухається).
|
||||
This should match the actuator positions for your geometry (the [airframe reference](../airframes/airframe_reference.md) shows motor positions for a number of standard airframes).
|
||||
- Якщо правильний привод рухається, перейдіть до наступного кроку.
|
||||
- Якщо неправильний привод рухається, поміняйте призначення виводу.
|
||||
- Якщо нічого не рухається, то збільште регулятор наполовину діапазону, потім вище, якщо потрібно.
|
||||
Якщо після цього нічого не рухається, вихід може бути не підключений, можливо, двигун не живиться або вихід може бути неправильно налаштований.
|
||||
Вам потрібно буде вирішити проблему (можливо, спробуйте інші виходи виконавчих пристроїв, щоб побачити, чи "щось" рухається).
|
||||
5. Поверніть слайдер у положення "роззброєно" (донизу для двигунів, по центру для сервоприводів).
|
||||
6. Повторити для всіх приводів
|
||||
|
||||
@@ -501,34 +501,34 @@ Remove propellers!
|
||||
Для кожного двигуна:
|
||||
|
||||
1. Тягніть слайдер мотора вниз, щоб він защелкнувся унизу.
|
||||
In this position the motor is set to the outputs `disarmed` value.
|
||||
- Перевірте, що двигун не обертається в цьому положенні.
|
||||
- If the motor spins, reduce the corresponding PWM `disarmed` value in the [Actuator Outputs](#actuator-outputs) section to below the level at which it still spins.
|
||||
In this position the motor is set to the outputs `disarmed` value.
|
||||
- Перевірте, що двигун не обертається в цьому положенні.
|
||||
- If the motor spins, reduce the corresponding PWM `disarmed` value in the [Actuator Outputs](#actuator-outputs) section to below the level at which it still spins.
|
||||
|
||||
2. Slowly move the slider up until it snaps to the _minimum_ position.
|
||||
In this position the motor is set to the outputs `minimum` value.
|
||||
In this position the motor is set to the outputs `minimum` value.
|
||||
|
||||
- Перевірте, чи двигун обертається дуже повільно в цьому положенні.
|
||||
- If the motor is not spinning, or spinning too fast you will need to adjust the corresponding PWM `minimum` value in the [Actuator Outputs](#actuator-outputs) such that the motors barely spin.
|
||||
- Перевірте, чи двигун обертається дуже повільно в цьому положенні.
|
||||
- If the motor is not spinning, or spinning too fast you will need to adjust the corresponding PWM `minimum` value in the [Actuator Outputs](#actuator-outputs) such that the motors barely spin.
|
||||
|
||||

|
||||
::: info
|
||||
For DShot output, this is not required.
|
||||

|
||||
::: info
|
||||
For DShot output, this is not required.
|
||||
|
||||
:::
|
||||
|
||||
3. Збільште значення слайдера до рівня, на якому ви можете перевірити, що двигун обертається в правильному напрямку і що він надасть позитивний тяговий потік в очікуваному напрямку.
|
||||
|
||||
- Очікувана напрямок тяги може відрізнятися в залежності від типу транспортного засобу.
|
||||
Наприклад, у багатороторних літаках тяга завжди повинна вказувати вгору, тоді як у повітряному судні з фіксованим крилом тяга буде тягти судно вперед.
|
||||
- For VTOL, thrust should point upwards when the Tilt Servo is at 0 degrees as defined the [Tilt Servo Convention](#tilt-servo-coordinate-system).
|
||||
Testing of the [Tilt Servo](#tilt-servo-setup) is covered below as well.
|
||||
- If thrust is in the wrong direction, you may need to [reverse the motors](#reversing-motors).
|
||||
- Очікувана напрямок тяги може відрізнятися в залежності від типу транспортного засобу.
|
||||
Наприклад, у багатороторних літаках тяга завжди повинна вказувати вгору, тоді як у повітряному судні з фіксованим крилом тяга буде тягти судно вперед.
|
||||
- For VTOL, thrust should point upwards when the Tilt Servo is at 0 degrees as defined the [Tilt Servo Convention](#tilt-servo-coordinate-system).
|
||||
Testing of the [Tilt Servo](#tilt-servo-setup) is covered below as well.
|
||||
- If thrust is in the wrong direction, you may need to [reverse the motors](#reversing-motors).
|
||||
|
||||
4. Збільште значення слайдера до максимального значення, щоб двигун швидко обертався.
|
||||
Reduce the value of the PWM output's `maximum` value just below the default.
|
||||
Прослухайте тон моторів, коли ви збільшуєте значення малими (25us) інкрементами.
|
||||
"Оптимальне" максимальне значення - це значення, при якому ви востаннє почули зміну тона.
|
||||
Reduce the value of the PWM output's `maximum` value just below the default.
|
||||
Прослухайте тон моторів, коли ви збільшуєте значення малими (25us) інкрементами.
|
||||
"Оптимальне" максимальне значення - це значення, при якому ви востаннє почули зміну тона.
|
||||
|
||||
### Налаштування поверхонь керування
|
||||
|
||||
@@ -551,34 +551,34 @@ Control surfaces that move either direction around a neutral point include: aile
|
||||
To set these up:
|
||||
|
||||
1. Set the `Disarmed` value so that the surfaces will stay at neutral position when disarmed.
|
||||
This is usually around `1500` for PWM servos (near the centre of the servo range).
|
||||
This is usually around `1500` for PWM servos (near the centre of the servo range).
|
||||
|
||||

|
||||

|
||||
|
||||
2. Move the slider for the surface upwards (positive command) and verify that it moves in the direction defined in the [Control Surface Convention](#control-surface-deflection-convention).
|
||||
|
||||
- Ailerons, elevons, V-Tails, A-Tails, and other horizontal surfaces should move up.
|
||||
- Rudders and other "purely vertical" surfaces should move right.
|
||||
- Ailerons, elevons, V-Tails, A-Tails, and other horizontal surfaces should move up.
|
||||
- Rudders and other "purely vertical" surfaces should move right.
|
||||
|
||||
::: tip
|
||||
It is important that the slider movement matches the control surface convention, in order to normalize control for different servo mountings (moving the slider up may actually decrease the output value sent to the servo).
|
||||
::: tip
|
||||
It is important that the slider movement matches the control surface convention, in order to normalize control for different servo mountings (moving the slider up may actually decrease the output value sent to the servo).
|
||||
|
||||
:::
|
||||
|
||||
If the control surface moves in the opposite direction, click on the `Rev Range` checkbox to reverse the range.
|
||||
If the control surface moves in the opposite direction, click on the `Rev Range` checkbox to reverse the range.
|
||||
|
||||
3. Move the slider again to the middle and check if the Control Surfaces are aligned in the neutral position of the wing.
|
||||
|
||||
- If it is not aligned, you can set the **Trim** value for the control surface.
|
||||
- If it is not aligned, you can set the **Trim** value for the control surface.
|
||||
|
||||
::: info
|
||||
This is done in the `Trim` setting of the Geometry panel, usually by "trial and error".
|
||||

|
||||
::: info
|
||||
This is done in the `Trim` setting of the Geometry panel, usually by "trial and error".
|
||||

|
||||
|
||||
:::
|
||||
|
||||
- After setting the trim for a control surface, move its slider away from the centre, release, and then back into disarmed (middle) position.
|
||||
Підтвердіть, що поверхня знаходиться в нейтральному положенні.
|
||||
- After setting the trim for a control surface, move its slider away from the centre, release, and then back into disarmed (middle) position.
|
||||
Підтвердіть, що поверхня знаходиться в нейтральному положенні.
|
||||
|
||||
:::info
|
||||
Another way to test without using the sliders would be to set the [`COM_PREARM_MODE`](../advanced_config/parameter_reference.md#COM_PREARM_MODE) parameter to `Always`:
|
||||
@@ -600,13 +600,13 @@ One approach for setting these up is:
|
||||
|
||||
1. Set values `Disarmed` to `1500`, `Min` to `1200`, `Max` to `1700` so that the values are around the centre of the servo range.
|
||||
2. Move the corresponding slider up and check the control moves and that it is extending (moving away from the disarmed position).
|
||||
If not, click on the `Rev Range` checkbox to reverse the range.
|
||||
If not, click on the `Rev Range` checkbox to reverse the range.
|
||||
3. Enable slider in the disarmed position, them change the value of the `Disarmed` signal until the control is retracted/flush with wing.
|
||||
This may require that the `Disarmed` value is increased or decreased:
|
||||
- If the value was decreased towards `Min`, then set `Min` to match `Disarmed`.
|
||||
- If the value was increased towards `Max`, then set `Max` to match `Disarmed`.
|
||||
This may require that the `Disarmed` value is increased or decreased:
|
||||
- If the value was decreased towards `Min`, then set `Min` to match `Disarmed`.
|
||||
- If the value was increased towards `Max`, then set `Max` to match `Disarmed`.
|
||||
4. The value that you did _not_ set to match `Disarmed` controls the maximum amount that the control surface can extend.
|
||||
Set the slider to the top of the control, then change the value (`Max` or `Min`) so that the control surface is fully extended when the slider is at top.
|
||||
Set the slider to the top of the control, then change the value (`Max` or `Min`) so that the control surface is fully extended when the slider is at top.
|
||||
|
||||
:::info Special note for flaps
|
||||
In some vehicle builds, flaps may be configured such that both flaps are controlled from a single output.
|
||||
@@ -630,7 +630,7 @@ First set the _frame rate_ for the servos used in each group of outputs.
|
||||
|
||||
2. Position the slider for the servo in the lowest position, and verify that a positive value increase will point towards the `Angle at Min Tilt` (defined in the Geometry section).
|
||||
|
||||

|
||||

|
||||
|
||||
3. Position the slider for the servo in the highest position, and verify that positive motor thrust will point towards the `Angle at Max Tilt` (as defined in the Geometry section).
|
||||
|
||||
|
||||
@@ -27,18 +27,18 @@ Before calibration they must be [enabled via the corresponding parameter](../adv
|
||||
|
||||
4. Click the **Airspeed** sensor button.
|
||||
|
||||

|
||||

|
||||
|
||||
5. Захистіть сенсор від вітру (тобто закрийте його рукою).
|
||||
Пильнуйте, щоб не заблокувати жодного з отворів.
|
||||
Пильнуйте, щоб не заблокувати жодного з отворів.
|
||||
|
||||
6. Click **OK** to start the calibration.
|
||||
|
||||
7. Після запиту, дмухніть у кінець труби пітота, щоб сигналізувати про завершення калібрування.
|
||||
|
||||
:::tip
|
||||
Blowing into the tube is also a basic check that the dynamic and static ports are installed correctly.
|
||||
Якщо вони будуть поміняні місцями, то датчик буде відображати великий від'ємний перепад тиску, коли ви дмухаєте в трубку, і калібрування завершиться з помилкою.
|
||||
:::tip
|
||||
Blowing into the tube is also a basic check that the dynamic and static ports are installed correctly.
|
||||
Якщо вони будуть поміняні місцями, то датчик буде відображати великий від'ємний перепад тиску, коли ви дмухаєте в трубку, і калібрування завершиться з помилкою.
|
||||
|
||||
:::
|
||||
|
||||
|
||||
+15
-15
@@ -23,9 +23,9 @@ If any external magnetometers are available, it then disables the internal magne
|
||||
Several types of compass calibration are available:
|
||||
|
||||
1. [Complete](#complete-calibration): This calibration is required after installing the autopilot on an airframe for the first time or when the configuration of the vehicle has changed significantly.
|
||||
Воно компенсує впливи твердого та м'якого заліза, оцінюючи зміщення та коефіцієнт масштабу для кожної вісі.
|
||||
Воно компенсує впливи твердого та м'якого заліза, оцінюючи зміщення та коефіцієнт масштабу для кожної вісі.
|
||||
2. [Partial](#partial-quick-calibration): This calibration can be performed as a routine when preparing the vehicle for a flight, after changing the payload, or simply when the compass rose seems inaccurate.
|
||||
Цей тип калібрування лише оцінює зміщення для компенсації ефекту твердого заліза.
|
||||
Цей тип калібрування лише оцінює зміщення для компенсації ефекту твердого заліза.
|
||||
3. [Large vehicle](#large-vehicle-calibration): This calibration can be performed when the vehicle is too large or heavy to perform a complete calibration. Цей тип калібрування лише оцінює зміщення для компенсації ефекту твердого заліза.
|
||||
|
||||
## Виконання калібрування
|
||||
@@ -35,13 +35,13 @@ Several types of compass calibration are available:
|
||||
Перед початком калібрування:
|
||||
|
||||
1. Виберіть місце подалеку від великих металевих об'єктів або магнітних полів.
|
||||
:::tip
|
||||
Metal is not always obvious! Уникайте калібрування на верхній частині офісного столу (часто містять металеві пластины) або поруч з транспортним засобом.
|
||||
Калібрування може бути навіть уражено, якщо ви стоїте на бетонній плиті з нерівномірним розподілом арматури.
|
||||
:::tip
|
||||
Metal is not always obvious! Уникайте калібрування на верхній частині офісного столу (часто містять металеві пластины) або поруч з транспортним засобом.
|
||||
Калібрування може бути навіть уражено, якщо ви стоїте на бетонній плиті з нерівномірним розподілом арматури.
|
||||
|
||||
:::
|
||||
2. Підключайтесь за допомогою телеметричного радіо, а не через USB, якщо це взагалі можливо.
|
||||
USB потенційно може викликати значне магнітне втручання.
|
||||
USB потенційно може викликати значне магнітне втручання.
|
||||
3. If using an external compass (or a combined GPS/compass module), make sure it is [mounted](../assembly/mount_gps_compass.md) as far as possible from other electronics in order to reduce magnetic interference, and in a _supported orientation_.
|
||||
|
||||
### Повне калібрування
|
||||
@@ -54,10 +54,10 @@ Several types of compass calibration are available:
|
||||
|
||||
3. Click the **Compass** sensor button.
|
||||
|
||||

|
||||

|
||||
|
||||
::: info
|
||||
You should already have set the [Autopilot Orientation](../config/flight_controller_orientation.md). Якщо ні, ви також можете встановити це тут.
|
||||
::: info
|
||||
You should already have set the [Autopilot Orientation](../config/flight_controller_orientation.md). Якщо ні, ви також можете встановити це тут.
|
||||
|
||||
:::
|
||||
|
||||
@@ -65,7 +65,7 @@ Several types of compass calibration are available:
|
||||
|
||||
5. Розмістіть транспортний засіб у будь-якому з показаних червоних орієнтацій (неповний) та утримуйте його нерухомим. Після запиту (орієнтаційне зображення стає жовтим) обертайте транспортний засіб навколо вказаної вісі в одному або обох напрямках. Після завершення калібрування для поточного орієнтації пов'язане зображення на екрані стане зеленим.
|
||||
|
||||

|
||||

|
||||
|
||||
6. Повторіть процес калібрування для всіх орієнтацій автомобіля.
|
||||
|
||||
@@ -76,7 +76,7 @@ Once you've calibrated the vehicle in all the positions _QGroundControl_ will di
|
||||
Ця калібровка схожа на відому калібровку компасу у вигляді восьмірки, виконану на смартфоні:
|
||||
|
||||
1. Утримуйте транспортний засіб перед собою та випадковим чином виконуйте часткові обертання по всіх його осях.
|
||||
2-3 коливань на кут близько 30 градусів у кожному напрямку зазвичай достатньо.
|
||||
2-3 коливань на кут близько 30 градусів у кожному напрямку зазвичай достатньо.
|
||||
2. Зачекайте, поки оцінка заголовку стабілізується, і перевірте, що компас вказує в правильному напрямку (це може зайняти кілька секунд).
|
||||
|
||||
Примітки:
|
||||
@@ -94,12 +94,12 @@ This calibration process leverages external knowledge of vehicle's orientation a
|
||||
|
||||
1. Ensure GNSS Fix. This is required to find the expected Earth magnetic field in WMM tables.
|
||||
2. Align the vehicle to face True North.
|
||||
Be as accurate as possible for best results.
|
||||
Be as accurate as possible for best results.
|
||||
3. Open the [QGroundControl MAVLink Console](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/analyze_view/mavlink_console.html) and send the following command:
|
||||
|
||||
```sh
|
||||
commander calibrate mag quick
|
||||
```
|
||||
```sh
|
||||
commander calibrate mag quick
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user