Drone додатки & API
API дронів дозволяють вам писати код для керування та інтеграції з транспортними засобами на базі PX4, не потребуючи ретельного розуміння деталей транспортного засобу та стеку польоту, або думати про критичну безпекову поведінку.
Наприклад, ви можете створити нові "розумні" режими польоту, або власні режими геозон, або інтегрувати нове обладнання. API дронів дозволяють вам робити це, використовуючи високорівневі інструкції у вашій обраній мові програмування, і код може потім виконуватися на транспортному засобі у компаньйонному комп'ютері або зі станції на землі. В основі API здійснюється спілкування з PX4 за допомогою MAVLink або uXRCE-DDS.
PX4 підтримує наступні інструменти SDK/робототехніки:
Який API мені слід використовувати?
Ми рекомендуємо використовувати MAVSDK там, де це можливо, насамперед тому, що він набагато інтуїтивно зрозуміліший і простіший у вивченні. Він також може працювати на більшій кількості операційних систем і менш продуктивному обладнанні.
Ви можете віддати перевагу ROS, якщо ви вже знаєте, як ним користуватися, або якщо ви хочете використовувати вже існуючі інтеграції (наприклад, завдання комп'ютерного зору). Загалом, ROS, ймовірно, буде кращим вибором для завдань, які вимагають дуже низької затримки або більш глибокої інтеграції з PX4, ніж це забезпечує MAVLink.
Основна різниця:
- MAVSDK:
- Інтуїтивно зрозумілий та оптимізований для дронів, з невеликою тривалістю навчання та простим налаштуванням.
- Ви можете писати програми на C++, Python, Swift, Java, Go та інших мовах.
- Працює на обладнанні з обмеженими ресурсами
- Працює на широкому спектрі ОС, включаючи Android, Linux, Windows.
- Комунікація через MAVLink.
- Стабільний і широко підтримуваний.
- Обмежено можливостями MAVLink - потрібна інформація може бути не опрацьована.
- Затримка може бути занадто великою для деяких випадків використання.
- ROS:
- General-purpose robotics API that has been extended to support drone integration:
- Концептуально не так добре оптимізований для безпілотників
- Значний час навчання
- Багато готових бібліотек: корисно для повторного використання коду.
- Підтримуються бібліотеки C++ та Python
- Працює на Linux
- ROS 2 - остання версія, яка підключається через DDS.
- Інтерфейсний шар DDS дозволяє глибоку інтеграцію з будь-яким аспектом PX4, який виставляється як тема UORB (майже з усім).
- Можна забезпечити значно нижчу затримку.
- Все ще розробляється. На момент написання статті потрібне більш глибоке розуміння PX4, ніж ROS 1
- ROS 1 - це стара версія, яка може підключатися через MAVLink або через ROS 2. Користувачам рекомендується оновитися до ROS 2 для нових проектів.
- General-purpose robotics API that has been extended to support drone integration: