Моделирование группы БПЛА в симуляционной среде (PX4 ROS 2 Gazebo)

в 14:09, , рубрики: drones, mavlink, pixhawk, PX4, python, ROS, ros2

Рад представить вашему вниманию проект, который является частью моей диссертационной работы, направленной на разработку систем управления группой беспилотных летательных аппаратов (БПЛА). Данный проект посвящён созданию гибкой и масштабируемой системы управления дронами как воздушного, так и наземного базирования. Он позволяет моделировать совместное взаимодействие дронов в симуляционной среде, а также обеспечивает основу для реализации новых алгоритмов управления.

PX4 Multi-Drone Control Demonstration 1

PX4 Multi-Drone Control Demonstration 1
Понимаю. Качество картинки шкальное, но если присмотреться, то можно понять что где)
PX4 Multi-Drone Control Demonstration 2
PX4 Multi-Drone Control Demonstration 2
Это с визуализацией траектории движения в rviz 
Пример первоначальный без высокоуровневого контроллера

Пример первоначальный без высокоуровневого контроллера
Это гифка больше как иллюстрация возможностей (качество тоже шакальное)

О проекте

PX4 Multidrone Simulation Project — это открытый проект, доступный в репозитории GitHub, который разработан с использованием PX4 Autopilot и фреймворка ROS 2. Выбор PX4 обусловлен его обширной документацией, примерами реализации и возможностью быстрой интеграции с различными платформами. Основным языком программирования стал Python, который обеспечивает высокую скорость разработки и лёгкость развёртывания приложений.

Проект написан на Python возможно выбор этого языка кто то осудит, но на мой взгляд главное преимущество это скорость написания кода и формирование готового приложения.

Если заинтересовал проект то лучше ознакомиться с исходным кодом и документацией.

Что может система?

Система предоставляет базовую модель, которую можно модифицировать под конкретные нужды. Она включает:

  • Развёртывание симуляционной среды Gazebo: поддерживаются как стандартные, так и пользовательские миры и модели, настраиваемые через переменные конфигурации.

  • SITL (Software-in-the-loop): возможность запускать отдельные процессы для каждого дрона, что упрощает управление группой БПЛА.

  • Высокоуровневый контроллер: поддерживает базовые команды, такие как взлёт, посадка, перемещение к точке, линейное и круговое движение. G команды в формате JSON отправляются через ROS topics, преобразуются в низкоуровневые команды MAVLink и выполняются дроном.

Дополнительно реализована визуализация полётов дронов с использованием RViz, ознакомиться с проектом можно в другом репозитории GitHub.

Модульная структура

Проект включает три стадии разработки контроллеров:

  1. Базовый контроллер: может использоваться для любого дрона.

  2. Контроллер для X500: добавляет управление в режиме Offboard.

  3. Высокоуровневый контроллер для X500: поддерживает G-коды, что упрощает разработку траекторий и тестирование алгоритмов.

     Кстати я запускал этот контроллер и на других моделях, в целом и они работают, но нужно отлаживать работу.
    

Тестирование и возможности

Система протестирована на трёх дронах одновременно (ограничение по ресурсам ноутбука), но архитектура поддерживает развёртывание большего числа дронов. Использование Docker позволяет быстро разворачивать систему на разных машинах. Для начала работы достаточно выполнить:

docker-compose build
docker-compose up

Как начать?

Проект создавался с расчётом на удобство использования и доступность. Если немного разобраться в архитектуре и документации, всё описанное можно легко повторить. Более того, проект предоставляет достаточно гибкости, чтобы вы могли улучшить его под свои задачи и добиться ещё более впечатляющих результатов.

В проекте могут присутствовать ошибки в коде или в реализации, возможно (а скорее точно) я допустил ошибки.

В будущем

Проект активно развивается. В дальнейшем планируется добавить больше команд, улучшить документацию и протестировать масштабируемость системы для боевых условий и коммерческого использования. Надеюсь также подготовлю более обширную статью с описанием подхода и системы управления.

Заключение

Этот проект создавался как инструмент для научных исследований и экспериментов, но может стать основой для более сложных систем управления БПЛА. Я уверен, что он будет полезен как для начинающих инженеров, так и для профессионалов, работающих в сфере робототехники и автоматизации. Ваши отзывы, предложения и участие станут важным вкладом в его дальнейшее развитие.

Контактные данные

Буду рад ответить на ваши вопросы или замечания и помочь если смогу.

Автор: anton_shbk

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js