Vanliga frågor#

Allmänna frågor#

Vad är unikt med CMUcam1?#

Traditionellt behövs snabba datorer för att fånga och bearbeta kamerabilder. Det är också nödvändigt att skriva programvaran som utför denna bearbetning. På grund av detta är det svårt att använda seende som en sensor i enkla system.

CMUcam1-seendesystemet använder en snabb, billig mikrokontroller för att hantera all höghastighetsbearbetning av kameradata och innehåller programvara för att utföra enkla seendeuppgifter. Eftersom användaren kan välja att endast mata ut information på hög nivå med låg bandbredd från seendesystemet, som att det röda objektet är i position X-Y, är det möjligt för en enkel processor som en PIC-mikrokontroller att läsa dessa data och styra en liten robot i uppgifter som att jaga en färgad boll. CMUcam1-seendesystemet gör det möjligt att bortse från komplexiteten i kameragränssnitt och använda seende precis som vilken annan sensor (t.ex. sonar) som ofta används i robotsystem.

Vad är CMUcam1:s bildhastighet?#

Den snabbaste bildhastigheten är 16,7 bilder per sekund. Detta innebär att CMUcam1 kan tala om positionen för ett objekt cirka 17 gånger per sekund. Med det seriella programvaruprotokollet kan du sänka detta om så önskas.

Vilka baudhastigheter stöder CMUcam1?#

Från och med den senaste versionen av firmware (v1.12) kan CMUcam1 kommunicera vid baudhastigheterna 9600, 19200, 38400 eller 115200. Baudhastigheten väljs via bygelinställningar på kortet.

Hur uppgraderar jag min CMUcam1-firmware?#

Om du för närvarande använder firmware v1.11 finns det ingen anledning att uppgradera om du inte behöver stöd för de lägre baudhastigheterna. Version 1.11 stöder 38400 och 115200 baud. Version 1.12 stöder dessa baudhastigheter och lägger till stöd för 9600 och 19200 baud. För att uppgradera din firmware måste du omprogrammera flashminnet i ditt processorchip. Om du har en programmerare kan du ladda ner den aktuella versionen från vår sida Nedladdningar och flasha om processorn själv.

Fungerar CMUcam1 utomhus?#

CMUcam1 fungerar utomhus men inte i direkt solljus. CMOS-kameran vi använder har inte ett högkvalitativt IR-filter, och därför mättar solljuset de röda pixlarna och bilden blir i princip monokrom i direkt solljus. Det är möjligt att lägga till ett externt filter för att förbättra utomhusdriften. Vi har en kort beskrivning som visar hur belysningsförhållanden påverkar CMUcam1 som du kan ladda ner här.

Kan jag skriva egen kod för CMUcam1?#

Absolut. För att göra detta, be oss om firmwarens källkod, beställ en C-programmeringsmiljö för Ubicom-chippet och sätt igång. När vi skickar dig firmwarens källkod skickar vi även en sammanfattning av hur koden är strukturerad och information om den programmeringsmiljö vi använder.

Hur mycket ström förbrukar CMUcam1?#

Hela systemet förbrukar cirka 200 milliampere.

Vad är CMUcam1:s synfält?#

Detta beror på linsen som du monterar på CMOS-kameran. Om du beställer CMOS-kameran som den säljs som standard får du ett synfält på cirka 25 grader, vilket är relativt smalt. Du kan dock specialbeställa vidvinkellinser när du beställer din CMOS-kamera.

Vilken processor använder CMUcam1?#

Vår bildbearbetningskod finns på ett mikrokontrollerchip från Ubicom som körs på 75 MHz, SX28AC. Detta chip läser alla pixlar från CMOS-kameran via ett parallellt gränssnitt och gör all bearbetning i realtid. Det kommunicerar sedan resultaten till din mikrokontroller eller dator via ett seriellt portgränssnitt.

Vilken CMOS-kamera använder CMUcam1?#

Vi använder en CMOS-kamera som använder OmniVision OV6620 CMOS-kamera på ett chip. Vi använder ett CMOS-kamerakort med modellnummer C3088 på vilket sensorn, en kontakt och en lins är monterade.

Fungerar CMUcam1 med andra CMOS-kameror?#

Nej. För närvarande har hårdvaru- och programvarusystemet utformats för att specifikt fungera med OmniVision OV6620 CMOS-kamera. Systemet skulle behöva omkonstrueras helt för att fungera med en annan kamera.

Finns det någonstans jag kan hitta svar på ytterligare frågor jag har?#

Ja. Vi har lite information om mer tekniska frågor på denna sida.

Var kan jag ta reda på mer om datorseende i allmänhet?#

CMUcam1 utför den enkla datorseendeuppgift den utformades för att utföra i ett litet, billigt paket. Det allmänna datorseendeproblemet med att försöka känna igen godtyckliga objekt under godtyckliga förhållanden är dock fortfarande ett mycket aktivt forskningsämne och mycket långt ifrån att vara i närheten av ett löst problem.

Om du vill lära dig mer om datorseende kanske du vill prova dessa länkar:

Tekniska frågor#

Vilken är den exakta stegsekvens som demoläget utför vid påslagning?#

Här är den exakta sekvens som demoläget utför vid påslagning:

  1. Återställ kameran.

  2. Vänta 5 sekunder på att kameraparametrarnas automatiska justering ska stabiliseras.

  3. Skicka kameraregistersträngen: CR 18 32 19 32 som väljer YCrCb-läge och stänger av auto-gain.

  4. Kör kommandot TW.

Därefter börjar kameran driva ett servo mot mittmassan av den färg som detekteras av kommandot TW.

Vilken är den exakta stegsekvens som kommandot ”TW” utför?#

Här är den exakta sekvens som kommandot TW utför:

  1. Krymp fönstret till 1/4 av storleken (i varje dimension) av det aktuella fönstret till ett nytt fönster centrerat vid det aktuella fönstrets centrum.

  2. Anropa get mean.

  3. Återställ fönstret till hela bildstorleken.

  4. Ställ in max- och minvärdet för varje färgkanal till medelvärdet för den kanalen +/- 30.

Därefter börjar kameran strömma paket av typ C, M eller N.

Under vilka förhållanden tänds spårningslysdioden när auto-läget är aktiverat?#

Lysdioden tänds när det returnerade pixel_count >= 2. Det returnerade pixel_count = (actual_pixel_count + 4) / 8.

Om CMOS-kameran har en upplösning på 352 x 288 pixlar, varför är CMUcam1:s upplösning bara 80 x 143?#

Problemet här är hur digitala färgkameror fungerar. I alla digitala färgkameror (även de mycket dyra - förutom vissa baserade på någon mycket avancerad teknik) får du bara en färgkanalmätning per pixelplats, detta kallas mosaikfiltrering. Här är ett bra diagram som hjälper till att förklara detta:

Mosaic

(Diagram tillhandahållet av Foveon, Inc.)

Så vad du kan se är att pixlar kan tänkas vara ordnade i grupper om fyra, där det finns två G-mätningar och en R- och en B-mätning per grupp. Om du kasserar en av G-mätningarna (vilket vi gör) ser du att den verkliga upplösningen för en 352x288-kamera ligger närmare 176x144. Vi kör kameran i halvupplösningsläge som hoppar över varannat 2x2-block horisontellt vilket ger dig 88x144. På grund av minnesbegränsningar i processorn kasserar vi 8 kolumner horisontellt och en rad vertikalt, som innehåller ett testmönster, vilket ger dig 80x143 som slutlig upplösning.

Bara som info använder vanliga digitalkameror komplexa interpolationstekniker för att försöka fylla i de saknade färgvärdena vid varje pixel och ge dig något som ligger lite närmare sensorns fulla upplösning.

Hur kan jag fokusera CMUcam1 noggrant?#

Det bästa sättet att gå tillväga med fokusering är naturligtvis att ta bilddumpar med hjälp av GUI:t. Du kanske inte har en dator till hands, eller så använder du en BotBall CMUcam1, som inte har tillräcklig upplösning vid sin hårdkodade 9600-baudhastighet för att detta ska fungera bra.

I så fall finns det två alternativ. För det första kan du prova att räkna gängor. Linsen är inte fullt inskruvad vid bästa fokus. Istället syns ett gap på cirka 1 millimeter gänga. Räknat i antal gängor är det cirka 2 gängor som syns i gapet mellan linsen och linsfästet.

Det andra alternativet bygger på idén att när en bild är skarp är de mörka partierna som mörkast och de ljusa som ljusast. Med andra ord, när kontrasten är som störst. När bilden blir oskarp bleknar extremvärdena bort till en mer enhetlig fördelning av intensiteter. Så om du startar streaming-läge och sedan anropar GM (Get Mean), kan du fokusera i realtid. Titta på den röda avvikelsen. När du fokuserar skarpt på ett högkontrastobjekt (såsom ett pappersark med mycket text på) på önskat avstånd, kommer det att finnas en märkbar topp i den röda avvikelsen när fokus är som skarpast. Observera att detta tillvägagångssätt för fokusering kräver att du har kameran och målet ganska stadigt placerade medan du vrider på linsen.