Показаны сообщения с ярлыком робофутбол. Показать все сообщения
Показаны сообщения с ярлыком робофутбол. Показать все сообщения

понедельник, 27 июня 2016 г.

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

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



Пусть вас не удивляет этот странный робот, он тоже футболист! У нас нет еще двух наборов для создания команды-оппонента для тренировок, поэтому наши оппоненты на тренировках управляются с пульта (телефона). Этот забавный робот имеет в своем составе пару LEGO Technic моторов, LEGO Technic ИК-приемник и батарейный блок. Управлять им с ИК-пульта LEGO Technic не получится - излучение мяча полностью забивает ИК-спектр, поэтому приемник мы спрятали внутри картонной коробочки, дополнительно содержащую Arduino Nano, Bluetooth-модуль к ней и ИК-светодиод. Питается этот рукотворный RF-IR конвертер от того же LEGO Technic блока. Приняв сигнал по Bluetooth, конвертер преобразует его в формат IR Power Function и отсылает ИК-приемнику, расположенному тут же, в этой же самой коробочке. Плюсы решения - сделать его можно за полчаса перед тренировкой.

Вратарь


А теперь давайте поговорим о втором роботе в команде, о вратаре. Его роль в игре - неоценима, ведь он не только защищает ворота команды, но и оценивает ситуацию на поле и помогает нападающему в ориентации на ворота соперников.
Давайте опять представим себя на месте робота и встанем на защиту воображаемых ворот. Мяч на поле и все взоры устремляются на него. Робот-вратарь, как и нападающий, "видит" мяч датчиком IR Seeker, и, в принципе, может спокойно стоять на месте до момента приближения мяча. Есди Вы смотрели игры в WRO-футбол, то явно не согласитесь с тем, что стоять на месте - очень хорошая идея. Обычно роботы-вратари очень подвижны, они отслеживают направление на мяч и разворашиваются к нему. Зачем это нужно? Причин тому несколько:
1) робот вратарь "скорее широкий чем длинный", поэтому развернувшись на мяч он закрывает своей вертикальной проекцией большую часть ворот, чем в соучае, если бы он смотрел на мяч искоса.
2) при приближении мяча робот сумеет быстрее отреагировать, выехав к нему навстречу
3) робот выглядит более вовлеченным в игру :)


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

При приближении мяча вратарь обязан выехать в попытке отбить его от ворот - так гласят правила. Причем робот должен выехать именно на мяч (маневры 1,2), а не например сместиться в штрафной зоне в попытке перекрыть ему путь к воротам (маневр 3 - запрещен!).


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

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

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

...

Далее статья прерывается, к сожалению времени ее дописать совершенно не было, а потом мы оказались на Российском этапе Всемирной Олимпиады Роботов в г.Иннополис.


В этом году мы готовили две команды, на "Футбол роботов" и на "Лабиринт: туда и обратно". Обе команды прошли региональный отбор, показав на нем лучшие результаты, но в Иннополис отправилась только одна наша команда. Организаторы ВРО в последний момент приняли решение переиграть состав объявленных ими еще зимой состязаний, и наша младшая команда, как, впрочем, и сотня ребят из других регионов, "пахавших" последние полгода без выходных, остались со своими лабиринтами дома. Это ничего, ведь главное подготовка и полученные ими знания, ведь правда? А организационные просчеты наверняка будут учтены на будущее.

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


"Аналоговость" футбольных правил, в отличии от основной и свободной категории, заставляла находиться в постоянном напряжении. От судьи и от того, "чьи" команды на поле зависело насколько строго к ним будет применено то или иное "нежесткое" правило, которое тем не менее могло внести существенный вклад в  игру. К примеру 5 секунд ожидания, рекомендованные на брифинге могли превратиться в строгие 3 или в полушутливые 7. Наклейки с символикой области нам внезапно предложили отодрать от роботов, разрешив приклеить, если получится, оставшиеся от них лоскуты после сборки. Наклейки якобы позволяют промаркировать моторы, зато детали в составе роботов-соперников, раскрашенные маркером оказались вполне годными и даже не модифицированными.

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







понедельник, 18 апреля 2016 г.

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

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


Как мы выяснили ранее, угол, при котором будет достигнута точка схода с "орбиты" и направление на ворота соперников зависят от расположения мяча на поле. Если принять направление на ворота соперников за 0 градусов, то точка схода с орбиты при движении робота вокруг мяча против часовой стрелки будет достигнута при 90 градусах, а при движении по часовой стрелке - при -90 градусах относительно направления на ворота.


В разных точках поля меняться будет только направление на ворота соперников, а указанное соотношение углов будет сохраняться. Но это все хорошо в теории, в реальных условиях один из углов легко может быть например 78 градусов, а другой -104. Это обусловлено как мы уже обсуждали ранее несовершенством датчика-компаса и магнитными наводками.
Таким образом для каждой точки поля (или его выделенной зоны) нам необходимы заранее сохраненные в памяти робота направления на ворота соперников и пара точек схода. Сколько будет таких точек (зон) - зависит от требуемой точности наведения на ворота (и, следовательно, разрешения воображаемой системы координат, делящей поле на зоны).


Очевидно, что чем рассматриваемая зона поля ближе к воротам соперников и чем она дальше от "горизонтальной" оси поля (напомним, что мы рассматриваем поле как 2D плоскость), тем угол "атаки" будет больше, см. рис. (a > b)

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


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

Футбол - командная игра и поэтому регламентом разрешено использовать Bluetooth для взаимодействия роботов в команде. Это открывает широкие тактические возможности, например беспроводную связь можно использовать для получения "горизонтальной" координаты нападающим от вратаря.

Действительно, вратарь, стоя в защите, располагает информацией об удаленности мяча (приблизительной) и угле, образованном направлением на мяч и направлением на ворота соперников:


Зная данный угол вратарь может определить точку поля (зону) в которой находится в данный момент мяч и передать ее координаты нападающему.

Информация о координатах с дальномера нападающего и координаты, передаваемые между роботами должны снабжаться временной меткой. На основании временной метки робот будет понимать, какая из них более актуальна, "Устаревшая" информация не должна использоваться для навигации нападающего, он должен ее игнорировать, действуя так же, как будто этой информации нет вовсе (работать по средним зонам).


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

среда, 30 марта 2016 г.

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

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


Вооружившись познаниями в геометрии или онлайн-калькулятором прямоугольных треугольников можно рассчитать углы, при которых робот должен сходить с орбиты в каждой точке поля. Поле удобно представить в виде воображаемой координатной сетки, разбив его на нужное вам количество зон - в зависимости от требуемой точности наведения на ворота. На изображении выше для примера приведена разбивка на 9 зон, имеющих координаты от (1,1) до (3,3).
Для каждой зоны будет две точки схода - для движения вокруг мяча по часовой стрелке и против. Отслеживать точку схода удобно по компасу, сравнивая текущий азимут с требуемым с учетом некоторой заданной погрешности.
Но тут нас поджидает неприятность - дело в том, что цифровой компас Hitechnic - устройство несовершенное, и даже после тщательной калибровки в связи с наличием наводок на поле показания будут распределены по окружности неравномерно, в каком-то направлении "градусы будут чаще", в каком-то реже (см. рис).


К счастью сами направления при этом довольно точные, но вот повернуться от текущего направления например на 90 градусов вправо роботу точно не удастся, он фактически не довернется до нужной точки, если в целевом секторе показания меняются чаще чем 1 градус на фактический градус поворота, или наоборот, перелетит ее, если этот сектор с "разреженными" показаниями.

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

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


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

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

С одной стороны можно ехать прямо на мяч и считать что ворота именно за ним, но точка схода могла быть достигнута приблизительно, тогда удар будет неточным. Интересным решением будет использование калиброванных направлений на ворота для каждой зоны на поле, вдобавок к калиброванным азимутам точек схода.


В главе 6 "От джойстика до футбола" онлайн курса Сергея Филиппова "Основы робототехники" автор предлагает интересный способ забить мяч в ворота - сначала робот движется на мяч, а как только до него остается совсем небольшое расстояние - движется на ворота, тем самым направляя и подталкивая мяч в их направлении.

Как долго роботу следует это делать? Ответ на этот вопрос робот может получить из следующих источников:
- ИК-поисковик (мяч не на линии движения робота)
- Компас (движение не в направлении ворот соперников)
- Энкодеры и таймер ("атака"слишком затянулась).

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

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





пятница, 18 марта 2016 г.

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

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


Если вы помните, в цикле "Строим из LEGO Mindstorms и Technic" выходило несколько серий на эту тему:

1) Робот-футболист Карандаша и Самоделкина: Нападающий
2) Робот-футболист Карандаша и Самоделкина: Вратарь
3) Робот-футболист Карандаша и Самоделкина: Нападающий 2.0
4) Робот-футболист Карандаша и Самоделкина: Как это работает

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

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

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

Сезон 2016


WRO сезона 2016 привнесло в регламент футбола новые изменения и теперь он называется "третьим поколением футбола WRO" (WRO Football gen.III). Кардинально изменилось поле, теперь игра идет на ковре, на поле нет цветовой зональной разметки. Появились высокие борта для ориентации роботов на поле с применением дальномеров. Конструктивно изменились ворота - за счет изменения их глубины поле кажется огромным и появился больший простор для маневров. Выглядит поле теперь так:


Роботам разрешили использовать датчик цвета Hitechnic, а для ориентации на поле установить дальномер - причем он должен быть ориентирован строго вправо. Правила регламентируют использование дальномера нападающим только когда робот ориентирован в направлении ворот соперников (датчик смотрит вправо):


Вратарю - когда его датчик ориентирован в направлении ворот, которые он защищает


Либо когда вратарь направлен на ворота соперников (датчик смотрит вправо) с оговоркой, что находясь вне штрафной площадки он не должен создавать УЗ-помех другим роботам:


Давайте немного поговорим о том, какие приемы могут быть использованы для игры в текущем сезоне. Начнем, пожалуй, с нападающего.

Нападающий


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

Давайте подумаем, как бы человек действовал на месте робота? Наверное оглянулся бы в поисках мяча и, заметив его, развернулся к нему лицом, затем побежал бы в его сторону. Может ли робот сделать тоже самое? Может! Правда у него нет головы и шеи, поэтому ему придется развернуться всем корпусом, пока излучение от ИК-мяча не будет строго одинаково с его левой и правой стороны (шаг 1)


В какую сторону выгоднее разворачиваться? В отличии от человека, который развернет голову в поисках мяча наугад, робот чувствует мяч буквально затылком и может начать разворот выбрав сторону, с которой сила излучения мяча интенсивнее
Разворот на месте можно заменить разворотом в движении, тогда робот начав двигаться по луге, ляжет на курс, ведущий к мячу (вариант 1а):


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


Мы "бежим" на мяч, судорожно соображая, что делать дальше. Очеидно, что если робот продолжит прямолинейное движение он ударит меч и тот покатится в направлении движения робота, но ведь нам нужно подтолкнуть его к воротам, как же быть?

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


Сделать это он может двумя способами - объехав мяч слева или справа. Принять решение об оптимальном пути объезда можно на основе показаний датчика компаса. Если отклонение от направления на ворота соперников положительное (как на рисунке выше), объезжать следует справа, иначе - слева.

Кратчайшая траектория объезда мяча, при которой отсутствует риск случайно задеть его корпусом - окружность с радиусом, равным расстоянию от точки невозврата до центра мяча.

Приняв решение, с какой стороны объезжать мяч, робот должен начать движение по окружности, которую мы назвали "орбитой", до точки схода с нее (см. шаг 4 на рисунке выше). Двигаться вокруг мяча по окружности можно опираясь на показания датчика-поисковика мяча, Такой круг можно описать, если удерживать его показания в одной из боковых зон (в зависимости от нужного направления движения - по часовой стрелке или против).


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



вторник, 27 октября 2015 г.

Карандаш и Самоделкин на российском этапе Всемирной Олимпиады роботов WRO 2015

Команда "Карандаш и Самоделкин" приняла участие во Всероссийской Робототехнической Олимпиаде 2015, являющейся российским этапом Всемирной Олимпиады Роботов WRO 2015. Итогом упорной и непростой борьбы стало попадание в ТОП-5 российских команд в категории "Футбол роботов".


Робот-футболист Карандаша и Самоделкина: Как это работает

Согласно п. 6.2.1 регламента Футбола роботов WRO gen2, на соревнованиях по отбору команд на российский этап Всемирной олимпиады роботов WRO 2015, проходивших 22-23 мая в центре робототехники "R2D2 Samara", с участниками провели собеседование, где они объясняли работу их роботов. Перед собеседованием роботы были собраны и отлажены ребятами в пределах времени, ограниченного 2 часами.


Робот-футболист Карандаша и Самоделкина: Нападающий 2.0

В правила WRO Football gen2 сезона 2015 внезапно были внесены существенные изменения, в частности робот теперь не может удерживать мяч используя дриблинг, теперь нет аутов и нейтральных зон. Конструкция нашего нападающего, построенного в первой части, увы не соответствует правилам и мы решили построить нового.


Робот-футболист Карандаша и Самоделкина: Вратарь

В 65-й серии "Строим из LEGO Mindstorms и Technic" "Карандаш и Самоделкин" собирают второго игрока своей робо-футбольной команды - вратаря. Робот способен защищать ворота своей команды, отслеживая мяч и выезжать из ворот в попытках отбить его из вратарской зоны. Умеет вернуться к защищаемым им воротам, будучи помещенным в произвольную точку поля. Использованы LEGO Mindstorms NXT, Hitechnic WRO Football Kit. Программа робота написана на NXT-G.


Робот-футболист Карандаша и Самоделкина: Нападающий

В 62-й серии "Строим из LEGO Mindstorms и Technic" "Карандаш и Самоделкин" собирают первого автономного робота-футболиста своей команды - нападающего. Использованы LEGO Mindstorms NXT, Hitechnic WRO Football Kit.


понедельник, 26 октября 2015 г.

Первые шаги к футболу роботов

Веселая игра для всей семьи. Это могут быть даже не совсем роботы, управлять можно и technic-моделями. Но NXT-робот, например на воротах будет очень кстати!


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