пятница, 7 июля 2017 г.

Немного о футболе роботов WRO gen.III. Часть 5

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


Давайте проследим эволюцию решений, которые нами были использованы с тех пор, как мы начали заниматься футболом роботов:

2014 год:

В этом году мы еще не участвовали в соревнованиях в данной категории, вели подготовительные работы, изучали доступные материалы и экспериментировали.
  • Первая версия нападающего с дриблингом и мощной пиналкой была собрана по мотивам робота команды "Омега", вскоре после этого дриблинг был запрещен и конструкция стала не актуальной.

2015 год:
  • Ориентация на поле с использованием датчика освещенности (поля в те времена были еще с цветными зонами)
  • Построение кратчайшей траектории объезда мяча, с учетом положения на поле
  • Выбор направления удара из 5 возможных (3 цветных поля, 2 белых)
  • Контроль застревания "по компасу"

2016 год:
  • Ориентация на поле с использованием ультразвукового датчика
  • Построение кратчайшей траектории объезда мяча, с учетом положения на поле, наличия бортов и "скатов"
  • Выбор направления удара из 9 возможных (визуально поле делим на 9 зон, матрица 3x3, из каждой зоны свое направление удара по воротам)
  • Контроль застревания "по компасу" и по наличию мяча
  • Взаимодействие роботов с использованием Bluetooth, роботы обмениваются информацией о том, в какой зоне сейчас мяч

2017 год:
  • Ориентация на поле с использованием ультразвукового датчика, энкодеров, датчика освещенности. Робот теперь знает где он с точностью 1-2 см по обоим координатным осям. Накопление информации о перемещениях робота и мяча для использования при построении маршрутов и маневров
  • Пересчет неравномерного распределения показаний компаса в идеальное для построения модели и расчетов в идеальной системе координат
  • Помехоустойчикое чтение датчиков
  • Определение направления на мяч "в градусах". Определение расстояния до мяча с точностью до 3-5 см
  • Построение кратчайшей траектории объезда мяча, с учетом положения на поле, наличия бортов и "скатов", пометки о возможных помехах на пути по факту застревания с корректировкой траектории
  • Выбор направления удара из 180 возможных, направление удара рассчитывается "на лету" с точностью 3-4 градуса в момент захода на мяч и учитывается при построении траектории движения к нему
  • Контроль застревания "по компасу", по наличию мяча, по наличию препятствий, по нагрузке на моторы
  • Взаимодействие роботов с использованием Bluetooth, роботы обмениваются информацией о координатах мяча на поле
  • Повышающий редуктор у нападающего, линейная скорость движения выше в 2 раза
  • Мощная "пиналка" у нападающего
  • Гибкое управление скоростью движения, плавные старты и остановы
  • Генерация роботами в процессе работы лог-файлов в формате srt-субтитров для возможности просмотра поверх снятого видео для анализа и отладки

Мы рассматриваем данные состязания в первую очередь как совокупность отличных задачек, в которых можно применить те навыки, которые были получены командой при работе над хоббийными проектами. Например, работа над такими роботами как NAVIDOZ3R и LEGO Pong позволила нам применить для локализации роботов полученные знания в области тригонометрии, которую до сих пор в школе пока не изучали.


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

Возможностей платформы NXT мы до сих пор не исчерпали, разве что памяти для сложных вычислений стало не хватать. Интересной находкой, реально дающей колоссальные возможности, стало использование приоритезации задач (процессов). Неприятной обнаруженной особенностью - необходимость работы с мьютексами при разделении "железа" между процессами. Почти все команды-соперники перешли на EV3, роботы на основе NXT встречаются все реже. Похоже перехода не избежать и нам.


В этом году уровень команд заметно вырос, игра стала более стремительной, не оставляющей времени "на подумать". Если в прошлом году была всего одна команда, с роботом на самодельных omni-колесах, позволяющих ему без разворотов перемещаться в любых направлениях, то в этом году и остальные команды, ездившие "на мир" в прошлом сезоне привезли оттуда идеи для своих omni-роботов. Решения, предложенные этими командами в итоге оказались очень интересными, не оставляющими шансов для роботов с традиционной конструкцией.


Помните серию "Футбол" из Смешариков? На полях творилась похожая картина. Пока наш нападающий с традиционной конструкцией "думал" и выполнял маневры, стремительные omni-соперники быстрее добирались до мяча и посылали его в сторону узкого борта с нашими воротами. 2-3 точных удара по мячу, которые успевал  за тайм сделать наш нападающий, в те момент когда он все же успевал подобрать мяч, не шли не в какое сравнение с 40-50 попытками забить гол нам. Пусть они были не точные, но теория вероятностей штука упрямая, ширина ворот - 25% от длины узкого борта.


Тем не менее решения, над которыми наша команда работала в этом сезоне не подвели нас, роботы вели себя так, как и планировалось, чем мы очень довольны. Как гласит лозунг WRO футбола, "ценно не то, что вы выиграете или проиграете, а то, как много вы узнаете".

Теперь мы планируем немного отдохнуть и начнем новый сезон наших хоббийных проектов. До скорых встреч!


2 комментария:

  1. Можно спросить - в какой среле вы пишете программы для своих роботов?

    ОтветитьУдалить

Самое популярное