2009-10-07 4 views
7

coppia di amici e sarò costruendo semplice robot per tenere traccia una linea bianca su una superficie nera, non abbiamo mai fatto questo genere di cose prima e non ho molto alto piano di livello di attacco,robotica e computer vision

Ottieni una mini scheda atx per tutte le esigenze di elaborazione, una web cam per tracciare la strada e 2 motori elettrici uno per la propulsione uno per la direzione.

La mia preoccupazione principale è, c'è un modo migliore per tracciare la strada? o una webcam funziona per il lavoro?

EDIT:

seguito alle risposte utilizzando Fotoresistenza sembra essere la strada da percorrere, bu non ho ancora una domanda ci sarà segnali, alla destra della pista raccontare il robot che pesci pigliare. di nuovo bianco su nero. come devo fare una sinistra su un incrocio a T. c'è un modo per gestire questo senza una fotocamera?

risposta

13

È preferibile ignorare del tutto il software di visione complesso e utilizzare l'elettronica semplice. Ci sono dispositivi chiamati fototransistor che sono sensibili alla luce. Punto due verso il basso su ciascun lato del robot, ombreggiato dalla luce dall'alto. Se il bot inizia a girare a destra invece di seguire la linea, verrà attivato il sensore di sinistra. Se va a sinistra, verrà attivato quello giusto. Usa il feedback di questi segnali per guidare il robot (potresti applicarli quasi direttamente ai motori se hai due motori).

2

Ho realizzato un robot simile a scuola e ho realizzato due piccoli sensori, fondamentalmente solo LDR in un tubo a prova di luce con un circuito per controllare la soglia di luce che ha fatto il flip da on a off. Ha reso la logica molto semplice - c'è una linea nera sotto questo sensore? Sì | No.

L'utilizzo di una webcam può comportare una notevole quantità di elaborazione visiva.

Nel frattempo, però, è possibile lavorare sugli altri sottosistemi, ovvero controllare i motori dal computer e costruire la cosa stessa e capire come alimentare tutto.

+1

Ricordare che i robot sono complicati e che ci sono un sacco di cose che possono accadere. Semplice è buono. Molto bene. Per lo meno, fai lavorare il robot con i LDR, quindi non stai cercando di eseguire il debug di tutto nello stesso momento. –

5

Una web cam non avrà problemi a tracciare una linea bianca su uno sfondo nero, e se si riscontrano problemi di sensibilità, si tratta di una parte del sistema facilmente aggiornabile. (Avresti solo bisogno di collegare una camma più costoso)

Potrebbe interessarvi di avere uno sguardo a OpenCV,

(Open Source Computer Vision) è una libreria di funzioni di programmazione per tempo reale visione computerizzata.

Essa può dare qualche idea per voi implementazione, o anche essere utile a voi se si finisce per utilizzare C++

edit: anche se usando LDRs come Andrew M suggerito può essere una soluzione più semplice:)

+1

+ ~ OpenCV è una buona soluzione se il rilevamento della vista è più complicato. E sono d'accordo, il rilevatore foto suggerito altrove è la soluzione semplice per questo specifico problema. – kenny

0

Suggerirei di usare entrambi i motori per guidarlo, uno per lato nel mezzo del telaio e poi due ruote anteriori e posteriori (sollevate leggermente dal pavimento in modo da poter oscillare sulle ruote motrici). Quindi puoi guidarlo come un carro armato e può accendere sei centesimi (o un centesimo se dagli Stati Uniti).

Spot Guerre ex-Robot concorrente :)

+0

In genere ho usato 3 per semplicità. A parte il bilanciamento del peso (sulle ruote motrici) c'è un motivo per usare 2 ruote invece di 1? Allineamento? – NVRAM

+0

è semplice, quindi se tre funzionano, seguitelo. Usando due mezzi puoi avere le ruote motrici più nel mezzo del robot in modo da ottenere un raggio di sterzata più stretto. A seconda della superficie su cui stai guidando, puoi provare a utilizzare uno skid in nylon o un cuscinetto a sfera in una disposizione a coppa, il che significa che puoi davvero girare perfettamente sul posto, le rotelle possono darti un calcio in più mentre devono ruotare. Spero possa aiutare –

2

precedenti commenti su utilizzando un sensore fotografico sono buoni suggerimenti, anche se potrebbe essere più difficile da trovare/fare qualcosa che inserirla in una porta USB.

Se si segue il percorso della telecamera, suggerirei di emulare un semplice sensore; forse prendi una media delle metà sinistra e destra dell'input come indicazione per guidare dritto/sinistra/destra.

Tuttavia, se si desidera dedicare meno tempo alla creazione dei pezzi personalizzati, è possibile controllare lo LEGO NXT kit. Vengono con un sensore ottico e un ambiente di programmazione grafica. Anche se non ne acquisti uno, potresti imparare dalle discussioni della comunità che lo circondano.

0

se si va con fotocamera potrebbe essere necessario fare qualche semplice elaborazione delle immagini. Il modo più semplice sarebbe probabilmente la soglia adattiva: prendi tutti i pixel dalla cornice della videocamera, converti in scala di grigi (se è a colori), calcola la media e usala come soglia - avrai una linea bianca su sfondo nero. Se si ottengono ancora dei piccoli punti bianchi (a causa dell'illuminazione irregolare), è possibile filtrarli separando l'immagine nei componenti collegati (con le piene) e rimuovendo piccoli blob. Successivamente, si spera che si ottenga un'unica striscia bianca sullo sfondo nero.