69
Daan De Witte Precieze controle van een omni-directionele robot Academiejaar 2010-2011 Faculteit Ingenieurswetenschappen en Architectuur Voorzitter: prof. dr. ir. Jan Van Campenhout Vakgroep Elektronica en Informatiesystemen Master in de ingenieurswetenschappen: werktuigkunde-elektrotechniek Masterproef ingediend tot het behalen van de academische graad van Begeleiders: Tim Waegeman, Francis wyffels Promotor: prof. dr. ir. Benjamin Schrauwen

Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Daan De Witte

Precieze controle van een omni-directionele robot

Academiejaar 2010-2011Faculteit Ingenieurswetenschappen en ArchitectuurVoorzitter: prof. dr. ir. Jan Van CampenhoutVakgroep Elektronica en Informatiesystemen

Master in de ingenieurswetenschappen: werktuigkunde-elektrotechniekMasterproef ingediend tot het behalen van de academische graad van

Begeleiders: Tim Waegeman, Francis wyffelsPromotor: prof. dr. ir. Benjamin Schrauwen

Page 2: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional
Page 3: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Daan De Witte

Precieze controle van een omni-directionele robot

Academiejaar 2010-2011Faculteit Ingenieurswetenschappen en ArchitectuurVoorzitter: prof. dr. ir. Jan Van CampenhoutVakgroep Elektronica en Informatiesystemen

Master in de ingenieurswetenschappen: werktuigkunde-elektrotechniekMasterproef ingediend tot het behalen van de academische graad van

Begeleiders: Tim Waegeman, Francis wyffelsPromotor: prof. dr. ir. Benjamin Schrauwen

Page 4: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Woord vooraf

Ik zou van dit voorwoord gebruik willen maken om mijn dank te betuigen aan iedereen die

direct of indirect heeft bijgedragen tot de ontwikkeling van deze masterproef.

Een speciaal dankwoord gaat uit naar mijn promotor prof. dr. ir. Benjamin Schrauwen en

mijn begeleiders Tim Waegeman, Francis wyffels, Ken Caluwaerts & Pieter-Jan Kindermans

die deze masterproef mogelijk maakten en mij gedurende het volledige verloop ervan met

advies hebben bijgestaan.

Verder wil ik nog Verena Heidrich-Meisner bedanken voor de aangename samenwerking in

een onderdeel van deze masterproef. En tot slot nog een dankwoord voor Lieve Verraes en

Jannick Staes voor het proeflezen van dit verslag.

Toelating tot bruikleen

De auteur(s) geeft(geven) de toelating deze masterproef voor consultatie beschikbaar te stellen

en delen van de masterproef te kopieren voor persoonlijk gebruik. Elk ander gebruik valt onder

de beperkingen van het auteursrecht, in het bijzonder met betrekking tot de verplichting de

bron uitdrukkelijk te vermelden bij het aanhalen van resultaten uit deze masterproef.

The author(s) gives (give) permission to make this master dissertation available for consulta-

tion and to copy parts of this master dissertation for personal use. In the case of any other

use, the limitations of the copyright have to be respected, in particular with regard to the

obligation to state expressly the source when quoting results from this master dissertation.

31 mei 2011

iv

Page 5: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Overzicht

In deze masterproef beogen we een precieze controle van een omni-directionele robot te re-

aliseren. Hiervoor ontwikkelen we een regelaar die de aansturing van de robot verzorgt op

basis van positie-informatie. In de hier beschouwde toepassing zal naast deze regelaar ook

een positiebepalingssysteem ontwikkeld worden dat samen met de regelaar een geıntegreerd

geheel vormt. Hierdoor ontstaat een autonome omni-directionele robot die op eender welke

locatie een vooropgesteld traject kan volgen.

Trefwoorden: omni-directioneel, mecanum, robot, regelaar, SLAM

v

Page 6: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Abstract

In this thesis we aim to realise pre-

cise control of an omni-directional ro-

bot equipped with four mecanum wheels.

More precisely we want to develop a

controller capable of steering the robot

to make it follow a predefined path. To

realise this, a controller is developed

which uses positional information co-

ming from an integrated positioning sy-

stem to control the speeds of the four

mecanum wheels.

Introduction

Much research has already been done in the

field of omni-directional robots. It appears

however that most of this research has been

focused on mechanical design. High preci-

sion path following control has yet to be tho-

roughly studied.

Some authors though have studied the con-

trol of omni-directional robots (e.g. [1], [2] &

[3]). In their findings they all mention that

due to heavy slippage it is impossible to re-

alise precise control without external positio-

nal information. Therefore an external posi-

tioning system (such as a digital camera) is

often used to monitor the robot’s movement

and thus provide feedback for the control me-

chanism.

In this thesis we used a different approach in

which we integrate a positioning system into

the control mechanism. That way the con-

troller is not depending on external sensors

and thus the robot is not limited to movement

within a restricted area which is the case in

most existing applictions.

Realisation

The used integrated positioning system is ba-

sed on the direct particle-SLAM algorithm as

developed in [4] and was adapted in such a

way that it can be run in realtime on an omni-

directional robot. In this application it uses

information from four wheel-encoders and one

laser range finder to determine the robot’s

position. One remark here is that due to

hardware limitations, the realtime calculati-

ons, needed to determine the robot’s position,

take up to 4 s.

The control part was developed in a number of

stages. Firstly a basic control mechanism was

created which uses only the kinematic mo-

del of the robot to calculate the wheel speeds

using the desired robot velocities, as can be

seen in formula 1 (the wheels are numbered

from left to right and front to back):

vi

Page 7: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

vii

ω1 = v(vf − vs − 0.5ω) (1a)

ω2 = v(vf + vs + 0.5ω) (1b)

ω3 = v(vf + vs − 0.5ω) (1c)

ω4 = v(vf − vs + 0.5ω) (1d)

Here vf , vs and ω represent the desired for-

ward, sideways and rotational robot veloci-

ties. The factor v is used to scale the resulting

values up or down and is fixed at the begin-

ning of each execution.

Based on this initial mechanism a series of im-

proved controllers were developed. Two ma-

jor improvements were realised by adding an

extra feedback loop which controls the actual

robot speeds and by using an estimation of the

current position which dramatically shortens

the mentioned waiting time of 4 s. Further-

more, a variable scaling factor v was introdu-

ced to obtain a more accurate path following

control.

Results

We first tested the positioning system by ma-

nually controlling the robot movement. These

tests showed that the positioning system is

able to track the robot’s movement both in

static and dynamic environments. This ensu-

red us that the considered positioning system

can indeed be used as input for the developed

controller.

To test the performance of the controller we

set up a predefined path consisting of all pos-

sible combinations of movement in all three

degrees of freedom. We then assigned a score

to the controller for each part of the path.

This score consists of the summation of the

distance to the target position at all interme-

diate stages. The total (negative) summation

of these individual scores was then used to

compare the different controllers to each other

and to the maximum achievable performance.

With the final controller we achieved an aver-

age peformance which deviates only 6.8 %

from the maximum achievable performance

(compared to 40.5 % for the basic controller).

Conclusions

In this thesis we developed a controller with

an integrated positioning system capable of

steering an omni-directional robot to make it

follow a predefined path with an error of only

6.8 %. Future work may be done on impro-

ving the positioning system (for example by

removing the hardware limitations or by using

different inputs) or expanding the application

mode (for instance by using path planning al-

gorithms).

References

[1] J. A. Cooney, W. L. Xu & G. Bright (2004).

Visual dead-reckoning for motion control of a

mecanum-wheeled mobile robot. Mechatronics,

14:623-637.

[2] J.B. Song & K.S. Byun (2004). Design and con-

trol of a four-wheeled omnidirectional mobile ro-

bot with steerable omnidirectional wheels. Jour-

nal of Robotic Systems, 21(4):193-208.

[3] R. Rojas & A. G. Forster (2006). Holonomic

control of a robot with an omnidirectional drive.

Kunstliche Intelligenz, 20(2).

[4] A.I. Eliazar & R. Parr (2004). DP-SLAM 2.0.

IEEE International Conference on Robotics and

Automation, pp. 1314-1320.

Page 8: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Inhoudsopgave

1 Inleiding 1

1.1 Omni-directionele robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1.1 Omni-wielen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1.2 Mecanum wielen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Probleem- & doelstelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3 Bestaande oplossingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 Experimentele opstelling 6

2.1 Randapparatuur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.1.1 Sensoren & actuatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.1.2 Elektronica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.1.3 Voeding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.2 Geometrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.2.1 Afmetingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.2.2 Kinematisch model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.3 Aansturing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.3.1 Communicatiestructuren . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.3.2 Manuele aansturing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.4 Gonzales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3 Positiebepaling 15

3.1 Simultane localisatie en kaartgeneratie . . . . . . . . . . . . . . . . . . . . . . 15

3.2 Direct Particle SLAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.3 DP-SLAM voor Gonzales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.3.1 Databestanden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.3.2 Hardware & geometrie . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.3.3 Aandrijving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.3.4 Realtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.3.5 Hierarchische structuur . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.3.6 Gevolgde traject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.4 Bespreking eindresultaat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

viii

Page 9: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Inhoudsopgave ix

4 Regelaars 24

4.1 Regelaar I: Een klassieke aanpak . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.1.1 Het traject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.1.2 De regelaar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4.2 Regelaar II: CMA-ES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.2.1 CMA-ES leerstrategie . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.3 Regelaar III: Tijdsvertragingen . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.3.1 Situatieschets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.3.2 De regelaar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.4 Regelaar IV: Foutcorrecties . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4.5 Regelaar V: Variabele snelheid . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4.6 Overzicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

5 Hoe te gebruiken 36

5.1 Verbinden met Gonzales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

5.2 Indeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

5.3 Uitvoering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

5.4 Extra opties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

6 Resultaten 40

6.1 Het positiebepalingssysteem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

6.1.1 Gebruik in een statische ruimte . . . . . . . . . . . . . . . . . . . . . . 40

6.1.2 Gebruik in aangrenzende statische ruimtes . . . . . . . . . . . . . . . . 42

6.1.3 Gebruik in een dynamische omgeving . . . . . . . . . . . . . . . . . . 43

6.1.4 Tijdsduur van het positiebepalingssysteem . . . . . . . . . . . . . . . . 44

6.2 De regelaars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

6.2.1 Testprocedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

6.2.2 Behaalde resultaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

7 Conclusies en perspectieven 53

7.1 Conclusies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

7.2 Perspectieven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

7.2.1 Uitbreidingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

7.2.2 Toepassingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

A Programmacode 56

B Datasheets 57

Bibliografie 58

Page 10: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 1

Inleiding

Deze masterproef handelt over het controleren van een omni-directionele robot, meer bepaald

het controleren van de bewegingen ervan. We willen hier uiteindelijk een nauwkeurige traject-

controle realiseren voor een omni-directionele robot. In wat volgt zal stelselmatig uiteengezet

worden hoe dit gerealiseerd wordt. In hoofdstuk 2 wordt eerst de gebruikte opstelling ver-

duidelijkt waarna in hoofdstukken 3 en 4 de realisatie zelf wordt uiteengezet. De praktische

uiteenzetting over de werking van het geheel wordt in hoofdstuk 5 besproken en in hoofdstuk 6

worden de behaalde resultaten geanalyseerd. In hoofdstuk 7 ten slotte vatten we alles samen

en worden nog enkele vooruitzichten gegeven op mogelijke uitbreidingen en toepassingen. In

dit hoofdstuk gaan we nu eerst dieper in op de gebruikte technologie en het reeds verrichte

onderzoek in dit domein.

1.1 Omni-directionele robot

Wanneer we spreken over een omni-directionele robot bedoelen we een robot die zich in

elke mogelijke richting kan verplaatsen. Om de gedachten te vestigen beschouwen we een

horizontaal vlak waarin de robot zich vrij kan bewegen. We karakteriseren deze bewegingen

door een vast assenstelsel in te voeren waarvan de oorsprong zich bevindt op de startpositie

van de robot. Hierbij kiezen we dan de x-as volgens de initiele voorwaartse bewegingsrichting,

de positieve y-as richten we naar links en de z-as naar boven zodat een rechtshandig cartesiaans

assenstelsel bekomen wordt (zie ook figuur 1.1). De mogelijke verplaatsingen van een omni-

directionele robot zijn dan een translatie in de x- en y-richting en een rotatie rondom de

z-as.

1.1.1 Omni-wielen

Om een dergelijk rijgedrag mogelijk te maken moet een omni-directionele robot voorzien wor-

den van aandrijfmogelijkheden in elk van de drie beschouwde vrijheidsgraden. Typisch wordt

1

Page 11: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 1. Inleiding 2

Figuur 1.1: Het gebruikte cartesiaanse assenstelsel als referentie voor de verplaatsingen van de robot.

dit gerealiseerd door de robot van drie wielen te voorzien waarvan de assen over 120◦ verscho-

ven zijn zoals geıllustreerd is in figuur 1.2. Dit is dan ook de meest eenvoudige uitvoering die

een omni-directioneel gedrag mogelijk maakt. Bij het aandrijven van deze robot zal elk wiel

zich proberen te verplaatsen volgens zijn eigen rijrichting die dus 120◦ gedraaid is tegenover

deze van de twee andere wielen. De beweging van de robot zelf volgt dan uit de superpositie

van de verwachte verplaatsing van de drie afzonderlijke wielen. Door een juiste keuze van

de rotatiesnelheid van de drie wielen kan de robot zich dus in de drie mogelijke vrijheden

bewegen.

Figuur 1.2: Een typische uitvoering van een omni-directionele robot waarbij drie wielen gebruikt

worden met onderling over 120◦ verschoven assen.

Page 12: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 1. Inleiding 3

Doordat in deze uitvoering de drie wielen elk een eigen logische rijrichting hebben, zullen ze bij

translatie van de robot gedwongen worden zich volgens een richting te verplaatsen verschillend

van deze logische rijrichting. Hierdoor ontstaat een grote slip. Om dit doorslippen tegen te

gaan, onder andere om te grote wrijvingskrachten te vermijden, worden speciaal ontworpen

wielen gebruikt, omni-wielen. Figuur 1.3 toont hoe deze uitvoering ervoor zorgt dat de wielen

zowel actief, door de aandrijving, als passief, door slip, kunnen roteren.

Figuur 1.3: Actieve en passieve rotatie bij een omni-wiel.

1.1.2 Mecanum wielen

Een alternatieve methode om een gelijkwaardige bewegingsvrijheid te verkrijgen gaat uit van

een normale vier-wiel-opstelling waarbij mecanum wielen gebruikt worden. Zoals te zien is

op figuur 1.4 zijn deze opgebouwd uit een cilindrisch hoofdframe waarin langs de omtrek een

reeks kleine toncilinders zijn bevestigd. Deze kunnen vrij roteren en zijn zo gepositioneerd

dat hun rotatie-as een hoek maakt van 45◦ met de rotatie-as van het hoofdframe. Dit zorgt

ervoor dat wanneer een dergelijk wiel draait rondom de as van het hoofdframe het zich

zal verplaatsen volgens een richting die een hoek maakt van 45◦ met de logische voor- of

achterwaartse bewegingsrichting. Om dit te visualiseren zouden we de robot dus ook kunnen

voorstellen door de vier mecanum wielen te vervangen door vier normale wielen die 45◦

verdraaid opgesteld staan zoals in figuur 1.5 wordt geıllustreerd. Opnieuw zal elk wiel zich

volgens zijn eigen rijrichting willen verplaatsen en volgt de beweging van de robot uit de

superpositie van de vier verwachte verplaatsingen.

Page 13: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 1. Inleiding 4

Figuur 1.4: Opbouw van een mecanum wiel.

Figuur 1.5: Analogie tussen een werkelijke uitvoering met mecanum wielen (links) en een fictieve

uitvoering met gewone wielen (rechts).

1.2 Probleem- & doelstelling

Zoals hierboven reeds aangehaald werd ontstaat er een zekere slip doordat de wielen gedwon-

gen worden zich in een richting te verplaatsen verschillend van hun voorkeursrichting. Verder

kan slip ook ontstaan door een wijzigende grip van de verschillende wielen met de ondergrond

(bijvoorbeeld door ongelijke gewichtsverdeling of oneffenheden). Zoals ook in Salih et al.

(2006) aangehaald wordt ontstaat hierdoor een afwijkend rijgedrag. De werkelijke beweging

van het geheel volgt niet langer uit de superpositie van de verwachte verplaatsingen van de

afzonderlijk wielen. Hierdoor kan men ook de verplaatsing van de robot niet meer berekenen

uit de rotatie van de wielen maar moet hiervoor extra informatie gebruikt worden (zie ook

Song & Byun (2004), Rojas & Forster (2006) & Cooney et al. (2004)).

Page 14: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 1. Inleiding 5

Er is dus nood aan een geavanceerde besturing die hiermee rekening houdt en in staat is de

gewenste verplaatsing te realiseren. De doelstelling van deze masterproef bestaat er dan ook

in een regelaar te ontwikkelen die de gebruiker in staat stelt precieze trajectcontrole op een

omni-directionele robot uit te voeren.

Om aan trajectcontrole te kunnen doen moet er echter ook informatie beschikbaar zijn omtrent

de positie van de robot in zijn omgeving. De oorspronkelijke doelstelling vertaalt zich hierdoor

in twee deelaspecten. Enerzijds moet er een positiebepalingssysteem geımplementeerd worden

en anderzijds moet er een regelaar ontwikkeld worden die op basis van het gewenste traject

en de huidige positie de juiste aansturing verzorgt.

1.3 Bestaande oplossingen

Alhoewel omni-directionele robots reeds enkele jaren ingezet worden is er nog maar weinig

onderzoek verricht naar een accurate aansturing ervan (zie ook Watanabe et al. (1998), Dong

et al. (2009) & Liu et al. (2003)). Het grootste deel van het reeds bestaande onderzoek omtrent

omni-directionele robots focust zich vooral op het ontwikkelen van (verbeterde) mechanische

constructies en de kinematische studie ervan. Deze studies vormen dan ook meestal de basis

van reeds ontwikkelde regelsystemen. Zo gaan Watanabe et al. (1998), Song & Byun (2004)

& Liu et al. (2003) in hun regelaar uit van het kinematisch verband tussen de snelheden van

de wielen en deze van de omni-directionele robot. Dit verband wordt dan gebruikt om op

basis van de gewenste robotsnelheden de juiste rotatiesnelheden van de wielen te bepalen.

Om verder de overmatige slip en het afwijkend rijgedrag dat er uit volgt te verwerken wordt

er meestal gebruik gemaakt van externe systemen die de werkelijke positie moeten bepalen.

Meestal is dit een camera die van bovenaf de bewegingen van de robot registreert (zie bv

Rojas & Forster (2006)). Deze externe systemen zijn echter beperkt in bereik waardoor de

robot zich niet buiten een bepaalde omgeving mag begeven. Een betere oplossing bestaat erin

extra sensoren op de robot zelf te installeren. Zo wordt bijvoorbeeld in Cooney et al. (2004)

een combinatie van twee optische muizen gebruikt om de beweging van de robot te bepalen.

In deze masterproef zullen we ons toeleggen op het ontwikkelen van een geheel dat niet enkel

een regelsysteem bevat maar tevens ook een geıntegreerd positiebepalingssysteem. Op die

manier willen we een omni-directionele robot realiseren die in eender welke omgeving ingezet

kan worden.

Page 15: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 2

Experimentele opstelling

In hoofdstuk 1 werd reeds aangehaald dat er in deze masterproef gewerkt wordt rond een omni-

directionele robot. In ditzelfde hoofdstuk werden ook twee mogelijke realisaties uiteengezet

waarmee een omni-directioneel rijgedrag mogelijk gemaakt kan worden, namelijk aan de hand

van omni-wielen of mecanum wielen (zie secties 1.1.1 en 1.1.2). Deze laatste optie is wat

aangewend zal worden in de gebruikte opstelling. In wat volgt werken we dus steeds met een

mobiele robot voorzien van vier onafhankelijk aanstuurbare mecanum wielen zoals ontworpen

in Melange et al. (2010).

2.1 Randapparatuur

Om communicatie met en aansturing van de robot mogelijk te maken is deze, naast het

draagframe en de vier mecanum wielen, nog voorzien van de nodige randapparatuur. We

bespreken hier kort alle geınstalleerde componenten. De volledige specificaties ervan zijn

terug te vinden in bijlage B.

2.1.1 Sensoren & actuatoren

Om te beginnen worden alle wielen aangedreven door een DC motor. Typisch hebben deze

motoren een zeer hoog toerental en is er dus nood aan een reductiekast om de snelheid

van de uitgaande as voldoende laag te houden. Bij het ontwerp van de gebruikte robot zijn

echter motoren gebruikt die reeds over een ingebouwde reductiekast beschikken wat het geheel

behoorlijk compact maakt. Hiernaast zijn deze ook voorzien van een encoder die de rotatie

van het wiel tot op 0, 2◦ nauwkeurig volgt. Verder is de robot uitgerust met een Laser Range

Finder (LRF) waarmee hij een beeld van zijn omgeving kan vormen. Dit wordt gerealiseerd

door de afstand te meten tot de omgeving met een frequentie van 1 meetpunt per 0, 36◦ over

een bereik van 240◦. Ten slotte is er op het draagframe nog een reeks van zes infrarode

afstandssensoren opgesteld, drie aan de voorkant en drie aan de achterkant. Deze worden

6

Page 16: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 2. Experimentele opstelling 7

eigenlijk niet gebruikt aangezien de bekomen informatie reeds vervat zit in deze van de LRF,

maar ze kunnen in eenvoudige toepassingen mogelijks wel hun nut bewijzen.

2.1.2 Elektronica

Het aandrijven van de vier DC motoren gebeurt via vier H-bruggen die een PWM signaal

afkomstig van een drietal PIC microcontrollers versterken en doorgeven. Deze microcontrol-

lers staan ook in voor de communicatie met de encoders en de infrarode afstandssensoren.

De communicatie met de LRF wordt verzorgd door een minicomputer waarop het LINUX1

besturingssysteem is geınstalleerd. Het is op deze computer dat het positiebepalingssysteem

en de regelaar geımplementeerd zullen worden. De communicatie met de gebruiker ten slotte

verloopt via een netwerkkabel aangesloten op de minicomputer.

2.1.3 Voeding

Voor de voeding van dit alles kan gekozen worden tussen twee loodaccu’s van 12 V in serie

of een externe voeding die via een extra voedingskabel het vermogen tot bij de robot brengt.

Twee spanningsregelaars controleren dan de voedingsspanning voor de minicomputer, de mi-

crocontrollers en de DC motoren. Er kan echter ook gekozen worden om de minicomputer

van een afzonderlijke voeding te voorzien. Hiervoor is dan een tweede extra voedingskabel

nodig.

2.2 Geometrie

We vermelden hier eerst de belangrijkste geometrische aspecten die nodig zijn voor de kine-

matische studie van de beweging van de robot. Deze gebruiken we vervolgens bij het opstellen

van het theoretisch model dat de beweging van de robot modelleert.

2.2.1 Afmetingen

Het draagframe met de vier mecanum wielen kan als een vierkant met zijde 32 cm opgevat

worden. Dit is de afstand tussen de as van de voorste en achterste wielen alsook de afstand

tussen het midden van de linker en rechter wielen. De wielen zelf zijn 6 ” in diameter. Verder

is de LRF in het midden tussen de vier wielen opgesteld en bevindt deze zich op een hoogte

van 30 cm. Dit alles is ook duidelijk geıllustreerd in figuur 2.1 en samengevat in tabel 2.1.

2.2.2 Kinematisch model

Het kinematisch model is een theoretisch model dat het verband legt tussen de rotatie van

de wielen en de verplaatsing van de robot. Hiermee kunnen we dus theoretisch de verplaat-

1Debian 5.0.5 met Real Time Linux kernel

Page 17: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 2. Experimentele opstelling 8

Figuur 2.1: Geometrische afmetingen van de gebruikte robot.

Tabel 2.1: Overzicht en benoeming van de afmetingen van de gebruikte robot.

Omschrijving Symbool Waarde

Straal van de wielen r 7,62 cm

Afstand tussen de wielen (voor-achter & links-rechts) d 32 cm

Afstand tussen wiel en LRF e 22,63 cm

sing van de robot afleiden uit de rotatie van de vier mecanum wielen. Belangrijker hier is

dat we dus ook de gewenste rotatiesnelheden van de wielen kunnen halen uit de gewenste

verplaatsingsrichting van de robot zelf. Dit kinematisch model is uiteraard afhankelijk van

de hierboven vermelde geometrische afmetingen.

In wat volgt zullen de notaties uit tabel 2.2 gebruikt worden om de verplaatsingssnelheden van

de robot (in cm/s en rad/s) en de rotatiesnelheden van de wielen (in toeren per minuut) aan

te duiden. De nummering van de wielen is geıllustreerd in figuur 2.2 waarop de voorwaartse

rijrichting door de pijl wordt aangeduid.

De gebruikte zijwaartse translatiesnelheid vs is positief voor verplaatsingen naar links en nega-

tief voor verplaatsingen naar rechts gezien vanuit het standpunt van de robot. De rotatiesnel-

heid is positief voor rotaties in tegenwijzerzin indien van bovenaf bekeken. De referentiezin

voor rotatie van de wielen ten slotte komt overeen met deze die men zou verwachten bij een

voorwaarts rijdend vierwielig voertuig.

Bij de uiteenzetting van het mecanum wiel (zie sectie 1.1.2) werd reeds aangehaald dat een

dergelijk wiel zich niet enkel in de logische voor- of achterwaartse richting verplaatst maar

Page 18: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 2. Experimentele opstelling 9

Tabel 2.2: Gebruikte notaties in het kinematisch model.

Omschrijving Symbool Eenheid

Voorwaartse translatiesnelheid vf cm/s

Zijwaartse translatiesnelheid vs cm/s

Rotatiesnelheid ω rad/s

Rotatiesnelheid wiel 1 ω1 tpm

Rotatiesnelheid wiel 2 ω2 tpm

Rotatiesnelheid wiel 3 ω3 tpm

Rotatiesnelheid wiel 4 ω4 tpm

Figuur 2.2: Nummering van de vier mecanum wielen.

een even grote zijwaartse verplaatsing uitvoert. Door een juiste keuze van de rotatiezin van

elk wiel kunnen we dus de robot de gewenste beweging laten uitvoeren. Dit is geıllustreerd

in figuur 2.3.

Om nu de resulterende verplaatsingssnelheden van de robot uit de rotatiesnelheden van de

wielen af te leiden moeten we de bijdrage van elk wiel tot de beschouwde bewegingsrichting

in rekening brengen. Dit geeft de volgende uitdrukking voor de drie verplaatsingssnelheden:

vf =ω1 + ω2 + ω3 + ω4

4f1 (2.1a)

vs =−ω1 + ω2 + ω3 − ω4

4f1 (2.1b)

ω =−ω1 + ω2 − ω3 + ω4

4f2 (2.1c)

Page 19: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 2. Experimentele opstelling 10

Figuur 2.3: De mogelijke bewegingsrichtingen met bijhorende wielsnelheden.

Hierbij zijn f1 respectievelijk f2 de conversiefactoren die de rotatiesnelheden van de wielen

omzetten naar een translatiesnelheid respectievelijk rotatiesnelheid van de robot. Deze zijn

afhankelijk van de geometrie en worden als volgt bepaald:

f1 =2πr

60(2.2a)

f2 =2πr

60√

2e(2.2b)

Wat we nu eigenlijk willen, is het omgekeerde verband dat ons toelaat de gewenste wielsnel-

heden af te leiden uit de vooropgestelde verplaatsing van de robot. We kunnen dit uit het

voorgaande gemakkelijk afleiden en we vinden:

Page 20: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 2. Experimentele opstelling 11

ω1 =vff1− vsf1− ω

f2(2.3a)

ω2 =vff1

+vsf1

f2(2.3b)

ω3 =vff1

+vsf1− ω

f2(2.3c)

ω4 =vff1− vsf1

f2(2.3d)

2.3 Aansturing

Om nu de robot te laten rondrijden moeten we elk van de vier wielen afzonderlijk aansturen.

Dit houdt dus in dat we de gewenste rotatiesnelheid van elk wiel moeten bepalen en deze

doorgeven naar de aansturing van de motoren. Zoals reeds in sectie 2.1.2 vermeld werd komen

er een aantal onderdelen aan te pas bij het doorgeven van deze gewenste rotatiesnelheid van de

gebruiker naar de motoren. We lichten hierna eerst de communicatiestructuren toe, waarna

we de aansturing zelf verder uitwerken.

2.3.1 Communicatiestructuren

Figuur 2.4 geeft een schematisch overzicht van de communicatiestructuur tussen de verschil-

lende onderdelen. De eerste stap bij het aansturen van de motoren is het genereren van de

gewenste rotatiesnelheden van de vier wielen. Dit gebeurt door aan de hand van het be-

sproken kinematisch model de gewenste rijrichting te vertalen naar de vier rotatiesnelheden.

De bekomen snelheden worden vervolgens via de minicomputer doorgestuurd naar een eerste

microcontroller (voorgesteld door PIC1). Deze microcontroller splitst de gekregen snelheden

op (deze voor wiel 1 & 2 en deze voor wiel 3 & 4) en stuurt ze op zijn beurt door naar de twee

volgende microcontrollers (voorgesteld door PIC2a en PIC2b). Deze twee microcontrollers

staan elk in voor het aansturen van twee van de vier wielen. Ze vertalen de rotatiesnelheden

naar een PWM signaal dat via een H-brug uiteindelijk bij de motoren terecht komt.

Bij het aansturen van de motoren is er dus sprake van een eenrichtingsverkeer van de gebruiker

naar de motoren. Deze structuur kan echter ook in twee richtingen doorlopen worden. Dit

is bijvoorbeeld het geval bij het opvragen van informatie uit de encoders in de motoren.

Hierbij wordt dan door de gebruiker eerst een aanvraag verzonden die via de minicomputer

bij de eerste microcontroller terechtkomt. Vervolgens wordt deze aanvraag doorgespeeld naar

de twee ondergeschikte microcontrollers. Deze lezen dan de informatie in afkomstig van

de encoders en uiteindelijk wordt deze in de omgekeerde richting terug naar de gebruiker

verzonden.

Page 21: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 2. Experimentele opstelling 12

Figuur 2.4: Schematische voorstelling van de communicatiestructuur.

Hier komt echter wel een tussenstap bij kijken. De hoofdmicrocontroller zal de informatie uit

de vier encoders namelijk eerst via het kinematisch model vertalen naar verplaatsingen volgens

de drie bewegingsvrijheden van de robot en dit vervolgens doorsturen naar de gebruiker. De

programmacode die dit realiseert is terug te vinden in bijlage A.

2.3.2 Manuele aansturing

In de microcontrollers vertalen we dus de gewenste rotatiesnelheden naar PWM signalen die

aan de motoren aangelegd worden. Hiervoor kunnen we eenvoudigweg gebruik maken van

de beschikbare PID modules op de gebruikte microcontrollers. Dit werd reeds in Melange

et al. (2010) geımplementeerd. Bij deze implementatie moet de gebruiker echter de bewe-

gingssnelheden van de robot doorgeven in plaats van de vier rotatiesnelheden van de wielen.

Deze worden dan in de hoofdmicrocontroller via het kinematisch model vertaald naar de vier

rotatiesnelheden. We willen echter zelf deze vier rotatiesnelheden kunnen bepalen en passen

dus de programmacode aan. De gewijzigde versie van de code die hier gebruikt zal worden is

terug te vinden in bijlage A.

De gebruiker moet nu dus de vier gewenste rotatiesnelheden genereren. Om het manuele aan-

sturen wat eenvoudiger te maken ontwikkelen we een eerste simpele regelaar. Hierbij stellen

we een vaste snelheid in en geven we de gebruiker de keuze tussen enkele mogelijke bewegings-

Page 22: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 2. Experimentele opstelling 13

modi. Deze kan hij dan activeren aan de hand van het numeriek toetsenbord. Tabel 2.3 geeft

een overzicht van deze bewegingsmodi alsook de bijhorende toetsen en stuursignalen. Elke

toets stemt dus met een bepaalde beweging overeen waaraan een set van vier stuursignalen

gekoppeld is, geschaald volgens de ingestelde snelheid v.

Tabel 2.3: Numeriek toetsenbord als invoer voor manuele aansturing.

Stuursignalen

Beweging Toets ω1 ω2 ω3 ω4

Voorwaarts 8 v v v v

Achterwaarts 2 -v -v -v -v

Zijwaarts links 4 -v v v -v

Zijwaarts rechts 6 v -v -v v

Voorwaarts links 7 0 2v 2v 0

Voorwaarts rechts 9 2v 0 0 2v

Achterwaarts links 1 -2v 0 0 -2v

Achterwaarts rechts 3 0 -2v -2v 0

Rotatie links 0 -v v -v v

Rotatie rechts . v -v v -v

Stilstaan 5 0 0 0 0

Voor het bepalen van de schaalfactor v stellen we een translatiesnelheid in x- en/of y-richting

van 5 cm/s voorop. Volgens het kinematisch model komt hier een rotatiesnelheid van de wielen

van 6, 27 tpm mee overeen. Aangezien we echter enkel gehele getallen gebruiken ronden we

dit af naar 6 tpm. De translatie- en rotatiesnelheid van de robot die hiermee overeenstemt is

dan 4, 78 cm/s en 0, 15 rad/s of 8, 6◦/s. We zullen later de gebruiker toelaten de ingestelde

rotatiesnelheid indien gewenst te varieren tussen 1 en 10 tpm.

2.4 Gonzales

De werkelijke uitvoering van de hierboven beschreven robot is te zien in figuur 2.5. In wat

volgt zal naar deze robot steeds verwezen worden met de naam Gonzales.

Page 23: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 2. Experimentele opstelling 14

Figuur 2.5: De werkelijke uitvoering van de gebruikte robot, Gonzales.

Page 24: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 3

Positiebepaling

Zoals reeds eerder vermeld valt de doelstelling uiteen in twee deelaspecten, enerzijds is er

de nood aan positiebepaling en anderzijds moet er een regelaar ontwikkeld worden voor het

aansturen van Gonzales (zie sectie 1.2). In dit hoofdstuk zal de realisatie van het positiebe-

palingssysteem uiteen gezet worden. De ontwikkeling van de regelaar wordt in hoofdstuk 4

behandeld.

3.1 Simultane localisatie en kaartgeneratie

Om aan trajectcontrole te kunnen doen is er dus nood aan een positiebepalingssysteem. Met

dit systeem moet Gonzales in staat zijn zijn huidige positie te bepalen en dit terwijl hij

zich verplaatst. Deze positie-informatie is echter volkomen nutteloos zonder kennis van de

omgeving waarin Gonzales zich bevindt. We moeten dus op een of andere manier over een

kaart van de omgeving beschikken waarin we dan de positie van Gonzales kunnen bepalen.

Voor gebruik in een statische omgeving zouden we ervoor kunnen kiezen om op voorhand

deze omgeving in kaart te brengen. We kunnen deze informatie dan eenmalig inladen zodat

Gonzales deze vanaf dan kan gebruiken bij het bepalen van zijn positie. We willen echter

Gonzales in elke situatie kunnen gebruiken zonder dat deze voorkennis heeft van de omgeving

waarin hij zich bevindt. Hij moet dus niet enkel zijn positie kunnen bepalen, maar ook zelf

zijn omgeving in kaart kunnen brengen.

In sectie 2.1 vermeldden we reeds dat Gonzales uitgerust is met een LRF. Deze sensor kunnen

we gebruiken om de nodige informatie over Gonzales’ omgeving te bekomen. Het gezichtsveld

dat we hiermee verkrijgen is echter wel beperkt tot een bereik van 240◦. Gonzales kan dus

vanuit zijn initiele positie slechts een deel van zijn omgeving scannen. Ook informatie over

aangrenzende ruimtes kan hij onmogelijk vanuit zijn startpostie verkrijgen. Dit zorgt ervoor

dat het in kaart brengen van de omgeving niet op voorhand kan gerealiseerd worden, maar

geleidelijk aan moet gebeuren terwijl Gonzales zich verplaatst. Wat we hier dus nodig hebben

15

Page 25: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 3. Positiebepaling 16

is een positiebepalingssysteem dat simultaan de omgeving in kaart brengt en in deze kaart

dan de huidige positie bepaalt, ook wel simultane lokalisatie en kaartgeneratie of simultanous

localisation and mapping genoemd, afgekort als SLAM.

SLAM op zich is reeds uitgebreid bestudeerd in de literatuur (zie bv Durrant-Whyte & Tim

(2006a) en Durrant-Whyte & Tim (2006b)) en we kunnen hier dus gebruik maken van reeds

bestaande algoritmes. Het algoritme dat hier gebruikt zal worden is het Direct-Particle SLAM

algoritme (DP-SLAM ) ontwikkeld door Eliazar & Parr (2004). Hiervan bestaat reeds een

implementatie die vrij ter beschikking gesteld wordt door de Duke University1. Deze is

hier echter niet direct bruikbaar maar zal wel de basis vormen voor het hierna ontwikkelde

positiebepalingssysteem.

3.2 Direct Particle SLAM

We kiezen er dus voor om DP-SLAM te implementeren op Gonzales als positiebepalings-

systeem. Aangezien het ontwikkelen van het algoritme zelf geen deel uitmaakt van deze

masterproef verwijzen we voor de volledige uiteenzetting ervan naar de bijhorende literatuur.

We geven hier wel een beknopte samenvatting van de logische structuur die de basis vormt

van dit algoritme.

Indien we de belangrijkste programmacode van de beschikbare implementatie sterk zouden

vereenvoudigen krijgen we de volgende pseudocode:

** HOOG NIVEAU **

Initialiseer nieuw grid

Initialiseer nieuwe boomstructuur

Herhaal {

Haal data op {

** LAAG NIVEAU **

Initialiseer nieuw grid

Initialiseer nieuwe boomstructuur

Herhaal n keer {

Haal data op {

Schat nieuwe positie

Scan omgeving

}

Analyseer data {

Genereer deeltjes op basis van voorlopige positie

Evalueer deeltjes

Verwijder onwaarschijnlijke deeltjes

1Deze is te vinden op http://www.cs.duke.edu/~parr/dpslam/.

Page 26: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 3. Positiebepaling 17

Voeg overige deeltjes toe aan de boomstructuur

}

}

Zoek meest waarschijnlijke deeltje

Bepaal overeenkomstige eindpositie

Genereer overeenkomstige kaart

Geef positie en kaart door aan HOOG NIVEAU

** EINDE VAN LAAG NIVEAU **

}

Analyseer data{

Genereer deeltjes op basis van voorlopige positie

Evalueer deeltjes

Verwijder onwaarschijnlijke deeltjes

Voeg overige deeltjes toe aan de boomstructuur

}

}

Zoek meest waarschijnlijke deeltje

Genereer overeenkomstige kaart

** EINDE VAN HOOG NIVEAU **

Wat hieruit meteen opvalt is dat er gewerkt wordt op twee niveaus, een hoofdniveau en een

ondergeschikt niveau. Beide niveaus blijken ook exact hetzelfde proces uit te voeren. We

overlopen even kort dit proces.

Als we de structuur bekijken zien we dat de eigenlijke bewerkingen beginnen bij het lage

niveau. Dit niveau neemt als invoer een schatting van de verplaatsing en een scan van de

omgeving. Op basis van deze geschatte verplaatsing wordt nu eerst een voorlopige indicatie

gemaakt van waar de robot zich kan bevinden. Hierna worden een aantal deeltjes gegenereerd

die elk een mogelijke positie rond deze geschatte positie vertegenwoordigen. Deze deeltjes

worden vervolgens aan de hand van de reeds beschikbare kaart (de gridstructuur) en de scan

van de omgeving geevalueerd op hun probabiliteit. En op basis hiervan worden dan de deeltjes

met de laagste waarschijnlijkheid verwijderd. Dit principe noemt men een deeltjesfilter of ook

wel particle filter, vandaar de naam Direct Particle SLAM.

De overblijvende deeltjes worden dus bewaard en toegevoegd aan een boomstructuur. Deze

boomstructuur stelt eigenlijk het afgelegde traject volgens het desbetreffende deeltje voor.

Gemeenschappelijke takken in deze boomstructuur komen dan overeen met gemeenschappe-

lijke delen in het afgelegde traject.

Na een aantal iteraties wordt uiteindelijk de meest waarschijnlijke verplaatsing tot dan toe

bepaald alsook de hiermee corresponderende kaart. Deze informatie wordt dan als invoer

gebruikt voor het hoge niveau. Hier wordt nu de doorgegeven kaart uit het lage niveau in een

Page 27: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 3. Positiebepaling 18

groter geheel geplaatst volgens exact dezelfde werkwijze. Ten slotte wacht het dan op nieuwe

data afkomstig van het lage niveau. Dit proces blijft zich nu herhalen totdat een stopconditie

(bijvoorbeeld een signaal van de gebuiker of het bereiken van een bepaalde positie) bereikt

wordt waarna dan de volledige kaart van de verkende omgeving gevisualiseerd wordt.

We wijzen erop dat deze beschrijving verre van volledig is. Ze geeft echter wel op een vereen-

voudigde manier de belangrijkste stappen weer die doorlopen worden in het algoritme.

3.3 DP-SLAM voor Gonzales

We vertrekken nu vanuit de ter beschikking gestelde implementatie. Deze is echter ontworpen

voor gebruik op ATRV-Junior, een normaal vierwielig voertuig zoals te zien is op figuur 3.1.

Dit voertuig verschilt echter op een aantal structurele aspecten van Gonzales. De gebruikte

hardware, de geometrie en de aandrijving vormen hierbij de belangrijkste verschillen. Hier-

door behoort een rechtstreekse implementatie niet tot de mogelijkheden. Ook voldoet de

implementatie niet aan onze eisen op vlak van snelheid en uitvoeringsmodus.

Figuur 3.1: ATRV-Junior, de robot waarvoor de beschikbare implementatie ontworpen is.

In Melange et al. (2010) werd reeds een poging ondernomen om deze implementatie geschikt

te maken voor gebruik op Gonzales. Het resultaat blijkt echter niet te werken en we zullen

dus zelf een eigen implementatie realiseren. In wat volgt gaan we dieper in op de ondernomen

stappen bij het omvormen van de beschikbare implementatie naar een bruikbare versie voor

Gonzales.

Page 28: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 3. Positiebepaling 19

3.3.1 Databestanden

Om te beginnen kunnen we de implementatie niet gebruiken terwijl Gonzales rondrijdt. We

kunnen er enkel databestanden mee verwerken die informatie bevatten over het rijgedrag uit

een voorbije sessie. Zoals uiteengezet in de structuur van het algoritme bestaat deze data

uit een ruwe schatting van de verplaatsing en een bijhorende scan van de omgeving. Voor de

specifieke toepassing op Gonzales leiden we deze geschatte verplaatsing af uit de informatie

die we krijgen van de encoders. Hierbij wordt via het kinematisch model van de robot (zie

sectie 2.2.2) de verplaatsing van Gonzales in elk van de drie bewegingsvrijheden afgeleid uit

de rotatie van de vier wielen. De scan van de omgeving kunnen we gemakkelijk realiseren via

de geınstalleerde LRF.

In een eerste stap moeten we dus Gonzales dergelijke databestanden laten genereren. Deze

bestanden kunnen we dan gebruiken om de aangepaste implementatie te testen. We maken

hiervoor gebruik van de manuele aansturing zoals deze in sectie 2.3.2 besproken is. Hiermee

kan de gebruiker Gonzales manueel besturen terwijl deze de nodige databestanden aanmaakt.

Na elke sessie hebben we dan een databestand dat bestaat uit een opeenvolging van datasets.

Zo’n dataset ziet er typisch als volgt uit:

...

Odometry x y theta

Laser 726 P1 P2 P3 ... P726

...

De eerste regel bevat de geschatte verplaatsing van Gonzales (afgeleid uit de encoders). Hier

staan x en y voor de geschatte translatie in de x- en y-richting uitgedrukt in meter en theta

voor de rotatie rondom de z-as uitgedrukt in radialen. De tweede regel bestaat uit 726

datapunten die samen de scan van de omgeving voorstellen. Deze datapunten stellen de

afstand voor van de robot, of beter de LRF, tot zijn omgeving uitgedrukt in meter. Ter

illustratie zijn in figuur 3.2 een aantal van deze scans gevisualiseerd.

Figuur 3.2: Enkele voorbeelden van scans gemaakt met de LRF, de rode stip in het midden stelt

Gonzales’ positie voor.

Page 29: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 3. Positiebepaling 20

3.3.2 Hardware & geometrie

We hebben nu na elke sessie een databestand dat we in principe als invoer voor het algoritme

zouden kunnen gebruiken. Door het verschil in hardware en geometrie is de informatie vervat

in de databestanden van Gonzales echter verschillend van deze in de databestanden gegene-

reerd door ATRV-Junior. Dit verschil is te wijten aan de LRF en zijn positie op de robot, zie

tabel 3.1.

Tabel 3.1: De belangrijkste verschillen tussen Gonzales en ATRV-Junior.

Gonzales ATRV-Junior

Positie LRF centraal vooraan

Bereik LRF 240◦ 180◦

Aantal datapunten 726 181

De gebruikte LRF op Gonzales heeft dus een ruimer bereik alsook een hogere resolutie dan

deze op ATRV-Junior. Ook de positie op de robot is verschillend waardoor beide robots hun

omgeving anders zien. Bij Gonzales is de LRF centraal opgesteld waardoor deze samenvalt

met het rotatiemiddelpunt van de robot terwijl deze bij ATRV-Junior vooraan staat en dus

niet op het rotatiemiddelpunt. Bij pure rotatie zal dus bij Gonzales de LRF ook enkel roteren

terwijl bij ATRV-Junior de LRF naast rotatie ook een translatie uitvoert.

Nu moet het positiebepalingssysteem de positie van (het centrum van) de robot bepalen

en niet deze van de LRF. In de beschikbare implementatie moest dus eerst de geschatte

verplaatsing van de LRF afgeleid worden uit de geschatte verplaatsing van de robot. Deze

informatie kon dan door het algoritme verwerkt worden om de werkelijke positie van de LRF

te bepalen. Op basis hiervan werd dan opnieuw de positie van de robot bepaald. Voor

Gonzales kan dit vereenvoudigd worden, we kunnen hier gewoon werken met de verplaatsing

van de LRF.

3.3.3 Aandrijving

Het grootste verschil tussen Gonzales en ATRV-Junior ligt in de mogelijke bewegingsvrijhe-

den. Zo kan ATRV-Junior zich enkel voor- en achterwaarts verplaatsen volgens een rechte

of gebogen lijn, terwijl Gonzales zich in eender welke richting kan verplaatsen. Nu is de be-

schikbare implementatie enkel voorzien op deze beperkte bewegingsvrijheden en kan deze niet

omgaan met het rijgedrag van Gonzales. Het algoritme zal namelijk de geschatte verplaatsing

vertalen naar een verplaatsing volgens de hoofdrichting, een kleine zijwaartse afwijking en een

wijziging van de orientatie van de robot (rotatie rondom de z-as). Voor gebruik op ATRV-

Junior gaat het algoritme a priori uit van een hoofdrichting volgens de voor- of achterwaartse

Page 30: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 3. Positiebepaling 21

bewegingsrichting en zal een zijwaartse afwijking ontstaan wanneer deze een bocht maakt.

Aangezien Gonzales zich echter in elke richting kan verplaatsen komt deze hoofdrichting slechts

in bepaalde gevallen overeen met de logische voor- of achterwaartse bewegingsrichting. We

moeten het algoritme dus uitbreiden om hiermee rekening te houden. Hiervoor moeten we

uit de informatie omtrent de geschatte verplaatsing van Gonzales eerst deze hoofdrichting

afleiden. Eenmaal we deze bepaald hebben kunnen we dan de geschatte verplaatsing vertalen

naar een verplaatsing volgens deze hoofdrichting, een zijwaartse afwijking en een gewijzigde

orientatie. Deze informatie kan dan wel door het algoritme verwerkt worden om de resulte-

rende positie te bepalen.

3.3.4 Realtime

We hebben nu een bruikbare implementatie die databestanden, gegenereerd door Gonzales,

kan verwerken. De volgende stap is om deze implementatie aan te passen zodat we deze kun-

nen uitvoeren terwijl Gonzales zich verplaatst, we willen deze dus uitvoeren in realtime. Waar

via de manuele besturing eerst databestanden aangemaakt werden die dan door het algoritme

werden ingelezen moeten we nu de nodige informatie doorgeven tijdens het aansturen van de

robot. Op die manier kunnen we de positie bepalen terwijl Gonzales zich verplaatst.

We beschikken dus enerzijds reeds over een regelaar waarbij we manueel stuursignalen gene-

reren en anderzijds over een werkend positiebepalingssysteem. We combineren nu deze twee

delen tot een geheel door gebruik te maken van twee parallelle processen. In het hoofdproces

worden eerst alle communicatiekanalen geınitialiseerd waarna een zijproces wordt gecreeerd

voor het ontwikkelde DP-SLAM algoritme. Dit proces vraagt herhaaldelijk de nodige invoer-

data op via het hoofdproces en geeft op zijn beurt de exacte locatie van Gonzales terug.

Bij deze realtime implementatie behouden we echter wel de optie om databestanden te kunnen

verwerken. We zullen ook steeds tijdens elke sessie deze databestanden blijven aanmaken. Zo

kunnen we op een later tijdstip deze data nog analyseren en mogelijks herevalueren indien we

nog verdere aanpassingen maken aan het positiebepalingssysteem.

3.3.5 Hierarchische structuur

Zoals in de structuur van het algoritme is uiteengezet wordt er gebruik gemaakt van twee

hierarchische niveaus. Na een aantal iteraties op het lage niveau wordt de hier opgebouwde

kaart doorgegeven naar het hoger niveau waar deze in het groter geheel gepast wordt. Hierna

begint het lage niveau opnieuw van nul en dit blijft zich dan herhalen. Beide niveaus doen

dus eigenlijk exact hetzelfde, maar op een andere schaal.

Deze indeling in verschillende niveaus heeft echter enkele grote nadelen. Na elke iteratie

op het hoge niveau moet het lage niveau opnieuw van nul beginnen waarbij alle informatie

Page 31: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 3. Positiebepaling 22

over de huidige positie verloren gaat. Pas nadat de informatie overgedragen is naar het

hoge niveau kan het gevolgde traject gereconstrueerd worden. Verder zorgt deze uitwisseling

van informatie tussen beide niveaus voor een opmerkelijke vertraging van het geheel. Dit is

uiteraard niet wenselijk voor het positiebepalingssysteem dat we willen gebruiken. We kiezen

er dus voor om de opdeling in verschillende niveaus af te schaffen. Aangezien beide niveaus

exact het zelfde doen kunnen we hier gewoon het hoge niveau uitschakelen en enkel met het

lage niveau werken waarin dan alles op een continue manier gebeurt.

3.3.6 Gevolgde traject

Een laatste kleine aanpassing die gemaakt wordt, is het opslaan van het gevolgde traject. De

hierboven gerealiseerde versie houdt wel degelijk alle informatie over de omgeving bij maar

gebruikt enkel de vorige positie om de nieuwe positie te bepalen. Het is dus niet mogelijk

om het gevolgde traject te raadplegen of te visualiseren. Het kan echter wel wenselijk zijn

enerzijds voor de regelaar die we willen ontwikkelen, maar anderzijds ook voor de gebruiker

om het gevolgde traject te analyseren.

Deze laatste uitbreiding voorziet dus de nodige geheugenruimte om het gevolgde traject bij

te houden. Deze wordt ook na elke sessie samen met een volledige kaart van de verkende

omgeving gevisualiseerd en weggeschreven naar .gif bestand (zie bijvoorbeeld figuur 3.3). We

voorzien verder nog de mogelijkheid om dit visualiseren niet enkel op het einde van de sessie

te laten gebeuren, maar ook herhaaldelijk na een instelbaar aantal iteraties. Op die manier

hoeft de gebruiker niet te wachten tot het einde van de sessie om de resultaten te analyseren.

Figuur 3.3: Voorbeeld van de visualisatie van kaart en traject. De doorloopzin van het traject is

aan de hand van een graduele kleurcode kenbaar gemaakt, groen voor het begin en rood

voor het einde.

Page 32: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 3. Positiebepaling 23

3.4 Bespreking eindresultaat

We hebben nu via een aantal stappen de beschikbare implementatie aangepast. Het resultaat

is een realtime positiebepalingssysteem dat de exacte positie van Gonzales kan bepalen terwijl

deze zich verplaatst. Een grondige bespreking van de behaalde resultaten wordt in hoofdstuk 6

gegeven, maar we maken hier reeds een kleine bemerking. De gerealiseerde implementatie

levert wel zeer nauwkeurige resultaten op, maar ze is behoorlijk rekenintensief. Hedendaagse

computers hebben hier uiteraard geen probleem mee, maar de geınstalleerde hardware op

Gonzales is sterk beperkt in rekencapaciteit. Waar een iteratie van het algoritme maximum

0, 5 s in beslag neemt op een moderne computer duurt dit bij uitvoering op Gonzales gemiddeld

4 s. Hier moeten we uiteraard rekening mee houden bij het ontwikkelen van de regelaar.

Page 33: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 4

Regelaars

De regelaar die we in dit hoofdstuk willen ontwikkelen moet in staat zijn stuursignalen te

genereren op basis van de positie verkregen uit het positiebepalingssysteem. Deze stuursig-

nalen moeten ervoor zorgen dat Gonzales het gewenste traject zo nauwkeurig mogelijk volgt.

Hierbij moet de regelaar zich niet alleen baseren op het gewenste traject en de huidige positie,

maar moet deze ook rekening houden met allerlei externe invloeden die mogelijks het rijge-

drag van Gonzales kunnen beınvloeden. Enkele van deze externe invloeden zijn bijvoorbeeld

onregelmatigheden van het rijoppervlak, slijtage van de wielen, een lokaal wijzigende grip. . .

Een dergelijke regelaar kunnen we uiteraard niet in een keer ontwikkelen. Zoals bij het

aanpassen van het positiebepalingssysteem worden ook hier een aantal stappen doorlopen om

uiteindelijk de gewenste regelaar te realiseren. We vertrekken van de meest eenvoudige vorm

waarbij we dan systematisch de tekortkomingen aankaarten en deze aanpakken in een volgende

versie. Op die manier kunnen we elk van deze tekortkomingen afzonderlijk analyseren om tot

de optimale oplossing te komen. In wat volgt gaan we dieper in op elk van de doorlopen

tussenstappen. Voor de bekomen resultaten van elke stap verwijzen we naar hoofdstuk 6.

4.1 Regelaar I: Een klassieke aanpak

We kunnen reeds stuursignalen genereren op basis van de gewenste beweging (zie sectie 2.3.2).

Hierbij is het de gebruiker zelf die bepaalt hoe Gonzales zich moet verplaatsen. Wat we

echter willen is de gewenste beweging afleiden uit het te volgen traject. Hiervoor moeten we

natuurlijk wel eerst dit te volgen traject specificeren.

4.1.1 Het traject

Om het te volgen traject vast te leggen maken we gebruik van een extra invoerkanaal. Dit

doen we door een reeks instructies in een tekstbestand op te slaan en deze als invoer mee te

geven bij het starten van een sessie. Hierbij bestaat elke instructie uit de gewenste verplaatsing

24

Page 34: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 4. Regelaars 25

in de drie vrijheidsgraden voorafgegaan door het kenwoord Drive. De gebruikte eenheden zijn

cm en graden. Zo’n instructiebestand zou er dus bijvoorbeeld als volgt uit kunnen zien:

Drive 50 0 0

Drive 0 50 0

Drive -50 0 0

Drive 0 -50 0

Drive 0 0 180

Hiermee zouden we Gonzales in een vierkant met zijde 50 cm willen laten rijden om erna 180◦

rond zijn as te draaien. Merk op dat deze instructies gebaseerd zijn op het vaste assenstelsel

verbonden aan de omgeving zoals het in sectie 1.1 is gedefinieerd. In dit geval zou Gonzales dus

eerst 50 cm voorwaarts moeten rijden, vervolgens 50 cm naar links, erna 50 cm achterwaarts

en 50 cm naar rechts en ten slotte 180◦ draaien. Indien we het laatste commando echter eerst

hadden geplaatst zou Gonzales nog steeds volgens hetzelfde vierkant moeten rijden, maar zou

hij eraan beginnen met een andere orientatie. Gonzales zou dan eerst 50 cm achterwaarts

moeten rijden in plaats van voorwaarts. We moeten deze instructies dus eerst vertalen naar

het assenstelsel verbonden aan Gonzales vooraleer we er de juiste stuursignalen uit kunnen

afleiden.

4.1.2 De regelaar

Zoals hierboven uiteengezet werd gebruiken we een reeks instructies als invoer. Deze leggen

het te volgen traject ondubbelzinnig vast. Zo komt elke instructie eigenlijk overeen met een

bepaalde positie die Gonzales moet bereiken langsheen het traject. We willen dus nu dat

de regelaar de stuursignalen genereert die ervoor zorgen dat Gonzales zich naar deze posities

begeeft. Eenmaal hij dan bij de eerste positie is aangekomen moet hij zich naar de volgende

begeven net zolang tot alle instructies doorlopen zijn. En dit natuurlijk via de optimale route,

dit wil zeggen volgens het kortst mogelijke pad.

De meest eenvoudige manier om dit gedrag te realiseren is om de gewenste positie te verge-

lijken met de huidige positie. Uit het verschil halen we dan de nodige verplaatsing waaruit

we de gewenste bewegingsrichting kunnen afleiden. Deze bewegingsrichting moeten we dan

vertalen naar het assenstelsel verbonden aan Gonzales waarna we met behulp van het opge-

stelde kinematisch model de vier stuursignalen kunnen genereren (zie hiervoor sectie 2.2.2).

Gonzales’ resulterende verplaatsing wordt dan verwerkt door het positiebepalingssysteem dat

de nieuwe positie bepaalt. Op basis van deze positie kunnen we dan nieuwe stuursignalen

genereren en dit gaat net zo lang door tot Gonzales zijn eindbestemming bereikt. Schematisch

kan dit regelprincipe voorgesteld worden door figuur 4.1. Het superfix w duidt hier aan dat

het om een wenswaarde gaat.

Page 35: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 4. Regelaars 26

Figuur 4.1: Schematische voorstelling van het regelprincipe van regelaar I.

Voor het bepalen van de stuursignalen gebruiken we eigenlijk niet rechtstreeks het kinematisch

model, maar werken we via een kleine omweg. We splitsen eerst de gewenste beweging op

in een translatie en een rotatie. De gewenste translatierichting stellen we voor door een

eenheidsvector in het xy-vlak. Deze eenheidsvector stelt dan de genormeerde snelheid in x-

en y-richting voor. Ook de rotatie normeren we tot ±1. Vervolgens superponeren we de

drie bewegingsmodi waarbij we de rotatie slechts voor de helft laten doorwegen (dit om een

vlotter rijgedrag te krijgen). De bekomen stuursignalen schalen we dan achteraf met een

vaste schaalfactor afhankelijk van de ingestelde snelheid zoals dit bij de manuele aansturing

het geval was (zie sectie 2.3.2). We gebruiken de formules 2.3 dus in een licht gewijzigde vorm:

ω1 = v(vf − vs −ω

2) (4.1a)

ω2 = v(vf + vs +ω

2) (4.1b)

ω3 = v(vf + vs −ω

2) (4.1c)

ω4 = v(vf − vs +ω

2) (4.1d)

Hierbij stellen vf , vs en ω de genormeerde snelheden voor in de drie bewegingsvrijheden en v

de vooraf ingestelde rotatiesnelheid van de wielen (nog steeds standaard ingesteld op 6 tpm).

Merk op dat deze genormeerde snelheden uiteraard ook 0 kunnen zijn indien er enkel nood is

aan translatie of rotatie.

De nood aan translatie en/of rotatie wordt in deze toepassing bepaald aan de hand van twee

verschillende drempelwaarden, een eerste voor de translatie en een tweede voor de rotatie.

Deze drempelwaarden gebruiken we ook om het bereiken van een gewenste positie te karak-

teriseren. Pas indien de afstand tot de gewenste positie onder beide drempelwaarden ligt,

beschouwen we deze positie als bereikt en kan de volgende instructie worden ingelezen. Beide

Page 36: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 4. Regelaars 27

drempelwaarden worden ingesteld op 75 % van de gemiddelde verplaatsing tijdens een ite-

ratie van het positiebepalingssysteem. Deze gemiddelde verplaatsing bekomen we door de

ingestelde translatie- en rotatiesnelheid (zie sectie 2.3.2) te vermenigvuldigen met de gemid-

delde tijdsduur van een iteratie, deze bedraagt ongeveer 4 s.

Bij het opstellen van deze regelaar baseren we ons dus op een louter theoretisch model en dit

kan natuurlijk in een bepaalde mate afwijken van de werkelijke uitvoering. In een volgende

stap proberen we op dit vlak verbetering aan te brengen.

4.2 Regelaar II: CMA-ES

Deze regelaar werkt volgens exact het zelfde principe als regelaar I en verschilt slechts op een

enkel punt: het kinematisch model (zie ook figuur 4.2). Een nadeel aan de vorige regelaar is

namelijk dat deze op een puur theoretische basis is opgesteld en dus in zekere mate afwijkt

van de realiteit. Hierdoor zullen de gegenereerde stuurcommando’s niet altijd resulteren in

de verwachte verplaatsingen, maar kan een zekere fout optreden.

Figuur 4.2: Schematische voorstelling van het regelprincipe van regelaar II.

In deze tweede regelaar proberen we het model beter af te stemmen op de werkelijke uitvoering.

Hierdoor kunnen we met onregelmatigheden en afwijkingen in de geometrie rekening houden

en deze opnemen in een aangepast model. De methode die we hiervoor toepassen is gebaseerd

op CMA-ES of voluit covariantie-matrix adaptatie evolutionaire strategie. Het opstellen van

het aangepaste model aan de hand van deze methode kadert in een samenwerkingsproject

met de Ruhr-Universiteit in Bochum, Duitsland. Meer specifiek vormt het een onderdeel van

de doctoraatscriptie van Verena Heidrich-Meisner. De hier gebruikte evolutionaire strategie

werd voorgesteld in Hansen et al. (1995), verder ontwikkeld in Hansen & Ostermeier (2001)

& Hansen et al. (2003) en op punt gesteld in Hansen & Auger (2005). We verwijzen dan ook

naar deze literatuur voor een gedetailleerde bespreking en beperken ons hier tot een korte

uiteenzetting van de toepassing ervan in deze situatie.

Page 37: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 4. Regelaars 28

4.2.1 CMA-ES leerstrategie

Wat we hier dus willen realiseren is een model dat beter voldoet aan de realiteit. We vertrekken

hiervoor van het reeds eerder opgestelde kinematisch model (zie sectie 2.2.2) maar voegen een

aantal variabele parameters toe. Om te beginnen voeren we vier wielspecifieke correcties in.

Dit vertaalt zich in een extra additieve term in elk van de formules 4.1. Verder worden ook

twee multiplicatieve termen toegevoegd bij de gebruikte drempelwaarden. Deze hebben geen

invloed op het model maar kunnen wel het algemeen rijgedrag verbeteren. In het originele

model zouden de vier additieve parameters dus 0 zijn en de twee multiplicatieve gelijk aan 1.

Om nu tot de optimale waarden voor deze parameters te komen vertrekken we van 6 combi-

naties waarin we aan elke parameter een willekeurige waarde toekennen. Deze 6 combinaties

duiden we aan als de eerste generatie. We evalueren nu elk van deze combinaties en selecteren

er de drie beste uit (de gebruikte testprocedure bespreken we uitvoerig in hoofdstuk 6). Op

basis van de drie best presterende combinaties genereren we nu 6 nieuwe combinaties, die

we samen als de tweede generatie aanduiden. Ook deze worden dan geevalueerd om er op-

nieuw de drie beste uit te selecteren. Dit proces blijven we nu uitvoeren totdat na een aantal

generaties er geen merkbare verbetering meer optreedt.

Dit leerproces voeren we zowel uit in een simulatieomgeving als in de praktijk, voor de re-

sultaten ervan verwijzen we opnieuw naar hoofdstuk 6. We merken nu echter reeds op dat

met deze methode nauwelijks tot geen verbetering gerealiseerd wordt. De grootste oorzaak

hiervoor is het reeds eerder aangehaalde probleem met betrekking tot de tijdsduur van het

positiebepalingssysteem (zie sectie 3.4). We werken dit verder uit in een volgende regelaar.

4.3 Regelaar III: Tijdsvertragingen

4.3.1 Situatieschets

Om het probleem verbonden aan de de tijdsduur van het positiebepalingssysteem te verdui-

delijken beschouwen we de verschillende fases die doorlopen worden in het positiebepalings-

systeem en de regelaar:

� positiebepalingssysteem

1. Haal nieuwe informatie uit sensoren op

2. Schat de nieuwe positie

3. Bepaal de exacte nieuwe positie

� Regelaar

1. Wacht op positie-informatie

Page 38: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 4. Regelaars 29

2. Bepaal de afstand tot de gewenste positie

3. Vergelijk deze afstand met de drempelwaarden

4. Genereer de vier stuursignalen

Dit blijft zich dus herhalen totdat de gewenste positie bereikt is. Indien we deze twee parallelle

processen nu op een tijdsas zouden voorstellen krijgen we figuur 4.3. We kunnen hier bij de

regelaar duidelijk twee delen in onderscheiden: het wachten op informatie en het verwerken

ervan. We moeten hier echter benadrukken dat de positie die de regelaar binnenkrijgt eigenlijk

de positie is waar Gonzales zich bevond tijdens fase 1 van het positiebepalingssysteem. Zoals

reeds eerder opgemerkt in sectie 3.4 neemt een iteratie van het positiebepalingssysteem een

tijd in van ongeveer 4 s. De regelaar bepaalt dus zijn stuursignalen eigenlijk op basis van de

positie waar hij zich enkele seconden geleden bevond. We kunnen dan ook niet verwachten

dat deze stuursignalen zullen resulteren in het gewenste rijgedrag.

Figuur 4.3: Voorstelling van het tijdsverloop volgens regelaars I & II.

Verder ondervindt ook het bereiken van de eindbestemming hier hinder van. Indien Gonzales

namelijk zijn eindbestemming bereikt zal hij zich dit pas enkele seconden later realiseren. Op

dat moment is hij er echter reeds voorbijgereden en moet hij terugkeren. Dit kan dus de

oorzaak zijn van een oscillerend rijgedrag rondom de gewenste positie. Dit probleem zullen

we nu aanpakken in deze regelaar.

4.3.2 De regelaar

Beide vorige regelaars zijn dus beperkt in hun nauwkeurigheid door de tijdsvertraging tussen

het bereiken van een bepaalde positie en het bepalen ervan (zie ∆t in figuur 4.3). Om het

gewenste rijgedrag te kunnen realiseren moeten we de positie van Gonzales kennen op het

Page 39: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 4. Regelaars 30

moment dat we de stuursignalen genereren. Enkel deze exacte positie laat ons toe om de

juiste aansturing van de wielen te verkrijgen. Zoals hierboven vermeld duurt het echter te

lang om de exacte positie te bepalen en kunnen we deze dus eigenlijk niet gebruiken voor het

bepalen van de stuursignalen.

Als eerste oplossing hiervoor zouden we de gekende verplaatsing van Gonzales tijdens de

vorige tijdstap kunnen extrapoleren om de huidige positie te bekomen. Dit houdt echter geen

rekening met wijzigende stuursignalen. Beter is het om deze stuursignalen te vertalen naar

een verwachte verplaatsing en deze te superponeren op de laatst gekende positie. Hiervoor

moeten we dan wel de duur van een iteratie op voorhand kennen. Via het kinematisch model

vertalen we namelijk de stuursignalen, of dus de verwachte rotatiesnelheden van de vier wielen,

naar de bewegingssnelheden van Gonzales (zie sectie 2.2.2). Om hier dan een verplaatsing

uit te halen moeten we weten hoe lang Gonzales zich aan deze snelheid voortbeweegt. Het

probleem is nu dat deze tijdsduur geen constante is. Dit maakt het dus onmogelijk om een

goede schatting te maken van de huidige positie van Gonzales.

Wat we wel kunnen doen is de informatie uit de encoders gebruiken in plaats van de stuur-

signalen. Deze encoders geven niet de rotatiesnelheid, maar de hoek waarover elk wiel is

geroteerd. Via het kinematisch model kunnen we dan deze rotatie van de vier wielen vertalen

naar de verplaatsing van Gonzales. Dit is trouwens ook wat toegepast wordt in fase 2 van het

positiebepalingssysteem. Deze methode is dus niet afhankelijk van de variabele tijdsduur en

zoals reeds te zien was op figuur 4.3 is deze informatie reeds veel vroeger beschikbaar dan de

exacte positie. Indien we dit toepassen krijgen we een tijdsvoorstelling zoals deze in figuur 4.4

is geıllustreerd. Hier is dus de vertraging ∆t veel kleiner dan bij de vorige regelaars. Een

schematische voorstelling van de regelstructuur van deze regelaar is te zien in figuur 4.5.

We verwachten nu met deze methode een grote verbetering van de nauwkeurigheid van de

trajectcontrole te realiseren, wat bevestigd wordt bij de bespreking van de behaalde resultaten

in hoofdstuk 6. Optimaal is de regelaar echter nog niet. We werken namelijk met een schatting

van de huidige positie. Deze is verschillend van de werkelijke positie waardoor we nog steeds

fouten krijgen in de stuursignalen. Deze fouten zijn weliswaar veel kleiner dan in de vorige

regelaars, maar we kunnen ze niet verder reduceren. Ook fouten afkomstig van het verschil

tussen het theoretisch model en de werkelijke uitvoering kunnen we momenteel nog niet

corrigeren. Hier kunnen we echter wel iets aan doen en dit zullen we in de volgende regelaar

uitwerken.

Page 40: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 4. Regelaars 31

Figuur 4.4: Voorstelling van het tijdsverloop volgens regelaar III.

Figuur 4.5: Schematische voorstelling van het regelprincipe van regelaar III.

4.4 Regelaar IV: Foutcorrecties

Zoals hierboven aangehaald werd, is het in de vorige regelaars nog niet mogelijk om foutieve

stuursignalen te detecteren en bij te sturen. De enige regellus die in de vorige regelaars

aanwezig is levert ons enkel de gewenste rijrichting op basis van de gewenste positie. Uit deze

rijrichting halen we dan via het kinematisch model de stuursignalen (zie sectie 2.2.2), maar

een controle en/of bijsturing van deze stuursignalen is er dus nog niet.

In deze regelaar zullen we nu een extra regellus invoeren die instaat voor het corrigeren van

de stuursignalen indien nodig. We realiseren dit door niet enkel de gewenste positie met de

werkelijke te vergelijken, maar door ook de gewenste rijrichting, die uit de eerste regellus volgt,

te vergelijken met de werkelijke rijrichting. De afwijking ertussen kunnen we dan gebruiken als

Page 41: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 4. Regelaars 32

maat voor het correctiesignaal. Figuur 4.6 toont aan hoe dit zich vertaalt in de schematische

voorstelling.

Figuur 4.6: Schematische voorstelling van het regelprincipe van regelaar IV.

Om deze foutcorrectie mogelijk te maken moeten we dus wel de werkelijke rijrichting kennen.

Aangezien we het gevolgde traject bijhouden (zie sectie 3.3.6) zouden we gewoon de rijrichting

uit de laatste iteratie kunnen gebruiken. Dit gaat echter niet aangezien we door de tijdsver-

traging dan eigenlijk de werkelijke rijrichting uit de vorige tijdstap zouden gebruiken en niet

de huidige. Dit kunnen we oplossen door opnieuw gebruik te maken van de informatie uit de

encoders en met een schatting van de huidige rijrichting te werken. De informatie die we uit

de encoders krijgen is echter de afgelegde weg. Deze is natuurlijk afhankelijk van de tijdsduur

van de beschouwde iteratie. Om dit in rekening te brengen houden we de tijdsduur van elke

iteratie bij. We kunnen dan uit de geschatte afgelegde weg en de overeenkomstige tijdsduur

de geschatte verplaatsingssnelheid van Gonzales bepalen. Deze kunnen we vergelijken met de

gewenste verplaatsingssnelheid en het verschil is dan een maat voor de nodige correcties op

de stuursignalen.

Nu hebben we dus een regelaar die correctere stuursignalen genereert en deze indien nodig

nog verder bijstuurt. We zouden nu dus in staat moeten zijn Gonzales volgens de gewenste

rijrichting naar zijn eindpositie te laten rijden. Het bereiken van deze eindpositie wordt dan

gekenmerkt door het overschrijden van twee drempelwaarden zoals dit in regelaar I uiteengezet

werd (zie sectie 4.1.2).

Aangezien we een vast ingestelde rotatiesnelheid gebruiken (zie sectie 2.3.2) zal Gonzales zich

in elke stap steeds over een minimale afstand verplaatsen. Nu zal echter in de laatste stap

de resterende afstand tot de eindbestemming meestal verschillend zijn van deze minimale

afstand. Gonzales kan dus de exacte eindpositie eigenlijk niet bereiken en hierdoor moeten

we de drempelwaarden behoorlijk ruim instellen. Er zal dus steeds een blijvende fout zijn

tussen Gonzales’ positie en de gewenste eindpositie. Deze fout kan varieren tussen nul en de

ingestelde drempelwaarden. Dit willen we nu verbeteren in een volgende en laatste regelaar.

Page 42: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 4. Regelaars 33

4.5 Regelaar V: Variabele snelheid

De aanpassing die we in deze regelaar invoeren heeft dus als doel Gonzales dichter bij zijn

eindbestemming te laten eindigen. Hiervoor maken we gebruik van een variabele snelheid. De

waarde van deze snelheid zullen we afleiden uit Gonzales’ huidige positie en de beschouwde

eindbestemming.

Praktisch realiseren we dit door in elke stap de resterende afstand tot de gewenste positie te

vergelijken met de afstand die Gonzales in een iteratie van gemiddelde duur aflegt. Zolang de

afstand tot de gewenste positie groter is, behouden we de vaste ingestelde snelheid. Indien de

resterende afstand echter kleiner is, passen we de ingestelde snelheid aan. We doen dit door

de snelheid te herschalen volgens de verhouding van de resterende afstand tot de gemiddelde

afstand.

Aangezien we twee afzonderlijke drempelwaarden gebruiken voor het bereiken van de eindpo-

sitie voeren we hier ook twee afzonderlijke schaalfactoren in, een voor de translatiesnelheid en

een voor de rotatiesnelheid. Dit komt er dus op neer dat we de formules 4.1 in een aangepaste

vorm toepassen:

ω1 = v(ft(vf − vs)− frω

2) (4.2a)

ω2 = v(ft(vf + vs) + frω

2) (4.2b)

ω3 = v(ft(vf + vs)− frω

2) (4.2c)

ω4 = v(ft(vf − vs) + frω

2) (4.2d)

Hierbij zijn ft respectievelijk fr de ingevoerde schaalfactoren voor de translatie- respectievelijk

de rotatiesnelheid. Schematisch gezien blijft het regelprincipe dus hetzelfde als dat van de

vorige regelaar (zie figuur 4.6), maar het gebruikte model laat nu variabele snelheden toe.

Hierdoor zou Gonzales theoretisch gezien exact op zijn eindpositie moeten eindigen na de

laatste stap. Door de variabele tijdsduur van een stap verwachten we echter nog steeds een

blijvende fout die echter wel een stuk kleiner is dan bij de vorige regelaars. Dit wordt opnieuw

bevestigd door de behaalde resultaten besproken in hoofdstuk 6).

Doordat we nu Gonzales dichter bij zijn eindbestemming kunnen laten eindigen kunnen we

ook de gebruikte drempelwaarden sterk verlagen. Waar deze 75 % van de gemiddelde afstand

in een iteratie bedroeg bij voorgaande regelaars kunnen we deze hier verlagen tot twee maal

de minimale afstand in een iteratie. Deze minimale afstand halen we uit de minimale ver-

plaatsingssnelheid die op zich volgt uit de minimale rotatiesnelheid van de wielen, namelijk

1 tpm.

Page 43: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 4. Regelaars 34

4.6 Overzicht

In het voorgaande hebben we nu een vijftal regelaars ontwikkeld uitgaande van het meest

eenvoudige regelprincipe om dan systematisch via structurele verbeteringen tot een optimaal

eindresultaat te komen. We overlopen hier nog eens kort wat we gerealiseerd hebben.

Regelaar I vormt de fundering waarop alle volgende regelaars gebaseerd zijn. Deze gaat

enkel uit van de positie-informatie verkregen van het positiebepalingssysteem en het kine-

matisch model dat Gonzales’ bewegingen beschrijft. Dit model is op een puur theoretische

wijze opgesteld en we verwachten dus afwijkingen tegenover de realiteit. Hiervoor werd een

tweede regelaar ontwikkeld, regelaar II, die enkel op vlak van dit theoretische model verschilt

van regelaar I. Aan de hand van een evolutionaire leerstrategie (CMA-ES ) werd het model

afgestemd op de werkelijke uitvoering van Gonzales.

Hiermee werd echter geen verbetering gehaald. De reden hiervoor is dat door de tijdsvertra-

gingen in het positiebepalingssysteem de verkregen positie-informatie te laat beschikbaar is

in de regelaar. Hierdoor worden foutieve stuursignalen gegenereerd. Om hiermee rekening

te houden werd regelaar III gerealiseerd. Deze gebruikt iets minder accurate informatie die

echter wel op tijd beschikbaar is.

Om vervolgens verdere afwijkingen in de aansturing te kunnen detecteren en bijsturen ont-

wikkelden we regelaar IV. Deze beschikt over een extra regellus die naast de positiecontrole

ook bewegingscontrole uitvoert. Hierbij wordt indien nodig het model aangepast om toch de

juiste stuursignalen te verzekeren. In een laatste stap ten slotte voegden we de mogelijkheid

toe om een variabele snelheid te gebruiken in de aansturing om Gonzales dichter bij zijn

einddoel te laten eindigen.

De evolutie doorheen de verschillende regelaars kunnen we dus eigenlijk kenmerken aan de

hand van drie aspecten: de verhouding theorie vs realiteit, de aanpak van tijdsvertraging en

het niveau van de regelstructuur. Het eerste en laatste aspect kunnen we echter niet los van

elkaar beschouwen. In regelaars IV en V wordt namelijk in de regeling een aanpassing van

het model gerealiseerd. Het niveau van de regelstructuur heeft dus een zekere invloed op de

verhouding theorie vs realiteit. Tabel 4.1 geeft een overzicht van de verschillende regelaars

waarbij de drie beschouwde aspecten geevalueerd worden.

Voor de behaalde resultaten van elk van de regelaars verwijzen we naar hoofdstuk 6.

Page 44: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 4. Regelaars 35

Tabel 4.1: Een overzicht van de verschillende regelaars.

Regelaar Theorie vs realiteit Aanpak ∆t Regelniveau

Regelaar I * X *

Regelaar II ** X *

Regelaar III * V *

Regelaar IV *** V **

Regelaar V *** V ***

Page 45: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 5

Hoe te gebruiken

5.1 Verbinden met Gonzales

Vooraleer we iets kunnen uitvoeren op Gonzales moeten we eerst een verbinding opstellen

tussen de computer van de gebruiker en de computer op Gonzales. Dit doen we via het

Secure Shell protocol of SSH protocol.

Eenmaal aangemeld kunnen we dan naar de startlocatie1 navigeren waar de ontwikkelde

programmabestanden zich bevinden (de volledige programmacode is ook opgenomen in bij-

lage A). Vanuit deze locatie kunnen we het gewenste programma uitvoeren. Dit is ook de

locatie waar alle in- of uitvoer bestanden staan.

5.2 Indeling

Om het positiebepalingssysteem samen met een van de hierboven besproken regelaars te ge-

bruiken moet de gebruiker het corresponderende programma uitvoeren. Voor elke regelaar is

een apart hoofdbestand aangemaakt dat het regel-gedeelte bevat. Het positiebepalingssys-

teem en de communicatiestructuren zijn voor alle regelaars hetzelfde en de overige program-

mabestanden zijn dan ook gedeeld. Om het overzicht te bewaren worden de programmabe-

standen volgens hun hoofddoel opgedeeld in drie categorieen en in een overeenkomstige map

geplaatst:

/Slam In deze map bevinden zich de bestanden die deel uitmaken van het positiebepalings-

systeem.

/Robot Hierin zitten alle programmabestanden die instaan voor de communicatie tussen en

aansturing van de verschillende hardware onderdelen van de robot (computer, micro-

controllers, sensoren & motoren).

1/home/gonzales/Robot/Controller

36

Page 46: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 5. Hoe te gebruiken 37

Hoofdbestand De regelaar zelf is uitgevoerd in een enkel bestand dat tevens het hoofdbe-

stand van het geheel vormt. Voor elke regelaar is dus een verschillend hoofdbestand

aangemaakt en het is dit bestand dat de gebruiker moet uitvoeren. Deze bestanden be-

vinden zich niet in een afzonderlijke map maar op de startlocatie waar ook beide vorige

mappen te vinden zijn. Tabel 5.1 bevat een overzicht van de verschillende regelaars en

bijhorende hoofdbestanden.

Tabel 5.1: De verschillende regelaars met bijhorend hoofdbestand.

Regelaar Hoofdbestand

Manuele aansturing Gonzales.cpp

Regelaar I Gonzales-I.cpp

Regelaar III Gonzales-III.cpp

Regelaar IV Gonzales-IV.cpp

Regelaar V Gonzales-V.cpp

De aandachtige lezer heeft waarschijnlijk opgemerkt dat regelaar II hier niet is opgenomen.

Regelaar II bevat naast het positiebepalingssysteem en de regelaar namelijk ook nog een extra

deel dat instaat voor het leerproces. Hiervoor zijn extra bestanden nodig die in geen enkele

overige regelaar gebruikt worden. Het leerproces voor deze regelaar is afzonderlijk gerealiseerd

met als enige doel het gebruikte theoretisch model in regelaar I meer op de werkelijkheid af

te stemmen. Het resultaat ervan, de zes parameters (zie sectie 4.2.1), kunnen we beoordelen

door deze parameters in regelaar I te verwerken en deze dan uit te voeren.

5.3 Uitvoering

Vooraleer we de gekozen regelaar kunnen uitvoeren moet deze eerst gecompileerd worden.

Aangezien er een verschillend hoofdbestand is voor elk van de regelaars zijn er ook verschil-

lende compilatiebestanden gecreeerd. Tabel 5.2 geeft een overzicht van het te gebruiken

commando voor het compileren van elk van de regelaars.

Nadat de regelaars gecompileerd zijn, kunnen deze eenvoudigweg uitgevoerd worden met de

commando’s uit tabel 5.3.

Bij de ontwikkelde regelaars zal Gonzales na het ingeven van dit commando het ingestelde

traject beginnen volgen en zal het programma beeindigd worden na het bereiken van de laatste

gewenste positie. Bij de manuele aansturing moet de gebruiker zelf de gewenste beweging

ingeven zoals reeds in sectie 2.3.2 is besproken. Om de manuele aansturing te beeindigen

moet de gebruiker de X-toets van het toetsenbord indrukken. Dit kan ook bij de regelaars

gebruikt worden om het programma te beeindigen nog voor het traject volledig is afgelegd.

Page 47: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 5. Hoe te gebruiken 38

Tabel 5.2: De verschillende compilatiebestanden en -commando’s voor de ontwikkelde regelaars.

Regelaar Commando

Manuele aansturing make

Regelaar I make -f Makefile-I

Regelaar III make -f Makefile-III

Regelaar IV make -f Makefile-IV

Regelaar V make -f Makefile-V

Tabel 5.3: De commando’s voor het uivoeren van de verschillende regelaars.

Regelaar Commando

Manuele aansturing ./Gonzales

Regelaar I ./Gonzales-I

Regelaar III ./Gonzales-III

Regelaar IV ./Gonzales-IV

Regelaar V ./Gonzales-V

5.4 Extra opties

Zoals reeds eerder vermeld zijn er een aantal opties die resulteren in een gewijzigde uitvoering

van de gekozen regelaar. We overlopen eerst de verschillende opties en leggen erna uit hoe we

deze kunnen selecteren.

Om te beginnen kunnen we er bijvoorbeeld voor kiezen om tijdens de uitvoering databestan-

den aan te maken die de nodige informatie bevatten voor het positiebepalingssysteem (zie

sectie 3.3.1). Logischerwijs kunnen we er dan ook voor kiezen dit positiebepalingssysteem af-

zonderlijk uit te voeren op basis van deze databestanden. Verder kunnen we ook de standaard

bewegingssnelheid (zie sectie 2.3.2) zelf instellen indien we willen dat Gonzales zich vlugger

of trager verplaatst dan de standaard snelheid.

Een andere optie die geen invloed heeft op de werking van de regelaar maar wel op de invoer

van het traject is de volgende. Indien we Gonzales niet manueel aansturen maar een vooraf

gedefinieerd traject willen gebruiken moeten we dit traject in een tekstbestand opslaan zoals in

sectie 4.1.1 is uiteengezet. Standaard wordt dit bestand drive.log genoemd en zal de regelaar

dit traject volgen. Het kan echter handig zijn om verschillende trajecten in afzonderlijke

bestanden op te slaan. Indien we dan een van deze andere invoerbestanden willen gebruiken

moeten we dit doorgeven aan de regelaar. Deze optie stelt de gebruiker dus in staat om

Gonzales verschillende trajecten te laten volgen zonder telkens het invoerbestand te moeten

Page 48: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 5. Hoe te gebruiken 39

aanpassen. Uiteraard is deze optie enkel beschikbaar bij de werkelijke regelaars (I tot en met

V) en niet bij de manuele aansturing.

Een laatste optie die geselecteerd kan worden laat ons toe de regelaar te evalueren. Indien

we de regelaar willen beoordelen op zijn nauwkeurigheid kunnen we deze uitvoeren in een

testmodus. In deze testmodus zal de regelaar extra informatie opslaan omtrent het gevolgde

traject en zal de uitvoering ook in zekere mate wijzigen. De testprocedure zelf wordt verder in

detail uiteengezet in sectie 6.2.1. We vermelden hier enkel het bestaan ervan. Deze testmodus

is opnieuw enkel beschikbaar bij de regelaars zelf.

Om nu een of meerdere van de besproken opties te activeren volstaat het om simpelweg een

of meerdere extra argumenten in te geven bij het uitvoeren van de regelaar. Tabel 5.4 geeft

een overzicht van de verschillende opties en de bijhorende argumenten.

Tabel 5.4: De te gebruiken argumenten voor het activeren van de extra opties.

Argument Resultaat

-R Data voor positiebepalingssysteem opslaan in current.log

-r bestandsnaam Data voor positiebepalingssysteem opslaan in bestandsnaam

-P positiebepalingssysteem uitvoeren op basis van current.log

-p bestandsnaam positiebepalingssysteem uitvoeren op basis van bestandsnaam

-x Referentie voor rotatiesnelheid van de wielen instellen op x tpm

(x stelt hier een getal voor gaande van 1 tot 10)

-D bestandsnaam Het te volgen traject inlezen uit bestandsnaam

-E De regelaar evalueren in testmodus

Deze opties kunnen gecombineerd worden en mogen in een willekeurige volgorde ingegeven

worden. Enkel de optie om het positiebepalingssysteem afzonderlijk uit te voeren vormt

hierop een uitzondering en kan niet gecombineerd worden met andere opties. Verder zijn

zoals vermeld de laatste twee opties enkel beschikbaar bij de regelaars zelf en niet bij de

manuele aansturing.

Page 49: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 6

Resultaten

In dit hoofdstuk bespreken we de behaalde resultaten van het positiebepalingssysteem en de

ontwikkelde regelaars. In een eerste sectie gaan we dieper in op het positiebepalingssysteem.

Hierbij zullen we de resultaten presenteren die volgen uit het positiebepalingssysteem terwijl

we Gonzales manueel aansturen (zie sectie 2.3.2). In een tweede sectie vervolgens bespreken we

het prestatieniveau van elk van de regelaars. We zetten hier eerst de gebruikte testprocedure

uiteen waarna we de resultaten van de ontwikkelde regelaars bespreken en vergelijken.

6.1 Het positiebepalingssysteem

Zoals uiteengezet in sectie 3.3 zijn een aantal stappen ondernomen om een werkend positiebe-

palingssysteem te ontwikkelen. We zullen hier niet het resultaat na elke stap bespreken maar

gaan enkel in op het eindresultaat.

Aangezien het ontwikkelde positiebepalingssysteem volledig onafhankelijk is van de manier

waarop Gonzales aangestuurd wordt kunnen we dezelfde nauwkeurigheid verwachten bij ge-

bruik van de regelaars als van de manuele aansturing. Zoals vermeld in de inleiding van dit

hoofdstuk zullen we hier dan ook enkel de resultaten bespreken die behaald werden met het

positiebepalingssysteem bij manuele aansturing van Gonzales.

6.1.1 Gebruik in een statische ruimte

In een eerste testfase stellen we Gonzales op in een bepaalde ruimte en laten we hem rondrijden

zodat hij min of meer de volledige ruimte gezien heeft. Hierbij letten we erop dat Gonzales

de ruimte niet verlaat. We zorgen er verder ook voor dat er geen bewegende voorwerpen

aanwezig zijn. Figuur 6.1 geeft een voorbeeld van het resultaat van deze testfase.

We geven zowel het eindresultaat als enkele tussenstappen weer. Zoals in sectie 3.3.6 uiteen-

gezet werd wordt op de kaart ook steeds het gevolgde traject gevisualiseerd. Om dit traject

40

Page 50: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 6. Resultaten 41

aanschouwelijker te maken gebruiken we hiervoor een graduele kleurcode. Het begin wordt

gekenmerkt door een groene kleur terwijl het einde (tot dan toe) in het rood wordt weer-

gegeven. Ertussenin wordt een graduele overgang toegepast. Om echter de figuur niet te

overladen geven we hier momenteel enkel de positie weer en niet de orientatie.

Figuur 6.1: Resultaat van het positiebepalingssysteem in een statische ruimte.

Zoals dus te zien is op figuur 6.1 krijgen we als eindresultaat een behoorlijk nauwkeurige kaart.

De nauwkeurigheid van deze kaart is een maat voor de precisie van de bepaalde positie. Op

de kaart is op bepaalde plaatsen wel enige ruis merkbaar, maar deze is tamelijk beperkt en

heeft dan ook slechts een minieme invloed op de nauwkeurigheid van de positiebepaling. We

wijzen er verder nog op dat het grillige verloop van het traject volstrekt normaal is aangezien

hier nog geen enkele regelstructuur gebruikt wordt.

Page 51: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 6. Resultaten 42

6.1.2 Gebruik in aangrenzende statische ruimtes

Na de eerste testfase waarin Gonzales zich steeds binnen eenzelfde ruimte bevond, testen we

nu het positiebepalingssysteem bij heen-en-weer verplaatsingen tussen aangrenzende ruimtes.

Hierbij werken we nog steeds in een statische omgeving waarbij geen bewegende voorwerpen

aanwezig zijn. Figuur 6.2 geeft het resultaat hiervan weer.

Figuur 6.2: Resultaat van het positiebepalingssysteem in aangrenzende ruimtes.

We krijgen opnieuw een zeer nauwkeurige kaart van beide ruimtes. Het gevolgde traject is

ook hier gevisualiseerd aan de hand van de besproken kleurcode. Het positiebepalingssysteem

heeft dus duidelijk geen moeite om op een correcte manier verschillende ruimtes in een groter

geheel te verwerken.

Page 52: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 6. Resultaten 43

6.1.3 Gebruik in een dynamische omgeving

In een derde en laatste fase testen we het positiebepalingssysteem in een dynamische om-

geving. In beide vorige testen waren geen bewegende voorwerpen aanwezig. In werkelijke

situaties echter verwachten we natuurlijk wel een of meerdere dynamische objecten. Om

dit aspect in rekening te brengen plaatsen we Gonzales in een omgeving waar ook meerdere

personen zich verplaatsen. Het resultaat is weergegeven in figuur 6.3.

Figuur 6.3: Resultaat van het positiebepalingssysteem in een dynamisch ruimte.

We zien op deze figuur hoe Gonzales zich beweegt en ondertussen de omgeving in kaart brengt.

De bewegende personen zijn te herkennen aan de grijze stippen. In een eerste opname (links-

Page 53: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 6. Resultaten 44

boven op figuur 6.3) worden de aanwezige personen gescand en als vaste objecten weergegeven.

In hierop volgende opnames zullen deze personen als nieuwe objecten weergenomen worden

op andere posities die eerder vrij waren. Dit terwijl de eerder ingenomen posities plots vrij

komen. Dit resulteert in het vervagen van de eerder bezette posities en het ontstaan van

nieuwe stippen. Deze nieuwe stippen zijn echter lichter van kleur. De kleurintensiteit van

een positie op de kaart is namelijk gelinkt aan de waarschijnlijkheid dat deze positie bezet

is. Zo zouden, indien alle personen zich enige tijd verwijderden, de eerder ingenomen posities

uiteindelijk volledig vervagen en dus als vrije posities beschouwd worden.

We zien verder ook op deze figuur dat ondanks de vele bewegingen het positiebepalingssys-

teem er wel degelijk in slaagt om de vaste omgeving correct in kaart te brengen. Zelfs in een

dergelijke dynamische omgeving kan Gonzales dus nog steeds zijn eigen positie bepalen met

een behoorlijke nauwkeurigheid. We kunnen in wat volgt dus aannemen dat dit positiebepa-

lingssysteem voldoende nauwkeurig is om gebruikt te worden als ingang van de regelaars.

6.1.4 Tijdsduur van het positiebepalingssysteem

We bereiken dus zeer nauwkeurige resultaten op vlak van positiebepaling. Zoals we echter

reeds aanhaalden in secties 3.4 en 4.3.1 is naast de nauwkeurigheid ook de tijdsduur van

het positiebepalingssysteem een belangrijke factor. Ter bevestiging van de daar vernoemde

cijferwaarden worden in tabel 6.1 de gemiddelde, minimum en maximum tijd weergegeven

voor een iteratie van het positiebepalingssysteem. Dit zowel bij uitvoering op een moderne

computer (3, 2 GHz AMD QuadCore processor) als bij uitvoering op de minicomputer waar-

mee Gonzales is uitgerust. Bij uitvoering op Gonzales maken we verder nog een onderscheid

tussen de verschillende regelaars.

Tabel 6.1: Opgemeten tijdsduur (in seconden) voor het positiebepalingssysteem.

Uitvoermodus # metingen Gemiddelde Minimum Maximum

Moderne computer 235 0,26 0,10 0,43

Gonzales (regelaar I) 59 4,06 2,5 5,3

Gonzales (regelaar III) 74 4,23 2,2 8,0

Gonzales (regelaar IV) 72 4,15 2,4 7,1

Gonzales (regelaar V) 71 4,11 2,3 6,2

We zien dus dat de tijdsduur bij de moderne computer steeds minder dan een halve seconde

bedraagt. Op Gonzales’ minicomputer daarentegen ligt het gemiddelde voor elke regelaar

rond de 4 s, maar varieert het maximum sterk (tot zelfs 8 s). De minimum tijdsduur blijkt

voor elke regelaar iets meer dan 2 s te bedragen. Deze waarden bevestigen ook het eerder

Page 54: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 6. Resultaten 45

aangehaalde feit dat het positiebepalingssysteem onafhankelijk is van de aansturing en dus

het regelsysteem. De variatie op de maximum tijdsduur bij de verschillende regelaars is toe

te schrijven aan toevalligheden en het aantal beschouwde metingen.

6.2 De regelaars

6.2.1 Testprocedure

Om de verschillende ontwikkelde regelaars met elkaar te kunnen vergelijken maken we gebruik

van een vaste testprocedure die voor elke regelaar gelijk is. Bij deze testprocedure stellen we

een bepaald traject voorop waarin elke mogelijke verplaatsing voorkomt. Bij het uitvoeren

van de regelaar wordt dan een score toegekend gebaseerd op Gonzales’ positie doorheen het

traject. Om verder een gelijke omgeving in elke testsituatie te bekomen testen we de regelaars

in een lege afgesloten ruimte van 2, 40 m op 3 m. We verduidelijken hier eerst het opgestelde

traject en gaan vervolgens in op de manier waarop de score bepaald wordt.

Het traject

Aangezien we met een omni-directionele robot werken moeten we bij het testen van de rege-

laars elke mogelijke beweging in beschouwing nemen. Het opgestelde traject moet dus zeker

verplaatsingen in de drie bewegingsvrijheden bevatten. Hiervoor kunnen we verplaatsingen

volgens slechts een van de vrijheidsgraden beschouwen alsook combinaties ervan. Aangezien

er drie bewegingsvrijheden zijn, zouden we dus 7 verschillende combinaties kunnen maken

waarbij we verplaatsingen volgens een, twee of drie vrijheidsgraden beschouwen. We merken

hier echter op dat het onmogelijk is om rotatie te combineren met verplaatsing volgens slechts

1 translatierichting. Er blijven dus nog 5 mogelijke combinaties over:

� Translatie volgens de x-as

� Translatie volgens de y-as

� Translatie volgens de x- en y-as

� Rotatie rondom de z-as

� Translatie en rotatie

In het opgestelde testtraject nemen we nu elk van deze vijf mogelijkheden op. De afstanden

die we hierbij zullen gebruiken zijn 3,5 maal de afstand die Gonzales in een iteratie van

gemiddelde tijdsduur kan afleggen. We zullen Gonzales namelijk 10 iteraties de tijd geven

voor elk onderdeel van het traject. Op die manier kunnen we naast het rijden zelf ook het

gedrag rondom de eindpositie evalueren. Verder zorgen we er ook voor dat Gonzales zich

Page 55: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 6. Resultaten 46

voor elke bewegingsvrijheid zowel in de positieve als in de negatieve zin verplaatst. Concreet

levert dit het volgende Drive-bestand op (zie sectie 4.1.1):

Drive 67.2 0 0

Drive 0 -67.2 0

Drive -47.52 47.52 0

Drive 0 0 60

Drive 67.2 0 -60

De quotering

Om nu dus het prestatieniveau van de verschillende regelaars te kunnen analyseren zullen we

een score toekennen gebaseerd op Gonzales’ wijzigende positie tijdens het afleggen van het

traject. Zoals hierboven reeds vermeld werd stellen we voor elk onderdeel van het traject 10

iteraties ter beschikking. Na afloop van deze 10 iteraties zal Gonzales dus het volgende deel

aanvatten.

We weten echter op voorhand niet of Gonzales elk onderdeel succesvol zal afleggen. Het kan

gebeuren dat Gonzales na 10 iteraties de gewenste positie van het huidige trajectdeel nog niet

heeft bereikt. Om nu een correcte beoordeling te krijgen van het prestatieniveau mag dit de

score van het volgende trajectdeel niet beınvloeden. We moeten dus de interpretatie van het

traject hieraan aanpassen. Dit doen we door de gewenste eindpositie van elk Drive-commando

niet ten opzichte van de vorige gewenste eindpositie te bepalen maar wel ten opzichte van

Gonzales’ werkelijke eindpositie.

Elk deel van het traject kan nu los van de overige beoordeeld worden. We moeten enkel

nog het beoordelingscriterium vastleggen. De voor de hand liggende methode is om na elke

iteratie de fout tussen Gonzales’ werkelijke positie en de verwachte positie te gaan opmeten.

De sommatie van deze fouten doorheen het volledige traject kan dan als eindscore gebruikt

worden. Hoe dichter deze score dan bij nul ligt, hoe beter de regelaar presteert. Deze methode

is grafisch voorgesteld in figuur 6.4.

Figuur 6.4: Grafische weergave van de voorgestelde beoordelingsmethode.

Page 56: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 6. Resultaten 47

Dit vereist wel dat we de verwachte posities op voorhand kennen. Aangezien echter de tijds-

duur van een iteratie sterk varieert (zie sectie 6.1.4), kunnen we de verwachte positie na

elke iteratie niet op voorhand bepalen. We kunnen deze methode dus niet gebruiken om het

prestatieniveau op te meten.

Het volstaat echter om slechts een kleine wijziging aan te brengen in de voorgestelde methode

om toch een score te kunnen toekennen. We kunnen namelijk wel na elke iteratie de afstand

tussen Gonzales’ positie en de gewenste eindpositie bepalen. De som van deze afstanden is

dan een maat voor het prestatieniveau van de beschouwde regelaar. We zullen echter wel de

negatie van deze som gebruiken als maat zodat een hogere score overeenkomt met een betere

prestatie in plaats van omgekeerd. Om verder nog een meer genormeerde score te verkrijgen

delen we telkens de afstand tot de eindpositie door de afstand die Gonzales kan afleggen in een

iteratie van gemiddelde duur. Figuur 6.5 geeft een grafische voorstelling van deze aangepaste

beoordelingsmethode.

Figuur 6.5: Grafische weergave van de aangepaste beoordelingsmethode.

Dit is dus de methode die we zullen toepassen bij het beoordelen van de verschillende rege-

laars. Het theoretisch optimum is nu echter niet meer gelijk aan nul, maar afhankelijk van

het opgestelde traject. Zoals eerder vermeld is de afstand van elk trajectdeel 3,5 maal de

gemiddelde afstand in een iteratie. Voor de eerste vier trajectdelen waar enkel translatie of

rotatie aanwezig is, krijgen we dus een theoretisch optimum gelijk aan -8 (= -3,5 - 2,5 - 1,5

- 0,5 - 0 - 0 - ...). Voor het laatste trajectdeel waar zowel translatie als rotatie aanwezig is,

ligt het theoretische optimum op het dubbele. Het theoretische optimum voor het volledige

traject wordt dus -48.

De nauwkeurigheid van de regelaars is echter beperkt door de minimale snelheid waarmee

Gonzales zich kan verplaatsen. Aan deze minimale snelheid is namelijk ook een minimale

verplaatsing per iteratie verbonden, waardoor Gonzales zich dus niet tot op de exacte eind-

positie kan begeven. Om hiermee rekening te houden moeten we een blijvende fout toelaten

gelijk aan de helft van deze minimale verplaatsing voor zowel translatie als rotatie.

Bij het bepalen van deze minimale verplaatsing gaan we uit van de minimale rotatiesnelheid

van de wielen (1 tpm). Voor de standaard ingestelde rotatiesnelheid van 6 tpm is dus de

Page 57: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 6. Resultaten 48

verhouding van de minimale verplaatsing tot de gemiddelde verplaatsing gelijk aan 1/6 voor

translatie en 1/3 voor rotatie (zie factor 1/2 in de formules 4.1 voor de rotatie). Indien we nu

deze blijvende fout toevoegen aan het theoretisch optimum krijgen we een maximaal haalbare

score van -57,25. Dit is dus het streefdoel dat we voor ogen houden bij het evalueren van de

regelaars.

6.2.2 Behaalde resultaten

We beschikken nu over een testprocedure waardoor we een genormeerde score kunnen geven

aan het prestatieniveau van de verschillende regelaars. Wegens de verschillende aard van de

ontwikkeling van regelaar II vergeleken met regelaars III, IV en V zullen we eerst regelaars I

& II bespreken en vervolgens regelaars I, III, IV & V. Op het einde worden ten slotte nog de

resultaten weergegeven voor enkele andere trajecten.

Regelaars I & II

Zoals besproken in de uiteenzetting van regelaar II (zie sectie 4.2.1) is het ontwikkelen ervan

niet het resultaat van een stap maar volgt het uit de convergentie van een hele reeks stappen.

We zullen ons dan ook niet enkel beperken tot het bespreken van het eindresultaat maar gaan

ook in op de evolutie naar dit eindresultaat.

Aangezien het gebruikte leerproces zeer tijdsrovend is, voeren we het eerst uit in een simu-

latieomgeving1. In deze simulatieomgeving kunnen we handig gebruik maken van de uit-

gebreide rekencapaciteit van moderne computers en kunnen we het leerproces ongestoord

zijn gang laten gaan zonder nood aan eigen interventies. Elke doorlopen tussenstap wordt

hierbij beoordeeld zoals hierboven uiteengezet werd. De resultaten van het leerproces in de

simulatieomgeving worden weergegeven in figuur 6.6.

Zoals we verwachten ligt het initiele prestatieniveau onder dat van regelaar I. Dit niveau

stijgt echter snel gedurende de eerste 10 generaties en blijft vervolgens schommelen rond een

niveau dat net iets hoger ligt dan dat van regelaar I. Dit referentieniveau van regelaar I is het

resultaat van de uitmiddeling van een tiental testen.

Indien we nu hetzelfde leerproces toepassen op de werkelijke uitvoering van Gonzales krijgen

we de resultaten weergegeven in figuur 6.7. We beginnen opnieuw op een niveau onder dit van

regelaar I, maar de initiele stijging die merkbaar was in de simulatie blijkt echter in de praktijk

zelfs na een zestal generaties nog steeds niet voor te komen. Dit feit, alsook de zeer beperkte

verbetering die uit de simulatie volgt, kan verklaard worden door twee aspecten. Enerzijds

leunt het gebruikte model reeds zeer dicht aan bij de werkelijkheid en anderzijds is er slechts

beperkte verbetering mogelijk doordat in deze regelaar nog geen rekening gehouden wordt

1Webbots 6.3.0

Page 58: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 6. Resultaten 49

met de tijdsvertraging van het positiebepalingssysteem (zie sectie 4.3.1). Omwille hiervan

en door het tijdsrovende karakter van het leerproces loont het dan ook niet de moeite om

het leerproces op de werkelijke robot verder te laten doorgaan in de hoop uiteindelijk toch

verbetering waar te nemen.

Figuur 6.6: Resultaten van het CMA-ES leerproces in een simulatieomgeving.

Figuur 6.7: Resultaten van het CMA-ES leerproces in de werkelijkheid.

Page 59: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 6. Resultaten 50

Regelaars I, III, IV & V

We beschouwen nu ook regelaars III, IV en V. Aan de hand van de hierboven beschreven

testprocedure kunnen we het prestatieniveau van elke regelaar opmeten. Deze resultaten

kunnen we dan onderling vergelijken en toetsen aan het theoretisch haalbare optimum.

Zoals echter reeds herhaaldelijk werd opgemerkt is de tijdsduur van een iteratie variabel.

Hierdoor zal Gonzales zich bij verschillende testen van eenzelfde regelaar op verschillende

tussenposities bevinden. Hieruit volgen dus verschillende scores voor diezelfde regelaar. Om

een representatieve score te bekomen testen we elke regelaar 10 maal. Op die manier krijgen

we een beter beeld van het werkelijke prestatieniveau van de beschouwde regelaars. Figuur 6.8

geeft de opgemeten scores weer voor de regelaars I, III, IV & V.

Figuur 6.8: De opgemeten scores voor regelaars I, III, IV & V.

We zien dus dat zowel regelaars III, IV als V zeer dicht bij het theoretische optimum komen.

De variatie op de scores van regelaar V is bovendien zeer beperkt. Bij regelaars III en IV echter

merken we een behoorlijke spreiding van de opgemeten scores. Deze variatie is rechtstreeks

gelinkt aan de ingestelde waarden van de gebruikte drempelwaarden (zie secties 4.4 en 4.5).

De afstand tussen Gonzales’ eindpositie en de gewenste positie van elk trajectdeel kan namelijk

varieren tussen 0 en de ingestelde drempelwaarde. Bij regelaars III en IV moesten we deze

drempelwaarden behoorlijk ruim kiezen (75 % van de gemiddelde afstand in een iteratie)

door de vaste ingestelde bewegingssnelheid. In regelaar V echter kan deze snelheid varieren

waardoor de drempelwaarden verlaagd konden worden. Hierdoor ligt de variatie van de scores

bij regelaar V een stuk lager en is ook de gemiddelde score hoger dan deze voor regelaars III

en IV.

Page 60: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 6. Resultaten 51

Verder zien we ook dat de scores van regelaars III en IV zeer dicht bij elkaar aanleunen. Dit

is een bevestiging van het feit dat het gebruikte model reeds zeer dicht bij de werkelijkheid

aanleunt. Om nu toch het belang van de extra regellus in regelaars IV en V aan te tonen

introduceren we een willekeurige fout in het model. Vervolgens gebruiken we regelaar III, IV

en V om Gonzales een bepaald gewenst traject te laten afleggen en vergelijken we dit met het

werkelijke traject. Aangezien we hier louter het effect van de extra regellus willen illustreren

stellen we een eenvoudig traject op waarbij Gonzales zich 1, 5 m voorwaarts moet verplaatsen.

Het resultaat is weergegeven in figuur 6.9. We gebruiken hier nu een gewijzigde kleurcode.

Het gewenste traject wordt voorgesteld door de blauwe lijn en het gevolgde traject door de

rode stippen. Gonzales’ orientatie wordt weergegeven door de zwarte staart.

Figuur 6.9: Het gewenste en gevolgde traject volgens regelaar III (links) IV (midden) en IV (rechts).

We zien duidelijk dat regelaar IV en V de foutieve aansturing detecteren en corrigeren. Re-

gelaar III daarentegen blijft de foutieve stuursignalen genereren waardoor Gonzales slechts

naar het einde van het traject toe terug richting het gewenste eindpunt navigeert. Verder zien

we ook dat bij regelaar V Gonzales inderdaad dichter bij de eindbestemming eindigt dan bij

regelaar IV.

Enkele andere trajecten. . .

Tot slot stellen we nog een aantal aanschouwelijkere trajecten op die we Gonzales willen laten

volgen. We maken hiervoor telkens gebruiken van regelaar V. De opgestelde trajecten zijn de

volgende:

� Een Y-vorm (enkel translatie)

� Een Y-vorm (simultane translatie en rotatie)

Page 61: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 6. Resultaten 52

� Een vierkant (enkel translatie)

� Een vierkant (simultane translatie en rotatie)

In figuur 6.10 is telkens het werkelijk gevolgde traject gevisualiseerd alsook het vooropgestelde

traject. We gebruiken opnieuw dezelfde kleurcode als in figuur 6.9.

Figuur 6.10: Behaalde resultaten met regelaar V voor een Y-vormig traject met enkel translatie

(links boven), een Y-vormig traject met translatie en rotatie (rechts boven), een vierkant

trjact met enkel translatie (links onder) & een vierkant traject met translatie en rotatie

(rechts onder).

We zien dus dat de regelaar er goed in slaagt om de trajecten waar enkel translatie in voor

komt te volgen. Indien er echter translatie en rotatie tegelijk optreedt krijgen we een slechtere

trajectcontrole. Dit is te wijten aan het feit dat bij de combinatie van translatie en rotatie de

stuursignalen eigenlijk continu moeten varieren. Er kan echter slechts een set stuursignalen

genereerd worden per iteratie. De regelaar kan Gonzales dus maar gemiddeld om de 4 s

bijsturen, vandaar de grotere afwijking.

Page 62: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 7

Conclusies en perspectieven

We geven hier tot slot een korte samenvatting van het behaalde resultaat. Hiernaast lichten

we ook enkele mogelijke toepassingen en uitbreidingen toe die gebruik maken van wat hier in

deze masterproef gerealiseerd werd.

7.1 Conclusies

In een eerste deel van deze masterproef focusten we ons op het implementeren van een positie-

bepalingssysteem. Aan de hand van dit positiebepalingssysteem moest de beschouwde robot,

Gonzales, in staat zijn zijn positie te bepalen in een bepaalde omgeving alsook deze omgeving

tegelijkertijd in kaart te brengen. Dit moest gebeuren terwijl Gonzales zich verplaatste of

met andere woorden, we wilden een realtime implementatie.

We konden hiervoor gebruik maken van een reeds bestaand algoritme (Direct Particle-SLAM )

ontwikkeld door de Duke University. Aangezien dit echter ontworpen was voor gebruik op

een andere robot en verder ook niet in realtime kon uitgevoerd worden moesten een aantal

structurele wijzigingen gemaakt worden vooraleer we het konden uitvoeren op Gonzales. Het

resultaat is een positiebepalingssysteem dat erin slaagt zowel in statische als dynamische

omgevingen van verschillende afmetingen een nauwkeurige kaart van de omgeving aan te

maken en hierin Gonzales’ positie te bepalen.

In een tweede deel ontwikkelden we een regelaar die Gonzales’ aansturing verzorgt op basis

van de positie verkregen uit het positiebepalingssysteem. We gingen hiervoor uit van een

eerste relatief eenvoudige regelaar die enkel gebruikt maakt van een theoretisch model van

Gonzales’ kinematica. Vervolgens werden systematisch de pijnpunten besproken en verbeterd

in een volgende regelaar. Dit resulteerde uiteindelijk in de ontwikkeling van een reeks van vijf

regelaars. Het eindresultaat hiervan, regelaar V, is in staat om Gonzales zo aan te sturen dat

deze een voorgesteld traject met minimale afwijking kan volgen. Verder slaagt deze er ook in

om foutieve aansturingen te detecteren en te corrigeren zodat Gonzales steeds het gewenste

53

Page 63: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 7. Conclusies en perspectieven 54

traject blijft volgen.

Kort samengevat hebben we dus een systeem ontwikkeld dat in staat is de beschouwde omni-

directionele robot, Gonzales, in eender welke (onbekende) omgeving een vooraf gedefinieerd

traject te laten volgen.

7.2 Perspectieven

Uiteraard stopt het hier niet. Deze masterproef heeft slechts de basis gevormd op vlak van

aansturing van een omni-directionele robot. Dit kan nu verder gebruikt worden in verschei-

dene toepassingen. Verder zijn er ook nog enkele mogelijkheden tot uitbreiding van het hier

gerealiseerde systeem. We lichten eerst enkele van deze uitbreidingen toe en geven vervolgens

een aanzet tot enkele mogelijke toepassingen.

7.2.1 Uitbreidingen

Een eerste uitbreiding situeert zich op het niveau van het positiebepalingssysteem. Dit maakt

momenteel gebruik van een Laser Range Finder (LRF, zie sectie 2.1). Dit is een zeer nauw-

keurig maar ook behoorlijk duur toestel. Nu is het voor vele toepassingen wenselijk om over

een digitale camera te beschikken. Het zou dus zeer praktisch kunnen zijn om deze camera

dan ook te gebruiken als invoer van het positiebepalingssysteem. Op die manier kunnen we

het gebruik van de duurdere LRF vermijden en hebben we meteen ook visuele informatie

beschikbaar voor de gebruiker. In de literatuur werden dergelijke toepassingen reeds bestu-

deerd (zie bijvoorbeeld Davison (2003)). Rest dus nog de uitdaging om dit ook op Gonzales

te implementeren.

Een volgende uitbreiding heeft betrekking tot de geınstalleerde rekencapaciteit op Gonzales.

Zoals reeds eerder vermeld (zie sectie 3.4) is deze eerder beperkt waardoor voornamelijk het

positiebepalingssysteem beperkt is in haar snelheid. Een mogelijke optie om dit te verbeteren

is gebruik te maken van externe rekencapaciteit. We kunnen dan bijvoorbeeld de nodige

informatie uit de sensoren via het netwerk naar een externe computer zenden. Op deze

computer voeren we dan het positiebepalingssysteem uit dat veel sneller de nieuwe positie

kan bepalen. Vervolgens sturen we dan deze positie terug naar Gonzales zodat de regelaar

deze kan gebruiken bij de aansturing.

Een laatste voorstel tot uitbreiding ten slotte vinden we bij de regelaar zelf. In de hier ont-

wikkelde regelaars werd steeds uitgegaan van een theoretisch opgesteld model van Gonzales’

kinematica. In regelaar II werd dit model meer afgestemd op de werkelijkheid en in regelaars

IV en V was het mogelijk om in realtime het model bij te sturen. Als mogelijke uitbreiding

hierop stellen we nu een volledig andere aanpak voor. We kunnen namelijk aan de hand van

Reservoir Computing de regelaar zelf een model aanleren op basis van trainingsdata. Dit

Page 64: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Hoofdstuk 7. Conclusies en perspectieven 55

leerproces wordt uitgebreid besproken in Jaeger (2001), Jaeger (2002a) & Jaeger (2003). Jae-

ger (2002b) geeft een uiteenzetting over de implementatie ervan. Gedurende het verloop van

deze masterproef werd reeds een uitgebreide set met trainingsdata aangemaakt alsook een

kleinschalige simulatie. Dit kan mogelijks gebruikt worden als uitgangspunt voor een verdere

uitwerking hiervan.

7.2.2 Toepassingen

Tot slot beschouwen we nog enkele mogelijke toepassingen die volgen uit wat in deze master-

proef gerealiseerd werd. Een eerste toepassing volgt logischerwijs uit het omni-directionele

karakter van de gebruikte robot. Door de grotere bewegingsvrijheid van Gonzales kan deze in-

gezet worden op plaatsen waar de beschikbare ruimte voor verplaatsingen minimaal is. Door-

dat Gonzales zich in elke richting kan bewegen en ter plaatse kan draaien kan hij gemakkelijk

manoeuvreren op plaatsen waar conventionele mobiele voertuigen dit niet kunnen. Hierbij is

echter een correcte aansturing van groot belang om ongewenste contacten te vermijden.

Aangezien het systeem ook beschikt over een positiebepalingssysteem dat tevens de omgeving

in kaart brengt is een tweede voor de hand liggende toepassing het verkennen van ongekende

ruimtes. Hierbij kan men echter geen gebruik maken van een vast traject maar moet dit

traject uitgestippeld worden terwijl Gonzales de ruimte verkent.

Een andere toepassing waar het traject op voorhand niet vastligt is de volgende. Indien

Gonzales reeds over een plattegrond van zijn omgeving beschikt kan men hier enkele referen-

tiepunten op aanbrengen. Een toepassing kan dan bijvoorbeeld liggen in het plannen van het

traject van punt A naar punt B. Eenmaal dit gedaan is zorgt de hier ontwikkelde regelaar er

dan voor dat Gonzales dit traject wel degelijk ook kan afleggen.

Dit zijn uiteraard maar enkele voor de hand liggende toepassingen. De werkelijke mogelijk-

heden zijn legio en we laten het dan ook aan de geınteresseerde lezer over om zich hier verder

in te verdiepen.

Page 65: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Bijlage A

Programmacode

Zie bijgevoegde CD.

56

Page 66: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Bijlage B

Datasheets

Zie bijgevoegde CD.

57

Page 67: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Bibliografie

J. A. Cooney, W. L. Xu & G. Bright (2004). Visual dead-reckoning for motion control of a

mecanum-wheeled mobile robot. Mechatronics, 14:623–637.

A. J. Davison (2003). Real-time simultaneous localisation and mapping with a single camera.

Proceedings. Ninth IEEE International Conference on Computer Vision, 2:1403–1410.

X. Dong, Z. Dongbin, Y. Jianqiang & T. Xiangmin (2009). Trajectory tracking control of

omnidirectional wheeled mobile manipulators: Robust neural network-based sliding mode

approach. IEEE Transactions on Systems, Man and Cybernetics - Part B: Cybernetics,

39(3):788–799.

H. Durrant-Whyte & B. Tim (2006a). Simultaneous localization and mapping (SLAM): Part

I the essential algorithms. IEEE Robotics & Automation Magazine, 13(2):99–110.

H. Durrant-Whyte & B. Tim (2006b). Simultaneous localization and mapping (SLAM): Part

II state of the art. IEEE Robotics & Automation Magazine, 13(3):108–117.

A. I. Eliazar & R. Parr (2004). DP-SLAM 2.0. IEEE International Conference on Robotics

and Automation, pp. 1314–1320.

N. Hansen & A. Auger (2005). A restart CMA evolution strategy with increasing population

size. Congress on Evolutionary Computation, 2:1769–1776.

N. Hansen, S. Muller & P. Koumoutsakos (2003). Reducing the time complexity of the deran-

domized evolution strategy with covariance matrix adaptation (CMA-ES). Evolutionalry

Computation, 1(11):1–18.

N. Hansen & A. Ostermeier (2001). Completely derandomized self-adaptation in evolution

strategies. Evolutionary Computation, 2(9):159–195.

N. Hansen, A. Ostermeier & A. Gawelczyk (1995). On the adaptation of arbitrary normal

mutation distributions in evolution strategies: The generating set adaptation. Proceedings.

6th International Conference on Genetic Algorithms, pp. 57–64.

58

Page 68: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional

Bibliografie 59

H. Jaeger (2001). The”echo state” approach to analysing and training recurrent neural

networks. GMD-Report, (148).

H. Jaeger (2002a). Short term memory in echo state networks. GMD-Report, (152).

H. Jaeger (2002b). Tutorial on training recurrent neural networks, covering BPPT, RTRL,

EKF and the echo state network approach. GMD-Report, (159).

H. Jaeger (2003). Adaptive nonlinear system identification with echo state networks. Advances

in Neural Information Processing Systems, (15):593–600.

Y. Liu, X. Wu, J. Zhu & J. Lew (2003). Omni-directional mobile robot controller design by

trajectory linearization. Proceedings of the American Control Conference, 4(4-6):3423–3428.

W. Melange, A. De Smet & J. D’Haene (2010). Hardware ontwerp project. Ontwerp van een

Omniwheel Robot met autonome lokalisatie.

R. Rojas & A. G. Forster (2006). Holonomic control of a robot with an omnidirectional drive.

Kunstliche Intelligenz, 20(2).

J. E. M. Salih, M. Rizon, S. Yaacob, A. H. Adom & M. R. Mamat (2006). Designing omni-

directional mobile robot with mecanum wheel. American Journal of Applied Sciences,

3(5):1831–1835.

J.-B. Song & K.-S. Byun (2004). Design and control of a four-wheeled omnidirectional mobile

robot with steerable omnidirectional wheels. Journal of Robotic Systems, 21(4):193–208.

K. Watanabe, Y. Shiraishi, S. G. Tzafestas, J. Tang & T. Fukuda (1998). Feedback control of

an omnidirectional autonomous platform for mobile service robots. Journal of Intelligent

and Robotic Systems, 22(3):315–330.

Page 69: Preciese controle van een omni-directionele robotlib.ugent.be/fulltxt/RUG01/001/805/339/RUG01-001805339...Introduction Much research has already been done in the eld of omni-directional