Симуляция (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.

Посмотреть на Youtube

Примечание

См. раздел Симуляция (моделирование) для получения общей информации о симуляторах, среде моделирования и конфигурации моделирования (например, поддерживаемые транспортные средства).

Установка

Запуск моделирования

Запустите моделирование, запустив 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 – операционной системой для программирования роботов.

Заключение.

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