Похожие презентации:
2.8. Клевер_полет по Aruco меткам
1.
Разработка ПО дляполетного
контроллера
БАС
Комплексные решения с
компьютером компаньоном
- Настройка проекта COEX
- Полет по Aruco меткам
- Сервисы визуализации ROS
к.т.н., доцент каф.806
Ухов Петр Александрович
2.
Настройка проекта Coex – практикаКонфигурационные файлы проекта (включим навигацию по Aruco меткам):
1. Основной файл конфигурации проекта:
nano ~/catkin_ws/src/clover/clover/launch/clover.launch (включим навигацию по Aruco)
2. Файл конфигурации навигации и карты меток aruco.launch (заменим карту с map.txt на cmit.txt и
настроим все в соответствии с инструкцией), проверим что карта изменилась
http://localhost:8080/snapshot?topic=/aruco_map/image для применения изменений нужно
перезагрузить ROS командой: sudo systemctl restart clover (на полетном контроллере)
диагностику командой: rosrun clover selfcheck.py
далее познакомимся с другими файлами настройки запуска
3. Файл конфигурации светодиодной ленты led.launch
4. Файл конфигурации основной камеры main_camera.launch
5. Конфигурация запуска MAVROS mavros_config.yaml
Файл запуска MAVROS mavros.launch (основан на базовой конфигурации)
6. Файл конфигурации симулятора simulator.launch
2
Если внимательно изучить конфигурацию, то не все дополнения MAVROS установлены…
3.
Детали по настройке aruco.launchОтредактируем файл конфигурации: nano ~/catkin_ws/src/clover/clover/launch/aruco.launch
3
Аргумент aruco в файле ~/catkin_ws/src/clover/clover/launch/clover.launch должен быть в значении true:
<arg name="aruco" default="true"/>
Для включения распознавания маркеров аргумент aruco_detect в файле
~/catkin_ws/src/clover/clover/launch/aruco.launch должен быть в значении true:
<arg name="aruco_detect" default="true"/>
Для правильной работы в этом же файле также должны быть выставлены аргументы:
<arg name="placement" default="floor"/> <!-- расположение маркеров, см. далее -->
<arg name="length" default="0.33"/> <!-- размер маркеров в метрах (не включая белую рамку) -->
Значение аргумента placement следует выставлять следующим образом:
•если все маркеры наклеены на полу (земле), выставить значение floor;
•если все маркеры наклеены на потолке, выставить значение ceiling;
•в противном случае удалить строку с параметром.
Если некоторые маркеры имеют размер, отличный значения length, их размер может быть
переопределен с помощью параметра length_override ноды aruco_detect:
<param name="length_override/3" value="0.1"/> <!-- маркер c id 3 имеет размер 10 см -->
<param name="length_override/17" value="0.25"/> <!-- маркер c id 17 имеет размер 25 см -->
4.
Полет по Aruco меткам - практикаА теперь выполним тоже самое и сравним различия (навигация по меткам ArucoMap):
Запустим qgroundcontrol чтобы избежать RC Failsafe и далее выполним взлет:
Проверим состояние коптера:
rostopic echo /mavros/state
Заармируем коптер:
rosservice call /mavros/cmd/arming "value: true"
Для взлета попробуем выполнить сервис:
rosservice call /mavros/cmd/takeoff 0 0 0 0 3
Для посадки используйте сервис mavros/cmd/land. Выполните следующую команду:
rosservice call /mavros/cmd/land 0 0 0 0 0
В процессе выполнения полета посмотрим на топики камеры и модуля ArucoMap
Указанные метки могут быть размещены на потолке и позволяют
осуществлять дешевую навигацию внутри помещений, в отличие от
других технологий (более дорогие системы на базе радиосигналов или
более сложные SLAM алгоритмы)
4
Посмотреть результаты распознавания маркеров можно по ссылке:
http://localhost:8080/stream_viewer?topic=/aruco_detect/debug
5.
Генератор Aruco метокMap-based navigation is possible using vision position estimate
(VPE)
Для генерации карты Aruco меток можно использовать сервис:
https://aruco-gen.netlify.app/
Для клевера использована своя реализация:
https://chev.me/arucogen/
Cама же карта задается в виде текстового файла с
параметрами размещения маркеров:
https://clover.coex.tech/en/aruco_map.html#marker-mapdefinition
marker_id marker_size x y z z_angle y_angle x_angle
Текущую карту клевера можно просмотреть в браузере
(благодаря веб сервису) в виде топика:
http://localhost:8080/snapshot?topic=/aruco_map/image
5
6.
Сервисы визуализации ROS – rvizДетальное описание тут: http://wiki.ros.org/rviz/UserGuide
Инструмент rviz позволяет в
реальном времени
визуализировать на 3Dсцене все компоненты
робототехнической системы
- системы координат,
движущиеся части,
показания датчиков,
изображения с камер.
6
7.
Сервисы визуализации ROS rviz - практикаНастроим отображение беспилотника:
1. Отобразите топик камеры /main_camera/image_raw (на виртуальной машине иногда не хватает
ресурсов, тогда можно выбрать аналогичный топик с обновлением 1 раз в секунду)
2. Отобразите визуальный топик для проверки детекции маркеров /aruco_detect/debug
3. Попробуйте выполнить взлет и посмотреть на результаты отображения
Выполните визуальизацию положения:
1. В качестве reference frame
рекомендуется установить фрейм map.
2. Для визуализации коптера добавьте
визуализационные маркеры из
топика /vehicle_markers.
3. Для визуализации камеры коптера
добавьте визуализационные маркеры из
топика /main_camera/camera_markers.
7
8.
Сервисы визуализации ROS – rqtДетальное описание тут: https://clover.coex.tech/ru/rviz.html
Запустим визуализацию в процессе полета:
1. Запустим Service caller (Plugins->Services) и попробуем выполнить также взлет и посадку
2. Посмотрим установленные плагины визуализации данных (Plugins)
8
9.
Сервисы визуализации ROS – rqt_graphВыполните в консоли
команду rqt_graph
Поэкспериментируйте с
разными видами
представления
информации
9
10.
Сервисы записи данных ROS – rosbagОфициальная документация по пакетам для записи и воспроизведения данных в ros доступна по ссылке
Для записи необходима установка пакета rosbag (базовый для ROS): https://wiki.ros.org/rosbag
Графическая утилита rqt_bag для просмотра и проигрывания записей rosbag: https://wiki.ros.org/rqt_bag
rqt_bag – приложение для записи и управления файлами bag. Основные особенности:
10
может показать содержимое топиков в bag
отображает графические топики (в т.ч. в виде миниатюр на временной шкале)
строит настраиваемый временной ряд значений топиков
публикует/записывает сообщения по выбранным топикам в/из ROS
экспортируем топики за определенный период времени в другой bag файл
11.
Сервисы записи данных ROS – rosbagПопрактикуемся с записью данных:
1. Запустим симуляцию Coex (ярлык Gazebo Clover на рабочем столе)
2. Выполните в терминале запуск rqt, далее Plugins --> Logging --> Bag
3. Нажмите на запись и выберите топики для записи (main_camera/image_raw, mavros/altitude,
rangefinder/range)
4. Откройте в VSCode папку examples (со скриптами python) и выберите flight.py (в диалоге выберите
доверять создателям папки для включения возможности запуска кодов)
5. Перейдите обратно в rqt и включите запись файла bag
6. Выполните запуск скрипта flight.py, убедитесь, что беспилотник выполнил взлет и посадку.
7. Перейдите обратно в rqt и выключите запись файла bag
8. Сохраните полученный bag файл.
9. Выполните rosbag reindex <name>.bag
для вашего файла
11
12.
Полет на Coex через PythonУправление питоновским скриптом через
библиотеку rospy (подключается к ROS)
12
13.
Запись и просмотр bag файлаПросмотр и проигрывание
посредством rqt
13
14.
Просмотр данных из Python – bagpyДля доступа к данным из файла bag будем использовать Jupyter Notebook (у кого нет локально
установленного юпитера, воспользуйтесь сервисом Google Colab – ссылка)
Посмотрим просмотр записанных данных на примере робособаки Дора МАИ (ссылка на юпитер)
14
15.
Задание на практикуВыполните настройку Клевера для полета по карте меток Aruco и выполните простой взлет и посадку с
демонстрацией визуализации камеры (из Gazebo) запишите результаты полета в виде видеоотчета по
практике.
15
Информатика