Вправи. Живлення. Дієти. Тренування. Спорт

Робо-сумо: змагання лего-роботів відбулися у зеленоградському Палаці творчості. Міжнародні змагання роботів — Правила — Вільна категорія — Вільна категорія

Привіт, 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і ми все виправимо!