Симуляция (Gazebo) - DRONE520/CS GitHub Wiki
Gazebo Simulation (Сборка ПО симуляции БПЛА)
Gazebo-это мощная среда 3D-моделирования для автономных роботов, которая подходит для тестирования избегания объектов и тестирования компьютерного зрения. Далее будем рассматривать его использование с SITL и одним транспортным средством.
Поддерживаемые транспортные средства: Quad (Iris and Solo, Hex (Typhoon H480), Generic quad delta VTOL, Tailsitter, Plane, Rover, Submarine/UUV.
Примечание
См. раздел Симуляция (моделирование) для получения общей информации о симуляторах, среде моделирования и конфигурации моделирования (например, поддерживаемые транспортные средства).
Установка
- macOS: Development Environment on Mac
- Linux: Development Environment on Ubuntu LTS / Debian Linux > Gazebo, JMAVSim and NuttX (Pixhawk) Targets
- Windows: Not supported.
Запуск моделирования
Запустите моделирование, запустив PX4 SITL и gazebo с конфигурацией планера для загрузки (multicopters, planes, VTOL, optical flow and multi-vehicle simulations are supported).
Самый простой способ сделать это - открыть терминал в корневом каталоге репозитория PX4 PX4-Автопилот и вызвать make
для достижения желаемой цели. Например, для запуска моделирования квадрокоптера(по умолчанию):
cd /path/to/PX4-Autopilot
make px4_sitl gazebo
Поддерживаемые транспортные средства и make команды перечислены ниже (нажмите ссылки, чтобы просмотреть изображения транспортных средств).
Транспортное средство | Команда |
---|---|
Quadrotor | make px4_sitl gazebo |
Quadrotor with Optical Flow | make px4_sitl gazebo_iris_opt_flow |
3DR Solo (Quadrotor) | make px4_sitl gazebo_solo |
Typhoon H480 (Hexrotor) (supports video streaming) | make px4_sitl gazebo_typhoon_h480 |
Standard Plane | make px4_sitl gazebo_plane |
Примечание
Для получения полного списка целей сборки выполните команду make px4_sitl list_vmd_make_targets (и отфильтруйте те, которые начинаются с gazebo_).
Приведенные выше make-команды сначала создают PX4, а затем запускают его вместе с симулятором.
Как только PX4 запустится, он запустит оболочку PX4, как показано ниже.
Консоль выведет состояние, когда PX4 загрузит файлы инициализации и параметров для конкретного планера, дождется (и подключится) к симулятору. Как только появится информационная строка [ecl/EKF] commencing GPS fusion
, транспортное средство готово к работе.
Вы можете поднять его в воздух, набрав: pxh> commander takeoff
С более подробной информацией о функциональных возможностях, предлагаемых Gazebo, можно ознакомиться здесь.
ROS
ROS (операционная система роботов) может использоваться с PX4 и симулятором Gazebo. Он использует узел MAVROS MAVLink для связи с PX4.
Установка ROS и Gazebo
Примечание
ROS поддерживается только в Linux (не в macOS или Windows).
Самый простой способ настроить симуляцию PX4 с ROS в Ubuntu Linux - использовать стандартный сценарий установки, который можно найти в среде разработки в Linux> Gazebo с ROS . Скрипт устанавливает все необходимое: PX4, ROS "Melodic", симулятор Gazebo 9 и MAVROS.
Примечание
Скрипт следует стандартной инструкции по установке ROS "Melodic". (открывается в новом окне), в которую входит Gazebo 9.
Запуск ROS / Simulation
Приведенную ниже команду можно использовать для запуска симуляции и подключения к ней ROS через MAVROS , где fcu_url
это IP / порт компьютера, на котором выполняется симуляция:
roslaunch mavros px4.launch fcu_url:="udp://:[email protected]:14557"
Чтобы подключиться к localhost, используйте этот URL:
roslaunch mavros px4.launch fcu_url:="udp://:[email protected]:14557"
What's Happening Behind the Scenes
В этом разделе показано, как на самом деле работают ранее предоставленные инструкции по запуску (вы можете следовать им, чтобы вручную запустить моделирование и ROS).
Сначала запустите симулятор, используя следующую команду:
no_sim=1 make px4_sitl_default gazebo
Консоль будет выглядеть так:
Способы расширения функциональности СПО симуляции БПЛА (добавление внешних факторов в симуляцию мира)
Программный комплекс Gazebo представляет собой среду для симулирования работы виртуальных роботов с различными сенсорами в окружении всевозможных объектов. Приложение состоит из графической части и части по имитированию взаимодействия твердых объектов, позволяя моделировать динамику и кинематику механизмов роботов (включая моменты взаимодействия с телами внешней среды) и формировать физически правдоподобные показания виртуальных датчиков. Программа Gazebo имеет гибкий дизайн и удобный интерфейс, поддерживающий одновременную работу с несколькими устройствами. Для работы в данной среде необходимо хорошее знание C++ и UNIX-систем.
Симулятор Gazebo имеет свой собственный редактор, позволяющий без программирования создавать трехмерные сцены и включающий огромную библиотеку моделей. Программа также предоставляет следующие возможности:
Использование популярных общеизвестных моделей роботов, таких как: iRobot Create, PR2, TurtleBot, Pioneer 2 DX, Segway RMP, Pioneer 2 AT. Помимо заранее созданных разработчиками моделей есть возможность самостоятельного проектирования необходимых устройств (сенсоров и роботов), загрузки их в мир и дальнейшей симуляции. Однако устройства, модели которых уже есть в программе, эмулируются с гораздо более высокой точностью. Поддержка и симулирование работы множества различных сенсоров, в том числе сонара, лазерного дальномера, датчиков семейства IMU, моно- и стереокамер, кинект-сенсоров, прибора для чтения RFID-меток и других.
Для создания качественной графики к ПО Gazebo можно подключить объектно-ориентированный графический движок OGRE с открытым исходным кодом. Также симулятор способен читать файлы в формате COLLADA, что позволяет добавлять в приложение объекты, созданные в сторонних редакторах 3D-моделей.
Наряду с программой Stage (двумерным симулятором роботов), Gazebo совместим с приложением Player – кросс-платформенным ПО для исследования робототехнических систем. Данная среда обеспечивает сетевой интерфейс между управляющими программами и добавляемыми разработчиками модулями/драйверами реального оборудования. Таким образом, написанная в Gazebo и там же отлаженная управляющая программа может без изменений быть перенесена на настоящее оборудование или на другой симулятор. Также среда симуляции Gazebo совместима с ROS – операционной системой для программирования роботов.
Заключение.
Моделирование – важный этап проектирования роботов и исследования их поведения в ВС. Моделирование включает в себя проверку различных взаимодействий –физических или наблюдательных для построения карты (модели) ВС. Однако моделирование имеет и недостатки. Не всегда возможно построение адекватной модели ВС и/или робота, из-за чего поведение робота в искусственной среде не будет соответствовать его поведению в реальных условиях. Реальный мир обычно более беспорядочный и шумный, имеет огромное число физических свойств и параметров, которые не всегда можно учесть при моделировании, поэтому искусственную окружающую среду принципиально сложно (а иногда и невозможно) создать. Моделирование робота является сложным процессом, так как сенсоры в реальном мире могут часто показывать различные или неожиданные характеристики. Однако не смотря на эти недостатки, моделирование ВС и таких сложных роботов, как БПЛА, необходимо для создания надёжных, достаточно устойчивых алгоритмов для работы в реальных условиях систем БПЛА.