Robot che ricorda percorso

Salve ragazzi...
ho in mente di creare un robot che ricordi il percorso. in pratica mettendolo a terra, rilevi gli ostacoli la prima volta, fino ad arrivare all'altra stanza. Una volta arrivato lì, memorizzi il percorso più breve evitando gli ostacoli. Pensavo che questo tipo di algoritmo fosse chiamato A* ma le ricerche nn mi hanno portato alcun risultato. Qualcuno potrebbe aiutarmi? grazie in anticipo :slight_smile: :slight_smile: :slight_smile: :slight_smile: :slight_smile: :slight_smile:

fredrosa:
ho in mente di creare un robot che ricordi il percorso. in pratica mettendolo a terra, rilevi gli ostacoli la prima volta, fino ad arrivare all'altra stanza. Una volta arrivato lì, memorizzi il percorso più breve evitando gli ostacoli.

Non per scoraggiarti, ma ciò che vuoi realizzare è molto complesso sia dal punto di vista software che meccanico, che conoscenze di base hai ?

diciamo che se non cerchi la precisione assoluta si può fare.
l'algoritmo a* serve per cercare il percorso migliore in una scacchiera (in cui alcune celle sono ostacoli) per andare da una cella ad un altra.

in pratica il tuo rov divide il mondo in celle di questa schacchiera, e crea quindi la mappa.

l'algoritmo è complesso, ma forze trovi qualche esempio. In oltre anche il robot deve essere abbastanza preciso

astrobeed:
Non per scoraggiarti, ma ciò che vuoi realizzare è molto complesso sia dal punto di vista software che meccanico, che conoscenze di base hai ?

salve astrobeed, fino ad adesso ho realizzato robt rileva ostacoli, robot radiocomandato con "pulse in" e altre realizzazioni in ambito di domotica.
potrebbe darmi anche lei delle dritte riguardanti il mio progetto?

lesto:
diciamo che se non cerchi la precisione assoluta si può fare.
l'algoritmo a* serve per cercare il percorso migliore in una scacchiera (in cui alcune celle sono ostacoli) per andare da una cella ad un altra.

in pratica il tuo rov divide il mondo in celle di questa schacchiera, e crea quindi la mappa.

l'algoritmo è complesso, ma forze trovi qualche esempio. In oltre anche il robot deve essere abbastanza preciso

salve Lesto, dove posso trovare degli esempi e la spiegazione dell'algoritmo? se scrivo arduino a* nn trovo nnt. forse per quanto riguarda arduino non si chiama a* ma ha un altro nome. aiuto

A* è il nome dell'algoritmo matematico, quindì è universale, al massimo sono le sue applicazioni che varianqualche info "matematica": A - Wikipedia*

in oltre quì c'è una realizzazione di un robot che calcola le sue coordinate cartesiane della posizione. Ovviamente ogni passo che fai c'è un piccolo errore che si accumula, e in base alla precisione del sistema e alla presenza di punti di riferimeto assoluti che permettono dunque di azzerare l'errore.
http://www.gioblu.com/tutorials/robotica/217-robot-cartesiano-e-odometria-con-arduino

Un altro problema oltre la memorizzazione degli ostacoli é l' orientamento del robot nelle stanze.
Deve sapere dove sta per poter sapere dove ci sono gli ostacoli da evitare.
Ciao Uwe

uwefed:
Un altro problema oltre la memorizzazione degli ostacoli é l' orientamento del robot nelle stanze.
Dece sapere dove sta per poter sapere dove ci sono gli ostacoli da evitare.
Ciao Uwe

Sì, ci vorrebbe un magnetometro da usare come bussola per orientare sia la stanza che il robot.

fredrosa:
fino ad adesso ho realizzato robt rileva ostacoli, robot radiocomandato con "pulse in" e altre realizzazioni in ambito di domotica.
potrebbe darmi anche lei delle dritte riguardanti il mio progetto?

Allora prima di cimentarti in questa realizzazione devi studiare molto, oltre a fare molta pratica, con realizzazioni più semplici.
Come primo obbiettivo devi realizzare un robot in grado di passare l'UMB MARK senza problemi, cioè percorrere un quadrato di 4x4 metri, anche di meno se il robot è di piccole dimensioni e non hai abbastanza spazio disponibile, tornando esattamente al punto di partenza sia come posizione che come orientamento, usando solo l'odometria.
Quando il tuo robot è in grado di passare l'UMB MARK, che oltre ad essere un test di abilità è anche un modo per verificare gli errori e correggerli, puoi cominciare a pensare allo step successivo, ovvero eseguire un percorso random e ripeterlo al contrario tornando esattamente al punto di partenza.
Ti allego un video dimostrativo del UMB MARK, è di quasi due anni fa e i due robot, il primo è di un amico il secondo è mio ancora sotto forma di prototipo e in fase di sviluppo.
Puoi trovare moltissime informazioni su come implementare l'odometria e costruire un robot come quello che desideri realizzare sul sito di Guido Ottaviani, il suo robot è il primo che vedi nel video ed era ancora da mettere a punto per bene, come potrai leggere quel robot usa un microprocessore a 16 bit con core DSP per gestire tutta la parte pid, odometria e navigazione, Arduino è utilizzato solo per gestire i sensori.

leo72:
Sì, ci vorrebbe un magnetometro da usare come bussola per orientare sia la stanza che il robot.

Purtroppo in interno i magnetometri sono praticamente inutili, sono facilmente influenzati da tutte le masse ferrose presenti in casa e dai campi magnetici generati da i cavi della corrente, si arriva facilmente a variazioni di +/- 15° rispetto al valore reale.
Tempo fa abbiamo fatto un test dentro una palestra con i magnetometri su i robot, anche in quel caso abbiamo misurato variazioni di +/- 6° rispetto all'orientamento reale, troppi per un uso come controllo direzione.
Diverso è il discorso outdoor dove il magnetometro è abbastanza preciso, più o meno come una classica bussola, però tocca vale solo se è perfettamente in bolla il che vuol dire misurare l'inclinazione reale del magnetometro, si fa utilizzando un accelerometro e il terzo asse del magnetometro, e compensare la posizione del Nord in base a questo, non è una cosa semplice da implementare.