[Progetto comune] - Robotica

Ciao a tutti ragazzi.
Visto il successo della robotica nel poll creo questo post per delineare l'eventuale progetto comune in quest'ambito.
Io sto portando avanti un robot lavapavimenti e aspirapolvere e sto cercnado di concepire un codice semplice per l'HOME MAPPING (vedi roomba) cioè delineare una mappa della casa e magari sapere in che punto si trova il robot.
Aspetto le vostre proposte. :sunglasses:

mmm.
Ti dirò, per limiti personali sono più vicino a questo tipo di progetto.
Il problema é che non é semplice (come nel progetto del CNC, ma infinitamente più facile, in realtà) trovare un "prototipo" da hackerare che non sia (già) un roomba.

Io ho lavorato molto con la cosa più semplice/economica da utilizzare: le macchinine telecomandate.

Ovviamente per un progetto simile la cosa migliore é il tipico robottino rotondo con ruote bassissime.
:stuck_out_tongue: :stuck_out_tongue:

non so quanto un'arduino possa salvare determinati dati, ma se mosso con degli stepper creare una mappa di casa con un sensore sharp non è nemmeno difficile, si tratta solo di sovrapporre una matrice di vettori per delinearne il contorno finale... solo che con mathcad è facile fare una cosa simile ... con un'arduino non lo so :smiley:

beh bisognerebbe delineare un protocollo di salvataggio dei dati di movimento e della ricezione di ostacoli. Graficamente con processing non è cosi difficile, disegna una riga mentre vai, disegna un puntino quando trovi qualcosa davanti a te lo sto gia sperimentando, pero' vorrei pensare a qualcosa che sia libero da processing, non grafico ma matematico.

wow, l'idea è carina :wink: anche se non ho idee su come affrontare il problema.

Comunque ci sto

io lo sta già facendo un robottino solo che mi si è rotta la scheda e non mi vanno i programmatori avr quindi sono fermo :-/

gio, matematicamente non è problematico farlo, il problema è vedere se l'arduino riesce a stare dietro a tutti quei calcoli ... sono matrici abbastanza grosse e complesse ... dovresti prima provare a fare un poolling di dati e poi processarli sotto mathcad e vedere se riesci a trovare un'algoritmo semplice da eseguire, altrimenti puoi fare un'algorimo di prossimità che è piu semplice... al massimo quando ci becchiamo te lo spiego

i dati del problema potrebbero essere questi?

1 punto di partenza (x;y)
2 propria posizione (x;y)
3 standby (boolean)
4 angolo di curva eventuale (in gradi)
5 rpm ruota (se si vuole la finezza della vel variabile)
6 ostacolo (presenza dell'eventuale ostacolo)

Se qualcuno e' in grado di farlo matematicamente, non e' possibile pensare di attaccare un piccolo computer ad arduino mentre il robot pattuglia la casa, apprenderne la forma e poi togliere il computer e lasciare arduino che ormai ha imparato? O questo tipo di dati sono di difficile gestione una volta anche appresi? F

matematicamente c'è un metodo piu semplice per farlo che sovrapporre la matrice di linee, ovvero usare la matrice di punti e un'algoritmo di prossimità. ovvero in sostanza salvi un punto quando ti trovi a x centimetri da un'ostacolo con coordinate x-y, e fai muovere il mezzo una volta trovato l'ostacolo. una volta che hai un'array sufficentemente grande per la precisione che vuoi ottenere, fai un'algoritmo semplice calcolando con un sistema di radious il punto piu prossimo a quello che hai preso in analisi, quindi sposti il tuo cursore su quel punto e flagghi quello precedente come visitato, continui cosi finchè non rimangono piu punti da visitare e dovresti avere qualcosa di simile a una polilinea aperta che dovrebbe delimitare la tua stanza, dopo devi fare un'algoritmo di refine dell'errore e tracciare una linea fra la media dei punti che mantengono una certa linearità, eliminando quindi l'errore e avendo una linea retta che dovrebbe rispecchiare il tuo muro.... insomma farlo non è complesso ... se ti metti a scriverlo in un paio di giorni cel'hai fatta ... solo fossi in te prima proverei a fare questi calcoli graficamente davanti a un pc, poi vedi se il risultato è soddisfacente automatizzi la cosa dentro al robot.

tempo fa scrissi un'algoritmo simile per fare dei calcoli su googlemap :smiley:

sono contento che la sezione robotica abbia preso questa strada...ma a questo punto io ripropongo il maze solver (che avevo già proposto nel 3D del progetto comune).

Si tratta di un robottino, che prima risolve il labirinto disegnato come se fosse un normale line follower e intanto apprende la soluzione che lo sta portando all'uscita. Una volta risolto il labirinto e riposizionato nella posizione di partenza è in grado di ripercorrere il percorso giusto.

Mi sembra che ci siano delle forti similitudini col robot aspirapolvere, ma un po' più entry level, potrebbe essere il primo step del progetto.

Che ne pensate?

fattibile ma di scarsa utilità, se devo spendere tempo ... almeno che mi pulisca casa :smiley:

Si beh, effettivamente l'unica utilità sarebbe quella di riuscire a farlo funzionare!

L'unica cosa utile è che la struttura e il concetto di fondo del codice sarebbero le stesse...per le mie capacità è più fattibile e potrei contribuire, mentre il progettone "aspirapolvere" lo seguirei comunque ma sarei più passivo.
Dico questo perchè non credo che tutte le 11 persone che hanno votato robotica al poll e che vorrebbero partecipare attivamente al progetto abbiano capacità di modellizzazione e creazione di algoritmi complessi.

algoritmi complessi no :o

mi ricordo che per far esaminare uno spazio a un robot si doveva fargli fare delle specie di chiocciole quadrate sul terreno... ora non ricordo se sta tecnica ha un nome però potrete evitare particolari algoritmi...

Il sistema di mappatura potrebbe essere valido anche per altri tipi di robot, non solo per gli aspirapolveri :slight_smile:

Potrebbe essere interessante anche, prima della mappatura, scrivere un sistema veramente efficace di navigazione e decisione via sonar + servo motore. Due componenti che e' sempre figo avere e che se devi muovere un robot ti fanno comodo.

Beh l'idea di calamaro ci sta, con un ultrasonico montato a lato si possono mappare le posizioni delle pareti in modo piuttosto semplice.

girando ho trovato:
http://www.jonh.net/~jonh/robots/mapping/submitted-paper.html
http://coecsl.ece.uiuc.edu/ge423/spring03/Group7/index.html

http://www.iorobot.net/index.php?option=com_content&task=view&id=22&Itemid=44

post su roboitalia:

da quello che ho capito possiamo usare delle matrici ma occupano un sacco di mem e operazioni/secondo, oppure algoritmi un po' piu' complessi ma leggeri da far girare

Federico Vanzati ha scritto:

Dico questo perchè non credo che tutte le 11 persone che hanno votato robotica al poll e che vorrebbero partecipare attivamente al progetto abbiano capacità di modellizzazione e creazione di algoritmi complessi.

io arrivo a malapena alle equazioni di primo livello... :-? :o :-[ :-/

Massi' non è cosi problematico come sembra.
E poi siamo il forum italiano. Dobbiamo spaccare.
(non per mettere competizione con i forum esteri) pero' dovremmo tirare fuori qualcosa di interessante, avete visto in america cosa fanno?
Non possiamo farci surclassare cosi' :stuck_out_tongue: