Version 1.0 Projektgrupp: Tar-Get 2017-12-08 Status Granskad JH, JE 2017-12-07 Godkänd Beställare 2017-12-07
PROJEKTIDENTITET 2017/HT, Linköpings Universitet, ISY Gruppdeltagare Namn Ansvar Telefon E-post Daniel Arnström Mjukvaruansvarig 076-8312409 danar892@student.liu.se Adam Bergenhem Integrationsansvarig 073-2306520 adabe471@student.liu.se Joakim Ekström Hårdvaruansvarig 070-3312603 joaek309@student.liu.se Tim Fornell Designansvarig 072-3949005 timfo734@student.liu.se Dokumentansvarig 070-3915033 jacho926@student.liu.se Henrik Lillberg Projektledare 072-7331600 Gustav Magnusson Leveransansvarig 070-2876287 gusma061@student.liu.se Peter Mrad Testansvarig 076-2008523 petmr615@student.liu.se Johan Svensson Informationsansvarig 070-9187399 johsv660@student.liu.se E-postlista för hela gruppen: Hemsida: www.isy.liu.se/edu/projekt/tsrt10/2017/kolmarden Beställare: Christian A. Naesseth, Linköpings Universitet Telefon: +46 13 281087, Mail: christian.a.naesseth@liu.se Kund: Gustaf Hendeby, Linköpings Universitet Telefon: +46 13285815, Mail: gustaf.hendeby@liu.se Kursansvarig: Daniel Axehill, Linköping Universitet Telefon: +46 13 284042, Mail: daniel@isy.liu.se Handledare: Fredrik Ljungberg, Linköpings Universitet Mail: fredrik.ljungberg@liu.se
Innehåll Dokumenthistorik 1 1 Inledning 2 1.1 Parter...................................... 2 1.2 Definitioner................................... 2 2 Mjukvara och material 3 2.1 Material..................................... 3 2.2 Mjukvara.................................... 3 3 Uppstart 4 3.1 Uppstart av simuleringen............................ 4 3.2 Uppstart positioneringssystem......................... 4 3.3 Uppstart av drönare.............................. 5 3.4 Uppstart av GUI................................ 5 3.5 Uppstart av moduler.............................. 6 4 GUI 7 4.1 Uppdrag 1.................................... 8 4.2 Uppdrag 2.................................... 8 4.3 Uppdrag 3.................................... 8 4.4 Manuell Styrning................................ 8 5 Säkerhet 9 6 Batteriunderhåll och hantering 10 7 Felsökning 11
1 Dokumenthistorik Version Datum Utförda förändringar Utförda av Granskad 0.1 2017-12-04 Första utkast. Projektgruppen JH 0.2 2017-12-06 Korrigerat efter hanledarens Projektgruppen JE kommentarer 1.0 2017-12-07 Korrigerat efter beställarens kommentarer Projektgruppen JH, JE
2 1 Inledning Det här dokumentet är användarmanualen för projektet Följning av djur i Kolmården djurpark. Dokumentet är ett examinationsmoment i kursen Reglerteknisk projektkurs som ges av ISY vid Linköpings universitet under höstterminen 2017. Användarmanualen beskriver hur installation och användning av programvara och plattform ska utföras. 1.1 Parter Projektet innehåller följande parter Kund: Gustaf Hendeby, ISY Beställare: Christian Andersson Naesseth, ISY Handledare: Fredrik Ljungberg, ISY Examinator: Daniel Axehill, ISY Projektgruppens medlemmar 1.2 Definitioner En beskrivning av de begrepp som används i dokumentationen visas nedan. ROS: Robot Operating System. Plattform: Med detta menas quadcoptern med tillhörande hårdvara. Mål: Objekt som försöker lokaliseras av systemet. Produkt: Quadquoptern med tillhörande mjukvara som körs på en dator. Gazebo: Simuleringsverktyg.
2 Mjukvara och material 3 Nedan följer en beskrivning av vilken mjukvara och material som behövs för att kunna använda produkten. 2.1 Material För att använda produkten behövs följande komponenter: En dator (förslagsvis en bärbar dator) för att kunna köra mjukvaran. AR drone 2.0 utrustad med en wifi-länk samt en kamera riktad neråt. Lipo batterier samt tillhörande laddare. Observera att drönaren inte behövs om bara simuleringen ska köras. Datorn behöver även vara utrustad med wifi för att kunna kommunicera med drönaren. 2.2 Mjukvara Mjukvaran utgörs av ett GUI och en simuleringsmiljö som utvecklats. För att kunna köra GUI:t behöver datorn vara utrustad med operativsystemet Ubuntu v16.04 (64-bitar). Utöver Ubuntu behöver följande program vara installerade på datorn: ROS kinetic med paketet Desktop-Full och stöd för Gazebo QT för 64-bitars Linux v.5.9.3 Marble OpenCV v.3.2 C++11 Ska positioneringsystemet i Visionen användas behövs även: https://github.com/ KumarRobotics/motion_capture_system För att ansluta till drönaren behövs: ardrone_autonomy, https://github.com/ AutonomyLab/ardrone_autonomy (versionen för ROS indigo fungerar för ROS kinetic)
4 3 Uppstart Nedan finns instruktioner för hur de olika delarna av produkten startas. Ska inte AR drone 2.0 användas ska simuleringen startas enligt 3.1 följt av GUI:t och modulerna. Annars ska drönaren och positioneringsystemet startas enligt 3.2 och 3.3 följt av GUI:t och modulerna. 3.1 Uppstart av simuleringen Första gången ROS ska köras så ska steg 1-3 exekveras för att bygga upp de paket simuleringen behöver för att kunna köras. 1. $ cd ~/kolmarden/sim 2. $ source hector_dep.bash 3. $ catkin_make För att sedan starta simuleringen behöver man köra steg 1-2. 1. $ source devel/setup.bash 2. $ roslaunch goatsim_simulator simulation.launch 3.2 Uppstart positioneringssystem För att använda positioneringssystemet behövs tillgång till Visionen. För att starta systemet behöver följande göras på datorn i Visionen: 1. Starta upp Qualisys 2. Kalibrera systemet genom att starta qualisys och öppna ett nytt projekt. Klicka på ctrl+n och sedan ctrl+shift+alt+c. Innan man startar kalibreringen placerar man ut L-framen i mitten av rummet, med önskad x-led i riktning med den långa delen av L-framen. Starta sedan kalibreringen och gå runt sakta i rummet med kalibreringsspinnen tills kalibreringen avslutas. 3. Placera sedan drönaren i rummet och klicka ctrl+, och klicka därefter på acquire body. Lägg sedan till en till punkt, genom att klicka add point och gör denna till virtual. För att sedan få tillgång till den data positioneringssystemet ger behöver följande göras på den bärbara datorn (där GUI:t körs): 1. Installera ROS-paketet Motion Capture Systems av KumarRobotics. 2. Ändra IP-adressen i qualisys.launch till den som positioneringssystemet använder. IP-adressen kan hittas genom att skriva "ipconfig"i terminalen på Qualisys datorn. 3. Bygg paketet, mocap_qualisys, som innehåller det som behövs för användning av positioneringssystemet och kör $ roslaunch mocap_qualisys qualisys.launch
3.3 5 Uppstart av drönare För att starta drönaren ska följande göras: 1. Placera drönaren på marken och se till att propellrarna har fri rörlighet. 2. Spänn fast ett batteri och koppla ihop brytaren, se Figur 1. 3. Vänta på att drönaren initierats. Den är klar när ledlamporna lyser grönt. 4. Anslut datorn till drönaren genom att ansluta till det trådlösa nätverket ardrone_target. Figur 1: Batteriet på drönaren 3.4 Uppstart av GUI Då GUI:t använder meddelanden från ROS-paketet tracking måste detta paketet ha byggts och finnas tillängligt för att GUI:t ska kunna byggas. Därför måste följande kommandon köras första gången man bygger GUI:t: 1. $ cd ~/kolmarden/tar-get 2. $ catkin_make 3. $ source devel/setup.bash Sedan kan man bygga GUI:t med följade kommandon. 1. $ cd ~/kolmarden/gui 2. $ mkdir build -p 3. $ cd build 4. $ cmake.. 5. $ make GUI:t kan nu startas upp genom att köra $./gui.
6 3.5 Uppstart av moduler För att bygga och starta alla moduler körs kommandona 1. $ cd ~/kolmarden/tar-get 2. $ catkin_make 3. $ source devel/setup.bash 4. $ roslaunch target target.launch
7 4 GUI I den här delen beskrivs hur GUI:t är konstruerat och vilka funktioner det kan utföra. I Figur 2 visas hur GUI:t ser ut. Figur 2: GUI:t när manuell styrning är vald. GUI:ts olika delar beskrivs nedan. 1. Här väljs vilket uppdrag som ska köras eller om man vill köra manuellt. Nu är manuell styrning vald. 2. Vid manuell styrning används dessa knappar för att styra plattformen. Det går att styra plattformen åt alla håll samt rotera den. 3. Sätter en fartbegränsning för plattformen. 4. Knappar för nödstopp och för att beordra plattformen att landa. 5. En terminal som visar tidigare händelser. 6. Knapp för att spara bilden som visas i videoströmmen. 7. Visar en videoström från plattformens kamera i realtid. 8. Visar status för plattformens batteri, status för wifi-kontakten med plattformen samt plattformens fart och höjd. 9. En karta över nuvarande område. Visar plattformens position och alla mål med deras senast kända position. 10. Markörer för att visa osäkerhet för estimeringar och deras sanna positioner. 11. Alla mål visas i en lista. Om ett mål markeras blir det blått.
8 12. Om ett mål markeras visas information om målet. Målets koordinater, var det sågs senast och dess osäkerhet visas. 13. Knapp för att rensa estimeringar och därmed tömma listan med mål och knapp för att börja logga all data, som sedan sparas ner till en fil. 4.1 Uppdrag 1 Om användaren vill köra uppdrag 1 väljs detta under knapp 1. Därefter väljs det område som ska avsökas. Detta görs genom att klicka på fyra punkter på kartan, notera att linjerna dras i den ordning punkterna sätts ut. Genom att klicka på fyra nya punkter kan man välja ett nytt område och när området sedan känns lämpligt kan uppdraget startas med starta uppdrag -knappen. Då ritas den optimala trajektorian ut och drönaren följer den och markerar ut alla objekt som hittas under tiden. 4.2 Uppdrag 2 När flera mål har hittats, antingen via uppdrag 1 eller manuell styrning, kan uppdrag 2 köras. Uppdrag 2 väljs under uppdragsmenyn, när uppdraget startas börjar plattformen flyga mellan målen för att minimera osäkerheten hos målen. I GUI:t går det att justera om planeringsalgoritmen ska prioritera osäkerhet eller flygsträcka. 4.3 Uppdrag 3 Uppdrag 3 kan väljas på samma sätt som de andra uppdragen. Innan uppdrag 3 startas markeras en punkt på kartan som plattformen ska utgå från. Den markerade punkten synliggörs med en flagga på kartan. Sedan följer plattformen Arkimedes spiral, med den markerade punkten som startposition, tills ett mål detekteras och då följs målet istället. 4.4 Manuell Styrning För att styra plattformen manuellt ska användaren under uppdragsmenyn välja Manuell Styrning. När detta har gjorts syns alla knappar som är aktuella för den manuella styrningen. Om plattformen inte redan flyger krävs det att man först lyfter innan resterande kommandon fungerar.
9 5 Säkerhet Då plattformen kan orsaka skada på människor och omgivning listas nedan säkerhetsåtgärder som bör följas vid användning av plattformen. Dessa bör följas både för att förhindra att olyckor sker samt undvika onödig skada på plattformen [1] [2]. Barn under 14 år är ej lämpliga att använda plattformen. Vid inomhusbruk ska den medföljande karossen monteras för att undvika skador vid eventuell kollision. Operatören ska alltid hålla plattformen inom synhåll vid flygning. Användaren ska försäkra sig om att det är lagligt att använda plattformen där det planeras. Plattformens propellrar kan orsaka skada och därmed ska plattformen aldrig hanteras då den är aktiv. Plattformen bör ej framföras närmre än 1 meter från människor och ting. Undvik att framföra plattformen i trånga utrymmen. Undvik att flyga i närheten av farliga områden så som träd, byggnader eller högspänningsledningar. Undvik att flyga med plattformen vid dåliga meteorologiska förhållanden så som regn, snö, vind eller åska. Framför aldrig plattformen i närheten av starka radiovågor eller magnetfält. Minst två personer ska vara närvarande vid flygning. Vid flygning i Visionen på Linköpings Universitet ska de regler som gäller där följas.
10 6 Batteriunderhåll och hantering Batterierna bör hanteras varsamt för att farliga situationer inte ska uppstå. Följ instruktionerna nedan. Undvik direkt kontakt med batterier om de börjat läcka. Skulle ett batteri som börjat läcka komma i kontakt med huden, skölj noggrant med vatten. Skulle kontakt med ögonen uppstå så skölj noggrant med vatten och kontakta läkare. Skulle det börja lukta bränt under användning eller laddning så kassera batteriet. Om batteriet hanteras illa kan eldsvåda, explosioner eller elektriska stötar uppstå och gas kan utvecklas. Batteri ska endast laddas med den medföljande laddaren. Batteriet ska inte laddas om det finns skador på sladdar, laddare eller på batteriet. För att undvika överhettning ska batteriet inte överladdas. Undvik att ladda batteriet nära brandfarliga ämnen eller direkt efter det har använts. Batteriet ska alltid förvaras utom räckhåll för barn. Batteriet ska undvika kontakt med hetta, eld, vätska och fukt. Kortslutning av batterierna kan innebära värmeutveckling och hälsoskadlig gas. Detta bör därför undvikas. Lämplig förvaring av batteriet är i rumstemperatur. Batteriet ska vara urkopplat när det inte används. Laddaren ska vara urkopplad när den inte används.
7 Felsökning 11 Nedan listas några vanliga fel som kan inträffa och vad som kan göras för att åtgärda dem. Drönaren lyfter inte från marken: Detta beror troligtvis på att någonting blev fel när plattformen startade och åtgärdas oftast med att starta om den. GUI:t startar inte: Ibland kan det bli så att GUI:t inte startar, orsaken till varför är okänd. Men det löses oftast med att starta det igen. WiFi-kontakt till plattformen förloras: WiFi-styrkan minskar på många datorer när de har dåligt batteri och går in i energisparläge. Se därför till att ha fulladdat batteri vid körning. Glaset i visionen skulle även kunna störa wifi-signalen och därför rekommenderas öppen dörr. Efter initiering lyser plattformen rött och slår inte om till grönt: Detta löses genom att initiera om plattformen (batteriet dras ut och sätts in igen). Vid initiering ska plattformen stå stilla på marken. Om problemet kvarstår byt ut batteriet. Det går också att göra en reset på plattformen genom att batteri och GPS avlägsnas och ett smalt föremål används för att klicka på resetknappen. För att reset ska fungera måste batteriet vara anslutet. Kontakt till plattformen förloras: Detta kan lösas genom att initiera om plattformen och programvaran. Kontrollera att WiFi-anslutningen är korrekt.
12 Referenser [1] KvaddaKopter,, Autonom spaning med quadcopter, dec. 2014. [2] R. Ptarmigan, Användarmanual, Autonom målföljning med quadcopter, dec. 2015.