• No results found

Innovado: van rijdende machine naar autonome voerrobot

N/A
N/A
Protected

Academic year: 2021

Share "Innovado: van rijdende machine naar autonome voerrobot"

Copied!
150
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Innovado: Van rijdende machine naar autonome voerrobot

Ivor Wanders 6 februari 2017

(2)
(3)

1 Introductie 9

1.1 Context . . . 10

1.2 Opzet . . . 10

2 Analyse 11 2.1 Het voeren van een koe . . . 11

2.1.1 Probleem Specificatie . . . 12

2.1.2 Functionele eisen (Functional specification) . . . 12

2.1.3 Technische eisen (Technical specification) . . . 14

2.2 Huidig ontwerp . . . 15 2.2.1 Overzicht . . . 15 2.2.2 Aandrijving . . . 16 2.2.3 Sensoren . . . 16 2.2.4 Aansturing . . . 18 2.3 Executive Summary . . . 19 3 Literatuur Studie 21 3.1 Geschiedenis . . . 21 3.1.1 Jaren 1990-2000 . . . 21 3.1.2 Jaren 2000-2010 . . . 22 3.1.3 Jaren 2010-nu . . . 22

3.2 State of the art . . . 23

3.2.1 Perception . . . 23 3.2.2 Positiebepaling . . . 24 3.2.3 Path planning . . . 26 3.3 Executive Summary . . . 28 4 Localization 29 4.1 Aanpak . . . 29 4.2 ROS . . . 29 4.2.1 Assenstelsels . . . 29 4.2.2 URDF . . . 30 3

(4)

4.3 Prediction . . . 30

4.3.1 Sensoren . . . 30

4.3.2 ROS-ification . . . 32

4.3.3 Implementatie . . . 33

4.4 Correction . . . 33

4.4.1 Adaptive Monte Carlo Localization . . . 33

4.4.2 Landmarks . . . 35

4.4.3 Resultaten . . . 39

4.5 Conclusie & Recommendations . . . 43

4.5.1 Prediction . . . 43 4.5.2 Correction . . . 44 4.5.3 Totaal . . . 45 4.6 Executive Summary . . . 46 5 Pathfinding 47 5.1 Probleem omschrijving . . . 47 5.2 ROS . . . 47 5.2.1 Navigation . . . 48 5.2.2 Move Base . . . 48 5.2.3 Costmap . . . 49 5.3 Path planner . . . 49

5.3.1 Graph theory / Graaf theorie . . . 50

5.3.2 Open Motion Planning Library . . . 50

5.3.3 State Space . . . 52 5.3.4 Planners . . . 54 5.3.5 StructuredPlanner . . . 63 5.4 Path tracker . . . 64 5.4.1 Theorie . . . 64 5.4.2 Analyse . . . 65 5.4.3 Implementatie . . . 66

5.5 Conslusie & Recommendations . . . 69

5.5.1 Path planner . . . 69 5.5.2 Path tracker . . . 70 5.5.3 Totaal . . . 70 5.6 Executive Summary . . . 71 Appendices 73 A Lidar analyse 75 A.1 Introductie . . . 75

A.2 Gebruikte onderdelen en methoden . . . 75

A.3 Assenstelsels . . . 75

(5)

A.4.1 Beeld in Kuil 1 . . . 80

A.4.2 Draai uit Kuil 1 . . . 80

A.4.3 Zeil op weg van Kuil 1 naar Kuil 4 . . . 80

A.4.4 Kuil linksachter . . . 80

A.4.5 Bocht van kuilgebied naar stal . . . 80

A.4.6 Plein voor melkveestal . . . 85

A.4.7 In de melkveestal . . . 85

A.4.8 Rijden uit de stal . . . 85

A.4.9 Draai bij jongveestal . . . 85

A.4.10 Langs de voertuigstalling / voerreken . . . 85

A.4.11 Meer 3D . . . 92 B Lidar Tim 93 B.1 Introductie . . . 93 B.2 Geen detectiezones . . . 93 B.3 Methode . . . 93 B.4 Resultaten . . . 94 B.4.1 Kuilgebied . . . 94

B.4.2 Overige noteworthy aspecten. . . 96

B.4.3 Stal & plein . . . 98

B.5 Conclusie . . . 100 C ICT 101 C.1 Introductie . . . 101 C.2 Netwerk . . . 101 C.2.1 In vogelvlucht . . . 101 C.2.2 Netwerk opzet . . . 102 C.3 IPC setup . . . 104 C.3.1 Charlie . . . 104 C.3.2 Besturingssysteem . . . 104

C.3.3 Boot van extern medium . . . 105

C.3.4 Installatie . . . 105 C.3.5 Configuratie na installatie . . . 105 C.3.6 CAN . . . 106 C.4 Monitoring en logging . . . 109 C.4.1 Supervisor . . . 109 C.4.2 Loggers . . . 110 C.4.3 rsync . . . 112 C.4.4 expose_supervisor_to_vpn . . . 112 C.4.5 Status monitor . . . 113 C.5 ELK stack . . . 114

(6)

C.6.1 Tools . . . 117

C.6.2 Architectuur . . . 119

C.7 Interne adressen . . . 119

D Model OEDS 121 D.1 Introduction . . . 121

D.2 Description of the vehicle . . . 121

D.3 Used measurements . . . 122

D.4 Dead reckoning . . . 124

D.5 Extended kalman filter . . . 125

D.6 Sensor value calibration . . . 127

D.7 Results with the extended kalman filter . . . 128

D.8 Model with steering angle . . . 129

D.9 Tuning the filter . . . 130

D.10 Application in ROS . . . 133

D.10.1 Wheel encoders only . . . 133

D.10.2 With steering angle . . . 134

D.11 Results in ROS . . . 135

D.12 Kinematic description using the ICR. . . 137

D.12.1 Only front wheels . . . 137

D.12.2 Taking all wheels into account. . . 139

E Robot Operating System 141 E.1 Introductie . . . 141 E.2 catkin_tools . . . 141 E.3 Clang . . . 141 E.4 roslint . . . 142 E.5 map_server . . . 142 Acroniemen 149

(7)

De afgelopen twee jaar heb ik een Profesional Doctorate in Engineering (PDEng) traineeship volbracht. Dit bood mij de mogelijkheid om mij nog twee jaar te kunnen ontplooien als medewerker bij de vak-groep Robotics and Mechatronics aan de Universiteit Twente. Het bedrijf Schuitemaker verzorgde de opdracht van het PDEng traject: Het komen tot proof of concepts voor de volgende generatie INNOVADO. De INNOVADOis een autonoom voertuig wat volledig automatisch koeien voert op melkveebedrijven.

Na dit voorwoord volgt een echte introductie van de opdracht en dit verslag. In dit voorwoord wil ik graag ook enkele woorden van dank uitspreken. Ik zou een hele lijst mensen willen bedanken, iets wat in PhD thesis gangbaar is. Gezien de vertrouwelijke aard van dit verslag zouden veel mensen dit echter nooit kunnen lezen. Daarom zal ik mijn best doen iedereen mondeling te bedanken en beperk ik me tot mensen die dit wel zullen kunnen lezen.

Ten eerste aan Stefano voor het aanbieden van deze PDEng assignment aan mij, je eindeloze enthousi-asme en wijze woorden tijdens onze meetings. Rob; voor het uitleggen van veel zaken waar een WO’er geen weet van heeft en het luisteren naar mijn dagelijkse tegenslagen en vooruitgang. Herman (en Schuitemaker als geheel) zou ik graag willen bedanken voor het aanbieden van deze PDEng assignment. Tot slot zou ik de organisatie van het PDEng programma vanuit de UT willen bedanken: Peter, voor elk vriendelijk antwoord dat ik kreeg als ik weer iets had gevonden in de programme guide; Timo/Arno: Voor de mogelijkheid om voor het eerst met de pers in aanraking te komen.

Ik heb de afgelopen twee jaar erg veel kunnen leren en ben blij dat ik hier veel ruimte en vrijheid in heb gekregen. Ik hoop dat mijn werk een richting heeft kunnen geven aan toekomstige ontwikkelingen. Maar ik vertrek wetende dat ik ook nu al een zeer nuttige bijdrage heb geleverd en dat een deel van mijn werk voorlopig zeker nog in gebruik zal blijven: onder ander in de routeplanner, logging & analyse en randzaken als ICT infrastructuur en tools.

Herman, Rob, Hans, Tim, Guus, Tom, het was me een genoegen om met jullie samengewerkt te hebben aan dit project. Ik wens elk van jullie veel voorspoed toe en succes in de toekomst met alle innovatieve projecten waar jullie de schouders nog onder gaan zetten!

Ivor Wanders 6 februari 2017

(8)
(9)

Introductie

Het bedrijf SCHUITEMAKERin Rijssen werkt al sinds 1918 aan machines voor de professionele agrarische industrie. De eerste ontwikkeling van eigen producten begon na de tweede wereld oorlog na het identificeren van grote verbeterpunten in - toentertijd - huidige producten op de markt. Sindsdien heeft SCHUITEMAKERnaam gemaakt in het topsegment van machines voor de agrarische industrie. Vooral kwaliteit staat erg hoog in het vaandel. Maar ook het luisteren naar de markt en inspringen op technologische ontwikkelingen hebben er voor gezorgd dat SCHUITEMAKERal bijna een eeuw een vooraanstaande partner is voor betrouwbare en degelijke producten.

Met oog op de toenemende automatisering in de industrie en het beter worden van de technologie begint SCHUITEMAKERaan de ontwikkeling van de INNOVADO. Dit is een robot die volledig autonoom de koeien voert en alle noodzakelijke taken hiervoor afhandeld; van kuil naar koe. Deze volledig autonome voerrobot wordt in 2008 gepresenteerd aan de wereld, de vooruitstrevendheid en vraag naar dit product wordt direct benadrukt door het winnen van de Gouden Medaille van de Deutsche Landwirtschafts-Gesellschaft. Sindsdien is er hard gewerkt aan het verbeteren van het prototype en productie-klaar maken van deze machine.

Voortschrijdende ontwikkelingen op het gebied van zelfrijdende auto’s en voertuigen leiden tot de vraag of deze nieuwe technieken toe te passen zijn in de INNOVADO. Om dit te onderzoeken en testen wordt externe expertise aangetrokken in de vorm van het uitschrijven van een opdracht voor een Professional Doctorate in Engineering (PDEng), hierbij wordt samenwerking gezocht met de vakgroep Robotics and Mechatronics aan de Universiteit Twente.

(10)

1.1

Context

De PDeng opdracht over de INNOVADOheeft tot doel antwoorden te vinden op de volgende deelvragen: 1. Is it possible to navigate safely on base of other technologies (vision?), consequently the

trans-ponders and GPS are not required anymore?

2. Is it possible to replace or optimize the current object detection and safety system by means of other technologies? (vision?)

3. Is it possible to let the system solve simple problems by itself, such as finding alternative routes if necessary?

4. Is it possible for the system to autonomously map the farm, making it unnecessary to write customer specific software.

5. Is it possible to bring the failure level to an acceptable standard?

Ruwweg zijn de bovenstaande deelvragen onder te verdelen in twee vraagstukken:

1. Positiebepaling van de robot, kijkend naar alternatieven voor GPS of transponders, idealiter gecombineerd met het in kaart brengen van de omgeving.

2. Het vinden van een pad naar de bestemming, daarbij rekening houdende met de in het eerste punt bepaalde positie en omgeving.

1.2

Opzet

Dit verslag begint met een hoofdstuk waarin het concept van de INNOVADOgeanalyseerd wordt. De eisen worden besproken en er wordt toelichting gegeven over zaken die komen kijken bij het voeren van melkvee. Vervolgens volgt er een korte literatuurstudie. Daarna wordt een hoofdstuk gewijd aan de deelvraag van de positiebepaling en het werk wat hieraan verricht is. Hierop volgt een hoofdstuk wat ingaat op de path planning en de bijbehorende zaken. Elk van deze hoofdstukken bevat een ‘Executive Summary’ wat een korte Engelse samenvatting is van de meest belangrijke punten uit dit hoofdstuk. Tot slot bevat het rapport enkele appendices die op zich zelf staand werk bevatten: een initiele analyse van de data, vergelijking van de TiM laser scanner, beschrijving van de opzet van ICT systemen om tot dataacquisitie te komen en beschrijving van het modelleren van het voertuig.

(11)

Analyse

Het doel van het INNOVADOproject bij SCHUITEMAKERis het creeëren van een autonoom voer systeem voor gebruik in de veehouderij industrie. Voordat er een systeem wat hiertoe in staat is ontwikkeld kan worden of naar de toekomst gekeken kan worden is het zaak om eerst een goede probleem beschrijving te hebben en een eisenpakket te formuleren.

Dit hoofdstuk zal eerst een beknopte beschrijving geven van de verschillende zaken die komen kijken bij het voeren van koeien bedoeld voor de melkproductie. Vervolgens zal het de functies die het systeem moet vervullen beschrijven, waar na de technische specificatie omtrent deze functies gegeven kan worden. Deze functies en de technische specifiecatie zal oplossingsonafhankelijk zijn. Hierop volgt een beschrijving van het huidige ontwerp en de ontwerp specifieke eisen.

2.1

Het voeren van een koe

Het voeren van koeien bestaat uit de volgende taken: Uit een of meerdere voerkuilen moet voeder opgehaald worden en in een mengton ingebracht worden. Uit verschillende voer-silo’s moet poeder of vloeistof ingeladen worden, dit alles moet gemengd worden. Vervolgens kan dit voer verdeeld worden over de stal, door de stal loopt een voergang waar het voer op de grond wordt gegooid en de koeien aan de zijkant(en) staan te eten. Voeren geschied meerdere malen per dag, minstens 3 keer, meer dan dat is wenselijk omdat het de kwaliteit van het voer - en dus de productie - ten goede komt. Het voer wat in de stal op de grond ligt moet geregeld aangeschoven worden zodat het weer binnen bereik van de koeien is.

In een veehouderij zijn koeien over het algemeen verdeeld over groepen. Het hoofdonderscheid is tussen drie groepen runderen. De groep melk koeien zijn de koeien die momenteel melk geven. De droge koeien, welke in verwachting zijn en momenteel geen melk geven. De derde groep zijn de jonge runderen.

• Één melk koe vereist 50 kg voer per dag • Één droge koe vereist 40 kg voer per dag • Één jong rund vereist 25 kg voer per dag

• Een indicatieve koeien stal is 65 meter lang en bevat 100 koeien.

(12)

Het dient de vermelding dat de tijd tussen het aansnijden van het voer in de kuil en het uitrijden bij de koeien minimaal dient te zijn. Zodra dit voer aangeroerd is zal er zuurstof bijkomen en kan er een rottingsproces beginnen, wat gepaard kan gaan met broei. Het voer in een kuil wordt in laagjes opgeslagen, het gras van goede en minder goede kwaliteit wordt zo verdeeld over de gehele kuil. Het afsnijden van een verticale plak zorgt dan ook voor voer van homogene kwaliteit, wat de voorkeur heeft. Er zijn ruwweg drie verschillende machines voor voeren te onderscheiden, in het simpelste geval wordt een voerwagen gebruikt, dit is een aanhanger die achter een tractor gehangen wordt welke een lopende bandje aan de zijkant heeft om het voer uit te rijden. Deze aanhanger heeft al dan niet een eenvoudig mengsysteem, het inladen gebeurt handmatig door er voer met een shovel in te gooien. De laatste taak kan ook vervuld worden door de voerwagen zelf, een zelfladende voerwagen heeft een een mechanisme om voer in te kunnen laden zonder shovel. De volgende stap is een zelfrijdende voerwagen, waar het inname mechanisme en de tractor gecombineerd wordt in een machine. Deze geavanceerdere machines zijn enkel door grote bedrijven of loonbedrijven economisch.

2.1.1

Probleem Specificatie

Uit het in sectie 2.1 beschreven voerproces zijn de volgende functies te onderscheiden. Dit zijn dan ook de functionele eisen die gelden voor het systeem.

2.1.2

Functionele eisen (Functional specification)

De functionele eisen bepalen welke functies het systeem moet gaan vervullen. Deze taken worden vervolgens onderverdeeld in de functionele specificatie, welke voor elke taak beschrijft wat er gedaan moet worden.

Taken

Het autonome voedersysteem moet de volgende taken gaan vervullen: • Innemen

– Innemen materiaal uit voerkuil – Innemen materiaal uit silo’s

– Mengen van de ingenomen materialen • Voeren

– Verdelen nieuw voer over stal – Aanschuiven voer in stal

Traditioneel worden deze taken door de veehouder vervuld.

Specificatie innemen

De functionele eisen voor het innemen van voer zijn dan de volgende: – Innemen materiaal uit voerkuil

* Het apparaat moet kunnen omgaan met verscheidenen typen kuilvoer. Bijvoorbeeld gras (erg hoge dichtheid), mais en bietenpulp (lagere dichtheid).

(13)

* Het apparaat kan omgaan met verschillende kuilhoogtes.

* Inname van materiaal op de grond moet mogelijk zijn om verspilling te minimaliseren. * Minimale aanpassingen aan kuil.

* Bij het innemen van het voer moet de kans op letsel geminimaliseerd worden. – Innemen materiaal uit silo’s

* Het apparaat moet zich voor inname onder de silo positioneren. * Inname moet geschieden met minimale aanpassingen aan de silo zelf.

* Zowel vloeibaar als poedervormig materiaal moet ingenomen kunnen worden. – Mengen van de ingenomen materialen

* De volledige inhoud moet tot een homogeen mengsel gemengd worden. * Gepaard met de homogeniteit moet het materiaal een zekere fijnheid bereiken.

Specificatie voeren

De eisen met betrekking tot het voeren van koeien met het apparaat.

– Verdelen nieuw voer over stal

* Verschillende delen van de stal moeten verschillende hoeveelheden voer kunnen krijgen. * Per deel moet het voer gelijkmatig gedistribueerd zijn.

* Er moeten geen aanpassingen vereist zijn aan de stal. • Aanschuiven voer in stal

* Voer dat in de voergang ligt moet aangeschoven worden naar de koeien toe.

* Zowel de linker als rechterkant van de voergang moet in één keer aangeveegd kunnen worden.

Specificatie algemeen

Er zijn ook nog enkele eisen te stellen die algemeen zijn en ten alle tijden gelden.

– Indien het apparaat tegen mensen, dieren of materieel aan rijdt moet er geen schade zijn. – Het apparaat moet obstakels kunnen herkennen en op tijd handelen zodat deze niet geraakt

worden.

– Indien er obstakels op het pad gedetecteerd zijn moet het systeem in staat zijn een alternatief pad te bepalen en volgen.

(14)

2.1.3

Technische eisen (Technical specification)

De volgende waarden stellen eisen aan hoe de taken van de INNOVADOuitgevoerd moeten worden. • Opname voer uit voerkuil en (sleufsilo) met 5% tolerantie in gewicht.

• Opname voer uit silo met 15% tolerantie in gewicht. • Een INNOVADOvoert maximaal 900 koeien

• Voerbeurten / aanschuiven per dag: – Melk groep: 3 / 6

– Droge groep: 2 / 4 – Jongvee groep: 1 / 2

De technische eisen de gesteld worden aan het voertuig zijn te vinden in tabel 2.1.

Naam Waarde Uitkuilen Snijbreedte = wagenbreedte 2000 mm Kuilhoogte 5 m Capaciteit 250 kg min−1 Overlap 10 %

Eisen rijdend apparaat

Lengte 6.5 m Breedte 2 m Hoogte 2.9 m Gewicht leeg 8000 kg Laadvermogen 2500 kg Inhoud 6 m3 Draaicircel 12 m Verharde ondergrond ja Sneeuwvrij ja Vlakheid erf 15 cm op 1.5 m Vlakheid Kuil 4 cm op 1.5 m Vlakheid Stal 1 cm op 1 m Helling 6 % Veilige rijsnelheid 1.8 km h−1 Max rijsnelheid 6 km h−1 Positionering) kuil - lateraal 0.05 m kuil - frontaal 0.05 m erf - lateraal 0.50 m erf - frontaal 0.10 m stal - lateraal 0.10 m stal - frontaal 0.10 m

(15)

(a) Linker voorkant (b) Rechter achterkant

Figuur 2.1: Foto’s van het huidige INNOVADOprototype.

2.2

Huidig ontwerp

Meerdere bedrijven zijn bezig met technieken en manieren om het voeren te automatiseren. De meeste bedrijven (LELY[49], TRIOLIET[85], GEA FARMTECHNOGOLIES[78]) werken hierbij enkel aan een oplossing voor het voeren. Het innemen van voeder wordt niet geautomatiseerd en moet dus handmatig gebeuren, meestal houdt dit in dat het voer ingeladen moet worden in het systeem, zodat het klaarstaat op een centraal punt en door de machine verwerkt kan worden.

De wens van SCHUITEMAKERis dan ook om een grote innovatie stap te maken en ook het innemen van voer te automatiseren. Het ontwerp is gemaakt met de volgende filosofie:

• Minimale veranderingen aan het erf, • volledig autonoom,

• van kuil naar koe, • veilig & betrouwbaar.

Dit heeft er toe geleid dat er een rijdend apparaat ontwikkeld is wat autonoom opereerd. In feitte automatiseerd dit apparaat de technieken die de veehouder zelf zou toepassen. Het apparaat rijdt naar het voer in de kuilen, haalt daar ruwvoer op, rijdt vervolgens naar de silo’s waar de laatste ingrediënten van het voer opgehaald worden. Vervolgens worden alle materialen in de kuip gemengd en rijdt het apparaat het voer zelf uit. Ook is het apparaat in staat om voer wat in de stal ligt aan te schuiven richting het voerhek.

2.2.1

Overzicht

Het huidige prototype is te zien in afbeelding 2.1.

Het kuilmateriaal wordt in de machine geladen door de (gele) arm die naar voren klapt en het ingekuilde materiaal afsnijd en opneemt met een lopende band. Dit komt vervolgens terecht in de rode mengkuip,

(16)

voorkant

Figuur 2.2: Huidige wielconfiguratie van de INNOVADO.

waar ook twee meng spindels in gemonteerd zitten. Na het inladen van materiaal uit de voerkuil rijd het apparaat onder de voersilo’s en een bepaalde hoeveelheid materiaal in de kuip wordt gestort. Hierna wordt het mengproces gestart door de meng-spindels gedurende een bepaalde tijd te laten draaien. In de stal wordt de zijwaartse lopende band gebruikt om het voer uit de kuip te geleiden.

2.2.2

Aandrijving

Het huidige prototype heeft de wielen zoals te zien is in figuur 2.2. Er is een vaste niet aangedreven -as aan de voorkant van de machine, aan de achterkant is een aangedreven zwenkwiel gemonteerd wat zorgt voor de aandrijving en sturing. Alle bewegende onderdelen worden bewogen door middel van hydrauliek, de vereiste druk hiervoor wordt opgebouwd met een dieselmotor.

Vroeger beschikte het voertuig zowel voor als achter over stuurbare wielen, maar dit leverde toentertijd problemen op met het inrijden van de kuil omdat er niet vanuit stilstand geroteerd kon worden. Hierop is gewisseld naar sturing met de roterende achterwielen. Deze wielconfiguratie maakt het mogelijk om een zogenaamde ‘Tellerwende’ uit te voeren. Dit houdt in dat er om de voorwielen geroteerd wordt door het achterwiel loodrecht op de voorwielen te zetten.

Een extra overweging waarom deze wielconfiguratie is gekozen is omdat de huidige stuurcomputer goed overweg kan met deze setup. In het nieuwste prototype - eigenlijk de 0-serie - is de mogelijkheid voor een tellerwende weer verdwenen, de maximale stuurhoek is gelimiteerd op 60 °. Dit omdat de straat erg beschadigd werd door deze rotatie op zijn plek. Ook is in veel gevallen deze scherpe stuurmogelijkheid niet noodzakelijk.

2.2.3

Sensoren

Om veilig autonoom rond te rijden is input van verschillende sensoren nodig. Met deze sensoren moet zowel de positie bepaald worden als de veiligheid gewaarborgd zijn.

GPS

In het gebied op afstand van de bebouwing - waar de voerkuilen te vinden zijn - wordt gebruik gemaakt Global Positioning System (GPS) systemen, om precies te zijn van Real Time Kinematic Differential GPS (RTK-DGPS). Deze techniek maakt gebruik van een basestation waarvan de positie bekend is om een correctie te kunnen toepassen op het ontvangen signaal. De basestation ontvangt dezelfde GPS signalen van de satellieten als de bewegende ontvanger. Door verbinding (meestal mobiel internet

(17)

als GPRS of 4G) tussen de bewegende ontvanger en de basestation is het mogelijk om met behulp van onder andere de fase van de GPS-radiogolven de positie veel preciezer uit te rekenen. De positie bepaling kan zo zeer nauwkeurig zijn, met afwijkingen van minder dan 2.5 cm [17].

Om dit correctie signaal te kunnen gebruiken moet er een abbonement betaald worden en moet er verbinding mogelijk zijn met de servers van de aanbieder, hiervoor wordt draadloos internet gebruikt via het telefoon netwerk. Er worden twee GPS ontvangers gebruikt zodat ook hoekbepaling mogelijk is, de positie van de sensoren is te zien in figuur 2.3. De kosten zijn hoog, dure antennes en receivers zijn vereist.

Transponders

De positiebepaling rond en in gebouwen is niet mogelijk met GPS omdat het zicht naar satellieten - en dus de ontvangst van de signalen - niet goed genoeg is. Om zonder GPS toch betrouwbaar te navigeren wordt gebruik gemaakt van transponders. Deze transponders werken door middel van Radio-frequency identification (RFID), de transponders worden op het pad aan de vloer bevestigd. Op het mobiele platform zit een sensor die in staat is de transponders tot 25 cm uit te lezen. Het voertuig weet van elke transponder waar deze zich bevind en kan zodoende zijn positie bepalen. Voor een goede positiebepaling is het van belang dat de transponders om de 1.5 m gemonteerd zijn.

Tussen de transponders in wordt genavigeerd door middel van dead reckoning, dit is een techniek waarbij de huidige positie wordt bepaald op basis van de vorige bekende positie, de snelheid en richting. In de INNOVADOwordt gebruik gemaakt van encoders op de wielen om de afgelegde weg en snelheid te meten.

Laser range scanners

De INNOVADOis uitgerust met vier LIDARs range scanners, de montage van deze is te zien in figuur 2.3. Deze sensoren meten de tijd tussen het versturen van een laser puls en het ontvangen van de reflectie van deze puls op een object. Door de afstand te meten met een roterende sensor en tussen elke meting de sensor een kleine hoek (0.5 of 0.25 °) te verdraaien is het mogelijk om in een vlak de afstand tot het eerste oppervlak te bepalen. Deze afstandsbepaling wordt met 50 Hz uitgevoerd, de bepaalde afstand is nauwkeurig tot op enkele centimeters.

De kwaliteit van de meting is afhankelijk van de reflectiviteit van het geraakte oppervlak, bij materialen met een hogere reflectiviteit is het beter mogelijk om de afstand te bepalen dan bij materialen die de uitgezonden puls volledig absorberen.

Deze sensoren worden in het huidige prototype gebruikt om detectie zones in te stellen, deze worden gebruikt om te detecteren of er obstakels op het pad zijn, vervolgens wordt het voertuig afgeremd of stilgezet. Voor het bepalen van de kuilhoogte zouden deze scanners ook bruikbaar kunnen zijn, momenteel wordt deze hoogte echter met de hand ingevuld per kuil.

Bumpers

Aan alle vier de zijden van het voertuig zijn bumpers bevestigd welke indien ingedrukt een signaal geven dat de bumper ingedrukt is en de machine tot stilstand moet komen. Deze bumpers moeten op dusdanige afstand van de machine gemonteerd zijn dat het voertuig tot stilstand kan komen voordat de bumper volledig ingedrukt is. Deze bumpers zijn vereist om te voldoen aan NEN:1525:1997 [64].

(18)

GPS

lidar

bumpers

Figuur 2.3: Photographs of the current prototype with the sensors annotated.

Gyroscoop & encoders

Voor de positiebepaling wordt naast GPS en transponders ook gebruik gemaakt van een gyroscoop en encoders op de wielen.

De gyroscoop wordt gebruikt om een bijdrage te leveren aan de precisie van de dead reckoning navigatie in het transponder gebied. De gyroscoop helpt de rijrichting te bepalen tussen de transponders. De rotatiesensoren op de assen van de voorwielen worden hier ook voor gebruikt.

2.2.4

Aansturing

Er zijn drie systemen die samenwerken voor het aansturen van het huidige prototype. De eerste is een Programmable Logic Controller (PLC) die verantwoordelijk is voor het aansturen van de hydraulische kleppen. Het tweede ondredeel is een stuur computer die specifiek gemaakt wordt voor het navigeren en besturen van autonome voertuigen. De derde is een computer die ook gebruikt wordt als systeem voor de boer om input te geven.

PLC -BODAS

Deze Programmable Logic Controller (PLC) is verantwoordelijk voor de algemene programmering van de INNOVADO, alle handelingen die noodzakelijk zijn voor het innemen en verwerken van voer en het voeren van koeien worden aangestuurd door deze PLC. Dit onderdeel bepaald waar de INNOVADO

heen moet rijden en vervolgens welke handelingen daar verricht moeten worden, deBODASis ook

verantwoordelijk voor de aansturing van het hydraulische systeem, bijvoorbeeld voor het bedienen van de inname arm en het mengen van het voer.

De PLC ontvangt de voerinstelling waarin staat hoeveel van elk materiaal er gemengd moet worden en hoeveel kilo’s er op welke plek in de stal uitgereden moet worden. Vervolgens doorloopt deBODAShet programma om dit uit te voeren.

Het uitlezen van de laser scanners en actie ondernemen op basis van deze waarde om de veiligheid te waarborgen behoort ook tot de taken van dit onderdeel. De bumpers vormen met behulp van veiligheids relays het officiele veiligheidssysteem. Dit systeem werkt dus buitenBODASom.

(19)

Stuur computer - GÖTTING

De GÖTTINGstuurcomputer is speciaal gemaakt voor autonoom opererende voertuigen. Er wordt gebruik gemaakt van van tevoren gedefinieerde tracks die ingemeten worden en opgeslagen in het geheugen van de stuurcomputer.

Als deBODASopdracht geeft om naar een bepaalde track te rijden bepaald de GÖTTINGstuurcomputer welk pad afgelegd moet worden om daar te komen en wat het eerst volgende coordinaat is waar heen gereden moet worden. Vervolgens wordt een stuurhoek en een snelheid berekend en worden deze aan deBODASdoorgegeven. Deze is vervolgens verantwoordelijk voor het bedienen van de hydraulische kleppen om de gewenste stuurhoek en snelheid te bereiken.

De sensor fusion van de GPS, gyroscoop, encoders en positiebepaling door transponders vindt ook plaats in dit onderdeel. Indien te ver van de - vooraf ingeprogrammeerde - tracks afgeweken wordt geeft het systeem een error-signaal aan deBODASen komt het systeem tot een stop.

Industrial Personal Computer (IPC)

Om de gebruiker instructies aan het systeem te laten geven wordt er gebruik gemaakt van een website. Deze website wordt gehost op een Industrial Personal Computer (IPC) die in de INNOVADObevestigd is. Deze IPC verzorgt ook de logging van verschillende parameters en zorgt datBODASaangestuurd wordt aan de hand van de voerinstructies. Deze IPC is bereikbaar via internet op een vast ip adres.

2.3

Executive Summary

In this chapter two main topics were discussed. It was explained how diary cows are fed and what requirements this places on the developed system. The INNOVADOdeveloped by SCHUITEMAKERwas also introduced.

In 2.1 the feeding requirements of diary cows were discussed. Cows that produce milk need about 50 kg of food per day. This food often consists of multiple ingredients which need to be weighted precisely and mixed together before being distributed to the cows. Once the food is in reach for the cows they themselves push it out of reach, which requires the farmer to shove it back to the fence. Feeding little amounts but more often increases milk production — and as such —is preferable. The INNOVADO

attempts to do all of this.

To meet these requirements the system should be able to take in food at the sillage clamp. The sillage clamp consists of densely packed material such as grass or corn pulp. The system should be able to autonomously take in material from the silage clamp. Besides this it must be able to pick up loose material or collect additives from dispensing silo’s. The system is required to mix these materials thoroughly before distributing them in the barn. In the barn the system should also be able to perform a shoving action. It should be able to do all of this safely and autonomously without human interaction. The second topic treated in this chapter was the description of the INNOVADOsystem developed by SCHUITEMAKER. The INNOVADOis a vehicle that drives around autonomously on the farm. It has a cutting frame to cut slices from the sillage clamp, a screw is used to transport the grass or loose material to a conveyor belt which loads it into the vehicle. It has a large mixer tub with mixing screws to mix the collected materials. The vehicle has four wheels, the axis of the front wheels are connected rigidly to the frame, the rear axis is actuated and can be rotated to steer.

The vehicle has several subsystems aboard which allow it to operate autonomously. It has a industrial grade PC which deals with the high level interface such as providing the webinterface for the farmer. This PC in turn communicates to the PLC (‘BODAS’) which controls the main operation of the vehicle,

(20)

it controls the hydraulic valves and gives instructions to the guidance system created by ‘GÖTTING’. This navigation system localizes by means of transponders indoors and RTK-DGPS outdoors. It has predetermined routes composed of segments, these segments are followed in order to get from A to B. In order to prevent the vehicle from hitting obstacles it is equipped with four SICK LMS111 laser scanners which provide a planar scan of the surroundings. Bumpers are attached to the vehicle on all sides. When triggered, these bumpers close a safety circuit which in turn shuts down the engine powering the vehicle.

(21)

Literatuur Studie

Er wordt al jaren gewerkt aan het autonoom laten rijden van voertuigen. Het is dan ook verstandig om te lezen hoe andere bedrijven en onderzoeksgroepen dit probleem aanpakken en welke technieken zij toepassen.

Veelal zijn deze onderzoeken gericht op het autonoom laten rijden van een auto op de openbare weg, dit is een doel waarbij veel meer komt kijken dan het autonoom rijden op een erf, wat een relatief beschermde omgeving is vergeleken met de openbare weg.

In dit deel worden eerst enkele noemenswaardige projecten in het verleden beschreven alvorens de state-of-the-art wordt gepresenteerd. Dit is een literatuur studie naar de huidige stand van techniek en bestaande methoden.

Dit is niet bedoeld als een allesomvattende beschouwing van autonome voertuigen. Het is bedoeld als een beknopte beschouwing van de belangrijkste ontwikkelingen op dit gebied bedoeld voor mensen die beginnen zich in het gebied te verdiepen.

3.1

Geschiedenis

Hier volgt een korte vermelding van enkele bekende projecten die in het verleden hebben plaatsgevon-den omtrent autonoom rijplaatsgevon-den van auto’s.

3.1.1

Jaren 1990-2000

De eerste significante stappen naar autonoom rijdende voertuigen werden gezet in de jaren negentig. De Carnegie Mellon universiteit presenteerde hun Navlab voertuigen, waarvan het doel was dat deze buiten autonoom konden rijden om post te bezorgen [80]. De Duitse Universität der Bundeswehr München boekte vooruitgang met het gedeeltelijk autonoom rijden van een auto op de snelweg op basis van computer vision. Ze testte in samenwerking met Daimler-Benz een auto die autonoom van rijstrook kon wisselen en andere auto’s kon detecteren. De systemen die hiervoor ontwikkeld werden zijn ondertussen ook terug te vinden in productieauto’s; Lane Departure Warnings en Adaptice Cruise Control [55].

(22)

3.1.2

Jaren 2000-2010

In 2002 kondigde het Defense Advanced Research Projects Agency (DARPA) van de Verenigde Staten de ‘DARPA Grand Challenge’ aan. Deze wedstrijd werd op 13 maart 2004 gehouden, het doel was om een voertuig 230 km door de woestijn te laten rijden. Dit moest gebeuren zonder communicatie of aansturing door mensen [20]. Er schreven zich 107 teams in, waarvan er 15 bij de start mochten verschijnen. Van deze 15 kwam geen enkel team verder dan 5% (11.78 km van de 250 km) van het af te leggen traject[22]. Op 8 october 2005 werd de wedstrijd nog een keer gehouden, van de 23 startende teams haalden er 5 de finish [84]. In 2007 volgde er een derde race, de DARPA urban challenge [21], waarbij het doel was om autonoom een bepaald traject af te leggen over een test-parcour lijkend op gewone stedelijke omgeving. Hierbij moest rekening gehouden worden met verkeersregels en andere auto’s op de weg. Van de 11 startende teams legde 6 teams met succes het parcour af. Deze DARPA challenges zijn nog steeds een veel aangehaalde event in de ontwikkelingen van autonome voertuigen, dit komt door de significantie van deze wedstrijden. Door deze prestigeuze wedstrijden is de ontwikkeling in een stroomversnelling gekomen.

In Nederland loopt er sinds 1999 een project genaamd PARKSHUTTLE, dit is een pendelbus die auto-noom zijn traject aflegt. Hierbij wordt gebruik gemaakt van elektronische geleiding, bussen rijden op een aparte busbaan waar enkel deze pendelbussen op rijden [1]. Alhoewel misschien niet zo specta-culair geeft het zeker aan dat er onderzoek naar word gedaan en zeker ook interesse vanuit de markt is.

In Europa wordt sinds 2006 het jaarlijkse European Land-Robot trial (ELROB) gehouden [23], de eerste keer werd dit georganiseerd door het Duitse leger. Het doel hiervan is om een demonstratieplatform te creeëren waar de huidige mogelijkheden in de robotica toegepast en getoond worden. Het is niet bedoeld als competitief platform, zowel academische als commerciele teams mogen meedoen, inschrijving is echter enkel voor Europese teams. De uit te voeren scenario’s zijn divers, varieërend van het in kaart brengen van straling in een vervallen gebouw tot het volgen van andere voertuigen of ophalen van een gewonde soldaat. Om het jaar alterneerd het thema tussen militaire en civiele toepassingen.

3.1.3

Jaren 2010-nu

Verdere successen volgde recenter, in 2010 organiseerde VisLab, een onderzoeks groep van de universi-teit van Parma de VisLab Intercontinental Autonomous Challenge (VIAC). De onderzoeks groep had zichzelf deze uitdaging gesteld, hun doel was het extensief en langdurig testen van hun autonome busjes. Het doel was om 13 000 km af te leggen van Parma naar de 2010 World expo in Shanghai. In tegenstelling tot de DARPA challenge werd er hier geen gebruik gemaakt van een van tevoren met coordinaten bepaalde route. Door de lange lengte en wisselende route keuze was dit niet haalbaar. Het voorste voertuig werd tijdens delen van de reis met de hand bestuurd, de overige vier voertuigen deze vervolgens autonoom op basis van computer vision, GPS en LIDAR [8]. De data die de sensoren hebben opgenomen tijdens deze tocht is opgeslagen om te gebruiken als test set voor onderzoek in de toekomst [5].

Bekend is Google’s autonome auto project. Dit alom bekende project is bedoeld om personen auto’s autonoom te laten rijden in en stedelijke omgeving, deze auto’s hebben tot nu toe al meer dan een 700 000 mijl gereden zonder dat ze ongelukken of fouten hebben gemaakt [6]. Wat echter wel belangrijk is om te vermelden is dat voordat deze auto’s ergens kunnen rijden, de weg van tevoren gescanned (zowel diepte als beeld) moet worden. Deze scans worden vervolgens door mensen en computers verwerkt en alle relevante dingen zoals uitritten en stoplichten te markeren. Dit is vereist zodat de auto vervolgens deze weg autonoom kan rijden [70].

(23)

In Duitsland heeft de Freie Universität Berlin sinds 2011 gewerkt aan een voorgzetting van het AutoNO-MOS project, hierin wordt er gewerkt aan een drietal autonome auto’s. In 2006 heeft een van deze auto’s de semi finals van de DARPA urban challenge gehaald. Sinds 2010 werken ze samen met Volkswagen en hebben ze een Volkswagen Passat die autonoom in Berlijn rondrijd [31].

Veel bedrijven, waaronder de grote automerken zijn bezig met zelfrijdende auto’s. De Nederlandse overheid heeft de intentie om voorop te lopen in de regelgeving en adoptie van zelfrijdende auto’s en heeft hier dan ook regelgeving voor aangenomen [39].

3.2

State of the art

Hier volgt een beschrijving van de huidige state of the art in de wetenschappelijke literatuur.

3.2.1

Perception

Voor autonome voertuigen is het van het grootste belang dat de omgeving rond het voertuig betrouw-baar waargenomen kan worden. Deze waarneming (perception in Engels) moet in de breedste zin van het woord genomen worden. Zo valt te denken aan beeldherkenning met behulp van kleuren camera’s tot het gebruik van een contact sensor om te bepalen of er een object op het pad van de robot staat. Vooral het waarnemen wat er rond de robot gebeurd is uiteraar erg belangrijk voor autonome operatie en het waarborgen van veiligheid.

Een relatief recent in gebruik geraakte sensor is de LIDAR (Light Detection And Ranging) scanner. Deze sensoren schijnen een kort laser pulsje in een bepaalde richting. Vervolgens wordt de tijdsvertraging tussen het zenden en ontvangen van het pulsje gemeten, met behulp van de intensiteit van het pulsje kan ook iets gezegd worden over de reflectiviteit van het geraakte oppervlak. De ontwikkeling van deze sensoren is pas echt op gang gekomen sinds de DARPA grand challenge [74]. Het is mogelijk dat deze sensor zijn pulsjes in een vlak uitzend en zo een twee dimensionaal beeld opbouwt, maar het is ook mogelijk om de pulsjes ook onder een bepaald verticaal hoekbereik over een gehele rotatie uit te zenden. Zo wordt er een drie dimensionaal beeld opgebouwd [53]. De informatie die deze sensor geeft kan worden gebruikt voor het inventariseren of er obstakels op het pad van de robot staan, waar het wegdek begint en ophoud [60]. Dit type sensor werd gebruikt door alle finishende teams in de DARPA urban challenge [86, 60, 74].

De diepte informatie die met LIDAR vergaard direct verkregen kan worden kan ook worden gedestileerd uit het beeld van twee videocamera’s. Als een tweetal camera’s gebruikt wordt waartussen de afstand en hoek bekend is wordt het gecombineerde beeld stereovision genoemd. Met twee beelden is het mogelijk om door het verschil tussen beide beelden ook informatie over de diepte in het beeld af te leiden [40]. Omdat de diepte informatie afgeleid moet worden uit het beeld in plaats van dat deze direct gemeten wordt is deze minder goed. Camera’s zijn gevoeliger voor verstoringen zoals slagschaduwen en glare door lichtbronnen. Er wordt wel onderzoek gedaan naar bijvoorbeeld obstacle detection op basis van stereo vision [45, 91].

Naast het gebruik van LIDAR is ook radar een optie, vaak wordt voor deze toepassing gebruik gemaakt van een erg korte golf (millimeters)[12]. Recentelijk worden deze korte golf radar systemen breder toegepast, vooral in adaptive cruisecontrol systemen in auto’s.

Na het vergaren van de ruwe data over beeld en of diepte is het zaak om hiervan een beeld van de omgeving op te bouwen. Belangrijk hiervoor is het identificeren van de rijbaan of het gebied waar gereden kan worden en het herkennen van obstakels. Specifieke oplossingen zijn bedacht voor het identificeren van bijvoorbeeld muren [62], wat bijvoorbeeld met diepte informatie en Random sample consensus (RANSAC). Het detecteren van auto’s op de weg op basis van stereo computer vision is in

(24)

2002 al gedaan [45]. Het op basis van LIDAR herkennen van voetgangers [63], op basis van principle component analysis en een support vector machine. Naast het specifiek herkennen van verscheidene obstakels is het handig willekeurige obstakels te kunnen herkennen, dit kan wederom met stereo vision [91] of met LIDAR [79], in deze laatste paper van Thrun wordt 98.5% accuracy behaald in het herkennen van verschillende typen objecten. In practisch alle obstacle detection vraagstukken wordt gebruik gemaakt van Machine Learning, veelal Support Vector Machines of Discrete Bayes Filters.

3.2.2

Positiebepaling

Om een voertuig autonoom te laten rijden is het van belang de huidige positie te kunnen bepalen. Afhankelijk van de situatie en eisen kan het noodzakelijk zijn om een absolute positie danwel een relatieve positie te hebben.

Globale positionering

Voor de absolute positie bepaling zijn er Global Navigation Satellite System (GNSS) beschikbaar. De bekendste hiervan zijn het Amerikaanse GPS, Russische GLONASS en Europese Galileo project (er zijn naast deze nog verschillende nationale systemen). Deze systemen werken alle door middel van sattelieten die in een baan rond de aarde draaien met een zeer precieze gesynchroniseerde klok, de ontvanger van deze signalen kan met het tijdsverschil tussen de satellieten zijn positie bepalen. De precisie verschilt per systeem, bij GPS ongeveer 3.5 m-7.8 m [32], GLONASS is ongeveer even precies. Door toepassing van Real Time Kinematic (RTK) is het mogelijk om veel preciezere positiebepaling te behalen; tot decimeters of centimeters nauwkeurig [77], hiervoor wordt gebruik gemaakt van een correctiesignaal afkomstig van een ontvanger waarvan de positie zeer precies bekend is.

Deze GPS signalen zijn zeer zinvol voor de positiebepaling, maar vaak is goed ontvangst niet te garan-deren. Dit is afhankelijk van de stand van de sattelieten en of er al dan niet direct zicht is naar deze kunstmanen. Zo is de ontvangst tussen de bebouwing over het algemeen slecht, in steden wordt een straat met gebouwen aan beide kanten ook wel een Street Canyon of Urban Canyon genoemd. Dit komt zowel door het feit dat sattelieten niet meer direct zichtbaar zijn als het optreden van reflecties van de signalen [58, 19, 29]. Voor positiebepaling van voertuigen in steden is dit deels op te lossen door de aanname te doen dat het voertuig zich op de weg begeeft. Doordat kaarten bekend zijn is er dan bekend dat het voertuig zich ergens op een bepaalde lijn begeeft, het bepalen van de positie is dan mogelijk met slechts twee satellieten [19].

Veelal wordt GPS aangevuld met dead reckoning op basis van snelheid en richting of wielrotatie. Ook wordt het signaal soms gecombineerd met data van een Inertial Measurement Unit (IMU) [44, 29, 9, 87] om een hogere sample rate te krijgen of om positiebepaling ook te laten werken bij verlies van het signaal. Soms word deze data nog gecombineerd met camerabeelden [44, 90, 54], eventueel is zelfs positiebepaling mogelijk met enkel een naar de grond gerichte camera [43].

Het effect van foutieve GPS waarden is geminimaliseerd in [54], waar data van de GPS, IMU en camera gecombineerd word. Visual odometry is toegepast om een betere schatting te maken van de positie dan dat mogelijk zou zijn met enkel GPS. De trajectory planning wordt gedaan door het creeeren van mogelijke paden en aan deze vervolgens een weging toe te kennen.

Visual odometry wordt ook toegepast in [66], waar op basis van videobeelden en luchtfotos de positie en snelheid van het voertuig bepaald wordt.

Sommige ondezoekers combineren zelfs informatie van vier bronnen tegelijk [33], deze zijn GPS, IMU, LIDAR en zo gehete pseudolites, deze laatste zijn een soort pseudosatellieten. Dit zijn grondstations die door middel van radio communicatie de functie van een satelliet vervullen.

(25)

één zo precies mogelijke positiebepaling te komen.

SLAM

Om betere positiebepaling mogelijk te maken wordt er veelal gebruik gemaakt van Simultaneous localization and mapping (SLAM), dit is een techniek waarbij — op basis van sensor informatie — een kaart opgebouwd wordt van de omgeving, tegelijkertijd wordt de huidige positie op de kaart bepaald. Sensoren die gebruikt kunnen worden om obstakels te detecteren zoals LIDAR zijn veelal goed bruikbaar voor deze toepassing. Het is belangrijk om in het achterhoofd te houden dat SLAM een vraagstuk betreft, en niet een oplossingsmethode of algoritme.

In de jaren tachtig en negentig werd het SLAM vraagstuk onder de aandacht gebracht, onder andere door de paper van Smith [75]. Hierbij wordt gebruik gemaakt van een Kalman filter voor het combineren van de verschillende metingen en het reduceren van het effect van ruis.

Een paper van Thrun uit 2002 [81] geeft een uitgebreid overzicht van de toentertijd bestaande methoden en geschiedenis over het geautomatiseerd opbouwen van een kaart. Er wordt aandacht besteed aan de complexiteit en er wordt ingegaan op verscheidene oplossingsmethoden voor het vraagstuk. Beschrijft zowel de Kalman filter aanpak en de EM (expectation maximization) aanpak. De eerste is de traditionele oplosmethode maar heeft moeite met het zogeheten correspondence problem; het constateren dat dezelfde positie als eerder in de kaart bereikt is. De tweede is echter een computational zwaarder algoritme, wat vaak offline uitgevoerd moet worden [81]. Een andere methode welke gebruik maakt van een occupancy grid worden ook nog even kort aangestipt, deze methode is ook uit te breiden zodat het om kan gaan met dynamische omgevingen. Verscheidene nog openstaande problemen worden gegeven, waaronder het probleem van positiebepaling in een dynamische omgeving en het beter kunnen benutten van prior knowledge over de omgeving.

Door de verbeteringen in de oplossingsmethoden en beter wordende computers is heeft het gebied van Simultaneous localization and mapping (SLAM) de afgelopen 20 jaar significante ontwikkelingen gezien. Aan de basis van de oplossingen ligt de kansrekening, dit maakt het mogelijk om met behulp van verwachtingswaarden en kansdichtheidsverdelingen sensor ruis te verhelpen. Hiervoor worden filters gebruikt, bijvoorbeeld Kalman Filters (KF), Particle Filters (PF) and Expectation Maximization (EM) [2, 83].

Het Kalman filter is een gewogen gemiddelde van de waarden waarbij de weging wordt bepaald door de covariantie van de waarden. Het nadeel van het Kalman Filter en Extended Kalman Filter is dat het uitrekenen van de uitkomst bij een toenemende hoeveelheid metingen en sensor waarden steeds langer duurt. Het Extended Kalman filter is een uitbreiding op het Kalman Filter welke gelineariseerde termen van de niet-lineare effecten meeneemt. Zo kan er ook gecorrigeerd worden voor systemen die niet-linear gedrag bevatten.Het Extended Kalman Filter is echter nog steeds niet volledig geschikt voor het aanpakken van het SLAM vraagstuk, dit komt ten eerste omdat de complexiteit O ¡N2¢ (N is aantal features), door de kaart te representeren als tree kan deze beheersbaar blijven in reken complexiteit. Het tweede probleem is dat er geen machanisme is om zogehete negatieve informatie mee te nemen; een meting die verwacht werd gezien de locatie maar niet is waargenomen. Het laatste probleem is dat de EKF methoden geen oplossing bieden voor het data association / correspondence probleem, vaak wordt dit geremedied door features eerst op een voorlopige lijst te zetten als ze niet eerder waargenomen zijn, foutieve associaties leiden tot dramatisch falen van het algoritme. [82].

Het Particle Filter (ook wel Sequential Monte-Carlo method) is een recursief Bayesian filter waarbij er punten gebruikt worden om de posterior kans te beschrijven. Dit heeft tot nadeel dat voor elke landmark de state representatie groter wordt naarmate er meer landmarks benut gebruikt worden. Dit leid ertoe dat dit eigenlijk enkel gebruikt kan worden om de positie van de robot te bepalen, voor het opbouwen van de kaart is dit minder geschikt [2]. Het bekendste algoritme wat gebruik maakt van

(26)

particle filters is FastSLAM [59]. De complexiteit van oplossingen van SLAM met een Particle Filter is O ¡M logN¢, waarbij M het aantal particles is (constant) en N het aantal features [82].

Expectation Maximization is een algoritme om een een optimale oplossing te vinden op basis van de maximum likelihood estimator. Dit is een iteratief schema waarbij er ge-alterneerd wordt tussen twee fasen, de expectation stap waarin er een schatting gemaakt wordt door de verwachtingswaarde van de log likelihood functie uit te rekenen, vervolgens wordt in de maximalisatiestap de geschatte parameter geoptimaliseert zodat de verwachtingswaarde zo hoog mogelijk wordt. In de SLAM terminologie houdt dit in dat in de eerste stap een schatting van de pose wordt gemaakt en in de tweede stap de meest waarschijnlijke kaart wordt opgebouwd op basis van de geschatte pose. Nadeel aan dit iteratieve schema is dat het (vooral de E stap) computitioneel zwaar is en toeneemt in complexiteit naarmate de kaart groter wordt. Dit kan opgelost worden door de maximization stap te gebruiken om de kaart te contrueren en het schatten van de positie en pose uit te voeren met een particle filter [10, 81].

Een van de problemen in het SLAM vraagstuk is het zogeheten correspondence problem; het identifice-ren dat landmarks of metingen overeenkomen met een situatie die eerder al gezien is. Als een positie bezocht wordt die reeds gezien is dan is het van belang dit te kunnen detecteren zodat de gemaakte lus gesloten kan worden. Om een goede kaart te kunnen maken is het essentieel dat deze lussen gesloten kunnen worden, [28] merkt op dat het sluiten van loops voor mensen een taak is van een paar minuten maar dat dit voor geautomatiseerde processen niet zo eenvoudig is. Voor het sluiten van een loop is de representatie van de data ook van belang, zo wordt in [27, 34] een graaf gebruikt om de landmarks hierarchisch ten opzichte van elkaar op te slaan.

In [50] over Stanford’s Junior voertuig wordt gebruik gemaakt van de infrared remittance gegevens die uit een LIDAR scan komen. Deze remittance map wordt gebruikt voor het bepalen van de positie [51] en na het rijden van een gebied wordt met SLAM de huidige kaart geupdate.

Voor gebruik van video beelden wordt er vaak gesproken van Visual SLAM, hierbij worden een tweetal camera’s gebruikt zodat er stereovision verkregen is. Hierdoor is het toch mogelijk om diepte informatie te verkrijgen [38, 46]. De survey-paper [71] geeft een overzicht van de the state of the art met betrekking tot Visual SLAM in autonome auto’s. Bij het combineren van LIDAR en video beelden is het van belang om deze onderling te calibreren. Hiervoor zijn specifieke algoritmes ontwikkeld die dit calibreren automatisch uitvoeren [65].

3.2.3

Path planning

Path planning is een brede term wat door verschillende vakgebieden voor verschillende betekenissen wordt gebruikt. In het geval van de INNOVADObedoelen we hiermeen het bepalen van een pad waardoor de machine van zijn huidige positie naar een doelpositie kan.

Het boek ‘Planning Algorithms’ van Steven M. Lavalle[48] is een van de bekendste en meest omvattende boeken over dit onderwerp. In de introducties hiervan worden de ‘ingredienten’ van het plannen besproken. Deze zijn ‘state’: dit representeerd een configuratie van het wat geplanned moet worden. In het geval van een bewegende robot kan dit de x, y,ϑ waarden zijn, voor een robot arm zouden dit de posities van de joints zijn de ruimte waarin de state uitgedrukt is heet de ‘state space’. De parameter ‘tijd’ is eveneens een parameter die belangrijk is bij het plannen, dit komt omdat de verschillende ‘states’ vaak na elkaar bereikt moeten worden. Het ‘plan’ bestaat in de simpelste vorm uit een set opeenvolgende acties, maar kan ook bestaan uit een functie die op basis van de huidige state beslissingen neemt. Dit boek is een van de meest alles omvattende behandelingen van het path planning vraagstuk en het bekijken zeer waard. Motion planning is een complex probleem [69]. In hoofdstuk 6 van ‘Planning Algorithms’ wordt uitgebreid stilgestaan bij de wiskundige complexiteit. In veel gevallen blijkt dit vraagstuk in de NP klasse van problemen te vallen.

(27)

(vertices) waarbij er al dan niet verbindingen tussen punten mogelijk zijn (edges). Een voorbeeld hiervoor is bijvoorbeeld het wegennet, waarbij de steden gezien kunnen worden als vertices en de wegen tussen de steden als edges. Deze problemen worden al lang geanalyseerd, een van de bekendste algoritme om het kortste pad te bepalen tussen tween vertices van de graaf is Dijkstra’s algoritme[24], wat in 1959 bedacht is door de gelijknamige Nederlandse informaticus.

Voor sommige systemen is het mogelijk om een expliciete set vergelijkingen te bepalen waarmee een pad uit te drukken is om van een bepaalde begin state naar de eind state te komen. Een voorbeeld van zo’n systeem is bijvoorbeeld een inktjet printerkop die op een bepaalde plek op het papier gezet moet worden. Dit vereist verplaatsing van de doorvoer van papier over de rollers y, en de positie van de printerkop over de breedte van de pagina x, zo wordt x, y bepaald. Omdat deze twee onafhankelijk van elkaar aangestuurd kunnen worden is hiervoor gemakkelijk een expliciete uitdrukking te vinden. In dit systeem maakt het ook niet uit of eerst de x verandert wordt en daarna de y, of andersom. Een eenwieler kan zowel zijn rotatie veranderen, maar enkel naar voren of naar achteren bewegen, bij dit systeem maakt het wel uit of deze eerst roteerd en pas daarna transleert, of dat deze eerst transleert en pas daarna roteerd. Een dusdanig systeem wordt ook wel een ‘non-holonomic system’ genoemd. Auto-achtige voertuigen, bijvoorbeeld voertuigen met Ackermann steering zijn dusdanig non-holonomic voertuigen. Voor een auto die enkel vooruit kan en bochten naar links of rechts kan nemen zijn - in de afwezigheid van obstakels - zes primitieve te vinden waarme het kortste pad tussen een begin en eind-pose bepaald kan worden, de zogeheten Dubins curves[26]. Voor eenzelfde voertuig wat ook achteruit kan en achteruit bochten kan maken zijn deze primitieve curves afgeleid door Reeds en Shepp, het aantal primitieve gaan omhoog naar 48, maar deze geven nog steeds altijd de kortste route tussen twee posities in een vlak [68].

Vaak bestaat path planning uit een combinatie van het bepalen van states en het vinden van een juiste volgorde om deze af te gaan. Ook wel sampling based path planning genoemd ([3] geeft een analyse). Als deze states arbitrair gekozen kunnen worden kan een pad geplanned worden zonder dat een expliciete uitdrukking gevonden moet worden die de state space beschrijft waarin gezocht wordt. Dit vereenvoudigd het oplossen van het probleem en maakt de zoekmethode onafhankelijk van de ruimte waarin gezocht wordt.

Er zijn veel verschillende manieren van zoeken, een van de manieren is het verkennen van de state space door middel van ‘Rapidly Exploring Random Trees’[47], welke in een soort fractalpatroon de hele state space verkennen en als boom opbouwen (ook wel single-query planners). Deze manier van zoeken bedekt - theoretisch - de gehele state space na verloop van tijd, maar vindt vaak een route voordat dit het geval is. Deze manier van zoeken is te vergelijken met Dijkstra in een graaf, naar alle kanten wordt uitgebreid tot een pad gevonden is. Verschillende aanpassingen en uitbreidingen zijn hierop gemaakt om de zoeksnelheid te vergroten, vaak door het toevoegen van een heuristiek om in de richting van het doel te zoeken. Bijvoorbeeld SST (Stable Sparse RRT) [52] en RRT*[41], deze methoden garanderen geen ‘optimality’, maar zouden wel snel moeten convergeren naar ‘een goede’ route. Waar de voorgaande methoden proberen om het pad in een keer te bepalen zijn er ook methoden die proberen een soort kaart op te bouwen van de statespace en hierin mogelijke routes te identificeren. Deze ‘roadmap’ based methoden zijn vaak ook geschikt voor meerdere queries omdat het opbouwen van de roadmap niet gericht is op het vinden van één route van de start naar het goal, maar de roadmap opbouwt, en daarna kijkt hoe er over de roadmap een pad te vinden is. De bekendste planner die dit doet is Probabilistic RoadMap (PRM)[42], welke eveneens verschillende variates heeft zoals PRM*[41], LazyPRM welke pas kijkt of roads haalbaar zijn als dat nodig is [7] en SPARS[25].

(28)

3.3

Executive Summary

In the nineties there was already significant research on driverless cars and techniques such as lane keeping assist. In 2004, 2005 and 2007 de DARPA grand challenges were held: These were races where vehicles had to autonomously traverse a predetermined course. The first race was held in the desert and no team got further than 5% of the course. The second race was also in the desert, though this time 5 out of the 23 teams got to the finish. In 2007 an urban environment was chosen and over 50% of the teams succesfully reached the finish.

These DARPA challenges have been lauded for their effect, which has increased research into auto-nomous vehicles. It has truly advanced the state of the art and has even led to the development of laser scanners now known as LIDAR. These scanners have made it possible for autonomous vehicles to detect the environment efficiently. They are often used in the context of Simultaneous localization and mapping (SLAM), for which a plethora of techniques have been proposed as solutions. However, for now each has their specific advantages and disadvantages. For localization (with or without SLAM) prediction with data from proprioceptive1sensors is often combined with correction based on various exteroceptive2sensors.

Despite significant delopments path planning is still a complex problem. Most recent developments use some sampling based system where an analytic description of the statespace is not required. This allows the problems to be solved relatively efficient with a computer, though solutions cannot be guaranteed to be reached within a certain timeframe. The algorithms can be divided into the roadmap based algorithms in which a roadmap is developed through the statespace until a path is found. Other than that there are branching planners which develop a path by searching through potential paths, often using a directed search based on some heuristic. Pathplanning for non-holonomic vehicles remains challenging.

1observation of the organism from within the organism 2relating to stimuli external to the organism

(29)

Localization

Dit hoofdstuk beschrijft het werk gedaan aan het localisatiesysteem, het eerste deel van de PDEng opdracht. Dit hoofdstuk beschrijft in een top-down view de doorlopen stappen en verschaft enige toelichting over de software architectuur. Veel meer en uitgebreidere documentatie is te vinden in de software documentatie[88].

4.1

Aanpak

Net als bij andere autonome voertuigen wordt er gebruik gemaakt van prediction en correction: met behulp van prediction wordt op basis van odometrie zoals wielencoders en inertial motion units een voorspelling / schatting gemaakt van de huidige beweging en is het mogelijk om op basis van de vorige positie een schatting te maken van de nieuwe positie. De fout van deze schatting groeit echter over de tijd, bijvoorbeeld door ruis in de sensor metingen die geintegreerd wordt.

Om de groeiende fout te kunnen beperken en corrigeren is het van essentiel belang dat er metingen beschikbaar zijn die hiervoor kunnen corrigeren. Hierbij valt te denken aan absolute metingen zoals GPS of radio beacons. Maar ook met behulp van relatieve metingen zoals LIDAR is het mogelijk om deze correctiestap uit te voeren, zolang het met de metingen maar mogelijk is om een positie uit te rekenen en niet enkel een snelheid of acceleratie zoals met de odometrie.

4.2

ROS

4.2.1

Assenstelsels

Om de aanpak met behulp van odometrie en correctie te faciliteren zijn in ROS conventies afgesproken over de te gebruiken assenstelsels. Deze zijn opgenomen in ROS enhancement proposal (REP)-105 (Coordinate Frames for Mobile Platforms)[57]. Hierin staan drie assenstelsels beschreven welke aange-raden worden voor gebruik bij mobile robot platforms. Deze zijn:

base_link: This coordinate frame should be fixed to the robot, this is the origin / center of the robot. It should therefore be in a logical place for each robot. In the case of the INNOVADOit is located in the center between the two front wheels. Conveniently this is the same position as the one chosen by GÖTTING. Dit frame is star verbonden met de robot en wordt gebruikt als oorsprong van de robot. Deze wordt gekozen op een handige plek van de robot. In het geval van

(30)

de INNOVADOis deze geplaatst in het midden tussen de twee voorwielen, dit is ook de oorsprong die GÖTTINGgebruikt.

odom: In dit frame wordt de beweging van het voertuig die bepaald kan worden met de odometrie uitgedrukt; dat wil zeggen, hetbase_linkframe verplaatst in dit frame door de odometrie. Omdat er in de odometrie berekening geen discontinuiteiten voorkomen is de beweging van de robot in dit frame een vloeiende beweging. Dit frame kan gebruikt worden voor de lokale planner en zou betrouwbaar moeten zijn in de korte termijn.

map: Dit is het globale wereld frame en representeerd de vaste wereld. Hetodomframe verplaatst hierin door de globale positie correcties. De positie van debase_linkvertoont in dit frame derhalve sprongen en discontinuiteiten, maar de fout zou gering moeten blijven omdat de drift van de odometry gecorrigeerd wordt in dit frame.

Deze frames worden in het localisatie systeem van de INNOVADOook gebruikt, deze opzet heeft zich immers al bewezen in andere robots en het is dus wenselijk om hiervan gebruik te maken.

4.2.2

URDF

In ROS wordt gebruik gemaakt van Unified Robot Description Format (URDF) om robots te beschrijven. Deze standaard maakt het mogelijk om robots te beschrijven met behulp van joints en links. De robot wordt eigenlijk altijd beschreven als tree van elementen. Deze rigid links zijn aan elkaar verbonden door joints die al dan niet vrijheidsgraden hebben. Deze URDF is een xml bestand waarin deze links gespecificeerd staan.

Omdat het handig is om sommige waarden parametrisch te beschrijven of uit te laten rekenen uit andere is het mogelijk om een URDF te laten produceren door xacro. Naast het uitrekenen van afstanden en lengtes maakt dit het ook mogelijk om macro’s te gebruiken. Hierdoor kan bijvoorbeeld een macro gemaakt worden voor het plaatsen van een wiel, waarna deze macro vier keer aangeroepen kan worden om de wielen te creeëren.

De URDF van de INNOVADOis op eenzelfde manier opgebouwd als het voertuig zelf. Aan het chassis zitten de voorwielen verbonden, de rotatieas van het stuur, op deze rotatie draaikrans is een roterende as gemonteerd zodat beide achterwielen contact maken met de grond. Deze seriële connectie van de joints is ook terug te zien in de URDF. Verder hebben alle LIDAR scanners eenideal_laser_mount

wat de configuratie is volgens het 3D model van de INNOVADO. Hierop is in veel gevallen een correctie noodzakelijk omdat de werkelijke situatie anders is. Van de mount naar het assenstelsel van de scanner zelf is nog een offset, deze komt overeen met de offset van het model oorpsrong naar de sensor oorsprong in SOLIDWORKSzodat de maten van het 3D model direct gebruikt kunnen worden. De resulterende URDF is te zien in figuur 4.1.

4.3

Prediction

De voorspelling van de beweging van het voertuig kan gemaakt worden door middel van de encoders op de wielen en de stuur rotatie. Deze encoder informatie kan gecombineerd worden met een model van het voertuig om uit te rekenen wat de beweging is.

4.3.1

Sensoren

Ook GÖTTINGmaakt gebruik van wielencoders om een schatting te maken van de positie van het voertuig. Hiervoor zijn aan de voorwielen encoders gemonteerd, dit zijn standaard rotary encoders met

(31)

base_link base_link_joint xyz: 0 0 0 rpy: 0 -0 0 chassis_link chassis_link_to_swivel xyz: -2.824 0 0.35 rpy: 0 -0 0 front_left_wheel xyz: 0 0.755 0.35 rpy: 0 -0 0 front_right_wheel xyz: 0 -0.755 0.35 rpy: 0 -0 0 imu_joint xyz: -4.6956 0 2.39 rpy: 0 0 3.14159 lidar_front_base xyz: 0.8057 0 1.3858 rpy: -3.14159 -0 0 lidar_left_base xyz: -4.724 1.493 2.3452 rpy: 1.13367e-05 1.5708 1.57081 lidar_rear_base xyz: -4.572 0 0.43 rpy: 0 -0 -3.14159 lidar_right_base xyz: -4.724 -1.493 2.3452 rpy: -1.13367e-05 1.5708 -1.57081 rear_swivel_above rear_steer xyz: 0 0 0 rpy: 0 -0 0 rear_swivel_below rear_axle_tilt xyz: 0 0 0 rpy: 0 -0 0 rear_axle rear_left_wheel xyz: 0 0.45225 0 rpy: 0 -0 0 rear_right_wheel xyz: 0 -0.45225 0 rpy: 0 -0 0 rear_left_wheel_link rear_right_wheel_link

front_left_wheel_link front_right_wheel_link imu_link_ideal

imu_offset xyz: 0 0 0 rpy: -3.14159 -0 -0 imu_link lidar_front_ideal_laser_mount lidar_front_real xyz: 0 0 0 rpy: 0 -0.380482 0.0174533 lidar_front_laser_mount lidar_front_laser_joint xyz: 0.0531 0 0 rpy: 0 -0 0 lidar_front_laser lidar_left_ideal_laser_mount lidar_left_real xyz: 0 0 0 rpy: 0 -0.0575959 0.0174533 lidar_left_laser_mount lidar_left_laser_joint xyz: 0.0531 0 0 rpy: 0 -0 0 lidar_left_laser lidar_rear_ideal_laser_mount lidar_rear_real xyz: 0 0 0 rpy: 0 -0 0 lidar_rear_laser_mount lidar_rear_laser_joint xyz: 0.0531 0 0 rpy: 0 -0 0 lidar_rear_laser lidar_right_ideal_laser_mount lidar_right_real xyz: 0 0 0 rpy: 0 -0.0750492 -0.0436332 lidar_right_laser_mount lidar_right_laser_joint xyz: 0.0531 0 0 rpy: 0 -0 0 lidar_right_laser

Figuur 4.1: The representation of the INNOVADOfrom the URDF format.

een A en B kanaal met phaseshift. Deze encoders zitten direct verbonden aan de stuurcomputer van GÖTTING. De stuurhoek wordt direct gemeten door een absolute encoder. Een IMU is ook beschikbaar.

Encoders

Initieel was het plan om deze encoders ook aanBODASte verbinden zodat de ruwe sensor waarden ook beschikbaar zouden zijn voor de ontwikkeling van het nieuwe localisatie systeem. Deze aanpak bleek echter geen success, eerst raakte de CAN bus overbelast. Dit had niet moeten optreden, want de bus had theoretisch nog veel bandbreedte beschikbaar, de driver van de CAN hardware kon er echter niet mee omgaan. Dit is opgelost door het zend interval te verlagen, hierna bleek dat het encoder signaal pulsde miste; af en toe draaide het wiel de verkeerde kant of op klopte de afgelegde weg niet.

Omdat de noodzaak voor encoder waarden ondertussen hoog was is er gekozen om de stuurcomputer van GÖTTINGuit te lezen via het netwerk. Echter; bij het verbinden van de stuurcomputer met het netwerk was deze niet meer in staat om goed te navigeren. Vermoedelijk kwam dit omdat de stuurcom-puter teveel tijd kwijt was aan het afhandelen van TCP pakketjes die niet voor hem bedoeld waren, dit is opgelost door deze direct aan CHARLIE’s tweede netwerk poort te verbinden. Vervolgens kan er via

telnetverbonden worden met de stuurcomputer, over deze verbinding zijn vervolgens de log-regels beschikbaar zoals deze normaliter naar de USB stick worden geschreven. Een uitgebreidere uitleg hiervan is te vinden in appendix C.

Deze logregels bevatten twee kolommen, ‘Summe Weg Links’ en ‘Summe weg Rechts’ (let op het hoofdletter verschil). Naast deze entries is er per wiel nog een constante in GÖTTINGwelke bepaald hoeveel pulsjes er in een meter afgelegde weg zitten. Met behulp van deze constante kan de ‘summe weg’ omgerekend worden naar de afgelegde weg, en met behulp van de afgelegde weg terug naar de wielrotatie.

(32)

Figuur 4.2: Foto van IMU sensor kastje. Sensor links, rechts printplaat met RS232 chip en voltage regulator.

Stuurhoek

Naast deze voorwielencoders is ook de hoek van het stuurwiel beschikbaar, zowel de gewenste hoek als de huidige hoek. Het actueren van de hydrauliek klep om de stuurhoek te manipuleren wordt gedaan door een regelaar inBODAS. Deze regelaar is echter niet optimaal wat tot effect heeft dat de huidige stuurhoek achterloopt op de gewenste stuurhoek. Daarnaast oscilleert de stuurkolom vaak rond de gewenste hoek, ook bij recht rijden of stilstand.

IMU

Achterop het voertuig is een Inertial Measurement Unit (IMU) geplaatst met daarin naast een accelero-meter, gyroscoop ook een kompas. Deze IMU heeft een ingebouwd filter om deze metingen te fuseren maar het blijkt dat dit filter een continue rotatie rond een as berekend, wat uiteraard niet klopt. Verder zijn metingen van het kompas niet altijd even goed, dit lijkt afhankelijk van de richting van het voertuig en heeft mogelijk te maken met de grote hoeveelheid metaal in de buurt van de sensor.

4.3.2

ROS-ification

In order to work with the previously described. . .1 Om gebruik te kunnen maken van de hiervoor beschreven sensoren is het noodzakelijk om hun metingen in ROS beschikbaar te hebben.

In sectie C.4.2 wordt degoetting_loggerbeschreven, deze verbind viatelnetmet de stuurcomputer om de logregels te verkrijgen. Om deze waarden in ROS te importeren is een node geschreven in PYTHON

welke verbind naar de TCP server van degoetting_logger. De regel wordt vervolgens geparsed en de verkregen waarden wordt teruggerekend naar de ‘joint state’. Deze joint states worden vervolgens gepublished als een ROS topic van het typesensor_msgs/JointState.

(33)

De IMU communiceerd via een seriele poort op 3.3 V, deze sensor is gemonteerd op de antenne balk van de INNOVADO, de vereiste kabellengte is meer dan 5 m. Deze kabels liggen naast de kabels voor hydrauliek kleppen en overige storingsbronnen. Om betrouwbare communicatie te faciliteren is gekozen om gebruik te maken van een RS232 poort, voordeel hiervan is dat deze aan de PC kant direct te verbinden is. Conversie van de 3.3 V serial port naar RS232 vind plaats in het kastje waarin de IMU gemonteerd is. Hier vind ook conversie van 12 V naar 3.3 V voor de sensor plaats, dit zorgt er voor dat ook met spanningsval in de kabel de sensor nog werkt. Een foto van het sensorkastje is te zien in Figure 4.2. Het uitlezen van de data geschied vervolgens via de seriele poort, een ROS node is beschikbaar om de seriele communicatie te parsen en te verwerken tot ROS messages op de juiste topics.

4.3.3

Implementatie

Om vervolgens de prediction met de wielencoders te bewerkstelligen is gebruik gemaakt van de

robot_localizationpackage. Een uitgebreide discussie hiervan is te vinden in section D.1, om herhaling te voorkomen zal deze theoretische beschouwing en analyse hier niet volledig herhaald worden.

De joint states worden omgezet naar odometry messages door nodes. De odometry messages worden vervolgens gecombineerd door eenekf_localization_nodeuitrobot_localization. De data van de IMU wordt eerst verwerkt door eenimu_filter_nodeuit deimu_filter_madgwickpackage, dit is een populair fusion algoritme [56] om de orientatie te verkrijgen uit IMU data. Omdat de stuurhoek van het Vrielink prototype erg oscilleert, ook als het voertuig rechtuit rijd, is het (momenteel) beter om deze niet mee te nemen in de state estimation.

4.4

Correction

De prediction stap bevat fouten, omdat de sensor waarden continu geintegreerd worden zullen sensor-fouten accumuleren en zal de globale fout steeds groter worden. Om te zorgen dat de positiebepaling niet een steeds grotere fout krijgt is het van belang om correcties uit te voeren. In het geval van de INNOVADOwordt deze correctie uitgevoerd met de informatie van de LIDAR scanners.

4.4.1

Adaptive Monte Carlo Localization

Adaptive Monte Carlo Localization (AMCL) is een particlefilter met het doel de positie te bepalen aan de hand van laser scans van de omgeving en een reeds bekend kaart. In ROS is dit filter beschikbaar als deamclnode uit de gelijknamige package.

Net als andere particlefilters werkt het filter door een set particles bij te houden, waar elk particle een representatie van de state bevat. De particles worden bijgewerkt met de odometrie en de laser scans worden gebruikt om de likelihood van de particles te berekenen. Het systeem is adaptief; het aantal particles dat gebruikt word is afhankelijk van de likelihood van de particles.

Map creation

Voordat AMCL gebruikt kan worden voor localisatie is het vereist om een kaart te hebben van de omgeving. Deze kaart moet van het typenav_msgs/OccupancyGridzijn. Deze kaart is de basis van de localisatie en moet derhalve gelijk zijn aan de realiteit, zelf intekenen van de kaart zou kunnen maar dit is natuurlijk niet wenselijk. Gezien de achterste LIDAR scanner in het horizontale vlak hangt is het

Referenties

GERELATEERDE DOCUMENTEN

Over the years, a wide range of SLAM algorithms have been developed, ranging from filter based to graph-based approaches. Naturally, many of these treat the data they receive

Door deze misconcepten middels een toets te analyseren, kan er gekeken worden, of instructievideo’s ontworpen aan de hand van de opgestelde richtlijnen voor het ontwerpen

Bij alle diersoorten komt ongerief voor Op grond van een expertview heeft Livestock Research inventarisaties van ongerief gemaakt voor rundvee, varkens, pluimvee, nertsen en

The implication is that the proclamation of the Bible should be accompanied by an anointing of the Spirit that serves as a precondition for the proclamation to be effective

Based on the feature location and the corresponding depth, methods like iterative closest point (ICP) can be used to find the 6DOF rigid body transformation that resembles the

Wanneer de chip in de houder wordt geplaatst kan deze onder een hoek komen te liggen, deze hoek kan ervoor zorgen dat kracht niet goed worden verdeeld,

‘Calypso’ en de ‘SMS’ het woordmerk ‘Schuitemaker’ in een rode kleur, terwijl op andere machines dit merk in het geel of wit is aangebracht. Niet alleen qua kleurgebruik