Gustav Hanning Version 1.0 Status Granskad Godkänd Jonas Callmer 2010-09-24 1
PROJEKTIDENTITET 2010/HT, 8Yare Linköpings tekniska högskola, institutionen för systemteknik (ISY) Namn Ansvar Telefon E-post Henrik Berggren Projektledare (PL) 073 066 79 81 henbe341@student.liu.se Gustav Hanning Dokumentansvarig (DOK) 073 569 67 95 gusha410@student.liu.se Anders Bergdahl Designansvarig (DES) 070 964 72 10 andbe752@student.liu.se Richard Wasell Testansvarig (TST) 073 955 72 10 ricwa946@student.liu.se Viktor Pirard 073 445 55 61 vikpi051@student.liu.se Johannes Fri 070 549 97 07 johfr306@student.liu.se Philip Hagelin 076 291 60 08 phiha649@student.liu.se Rikard Norman 076 427 41 62 rikno676@student.liu.se E-postlista för hela gruppen: Hemsida: Kommer senare Beställare: Jonas Callmer, Linköpings universitet, 013 28 23 06, callmer@isy.liu.se Kund: Pelle Carlbom, Saab Dynamics, 013 18 62 13, pelle.carlbom@saabgroup.com Kursansvarig: David Törnqvist, Linköpings universitet, 013 28 18 82, tornqvist@isy.liu.se Handledare: Martin Skoglund, Linköpings universitet, 013 28 18 90, ms@isy.liu.se 2
Innehåll 1 INLEDNING...5 2 SYSTEMÖVERSIKT...5 2.1 GROV BESKRIVNING AV SYSTEMET...6 2.2 INGÅENDE DELSYSTEM...6 3 MASTERENHETEN...6 3.1 ANVÄNDARGRÄNSSNITTET...6 3.2 KOMMUNIKATION...7 3.3 BILDBEHANDLING...7 4 SCOUTENHETEN...7 4.1 NAVIGATIONSENHETEN...8 4.2 FRAMDRIVNINGSENHETEN...9 4.3 STEREOKAMERAN...9 3
Dokumenthistorik version datum utförda förändringar utförda av granskad 0.1 2010-09-14 Första utkastet GH, JF, PH HB,RN 0.2 2010-09-19 Enligt kommentarer från handledare och beställare RN JF 0.3 2010-09-22 Enligt kommentarer från beställare JF,GH VP,HB 1.0 2010-09-24 HB 4
1 Inledning Saab Dynamics vill ta fram en bandvagn som ska kunna kartlägga olika miljöer autonomt. Projektet inleddes våren 2009 med framtagning av specifikationer, kontrollprogram, nätverkskommunikation, navigationstekniker med mera. Under hösten 2009 utrustades bandvagnen med fjärrstyrning samt motorreglering för framdrivning. Bandvagnen utrustades även med en GPS för att kunna följa en fördefinierad brytpunktsbana. Projektgruppens uppgift är att utöka bandvagnens funktionalitet med hjälp av en stereokamera av typen Bumblebee 2. Projektet bygger vidare på arbetet utfört av projektgruppen O'hara's under våren 2009 och projektgruppen Carpe Locus under hösten 2009. Detta dokument innehåller en översiktlig beskrivning av systemet och dess delar. 2 Systemöversikt Systemet är uppbyggt av två delsystem, masterenheten och scoutenheten. Masterenheten används för att kontrollera och övervaka scoutenheten. I figur 1 ses en översiktlig bild över hur systemet är uppbyggt, där scoutenheten definieras av bandvagnen och dess tillhörande delsystem. Den trådlösa kommunikationen sker mellan master- och navigationsenheten. Scoutenhet Masterenhet GPS Navigationsenhet Stereokamera Motorer Odometrar Framdrivningsenhet ARM Figur 1. Översikt av systemet. 5
2.1 Grov beskrivning av systemet Det första delsystemet (masterenheten) är en laptop som används för att styra bandvagnen. Det andra delsystemet (scoutenheten) är själva bandvagnen. Dessa två delsystem kommunicerar med varandra via ett trådlöst nätverk. Scoutenheten är i sin tur uppbyggd av två delsystem: navigationsenheten och framdrivningsenheten ARM. De sensorer som ingår är en GPS och en stereokamera som är kopplad till navigationsenheten och två odometrar som är kopplade till ARM-processorn. 2.2 Ingående delsystem De ingående delsystemen är: Masterenheten, se kapitel 3 Scoutenheten, se kapitel 4 o Navigationsenheten o Framdrivningsenheten ARM 3 Masterenheten Masterenheten utgörs av en laptop, där ett användargränssnitt körs under ett Linux-baserat operativsystem. Från användargränssnittet skickas kommandon till bandvagnen (scoutenheten). Bandvagnen kan endera köras i autonomt eller manuellt läge. I autonomt läge skickas en av användaren specificerad brytpunktsbana till bandvagnen. Bandvagnen följer sedan denna bana så bra som möjligt. I manuellt läge skickar användaren styrkommandon direkt till bandvagnen. Masterenhet Figur 2. Masterenheten kommunicerar med scoutenheten via WLAN 3.1 Användargränssnittet Det användargränssnitt (GUI) som kommer att användas på masterenheten har utvecklats av de tidigare projektgrupperna O'hara's och Carpe Locus. Användaren kan med hjälp av GUI:t ansluta till bandvagnen och därefter skicka och ta emot data från bandvagnen. Programmet är utvecklat i C++ och använder Qt-biblioteket för det grafiska gränssnittet. Det finns två olika lägen för att styra roboten, ett manuellt och ett autonomt. I det manuella läget styr man roboten med hjälp av tangentbordet. I det autonoma läget så definierar användaren en brytpunktsbana i GUI:t. Den skickas till roboten som sedan följer banan. 6
Gränssnittet visar också sensordata från odometrar och GPS. Programmet ska vidareutvecklas så att även bilder från stereokameran kan presenteras för användaren. Både originalbilderna från kameran och bilder som visar djupet med en färgskala ska kunna visas. Mer information om bildbehandlingen finns i avsnitt 3.3. Eftersom bilderna från kameran ska taggas med position och vinkel ska man kunna se var bilder har tagits i kartdelen av gränssnittet. Funktionalitet för att spara en rutt tillsammans med de bilder som tagits ska också implementeras. 3.2 Kommunikation Masterenheten kommunicerar med scoutenheten via WLAN där data skickas i båda riktningarna. Scoutenheten skickar data då masterenheten begär data. För att kommunicera med scoutenheten, som fungerar som server, ansluter masterenheten till scoutenheten genom att ange navigationsenhetens ip-nummer. Masterenhetens kommunikationsdel kommer behöva utökas för att kunna ta emot stereobilder från scoutenheten. Dessa bilder ska också kunna sparas på hårddisken. Dessutom ska masterenheten kunna skicka styrdata till kameran via scoutenheten, t.ex. stänga av kameran eller ändra upplösning. 3.3 Bildbehandling Masterenheten kommer att behandla stereokamerans bilder innan de presenteras. Exempelvis ska masterenheten ta emot två bilder från stereokameran och med hjälp av programvaran som följer med kameran skapa en bild som visar djupet med en färgskala utifrån dessa två bilder. Andra funktioner kan vara att bilden ska komprimeras och taggas med information om var bilden togs och med vilken vinkel. Beroende på hur arbetet fortskrider kanske masterenheten behöver besluta om de bilder som tagits räcker för att bygga en 3D-värld eller om fler bilder behövs, samt med hjälp av bilderna skilja mellan den statiska världen och objekt som rör på sig. Om tid finns ska även ett program för att visualisera en 3D-värld uppbyggd av stereobilderna tas fram. 4 Scoutenheten Scoutenheten består av en bandvagn av typ MMP30 samt en dator som använder operativsystemet Linux. På bandvagnen sitter två stycken DC-motorer, en på vardera sida, som driver enheten. Plattformen innehåller även två batterier som via en spänningsregulator tillhandahåller spänning till motorer och övrig elektronik i bandvagnen. Scoutenheten är utrustad med odometrar på motorerna och en GPS. Under projektet kommer även en stereokamera att installeras. Scoutenheten består av två stycken delsystem: Navigationsenheten samt framdrivningsenheten ARM. Kommunikation mellan scoutenheten och omvärlden sker genom navigationsenheten till masterenhten via WLAN. 7
GPS Navigationsenhet Stereokamera Motorer Odometrar Framdrivningsenhet ARM Figur 3. Översikt av scoutenheten. 4.1 Navigationsenheten Navigationsenheten består av datorn som är fastsatt på bandvagnen. Den har tre huvudsakliga uppgifter: Sköta kommunikationen mellan masterenheten och scoutenheten Beräkna styrsignaler till framdrivningsenheten utifrån nuvarande position, hastighet och önskad position. Samla in sensordata från odometrar, GPS och kamera. De tidigare projektgrupperna har använt en bärbar dator som navigationsenhet. I detta projekt ska den bärbara datorn bytas ut mot en industridator. Målet är att i framtiden kunna ha en liten dator som kan sitta inuti robotchassit. Detta innebär att funktionaliteten från den bärbara datorn måste överföras till industridatorn. Eftersom industridatorn saknar skärm och tangentbord måste scoutenhetens initiering ske automatiskt till skillnad från tidigare projekt. Dessutom ska industridatorn om möjligt använda bandvagnens batterier som spänningskälla då den ej har ett eget batteri. I nuläget används odometrar och GPS för att skatta robotens position och riktning. Eftersom scoutenheten kommer få extra informationen från kameran kan denna komma att användas för att förbättra skattningarna, t.ex. med SLAM-teknik. 8
Navigationsenheten använder sig av ett Socket-objekt och kan därför kommunicera med flera enheter samtidigt. Navigationsenheten är kopplad via USB till framdrivningsenheten och till masterenheten via WLAN. 4.2 Framdrivningsenheten Framdrivningsenheten har till uppgift att sköta reglering av motorerna utifrån önskad hastighet från navigationsenheten samt sensordata från odometrarna. Den består av en ARMprocessor från Atmel samt av två odometrar vilka är anslutna till motorerna. Navigationsenheten försörjer mikrokontrollern och de båda odometrarna med ström via USB. Framdrivningsenheten består av följande komponenter: Mikrokontrollern (AT91SAM7S64) Odometrarna är tillverkade av US Digital (E5-500-188-1-S-D-3-B) Motorerna är av typen Sabertooth 2x25 Framdrivningsenheten får styrkommandon från navigationsenheten innehållande önskad vinkelhastighet på vardera band. ARM-processorn reglerar hastigheten individuellt på varje sida och beräknar utsignaler till motorerna utifrån önskat börvärde och nuvarande bandhastighet. Nuvarande bandhastighet bestäms utifrån data från odometrarna. Regulatorerna för att reglera bandhastigheten är av PID-typ. Framdrivningsenheten kommunicerar med navigationsenheten via RS-232 över USB. Från navigationsenheten skickas börvärden för regulatorerna till framdrivningsenheten. Framdrivningsenheten skickar tillryggalagd sträcka för de två olika banden till navigationsenheten. Framdrivningsenheten använder sig, liksom navigationsenheten, av Socket-objekt. 4.3 Stereokameran Kameran som används av scoutenheten är en Bumblebee2 BB2-08S2C stereokamera från Point Grey som kan användas för att skapa 3D-bilder. Kameran är utrustad med en firewireport samt en GPIO-port. I projektet kommer firewire-porten användas, både som informationskanal och spänningskälla. Kameran ska under projektets gång utvärderas för att se t.ex. hur lämplig den är att använda till denna typ av robot och hur lätt den är att använda. Det kan också vara intressant att se med vilken noggranhet djupet kan mätas. 9