From 3db1f653bc4414048692d39da45fd5295f760e28 Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Sun, 28 Jul 2019 13:16:27 +0300 Subject: [PATCH] docs: add article about robocross-2019 --- docs/ru/SUMMARY.md | 1 + docs/ru/robocross2010.md | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 docs/ru/robocross2010.md diff --git a/docs/ru/SUMMARY.md b/docs/ru/SUMMARY.md index 79725bff..1f6bd18f 100644 --- a/docs/ru/SUMMARY.md +++ b/docs/ru/SUMMARY.md @@ -67,6 +67,7 @@ * [Дрон для 3D-сканирования человека](3dscan.md) * [CopterHack-2018](copterhack2018.md) * [CopterHack-2017](copterhack2017.md) + * [Робокросс-2019](robocross2019.md) * Дополнительные материалы * [Олимпиада НТИ 2019](nti2019.md) * [Вклад в Клевер](contributing.md) diff --git a/docs/ru/robocross2010.md b/docs/ru/robocross2010.md new file mode 100644 index 00000000..b8b7e881 --- /dev/null +++ b/docs/ru/robocross2010.md @@ -0,0 +1,25 @@ +# Робокросс-2019 + +В июле 2019 команда Коптер Экспресс в 4-й раз подряд одержала победу на всесоюзных испытаниях беспилотных транспортных средств "[Робокросс](http://russianrobotics.ru/activities/robokross-2019/)". Испытания проводятся на полигоне ГАЗ под Нижним Новгородом. + +Основной задачей испытаний в категории БПЛА было локализовать и уничтожить цель — красный воздушный шар — в автономном режиме. + +## Видео + + + +## Реализация + +Команда использовала квадрокоптер на базе рамы F450 и [платформу Клевер](https://github.com/CopterExpress/clever). Полный итоговый исходный код доступен для изучения [на GitHub](https://github.com/CopterExpress/robocross2019/). + +Разработанный пакет `robocross2019` разбит на модули: ROS-нодлет `red_dead_detection` распознает красный шар, `balloon.py` реализует высокоуровневую логику полета коптера. + +## red_dead_detection + +Нодлет `red_dead_detection` обеспечивает обнаружение красного шара на изображении с камеры квадрокоптера, смотрящей вперед (топики `/front_camera/image_raw` и `/front_camera/camera_info`). Используется простейший метод фильтрации изображения по цвету. Затем вычисляется геометрический центр полученных участков и производится камеры полученных координат, учитывая искажения камеры (`cv::undistortPoints`). + +Используя известное фокусное расстояние камеры (из топика `camera_info`) вычисляется вектор, направленный в сторону цели. Полученный вектор публикуется в топик `/red_dead_detection/direction`, причем его система координат (`frame_id` связана с расположением передней камеры `front_camera_optical`). + +## balloon.py + +Для полета к шару используется вектор направления `red_dead_detection/direction`, который используется как setpoint по скорости дрона. Угол по рысканью также устанавливается по направлению к шару. Цель считается уничтоженной, когда на протяжении заданного количества кадров общая площадь участка с красными пикселями меньше определенного порога.