Результаты работы --> Соревнования
| Eurobot 2005 — отчет о поездке |
|
Eurobot 2005: задачи и
решения
А.Н. Зотов, П.Н. Куренёв, А.Ю. Мотин,
В.Н. Сальников
Москва, Институт механики МГУ 1.Правила конкурса
В 2005-м году, с 19 по 22 мая, в Швейцарии
проходил европейский конкурс роботов Eurobot.
Конкурс представлял из себя соревнование, в каждом раунде
которого выступали две команды. Каждая команда выставляла
одного или двух роботов. Цель соревнования – сбить кегли
противника, расположенные на вражеской части игровой площадки.
Один робот должен сбивать кегли противника, а второй (его
делать не обязательно) - поднимать упавшие.<!--[if
!vml]--><!--[endif]-->
Площадка представляет собой прямоугольное клетчатое поле, разделённое преградой на две части. Через преграду перекинуты три мостика, один из которых неподвижен, а два других могут устанавливаться в определённое положение с начале каждого раунда. Каждый раунд длится по 90 секунд, по истечении которых определяется победитель по числу сбитых кегель. Кегли представляют собой деревянные цилиндры диаметром 60 мм и длиной 120 мм, в основания которых с одной стороны вкручены по три винта. На обоих частях игровой площадки располагается по 15 кегель зелёного или красного цвета. Исходя из наших возможностей, сроков и на основании правил проведения соревнования нами было принято решение сделать только одного робота, сбивающего кегли. Как выяснилось в дальнейшем, так поступило большинство команд. При разработке робота задача была разбита на две подзадачи – создание аппаратной и програмной частей. 2. Аппаратная часть После обсуждения возможных технических решений, было принято решение создать робота, который будет сбивать кегли противника с помощью мячика, лежащего на площадке. Для этого был создан механизм, позволяющий захватывать мячик. Механизм состоял из двигателя постоянного тока, соединенного с винтовой передачей. В результате винт преобразовывал вращательное движение вала двигателя в поступательное гайки. Гайка приводила в движение клешни, которые зажимали шарик. Поймав шарик один раз, робот не отпускал его до конца раунда. Робот был собран на платформе, имеющей два ведущих и одно рояльное колесо сзади. Движение робота осуществлялось с помощью двух моторов постоянного тока с интегрированными импульсными датчиками. Моторы управлялись с помощью широтно-импульсной модуляции. Для управления роботом использовался контроллер Бегур-2 на основе сигнального процессора TMS320LF2407A. Контроллер работает на частоте 40MHZ. На этом контроллере была реализована следящая по скорости система, основанная на показаниях импульсных датчиков. Там же выполнялись алгоритмы поведения и управления схватом для шарика. Для навигации и поиска шарика использовалась видеокамера, с видеоконтроллером на основе ADSP2189M. На видеоконтроллере были реализованы алгоритмы распознавания шарика и кегель. 3.Алгоритмическая часть <!--[if !vml]--> <!--[endif]-->Для решения задач нахождения шарика использовалась черно-белая видеокамера с выходным сигналом в стандарте PAL. Сигнал с камеры приходил на видеоконтроллер, где обрабатывался и полученные координаты кегель и шарика передавались в главный контроллер по интерфейсу UART. Изображение обрабатывалось в несколько этапов. Первым действием была бинаризация изображения. Она выполнялась для того, чтобы выделить чёрный шарик на фоне более светлых квадратов. В результате обработки получалась картинка с шариком в виде большой черной области и мелкого шума. Далее анализировались отдельные области. Для этого использовалось сравнение с эталоном. Каждая чёрная область анализировалась отдельно, и для неё считался коэффициент сходства с кругом. Далее выбирались координаты центра самой вероятной области и передавались в главный контроллер. На основе этих данных принималось решение о дальнейших действиях. 4.Решения других команд Хочется отметить команду Бельгии. Создали робота с удивительной точностью стрельбы. Для наведения использовался лазерный дальномер и web-камера. В основе управления робота была материнская плата. У французской команды стрельба проводилась залпом без точного наведения на кегли. Робот поворачивался в сторону противника и стрелял. Хотя на первый взгляд стратегия не лучшая, но она проста, результативна, поэтому хороша. После выстрела робот ехал на чужую половину и добивал оставшиеся кегли корпусом. 5.Результаты и обсуждение Механическая часть робота работала хорошо. Единсвенным недостатком было то, что для замены аккумуляторов требовалось разбирать робота. Но с програмной частью всё было чуть сложнее. Следящая система работала не для всего диапазона скоростей, но это удалось решить. Особая проблема была с соединением видеоконтроллера и главного контроллера в комплекс. Хотя интерфейс UART документирован, всё равно буфер порта переполнялся и данные терялись. Проблема была решена с помощью более частого опроса порта и увеличения размера буфера. На создание аппартной части ушло около 4 месяцев, на программу распознавания 3 месяца, на общую отладку 1 месяц. В результате проект был завершен за 5 месяцев (программная и аппаратная части разрабатывались параллельно). 6.Перспективы разработки Конкурс роботов EUROBOT проводится каждый год с разными правилами. Правила новых соревнований появляются в сентябре, а соревнования проходят в мае – июне следующего года. По некоторой информации в следующем 2006 году будут соревнования, напоминающие гольф. Есть над чем подумать. Хочется особенно поблагодарить Ленского А.В., Кожанова А., Пахомова В. за поддержку. Эти люди всегда готовы помочь в сложной ситуации, правильным советом и делом. Спасибо. Наша команда молодая – трое её членов участвовали в подобных соревнованиях впервые. Но это не помешало преодолеть все трудности. |