Domande frequenti#

Domande generali#

Cosa c’è di unico nella CMUcam1?#

Tradizionalmente sono necessari computer veloci per catturare ed elaborare le immagini della telecamera. È inoltre necessario scrivere il software per eseguire questa elaborazione. A causa di ciò è difficile usare la visione come sensore in sistemi semplici.

Il sistema di visione CMUcam1 utilizza un microcontrollore veloce ed economico per gestire tutta l’elaborazione ad alta velocità dei dati della fotocamera e contiene software per eseguire semplici compiti di visione. Poiché l’utente può scegliere di emettere dal sistema di visione solo informazioni di alto livello a bassa larghezza di banda, come il fatto che l’oggetto rosso si trova nella posizione X-Y, è possibile per un semplice processore come un microcontrollore PIC leggere questi dati e dirigere un piccolo robot in compiti come inseguire una palla colorata. Il sistema di visione CMUcam1 rende possibile ignorare la complessità dell’interfacciamento della fotocamera e utilizzare la visione proprio come qualsiasi altro sensore (ad es. il sonar) spesso utilizzato nei sistemi robotici.

Qual è la frequenza dei fotogrammi della CMUcam1?#

La frequenza dei fotogrammi più veloce è di 16,7 fotogrammi al secondo. Questo significa che la CMUcam1 può dirti la posizione di un oggetto circa 17 volte al secondo. Utilizzando il protocollo software seriale puoi rallentare questo valore se lo desideri.

Quali baud rate supporta la CMUcam1?#

A partire dall’ultima versione del firmware (v1.12) la CMUcam1 può comunicare a baud rate di 9600, 19200, 38400 o 115200. Il baud rate viene selezionato tramite le impostazioni dei jumper sulla scheda.

Come aggiorno il firmware della mia CMUcam1?#

Se stai attualmente utilizzando il firmware v1.11 non c’è motivo di aggiornare a meno che tu non abbia bisogno del supporto per i baud rate più bassi. La versione 1.11 supporta 38400 e 115200 baud. La versione 1.12 supporta quei baud rate e aggiunge il supporto per 9600 e 19200 baud. Per aggiornare il firmware dovrai riprogrammare la memoria flash nel chip del tuo processore. Se hai un programmatore puoi scaricare la versione corrente dalla nostra pagina Download e riprogrammare il processore da solo.

La CMUcam1 funziona all’aperto?#

La CMUcam1 funziona all’aperto ma non alla luce diretta del sole. La fotocamera CMOS che utilizziamo non ha un filtro IR di alta qualità, e quindi la luce solare satura i pixel rossi e l’immagine diventa, essenzialmente, monocromatica alla luce diretta del sole. È possibile aggiungere un filtro esterno per migliorare il funzionamento all’aperto. Abbiamo un breve resoconto che ti mostra come le condizioni di illuminazione influenzano la CMUcam1 che puoi scaricare qui.

Posso scrivere codice personalizzato per la CMUcam1?#

Certamente. Per farlo, richiedici il codice sorgente del firmware, procurati un ambiente di programmazione C per il chip Ubicom e vai avanti. Quando ti invieremo il codice sorgente del firmware, ti invieremo anche un riepilogo di come è strutturato il codice e informazioni sull’ambiente di programmazione che utilizziamo.

Quanta energia consuma la CMUcam1?#

Il sistema completo consuma circa 200 milliampere.

Qual è il campo visivo della CMUcam1?#

Questo dipende dall’obiettivo che monti sulla telecamera CMOS. Se ordini la telecamera CMOS così com’è venduta di serie, otterrai un campo visivo di circa 25 gradi, che è relativamente stretto. Tuttavia, puoi ordinare su misura obiettivi grandangolari quando ordini la tua telecamera CMOS.

Quale processore usa la CMUcam1?#

Il nostro codice di elaborazione delle immagini risiede su un chip microcontrollore di Ubicom che funziona a 75 MHz, il SX28AC. Questo chip legge tutti i pixel dalla fotocamera CMOS tramite un’interfaccia parallela ed esegue tutta l’elaborazione in tempo reale. Poi comunica i risultati al tuo microcontrollore o computer tramite un’interfaccia della porta seriale.

Quale telecamera CMOS usa la CMUcam1?#

Usiamo una telecamera CMOS che utilizza la telecamera CMOS su chip OmniVision OV6620. Usiamo una scheda telecamera CMOS modello numero C3088 su cui sono montati il sensore, un connettore e un obiettivo.

La CMUcam1 funziona con altre fotocamere CMOS?#

No. Attualmente il sistema hardware e software è stato progettato per funzionare specificamente con la fotocamera CMOS OmniVision OV6620. Il sistema dovrebbe essere completamente riprogettato per funzionare con un’altra fotocamera.

C’è qualche posto in cui posso trovare risposte ad altre domande che ho?#

Sì. Abbiamo alcune informazioni su domande più tecniche in questa pagina.

Dove posso trovare maggiori informazioni sulla visione artificiale in generale?#

La CMUcam1 svolge il semplice compito di visione artificiale per cui è stata progettata in un pacchetto piccolo ed economico. Tuttavia, il problema generale della visione artificiale di cercare di riconoscere oggetti arbitrari in condizioni arbitrarie è ancora un argomento di ricerca molto attivo e molto lontano dall’essere anche solo vicino a un problema risolto.

Se vuoi saperne di più sulla visione artificiale, potresti provare questi link:

Domande tecniche#

Qual è l’esatta sequenza di passaggi eseguita all’accensione dalla modalità demo?#

Ecco la sequenza esatta che la modalità demo esegue all’accensione:

  1. Resetta la fotocamera.

  2. Attendi 5 secondi affinché la regolazione automatica dei parametri della telecamera si stabilizzi.

  3. Invia la stringa dei registri della fotocamera: CR 18 32 19 32 che seleziona la modalità YCrCb e disattiva l’auto gain.

  4. Esegui il comando TW.

Dopo di che, la fotocamera inizierà a pilotare un servo verso la massa centrale del colore rilevato dal comando TW.

Qual è l’esatta sequenza di passaggi eseguita dal comando «TW»?#

Ecco la sequenza esatta che il comando TW esegue:

  1. Riduci la finestra a 1/4 della dimensione (in ciascuna dimensione) della finestra corrente in una nuova finestra centrata sul centro della finestra corrente.

  2. Chiama get mean.

  3. Ripristina la finestra alla dimensione piena dell’immagine.

  4. Imposta il valore massimo e minimo per ciascun canale di colore in modo che sia la media di quel canale +/- 30.

Dopo di che, la fotocamera inizierà a trasmettere in streaming pacchetti di tipo C, M o N.

In quali condizioni si accende il LED di tracciamento quando la modalità automatica è abilitata?#

Il LED si accenderà quando il valore restituito pixel_count >= 2. Il valore restituito pixel_count = (actual_pixel_count + 4) / 8.

Se la fotocamera CMOS ha una risoluzione di 352 x 288 pixel, perché la risoluzione della CMUcam1 è solo 80 x 143?#

Il problema qui è come funzionano le fotocamere digitali a colori. In tutte le fotocamere digitali a colori (anche quelle molto costose - eccetto alcune basate su una tecnologia molto avanzata) si ottiene una sola misurazione del canale di colore per posizione di pixel, questo si chiama filtraggio a mosaico. Ecco un bel diagramma che aiuta a spiegare questo:

Mosaic

(Diagramma per gentile concessione di Foveon, Inc.)

Quindi ciò che puoi vedere è che i pixel possono essere pensati come disposti in gruppi di quattro, in cui ci sono due misurazioni G e una misurazione R e una B per gruppo. Se scarti una delle misurazioni G (cosa che facciamo) vedi che la risoluzione reale di una fotocamera 352x288 è più vicina a 176x144. Facciamo funzionare la fotocamera in modalità a metà risoluzione che salta ogni altro blocco 2x2 in orizzontale, il che ti dà 88x144. A causa dei limiti di memoria nel processore scartiamo 8 colonne in orizzontale e una riga in verticale, che contiene un test pattern, il che ti dà 80x143 come risoluzione finale.

Giusto per informazione, le normali fotocamere digitali utilizzano tecniche di interpolazione complesse per cercare di riempire i valori di colore mancanti in ciascun pixel e darti qualcosa un po” più vicino alla piena risoluzione del sensore.

Come posso mettere a fuoco la CMUcam1 con precisione?#

Naturalmente, il modo migliore per procedere con la messa a fuoco è effettuare dei frame dump utilizzando la GUI. Potresti non avere un computer a portata di mano, oppure potresti utilizzare una CMUcam1 BotBall, che non ha una risoluzione sufficiente al suo baud rate cablato di 9600 perché questo funzioni bene.

In tal caso, ci sono due alternative. Primo, puoi provare a contare i filetti. L’obiettivo non è avvitato completamente alla messa a fuoco ottimale. Piuttosto, c’è circa 1 millimetro di gioco del filetto visibile. In termini di numero di filetti, si tratta di circa 2 filetti visibili nello spazio tra l’obiettivo e la sua montatura.

La seconda alternativa si basa sull’idea che quando un’immagine è nitida, le zone scure sono più scure e quelle chiare sono più chiare. In altre parole, quando il contrasto è massimo. Quando l’immagine diventa sfocata, allora gli estremi svaniscono verso una distribuzione più uniforme delle intensità. Quindi, se avvii la modalità streaming e poi chiami GM (Get Mean), puoi mettere a fuoco in tempo reale. Guarda la deviazione del rosso. Mentre metti a fuoco nitidamente un oggetto ad alto contrasto (come un foglio di carta con molto testo scritto) alla distanza desiderata, ci sarà un picco evidente nella deviazione del rosso quando è messo a fuoco in modo più nitido. Nota che questo approccio alla messa a fuoco richiede che tu tenga la fotocamera e il bersaglio ben fermi mentre giri l’obiettivo.