В конце марта этого года я и моя команда из Брянского государственного технического университета приняли участие в международных соревнованиях по спортивной робототехнике.
Робот Челлендж 2014 в Вене.
И в этой статье я хотел бы рассказать о нашем опыте участия и раскрыть детали нашего подхода к решению проблемы.
Формат соревнований очень похож на Олимпийские игры, потому что.
Существует целый ряд различных дисциплин и участник может выбрать ту, которая ему наиболее интересна.
Сами дисциплины относительно просты с точки зрения.
задачи, и как правило задача состоит в том, что вам нужно выполнить задачу быстрее других.
Мы участвовали в дисциплине AirRace, идея которой заключается в том, что робот должен в полностью автономном режиме облетать 2 столба по траектории в виде восьмерки.
Победителем становится робот, который пролетит наибольшее количество восьмерок в непрерывном полете за 10 минут. До этого конкурса у меня был только опыт участия в конкурсе летающих роботов компании КРОК, который проходил в августе 2013 года в Москве.
На тех соревнованиях нас постигла беда в виде дождя на аэродроме.
Несмотря на то, что во время тестовых полетов мы выполнили задание быстрее организаторов, во время реального полета визуальная одометрия робота была «слепа» в лужах и на черном мокром асфальте и мы не могли даже пролететь по лабиринту.
Ниже представлена наша тестовая попытка на конкурсе КРОК в 2013 году.
В Вене погодные условия были намного лучше (+20 и ясное небо).
Соревнования проходили в помещении, поэтому капризы погоды нас больше не пугали.
Из-за ограничений бюджета и времени было решено использовать на соревнованиях в Вене того же робота и тот же подход, что и на соревнованиях КРОК.
В основу легла комбинация AR.Drone + наземная станция в виде ноутбука.
Этот выбор (еще во время подготовки к КРОК) был обусловлен тем, что AR.Drone, по сути, из коробки, уже умеет летать и есть SDK, с помощью которого мы могли управлять им через Wi-Fi. Правда, сейчас, уже имея опыт работы с ним, я склонен полагать, что необходимо собрать еще один квадрокоптер и стремиться реализовать все расчеты на борту.
На самом деле у меня 3 претензии к AR.Drone. Это Wi-Fi, проблемное аппаратное расширение и закрытый исходный код. Нам удалось расширить аппаратную часть нашего AR.Drone, подключив к нему дополнительные ультразвуковые дальномеры через плату Arduino Nano, подключаемую через встроенный USB. Схематично это выглядит так.
Эти дальномеры мы использовали только на соревнованиях КРОК по ориентированию в лабиринте, а на соревнованиях в Вене главный хак AR.Drone был в том, что мы выключали фронтальную камеру и ориентировались именно по ней.
На ноутбуке все наше программное обеспечение было основано на фреймворке ROS. Преимуществ его использования достаточно много, на мой взгляд главный из них — это возможность тестировать код на виртуальной модели в среде физического моделирования Gazebo. Фактически переход от виртуальной модели к реальной происходит без каких-либо модификаций кода (всего лишь несколько настроек параметров контроллеров и системы компьютерного зрения).
Возможность моделирования не только позволяет создавать работающий код без реального дрона, но и позволяет тестировать изменения кода в полевых условиях, прежде чем он будет использован на реальном квадрокоптере.
Что касается дисциплины Air Race, то правила там вполне демократичны.
Они позволяют использовать любые дополнительные навигационные знаки (как пассивные, так и активные) внутри поля.
Единственное ограничение заключается в том, что робот должен облетать столбы по схеме восьмерки, что является чисто условным и не должно касаться стен, столбов или пола.
Ряд команд активно этим воспользовался.
Например, команда из Польши использовала дополнительного робота, который едет внизу по пунктирной линии, а за этим роботом летает квадрокоптер.
В прошлом году они заняли первое место, но в этом году их подвела надежность, и они не смогли проехать ни одного круга.
Некоторые команды установили дополнительные визуальные маркеры для ориентирования, а команда из Канады даже установила внутрь 2 кинекта, но у них это тоже не получилось.
Мы решили не использовать на поле ничего дополнительного, а ориентироваться строго по пунктиру, нанесенному на пол.
Соответственно, ключевые функции системы управления были основаны на принципах компьютерного зрения.
Основная идея заключалась в следующем:
- Ищем черные прямоугольники на изображении
- Разделим их на группы по углу наклона к вертикали.
- В первую группу мы включаем те прямоугольники, которые наиболее вертикальны.
- Проведите прямую линию через центры прямоугольников первой группы.
- Формируем команду управления таким образом, чтобы полученная прямая занимала вертикальное положение.
Во время тестовых заездов на «домашнем» поле мы проезжали 15-16 кругов за 10 минут, что было чуть больше результата победителя 2013 года.
Поэтому на соревнования мы поехали не с пустыми руками.
Сама поездка в Вену была довольно интересной, потому что.
Добирались мы на машине (1800 км).
Это оказалось дешевле, чем путешествовать на самолете, и не было опасений, что робот сломается во время перевозки в самолете.
В нашу дисциплину было заявлено 16 команд, из них 5 российских.
Помимо нашей команды, остальные российские команды были из Санкт-Петербургского физико-математического лицея № 239. Всего в соревнованиях приняли участие 547 команд из 46 стран, поэтому мы встали пораньше и направились на соревнования.
сайт при открытии регистрации.
В принципе, как оказалось, особой необходимости в этом не было.
Т.
к.
регистрация прошла очень быстро, и хоть и была очередь, но стоять долго нам не пришлось.
Сами соревнования по нашей дисциплине должны были начаться в 12:30, а до этого времени должно было пройти что-то вроде квалификации (каждый робот должен был показать, что он способен пролететь хотя бы круг).
Все мы слышали о немецкой (австрийской) пунктуальности, но здесь это правило не работало.
Большинство команд начали тестировать своих роботов после регистрации; судья в принципе никак не участвовал в этом процессе, и было не совсем понятно, когда должна начаться квалификация.
Мы не собирались ничего предварительно настраивать на роботе, поэтому в очередь на тестирование не попали.
Но в один момент оказалось, что поле свободно, я подошел к судье и спросил, можем ли мы пройти квалификацию.
Он ответил утвердительно и мы запустили робота.
Он пролетел достаточно хорошо 2 круга, а потом начались проблемы с Wi-Fi. Робот начал ударяться о столб, я стал нажимать кнопку приземления.
И здесь нас ждал провал.
Я, пытаясь нажать кнопку посадки, то ли от нервов, то ли по невнимательности, нажал кнопку «аварийной посадки» и робот упал с 2 метров на мраморный пол.
Подняв его с пола, я сразу понял, что его крестовина сломана и теперь он вряд ли сможет летать.
Я не думаю, что нужно объяснять, что мы тогда чувствовали.
Внезапно ко мне подошел парень из чешской команды, спросил, что случилось, и посоветовал обмотать дрон изолентой и попробовать выступить.
Т.
к.
других вариантов не было, поэтому мы сделали именно так.
Я мало верил, что он умеет летать, но он летал.
Перестраховавшись, я не стал ставить тяжёлый аккумулятор повышенной ёмкости, а поставил свой, и это была моя вторая ошибка.
Т.
к.
из-за сломанной крестовины плоскости винтов были не параллельны полу, двигателям приходилось работать практически на пределе мощности и аккумулятор сдох уже на 5-м круге.
В итоге с 5 кругами мы заняли 4-е место.
Конечно, учитывая разбивку, мы были очень довольны такими результатами.
И полученный опыт, надеюсь, поможет нам в будущих соревнованиях.
Теги: #Робототехника #Мультикоптеры #соревнования роботов
-
Типы Почтовых Служб Веб-Хостинга
19 Oct, 24 -
Красные Команды Для Взлома Проекта Пентагона
19 Oct, 24 -
Лекция «Космические Сказки»
19 Oct, 24 -
Ролевая Игра Для Меня
19 Oct, 24 -
Идея Для Геосервиса
19 Oct, 24 -
Парадокс Симпсона В Мобильной Аналитике
19 Oct, 24