Алгоритм для мини-сумо Deathmatch (несколько противников)

Алгоритм для мини-сумо Deathmatch (несколько противников)

Сообщение Ruslan » 28 фев 2010, 00:41

Deathmatch = битва множества мини-сумо роботов, когда все они выставляются на круг диаметром 1,5 метра и бьются до последнего робота, оставшегося на поле. Смотрите пример:

Вопрос: Должен ли алгоритм для Deathmatch отличаться от обычного? Для победы важно оставаться ближе к центру поля и не увлекаться атаками. Пока что я думаю ограничить время атаки по таймеру 1-2 секундами. Что бы ещё сделать?
Аватара пользователя
Ruslan
 
Сообщения: 603
Зарегистрирован: 03 июн 2007, 22:32
Откуда: Москва
ФИО: Руслан

Re: Алгоритм для мини-сумо Deathmatch (несколько противников)

Сообщение Michael_K » 28 фев 2010, 01:18

Конечно должен!

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

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

Понятно, что в куче такое не прокатывает.

Шикарно было бы, определять направление движения соперников (и лучше уже занятых выпихиванием друг друга)
и встраиваться в хвост "паровоза", но есть риск, что кто-то пристроится и к тебе, извините, "в зад" :)

Я бы предложил использовать вначале (когда целей много и они везде)
тупой алгоритм только с датчиком края, нужно просто кататься звездой,
часто меняя направление и поворачиваясь - то есть создавать вокруг себя "пространство для маневра".
(Не улетая за край, конечно).
А время контакта с соперником просто ограничить. Оттолкнул немного, меняй направление, поворачивайся.
То есть избегать клинчей по возможности. Такие пары (стоящие в клинче) выталкиваются легко.

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

Да, важно. Робот должен быть веселым и активным, чтобы он расталкивал и догонял, а не его догоняли :)
Без фанатизма, конечно, чтобы все-таки успевать тормознуть и повернуть на краю ринга.
Я бы, честно, датчик края постарался вынести вперед за пределы 100 мм.
Но в ваших конструкциях это наверное уже сложно.

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

Выставить тупо лист белой бумаги сто-на-сто - его либо объезжать все будут,
принимая за край, либо по нему сверху носиться :) Всяко первое место разделите :)))
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Алгоритм для мини-сумо Deathmatch (несколько противников

Сообщение Radist » 19 мар 2010, 11:51

А вот интересно, отработку алгоритмов можно проводить только на соревновании? Событие это редкое. А если нет, то как? Не делать же ради этого несколько сумо-ботов? Я своего первого сумобота испытывал только с неподвижными целями, на манер кегельринга (он у меня не вписался в габариты, поэтому я даже не помышлял о соревнованиях). Сейчас делаю усовершенствованный вариант (но тоже не вписался в габариты), и тоже собираюсь выталкивать неподвижные цели. Может кто-то использует что-то простое в качестве передвигающихся мишеней? Видел пример с радиоуправляемой машинкой, но это же не наш метод! Так что было бы интересно узнак, как вы будете отлаживать алгоритм.
Аватара пользователя
Radist
 
Сообщения: 2253
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Алгоритм для мини-сумо Deathmatch (несколько противников

Сообщение galex1981 » 19 мар 2010, 13:51

Можно в своем городе мини соревнования устраивать самим ;)
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Алгоритм для мини-сумо Deathmatch (несколько противников

Сообщение mandigit » 23 мар 2010, 21:05

Radist писал(а):...А вот интересно, отработку алгоритмов можно проводить только на соревновании? ...

Можно для такого случая моделировать процессы в компьютере.
Аватара пользователя
mandigit
 
Сообщения: 583
Зарегистрирован: 28 ноя 2005, 12:05
Откуда: Москва

Re: Алгоритм для мини-сумо Deathmatch (несколько противников

Сообщение AndreiSk » 24 мар 2010, 03:36

Сделай еще одного робота с управлением (напрммер ик-пульт)... будет мишенью.
Аватара пользователя
AndreiSk
 
Сообщения: 2639
Зарегистрирован: 23 апр 2009, 17:03
Откуда: Москва, Самара
прог. языки: C#


Вернуться в Мини-Сумо

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5