Визунчики
ROB-71457Робот был собран специально под соревнования “РобоФинист” по интеллектуальному сумо 15*15 см. Конструкция робота состоит из деталей конструктора Lego mindstorms ev3: блок (микроконтроллер), два больших мотора, одного ультразвукового датчика, одного датчика цвета, пять соединительных кабелей, четыре колеса и шин, соединительных балок , штифтов, шестеренок, втулок, батареи для блока. Главная задача робота-сумоиста состоит в том, чтобы вытолкнуть за пределы ринга своего соперника. Существует множество вариантов правил проведения этого состязания, накладывающих различные ограничения в первую очередь на размеры и конструкцию роботов, тем не менее, базовые алгоритмы поведения робота при этом очень похожи. Цель нашего робота : искать соперника, нам будет помогать два датчика, способных определять предметы на расстоянии (ультразвуковой), а своевременно определять черную границу поля будем с помощью датчика цвета. Первая мысль, которая приходит в голову: использовать программу для "Кегельринга", внеся в неё косметические изменения. Действительно, алгоритмы поведения робота в "Кегельринге" и в "Сумо" очень похожи. Они реализуют поиск объекта и выталкивание его за пределы поля. Можно загрузить в робота-сумоиста программу для "Кегельринга", но работать такой сумоист будет не очень эффективно. Тем не менее, эти знания, пригодятся нам. Поведенческую модель робота-сумоиста можно условно разделить на две части: поиск соперника и атака соперника. Сначала займемся реализацией первой части - поиска соперника. Подробно пропишем последовательность действий нашего робота при обнаружении соперника на поле: вращаться вокруг своей оси, пока впереди расположенный датчик не обнаружит соперника; остановиться напротив соперника.Конец формы Эта последовательность действий полностью повторяет алгоритм поиска роботом кегли в "Кегельринге" , но, так как, расстояние между роботами в "Сумо" может превышать расстояние от робота до кегли, то нам необходимо выбрать другое пороговое значение для используемого датчика. Важно учитывать: так как пороговое значение будет достаточно большим - необходимо чтобы за пределами поля на расстоянии около 1 м. во время работы робота также отсутствовали посторонние предметы, способные помешать поиску. Ультразвуковой датчик : для того, чтобы заставить робота вращаться вокруг своей оси, воспользуемся программным блоком "Независимое управление моторами" "Зеленой палитры", режим работы блока установим "Включить", значение мощности для порта "B" и установим равным -30, значение мощности для порта "C" установим равным. Для поиска соперника воспользуемся программным блоком "Ожидание" ("Оранжевой палитры") в режиме "Ультразвуковой датчик" - "измерение" – "Измерение в сантиметрах", с пороговым значением срабатывания датчика, равным 40. После того, как робот окажется напротив соперника, используя программный блок "Независимое управление моторами" "Зеленой палитры" выключим моторы со скоростью 100, далее добавим программный блок «Ожидание» «Оранжевой палитры» в режиме «Датчик цвета»- "сравнение"- "цвет", выбираем или белый или черный цвет, все зависит от поля на соревнованиях, программу заключим в цикл «Оранжевый блок». Проведем эксперимент: установим напротив робота неподвижного соперника и запустим программу атаки. Когда наш робот устремится к сопернику и приблизится достаточно близко, резко уберём соперника в сторону. Наш робот должен, потеряв соперника, остановиться. Если наш робот остановился над границей ринга, то перед тем, как начать поиск, роботу следует, отъехав немного назад, вернуться внутрь ринга. Законченная программа сумоиста должна в бесконечном цикле выполнять последовательно поиск соперника, а затем - атаку соперника. Программа, которую мы написали, реализует только один прямой силовой алгоритм поведения робота-сумоиста. Она подразумевает, что в прямом силовом противостоянии робот должен непременно одолеть своего соперника. Подведем итог: мы реализовали алгоритм поиска соперника и успешно его протестировали, также прошел проверку алгоритм атаки. Робот был собран без готовой инструкции.