Pagina 1 di 4

Artificial Vision Robot

MessaggioInviato: 25 gen 2013, 1:31
da pierinter
Buonasera a tutti!

Con l'università,stiamo cercando di tirar su un robot da 'competizione'.
La competizione,la gara cioè, consiste nel raccogliere il maggior numero di palle in un arena.

L'elettronica di controllo consiste in una scheda Arduino (l'ho sempre evitata a dir la verità per l'eccessiva semplicità, ma devo dire che in ambito universitario va molto).

Comunque, stavo pensando a come muovere il robot nell'arena, in particolare come capire dove andare per beccare le palline.

È un problema non semplicissimo, in quanto l'arena è popolata anche da altri robot avversari.

Quello che mi è venuto in mente è di utilizzare una webcam che gira ,ed, in qualche modo , analizzare il video per capire dove effettivamente le palline si trovano.

Il problema è che credo sia computazionalmente troppo per Arduino!
Quindi pensavo che si potrebbero analizzare, invece che un intero stream video in (semi)real-time, solo delle immagini scattate ogni tot secondi.
Ma anche qui forse è troppo per Arduino, non so.

Riusciamo a fare una stima delle capacità computazionali che dovrebbe avere la scheda per fare un processing di questo tipo?

Inoltre,potrei utilizare anche una raspberry volendo (se la trovo). Dite sia una buona idea ?

le 'palline' che così ho chiamato, hanno tutte una forma ad uovo...e il colore è diverso per ognuna,quindi non si può giocare sul colore.

Grazie a tutti :)

Re: Artificial Vision Robot

MessaggioInviato: 25 gen 2013, 17:07
da c1b8
le 'palline' che così ho chiamato, hanno tutte una forma ad uovo...e il colore è diverso per ognuna,quindi non si può giocare sul colore.

Ciao,
forse però l'arena è di un colore omogeo e le palline possono essere viste come "variazione significativa del colore di sfondo".
Semplificando potresti quindi scattare una foto dell'arena e verificare dove vi sia una transizione di colore, transizione che deve occupare un'area non troppo piccola (variazioni di luminosità) ne troppo grande (altri robot)?

Re: Artificial Vision Robot

MessaggioInviato: 25 gen 2013, 17:36
da teo1998
ma sono colori di tutta la gamma o solo tipo "rosso, verde, giallo, blu..." se è così, puoi usare un lego minstorm, veloce e facile da programmare

Re: Artificial Vision Robot

MessaggioInviato: 25 gen 2013, 19:39
da pierinter
No, niente mindstorm e pezzi già fatti.
Cosa ci sarebbe da imparare ?

Foto Utentec1b8,esatto, è quello che pensavo io.
Il problema è che nell'arena ci sono diversi colori : il 'pavimento' sarà omogeneo ma ci saranno diverse linee colorate,inoltre gli altri robot saranno probabilmente colorati, senza contare che le foto possono comprendere anche i pantaloni e le scarpe delle persone ai lati dell'arena, con tutti i colori.

Quindi credo che si debba fare una specie di intersezione tra forma (uovo) e colore.
È una cosa possibile ?
Con che piattaforma ? Arduino,Raspeberry?

Re: Artificial Vision Robot

MessaggioInviato: 25 gen 2013, 21:57
da c1b8
Prima che la piattaforma secondo me devi decidere quale tecnica/algoritmo applicare per risolvere il problema, quindi saprai di quali specifiche minime hai bisogno.
Potresti procedere con un algortimo di edge detection e quindi riconoscimento delle forme individuate.
Qui ad esempio trovi un semplice esempio di edge detection realizzato con arduino. Ma si trovano facilmete molti progetti in rete per entrambe le piattaforme che hai citato.

Re: Artificial Vision Robot

MessaggioInviato: 25 gen 2013, 22:17
da pierinter
L'avevo già visto quel link, e sebbene funzionante è comunque qualcosa di un po' troppo semplice : immagine monocromatica,forma semplice...

Le situazioni in cui mi troverei io sarebbero un po' più complesse.
Immagina una situazione del genere , con delle palline sparse :

Immagine

Re: Artificial Vision Robot

MessaggioInviato: 26 gen 2013, 13:29
da c1b8
Quella che proponi è sicuramente una situazione molto più complessa, ma una "semplificazione" dell'immagine la dovrai sicuramente fare perché una macchina sia in grado di interpretarla.
Se hai un po' di pazienza provo ad eleborare quell'immagine per vedere cosa ne uscirebbe, come si semplificherebbe.

Re: Artificial Vision Robot

MessaggioInviato: 26 gen 2013, 16:36
da pierinter
Si, di pazienza ne ho in abbondanza.
Ho instalLato Matlab quindi posso provare anch'io a fare delle 'simluazioni'.

Purtroppo non sono riuscito a trovare nessuna immagine che rispecchi davvero quello di cui ho bisogno, quindi con le gambe e i piedi della gente, l'arena, gli altri robot e le palline.
Cerco ancora.. se ne trovo qualcuna,tanto meglio :) Altrimenti rimaniamo su questa

Re: Artificial Vision Robot

MessaggioInviato: 26 gen 2013, 16:42
da pierinter
ecco , forse questo rispecchiano meglio la situazione :

Immagine
Immagine

Re: Artificial Vision Robot

MessaggioInviato: 26 gen 2013, 22:18
da cyclone
Ciao a tutti,
intanto per il sistema di riconoscimento delle palle colorate lascia perdere arduino, non hai abbastanza potenza computazionale. Arduino è un giocattolino, magari lo potrete utilizzare per muovere i motori ma non certo per analizzare immagini in tempo reale.
Hai necessità di avere una board molto più potente o almeno una scheda con linux embedded su cui far girare le OpenCV e una CAM USB. Per quanto riguarda l'algoritmo che ti serve per identificare la palla colorata presente nel campo visivo:

1) esegui un color detection sull'immagine "grabbata" usando la gradazione HSV.
2) poi applica uno Smooth sull''immagine colorata per sfumarla e arrotondarla.
3) cerca se ci sono oggetti arrotondati sul frame catturato.
4) calcola la posizione del centroide colorato X Y e l'area che ti potrà servire per calcolare la distanza tra il robot e la palla.

Lo so che spiegato così è poco chiaro ma ti assicuro che l'unica strada per realizzare quello che tu chiedi è proprio quella di implementare ed usare le OpenCV su una macchina con una certa potenza di calcolo.
Calcola che con questo sistema puoi analizzare fino a 30 frame/sec con una cam a media risoluzione.

ciao