Användarhandledning Autonom Bandvagn Version 1.0 Redaktör: Johan Norberg Datum: 7 december 2009 Status Granskad Karl Granström 2009-11-27 Godkänd Jonas Callmer 2009-12-07
Projektidentitet E-mail: bandvagn@googlegroups.com Hemsida: http://www.isy.liu.se/edu/projekt/tsrt10/2009/bandvagn 2009/ Beställare: Jonas Callmer, Linköpings Universitet Telefon: 013-28 23 06, E-mail: callmer@isy.liu.se Kund: Pelle Carlbom, SAAB Bofors Dynamics Telefon: 013-18 62 13, E-mail: Pelle.Carlbom@saabgroup.com Kursansvarig: David Törnqvist, Linköpings Universitet Telefon: 013-28 18 82, E-mail: tornquist@isy.liu.se Handledare: Karl Granström, Linköpings Universitet Telefon: 013-28 28 03, E-mail: karl@isy.liu.se Handledare: Torbjörn Crona, SAAB Bofors Dynamics Telefon: 013-18 66 42, E-mail: torbjorn.crona@saabgroup.com Handledare: Johan Bejeryd, SAAB Bofors Dynamics E-mail: johan.bejeryd@saabgroup.com Gruppdeltagare Namn Ansvar Telefon E-mail @student.liu.se Erik Hagfalk (EH) Projektledare (PL) 070-254 53 31 eriha936 Johan Norberg (JN) Dokumentansvarig (DOK) 073-060 84 62 johno227 Jon Bjärkefur (JB) Navigationsansvarig (NAV) 070-862 77 37 jonbj981 Ola Tybrandt (OT) Testansvarig (TEST) 073-619 03 51 olaty661 Erik Eriksson Ianke Sensoransvarig (SA) 073-063 44 65 erier955 (EEI) Orhan Gafurovic (OG) Estimeringsansvarig (EST) 073-922 24 62 orhga172 Johan Särnbrink (JS) Modellansvarig (MOD) 070-308 33 35 johsa779 André Emilsson (AE) ARM-ansvarig (ARM) 073-507 74 68 andem364
Dokumenthistorik Version Datum Ändringar Signatur Granskare 0.1 2009-11-16 Första utkastet. JN JB Alla 0.2 2009-11-24 Lagt till bilder. JN Alla 0.3 2009-11-27 Korrigerad efter handledarens JN Alla kommentarer. 1.0 2009-12-07 Dokumentet godkänt. JN Alla
Innehåll 1 Inledning 1 1.1 Parter............................................... 1 1.2 Syfte och Mål........................................... 1 1.3 Användning............................................ 1 1.4 Bakgrundsinformation...................................... 1 1.5 Definitioner............................................ 1 2 Beskrivning av systemet 2 3 Komma igång 2 4 Nätverksuppkoppling 2 5 Scoutenheten 3 6 Masterenheten 3 6.1 Anslutningsfönster........................................ 3 6.2 Lägesval.............................................. 3 6.3 Manuellt läge........................................... 4 6.4 Autonomt läge.......................................... 4 6.4.1 Skapa och hantera en brytpunktsbana......................... 5 6.4.2 Starta en brytpunktsnavigering............................. 5 6.4.3 Nollställning av systemet och kartan.......................... 6 6.5 Satellitläge............................................ 6 A Programmering av ARM-enheten 8
Autonom Bandvagn 1 1 Inledning Användarhandledningen beskriver hur man ska använda systemet Mobile Scout som utvecklats för att hantera en robot av typen MMP30. Systemet har utvecklats i CDIO-kursen Reglerteknisk projektkurs vid Linköpings universitet under våren och hösten 2009. Dokumentet förklarar först hur man snabbt kommer igång med systemet sett ur användarens synvinkel. Därefter beskrivs de olika delsystemen och framförallt användargränssnittet mer ingående. 1.1 Parter Kunden är Pelle Carlbom på SAAB Bofors Dynamics. Beställare är Jonas Callmer på avdelningen för reglerteknik vid Linköpings Universitet. Handledare på Saab Bofors Dynamics är Torbjörn Crona och Johan Bejeryd. Handledare på avdelningen för reglerteknik är Karl Granström. Projektgruppen består av 8 studenter från Y och D-linjen. 1.2 Syfte och Mål Syftet med projektet är att utveckla framdrivningen av en mobil bandvagn. Manuell och autonom drift ska vara möjlig. 1.3 Användning Produkten ska användas för flera olika ändamål. Ett exempel är autonom kartering av trädgårdsföreningen i Linköping. 1.4 Bakgrundsinformation Projektet har startats upp efter ett initiativ av Torbjörn Crona och Pelle Carlbom på Saab Bofors Dynamics. Projektgruppen bygger vidare på befintligt arbete och sedan kommer fler projektgrupper att fortsätta arbetet. Slutmålet med projektet är en mobil autonom bandvagn med kringutrustning som skall kunna förflytta sig i en utomhusmiljö med sensorer som GPS, kamera och hjulodometrar. 1.5 Definitioner Följande förkortningar används i dokumentet. L1 - Masterenhet (Laptop 1). L2 - Navigationsenhet (Laptop 2). ARM - Framdrivningsenhet (Advanced RISC Machine). GPS - Global Positioning System. Systemet bestämmer bandvagnens globala position. SLAM - Simultaneous Localisation And Mapping. En teknik för samtidig lokalisering och kartering med mobila autonoma farkoster.
Autonom Bandvagn 2 2 Beskrivning av systemet Systemet består av två huvudsystem. Det första systemet kallas Scoutenheten och består av bandvagnen och Navigationsenheten. Det andra huvudsystemet är Masterenheten, som är den del som operatören främst kommer i kontakt med. Systemen kommunicerar med varandra trådlöst. En operatör kan styra och övervaka bandvagnen från Masterenhetens användargränssnitt. Användargränssnittet består dels av ett manuellt läge, där operatören kan styra och övervaka bandvagnen manuellt. Det andra läget är ett autonomt läge. I det läget kan operatören ange ett antal punkter som roboten ska besöka i en viss ordning. Sedan navigerar bandvagnen autonomt mellan dessa punkter. Dessa punkter läggs ut på en satellitkarta och under drift kan man se var i kartan bandvagnen för tillfället befinner sig. 3 Komma igång Följande steg beskriver kortfattat hur man kommer igång. Mer detaljerad beskrivning kan hittas längre ned i dokumentet. Börja med att koppla in Scoutdatorn till bandvagnens ARM-processor och GPS (två USB-kablar). Anslut Scoutdatorn med WLAN till Masterenheten, se avsnitt 4. På Scoutdatorn, gå in i mappen /user/desktop/bandvagn 2009/src/Scoutenhet Skriv sudo./initarm för att initiera porten till ARM-enheten (ttyusb0). Slå på bandvagnen med huvudströmbrytaren. Skriv./Scout.exe för att starta Scoutenheten. På Masterdatorn, gå in i mappen /user/desktop/bandvagn 2009/src/Masterenheten Skriv./Master Ange Scoutenhetens IP-nummer i användargränssnittet, som standard 10.0.0.1. Klart för användning! 4 Nätverksuppkoppling Innan roboten kan börja användas måste kommunikation upprättas via scoutenheten och masterenhten. Kommunikationen sker trådlöst via WLAN och ett Ad-Hoc nätverk används för direkt kommunikation mellan enheterna. Detta initieras på följande sätt: Stoppa Ubuntus inbygda nätverkshanterare: sudo /etc/dbus-1/event.d/25networkmanager stop Ställ in nätverkskortet i Ad-Hoc läge och ställ in IP-adress sudo iwconfig ath0 mode ad-hoc sudo iwconfig ath0 essid scout
Autonom Bandvagn 3 sudo ifconfig ath0 10.0.0.1 up sudo ifconfig ath0 netmask 255.255.255.0 Nu är nätverket färdigt att användas. IP-adresserna bör vara olika på de båda datorerna men samma subnätverk bör användas. Andra nätverksportar bör stängas av (sudo ifconfig eth0 down) för att förhindra eventuella konflikter. På Scoutdatorn finns ett shellschript som kan användas för att automatiskt konfigurera nätverket. Detta körs genom att gå till mappen src och skriva./initscoutnetwork. I samma mapp finns även scriptet normalscoutnetwork som återställer nätverket. 5 Scoutenheten Scoutenheten består av L2-enheten, ARM-enheten och bandvagnen. L2-enheten utför estimering, navigering och övergripande reglering av bandvagnen. L2-enheten kommunicerar dels med Masterenheten och dels med ARM-enheten. ARM-enheten reglerar bandvagnens motorer och beräknar bandens hastigheter. L2-enheten är kopplad till ARM-enheten och en GPS med två olika USB-kablar. Se avsnitt 3 för information om hur Scoutenheten startas. 6 Masterenheten Användargränssnittet är ett grafiskt gränssnitt som gör det enkelt för användaren att styra roboten från Masterenheten. I GUI:t finns det möjligheter att ansluta till den enhet man vill kommunicera med, styra roboten manuellt samt lägga till en brytpunktsbana och skicka denna till Scoutenheten. Det finns även möjlighet att se status- och sensordata för Scoutenheten. 6.1 Anslutningsfönster För att mastern ska ha någon möjlighet att kommunicera med scouten måste man upprätta en nätverkslänk mellan dessa. När användargränssnittet startas öppnas fönstret Connection Window, se figur 1. Skriv in den IP-adress som scoutenheten har och välj sedan Connect. Senast anslutna IP-adress är ifyllt som standard. För att avsluta uppkopplingen mellan masterdatorn och roboten väljer man File i menyraden och därefter alternativet Disconnect. Om man har avslutat uppkopplingen eller om den har brutits på annats sätt kan man koppla upp sig igen genom att välja File och sedan Connect. Då öppnas Connection Window och man gör på samma sätt som beskrevs ovan för upprätta nätverkslänken. Uppe i huvudfönstrets högra hörn finns en informationsruta som visar Connected om mastern är ansluten till scouten eller Disconnected om ingen länk finns. 6.2 Lägesval Högst upp i huvudfönstrets vänstra hörn finns en lägesväljare där man kan välja mellan manuellt läge, autonomt läge eller autonomt läge med satellitkarta. Detta görs genom att
Autonom Bandvagn 4 Figur 1: Anslutningsfönstret i gränssnittet. välja Manual för manuellt läge, Automatic för autonomt läge samt Satellite för satellitkarta. 6.3 Manuellt läge Om man har valt manuellt läge kan man manuellt styra roboten från masterdatorn. Då ser huvudfönstret ut som i figur 2. För att börja köra manuellt klickar man först på Start. Sedan kan man klicka på stopp för att avsluta manuell körning eller på Reset för att nollställa roboten. Efter att roboten startas kan den styras genom piltangenterna. Hastighet väljs med hjälp av slidern till höger eller genom att trycka på W eller S på tangentbordet för att öka respektive sänka hastigheten. Nuvarande kommando kan ses i textrutan Current command. Sensordata från roboten visas till höger i fönstret där det finns fyra flikar och man bläddrar mellan dessa för att välja önskad sensor. 6.4 Autonomt läge I autonomt läge följer roboten en bana given av ett antal brytpunkter. Huvudfönstret har utseendet i figur 3. Ett antal olika styrknappar finns för att göra det möjligt att bestämma vad roboten ska göra och vilken information om Scoutenheten som ska visas. Det är även möjligt att skapa, spara och ladda brytpunktsbanor.
Autonom Bandvagn 5 Figur 2: Manuellt läge i Masterprogrammet. 6.4.1 Skapa och hantera en brytpunktsbana Brytpunkter kan läggas till från en fördefinierad bana. Det finns två olika sätt att göra detta på. Första sättet är att välja Load track. Då får man upp ett fönster där man kan leta fram en tidigare sparad textfil innehållande en brytpunktslista. Det andra sättet är att manuellt skapa en egen bana genom att skriva in egna brytpunkter på raden New Breakpoint under högersidan av kartan. Varje brytpunkt läggs till genom att trycka på Add point. Det går även att klicka ut nya punkter direkt i kartan genom att högerklicka. För att ta bort en punkt väljer man punkten i listan List of Breakpoint och trycker sedan på Remove point. Det går även att spara aktuell brytpunktslista med knappen Save. Man får då ange ett filnamn i ett nytt fönster. 6.4.2 Starta en brytpunktsnavigering När man har valt bana, skickar man brytpunkterna till roboten genom att trycka på Upload track. För att se den valda banan på kartan måste alternativet Show Breakpoints till vänster om kartan vara markerat. Scoutenheten startas genom att trycka på Start. På kartan kan man nu se robotens position i relation till brytpunkterna. För att se den bana roboten kör måste alternativet Show Est. Position på kartans vänstersida vara markerat. På högersidan av huvudfönstret syns sensordata på samma sätt som beskrivet för manuellt läge. Genom att välja Show Status öppnas fönstret Status Window. Längst ner i detta fönster syns nuvarande position, hastighet, vinkel, vinkelhastighet och brytpunkt. I tabellen ovanför syns alla värden
Autonom Bandvagn 6 sedan start eller då man senast valde att radera all data i tabellen. För att tömma tabellen trycker man på knappen Clear Data och för att stänga fönster väljer man knappen Close. 6.4.3 Nollställning av systemet och kartan Roboten kan återställas genom att trycka på Reset. För att radera senaste körningen från kartan, välj Clear Map, och för att radera brytpunktslistan, välj Clear. Figur 3: Bilder över autonomvyn. 6.5 Satellitläge I satellitläget visas en satellitkarta över ett område. Figur 4 visar en bild över satellitläget. Användaren kan förflytta kartan genom att trycka på w, a, s, och d på tangentbordet samt zooma med hjälp av r och f. Satellitvyn visar robotens senaste positioner som gröna sfärer och nuvarande position med en grön rektangel. GPS-data visas med gula punkter. En brytpunktsbana kan läggas till genom att högerklicka på den plats på kartan dit roboten ska köra. När en brytpunktsbana är färdig kan den laddas upp till Scoutenheten genom att man trycker på knappen Upload breakpoints. Tidigare brytpunkter tas automatiskt bort från Scoutenheten när en ny lista mottages. Roboten startas och stoppas genom att trycka på knappen Start/Stop. Knappen Reset stannar och återställer Scoutenheten. Om en felaktig brytpunkt har lagts till eller om man vill lägga till en ny brytpunkt kan man markera en tidigare punkt genom att klicka på den. Den valda brytpunkten blir då markerad röd. Vill man ta bort vald brytpunkt kan man trycka på knappen Delete breakpoint. Vill man instället lägga till en ny brytpunkt efter vald punkt högerklickar man i kartvyn där den nya punkten ska vara.
Autonom Bandvagn 7 Figur 4: Körning av roboten i satellitläget. Brytpunktsbanor kan laddas respektive sparas med hjälp av knapparna i panelen till vänster. I panelen till vänster visas även antal satelliter som scoutenheten har kontakt med. Om antalet satelliter är större än två markeras detta genom att rutan blir grön, annars är den markerad röd. Det finns även möjlighet att centrera kameran på scoutenhetens position genom att kryssa i rutan Lock camera.
Autonom Bandvagn 8 A Programmering av ARM-enheten Nedan följer de steg som krävs för att programmera från dator med operativsystemet Windows XP: Installera medföljande skiva från Olimex med förinställda val. Ladda ner och lägg mappen WinARM under C:\ Lägg till C:\WinARM\bin;C:\WinARM\utils\bin; sist i Variable value: tillhörande Variable name: Path under System Properties - (FLIK) Advanced - (KNAPP) Environment Variables - (FÄLT) System variables. Kopiera projektmappen Robot2 sam7h64 usb till C:\gccfd\projects. Anslut ARM-USB-TINY och installera de drivrutiner som efterfrågas genom att ange mappen C:\gccfd\Olimex OpenOCD Driver i dialogen för ny maskinvara. Starta eclipse och importera projektet enligt följande; högerklicka i (FLIK) Navigator - (LÄNK) Import - (TRÄDMAPP) General - (MARKERA) Existing Projects into Workspace - (KNAPP) Next - (MARKERA) Select root directory - (KNAPP) Browse - (HITTAochVÄLJ) C:\gccfd\projects\Robot2 sam7h64 usb - (KNAPP) Finish. Öppna och ändra i filen sam7-armusbocd.cfg i det nya projektet. Kontrollera att det finns tre stycken rader enligt: ft2232 device desc Olimex OpenOCD JTAG TINY A" ft2232 layout olimex-jtag" ft2232 vid pid 0x15BA 0x0004 Högerklicka på projektet och välj Make Targets - (LÄNK) Build - (KNAPP) Add och skriv in texten all i fältet bredvid Target name och Make target. Klicka (KNAPP) Create - (MARKERA) all - (KNAPP) Build. Öppna konfigurationen Open External Tools Dialog... för att ändra OpenOCD SAM7 enligt figur 5. Figur 5: Öppna Open External Tools Dialog... Kontrollera att det ser ut som i figur 6 för OpenOCD SAM7.
Autonom Bandvagn 9 Figur 6: Inställningar för OpenOCD SAM7 Anslut andra ändan av utvecklingskortet till en dator så att den röda lampan lyser och klicka därefter på OpenOCD SAM7 för att skicka över main.bin till utvecklingskortet. Kontrollera att sista raden i (FLIK) Console, efter ca 20 sekunder innehåller orden wrote main.bin to flash. Observera att texten kan vara röd även fast lyckad skrivning genomförts!