company_banner

Как прошел конкурс летающих роботов: полёты и ошибки

    image
    Установка дрона на стартовую позицию

    Год назад начался конкурс летающих роботов с призом в 1 миллион рублей. На старте было 536 заявок. На первой контрольной точке осталось 237 участников, на второй — 204, на третьей — 72. До финала дошли 29 сильнейших участников. Но только 14 команд и 4 индивидуальных участника добрались до полигона КРОК 24 и 25 августа и сражались за приз. Общее время финальных полетов их 18 дронов — около 5 часов. Задача – автоматически пролететь через небольшой лабиринт от маркера взлёта до маркера посадки, сесть, а затем вернуться, по пути облетая выступ-препятствие.

    Самым болезненным было читать письма в последнюю неделю с темой «Всё. Я разбил робота». Самым приятным – видеть, как первая же команда показала такой уровень подготовки, который мы и ждали.

    И да, ниже фотоотчёт – осторожно, трафик.
    image
    Летали в дождь

    image
    Открываем первый день. Слева направо: Виталий Полянский из жюри (заместитель по научной работе декана факультета «Робототехнические и интеллектуальные системы» Московского авиационного института), затем я и Алексей Добровольский (директор по разработке ПО КРОК).

    image
    Донастройка перед полётом

    image
    Установка на стартовый маркер

    Если вы пропустили предыдущие серии


    Вот здесь мы рассказывали про конкурс, а вот здесь – про то, как собирали своего робота и с каким трудом он когда-то летал.


    Схема полигона

    Наша команда летала в дни финала вне конкурса, с роботом, которого мы делали для наращивания опыта в направлении робототехники вне обычных проектов. Мой рассказ будет именно с точки зрения участника. И, пожалуй, больше всего внимания уделю ошибкам в полётах: знать такие вещи очень полезно.

    image
    Участник готовится к старту

    Полёты шли два дня, и адреналина было просто море. Вот участники, которые участвовали в этих финальных полетах и их результаты:

    image

    image
    Внешняя стена полигона

    image
    Как выглядел лабиринт

    image
    Зрительные места до начала соревнований

    Полёт на камерах


    Итак, самая первая команда 2engineers показала просто прекрасный полёт в самом начале. Половину пути они прошли как по маслу и были просто в полушаге от того чтобы первым же полетом всех порвать и взять конкурс с первой попытки. Они летели строго по камере. Алгоритм был допилен так, что они на максимальной скорости по идеальной глиссаде вошли в поворот, сразу распознали маркер, хорошо сели – но на возвращении врезались в перегородку. Алгоритм они отлично заточили под конкретный полигон. Что помешало – непонятно. Может, какая-то тень случайная, но сразу за перегородкой их робот упал. Обидно, но после аварии робот на вторую попытку даже не взлетел – внутри что-то просто посыпалось.

    «Потерянный на полигоне»


    Робот команды «Robodem» здорово летал, и тоже здорово находил маркеры и садился очень точно. Они – единственные, кто досрочно прошел четвертую контрольную точку, ещё на тестовых полетах. Еще за несколько месяцев до финала робот ровно шел по нарисованной на полу восьмерке. Но на финале была небольшая проблема с распознаванием, и поэтому он трижды садился на финишную площадку, затем разворачивался около стен – и возвращался обратно на этот маркер, потом заново пытался улететь. Через 6 минут он все-таки увидел «свет в конце туннеля», нашел поворот, увидел стартовый маркер и сел на него.

    Проблемы c Wi-Fi


    У примерно половины участников робот не считал всё на борту, а передавал картинку на ноутбук по Wi-Fi. Проблема была в том, что никто из участников не ждал, что Wi-Fi сеть будет зашумлена большим количеством естественного трафика от городских сетей вокруг (не помех, за этим мы следили). Например, все коптеры ArDrone отправляли на «землю» видеопоток и получали от «сервера» команды как от пульта (всё-таки маленький робот, да и платформа закрытая, много чего не поставить просто) – и вот здесь-то участников и ждали лаги. Например, первый канал Wi-Fi занимало 8-9 домашних и офисных сетей.

    Ещё проблемы


    • Railab (Политехнический музей) хорошо летел, но вернуться не смог – вроде, аккумулятор неожиданно подвёл, не дав роботу чуть долететь.
    • «Авиа Инжинеринг» показывал отличную технологическую базу во время тестовых полетов, но их все же подвела винтомоторная группа, и они не смогли принять участие в финале. Но молодцы, приехали как зрители вместе со своим аппаратом.
    • «iKar» здорово перемещался по полигону, но его резко подвело распознавание посадочных площадок. Возможно, из-за того, что у него информация о результатах распознавания передавалась по радиолинку на частоте 915 МГц. Так как у нас на крыше стоит радиорелейному оборудованию базовой станции, то на этом канале могли быть помехи. Если я не ошибаюсь, на отладке у их робота стоял другой передатчик, а новый не был протестирован по месту.
    • Все, кто ориентировался по магнитометру, то есть компасу, получили проблемы из-за железобетонных конструкций здания. К сожалению, далеко не всем это было понятно задолго до начала конкурса. Роботы заканчивали попытку полётом прямо в ближайшую стену – сказывался сбой ориентировки. С другой стороны, вот, например, «Универсальный механизм» летали чисто на гироскопах и очень точно.
    • Команда из Владивостока не смогла поднять робота в воздух с первой попытки и даже не стали пытаться это делать во второй раз. Причину назвать не могу, но видимо, они поняли, что поправить что-то быстро не получится.
    • Ардрон «Универсального механизма» на тестовых полетах показывал практически идеальные результаты, успешно выполнив пять из пяти тестовых полетов и уложившись в две с половиной минуты. Но на соревнованиях команду в первом полете подвела влажность полигона, из-за этого сбоила оптическая одометрия, а во втором — неуверенная wi-fi связь между дроном и наземной станцией. Обе эти проблемы на тестовых полетах не проявлялись.
    • Возможные блики на асфальте после дождя, кажется, расстроили тех, кто летал с optic flow, а не сонаром – ведь это как оптической мышкой по зеркалу водить.


    Наш полёт


    Пожалуй, стоит рассказать немного про нашего робота. Наша команда шла вне конкурса, поскольку наша же компания его и организовывала. Мы поставили для себя три важных ограничения (они же отчасти усложнения):
    • Алгоритм не должен быть заточен под полигон: нужно универсальным образом решать класс задач, а не конкретно эту.
    • Никакого GPS: предполагается, что робот в будущем будет применяться там, где сигнал может быть искажен или отсутствовать.
    • Все вычисления должны осуществляться на борту робота (работа без связи с наземной станцией, с нее подается только единственный сигнал – на старт).


    image
    Это мы

    image
    Это наш робот

    У нас было 8 аккумуляторов (благо мы могли себе это позволить), дорогой лидар и – на всякий случай – второй такой же робот, который был нужен, чтобы не сойти с дистанции, если разобьём своего первого в тестах. На последних прогонах перед турниром наш дрон пролетал лабиринт и обратно стабильно за время от 3,58 минут до 4,2 минуты. Мы были просто уверены в том, что всё с ним будет отлично, и он пройдёт дистанцию.
    К нашему огромному удивлению, первую попытку полностью провалили – робот просто никуда не полетел.

    Как выяснили в перерыве между попытками, причина совершенно банальна — мы не предусмотрели дублирование канала передачи данных. Вся обработка данных у нас делается на борту, поэтому роботу нужно передать только команду на старт. Уже потом мы с него потом получаем телеметрию. Когда мы пришли на первую попытку, считали себя абсолютно готовыми. У нас был запущен весь софт на роботе, развёрнут софт на ноутбуке, роутер — онлайн, но по какой-то причине команда с ноутбука на робот просто не передалась. Будь у нас второй ноутбук или пульт, мы бы экстренно передали команду с них.

    На второй попытке после перезагрузки ноутбука робот полетел успешно.

    Мы пролетели за 4 минуты и 1 секунду.

    Вот видео первого дня полетов –

    с 2:09:45 – наша успешная попытка

    Раньше я писал, как мы намучились с датчиком optic flow, поскольку наш лидар не добивал до стен. На предполетных тестах выяснилось, что лидара хватает на всем протяжении полигона и optic flow просто не нужен. У лидара получается точнее измерение, все, этого хватает.

    Еще у нас была проблема с алгоритмом, он очень критичен к разному виду освещения. То есть если светит яркое солнце, падает на стены, то они получаются ярче, чем сама мишень. Чтобы робот не врезался в стены, мы модифицировали алгоритм таким образом, чтобы откидывать их не учитывать при распознавании. На тестах мы пробовали показывать роботу множество ярких вещей с контрастными объектами внутри – он видел, например, три цели, и останавливался в воздухе, ожидая, пока две пропадут. В итоге мы играли фильтрами оптического входа до тех пор, пока не получили более-менее рабочие параметры.

    Когда мы добились того, что наш робот уже мог выполнять конкурсное задание, мы усложнили задачу: установили дополнительные перегородки на полигоне, и даже экспериментировали с облетом появившихся препятствий в виде людей. Причем мы были настолько уверены в своих силах, что становились спиной к подлетающему роботу и дожидались, пока он нас облетит.

    Вот ролики об этом. Дополнительные перегородки:


    И мы в виде дополнительных препятствий:


    image
    Перед самым полётом мы забраковали вот такую раму: очень тяжелая. Зато придумали замечательный обвес из хула-хупа, который нас, кстати, спас — немножечко коснулись стены. Да, это первый раз за все время наших полетов, когда дрон коснулся чего-то. Тоже случайность.

    image
    А вот мы счастливые, с нашим роботом и запасной рамой.

    Общие впечатления


    На последних тестах до турнира очень порадовало, что все команды были настроены достаточно благодушно друг к другу, совершенно спокойно делились информацией. Кто-то советовал, например, поставить камеру на заднюю часть коптера, чтобы не делать лишний поворот при поиске маркера. Одна из команд успела реализовать это до финала.

    Вторая неделя тестовых полётов была вся забита. У нас полигон работал официально с 10:00 до 20:00, но практически каждый день полёты шли до 10 вечера, причём на полигоне по 5 команд одновременно.

    image

    image
    Было много девушек

    image
    Обратите внимание, какие все позитивные

    Тех, кто неплохо шел дистанцию можно поровну поделить на тех, у кого были готовые ArDrone с вычислителями на «земле» и мощными алгоритмами обработки видеопотока, и половина кастомных решений, которые везли на себе разные датчики.

    Вообще, лучше всех летали те команды, которые изначально озаботились компьютерным моделированием поведения своего робота. Именно у этих команд появились возможности отладить алгоритмы навигации, распознавания, не разбив роботов, и не приезжая на полигон. Были и те, кто использовал для симуляции собственноручно написанный симулятор. Это команда «2engineers» — они просто взяли и разработали свой собственный симулятор — они гейм-девелоперы, для них, это видимо, это не составило особого труда. Я помню, что когда мне показывали этот симулятор, я поначалу даже сказал: «Нет, зачем вы мне показываете видео с камеры? Покажите мне симулятор». А они: «Это и есть симулятор» Издалека он был неотличим от того, что реально робот передает со своей камеры. Они просто приехали, сняли наш полигон на камеру и все текстуры наложили на свою модель. И на этом уже отлаживали свой безумный вираж и алгоритм распознавания, и все-все-все.

    У многих было искушение дописать код между попытками или поменять параметры. Мы их предостерегали и просили ничего не трогать, лететь вторую попытку на том же самом. Лучшее – враг хорошего, это как раз тот случай, стоит внести исправления в одну строчку кода и все сломается. Ведь времени на то, чтобы проверить и вообще осознать, что ты сделал, не будет.

    image
    На стойке регистрации

    image
    Команда-победитель перед полетами, еще серьезные и переживающие за то, как все сложится

    image
    Команда «Авиа инженеринг» и их робот, который подвел в последний момент

    image
    Погода в финальные дни подкачала, грелись пледами и как могли )

    image
    Робота команды АСА мы про себя назвали летучим голландцем

    image
    Один из АСовцев устанавливает робота на стартовую площадку

    image
    А здесь 2engineers готовятся нажать кнопку «Старт»

    image
    Это индивидуальный участник, Виталий Агалаков. К сожалению, справиться с задачей в одиночку оказалось непросто

    image
    Видимо, по мнению участников команды «Railab», робот с глазами летает лучше. Почти помогло :)

    image
    Болельщики греются пледами во время перерыва на дождь

    image
    Капитан команды СОЮЗ, за лучшую видеопрезентацию по итогам третьей контрольной точки они получили от нас ноутбук. Выбирали зрители.

    image
    Робот команды Колибри

    image
    И сами участники с роботом у пресс-волла с множеством логотипов инфопартнеров конкурса

    image
    Операция по защите себя от дождя

    image
    Участник из iKar устанавливает своего «голландца»

    image
    Фото на память команды «AA robots» с беспилотником и на полигоне

    image
    Так и не полетевший гость из Владивостока

    image
    Команда 607 приехала к нам прямиком из солнечного на тот момент Ростова-на-Дону

    image
    Команда 3 guys 1 bot, последние шаманства перед решающей попыткой

    Результаты


    Вот детальнее про тех, кто прошел в финал. Из них 10 представителей Москвы и Области и по одному — из Северной столицы, Брянска, Красноярска, Томска, Казани, Ростова-на-Дону, Бийска и Владивостока.

    А это комментарий жюри первого дня финала конкурса, Виталия Полянского, заместителя по научной работе декана факультета «Робототехнические и интеллектуальные системы» Московского авиационного института (МАИ):
    «Я не первый год работаю в области беспилотных систем и даже занимаюсь организацией кружков по робототехнике в средних учебных заведениях и МАИ. Но прошедший финал конкурса, судить который мне довелось, действительно удивил и порадовал. Участники смогли за год, совмещая разработку роботов со своей основной деятельностью в учебных заведениях и профильной работой, сделать из традиционно управляемых посредством пульта коптеров совершенно автономных дронов. А некоторые и вовсе построили роботов с нуля, создав уникальные конструкции. И это все исключительно на энтузиазме! Их глаза горят, а значит, конкурс был затеян не зря».


    Призовой миллион забрала команда «Robodem» из Сергиева Посада. Дрон победителя выполнил конкурсное задание за 6 минут и 45 секунд.

    На этом же видео первого дня полетов начиная с 32:20 можно увидеть их победный полет:


    Вот тут можно посмотреть видео второго дня полетов.

    Эти видео можно было смотреть онлайн, оба дня шла трансляция, в ходе которой конкурс посмотрели почти две тысячи человек. Вот, например, статистика первого дня:
    image

    image
    Победители после полёта
    КРОК
    74,80
    IT-компания
    Поделиться публикацией

    Комментарии 32

      +3
      Класс. Надеюсь в следующем году тоже уже поучаствую! С Украины примете?
        +1
        Пока решение по поводу следующего конкурса не принято. Как только определимся, сразу объявим условия, в том числе и по региональному охвату участников. В целом — конечно, будем рады.
          +1
          Заглянул сюда из 2015 года. 10 сентября 2013 года… Участники с Украины… Хорошее было время.
        0
        Поздравляю победителей.

        Какие еще конкурсы планируются в ближайший год у КРОКа?
          0
          Вот тут можно следить за конкурсами: www.croc.ru/action
          0
          Я среди тех, кто разбил робота. Рама была слишком хлипкая и возможно был плохо настроен полётный контроллер, трикоптер влетел в стену. Зато рама красивая.
          Хочу ещё конкурсы!
          Скажите были ли среди финалистов те, кто использовал лидар из пылесоса, как он себя вёл?
          Я так понял дождь многим подпортил выступление, и если бы не он, результаты могли бы быть совсем другими?

          Подтвердилось то, что необходимо делать полностью автономного робота.
          И кто из вас Dav?
            +2
            Лидара из пылесоса на финале не было. Лидар на финале использовала наша команда КРОК, но не из пылесоса, а Hokuyo.

            Дождь доставил проблемы тем кто полагался на оптическую одометрию, на мокром покрытии парковки была очень высокая погрешность. Как минимум одна команда из за этого пострадала. В целом — дождь пережидали, полигон сушили как могли. Мокрые стены облачность больше помогали участникам с инфракрасными датчиками, так как не было зон сильного перепада температур.

            С нашей точки зрения автономный аппарат надежнее.

            Dav — это Добровольский Алексей, он есть на фото вверху.
            0
            Предлагаю идею для следующего конкурса: сделать «следование за целью». Условия: произвольная цель, фиксируемая внешней командой (т.е., грубо говоря, надо навести сенсоры дрона на цель и дать команду «запомнить»), возможное появление ложных целей после старта, возможное пропадание цели из «поля зрения» дрона (например, уход за угол).
            Или это уже перебор, на сегодняшний день?
              +3
              Пока цель не сбрасывает тепловые ловушки, не делает противоракетный маневр и не пытается сбить преследующий дрон — в теории можно. Но будет сложно обеспечить равные условия всем участникам. Лучше решать задачи последовательно по мере повышения сложности — не так зрелищно, но эффективно.
                0
                Можно оговорить, что к преследуемому дрону снизу подвешивается некий эталонный груз. Например белый шарик с черной полосой вдоль «экватора» и весом XX грамм. Задача догоняющего дрона — постоянно находиться на расстоянии не более Y метров от груза. Правда тут еще появляется пробелма отслеживания выполнения такого ограничения…
              +2
              Для следующего конкурса у меня появилась такая идея — большая комната либо лабиринт, либо со столбами препятствиями, на стенах или столбах распологаются небольшие маркеры — цели. Их нужно найти и что-нибудь сделать (задеть, подсветить лазером в течении нескольких секунд, передать их координаты по UDP судьям, считать с маркера QR код и проморгать/пропикать его светодиодом/динамиком на коптере). И затем вернуться на место старта. Этакий Search&Rescue.
              Количество целей известно заранее.
                0
                жаль нет тех-характеристик роботов (сенсоры/камеры/двигатели/батареии/время работы)
                  0
                  + было бы не плохо видео с камер самих роботов
                    0
                    Вот несколько картинок с ар дрона во время полёта, они дают представление, с чем приходится иметь дело:
                    image
                    image
                    image
                  –2
                  Немного разочарования…
                  Как я заметил (думаю и многие другие тоже), в большинстве своём, очень много команд подавало заявки (да и выступало наверно тоже) с роботами AR.Drone, но не все, конечно же!
                  Меня печалит то, что многие решили не заморачиваться с самой интересной частью процесса по созданию робота — его изготовлением, а взяли готовую базу. Как мне кажется, здесь теряется всякая индивидуальность команды.
                  Надеюсь, в будущем ситуация изменится! :)
                    –5
                    Интересно, а в чём заключалась работа победителей с ардроне, если переделку для пульта и управление по вайфаю с точки доступа продаются на ебэе?
                      +2
                      Наверное в том, что…
                      Задача – автоматически пролететь через небольшой лабиринт от маркера взлёта до маркера посадки, сесть, а затем вернуться
                        +2
                        Сложно написать программу, которая будет управлять коптером, брать картинку с камеры и дальномеров и решать как лететь. В этом была суть этого конкурса. На ибее собранный коптер на ардуино, kk-multicopter и других от 89 долларов и это не АрДрон будет, но посути тоже.
                        +1
                        AR.Drone хорош тем, что он летает и легко заменим. Можно сконцентрироваться на сенсорах, алгоритме поиска маркеров и программе управления.
                        +9
                        image

                        Все подпрыгнули, а парень справа спокойно так взлетел :).
                          +2
                          Поттер :)
                          +1
                          Насчёт хулахупа — спасибо, интересная идея, надо взять на вооружение…
                            0
                            Сколько весит хулахуп?
                            Мне тоже понравилась идея. Обычно пользуюсь изоляцией для канализационных труб.
                            0
                            Единственный годный конкурс, в организации которого принял участие МАИ, за последние несколько лет.
                              +1
                              Судя по количеству энтузиастов в современной войне самоуправляемого оружия у России есть шансы. :) А есть конкурсы «наоборот»? Сбить своим дроном чужой в автоматическом режиме, поставить помеху на радиоканал или систему обнаружения дронов по звуку?
                                0
                                Скажите, а когда уже будет работать быстрая доставка документов по москве квадрокоптерами?
                                  0
                                  Я вам сразу могу сказать — никогда (в обозримом будущем). Легально над Москвой летать практически невозможно.
                                  И ожидать изменения ситуации не приходится.
                                  0
                                  Как пророчески было замечено в начале конкурса на форуме — соревнование едва-ли будет на скорость )
                                  Будем надеяться, в следующий раз больше команд дойдут до финиша.

                                  Надеюсь, для следующего соревнования и у меня найдется больше времени :-)
                                    0
                                    BarsMonster: на каком этапе на этот раз сошел с дистанции?
                                      +1
                                      Еще в самом начале, но детали уже были заказаны.
                                      Я думал о сверх-легком квадрике (тяга больше веса в 5-10 раз), у которого батареи хватает только на 1 минуту полета, с навигацией с помощью 2-х цифровых камер.
                                      Также думал о том, что надо делать сразу и запасные корпуса квадрика — т.к. тут никакого запаса прочности нет, и сразу все разваливается в клочья.

                                      Реалистично оценив своё доступное время — понял, что система получается слишком сложная, чтобы я её один собрал.
                                    0
                                    опишите: Как вы ими управляете? Есть готовый софт? Или OpenCV? Был кто то, кто летал без лидара, ультразвука и ЖПС? только по камере?
                                      0
                                      Боюсь показаться не оригинальным, но навеяло:
                                      image image

                                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                      Самое читаемое