mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-19 00:53:34 +08:00
Move PX4 Guide source into /docs (#24490)
* Add vitepress tree * Update existing workflows so they dont trigger on changes in the docs path * Add nojekyll, package.json, LICENCE etc * Add crowdin docs upload/download scripts * Add docs flaw checker workflows * Used docs prefix for docs workflows * Crowdin obvious fixes * ci: docs move to self hosted runner runs on a beefy server for faster builds Signed-off-by: Ramon Roche <mrpollo@gmail.com> * ci: don't run build action for docs or ci changes Signed-off-by: Ramon Roche <mrpollo@gmail.com> * ci: update runners Signed-off-by: Ramon Roche <mrpollo@gmail.com> * Add docs/en * Add docs assets and scripts * Fix up editlinks to point to PX4 sources * Download just the translations that are supported * Add translation sources for zh, uk, ko * Update latest tranlsation and uorb graphs * update vitepress to latest --------- Signed-off-by: Ramon Roche <mrpollo@gmail.com> Co-authored-by: Ramon Roche <mrpollo@gmail.com>
This commit is contained in:
co-authored by
Ramon Roche
parent
8e6d2ebe4a
commit
88d623bedb
@@ -0,0 +1,113 @@
|
||||
# Архітектура/Інтеграція камери PX4
|
||||
|
||||
Ця тема надає короткий огляд того, як підтримується камера PX4 **реалізована**.
|
||||
|
||||
:::info
|
||||
Дивіться [Камера](../camera/index.md) для отримання інформації щодо _використання_ камер.
|
||||
:::
|
||||
|
||||
## Загальний огляд
|
||||
|
||||
PX4 інтегрується з трьома типами камер:
|
||||
|
||||
- [Камери MAVLink](../camera/mavlink_v2_camera.md), які підтримують [Протокол Камери v2](https://mavlink.io/en/services/camera.html) (**РЕКОМЕНДОВАНО**).
|
||||
- [Прості камери MAVLink](../camera/mavlink_v1_camera.md), які підтримують старший [Протокол камери v1](https://mavlink.io/en/services/camera.html).
|
||||
- [Камери, підключені до виходів контролера польоту](../camera/fc_connected_camera.md), які керуються з використанням [протоколу камери v1](https://mavlink.io/en/services/camera.html).
|
||||
|
||||
Всі ці камери повинні реагувати на команди MAVLink, отримані через MAVLink або знайдені в місіях (конкретний протокол залежить від камери).
|
||||
|
||||
Використана широка архітектура описана нижче.
|
||||
|
||||
## Камери MAVLink (Протокол камери v2)
|
||||
|
||||
PX4 не має конкретної обробки для [MAVLink камер](../camera/mavlink_v2_camera.md), які підтримують [Протокол камери v2](https://mavlink.io/en/services/camera.html), крім [переемітації елементів камери в місіях як команди](#camera-commands-in-missions)
|
||||
|
||||
Очікується, що земні станції будуть спілкуватися з цими камерами безпосередньо, щоб надсилати команди.
|
||||
PX4 повинен бути налаштований для маршрутизації трафіку MAVLink між камерою та земними станціями за необхідності.
|
||||
|
||||
:::info
|
||||
Модулі `camera_trigger`, `camera_capture` та `camera_feedback` не використовуються з цією камерою.
|
||||
:::
|
||||
|
||||
## Камери, підключені за допомогою FC
|
||||
|
||||
Камери, підключені до виходів контролера польоту, потребують PX4 для активації виходів для запуску камери, і можуть потребувати PX4 для виявлення, коли [пін захоплення камери](../camera/fc_connected_camera.md#camera-capture-configuration) був спрацьований камерним гарячим черевиком (для покращення часу реєстрації захопленої камери).
|
||||
|
||||
Ця робота виконується трьома компонентами PX4: [`camera_trigger` driver](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/camera_trigger), [`camera_capture` driver](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/camera_capture), модуль `camera-feedback` (../modules/modules_system.md#camera-feedback).
|
||||
|
||||
`camera_trigger` підписується на тему [VehicleCommand](../msg_docs/VehicleCommand.md) та відстежує оновлення в [команди, які він підтримує](../camera/fc_connected_camera.md#mavlink-command-interface).
|
||||
Ці оновлення відбуваються, коли отримано команду через MAVLink або коли [елемент камери досягнутий у місії](#camera-commands-in-missions).
|
||||
|
||||
Команди увімкнення та вимкнення спрацьовують, а також налаштовують спрацьовування за часовими та відстаневими інтервалами.
|
||||
Водій відстежує ці інтервали, і коли це потрібно, спрацьовують виходи.
|
||||
Водій публікує тему [CameraTrigger](../msg_docs/CameraTrigger.md) (з полем `feedback`, встановленим на `false`), що спричиняє відсилання повідомлення MAVLink [CAMERA_TRIGGER](https://mavlink.io/en/messages/common.html#CAMERA_TRIGGER).
|
||||
|
||||
Драйвер `camera_capture`, якщо він увімкнений, слідкує за підключенням камери та, спрацьовуючи, оприлюднює тему [CameraTrigger](../msg_docs/CameraTrigger.md) (з полем `feedback`, встановленим на `true`), що також спричиняє відсилання повідомлення MAVLink [CAMERA_TRIGGER](https://mavlink.io/en/messages/common.html#CAMERA_TRIGGER).
|
||||
|
||||
Модуль 'camera_feedback' відстежує оновлення теми [CameraTrigger](../msg_docs/CameraTrigger.md), та публікує тему [CameraCapture](../msg_docs/CameraCapture.md) для оновлення `CameraTrigger` від _або_ `camera_trigger`, або `camera_capture`.
|
||||
Інформація, яка використовується, залежить від того, чи увімкнений пін захоплення камери, і значення поля `CameraTrigger.feedback`.
|
||||
Ця тема `CameraCapture` реєструється і може бути використана для отримання часу знімку.
|
||||
|
||||
## Камери MAVLink (Протокол камери v1)
|
||||
|
||||
[MAVLink камери, які підтримують старіший Camera Protocol v1](../camera/mavlink_v1_camera.md) інтегруються так само, як і [Камери, що підключаються через FC](#fc-connected-cameras).
|
||||
|
||||
`camera_trigger` підписується на тему [VehicleCommand](../msg_docs/VehicleCommand.md) та відстежує оновлення в [команди, які він підтримує](../camera/fc_connected_camera.md#mavlink-command-interface).
|
||||
Це відбувається, коли команда надходить через MAVLink або коли [елемент камери знаходиться в місіях](#camera-commands-in-missions).
|
||||
|
||||
Команди увімкнення та вимкнення спрацьовують, а також налаштовують спрацьовування за часовими та відстаневими інтервалами.
|
||||
Водій відслідковує ці інтервали, але з "MAVLink backend" не потрібно фактично спрацьовувати будь-які виводи (оскільки команди переадресовуються на камеру).
|
||||
Коли камера спрацьовує, водій публікує тему [CameraTrigger](../msg_docs/CameraTrigger.md) (з полем `feedback`, встановленим на `false`), що спричиняє відсилання повідомлення MAVLink [CAMERA_TRIGGER](https://mavlink.io/en/messages/common.html#CAMERA_TRIGGER).
|
||||
Модуль `camera_feedback` повинен, а потім записати відповідну тему `CameraCapture`.
|
||||
|
||||
## Команди камери у місіях
|
||||
|
||||
PX4 повторно видає пункти камери, знайдені в місіях, як команди MAVLink для всіх підтримуваних [Протоколів камери v2] (https://mavlink.io/en/services/camera.html) та [Протоколів камери v1] (https://mavlink.io/en/services/camera.html).
|
||||
Системний ідентифікатор випущених команд співпадає з ідентифікатором автопілота.
|
||||
Ідентифікатор компоненту команд може відрізнятися, але зазвичай вони надсилаються на [MAV_COMP_ID_CAMERA (100)](https://mavlink.io/en/messages/common.html#MAV_COMP_ID_CAMERA) або [MAV_COMP_ID_ALL](https://mavlink.io/en/messages/common.html#MAV_COMP_ID_ALL) (дивіться документацію камери для того, який ID використовується у кожному випадку).
|
||||
|
||||
Команди випромінюються незалежно від того, чи є підключена камера будь-якого типу, за умови наявності каналу MAVLink для випромінювання.
|
||||
|
||||
:::info
|
||||
Загалом PX4 повторно видає всі команди місій, які можуть бути використані зовнішніми компонентами MAVLink, такими як джимбалі.
|
||||
Команди для точок маршруту та умовної поведінки не випускаються.
|
||||
:::
|
||||
|
||||
Розділи нижче висвітлюють цікаві частини кодової бази
|
||||
|
||||
### Команди, підтримувані у місіях
|
||||
|
||||
Команди, підтримувані в місіях, включаючи команди камери, показані в цих методах:
|
||||
|
||||
- [`bool FeasibilityChecker::checkMissionItemValidity(mission_item_s &mission_item, const int current_index)`](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/navigator/MissionFeasibility/FeasibilityChecker.cpp#L257-L306)
|
||||
- [`format_mavlink_mission_item()`](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_mission.cpp#L1672-L1693)
|
||||
|
||||
### Потік для повторної відправки команд камери, знайденої у місіях
|
||||
|
||||
- [`void Mission::setActiveMissionItems()`](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/navigator/mission.cpp#L187-L281)
|
||||
- Предмети місії виконуються, коли вони активовані.
|
||||
- `issue_command(_mission_item)` викликається в кінці цього, щоб відправити поточну непунктову команду
|
||||
- [`MissionBlock::видача_команди(const mission_item_s &item)`](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/navigator/mission_block.cpp#L543-L562)
|
||||
- Створює команду для місії транспортного засобу, а потім викликає `publish_vehicle_cmd` для публікації її (`_navigator->publish_vehicle_cmd(&vcmd);`)
|
||||
- [`void Navigator::publish_vehicle_cmd(vehicle_command_s *vcmd)`](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/navigator/navigator_main.cpp#L1358)
|
||||
- Для деяких команд камери це встановлює ідентифікатор компонента на ідентифікатор компонента камери (`vcmd->target_component = 100; // MAV_COMP_ID_CAMERA`)
|
||||
- Усі інші просто публікуються під стандартний компонент ID.
|
||||
- Тема UORB `VehicleCommand` публікується.
|
||||
|
||||
Код потоку MAVLink відстежує зміни у темі `VehicleCommand` та публікує їх через MAVLink.
|
||||
Команда MAVLink надсилається незалежно від того, чи є камера камерою MAVLink, чи підключена до контролера польоту.
|
||||
|
||||
Драйвер `camera_trigger`, якщо включений, також контролює зміни для `VehicleCommand`.
|
||||
Якщо він налаштований з внутрішнім інтерфейсом для камери, підключеної до вихідних сигналів контролера польоту, він відповідним чином активує ці вихідні сигнали.
|
||||
|
||||
## Логування
|
||||
|
||||
Теми `CameraCapture` реєструються при оновленні `CameraTrigger`.
|
||||
Введений тема буде залежати від того, чи увімкнений пін захоплення камери.
|
||||
|
||||
Зверніть увагу, що події захоплення камери не реєструються, коли використовується [камери MAVLink, що підтримують протокол камери v2](../camera/mavlink_v2_camera.md), оскільки відповідні події спрацювання тригера не генеруються в межах PX4.
|
||||
|
||||
## Дивіться також
|
||||
|
||||
- Драйвер Тригера камери: [вихідний код](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/camera_trigger) <!-- no module doc -->
|
||||
- Драйвер захоплення камери: [вихідний код](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/camera_capture) <!-- no module doc -->
|
||||
@@ -0,0 +1,32 @@
|
||||
# Камера відстеження Intel® RealSense™ T265 (ВІО)
|
||||
|
||||
[Камера відстеження Intel® RealSense™ T265](https://www.intelrealsense.com/tracking-camera-t265/) надає одометричну інформацію яку можна використати для [ВІО](../computer_vision/visual_inertial_odometry.md), доповнюючи або замінюючи інші системи позиціювання на PX4.
|
||||
|
||||
:::tip
|
||||
Ця камера рекомендована і використовується у [Візуально-інерційна одометрія (ВІО) > Рекомендовані налаштування](../computer_vision/visual_inertial_odometry.md#suggested-setup).
|
||||
:::
|
||||
|
||||

|
||||
|
||||
## Де купити
|
||||
|
||||
[Intel® RealSense™ Tracking Camera T265](https://www.intelrealsense.com/tracking-camera-t265/) (store.intelrealsense.com)
|
||||
|
||||
## Інструкції з налаштування
|
||||
|
||||
На загальному рівні:
|
||||
|
||||
- Для отримання необроблених даних з камери слід використовувати [обгортку `realsense-ros`](https://github.com/IntelRealSense/realsense-ros), надану компанією Intel.
|
||||
- Камеру слід встановити об'єктивами спрямованими вниз (за замовчуванням).
|
||||
Не забудьте вказати орієнтацію камери, опублікувавши статичне перетворення між `base_link` та `camera_pose_frame` у файлі запуску ROS, наприклад:
|
||||
```xml
|
||||
<node pkg="tf" type="static_transform_publisher" name="tf_baseLink_cameraPose"
|
||||
args="0 0 0 0 1.5708 0 base_link camera_pose_frame 1000"/>
|
||||
```
|
||||
Це - статичне перетворення, що пов'язує систему відліку камери `camera_pose_frame` у ROS з системою відліку дрона `base_link` у MAVROS.
|
||||
- перші три `args` вказують _перетворення_ x,y,z у метрах від центру контролера польоту до камери.
|
||||
Наприклад, якщо камера знаходиться на відстані 10 см від контролера і на висоті 4 см, перші три числа будуть: [0.1, 0, 0.04,...]
|
||||
- наступні три `args` вказують обертання в радіанах (рискання, тангаж, крен).
|
||||
Тому `[... 0, 1.5708, 0]` означає нахил вниз на 90° (обернений до землі). Обернений вперед буде [... 0 0 0].
|
||||
- Камера чутлива до високочастотних вібрацій!
|
||||
Вона повинна бути змонтована з м'яким кріпленням, наприклад з піною для віброізоляції.
|
||||
@@ -0,0 +1,316 @@
|
||||
# Камери, підключені до виходів керування польотом
|
||||
|
||||
Ця тема пояснює, як використовувати PX4 з [камерою](../camera/index.md), яка приєднана до виходів контролера польоту.
|
||||
|
||||
:::warning
|
||||
[Камери MAVLink](../camera/mavlink_v2_camera.md), які використовують [Протокол камери MAVLink v2](https://mavlink.io/en/services/camera.html), рекомендовані.
|
||||
:::
|
||||
|
||||
## Загальний огляд
|
||||
|
||||
PX4 може викликати [camera](../camera/index.md), підключену до виходів керування польотом за допомогою [команд камери](#mavlink-command-interface) в місіях або відправлений наземними станціями.
|
||||
Підтримувані команди є підмножиною тих, що визначені в MAVLink [Протоколі камери v1](https://mavlink.io/en/services/camera.html).
|
||||
|
||||
Кожен раз, коли спрацьовує камера, опубліковано повідомлення MAVLink [CAMERA_TRIGGER](https://mavlink.io/en/messages/common.html#CAMERA_TRIGGER), що містить номер послідовності (тобто поточний номер послідовності зображення сеансу) та відповідний часовий позначення.
|
||||
Цей часовий міткий може бути використаний для кількох цілей, включаючи: міткування фотографій для повітряного обстеження та реконструкції, синхронізацію багатокамерної системи або візуально-інерціальної навігації.
|
||||
|
||||
Камера може бути підключена до різних виходів, включаючи виходи PWM, виходи GPIO та кару MAP2 від Seagull через виходи PWM.
|
||||
|
||||
Камери також можуть (за бажанням) сигналізувати PX4 у саму точну мить, коли знімається фото/кадр, використовуючи [вивід захоплення камери](#camera-capture-configuration), який приєднаний до їх гарячого черевика.
|
||||
Це дозволяє більш точну прив'язку зображень до позиції GPS для прив'язки до місцевості або потрібну вибірку IMU для синхронізації ВІО, тощо.
|
||||
|
||||
<!-- Camera trigger driver: https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/camera_trigger -->
|
||||
|
||||
<!-- Camera capture driver: https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/camera_capture -->
|
||||
|
||||
## Командний інтерфейс MAVLink
|
||||
|
||||
PX4 підтримує наступні команди MAVLink для камер, підключених до КП, як у місіях, так і в разі їх отримання від БПК(GCS):
|
||||
|
||||
- [MAV_CMD_DO_SET_CAM_TRIGG_INTERVAL](#mav-cmd-do-set-cam-trigg-interval) — встановити інтервал часу між зніманнями.
|
||||
- [MAV_CMD_DO_SET_CAM_TRIGG_DIST](#mav-cmd-do-set-cam-trigg-dist) — встановити відстань між зніманнями
|
||||
- [MAV_CMD_DO_TRIGGER_CONTROL](#mav-cmd-do-trigger-control) — почати/зупинити знімання (використовуючи відстань або час, як визначено попередніми командами).
|
||||
- [MAV_CMD_OBLIQUE_SURVEY](#mav-cmd-oblique-survey) — початок/зупинка відхиленого обстеження
|
||||
- [MAV_CMD_DO_DIGICAM_CONTROL](#мав-команда-керування-цифровою-камерою) — тестова зйомка камери з GCS.
|
||||
|
||||
Підтримувана поведінка перерахована нижче (вони не точно відповідають специфікації MAVLink).
|
||||
|
||||
### MAV_CMD_DO_TRIGGER_CONTROL
|
||||
|
||||
[MAV_CMD_DO_TRIGGER_CONTROL](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_TRIGGER_CONTROL) - Приймається в "командному" режимі (`TRIG_MODE` 1).
|
||||
|
||||
| Параметри команди | Опис |
|
||||
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Параметр №1 | Увімкнення/вимкнення спрацювання. `1`: увімкнути (запуск), `0`: вимкнути. |
|
||||
| Параметр №2 | Скидання послідовності спрацьовування. `1`: скинути, будь-яке інше значення нічого не робить. |
|
||||
| Параметр №3 | Призупинення спрацьовування, але без вимкнення камери або прибирання об'єктиву. `1`: призупинити, `0`: перезапустити. |
|
||||
|
||||
<!-- https://github.com/PX4/PX4-Autopilot/blob/main/src/drivers/camera_trigger/camera_trigger.cpp#L549 -->
|
||||
|
||||
### MAV_CMD_DO_DIGICAM_CONTROL
|
||||
|
||||
[MAV_CMD_DO_DIGICAM_CONTROL](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_DIGICAM_CONTROL) - Приймається в усіх режимах.
|
||||
|
||||
Використовується GCS для перевірки знімання камерою з інтерфейсу користувача.
|
||||
Драйвер спрацювання не підтримує всі параметри керування камерою, визначені специфікацією MAVLink.
|
||||
|
||||
| Параметри команди | Опис |
|
||||
| ----------------- | ----------------------------------------------------------------------------------------------------------- |
|
||||
| Параметр №5 | Виконати команду одноразово (встановіть у 1 для знімання єдиного кадру). |
|
||||
|
||||
### MAV_CMD_DO_SET_CAM_TRIGG_DIST
|
||||
|
||||
[MAV_CMD_DO_SET_CAM_TRIGG_DIST](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_SET_CAM_TRIGG_DIST) - Приймається у режимі "політного завдання" (`TRIG_MODE` 4)
|
||||
|
||||
Ця команда генерується автоматично під час виконання політного завдання для спрацювання камери на основі завдань обстеження з GCS.
|
||||
|
||||
### MAV_CMD_DO_SET_CAM_TRIGG_INTERVAL
|
||||
|
||||
[MAV_CMD_DO_SET_CAM_TRIGG_INTERVAL](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_SET_CAM_TRIGG_INTERVAL)
|
||||
|
||||
### MAV_CMD_OBLIQUE_SURVEY
|
||||
|
||||
[MAV_CMD_OBLIQUE_SURVEY](https://mavlink.io/en/messages/common.html#MAV_CMD_OBLIQUE_SURVEY) - Команда політного завдання, щоб налаштувати автоматичне кріплення камери обертатись при зніманні навскіс.
|
||||
|
||||
Приймає від `param1` до `param4`, як вказано у визначенні повідомлення MAVLink.
|
||||
Налаштування інтеграції затвору (`param2`) виконується тільки з бекендом GPIO.
|
||||
|
||||
<!-- https://github.com/PX4/PX4-Autopilot/blob/main/src/drivers/camera_trigger/camera_trigger.cpp#L632 -->
|
||||
|
||||
## Налаштування спрацьовування
|
||||
|
||||
Камери можна підключати до FC для виклику за допомогою різних інтерфейсів, таких як PWM та GPIO, вказавши відповідний [задній інтерфейс тригера](#trigger-interface-backends).
|
||||
Ви також можете вказати камеру [режим тригера](#trigger-mode).
|
||||
|
||||
Цю конфігурацію найлегше виконати з розділу _QGroundControl_ [Налаштування рухомого засобу > Камера](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/setup_view/camera.html#px4-camera-setup).
|
||||
|
||||

|
||||
|
||||
Різні [режими спрацювання](#trigger-modes), [бекенди інтерфейсу спуску](#trigger-interface-backends) та [налаштування виводу спуску](#trigger-output-pin-configuration) описані нижче (їх також можна встановити прямо з [параметрів](../advanced_config/parameters.md)).
|
||||
|
||||
:::info
|
||||
Розділ налаштувань камери за замовчуванням недоступний для польотних контролерів на основі FMUv2 (наприклад 3DR Pixhawk), оскільки модуль камери не включено в прошивку автоматично.
|
||||
Для додаткової інформації дивіться [Пошук/Оновлення параметрів > Параметри, яких немає в прошивці](../advanced_config/parameters.md#parameter-not-in-firmware).
|
||||
:::
|
||||
|
||||
### Режими спрацювання
|
||||
|
||||
Підтримуються чотири різні режими, керуються параметром [TRIG_MODE](../advanced_config/parameter_reference.md#TRIG_MODE):
|
||||
|
||||
| Режим | Опис |
|
||||
| ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 0 | Спрацювання камери вимкнено. |
|
||||
| 1 | Працює як звичайний вимірювач інтервалів який можна увімкнути або вимкнути використовуючи команду MAVLink `MAV_CMD_DO_TRIGGER_CONTROL`. Дивіться [командний інтерфейс](#mavlink-command-interface) для додаткової інформації. |
|
||||
| 2 | Вмикає вимірювач інтервалів. |
|
||||
| 3 | Спрацювання основані на відстані. Знімок робиться кожного разу, коли перевищується встановлена горизонтальна відстань. Мінімальний інтервал часу між двома знімками, однак, обмежується встановленим інтервалом спрацьовування. |
|
||||
| 4 | Спрацьовує автоматично при виконанні опитування в режимі місії. |
|
||||
|
||||
:::info
|
||||
Якщо ви вперше вмикаєте додаток спрацювання камери, не забудьте перезавантажитись після зміни параметру `TRIG_MODE`.
|
||||
:::
|
||||
|
||||
### Бекенди інтерфейсу спрацювання
|
||||
|
||||
Драйвер спрацювання камери підтримує кілька бекендів - кожен для конкретного застосування, що керується параметром [TRIG_INTERFACE](../advanced_config/parameter_reference.md#TRIG_INTERFACE):
|
||||
|
||||
| Номер | Опис |
|
||||
| ----- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 1 | Вмикає інтерфейс GPIO. AUX виходи дають періодичний високий або низький сигнал (в залежності від параметра `TRIG_POLARITY`) кожен інтервал часу [TRIG_INTERVAL](../advanced_config/parameter_reference.md#TRIG_INTERVAL). Це може бути використано для безпосереднього спуску більшості стандартних камер машинного зору. Зверніть увагу, що на апаратному забезпеченні серії PX4FMU (Pixhawk, Pixracer тощо) рівень сигналу на AUX контактах становить 3,3 В. |
|
||||
| 2 | Вмикає інтерфейс Seagull MAP2. Це дозволяє використовувати [Seagull MAP2](http://www.seagulluav.com/product/seagull-map2/) для взаємодії з безліччю камер, що підтримуються. Контакт/канал 1 (спуск камери) так контакт/канал 2 (селектор режиму) MAP2 повинні бути підключені до [контактів спрацювання камери](#trigger-output-pin-configuration) з налаштованим низьким та високим сигналом. За допомогою Seagull MAP2, PX4 також підтримує автоматичний контроль потужності та функційність утримання в робочому стані камер Sony Multiport, таких як QX-1. |
|
||||
| 3 | Цей режим дозволяє використовувати камери MAVLink, які використовували старі інтерфейси [описані вище](#mavlink-command-interface). Повідомлення автоматично видаються на каналі `onboard` MAVLink під час знаходження їх в місіях. PX4 випускає повідомлення MAVLink `CAMERA_TRIGGER`, коли спрацьовує камера, за замовчуванням на канал `onboard` (якщо він не використовується, буде потрібно ввімкнути власний потік). [Прості камери MAVLink](../camera/mavlink_v1_camera.md) пояснюють цей випадок більш детально. |
|
||||
| 4 | Вмикає загальний інтерфейс ШІМ. Це дозволяє використовувати [інфрачервоні спускові пристрої](https://hobbyking.com/en_us/universal-remote-control-infrared-shutter-ir-rc-1g.html) або сервоприводи для спуску камери. |
|
||||
|
||||
### Налаштування вихідних контактів спуску
|
||||
|
||||
Контакти спуску камери встановлюються в _QGroundControl_ на екрані налаштувань [Приводи](../config/actuators.md).
|
||||
|
||||
Контакти спуску можуть бути встановлені призначенням функції `Camera_Trigger` на будь-який вихід FMU.
|
||||
Якщо використовується налаштування спрацювання, яке потребує двох контактів (наприклад Seagull MAP2), ви можете призначити її на будь-які два виходи.
|
||||
|
||||
Однак зверніть увагу, якщо вивід _ШІМ_ було використано для спуску камери (наприклад як у Seagull MAP2), уся група ШІМ не може бути використана для чого-небудь ще (ви не зможете використати інший вивід в групі для приводу, двигуна або захоплення камери, оскільки таймер вже використано).
|
||||
|
||||
:::info
|
||||
At time of writing triggering only works on FMU pins:
|
||||
|
||||
- На контролері польоту Pixhawk, який має як FMU, так і плати вводу-виводу, контакти FMU призначені на виходи `AUX` (наприклад Pixhawk 4, CUAV v5+).
|
||||
- Контакти контролера, що має лише FMU призначено на виходи `MAIN` (наприклад Pixhawk 4 mini, CUAV v5 nano).
|
||||
|
||||
:::
|
||||
|
||||
### Інші параметри
|
||||
|
||||
| Параметр | Опис |
|
||||
| ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| [TRIG_POLARITY](../advanced_config/parameter_reference.md#TRIG_POLARITY) | Доречний лише при використанні інтерфейсу GPIO. Встановлює полярність контакту спрацювання. Високий сигнал в активному стані означає що сигнал на контакті зазвичай низький і підіймається на високий рівень під час спрацювання. Низький сигнал в активному стані - навпаки. |
|
||||
| [TRIG_INTERVAL](../advanced_config/parameter_reference.md#TRIG_INTERVAL) | Визначає час між двома послідовними подіями спрацьовування в мілісекундах. |
|
||||
| [TRIG_ACT_TIME](../advanced_config/parameter_reference.md#TRIG_ACT_TIME) | Визначає час у мілісекундах, протягом якого контакт спуску утримується в стані "активний" перед поверненням до нейтрального. У режимах ШІМ мінімум обмежується 40 мс щоб завжди вміщати активний імпульс у сигнал ШІМ з частотою 50 Гц. |
|
||||
|
||||
Повний список параметрів, що стосуються модуля спуску камери можна знайти на сторінці [довіднику параметрів](../advanced_config/parameter_reference.md#camera-trigger).
|
||||
|
||||
## Налаштування захоплення камери
|
||||
|
||||
Камери можуть також (необов'язково) використовувати контакт захоплення камерою, щоб сигналізувати точну мить, коли зроблено фото/кадр.
|
||||
Це дозволяє більш точну прив'язку зображень до позиції GPS для прив'язки до місцевості або потрібну вибірку IMU для синхронізації ВІО, тощо.
|
||||
|
||||
Захоплення/зворотний зв'язок камери вмикається в PX4 встановленням [CAM_CAP_FBACK = 1](../advanced_config/parameter_reference.md#CAM_CAP_FBACK).
|
||||
Контакт, використаний для захоплення камерою потім налаштовується на екрані налаштувань _QGroundControl_ [Приводи](../config/actuators.md), призначенням функції `Camera_Capture` на будь-який вихід FMU.
|
||||
|
||||
Зверніть увагу, якщо _вивід ШІМ_ було використано як вхід захоплення камерою, уся група ШІМ не може бути використана для чого-небудь ще (ви не зможете використати інший вивід в групі для приводу, двигуна або спуску камери, оскільки таймер вже використано).
|
||||
|
||||
:::info
|
||||
At time of writing camera capture only works on FMU pins:
|
||||
|
||||
- На контролері польоту Pixhawk, який має як FMU, так і плати вводу-виводу, контакти FMU призначені на виходи `AUX` (наприклад Pixhawk 4, CUAV v5+).
|
||||
- Контакти контролера, що має лише FMU призначено на виходи `MAIN` (наприклад Pixhawk 4 mini, CUAV v5 nano).
|
||||
|
||||
:::
|
||||
|
||||
PX4 виявляє висхідний фронт сигналу з відповідним рівнем напруги на контакті захоплення камерою (для контролерів польоту Pixhawk це зазвичай 3,3 В).
|
||||
Якщо камера не видає відповідної напруги, то для забезпечення сумісності сигналу буде потрібен додатковий контур.
|
||||
|
||||
Камери, які мають роз'єм типу "гарячий башмак" (для підключення спалаху), зазвичай можна під'єднати за допомогою адаптера для цього роз'єму.
|
||||
Наприклад [універсальний адаптер роз'єму "гарячий башмак" Seagull #SYNC2](https://www.seagulluav.com/product/seagull-sync2/) - це оптрон, який відокремлює та зсуває напругу спалаху до напруги Pixhawk.
|
||||
Він вставляється в роз'єм для спалаху зверху камери.
|
||||
Червоні та чорні вихідні дроти під'єднані до шини живлення/землі сервоприводу, а білий дріт - до вхідного контакту захоплення.
|
||||
|
||||

|
||||
|
||||
:::info
|
||||
PX4 видає повідомлення MAVLink [CAMERA_TRIGGER](https://mavlink.io/en/messages/common.html#CAMERA_TRIGGER) як на спрацювання камери, так і на захоплення камерою.
|
||||
Якщо налаштовано захоплення камерою, використовується відмітка часу від драйвера захоплення камери, в іншому випадку використовується відмітка часу спрацювання.
|
||||
:::
|
||||
|
||||
## Тестування функціональності тригера
|
||||
|
||||
:::warning
|
||||
Наступні розділи застаріли і потребують повторного тестування.
|
||||
:::
|
||||
|
||||
1. На консолі PX4:
|
||||
|
||||
```shell
|
||||
camera_trigger test
|
||||
```
|
||||
|
||||
2. Від _QGroundControl_:
|
||||
|
||||
Клацніть на **Запуск камери** на головній панелі інструментів.
|
||||
Ці знімки не відображаються або не підраховуються для геотегування.
|
||||
|
||||

|
||||
|
||||
## Приклад Sony QX-1 (Фотограметрія)
|
||||
|
||||

|
||||
|
||||
У цьому прикладі ми використаємо кабель спускового пристрою Seagull MAP2 для інтерфейсу з Sony QX-1 та використаємо налаштування для створення ортомозаїк після проведення повністю автономної місії обстеження.
|
||||
|
||||
### Налаштування тригера
|
||||
|
||||
Рекомендовані налаштування камери:
|
||||
|
||||
- `TRIG_INTERFACE=2` (Seagull MAP2).
|
||||
- `TRIG_MODE=4` (Контрольований місією).
|
||||
- Залиште решту параметрів за замовчуванням.
|
||||
|
||||
Вам потрібно підключити карту Seagull MAP2 до контактів FMU на вашому автопілоті.
|
||||
Інший кінець кабелю MAP2 буде вставлено в роз'єм "MULTI" QX-1.
|
||||
|
||||
### Налаштування камери
|
||||
|
||||
Ми використовуємо Sony QX-1 з об'єктивом 16-50 мм f3.5-5.6 для цього прикладу.
|
||||
|
||||
Щоб уникнути затримки автофокусу та вимірювання при спрацюванні камери, слід дотримуватися наступних вказівок:
|
||||
|
||||
- Ручне фокусування на безкінечність
|
||||
- Встановіть камеру в режим постійного знімання
|
||||
- Вручну встановіть експозицію та діафрагму
|
||||
- ISO повинен бути встановлений якнайнижчим
|
||||
- Ручний баланс білого, відповідний для сцени
|
||||
|
||||
### Планування місії
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### Геотегування
|
||||
|
||||
Завантажте/скопіюйте файл журналу та зображення з польоту та вказіть QGroundControl на них.
|
||||
Потім клацніть на **Почати позначення**.
|
||||
|
||||

|
||||
|
||||
Ви можете перевірити геотегування за допомогою безкоштовного онлайн-сервісу, такого як [Pic2Map](https://www.pic2map.com/).
|
||||
Зверніть увагу, що Pic2Map обмежений лише 40 зображеннями.
|
||||
|
||||
### Реконструкція
|
||||
|
||||
Ми використовуємо [Pix4D](https://pix4d.com/) для реконструкції у 3D.
|
||||
|
||||

|
||||
|
||||
## Приклад синхронізації Camera-IMU (VIO)
|
||||
|
||||
У цьому прикладі ми розглянемо основи синхронізації вимірювань ІМП з візуальними даними для побудови стерео навігаційної системи Visual-Inertial Navigation System (VINS).
|
||||
Щоб було зрозуміло, ідея тут полягає не в тому, щоб вимірювати IMU точно у той же час, що і ми фотографуємо, а отримувати правильний часовий штамп на наших зображеннях, щоб надавати точні дані нашому алгоритму VIO.
|
||||
|
||||
Автопілот та супутник мають різні бази часу (час завантаження для автопілота та UNIX епоха для супутника), тому замість вигинати будь-який з годинників, ми безпосередньо спостерігаємо різницю часу між годинниками.
|
||||
Це зміщення додається або віднімається від міток часу в повідомленнях MAVLink (наприклад, `HIGHRES_IMU`) в компоненті перекладача міжпрограмного забезпечення (наприклад, MAVROS на співмешканці та `mavlink_receiver` в PX4).
|
||||
Фактичний алгоритм синхронізації є модифікованою версією алгоритму мережевого протоколу часу (NTP) та використовує експоненційний рухомий середній для згладжування відстеженого зсуву часу.
|
||||
Ця синхронізація виконується автоматично, якщо використовується MAVROS з високосмуговим зв'язком на борту (режим MAVLink onboard\`).
|
||||
|
||||
Для отримання синхронізованих кадрів зображення та інерційних вимірювань ми підключаємо входи тригера двох камер до контакту GPIO на автопілоті.
|
||||
Часовий штамп інерційного вимірювання від початку впливу та номер послідовності зображень записуються й відправляються на спільний комп'ютер (`повідомлення CAMERA_TRIGGER`), який буферизує ці пакети та кадри зображень, отримані з камери.
|
||||
Вони збігаються за порядковим номером (перший кадр зображення - послідовність 0), часовими позначками зображень (з міткою часу від повідомлення CAMERA_TRIGGER) та потім публікуються.
|
||||
|
||||
Наступна діаграма ілюструє послідовність подій, які повинні відбутися для правильного відміткового зображень.
|
||||
|
||||
[](https://mermaid.live/edit#pako:eNqNUs9rwjAU_lceOW-3nXIQpIoIVkftZIdCeTbPNqxJXJI6ivi_L1Er6Dzs9kK-H3lfviOrjCDGmaPvjnRFE4m1RVVogKXxBFbWjQezg_fPN-CQS0Xgel3Bj_QNKDxY40A6EEYTYOeNQi8rbNs-SkTS62g04DgkqMgi5EG2JguWUPR_vaoLSlh5CKAb63reGuMdoBbR96Zwz7kzvQylcrXjPDFKBe71BYnR3po2ClzhkXnZNR1vFlJ_cR6GMkkn5WRV5tl8NptmZbJa5tlqEXmtMXuYBtMe4m05X-bTbDNegJJtKx1VRgv3NIybQTJOp9l4EH94zGMY99ugmqcfa49q_zyER3aKvmpg-G3QndqS_R_17AJSYU3n9PfdNuzXFJq0YC8sgBVKEbp0jHoF8w0pKhgPo6Addq0vWKFPARp7sg4lYtzbjl5Ytxfoh-oxvsPW0ekXb8TjxQ)
|
||||
|
||||
<!-- Original
|
||||

|
||||
{/% mermaid %/}
|
||||
sequenceDiagram
|
||||
Note right of PX4 : Time sync with mavros is done automatically
|
||||
PX4 ->> mavros : Camera Trigger ready
|
||||
Note right of camera driver : Camera driver boots and is ready
|
||||
camera driver ->> mavros : mavros_msgs::CommandTriggerControl
|
||||
mavros ->> PX4 : MAVLink::MAV_CMD_DO_TRIGGER_CONTROL
|
||||
loop Every TRIG_INTERVAL milliseconds
|
||||
PX4 ->> mavros : MAVLink::CAMERA_TRIGGER
|
||||
mavros ->> camera driver : mavros_msgs::CamIMUStamp
|
||||
camera driver ->> camera driver : Match sequence number
|
||||
camera driver ->> camera driver : Stamp image and publish
|
||||
end
|
||||
{/% endmermaid %/}
|
||||
-->
|
||||
|
||||
### Крок 1
|
||||
|
||||
Спочатку встановіть TRIG_MODE на 1, щоб драйвер чекав на команду запуску та перезавантажте свій FCU, щоб отримати решту параметрів.
|
||||
|
||||
### Крок 2
|
||||
|
||||
Для цілей цього прикладу ми налаштуємо тригер для співпраці з камерою Point Grey Firefly MV, що працює з частотою 30 FPS.
|
||||
|
||||
- `TRIG_INTERVAL`: 33.33 мс
|
||||
- `TRIG_POLARITY`: 0 (активний низький)
|
||||
- `TRIG_ACT_TIME`: 0.5 мс.
|
||||
Ручний номер у цьому випадку має бути не менш ніж 1 мікросекунда.
|
||||
- `TRIG_MODE`: 1, тому що ми хочемо, щоб ваш драйвер камери був готовий до отримання зображень перед початком запуску.
|
||||
Це важливо для належної обробки послідовних номерів.
|
||||
|
||||
### Крок 3
|
||||
|
||||
Підключіть свої камери до роз'єму AUX, підключивши земельний і сигнальний контакти до відповідного місця.
|
||||
|
||||
### Крок 4
|
||||
|
||||
Вам доведеться змінити свій драйвер, щоб дотримуватися схеми послідовності вище.
|
||||
Для камер [IDS Imaging UEye](https://github.com/ProjectArtemis/ueye_cam) та для камер, що відповідають стандарту [IEEE1394 compliant](https://github.com/andre-nguyen/camera1394), доступні публічні посилання на референтні реалізації.
|
||||
|
||||
## Дивіться також
|
||||
|
||||
- Драйвер Тригера камери: [вихідний код](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/camera_trigger) <!-- no module doc -->
|
||||
- Драйвер захоплення камери: [вихідний код](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/camera_capture) <!-- no module doc -->
|
||||
@@ -0,0 +1,20 @@
|
||||
# Камери
|
||||
|
||||
Камери є важливими для багатьох [використання вантажів](../payloads/use_cases.md), включаючи картографування та обстеження, нагляд, пошук та рятування, визначення стану та виявлення шкідників у посівах і.т.д.
|
||||
Вони зазвичай монтувалися на [шарнірну підвіску](../advanced/gimbal_control.md), яка може забезпечувати стабілізацію камери, відстеження об'єкту та рух незалежно від транспортного засобу, на якому вони розміщені.
|
||||
|
||||
## Типи камер
|
||||
|
||||
PX4 інтегрується з трьома типами камер:
|
||||
|
||||
- [Камери MAVLink](../camera/mavlink_v2_camera.md), які підтримують [Протокол Камери v2](https://mavlink.io/en/services/camera.html) (**РЕКОМЕНДОВАНО**).
|
||||
- [Прості камери MAVLink](../camera/mavlink_v1_camera.md), які підтримують старший [Протокол камери v1](https://mavlink.io/en/services/camera.html).
|
||||
- [Камери, підключені до виходів контролера польоту](../camera/fc_connected_camera.md), які керуються з використанням [протоколу камери v1](https://mavlink.io/en/services/camera.html).
|
||||
|
||||
[Камери MAVLink](../camera/mavlink_v2_camera.md) рекомендовані, оскільки вони забезпечують широкий доступ до функцій камери, використовуючи простий та послідовний набір команд/повідомлень.
|
||||
Якщо камера не підтримує цей протокол, можна використовувати [менеджер камери](../camera/mavlink_v2_camera.md#camera-managers), який працює на супутниковому комп'ютері, щоб забезпечити взаємодію між MAVLink та власним протоколом камери.
|
||||
|
||||
## Дивіться також
|
||||
|
||||
- [Gimbal (кріплення для камери)](../advanced/gimbal_control.md)
|
||||
- [Інтеграція/Архітектура камери](../camera/camera_architecture.md) (Розробники PX4)
|
||||
@@ -0,0 +1,115 @@
|
||||
# Прості камери MAVLink (Протокол камери v1)
|
||||
|
||||
Ця тема пояснює, як використовувати PX4 з MAVLink [камерою](../camera/index.md), що реалізує [Протокол Камери v1 (Простий Протокол Тригера)](https://mavlink.io/en/services/camera_v1.html) з PX4 та Наземною Станцією.
|
||||
|
||||
:::warning
|
||||
[Камери MAVLink](../camera/mavlink_v2_camera.md), що використовують [Протокол Камери MAVLink v2](https://mavlink.io/en/services/camera.html) слід використовувати замість цього, коли це можливо!
|
||||
Цей підхід зберігається для використання зі старими камерами MAVLink.
|
||||
:::
|
||||
|
||||
## Загальний огляд
|
||||
|
||||
[Протокол камери v1](https://mavlink.io/en/services/camera_v1.html) визначає невеликий набір команд, які дозволяють викликати камеру для:
|
||||
|
||||
- знімок неперервне зйомка з частотою, залежно від часу або відстані
|
||||
- захоплення відео
|
||||
- обмежені налаштування камери
|
||||
|
||||
PX4 підтримує цей набір команд для спрацьовування камер з вбудованою підтримкою протоколу (як описано в цій темі), а також для [камер, підключених до виходів контролера польоту](../camera/fc_connected_camera.md).
|
||||
|
||||
Наземні станції та SDK MAVLink, як правило, надсилають команди камери автопілоту, який потім передає їх на підключений канал MAVLink типу `onboard`.
|
||||
PX4 також повторно відправляє будь-які елементи місії камери, з якими він зустрічається у місії як команди камери: команди, які не приймаються, реєструються.
|
||||
У всіх випадках команди надсилаються з системним ідентифікатором автопілота та ідентифікатором компоненту 0 (тобто адресовані всім компонентам, включаючи камери).
|
||||
|
||||
PX4 також буде випускати [CAMERA_TRIGGER](https://mavlink.io/en/messages/common.html#CAMERA_TRIGGER) кожного разу, коли спрацьовує захоплення зображення (сама камера також може випускати це повідомлення при спрацьовуванні).
|
||||
|
||||
## Керування камерою
|
||||
|
||||
### Команди та повідомлення MAVLink
|
||||
|
||||
[Протокол камери v1 (простий тригер протокол)](https://mavlink.io/en/services/camera_v1.html) визначає наступні команди:
|
||||
|
||||
- [MAV_CMD_DO_TRIGGER_CONTROL](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_TRIGGER_CONTROL)
|
||||
- [MAV_CMD_NAV_CMD_DO_DIGICAM_CONTROL](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_CMD_DO_DIGICAM_CONTROL)
|
||||
- [MAV_CMD_DO_SET_CAM_TRIGG_DIST](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_SET_CAM_TRIGG_DIST)
|
||||
- [MAV_CMD_DO_SET_CAM_TRIGG_INTERVAL](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_SET_CAM_TRIGG_INTERVAL)
|
||||
- [MAV_CMD_OBLIQUE_SURVEY](https://mavlink.io/en/messages/common.html#MAV_CMD_OBLIQUE_SURVEY)
|
||||
- [MAV_CMD_DO_CONTROL_VIDEO](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_CONTROL_VIDEO)
|
||||
|
||||
Камера MAVLink буде підтримувати певний піднабір цих команд.
|
||||
Оскільки протокол не має процесу виявлення функцій, єдиний спосіб дізнатися - це оглянути [COMMAND_ACK](https://mavlink.io/en/messages/common.html#COMMAND_ACK), що повернено у відповіді.
|
||||
|
||||
Камери також повинні видавати [CAMERA_TRIGGER](https://mavlink.io/en/messages/common.html#CAMERA_TRIGGER) кожного разу, коли захоплюється зображення.
|
||||
|
||||
[Протокол камери v1](https://mavlink.io/en/services/camera_v1.html) детальніше описує протокол.
|
||||
|
||||
### Радіостанції наземної станції
|
||||
|
||||
Наземні станції можуть використовувати будь-які команди у [Протоколі Камери v1 (Простий Протокол Тригера)](https://mavlink.io/en/services/camera_v1.html) і повинні надсилати їх до ідентифікатора компонента автопілоту.
|
||||
Якщо команди не підтримуються камерою, вона поверне [COMMAND_ACK](https://mavlink.io/en/messages/common.html#COMMAND_ACK) з помилковим результатом.
|
||||
|
||||
Зазвичай команди адресовані автопілоту, оскільки це працює незалежно від того, чи підключено камеру через MAVLink, чи безпосередньо до керування польотом.
|
||||
Якщо звернення до автопілота PX4, він буде висилати [CAMERA_TRIGGER](https://mavlink.io/en/messages/common.html#CAMERA_TRIGGER) кожного разу, коли захоплюється зображення, і може реєструвати подію захоплення камери.
|
||||
|
||||
<!-- "May" because the camera feedback module is "supposed" to log just camera capture from a capture pin connected to camera hotshoe, but currently logs all camera trigger events from the camera trigger driver https://github.com/PX4/PX4-Autopilot/pull/23103 -->
|
||||
|
||||
У теорії ви також можете надсилати команди безпосередньо до камери.
|
||||
|
||||
### Команди камери у місіях
|
||||
|
||||
Можна використовувати наступні команди [Протокол камери v1 (простий тригер протокол)](https://mavlink.io/en/services/camera_v1.html) в місіях (це той самий список, що і вище).
|
||||
|
||||
- [MAV_CMD_DO_TRIGGER_CONTROL](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_TRIGGER_CONTROL)
|
||||
- [MAV_CMD_NAV_CMD_DO_DIGICAM_CONTROL](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_CMD_DO_DIGICAM_CONTROL)
|
||||
- [MAV_CMD_DO_SET_CAM_TRIGG_DIST](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_SET_CAM_TRIGG_DIST)
|
||||
- [MAV_CMD_DO_SET_CAM_TRIGG_INTERVAL](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_SET_CAM_TRIGG_INTERVAL)
|
||||
- [MAV_CMD_OBLIQUE_SURVEY](https://mavlink.io/en/messages/common.html#MAV_CMD_OBLIQUE_SURVEY)
|
||||
- [MAV_CMD_DO_CONTROL_VIDEO](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_CONTROL_VIDEO)
|
||||
|
||||
PX4 переістовує їх з тим самим ідентифікатором системи, що й автопілот, та ідентифікатором компонента [MAV_COMP_ID_ALL](https://mavlink.io/en/messages/common.html#MAV_COMP_ID_ALL):
|
||||
|
||||
<!-- See camera_architecture.md topic for detail on how this is implemented -->
|
||||
|
||||
### Ручне керування
|
||||
|
||||
Ручне спрацьовування за допомогою цих камер не підтримується (ні для джойстика, ні для дистанційного керування).
|
||||
|
||||
## Конфігурація PX4
|
||||
|
||||
<!-- set up the mode and triggering -->
|
||||
|
||||
### Налаштування порту та перенаправлення MAVLink
|
||||
|
||||
Підключіть PX4 до камери MAVLink, приєднавши її до не використаного послідовного порту на вашому авіаційному контролері, наприклад, `TELEM2`.
|
||||
Потім ви можете налаштувати порт як [MAVLink Peripheral](../peripherals/mavlink_peripherals.md).
|
||||
Документ пояснює, як, але в описі:
|
||||
|
||||
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 випромінюється та пересилається.
|
||||
3. Можливо, вам доведеться встановити деякі інші параметри, залежно від вашого з'єднання - наприклад, швидкість передачі даних.
|
||||
|
||||
Підключіться та налаштуйте камеру, як рекомендовано в її посібнику користувача.
|
||||
|
||||
<!-- Removed this because I am pretty sure forwarding happens automatically for this set. Keeping it simple.
|
||||
1. Set [MAV_2_FORWARD](../advanced_config/parameter_reference.md#MAV_2_FORWARD) if you want to enable forwarding of MAVLink messages to other ports, such as the one that is connected to the ground station.
|
||||
-->
|
||||
|
||||
### Режим камери та режим запуску
|
||||
|
||||
Налаштуйте водій камери PX4 для включення фонового процесу камери MAVLink та встановіть режим спуску для захоплення по команді в місіях обстеження.
|
||||
|
||||
Використання Від _QGroundControl_:
|
||||
|
||||
- Відкрийте [Налаштування рухомого засобу > Камера](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/setup_view/camera.html#px4-camera-setup).
|
||||
- Встановіть значення, як показано:
|
||||
|
||||

|
||||
|
||||
:::info
|
||||
You can also [set the parameters directly](../advanced_config/parameters.md):
|
||||
|
||||
- [TRIG_MODE](../advanced_config/parameter_reference.md#TRIG_MODE) — `4`: Основано на відстані, за командою (режим опитування)
|
||||
- [TRIG_INTERFACE](../advanced_config/parameter_reference.md#TRIG_INTERFACE) — `3`: MAVLink
|
||||
|
||||
:::
|
||||
@@ -0,0 +1,155 @@
|
||||
# Камери MAVLink (Протокол камери v2)
|
||||
|
||||
Ця тема пояснює, як використовувати PX4 з MAVLink [камера](../camera/index.md), що реалізує [MAVLink Camera Protocol v2] (https://mavlink.io/en/services/camera.html) з PX4 та Наземною Станцією.
|
||||
|
||||
:::tip
|
||||
Це рекомендований спосіб інтеграції камери з PX4!
|
||||
:::
|
||||
|
||||
## Загальний огляд
|
||||
|
||||
[Протокол камери MAVLink v2](https://mavlink.io/en/services/camera.html) дозволяє запитувати, які функції підтримуються камерою, і надає команди для керування захопленням зображень та відео, передачі відео, встановлення зуму та фокусу, вибору між інфрачервоними та видимими потоками світла, встановлення місця, куди зберігаються зібрані дані, та інше.
|
||||
|
||||
Камера може реалізувати протокол на рівні системи, але більшість налаштувань камер MAVLink передбачають взаємодію PX4 з [менеджером камер](#camera-managers), що працює на супутниковому комп'ютері, який потім взаємодіє між MAVLink та вихідним протоколом камери.
|
||||
|
||||
Загалом можна сказати, що "інтеграція" PX4 з камерою полягає в повторному відтворенні команд камери, знайдених у місіях за допомогою протоколу команд.
|
||||
В іншому випадку вона може діяти як міст, пересилаючи команди між земною станцією та камерою, якщо немає прямого каналу MAVLink.
|
||||
|
||||
:::info
|
||||
PX4 не підтримує використання команд [MAVLink Протокол Камери v2](https://mavlink.io/en/services/camera.html) для управління камерами, які підключені до виходів контролера польоту.
|
||||
Хоча це технічно можливо, це вимагатиме від PX4 реалізації інтерфейсу керування камерою.
|
||||
:::
|
||||
|
||||
## Керування камерою
|
||||
|
||||
### Команди та повідомлення MAVLink
|
||||
|
||||
Камери виявлені за допомогою протоколу підключення MAVLink (https://mavlink.io/en/services/heartbeat.html), заснованого на їх [HEARTBEAT.type](https://mavlink.io/en/messages/common.html#HEARTBEAT), заснованими на MAV_TYPE_CAMERA (https://mavlink.io/en/messages/common.html#MAV_TYPE_CAMERA).
|
||||
|
||||
:::tip
|
||||
Камери також повинні використовувати ID компонента в рекомендованому діапазоні, такому як [MAV_COMP_ID_CAMERA](https://mavlink.io/en/messages/common.html#MAV_COMP_ID_CAMERA), але, як правило, на це не можна покладатися для перевірки того, що компонент MAVLink є камерою.
|
||||
:::
|
||||
|
||||
Якщо камера виявлена, можна подивитися її властивості та можливості за допомогою [MAV_CMD_REQUEST_MESSAGE](https://mavlink.io/en/messages/common.html#MAV_CMD_REQUEST_MESSAGE), щоб запросити повідомлення [CAMERA_INFORMATION](https://mavlink.io/en/messages/common.html#CAMERA_INFORMATION), а потім інспектувати поле `flags`, щоб визначити, які стандартні функції в [CAMERA_CAP_FLAGS](https://mavlink.io/en/messages/common.html#CAMERA_CAP_FLAGS) підтримуються.
|
||||
|
||||
На основі прапорців ви можете визначити, які інші команди та повідомлення підтримуються камерою.
|
||||
Повний набір повідомлень, команд та констант [узагальнено тут](https://mavlink.io/en/services/camera.html#messagecommandenum-summary).
|
||||
|
||||
Додаткові параметри камери_можуть_бути викриті у [файлі-визначенні камери](https://mavlink.io/en/services/camera_def.html), який зв'язаний з `CAMERA_INFORMATION.cam_definition_uri`.
|
||||
GCS або SDK можуть відкрити ці параметри через загальний інтерфейс користувача, не маючи розуміння будь-якого контексту.
|
||||
Ці параметри не можуть бути встановлені безпосередньо в місіях і не мають конкретних команд-встановлювачів.
|
||||
|
||||
[Протокол камери MAVLink v2](https://mavlink.io/en/services/camera.html) описує всі взаємодії більш детально.
|
||||
|
||||
### Наземні станції & MAVLink SDKS
|
||||
|
||||
Наземні станції та MAVLink SDK виявляють камери та їх можливості, як описано в попередньому розділі.
|
||||
|
||||
Наземна станція може використовувати будь-яку функцію, яку надає камера.
|
||||
PX4 не має жодної ролі в цій взаємодії, крім пересилання трафіку MAVLink між камерою та наземною станцією або SDK, якщо потрібно.
|
||||
|
||||
### Команди камери у місіях
|
||||
|
||||
PX4 дозволяє використовувати наступний піднабір команд [Camera Protocol v2](https://mavlink.io/en/services/camera.html) під час місій:
|
||||
|
||||
- [MAV_CMD_IMAGE_START_CAPTURE](https://mavlink.io/en/messages/common.html#MAV_CMD_IMAGE_START_CAPTURE)
|
||||
- [MAV_CMD_IMAGE_STOP_CAPTURE](https://mavlink.io/en/messages/common.html#MMAV_CMD_IMAGE_STOP_CAPTURE)
|
||||
- [MAV_CMD_VIDEO_START_CAPTURE](https://mavlink.io/en/messages/common.html#MAV_CMD_VIDEO_START_CAPTURE)
|
||||
- [MAV_CMD_VIDEO_STOP_CAPTURE](https://mavlink.io/en/messages/common.html#MAV_CMD_VIDEO_STOP_CAPTURE)
|
||||
- [MAV_CMD_SET_CAMERA_MODE](https://mavlink.io/en/messages/common.html#MAV_CMD_SET_CAMERA_MODE)
|
||||
- [MAV_CMD_SET_CAMERA_ZOOM](https://mavlink.io/en/messages/common.html#MAV_CMD_SET_CAMERA_ZOOM)
|
||||
- [MAV_CMD_SET_CAMERA_FOCUS](https://mavlink.io/en/messages/common.html#MAV_CMD_SET_CAMERA_FOCUS)
|
||||
|
||||
PX4 відновлює команди камери, знайдені в місіях, як команди MAVLink.
|
||||
Системний ідентифікатор випущених команд співпадає з ідентифікатором автопілота.
|
||||
Ідентифікатор компонента команд може відрізнятися.
|
||||
Перші чотири команди адресовані [MAV_COMP_ID_CAMERA (100)](https://mavlink.io/en/messages/common.html#MAV_COMP_ID_CAMERA) (якщо у камери є цей ідентифікатор компонента, вона виконає вказану команду).
|
||||
Режим камери, зум та фокусування, команди надсилаються до компонента з ідентифікатором [MAV_COMP_ID_ALL](https://mavlink.io/en/messages/common.html#MAV_COMP_ID_ALL).
|
||||
|
||||
:::info
|
||||
PX4 в даний час ігнорує ідентифікатор цілі камери `id` в [MAV_CMD_IMAGE_START_CAPTURE](https://mavlink.io/en/messages/common.html#MAV_CMD_IMAGE_START_CAPTURE) та інших повідомленнях камери.
|
||||
Див. [PX4-Autopilot#23083](https://github.com/PX4/PX4-Autopilot/issues/23083).
|
||||
:::
|
||||
|
||||
<!--
|
||||
List of all supported commands in missions in:
|
||||
format_mavlink_mission_item() => https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_mission.cpp#L1672-L1693
|
||||
|
||||
Mission items are executed when set active.
|
||||
void Mission::setActiveMissionItems() => https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/navigator/mission.cpp#L187-L281
|
||||
At end the current non-waypoint command is "issued":
|
||||
note at end => issue_command(_mission_item);
|
||||
|
||||
Issuing command:
|
||||
MissionBlock::issue_command(const mission_item_s &item) => https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/navigator/mission_block.cpp#L543-L562
|
||||
At end this publishes the current vehicle command
|
||||
_navigator->publish_vehicle_cmd(&vcmd);
|
||||
|
||||
Publishing command:
|
||||
void Navigator::publish_vehicle_cmd(vehicle_command_s *vcmd) => https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/navigator/navigator_main.cpp#L1358
|
||||
For camera commands set to vcmd->target_component = 100; // MAV_COMP_ID_CAMERA
|
||||
All others just get published as-is
|
||||
-->
|
||||
|
||||
### Ручне керування
|
||||
|
||||
Стіки джойстика можуть бути налаштовані на спрацьовування захоплення зображення або перемикання захоплення відео.
|
||||
|
||||
PX4 видає команди [MAVLink Camera Protocol v2](https://mavlink.io/en/services/camera.html), такі як `MAV_CMD_IMAGE_START_CAPTURE`, коли натиснута відповідна кнопка джойстика.
|
||||
Ця функція працює лише для цього типу камери та джойстика - підтримки для радіокерованних-контролерів немає.
|
||||
|
||||
## Конфігурація PX4
|
||||
|
||||
### Налаштування порту & перенаправлення MAVLink
|
||||
|
||||
Вам потрібно буде надати канал MAVLink для будь-яких підключених камер, щоб PX4 міг висилати будь-які команди камери, знайдені в місіях.
|
||||
Якщо ваша мережа MAVLink така, що PX4 є "між" вашою камерою та наземною станцією, вам також потрібно буде пересилати комунікації, щоб вони могли спілкуватися.
|
||||
|
||||
Спочатку під'єднайте камеру до не використаного послідовного порту на контролері польоту, такого як `TELEM2` (ви також можете використовувати порт Ethernet, якщо він присутній як на контролері польоту, так і на камері).
|
||||
Потім налаштуйте обраний порт як [MAVLink Peripheral](../peripherals/mavlink_peripherals.md).
|
||||
|
||||
Документ пояснює, як, але коротко:
|
||||
|
||||
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 випромінюється для супутнього комп'ютера (або камери).
|
||||
3. Встановіть [MAV_2_FORWARD](../advanced_config/parameter_reference.md#MAV_2_FORWARD), щоб дозволити пересилання комунікацій з порту на інші порти, такі як той, що підключений до наземної станції.
|
||||
4. Можливо, вам доведеться встановити деякі інші параметри, залежно від типу підключення та будь-яких конкретних вимог камери щодо очікуваної швидкості передачі даних і т. д.
|
||||
|
||||
### Ручне керування
|
||||
|
||||
Кнопки джойстика можуть бути налаштовані для захоплення зображень та перемикання запису відео включено/виключено.
|
||||
|
||||
- [Joystick](../config/joystick.md#enabling-px4-joystick-support) пояснює, як увімкнути джойстики на PX4.
|
||||
- [QGroundControl > Налаштування джойстика](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/setup_view/joystick.html) пояснює, як задати кнопки на функції стеку польоту
|
||||
|
||||
<!-- Cameras cannot be controlled from an RC controller as far as I can tell -->
|
||||
|
||||
## Менеджери камер
|
||||
|
||||
Якщо ви хочете використовувати камеру, яка не підтримує протокол камери MAVLink за замовчуванням, вам знадобиться менеджер камери MAVLink.
|
||||
Менеджер камери працює на супутниковому комп'ютері та з'єднує інтерфейс протоколу камери MAVLink і нативний інтерфейс камери.
|
||||
|
||||
Існують "розширювані" менеджери камер, якими можна користуватися з багатьма різними камерами, менеджери камер, розроблені для роботи з певною камерою, а також ви можете написати свій власний (наприклад, використовуючи додатки сервера MAVSDK).
|
||||
|
||||
Загальні/розширені менеджери камер:
|
||||
|
||||
- [Менеджер камери MAVLink](https://github.com/mavlink/mavlink-camera-manager) - Розширюваний крос-платформенний сервер камери MAVLink, побудований на базі GStreamer та Rust-MAVLink.
|
||||
- [Менеджер камери Dronecode](https://camera-manager.dronecode.org/en/) - Додає інтерфейс протоколу камери для камер, підключених до комп'ютера з Linux.
|
||||
|
||||
Специфічні менеджери камери:
|
||||
|
||||
- [Менеджер камери SIYI A8 mini](https://github.com/julianoes/siyi-a8-mini-camera-manager) - Менеджер камери на основі плагіна MAVSDK для [SIYI A8 mini] (включає навчальний посібник).
|
||||
|
||||
::: tip
|
||||
Це добрий приклад того, як MAVSDK може бути використаний для створення інтерфейсу протоколу камери MAVLink для певної камери.
|
||||
|
||||
:::
|
||||
|
||||
Під час використання менеджера камери ви підключаєте компаньйон-комп'ютер до контролера польоту (замість прямого підключення до камери), і вам знадобиться додаткове програмне забезпечення на комп'ютері для направлення трафіку MAVLink до менеджера камери на компаньйон-комп'ютері, таке як [mavlink-router](https://github.com/mavlink-router/mavlink-router).
|
||||
|
||||
Додаткову інформацію щодо камерного менеджера та налаштувань компаньйона можна знайти в:
|
||||
|
||||
- [Менеджер камери SIYI A8 mini](https://github.com/julianoes/siyi-a8-mini-camera-manager) - Навчальний посібник з інтеграції з [SIYI A8 mini](https://shop.siyi.biz/products/siyi-a8-mini), використовуючи менеджер камери на основі MAVSDK, який працює на комп'ютері-компаньйоні Raspberry Pi.
|
||||
- [Використання комп'ютера-компаньйона з контролерами Pixhawk](../companion_computer/pixhawk_companion.md)
|
||||
- [Компаньйони комп'ютери > Програмне забезпечення комп'ютера-компаньйона](../companion_computer/index.md#companion-computer-software): Зауважте [MAVLink-Router](https://github.com/mavlink-router/mavlink-router), який можна налаштувати для маршрутизації трафіку MAVLink між послідовним портом та IP-лінком (або іншим інтерфейсом керування камерою).
|
||||
Reference in New Issue
Block a user