Упражнения. Питание. Диеты. Тренировки. Спорт

Робо-сумо: соревнования лего-роботов прошли в зеленоградском Дворце творчества. Международные состязания роботов — Правила — Свободная категория — Свободная категория

Привет, Geektimes!

Вступление

Мы давно все знаем о том, что роботы это наше будущее. Существует очень много направлений робототехники. Военные разработки, социальные, развлекательные и просто рабочие роботы.
Но в этот раз я хочу поведать от лица команды Колледжа при МИРЭА о соревновательной составляющей, а в точности про роботов сумоистов.

Немного о нашей команде

Существуем мы с 2014 года. Победители и призеры большинства соревнований Робофинист, Робофест, Спартакиады МФТИ и более мелких турниров, а также являемся абсолютными чемпионами России на 2016-2017 год в номинации мини-сумо.

Кто такие вообще эти роботы сумоисты?

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

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

Бывает их 4 вида:

1. Мега-сумоист
2. Мини-сумоист
3. Микро-сумоист
4. Нано-сумоист

Все отличаются не только внешне, но и внутренне.

Мега - самые большие и опасные роботы. Максимальный вес до 3 кг, возможность ставить различные «присоски», чего не разрешается делать с другими роботами.

Мини - приятные, небольшие роботы до 500 грамм 10 на 10 см. Не сложны в пайке, удобны в настройке и сборке. Являются самой популярной номинацией в сумо.

Микро и нано - уменьшенные копии мини. Микро 5 на 5 на 5, нано 2,5 на 2,5 на 2,5. Трудно паять и подбирать детали. Популярнее, чем мега-сумо.

Из чего они состоят?

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

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

Подробнее о сборке и комплектации

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

Сложнее всего (помимо программирования) спроектировать робота.

Первый этап



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

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

Второй этап



А здесь уже нанесены контроллер, драйвер, выключатели и разъем для аккумуляторов.
Останется только распечатать трассировку и перенести на текстолитовую плату, а затем пролудить дорожки.

Вот как это выглядит на готовой плате:

Готовая плата



Готовый к запуску робот:

Как видите, ничего особо сложного здесь нет. О проблемах далее.

Перейдем к программированию

Проще всего использовать контроллеры arduino или arduino-совместимые. Также, Arduino IDE нам в помощь. По стандартной схеме у робота 5 датчиков. Значит состояний может быть

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

Чтобы заставить его поехать на противника нам достаточно установить пины, подать напряжение на моторы и считать показания датчиков:

Код робота

// Установка пинов для датчиков int pin_left=10; int pin_center_left=11; int pin_center_right=4; int pin_center=12; int pin_right=7; // Пины на моторы int pin_motor_left_forward=9; int pin_motor_left_back=6; int pin_motor_right_forward=3; int pin_motor_right_back=5; // Переменные для хранения результата опроса датчиков int cl,cc,cr,l,r; // Функция для опроса датчиков void GLAZ() { cl = digitalRead(pin_center_left); cc = digitalRead(pin_center); cr = digitalRead(pin_center_right); l = digitalRead(pin_left); r = digitalRead(pin_right); } // Функция движения, принимающая скорости от 0 до 255 для подачи на каждый мотор void MOVE(int a, int b) { if(a<0) { digitalWrite(pin_motor_left_forward,LOW); analogWrite(pin_motor_left_back,0-a); } else { analogWrite(pin_motor_left_forward,a); digitalWrite(pin_motor_left_back,LOW); } if(b<0) { digitalWrite(pin_motor_right_forward,LOW); analogWrite(pin_motor_right_back,0-b); } else { digitalWrite(pin_motor_right_back,LOW); analogWrite(pin_motor_right_forward,b); } } void setup() { pinMode (pin_center,INPUT);//центральный pinMode (pin_right, INPUT);//правый датчик pinMode (pin_left,INPUT);//левый датчик pinMode (pin_center_right, INPUT);//передний правый датчик pinMode (pin_center_left,INPUT);//передний левый датчик pinMode (pin_line_left, INPUT); pinMode (pin_line_right, INPUT); pinMode (pin_start,INPUT);//старт pinMode (13,OUTPUT);//старт digitalWrite(13,HIGH); pinMode (pin_motor_left_back, OUTPUT);//мотор лево назад pinMode (pin_motor_right_forward, OUTPUT);//мотор право вперед pinMode (pin_motor_right_back, OUTPUT);//мотор правый назад pinMode (pin_motor_left_forward,OUTPUT);//мотор лево вперед // ожидание сигнала к началу схватки while(!digitalRead(pin_start))continue; MOVE(200,200); } void loop() { GLAZ(); if(l && r) { if((cl + cc + cr) < 2 || !cc){ MOVE(255,255); } if(cc) { if(!cl && cr) MOVE(0-180,180); if(cl && !cr) MOVE(180,0-180); } } else if(cc + cr + cl == 3) { if(!l && r) MOVE(0-200,200); if(!r && l) MOVE(200,0-200); } else if(cc) { if(!l && !cl && cr && r) MOVE(0-150,150); if(l && cl && !cr && !r) MOVE(150,0-150); } if(!digitalRead(pin_start))while(1){MOVE(0,0);} }


Вам остаётся только совершенствовать код.

Важно!
Датчики возвращают 1, если ничего не видят, и 0, если есть препятствие.

После загрузки кода по usb робот готов соревноваться.

Стоит учесть

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

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

Также не стоит забывать про колеса. Кривые, тонкие и скользящие не подойдут, вы просто не сможете маневрировать и момента силы не хватит. Обязательно тестируйте резину.

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

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

Список необходимых покупок:

1. Паяльник, припой, флюс (по выбору)
2. Текстолитовые платы (чтобы протравить, вам надо закрыть все дорожки, затем поместить это все в раствор перекиси водорода + лимонной кислоты + соли на несколько часов, а потом содрать, бумагу, например, под которой прятали дорожки)
3. Датчики sharp 340
4. Движки, выбирайте по вкусу, чем больше оборотов в минуту, тем лучше.
Выбирать стоит что-то из этого: polulu. (добавлено)
5. Аккумуляторы (советую брать литий-полимерные) + зарядная станция
6. Ключ (кнопка выключателя, припаивается на плату) и электрические элементы (есть на картинке с трассировкой)
7. Драйвер
8. Контроллер, для начала можно попробовать Polulu A-Star 32u4 micro и залить туда загрузчик ардуино
9. Лист металла для корпуса
10. Бурмашинка для дырок в плате
11. Пульт запуска и к нему стартовый модуль
P.S. Если что-то упустил - пишите, исправлю.

Соревнования

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

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

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

Роботы встречались на круглом ринге-дохё, где они должны были автономно сориентироваться в пространстве и «нащупать» друг друга разными датчиками, а потом, как в настоящем сумо, вытолкнуть противника за край и черную линию. Правда, в отличие от людей роботы использовали при этом механические и программные ухищрения, которыми их оснастили юные конструкторы. Иногда электронному борцу не везло, и он сам случайно выезжал колёсами за край ринга — это засчитывалось как поражение. А иногда роботы сцеплялись деталями и начинали описывать круги, которые завершались ничьей после 5-секундной паузы. Кому-то, впрочем, удавалось в итоге оторвать от соперника часть конструкции и выйти победителем. Не обошлось и без программных ошибок, и без технических просчетов, которые трудно было предугадать заранее.

В соревнованиях действовали жесткие ограничения на габариты роботов (до 25см) и на их вес (менее 1 кг). По всем законам физики наиболее успешными стали самые тяжелые и массивные роботы, хотя многие авторы сделали ставку на скорость движения или на совершенствование системы поиска противника. Первое место занял робот «Динозавр» и его создатель Никита Чупов (объединение «Конструктив», 6-классник школы 719).

Вёл турнир Сергей Косицын, руководитель клуба «Конструктив». Судьями выступили зеленоградские профессионалы-"электронщики" из Дизайн Центра КМ211 и компании «Олимп». В прошлом году они уже были в жюри соревнований по робототехнике «Фигурное катание» — партнёрство оказалось удачным.

Соревнования были открытыми, участвовать в них могли все желающие от 7 до 17 лет, кто имеет опыт конструирования и программирования роботов ЛЕГО Mindstorm — даже самостоятельного. Помимо популяризации робототехники организаторы стремились объединить детей на почве общего увлечения, дать им возможность общаться и учиться друг у друга. Для зрителей вход тоже был свободным — ими стали друзья, родители и семьи участников.

Робо-сумо — один из видов соревнований по робототехнике, давно завоевавших популярность в Европе, США, Японии, Корее и других странах. Помимо сумо на таких турнирах есть и другие виды «спорта» для роботов — командный робо-футбол, кегельринг, скоростное прохождение лабиринта. В октябре 2014 года в России состоялся третий национальный Чемпионат по робо-сумо в рамках Всероссийской Спартакиады Роботов, которая проходит в Московском Дворце пионеров на Воробьёвых горах. Он включал соревнования по робо-сумо в международных категориях мини (вес робота до 500 грамм) и микро (до 100 грамм). В Москве проходит также Всероссийский Открытый робототехнический Турнир на Кубок Политехнического музея, где действует Лаборатория робототехники и искусственного интеллекта — в этих соревнованиях нет ограничений на применяемые технологии: от лего-роботов до сложных робототехнических устройств.

Программу открытых соревнований по робототехнике Зеленоградского Дворца творчества продолжит 21 декабря для школьников 4-10 классов. Номинации конкурса — программируемые и непрограммируемые механизмы, то есть движущиеся лего-роботы и статичные лего-конструкции на новогоднюю тематику, собранные заранее, например: вращающийся подиум для елки, автоматический раздатчик подарков, разбрасыватель конфет и т. п. Использовать стандартные схемы, прилагаемые к конструкторам LEGO, запрещено — победят самые изобретательные, функциональные и творческие идеи.



Понравилась статья? Поделитесь с друзьями!
Была ли эта статья полезной?
Да
Нет
Спасибо, за Ваш отзыв!
Что-то пошло не так и Ваш голос не был учтен.
Спасибо. Ваше сообщение отправлено
Нашли в тексте ошибку?
Выделите её, нажмите Ctrl + Enter и мы всё исправим!