To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.org.it.itlugOpen lugnet.org.it.itlug in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Organizations / Italia / ItLUG / 5114
5113  |  5115
Subject: 
Strategie per il Sumo (lungo) (era: Proposta gara robotica per Ballabio)
Newsgroups: 
lugnet.org.it.itlug
Date: 
Mon, 15 Jan 2007 14:25:45 GMT
Viewed: 
2204 times
  
In lugnet.org.it.itlug, Beduglio Giuliano wrote:
Bene, condivido.
A questo punto una proposta:

Ho letto il regolamento del sumo e le caratteristiche dei partecipanti
nelle gare del 2000 o 2001.

Non sarebbe male che un "esperto" fornisse un minimo di strategia da
utilizzare. Questo per evitare gare dove i partecipanti inesperti (io)
affrontino l'avversario in modo completamente errato.

L'aspetto che più mi piace del Sumo è che non esiste una unica strategia
vincente, e anche che non gode della proprietà transitiva: può succedere che A
batte B, B batte C e C batte A. Una particolare strategia può essere efficace
contro un concorrente, ma totalmente inutile con un'altro.

In tanti anni mi hanno rivolto questa domanda per email decine di volte, quindi
ho un po' di materiale già pronto su questo argomento, che spero vi serva come
spunto di riflessione e che vi copio e incollo qui di seguito:

- Affidabilità. Questo IMO è il primo punto per importanza. Nei tre o quattro
tornei a cui ho partecipato si sono visti tantissimi "suicidi", robot che
avevano perso l'orientamento e si tuffavano fuori dalla pedana. Ottenere un
robot che sa in che direzione muoversi quando arriva sul bordo è un grandissimo
risultato che pone sicure basi per una buona prestazione.
Quindi come prima cosa costruitevi una pedana di prova e verificate che, in
condizioni di assenza di disturbo, il robot riesca a stare sempre in campo.
Ottenuto questo risultato, verificate che il robot riesca a cavarsela anche se
arriva sul bordo in modo non spontaneo: è facile riconoscere il bordo e sapere
dove andare quando ci arrivi lungo la tua direzione di moto, ma è molto più
complesso quando l'avversario ti ci spinge a retromarcia, o lateralmente. Più di
una volta ho visto dei robot che, spinti dall'avversario all'indietro verso il
bordo, inserivano la retromarcia si buttavano fuori del tutto da soli :-)

- Sparring partner: è indispensabile verificare l'efficacia del proprio robot
contro un avversario. Naturalmente non tutti hanno la possibilità/voglia/tempo
di costruire due robots, ma in effetti questo non è necessario. Cominciate con
un bel librone posto in mezzo al campo (o una scatola appesantita), totalmente
inerte. Il vostro robot deve essere in grado di "agganciarlo" e spingerlo fuori
senza problemi. Quando avete ottenuto anche questo (e siete veramente a un
ottimo punto), potete provare a muovere voi il libro o la scatola simulando
qualche tipo di comportamento dell'avversario, per vedere come reagisce il
vostro.

- Il grip: poche cose sono più importanti dell'aderenza delle ruote sulla
pedana. Un robot può avere una strategia impeccabile, ma se scivola sulla pedana
tutto è inutile. In generale i cingoli sono una pessima scelta, frontalmente non
sono neanche malissimo, ma agli attacchi laterali offrono una resistenza molto
scarsa. L'approccio "scientifico" consiste nel verificare l'aderenza effettiva
di vari tipi di ruota su un pezzetto di materiale molto simile a quello della
pedana. Per far questo si costruisce uno pseudo robot con le ruote bloccate, lo
si posiziona sul materiale della pedana di test, e si applicano carichi via via
crescenti fino a quando non si ottiene che le ruote perdano la presa. Per
applicare i carichi potete usare una bilancia a molla (tipo quelle da cucina)
coricata orizzontalmente, o una corda attaccata da un lato al robot e dall'altro
a un peso.

- Forza o velocità? Un robot più lento e con maggiore coppia sulla ruota
generalmente ha più possibilità di uscire vincitore da un corpo-a-corpo serrato.
Un robot più veloce, d'altronde, ha maggiori possibilità di sfuggire
all'avversario, e può sfruttare una maggiore quantità di moto durante le
collisioni, sferrando ripetuti attacchi brevi a mo' di ariete. Nei nostri tornei
abbiamo avuto vincitori con entrambe le strategie.

- La difesa attiva: rendersi conto di essere attaccati permette di impostare una
strategia di disimpegno. Purtroppo ottenere questa informazione non è
"economico" in termini di sensori: potete farlo in modo diretto, con una rete di
sensori di contatto sui lati del robot, che vi avvisano sul lato da cui siete
ingaggiati, o in modo indiretto misurando lo spostamento sul terreno con un
sensore di rotazione per capire se il robot viene spostato in una direzione
diversa da quella in cui si presume che stia andando.

- La difesa passiva: potete rinunciare a capire di essere sotto attacco,
tuttavia rendere la vita difficile all'avversario. Un conto è spingere fuori
dalla pedana una scatola rettangolare, un altro fare la stessa cosa con un robot
dalle forme sfuggenti, con piani inclinati, rotelle mobili e qualsiasi altra
diavoleria possa venirvi in mente.

- La caccia e l'ingaggio: è possibile costruire un robot che ignora di aver
"agganciato" l'avversario, e si limita ad andare dritto fino a quando non
raggiunge il bordo. Tuttavia nella maggior parte dei casi è molto utile sapere
che l'avversario è proprio di fronte a noi e lo stiamo spingendo, per utilizzare
una strategia adeguata. Il bumper frontale, o meglio il doppio bumper destro e
sinistro, è quindi una grande risorsa. In qualche caso al posto del bumper ho
utilizzato delle specie di antenne che facilitavano la localizzazione
dell'avversario e l'orientamento del mio robot in modo da presentargli sempre il
fronte.
Altri sistemi più sofisticati di ricerca sono costituiti da sensori di distanza
a ultrasuoni e infrarossi. Però attenti ai falsi segnali, specialmente con gli
IR.

- Strumenti di attacco: è vero che è proibito cercare di danneggiare
deliberatamente l'avversario, ma non è necessario limitarsi a spingere. Per
esempio potete cercare di sollevare l'avversario, trasferendo massa dalle sue
ruote alle vostre, quindi riducendo la sua presa sulla pedana e semplificandovi
il compito di spingerlo fuori.

- KISS (Keep it simple, stupid!): un acronimo anglosassone un po' crudo per
esprimere un concetto molto importante: più i meccanismi sono semplici e minore
è il numero di modi in cui possono non funzionare. Vale sia per l'hardware sia
per il software.

- Poche idee ma chiare: scegliete una strategia semplice ed attenetevi a quella,
sia nella progettazione hardware che in quella software. Forse non vincerete
TUTTI gli incontri, ma probabilmente vi comporterete in modo dignitoso contro la
maggior parte degli avversari, e alla fine il torneo si vince soprattutto non
facendosi eliminare. Tutti sogniamo un robot che è in grado di difendersi con
efficacia da attacchi su ogni lato, cercare l'avversario in modo sicuro e
rapido, e spingerlo inesorabilmente fuori dal campo, ma nei limiti dati dal
numero di sensori gestibili da una CPU Lego dobbiamo inevitabilmente scendere a
compromessi. Inoltre il software molto complesso rende difficile il collaudo e
porta facilmente il robot a comportamenti apparentemente inspiegabili e quasi
sempre controproducenti.

Bene, perdonate se mi sono dilungato così tanto. Spero che questi appunti vi
siano utili.

Ciao
Mario



Message has 2 Replies:
  Re: Strategie per il Sumo (lungo) (era: Proposta gara robotica per Ballabio)
 
Sei stato, come sempre, utilissimo! rimane solo da capire se si useranno più di una CPU per robot. Personalmente mi vanno bene anche due. Con tre inizierei ad avere problemi di software e materiale. grazie GIuliano (...) (18 years ago, 15-Jan-07, to lugnet.org.it.itlug)
  Re: Strategie per il Sumo (lungo) (era: Proposta gara robotica per Ballabio)
 
Ciao Mario, (...) Ma che bello! Altro che perdonare! Sembra quasi un estratto dalla seconda edizione di BRLMS :-) Mi mancano tanto i thread sui regolamenti! Mi fate tornare voglia di costruire qualcosa anch'io, mi manca SOLO il modo di trovare (...) (18 years ago, 8-Feb-07, to lugnet.org.it.itlug)

Message is in Reply To:
  Re: Proposta gara robotica per Ballabio
 
Bene, condivido. A questo punto una proposta: Ho letto il regolamento del sumo e le caratteristiche dei partecipanti nelle gare del 2000 o 2001. Non sarebbe male che un "esperto" fornisse un minimo di strategia da utilizzare. Questo per evitare gare (...) (18 years ago, 15-Jan-07, to lugnet.org.it.itlug)

12 Messages in This Thread:




Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact

This Message and its Replies on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR