Robot "Wall-E" con Arduino: comandi vocali e riconoscimento oggetti

Ciao a tutti mi sono appena iscritto e presentato nell'apposita sezione :wink: E' da meno di un anno che possiedo un arduinoUNO e navigando su youtube ho visto questo video:

Ho da porvi due domande:

-Secondo voi cosa sfrutta per il riconoscimento vocale? (Si appoggia ad un computer?);

-Al tempo 0:50 riconosce e segue il dito. Ho letto qualcosa sul tracking e riconoscimento degli oggetti, ma non so se sia questo il caso... ::slight_smile: Avete idea di cosa abbia utilizzato?

Grazie

  1. riconoscimento vocale: EasyVR3

  2. inseguimento di oggetti: Pixy (CMUcam5)

Enrambi oggetti che NON costano poco, ma funzionano piuttosto bene.

Guglielmo

P.S.: Per la Pixy, un utente del forum (Astrobeed) ha realizzato un piccolo filmato youtube

Lorenzo_Molinar:
-Secondo voi cosa sfrutta per il riconoscimento vocale? (Si appoggia ad un computer?);

Qui c'è il progetto completo, inclusa la lista dei materiali.

astrobeed:
Qui c'è il progetto completo, inclusa la lista dei materiali.

... quindi NON fa il riconoscimento di oggetti, ma solo una misura della distanza con sensore IR Sharp :wink:

Guglielmo

Grazie ad entrambi per le rapidissime risposte! Il filmato della Pixycam l'avevo visto tempo fa, ma dal link postato da Astrobeed credo che usi solo un sensore di distanza ad infrarossi, possibile? Mentre per il riconoscimento vocale hai ragione Guglielmo. (Mi permetto di dare del tu)

Spulciando altri video ho visto che qualcuno ha usato il modulo bluetooth HC-05 con l'app "AMR_Voice", perciò mi è venuto in mente di utilizzare lo smartphone.
Volendo fare le cose in economia, mi accontenterei quindi di potergli far eseguire dei compiti vocalmente dal cellulare.
Per quanto riguarda la tracciatura del dito, dato che utilizza un sensore infrarossi (correggetemi se sbaglio), credo che non riconosca il dito in sè, ma vede solo un oggetto muoversi e lo segue giusto? Se sì sarebbe già un buon risultato per me.

Tornando al discorso dello smartphone io possiedo già una scheda wifi "miupanel" (ESP8266 + adattatore) che mi consente di controllarlo a distanza. Sapete se abbia anche la possibilità di usare il microfono? Giusto per non acquistare un modulo bluetooth e usare quello che già ho.

EDIT: ho visto ora che Guglielmo mi aveva risposto in precedenza. Quindi confermate che possa usare un sensore infrarossi per fargli seguire un oggetto?

Lorenzo_Molinar:
EDIT: ho visto ora che Guglielmo mi aveva risposto in precedenza. Quindi confermate che possa usare un sensore infrarossi per fargli seguire un oggetto?

NO, con l'IR misuri solo una distanza ... quello che puoi fare e fare una scansione destra-sinistra-destra e andare nella direzione dell'ostacolo più vicino.

Guglielmo

P.S.: Che non ha nulla a che vedere con il riconoscimento di un oggetto ed il suo inseguimento come con la Pixy

La pixy non riconosce oggetti ma zone colorate uniformemente, per cui l'oggetto da inseguire deve avere un colore non presente nello sfondo.

Nel 2013 feci un esperimento anche io con Wall-e, usai un Odroid u3 per il riconoscimento facciale/oggetti, faceva anche distinzione tra i volti, scattava un centinaio di foto del volto da associare ad un nome e creava un haarcascade, se non ricordo male, arduino si occupava di ricevere dalla seriale i comandi da dare ai servi. Usai python ed opencv. Funzionicchiava. In realtà provai anche il riconoscimento vocale, ma con le Api di Google, ma parsare le parole non mi riuscì molto. Progetto in cantina.

In realtà la pixy è in grado di riconoscere dei pattern, forma e colori, a patto che siano su uno sfondo ad elevato contrasto, ovviamente non può fare miracoli però è perfettamente in grado di tracciare oggetti di forma regolare, p.e. una serie di birilli rossi posti sul pavimento.

Con le OpenCV ci ho "giocato" pure io, però in C su una SBC con processore X86 e Windows CE come sistema operativo, questo è un esempio di tracciamento oggetti, forma generica ma con colori ad alto contrasto, su sfondo generico.

Devo dire che le prestazioni erano buone nella velocità di elaborazione frame al secondo, anche in python su Linux, erano se non ricordo male più di 15 frame al secondo, il problema era che i volti di lato ed in diagonale non li riconosceva, per la diagonale io facevo ruotare il frame da una parte e dall'altra di 25 gradi, se non trovava il volto nel frame dritto e questo peggiorava il framerate. Con i colori questo problema non lo hai.
Ps. Stavo pensando ora, il multitread non avrebbe potuto funzionare, quindi lo faceva tutto un singolo core, giusto? Parlo del U3. Quindi avrei potuto usare tutti e 4 i core? :o

Per i volti ho provato sia applicazioni su browser (credo in flash) che sostituiscono il tuo volto con un altro o una maschera, sia applicazioni offline come FaceRig.