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 :)
Artificial Vision Robot
Moderatore:
Paolino
40 messaggi
• Pagina 1 di 4 • 1, 2, 3, 4
0
voti
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)?
Fabio
0
voti
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
0
voti
No, niente mindstorm e pezzi già fatti.
Cosa ci sarebbe da imparare ?
c1b8,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?
Cosa ci sarebbe da imparare ?
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?
Visita il mio sito : http://www.raffotech.altervista.org
0
voti
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.
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.
Fabio
0
voti
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 :

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

Visita il mio sito : http://www.raffotech.altervista.org
0
voti
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.
Se hai un po' di pazienza provo ad eleborare quell'immagine per vedere cosa ne uscirebbe, come si semplificherebbe.
Fabio
0
voti
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
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
Visita il mio sito : http://www.raffotech.altervista.org
0
voti
ecco , forse questo rispecchiano meglio la situazione :




Visita il mio sito : http://www.raffotech.altervista.org
2
voti
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
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
40 messaggi
• Pagina 1 di 4 • 1, 2, 3, 4
Torna a Realizzazioni, interfacciamento e nozioni generali.
Chi c’è in linea
Visitano il forum: Nessuno e 8 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)





