250
Autonom Linierobot Projektgruppe E503 E5 - projekt, efterår 2008 Institut for Elektroniske Systemer Aalborg Universitet

Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Embed Size (px)

Citation preview

Page 1: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Autonom Linierobot

Projektgruppe E503E5 - projekt, efterår 2008

Institut for Elektroniske SystemerAalborg Universitet

Page 2: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget
Page 3: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

GROBLAA U N I V E R S TI TEInstitut for elektroniske systemer

Elektronik og elektroteknik

Frederik Bajers vej 7a

9220 Aalborg Øst

Tlf. 96 35 86 00

http://es.aau.dk

Titel: Autonom Linierobot

Tema: Tilbagekoblede Realtidsystemer

Projektperiode: 1/9 – 19/12 2008

Projektgruppe:E503

Deltagere:Benjamin BiegelAllan Ø. HansenLars JespersenMorten JuelsgaardPeter P. KoldkjærJesper Smedegaard

Vejleder:Tom S. PedersenKirsten M. Nielsen

Synopsis:

Denne rapport tager udgangspunkt i projektforslaget ’Autonom li-nierobot’. Efter problemanalyse og -afgrænsning, er produktet derønskes fremstillet, en kørende robot, der kan deltage ved Robo-Cup konkurrencen på DTU. Robotten skal være i stand at følge ensort linie, der snor sig rundt på en forhindringsbane. Desuden skalrobotten være i stand til at afvige fra linien, for at udføre andreopgaver, givne steder på banen.

Hardwaren til systemet bygges omkring en AVR32 mikrocontrol-ler. Desuden konstrueres liniesensor, hastighedssensor, motordri-ver samt forsyningskredsløb. Derudover implementeres et blue-toothmodul til kommunikation med en PC i testhenseende. Deranvendes to reguleringssløjfer, én til hastighed-, og én til afstands-regulering i forhold til linien. Hastighedsreguleringen implemen-teres med en PI-regulator, hvorimod afstandsreguleringen imple-menteres med et lead-netværk. Robottens software opdeles i tråde,som afvikles af en NPK-kerne

Den endelige robot er i stand at følge linien langs en testbane,der efterligner RoboCup banen. Den største afstand robotten fårtil midten af linien er 80 mm, når den drejer i skarpe sving. Dettebetyder at linien ikke tabes af syne. Robotten kan opretholde engennemsnitshastighed på 1 m/s. Robotten har desuden en indpro-grammeret handlingstabel, hvorigennem hele ruten gennem banenkan styres.Oplagstal: 9

Sideantal: 250Bilagsantal og -art: 12 appendiks i rapporten samt 1 CD vedlagtAfsluttet den: 19/12 2008

Rapportens indhold er frit tilgængeligt, men offentliggørelse (med kildeangivelse)

må kun ske efter aftale med forfatterne.

Page 4: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget
Page 5: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

GROBLAA U N I V E R S TI TEDepartment of electronic systems

Electronical engineering

Frederik Bajers vej 7a

9220 Aalborg Øst

Tlf. 96 35 86 00

http://es.aau.dk

Titel: Autonomous Linerobot

Theme: Realtimes Systems

Project period: 1/9 – 19/12 2008

Project group:E503

Members of the group:Benjamin BiegelAllan Ø. HansenLars JespersenMorten JuelsgaardPeter P. KoldkjærJesper Smedegaard

Supervisor:Tom S. PedersenKirsten M. Nielsen

Synopsis:

This report has basis in the project proposal ’Autonomous LineRobot’. In the problem analysis and project demarcation it is de-termined, that the desired product is a moving robot, that is ableto participate in the RoboCup contest at DTU. The robot must beable to follow a black line, that coils through an obstacle course.Moreover the robot must be capable of deviating from the line andperform other tasks on given locations along the course.

The hardware of the system is constructed with an AVR32 micro-controller being the center. Besides, peripheral modules are con-structed including line- and velocity sensors, motor drivers andsupply circuitry. A bluetooth communication module is imple-mented as well. Two regulation loops are applied for respective-ly velocity- and distance regulation in proportion to the line. Thevelocity regulation is implemented as a PI-regulator whereas thedistance regulation is implemented using a lead network. The soft-ware of the robot is divided into three threads, all executed froman NPK kernel.

The final robot is able to follow the line along a test course, thatimitates the RoboCup course. The maximum distance that the ro-bot experiences with respect to the line, is 80 mm. This means thatthe line is never lost. Also, the robot can sustain a velocity of 1 m/s.Finally the robot is implemented with an action chart, from whichthe overall route through the course is determined.

Number of copies: 9Number of pages: 250Appendices and attachments: 12 appendices in the report, 1 CD enclosedProject completed: 19/12 - 2008

The contents of this report i freely available, but publication (with specification of source)

may only be done after arrangement with the authors.

Page 6: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget
Page 7: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

ForordDenne rapport er udarbejdet ved Aalborg Universitet, af 5. semestersgruppen E503, i forbindelsemed efterårssemestret 2008. Temaet for semestret har været ’Tilbagekoblede realtidssystemer’,hvor der specifikt er arbejdet med projektforslaget omhandlende en autonom linierobot. Mål-gruppen for denne rapport, er hovedsageligt vejledere og censor, men også andre studerende medinteresse i de behandlede problemstillinger. Rapporten er opbygget i tre hoveddele: Hardware,software samt regulering og tilbagekobling. Udviklingsforløbet for disse tre områder, gennemfø-res efter en indledende analyse, samt krav- og accepttestspecifikation.

Der skal rettes en særlig tak til Henrik Schiøler, som har været behjælpelig med en kerne til ro-bottens software.

Løbende gennem rapporten angives de anvendte kilder, ved et nummer i kantede parenteser, ek-sempelvis [1], eller eventuelt med sideangivelse som [7, s. 19].

I rapporten anvendes i stor udstrækning forkortelser. Første gang disse anvendes, angives desu-den deres betydning. I appendiks A, findes tilmed en samlet oversigt over de brugte forkortelser.Det skal bemærkes at almindeligt anvendte forkortelser som f.eks., bl.a., osv., ikke forklares.

Bagerst i rapporten er et samlet kredsløbsdiagram, over det hardware som udvikles gennem rap-porten. Desuden er der, vedhæftet rapporten, en CD, hvorpå der findes datablade, PCB-layout afkredsløb, måledata, matlabfiler mv. På CD’en findes også et dokument, med en række målejour-naler, der af praktiske årsager ikke var plads til i rapporten. På CD’en er desuden en række film,der dokumenterer den afsluttende accepttest. Alle referencer til CD’en markeres med samten sti på CD’en.

Benjamin Biegel Allan Ø. Hansen

Lars Jespersen Morten Juelsgaard

Peter P. Koldkjær Jesper Smedegaard

Page 8: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Indhold

1 Indledning 12

2 Foranalyse 13

2.1 Studieordningen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2 RoboCup tuneringen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3 Projektets maksimale omfang . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.4 Use-case betragtning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.5 Projektafgrænsning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3 Kravspecifikation 20

3.1 Formålet med projektet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2 Generel beskrivelse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.3 Generelle krav . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.4 Specifikke krav . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4 Accepttestspecifikation 30

4.1 Hastighedstest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4.2 Beslutningstest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4.3 Forhindringstest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.4 Stresstest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.5 Kommunikationstest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.6 Delkonklusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

5 Motorer 39

5.1 Krav til motorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

8 af 250

Page 9: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

INDHOLD

5.2 Overordnede løsningsmuligheder . . . . . . . . . . . . . . . . . . . . . . . . . . 40

5.3 Valg af motorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

6 Omdrejningshastighed- og afstandsmåler 42

6.1 Krav til blokken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

6.2 Overordnede løsningsmuligheder . . . . . . . . . . . . . . . . . . . . . . . . . . 43

6.3 Valg og analyse af kredsløb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

6.4 Dimensionering af kredsløb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

6.5 Verificering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

6.6 Delkonklusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

7 Motordriver 52

7.1 Krav til Blokken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

7.2 Overordnede Løsningsmuligheder . . . . . . . . . . . . . . . . . . . . . . . . . 53

7.3 Valg og analyse af kredsløb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

7.4 Verificering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

7.5 Delkonklusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

8 Liniesensor 66

8.1 Krav til Blokken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

8.2 Overordnede løsningsmuligheder . . . . . . . . . . . . . . . . . . . . . . . . . . 67

8.3 Valg og analyse af kredsløb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

8.4 Verificering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

8.5 Delkonklusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

9 PC kommunikation 87

9.1 Krav til blokken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

9.2 Overordnede løsningsmuligheder . . . . . . . . . . . . . . . . . . . . . . . . . . 88

9.3 Valg og analyse af kredsløb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

9.4 Delkonklusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

10 Mikrocontroller 94

10.1 Krav til blokken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

10.2 Overordnede løsningsmuligheder . . . . . . . . . . . . . . . . . . . . . . . . . . 96

10.3 Valg og analyse af kredsløb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

10.4 Delkonklusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

INDHOLD 9 af 250

Page 10: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

INDHOLD

11 Forsyning 98

11.1 Krav til blokken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

11.2 Overordnede løsningsmuligheder . . . . . . . . . . . . . . . . . . . . . . . . . . 99

11.3 Valg og analyse af kredsløb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

11.4 Dimensionering af kredsløb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

11.5 Verificering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

11.6 Delkonklusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

12 Hastighedsregulering 107

12.1 Model af robottens bevægelse . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

12.2 Model for robottens hastighedsregulering . . . . . . . . . . . . . . . . . . . . . 108

12.3 Design af hastighedsregulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

12.4 Verificering af regulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

12.5 Delkonklusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

13 Afstandsregulering 119

13.1 Model for robottens afstandsregulering . . . . . . . . . . . . . . . . . . . . . . . 119

13.2 Design af afstandsregulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

13.3 Verificering af regulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

13.4 Delkonklusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

14 Softwareopbygning 137

14.1 Krav til softwaren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

14.2 Overordnede løsningsmuligheder . . . . . . . . . . . . . . . . . . . . . . . . . . 138

14.3 Softwarestruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

14.4 Overordnede grænseflader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

14.5 Mikrocontrollerens opbygning . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

15 Robottens software 153

15.1 Opstartsprocedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

15.2 Nedlukningsprocedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

15.3 Reguleringstråd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

15.4 Beslutningstråd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

15.5 Kommunikationtråd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

15.6 Delkonklusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

10 af 250 INDHOLD

Page 11: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

INDHOLD

16 Udførsel af accepttesten 184

16.1 Hastighedstest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

16.2 Beslutningstest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

16.3 Forhindringstest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

16.4 Stresstest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

16.5 Kommunikationstest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

16.6 Konklusion på accepttest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

17 Konklusion 188

18 Perspektivering 191

A Anvendte forkortelser 192

B DTU Robocup 193

C Mekanisk platform 198

D Motormodel 203

E Motordriver dimensionering 210

F Liniesensor dimensionering 213

G Fysik implementation af mikrocontroller 227

H Målejournal - Encoderkredsløb 230

I Målejournal - Motordriver 233

J Målejournal - Liniesensor 238

K Målejournal - Forsyningskredsløb 241

L Samlet diagram 245

Litteratur 246

INDHOLD 11 af 250

Page 12: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Kapitel 1Indledning

Udviklingen af robotter har igennem en længere årrække medvirket til at effektivisere, og lettekrævende arbejdsopgaver der tidligere blev udført manuelt. Hovedsagligt i industrien har robotterkunnet udføre opgaver enten hurtigere, eller mere præcist end en arbejder ville kunne udføre detsamme arbejde. Dette værende samlebåndsarbejde, tunge løft, svejsning, lakering af biler og såvidere. I de senere år har robotter også i stigende grad overtaget flere af de mere monotone opga-ver i hjemmet, så som græsslåning og støvsugning, hvor autonome robotter selv kan planlæggeog gennemløbe en rute for optimal rengøring eller græsslåning, samtidig med at de kan styreudenom eventuelle forhindringer [52]. Disse typer af autonome robotter kaldes for autonomousguided vehicle, eller blot AGV.

Med udgangspunkt i projektforeslaget omhandlende en autonom linierobot, kilde [1], og konkur-renceoplæget for DTUs (Danmarks Tekniske Universitet) RoboCup turnering [32], omhandlerdette projekt udviklingen af en sådan AGV. Projektets mål er at konstruere en robot der er i standtil at deltage i RoboCup turneringen. Robotten skal kunne gennemføre en forhindringsbane, mar-keret ved en sort stribe på gulvet, samtidig med at den på forskellig vis indsamler point underkørslen. Det bør allerede nu understreges at selvom robotter kan have en lang række udformnin-ger, og bevægelsesmuligheder, lægger konkurrencen op til konstruktion af en AVG, dvs. en formfor køretøj, hvorfor dette er formålet med projektet.

I det følgende kapitel gennemgås den indledende analyse, til selve projektet, hvor der ses påhvilke egenskaber det ønskes at robotten skal have. Dette gøres dels ud fra rammerne for DTUkonkurrencen, og dels ud fra projektforslaget og semestrets studieordning.

12 af 250

Page 13: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Kapitel 2Foranalyse

I dette kapitel bringes den indledende analyse for udviklingen af en autonom linierobot. Der sesdels på kravene fastsat af studieordningen for 5. semester, og dels ses der nærmere på RoboCupspræmisser. Efterfølgende gennemgås omfanget af robotten, såfremt den skal gøres i stand tilat udføre alle opgaver på forhindringsbanen i RoboCup, og afslutningsvis afgrænses robottensegenskaber til et omfang der forventes overkommeligt i forhold til tiden der er til rådighed forprojektenheden.

2.1 Studieordningen

Dette projekt følger 5. semesters temaet: ”Tilbagekoblede realtidssystemer”. Kravene til projek-tets indhold, er gennem studieordningen [7, s. 19] fastsat som følgende:

”I projektet tages udgangspunkt i en fysisk proces. Den fysiske proces kan være af mekanisk,termisk, elektrisk, biologisk, eller kemisk natur. Der opstilles krav til den dynamiske opførsel af

systemet som formuleres enten i tids- eller frekvensdomæne. Derudover formuleres krav tilrealtidsegenskaberne af systemet ud fra kendskab til samplingstider og tilgængelig regnekraft.

Ud fra disse krav bestemmes parametre for en klassisk regulator. Denne regulatorimplementeres på systemet, og det vurderes om de formulerede krav er opnået.”

Derudover er målene for semestret bl.a. at anvende systematiske metoder til design af et regulerings-system, der opfylder realtidskrav, samt at anvende og vurdere et lukket-sløjfe systems egenskaber.

2.2 RoboCup tuneringen

Formålet med konkurrencen, er at få den deltagende robot til autonomt at finde vej fra start tilslut, på en opstillet forhindringsbane. Banen er som udgangspunkt markeret med sort tape, somrobotten kan følge. Robotten scorer point ved dels at styre igennem en række opstillede porte,og dels ved at udføre ’ekstra’ opgaver undervejs, så som at smide golfkugler i huller, køre påtid over en strækning, undgå straf-porte osv. Visse områder af banen er ikke markeret med tape,

13 af 250

Page 14: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

2.3 Projektets maksimale omfang

hvormed det er op til robotten selv at vælge en rute.

Idet det ønskes at anvende RoboCup som rettesnor for projektets indhold, vil dennes regler ogpræmisser danne grundlag for en lang række krav, som robotten skal overholde for, med succes,at kunne deltage. Eksempelvis stiller konkurrencen krav til den rent fysiske udformning af ro-botten, da den skal være i stand til at passere portene, for at få point. Ligeledes skal robottenkunne bevæge sig ved en vis hastighed, da der på den første del af banen er grænse for hvor lavhastighed robotten må bevæge sig med.

Banen og reglerne for den følgene RoboCup 2009 er endnu ikke blevet offentliggjort, hvorfordet er nødvendigt at benytte sidste års dokumentation som rettesnor, under udarbejdelse af robot-ten. Derfor er 2008 udgaven af både reglerne og banen, med tilhørende forklaring, vedlagt somappendiks B. Der vil løbende igennem rapporten refereres til dette appendiks, da det i mangehenseende danner grundlag for de valg der træffes.

2.3 Projektets maksimale omfang

Ud fra banens udformning og de indlagte opgaver, er det muligt at opliste de egenskaber robottenskal have, for at kunne opnå maksimum point. Efterfølgende begrænses omfanget af robotten,således at det findes muligt at konstruere den indenfor det givne tidsrum, som er afsat til projektet.

For maksimalt pointudbytte ved konkurrencen, skal robotten være i stand til at:

• Følge en sort linie af tape på lysegråt gulv.Herved kan der opnås point ved at køre gennem porte som er placeret udvalgte steder pålinien.

• Bevæge sig langs linien med mindst 1 m/s.Dette er nødvendigt for at opnå maksimal point på den del af banen hvor der køres på tid,også kaldet ’racerbanen’.

• Tage en retningsbeslutning ved forgreninger og kryds på linien.Dette er nødvendigt for at robotten kan komme rundt på hele banen, idet linien flere stederforgrener sig.

• Følge en, i forvejen fastsat, rute hvis tapen forsvinder.Dette forkommer eksempelvis hvis der køres ned af banens vippe, se figur B.1 på side 195.

• Afvige fra linien, og følge en alternativ rute.Herved er det eksempelvis muligt at køre gennem ’tunnelen’, se figur B.1 på side 195.

• Finde, opsamle, transportere golfkugler samt smide dem i hul.Der scores point ved at smide golfkugler i hul, eller medbringe dem til målstregen.

• Genkende og køre udenom straf-porte.Dette gøres for at undgå minuspoint, ved at køre gennem porten som lyser rødt.

• Køre op og ned af hældninger på 16.Den stejleste rampe på banen hælder med 16.

14 af 250 2. Foranalyse

Page 15: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

2.3 Projektets maksimale omfang

• Køre ned af en trappe.Der opnåes to point ved at køre ned ad trappen, se figur B.1 på side 195, da der herpå erplaceret to porte.

• Køre ned af en vippeVed at køre ned af banens vippe, se figur B.1 på side 195, kan et point opnås.

I konkurrencereglerne er det beskrevet at robotten ikke må kommunikere med omverdenen nården kører på banen, dvs. det er ikke tilladt at kunne styre robotten hverken nært eller fjern, idetrobotten dermed ikke vil være autonom. Alligevel findes det anvendeligt at implementere enform for kommunikationsmodul på robotten, så det i testhenseende er muligt dels at udlæse datafra robotten til en PC, og også til en vis grad fjernstyre den. Kommunikationsmodulet skal blotkunne fjernes inden konkurrencekørslen. I projektforslaget, er det foreslået at arbejde med tråd-løs kommunikation, kilde [1]. Af samme grund vælges det at implementere en form for trådløskommunikation på robotten.

For at igangsætte robottens kørsel ved konkurrencen, skal der implementeres en startknap. Denneknap kan i testhenseende ligeledes anvendes som en pause/stop knap.

De nævnte ønskede egenskaber, giver hver især anledning til at robotten skal bestå af en rækkedelblokke, der alle bidrager til at robotten samlet set er i stand til at udføre de forskellige op-gaver. Eksempelvis er det nødvendigt at have en liniesensor, for at registrere linien, og linienforløb. Desuden er det nødvendigt at have en central mikrocontroller der er i stand til f.eks. atkunne vælge en alternativ rute, dvs. en rute uafhængigt af linien, når der bliver behov for dette.Mikrocontrolleren er deslige nødvendig, for at robotten bliver i stand til at bearbejde alle de datader opsamles under kørslen, med henblik på at justere robottens retning, og hastighed efterhån-den som linien buer og drejer. For at kunne justere retning og hastighed, skal der desuden væreen form for motorstyring, der både styrer og regulerer omdrejningerne for robottens motorer, så-ledes at robotten har den rigtige hastighed og retning.

For at robotten selv kan træffe beslutninger om at afvige fra linien, for at følge en alternativ rute,eller udføre en opgave, er det nødvendigt at robotten til en vis grad, er i stand til at bestemmedens position på banen. Derfor skal der implementeres en form for registrering, eller opmåling afden afstand robotten flytter sig, således det er muligt for robotten eksempelvis at beslutte, at denskal dreje 90 til højre når den har flyttet sig 10 m. Det er desuden vigtigt at kende den hastighedrobotten bevæger sig med. Robottens hastighed kan bestemmes ud fra omdrejningshastighedenaf dens hjul. Derfor skal der implementeres både en omdrejningshastigheds- og afstandsmåler.

For at kunne opsamle og transportere golfkuglerne, er det nødvendigt at implementere en gri-bearm af en slags. Ligeledes kan der, for at genkende strafporte og golfbolde, implementeres enform for kamera på robotten.

Hermed er der skabt overblik over de funktionaliteter robotten skal have for at kunne udføre alleopgaver ved RoboCup. Disse funktionaliteter kan samles i et overordnet blokdigram, der viserden overordnede opbygning af robotten. Dette blokdiagram ses på figur 2.1.

2. Foranalyse 15 af 250

Page 16: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

2.4 Use-case betragtning

Figur 2.1: Overordnet blokdiagram for robotten.

Som det fremgår af diagrammet, grænser alle blokkene op til mikrocontrolleren. Dette skyldessom sagt at denne blok behandler alle de indsamlede data, hvormed dette bliver den centrale bloki robotten.

For yderligere at klarlægge robottens ønskede opbygning, samt tydeliggøre hvordan det ønskessignalflowet skal være, opstilles der i det følgende afsnit et use-case diagram over den samlederobot. I forbindelse med dette, gennemgås en række situationer robotten kan komme ud for,samt hvorledes det ønskes robotten håndterer disse situationer. Dette gøres for dels at klarlæggeblokkenes grænseflader, og samtidig gøre det lettere at stille krav til hver enkelt blok.

2.4 Use-case betragtning

Det opstillede use-case diagram ses på figur 2.2. Figuren viser de forskellige aktører, samt detilhørende use-cases for robotten. Nedenfor opridses først den centrale funktion af hver enkeltaktør, hvorefter de forskellige use-cases forklares. Farvesignaturen forklares efterhånden som deforskellige situationer gennemgås.

2.4.1 Aktører

Aktørerne er overordnet set delt i to hovedgrupper: Interne og eksterne aktører. De interne aktørerer dem der ikke danner nogen eksterne grænseflader for robotten, dvs. de arbejder kun internt irobotten. De eksterne aktører er de aktører der på den ene eller anden vis bearbejder data udenfor selve robotten.

16 af 250 2. Foranalyse

Page 17: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

2.4 Use-case betragtning

Figur 2.2: Use-case diagram over robotten, med alle de ønskelige funktioener.

MikrocontrollerMikrocontrolleren er den eneste interne aktør, idet den alene bearbejder data internt i selve ro-botten. Mikrocontrolleren er den ’regnemaskine’ der udfører alle udregninger i robotten, på bag-grund af sensorernes input.

LiniesensorLiniesensoren detekterer linien på gulvet, og melder robottens placering i forhold til linien, tilba-ge til mikrocontrolleren.

Omdrejningshastighed- og afstandsmålerDenne registrerer den afstand og hastighed robotten bevæger sig med, hen over gulvet.

MotorstyringDenne aktør regulerer de motorer, der står for robottens fremdrift og retning, efter en given refe-rence. Referencen sættes af mikrocontrolleren, som på baggrund af de input denne får fra senso-rerne, bestemmer hvilken retning og hastighed robotten skal tage.

2. Foranalyse 17 af 250

Page 18: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

2.4 Use-case betragtning

KameraKameraet, skal når det bliver nødvendigt, tage billeder af omgivelserne, således det bliver muligtfor robotten at genkende ønskede elementer, så som golfbolde eller en strafport.

GribearmGribearmen skal bruges til at opsamle golfbolde.

Trådløs overførselDette skal bruges i test henseende, til at læse data ud fra robotten. Desuden skal det være mu-ligt at kunne sende kommandoer til robotten, imens den gennemfører testkørsel. I konkurrencehenseende er denne aktør som nævnt ikke aktuel, idet den afmonteres, da det er imod reglerne atrobotten har mulighed for at blive fjernstyret.

2.4.2 Gennemgang af use-cases

I det følgende gennemgås forskellige situationer som robotten kommer ud for når den kører påbanen. For hver situation er beskrevet hvilke aktører der har indflydelse i den givne situation,samt hvilken betydning hver enkelt use-case har.

Situation: Robotten skal følge linienDenne situation er den grundlæggende funktion for hele robotten. Robotten skal først kende sinplacering i forhold til linien, hvorfor liniesensoren måler afstanden til linien, og sender informa-tion videre til mikrocontrolleren, hvilket sker i use-casen ’detekter linien’. Ved at analysere data,kan mikrocontrolleren angive en korrigering af retningen til motorstyringen, hvis robotten er påvej væk fra linien. Korrigeringen sker i ’korriger retning og hastighed’. Dette forløb er angivetmed blå pile på figur 2.2.

Situation: Robotten skal gennemføre en forudbestemt handlingDenne situation indtræder når mikrocontrolleren, på baggrund af input fra sensorer, bestemmerat der skal udføres en opgave, der gør at den grundlæggende funktion med at følge linien, skaltilsidesættes. Dette være sig eksempelvis når linien forsvinder, hvormed det ikke længere er mu-ligt at følge den. Istedet skal robotten kende dens position på banen, hvilket eksempelvis kanbestemmes ved at undersøge hvor langt den har kørt siden den startede, evt. kombineret med athuske liniens forløb, dvs. hvor mange kryds eller forgreninger der er passeret. Herved kan det,ud fra en forudbestemt handlingsmønster, bestemmes hvilken handling der skal gøre sig gælden-de på den givne placering. I denne situation tilsidesætter mikrocontrolleren den grundlæggendefunktion, hvilket er at følge linien, for istedet at udføre en fastsat procedure. Dette forekommerogså i tilfælde hvor linien deler sig, hvormed det skal bestemmes hvilken retning der skal tages.I situationer hvor stegen ikke længere skal følges, gør use-casen ’forudbestemt adfærd’ altså atmikrocontrolleren overtrumfer liniesensoren, og på baggrund af ’beregn afstand og hastighed’samt ’Detektér linien’, meddeler til motorstyringen hvad der skal foretages, via ’korriger retningog hastighed’.

Handlingsforløbet kunne eksempelvis indtræffe, hvis den tilbagelagt afstand medfører, at robot-ten skal finde og opsamle en golfbold. Hermed skal data fra kameraet analyseres gennem ’ana-lyser billede’, for at bestemme golfboldens nøjagtige placering. Dette bruges videre til at guiderobotten ind på den rigtige placering i forhold til bolden, via ’korriger retning og hastighed’ samt

18 af 250 2. Foranalyse

Page 19: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

2.5 Projektafgrænsning

derefter anvende gribearmen til at samle bolden op, via use-casen ’grib/slip bold’. Dette hand-lingsforløb er, på figur 2.2, angivet med grønne pile.

Situation: Testforløbunder diverse test, anvendes den trådløse kummunikation på to forskellige måder. Dels anvendesden til at overvåge de data robotten indsamler undervejs, og dels ønskes det at have mulighed forat sende styrekommandoer til robotten. Dette gøres hhv. via use-casen ’statusoplysninger ud’ og’kommandoer ind’. I use-case diagrammet er de streger der alene er aktuelle gennem testforløbog udviklingsfasen, markeret med rødt.

I de gennemgåede situationer, er det ikke nævnt at det skal være muligt at lægge software overpå robotten, idet dette menes at være ud over robottens egentlige funktion. Ej heller er robottensspændingsforsyning nævnt, da den som sådan ikke er en del af robottens funktionalitet. For den-nes vedkommende er det dog stadig nødvendigt at stille krav der skal overholdes, hvilket gøres ikravspecifikationen, afsnit 3.

2.5 Projektafgrænsning

Indtil videre har diskussionen omkring robotten omhandlet samtlige funktioner, der kunne tæn-kes implementeret for at robotten kan gennemføre alle de givne forhindringer ved RoboCup. Mensom tidligere nævnt er det nødvendigt at afgrænse de gennemgåede funktionaliteter, således derkun resterer den del der ønskes udviklet i dette projekt. Afgrænsningen bør gennemføres, da detikke anses som værende muligt at tilegne den fornødne viden og indsigt indenfor den, af projekt-perioden, opstillede tidsramme.

Derfor fravælges det at implementere den mekaniske arm, og kameraet, da projektet herved ikkeindebærer billedbehandling, hvilket mindsker projektomfanget væsentligt. Samtidig gør dette, atder kravene til mikrocontrolleren ydeevne kan slækkes, når den ikke skal gennemføre billedbe-handling.

Efter denne afgrænsning er gennemført, omhandler projektet at udvikle/vælge og implementerefølgende:

• En mekanisk platform, med hjul og motorer

• En motorstyring

• En mikrocontroller

• En liniesensor

• En afstands- og hastighedsmåler

• Et trådløst kommunikationsmodul til kommunikation med en PC

• Softwaren til styring af robotten

I det følgende kapitel gennemgås kravspecifikationen, hvori kravene til hver enkelt af de oven-stående elementer gennemgås.

2. Foranalyse 19 af 250

Page 20: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Kapitel 3Kravspecifikation

I dette kapitel gennemgås kravspecifikationen til linierobotten. Kravspecifikationen er konstrue-ret som anbefalet i kilde [12, s. 85-96]. Visse elementer kan virke som en gentagelse af den indle-dende analyse. Dette begrundes i at der tidligere blot var tale om tanker og idéer til udviklingenog produktet, hvorimod der i det følgende er tale om egentlige krav som stilles til linierobotten.Kravspecifikationen angiver systemets overordnede krav. Senere i den tekniske implementationaf robotten, giver disse overordnede krav anledning til en række affødte tekniske krav. Disse merekonkrete tekniske krav beskrives i de afsnit, hvor den respektive del af robotten udvikles.

3.1 Formålet med projektet

Formålet er at udvikle en autonom robot der er i stand til at gennemføre udvalgte udfordringer påforhindringsbanen i DTU’s Robocup. Dette være sig primært, at kunne følge en sort linie på etlyst gulv. Det skal desuden være muligt at lade robotten udføre forudbestemte handlinger, et givetsted på ruten, hvormed robotten skal have en vis form for positionsbestemmelse. Konkurrencensregler, samt banebeskrivelsen fra 2008 [32], danner rammen for udviklingen af denne robot.

3.2 Generel beskrivelse

3.2.1 Systembeskrivelse

Det samlede system skal, som nævnt i den indledende analyse, indbefatte en sensor som kandetektere afstanden til linien, således at denne kan følges. Denne liniesensor aggerer øjne for ro-botten. Desuden skal der implementeres en motorstyring, som skal regulere hastigheden på hvermotor, og desuden regulere robottens retning efter linien. Motorstyringen skal være i stand til atregulere retningen uden brug af linien som reference, idet det ønskes at gøre robotten i stand tilat bevæge sig uafhængigt af denne. I forbindelse med dette skal der også implementeres en formfor afstandssensor, der kan måle robottens tilbagelagte afstand, samt en måler til bestemmelse afhjulenes omdrejningshastighed, således at robottens hastighed kan bestemmes. Motorstyringen,liniesensoren, afstandssensoren og hastighedssensoren skal tilkobles en mikrocontroller.

20 af 250

Page 21: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

3.2 Generel beskrivelse

Mikrocontrolleren sørger rent softwaremæssigt, for alle beregninger der er nødvendige at gen-nemføre, for at robotten fungerer. Dette gælder både beregninger af robottens placering i forholdtil linien, robottens tilbagelagte afstand samt robottens hastighed. Mikrocontrolleren skal des-uden huske på liniens tidligere forløb, såsom kryds og forgreninger, hvilket sammen med dentilbagelagte afstand, kan bruges til at bestemme robottens placering på banen. Kryds og for-greninger skal detekteres af liniesensoren. Således kan der på et givet tidspunkt, rent software-mæssigt, udføres særlige handlinger, som beskrevet i use-case gennemgangen i afsnit 2.4.2 påside 18. Robotten skal gøres i stand til at kommunikere med en PC, gennem et trådløst kom-munikationsmodul, der implementeres til testformål. Mange af de nævnte funktionaliteter dertillægges robottens software, skal håndteres som realtidsprogrammering, således visse opgaverkan udføres indenfor et givet tidsrum.

Robottens skal rent mekanisk drives af motorer, der reguleres af motorstyringen. Robotten skaldesuden bestå af en mekanisk platform, hvorpå motorer såvel som hjul fastgøres. Den net-op gennemgåede systembeskrivelse er tydeliggjort på figur 3.1. Den lilla forbindelse, på fi-guren, illustrerer en trådløs forbindelse, hvorimod de øvrige forbindelser er faste. Bemærk atomdrejningshastighed- og afstandsmåleren er angivet som et og samme modul, idet at afstandenmålt over tid, giver hastigheden, og derfor kan bestemmes med samme sensor.

Figur 3.1: Tydeliggørelse af systemets opbygning. Den lilla forbindelse er den trådløse kom-munikation.

Et element der indtil nu ikke er beskrevet nærmere, er spændingsforsyningen til robotten, hvilketer en nødvendighed for robotten kan fungere. Det er derfor en vigtig del af robotten, hvorfor deri det følgende også stilles krav til denne.

3. Kravspecifikation 21 af 250

Page 22: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

3.2 Generel beskrivelse

3.2.2 Systemets begrænsninger

Som nævnt i den indledende analyse, er projektet afgrænset fra at kunne udføre billedbehandling,samt at samle genstande op. Robotten skal dermed kunne følge linien, tage retningsbeslutningerved forgreninger samt vurdere om den skal afvige fra linien, for at udføre forudbestemte hand-linger.

3.2.3 Systemets fremtid

Selvom projektet, som nævnt, er afgrænset fra at implementere kamera og gribearm, vælges deri den videre udvikling stadig at lade muligheden stå åben, således disse elementer senere kanimplementeres. Dette skyldes, at det efter projektenhedens afslutning eventuelt ønskes at imple-mentere disse elementer, hvorfor det med fordel stadig kan medtages i overvejelserne gennemudviklingsforløbet.

Idet der hermed er skabt overblik over både indholdet af projektet samt begrænsninger og fremtid,kan der stilles krav til udviklingsforløbet. Dette gøres for de to hoveddele af projektet: Hardware,og software.

3.2.4 Krav til udviklingsforløb

For at gøre udviklingsforløbet for robotten så overskueligt og uddybende som muligt, opstillesen model for hvordan dette skal forløbe for projektets to hovedområder.

For hardwaresiden skal udviklingsforløbet foregå efter følgende model, for hver af robottensdelblokke:

a. Der opstilles specifikke krav for blokken.

b. Der afklares og redegøres for grænseflader til øvrige blokke.

c. Mulige former for implementering af blokken undersøges.

d. Blokken analyseres og designes.

e. Blokken dimensioneres.

f. Blokken testes i det omfang det er muligt og nødvendigt.

g. Kredsløbsblokken implementeres med de resterende blokke.

Opstillingen af specifikke krav for de enkelte blokke gennemgås i dette kapitel. De øvrige punk-ter, pånær dimensionering, gennemgås under udviklingen af hver blok. I kraft af at alle de nød-vendige ligninger for dimensioneringen af blokken, præsenteres under analysen, er det valgt atbringe selve dimensioneringen i et appendiks, for ikke at gøre de enkelte hardwareafsnit i hoved-rapporten for omfattende. Dette gøres dog kun i de afsnit hvor dimensionering er særlig omfat-tende.

22 af 250 3. Kravspecifikation

Page 23: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

3.2 Generel beskrivelse

Det skal bemærkes at idet ikke alle blokke er lige omfangsrige, eller indebærer samme behov foreksempelvis dimensionering, kan udviklingen af enkelte blokke afvige fra ovenstående udvik-lingsmodel.

Ligesom for hardwaredelen, opstilles en model for softwareudviklingen. Denne udviklingsmodeler som følger:

a. Der opstilles krav til det samlede software.

b. Der undersøges forskellige anvendelige former for softwarestyring, som beskrives enkelt-vis.

c. Ud fra undersøgelsen af de forskellige softwarestyringer, vælges den mest optimale.

d. Det bestemmes hvilke elementer softwaren skal bestå af, og det klarlægges hvorledes disseskal interagere.

e. Det samlede software splittes op i selvstændige tråde, der behandles enkeltvis.

f. Grænsefladerne trådene imellem klarlægges.

g. Der redegøres for den specifikke funktionalitet af hver enkelt tråd.

h. Den ønskede opbygning af trådene klarlægges

i. Trådene opsplittes i funktioner, for herved at kunne skrive koden i overskuelige fragmenter,der kan genbruges efter behov.

j. Kildekoden til de enkelte programstumper dokumenteres i det omfang det er muligt ognødvendigt.

Kraven som opstilles til softwaren, bringes i dette kapitel. Funktionere som hver tråd inddeles i,beskrives ikke i rapporten, idet dette findes unødvendigt, når det samlede indhold af tråden somhelhed, i forvejen er beskrevet.

I de følgende afsnit gennemgås de krav der stilles til systemet. Først gennemgås de generelle kravsom robotten som helhed skal overholde. Dernæst gennemgås en række mere specifikke krav derkan stilles til hver enkelt af de blokke, som det tidligere er forklaret robotten skal bestå af. Mangeaf de opstillede krav i de følgende afsnit, er anført med en bemærkning i kursiv skrift. Disse skalses som en begrundelse eller uddybning af kravet. Kravene der opstilles er fortløbende nummere-ret, således der kan henvises til dem i senere kapitler, og når der skal opstilles testspecifikationerfor robotten.

3. Kravspecifikation 23 af 250

Page 24: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

3.3 Generelle krav

3.3 Generelle krav

1. Robotten skal være et køretøj.Dette krav er givet gennem reglerne for RoboCup.

2. Bredden af hele robotten må ikke overstige 35 cm.Banens porte kan være ned til 43 cm i bredden, hvormed dette giver et frirum på minimum8 cm, ved gennemkørsel af en port. Dette ønskes som sikkerhedsmargin, i tilfælde af atrobotten ikke kører nøjagtigt på midten af linien ved gennemkørslen.

3. Højden af hele robotten må ikke overstige 47 cm.Dette er portenes minimumshøjde.

4. Robottens udformning må ikke hindre nedkørsel af forhindringsbanens trappe, som er be-skrevet i appendiks B.2 side 195.Dette sætter dels krav til den fysiske udformning af den mekaniske platform og dels kravom at den skal kunne klare et frit fald på ca. 11 cm.

5. Robottens udformning må ikke hindre op- og nedkørsel af en rampe med 16 hældning.Denne rampe er en del af forhindringsbanen, se appendiks B.2 side 195, hvorfor robottenskal kunne forsere denne.

6. Robotten skal kunne dreje med en svingradius på 50 cm, eller mindre.Den skarpeste kurve der kan forekomme på forhindringsbanen svarer til en cirkel med enradius på 50 cm.

7. Robotten skal kunne drive sig selv op af en hældning på 16.Dette er som nævnt den stejleste hældning der forekommer på forhindringsbanen, og der-med også der hvor motorerne udsættes for størst belastningsmoment.

8. Robotten skal på en flad strækning, kunne opretholde en gennemsnitshastighed på mini-mum 1 m/s.Denne hastighed skal robotten kunne opretholde, for at få maksimum point på ’racerba-nen’. Se beskrivelse af racerbanen i appendiks B.2 på side 195.

9. Robotten skal kunne ændre køreretning.Dette er essentielt for at kunne følge linien, og i det hele taget manøvrere rundt på banen.

10. Robotten skal kunne køre både fremad og bagud.Robotten skal være i stand til at bakke, for at kunne korrigere hvis den kører for langt.

11. Robotten skal kunne køre med en fast hastighed, uanset banens forløb.For at have kontrol over robotten skal hastigheden kunne styres efter ønske, uanset banensforløb.

12. Robotten skal som minimum fungere i temperaturområdet 5-40CDette temperaturområde findes passende, da robotten alene ønskes anvendt i et indendørsmiljø.

De generelle krav skal i store træk opfyldes af den platform, og de motorer der vælges til robotten.

24 af 250 3. Kravspecifikation

Page 25: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

3.3 Generelle krav

3.3.1 Reguleringskrav

Udover de generelle krav, opstilles en række reguleringstekniske krav, som er nødvendige forsenere at kunne dimensionere regulatorer til robotten. Først stilles krav der er gældende i henholdtil at kunne følge linien:

13. Ved kørsel efter linien, skal robottens udsving styres i forhold til midten af linien, såledesder ikke er risiko for kollision med portene, ved gennemkørsel af disse.Det ønskes at undgå kollisioner med porte, idet dette kan medføre at robotten sidder fast,eller slås ud af kurs.

14. Ved kørsel efter linien, skal robotten have en stationær fejl (ess) i forhold til midten af lini-en, på nul ved et påtrykt spring.Dette er et nødvendigt krav for senere hen at dimensionere en regulator for robotten. Kra-vet betyder at når robotten udsættes for et pludseligt spring i afstanden, skal den justere sigind på linien igen, således at afstanden på et tidspunkt igen bliver nul. Dette er illustreretpå figur 3.2

15. Når robotten skal følge linien, må den maksimalt have et oversving (Mp) på 25%, ved etpåtrykt spring. Dette krav er ligeledes illustreret på figur 3.2. Det betyder at når robottenudsættes for et spring i afstanden til linien, og begynder at regulere efter denne afstand,må den maksimalt skyde over linien med 25% af det spring der er opstået.

16. Når robotten følger linien, skal dens stigetid (tr) maksimalt være 3 sekunder, ved et påtryktspring.Dette betyder at når robotten udsættes for et spring, som på figur 3.2, skal den regulere sigind på 90% af der hvor linien er sprunget til, på maksimalt 3 sekunder.

Det er desuden nødvendigt at opstille reguleringskrav i henhold til robottens hastighed. Disse eri store træk af samme art, som de netop gennemgåede krav:

17. Robottens stationære fejl i hastigheden (ess) skal være nul, ved et påtrykt spring.

18. Ved et påtrykt spring i hastighed, må robotten maksimalt have et oversving (Mp) på 20%.

19. Ved et påtrykt spring i hastighed, skal robotten have en stigetid (tr) på maksimalt 1 sekund.

ess=0Mp

tr

ess=0Mp

tr

Figur 3.2: På figuren illustrerer hvad indsvingningstiden (eng.: settling time), ts, er. Det maksi-male udsving i forhold til stegen kaldes overshoot eller Mp.

3. Kravspecifikation 25 af 250

Page 26: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

3.4 Specifikke krav

3.4 Specifikke krav

I det følgende gennemgås de specifikke krav, til de forskellige delblokke robotten består af.

3.4.1 Liniesensor

Med udgangspunkt i den indledende analyse, er kravene til liniesensoren listet nedenfor.

20. Sensoren skal kunne detektere afstanden til midten af en sort tape-linie, af typen Tesa-465,med bredde 38 mm, på et lysegråt gulv.Bredden på linien, gulvfarven samt typen af tape, er defineret gennem RoboCup.

21. Afstanden til midten af linien måles vinkelret fra midten af bilens foraksel.

22. Liniesensoren skal kunne detektere forgreninger og kryds på linien.Forgreninger og kryds skal registreres, idet disse skal bruges som en del af robottens posi-tionsbestemmelse.

23. Sensoren skal ligeledes kunne registrere om robotten er kørt væk fra linien.

24. Afstanden fra midten af robottens foraksel, til liniens midtpunkt, skal som minimum kunnebestemmes 100 gange i sekundet.Dette svarer til at robotten flyttes sig 1 cm, med en hastighed på 1 m/s, hvilket findestilstrækkeligt.

25. Sensorens afvigelse må maksimalt være 10 mm.Afstanden sensoren måler til midten af linien, må maksimalt afvige fra den virkelige af-stand, med denne fejlmargin.

26. Liniesensorens output skal være kompatibelt med mikrocontrolleren.Da mikrocontrolleren skal behandle signalet fra liniesensoren, og udføre de egentlige be-regninger af afstanden, skal outputtet fra sensoren være kompatibelt med denne.

3.4.2 Omdrejningshastighed- og afstandsmåler

Følgende krav stilles til de sensorer som skal måle omdrejningshastighed på motorerne, og des-uden skal bruges til at bestemme robottens tilbagelagte afstand.

27. Sensoren skal kunne bestemme motorens omdrejningshastighed.Dette er sensorens primære formål.

28. Sensoren skal kunne registrere afstande ned til 5 mm, eller mindre.Jo mindre afstande sensoren kan registrere, jo hurtigere kan en ændring i hastighed regi-streres. Jo hurtigere ændringer i hastighed kan registreres, jo bedre vil tilbagekoblingenvære i stand til at regulere motorernes omdrejningshastighed.

29. Sensoren skal kunne bestemme motorens omdrejningsretning.Dette er nødvendigt da motorstyringen skal kunne styre motorerne i begge retninger.

26 af 250 3. Kravspecifikation

Page 27: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

3.4 Specifikke krav

30. Sensoren skal kunne fungere ved den valgte motortypes maksimale omdrejningshastighed.Ellers kan motorerne køre så hurtigt at sensoren ikke kan følge med.

31. Sensoren skal som minimum kunne bestemmes omdrejningshastigheden 100 gange i se-kundet.Af samme årsag som for liniesensoren.

32. Sensorens output skal være kompatibelt med mikrocontrolleren.Af samme årsag som for liniesensoren.

3.4.3 PC Kommunikation

33. Kommunikationen skal foregå trådløst.Dette blev fastlagt allerede i den indledende analyse.

34. Den trådløse forbindelse skal have en rækkevidde på mindst 10 m.Under udviklingen og testkørsel, antages det at en rækkevidde på minimum 10 m er til-strækkelig.

35. Kommunikationen skal kunne sende værdierne for en række nøglevariable, som det heletiden ønskes at overvåge når robotten kører.

36. Værdierne skal udsendes minimum 10 gange i sekundet.Denne opdateringshastighed menes at være tilstrækkelig, for at overvåge robotten i test-henseende

37. Dataoverførslen skal ske ved minimum 10 kbps.Med denne hastighed kan der sendes mere end 30 variable af 32 bits længde, hvilket vur-deres at være tilstrækkeligt. En høj overførselshastighed er desuden ønskelig for optagemindst mulig processortid ved overførsel.

38. Kommunikationen skal kunne slukkes eller afmonteres, uden indflydelse på de resterendeblokke.Kommunikation med robotten er ikke tilladt ved RoboCup, hvorfor dette er nødvendigt.

3. Kravspecifikation 27 af 250

Page 28: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

3.4 Specifikke krav

3.4.4 Mikrocontroller

Kravene til robottens mikrocontroller kan opstilles dels på baggrund af robottens overordnedekrav, og dels på baggrund af krav der følger af robottens øvrige blokke.

39. Mikrocontrolleren skal være kompatibel med outputtet fra liniesensoren.

40. Mikrocontrolleren skal være kompatibel med den sensor, som vælges til at måle motorer-nes omdrejningshastighed.

41. Mikrocontrolleren skal være kompatibel med den kommunikationsstandard, som vælgestil kommunikation med PC.

42. Mikrocontrolleren skal være kompatibel med et kamera og kunne behandle billed-data.Således er der skabt mulighed for at kunne implementere et kamera på et senere tidspunkt,uden det er nødvendigt at vælge en ny processor.

43. Mikrocontrolleren skal have et tilgængeligt udviklingsværktøj.Det er ønskeligt for at lette kodeskrivningen.

44. Mikrocontrolleren skal være kompatibel med tilgængeligt debug værktøj.Igennem universitet er en debugger af typen ’Atmel JTAGICE mk2’ stillet til rådighed,hvorfor det ønskes at kunne anvende denne. Den mikrocontroller der vælges skal dermedvære kompatibel med denne.

45. Mikrocontrolleren skal kunne afvikle realtidspogrammer.Det forlanges af studieordningen, at projektet indeholder realtidsprogrammering.

3.4.5 Forsyning

46. Forsyningen skal have et genopladeligt batteri som spændingskilde.Idet robotten skal køre autonomt rundt på en forhindringsbane, vil det være højst ufordel-agtigt at have en stationær strømforsyning, således robotten var ’bundet’ af ledninger tildenne.

47. Forsyningen skal kunne levere de spændinger der er krævet af robottens øvrige elektriskekredsløb.

48. Batteriet i forsyningen skal kunne drive robotten i mindst 15 minutter, når robotten følgeren linie ved en hastighed på 1 m/s.Dette anses som værende rigeligt, for at robotten har mulighed for at gennemføre heleforhindringsbanen.

28 af 250 3. Kravspecifikation

Page 29: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

3.4 Specifikke krav

3.4.6 Software

Flere af de krav der er stillet indtil nu, kræver en vis softwarebehandling. Derfor kan der opstillesfølgende krav til robottens software.

49. Softwaren skal indeholde realtidsprogrammering.Da semestertemaet er ’tilbagekoblede realtidssystemer’, er det et krav at dette indgår. Detanses dog for værende en naturlig del af projektet som er uundværlig for et vellykket re-sultat

50. Softwaren skal regulere robottens motorer.Dette skal ses som en del af motorstyringen som består både af hardware og software.

51. Softwaren skal indhente og behandle data fra robottens sensorer.Data der indsamles via sensorerne skal bruges i forbindelse med reguleringen af robottensmotorer.

52. Softwaren skal holde styr på robottens placering på banen, og herudfra afgøre hvad robot-ten skal foretage sig.

53. Softwaren skal styre robottens kommunikation gennem kommunikationsmodulet.

3.4.7 Øvrige krav

54. Der skal være monteret en startknap på robotten.Robotten skal kunne startes til RoboCup uden brug af trådløs kommunikation. Som tidli-gere bemærket ønskes denne knap også anvendt til en pause/stop funktion, i testhenseende.

Hermed er der opstillet krav til de forskellige elementer der indgår i konstruktionen af robotten,og det er dermed muligt at udvikle den. Inden dette gennemføres, opstilles dog de specifikationerder afslutningsvis anvendes til at teste robotten som helhed, for at verificere at de forskellige kravfor robottens opførsel og funktionalitet, er overholdt. Disse accepttestspecifikationer er opstilleti det følgende kapitel.

3. Kravspecifikation 29 af 250

Page 30: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Kapitel 4Accepttestspecifikation

Accepttesten er den afsluttende test, som skal undersøge hvorvidt robotten opfylder sit formål,nemlig at kunne gennemføre udvalgte udfordringer på forhindringsbanen i DTU’s Robocup. I detfølgende kapitel gennemgås specifikationerne for accepttesten. Den samlede accepttest består afen række deltests, som indledningsvis oplistes. Der refereres flere gange til appendiks B.2, hvorkonkurrencebanen fra 2008 er gennemgået. Selve udførelsen af accepttesten, og resultaterneherfra, er gennemgået i kapitel 16.

Deltests

I det følgende er kort listet de deltests som robotten skal igennem.

1. HastighedstestI denne deltest undersøges hvorvidt robotten kan gennemføre den del af konkurrencebanen,der kræver en gennemsnitshastighed på mindst 1 m/s, også kaldet racerbanen.

2. BeslutningstestI denne deltest undersøges hvorvidt robotten selv kan træffe beslutninger om hvad den skalforetage sig, i givne nøglepunkter på banen.

3. ForhindringstestI denne deltest undersøges robottens evne til at klare udvalgte forhindringer på banen. Dettestes hvorvidt robotten kan køre både op og ned af banens stejleste hældning på 16, ogom robotten kan køre ned af banens trappe og vippe.

4. StresstestI denne deltest undersøges robottens evne til at fungere under stress, dvs. ved at belasteden maksimalt ud fra udvalgte konkurrenceparametre.

5. KommunikationstestDenne deltest afprøver hvorvidt robottens trådløse PC kommunikation, fungerer som øn-sket.

30 af 250

Page 31: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

4.1 Hastighedstest

Robottens ønskede funktionaliteter er beskrevet gennem kravspecifikationen kapitel 3, og dertages derfor udgangspunkt i denne, for at specificere accepttesten. Acceptesten har dog ikke tilformål at verificere hvorvidt hvert enkelt krav i kravspecifikationen overholdes. Det er istedetformålet at verificere hvorvidt robottens samlede funktionalitet er som ønsket, med henblik på atkunne gennemføre de udvalgte forhindringer til RoboCup. En række af kravene fra kravspecifi-kationen bruges dog til at danne basis for de testemner, som gennemgås i de respektive deltests,samt hvilke succeskriterier der skal gøre sig gældende.

Testene udføres ikke på en fuldstændig kopi af den egentlige konkurrencebane. Istedet konstrue-res mindre ’testbaner’ der efterligner dele af den egentlige konkurrencebane. Det skal bemærkesat der igennem RoboCup ikke er opgivet nøjagtige mål på konkurrencebanen, og den angivnemålestok, på testbanerne, kan derfor afvige fra den virkelige konkurrencebane. Det accepteressamtidigt at testbanerne, efter konstruktion, afviger lidt fra målestokken, da det kan være sværtat følge denne eksakt. I de følgende afsnit gennemgås hver enkelt deltest, og den tilhørende test-bane.

4.1 Hastighedstest

Formålet med testen er at undersøge om robotten kan gennemføre den del af konkurrencebanender i appendiks B.2 kaldes ’racerbanen’.

Testbane

Hastighedstesten udføres på testbanen, som er vist på figur 4.1. Bemærk at samme testbane bru-ges til beslutningstesten, hvorfor en del af figuren ikke er forklaret under denne test.

C1 m Tidsport

D

A

B

Tunnel

1m0

Målestok

Figur 4.1: Hastighedstestens testbane efterligner den del af den ægte konkurrencebane, hvorder er krav til hastigheden, også kaldet ’racerbanen’ jvf. afsnit B.2. Testbanen konstrueres ud fraangivne målestok.

Beskrivelse af testbanen:For hastighedstesten starter testbanen i punkt ’A’ og slutter i punkt ’B’. Begge punkter er placereti forbindelse med en tidtagningsport, som ligeledes er markeret på figuren. På figuren indikererden sorte streg den tape linie som robotten skal følge. En del af vejen fra ’A’ til ’B’ består afet sving, med en diameter på 1 m. På linien, midt i dette sving, er placeret en af konkurrencenspointporte, farvet gult på figuren. De sorte pile angiver robotten køreretning.

4. Accepttestspecifikation 31 af 250

Page 32: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

4.2 Beslutningstest

Testeemner

Følgende emner testes gennem hastighedstesten:

• Robotten skal kunne opretholde en gennemsnitshastighed på mindst 1 m/s.

• Robotten skal følge linien gennem hele testbanen.

• Robottens afvigelse fra linien må ikke være så stor at den kolliderer med porten i testbanenssving.

Testdesign

Der anvendes et stopur til at måle tiden det tager for robotten at gennemføre testbanen.

1. Robotten placeres midt på linien ved punkt ’A’ på figur 4.1, vendt med kørselsretningen.

2. Robotten startes på startknappen.

3. Når robotten passerer tidtagningsportens indgang, startes tiden.

4. Tiden stoppes når robotten har gennemført testbanen, og passerer tidtagningsportens ud-gang, ved punkt ’B’.

Testen er en succes såfremt følgende er overholdt:

1. Robottens gennemsnitshastighed er 1 m/s eller derover.

2. Robotten kolliderer ikke med den indsatte port i svinget.

4.2 Beslutningstest

Beslutningstesten skal vise om robotten selv er i stand til at bestemme hvad den skal foretagesig, i forskellige nøglepunkter på banen. For at teste dette, udvælges en forhindring fra konkur-rencebanen, som robotten autonomt skal kunne gennemføre, uden at følge linien. Det vælges atrobotten skal gennemføre ’Tunnelen’, som beskrevet i appendiks B.2.

Testbanen

Der anvendes samme testbane som for hastighedstesten, hvilken ses på figur 4.1.

Beskrivelse af testbanen:Testbanen, til denne test, starter i punkt ’B’. Punktet ’C’ er placeret i forbindelse med et T-krydspå linien som følges. Den blå firkant på figuren indikerer tunnelen som robotten skal køre igen-nem. Tunnelen er lukket med en port i hver ende. Tunnelen passeres ved at følge ruten illustreretmed den røde stiplede linie på figuren. Den røde streg er altså ikke en del af banen, men illu-strerer blot hvordan tunnelen skal forceres. Det er ikke et succeskriterie at den kører præcis efter

32 af 250 4. Accepttestspecifikation

Page 33: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

4.2 Beslutningstest

den stiplede linie, bare at den kommer igennem tunnelen. Beslutningstesten er gennemført, nårrobotten finder tilbage til linien, og passerer punkt ’D’.

At det fremgår utydeligt hvor langt der skal køres i de forskellige retninger, for at komme igen-nem tunnelen, skyldes at det, fra RoboCups side, ikke præcist er opgivet hvor langt fra linientunnelen er placeret.

Testemner

Følgende emner testen gennem beslutningstesten:

• Robotten skal kunne detektere forgreninger af linien, samt træffe korrekte beslutninger idisse.

• Robotten skal gennemføre et prædefineret forløb uafhængigt af linien.

Testdesign

Testen gennemføres som beskrevet nedenfor:

1. Robotten placeres midt på linien ved punkt ’B’ på figur 4.1, vendt med kørselsretningenpå banen, indikeret med pilen over tidsporten.

2. Robotten startes på startknappen.

3. I punktet ’C’ skal robotten detektere T-krydset og følge linien 90 til højre.

4. I punktet ’D’ skal robotten afvige fra linien, og køre en forudbestemt rute gennem tunnelenvia den stiplede rute, som tidligere beskrevet.

5. Robotten slukkes når den har passeret punkt ’D’, efter at have kørt igennem tunnelen.

Testen er en succes såfremt følgende er overholdt:

1. Robotten gennemfører testbanen, uden at fare vild, dvs. at den kan gennemkøre tunnelenog efterfølgende finde tilbage til punktet ’D’.

4. Accepttestspecifikation 33 af 250

Page 34: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

4.3 Forhindringstest

4.3 Forhindringstest

Forhindringstesten skal undersøge om robottens opbygning og motorkontrol er konstrueret såle-des at robotten kan klare forhindringerne på konkurrencebanen.

Testbane

Testbanen der anvendes, er vist på figur 4.2.

B

A

C

E

Rampe 2

Rampe

1

Vippe

Trappe

FG

1m0

Målestok

Figur 4.2: Testbane til forhindringstesten er et udsnit af DTU banen. Banen konstrueres efterden angivne målestok.

Beskrivelse af testbane:Testbanen starter i punkt ’A’ og slutter i punkt ’G’. Den tykke sorte streg viser ligesom tidligeretapenlinien på gulvet, og de tyndere streger indikerer forhindringerne. De gule streger viser lige-som tidligere hvor der er placeret pointporte forskellige steder langs linien.

Fra starten i ’A’ kører robotten op ad testbanens rampe 1. I punktet ’E’ skal robotten dreje fratil venstre og køre ned af trappen. For enden af trappen skal robotten følge liniens forløb, indtilden når et kryds ved punktet ’F’. I krydset skal den dreje til højre og derefter følge linien op adrampe 2. Linien følges til punktet ’B’, hvor der drejes skarpt til højre, ned ad vippen. For endenaf vippen, i punktet ’C’, stopper tapelinien, hvormed robotten skal følge ruten angivet med denrøde stiplede streg til den møder linien i punktet ’D’. Her skal robotten dreje til venstre, og følgelinien til punktet ’F’, hvor den igen skal dreje til venstre, til punktet ’G’.

34 af 250 4. Accepttestspecifikation

Page 35: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

4.3 Forhindringstest

Testemner

Forhindringstesten ombefatter følgende testemner:

• Robotten skal kunne køre op af en rampe med hældningen 16 .

• Robotten skal kunne køre ned af trappen

• Robotten skal kunne detektere forgreninger af linien, samt træffe korrekte beslutninger idisse.

• Robotten skal gennemføre et prædefineret forløb uafhængigt af linien

Bemærk at der nogle af emnerne er gengangere fra beslutningstesten. Under denne test vil robot-ten være under andre forhold, og det findes derfor relevant at teste samme emner igen.

Testdesign

1. Robotten placeres midt på linien ved punktet ’A’ på figur 4.2, vendt med kørselsretningenindikeret med en stiplet pil.

2. Robotten startes på start knappen.

3. Robotten gennemkører testbanen som beskrevet tidligere.

4. Robotten stoppes ved punktet ’G’.

For at testen er en succes skal følgende være overholdt:

1. Robotten følger den korrekte vej gennem testbanen.

2. Robotten farer ikke vild fra punkt ’C’ til punkt ’D’.

3. Robotten tager ikke skade af at køre ned af trappen eller vippen.

4. Robotten kolliderer ikke med nogen af portene.

4. Accepttestspecifikation 35 af 250

Page 36: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

4.4 Stresstest

4.4 Stresstest

Formålet med stresstesten er at undersøge om robotten kan håndtere situationer hvor den skalbehandle flere opgaver på én gang. Det undersøges hvorvidt robotten kan håndtere at køre meden hastighed på 1 m/s, igennem en række sving, med samme radius, som de skarpeste af kon-kurrencens sving. For at stresse robotten yderligere skal den skiftevis dreje til højre og venstre.Ydermere testes for hvor længe robotten kan køre på en batteriopladning under de stressendebetingelser. For yderligere at stresse robotten, udføres kommunikationstesten, samtidig med atstresstesten afvikles. Kommunikationstestens beskrives dog først i afsnit 4.5.

Testbanen

Testbanen ses på figur 4.3.

A

1m0

Målestok

1m

Figur 4.3: Testbane for stresstesten. Denne testbane har ikke noget med konkurrencebanen atgøre, og anvendes altså kun for at stresse robotten.

Beskrivelse af testbanen:På figuren indikerer den sorte streg, ligesom tidligere, en tapelinie på gulvet. Testbanen beståraf en række sving til både højre og venstre. Alle sving har en svingradius på 50 cm. Dermeder alle svingene lige så skarpe, som de skarpeste sving på den rigtige konkurrencebane, jvf.appendiks B.2.

Testemner

Stresstesten ombefatter følgende emner:

• Robotten skal kunne dreje med en svingradius på 50 cm

• Robotten skal køre i 15 min, uden at batteriet løber tør for strøm

• Robotten skal følge linien gennem hele testbanen.

Testdesign

1. Robotten placeres midt på linien ved punktet ’A’, vendt med kørselsretningen, indikeretmed pilene.

36 af 250 4. Accepttestspecifikation

Page 37: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

4.5 Kommunikationstest

2. Robotten startes på startknappen.

3. Et stopur startes for at måle tiden robotten har kørt.

4. Robotten skal følge linien gennem alle svingene, med en hastighed på 1 m/s.

5. Robotten kører banen igennem uden ophold.

6. Testen er færdig når robotten stopper grundet lavt batterispænding.

Testen er en succes såfremt følgende er overholdt:

1. Robotten følger liniens forløb under hele testen.

2. Robotten løber ikke tør for strøm, før der er gået mindst et kvarter.

4.5 Kommunikationstest

Den sidste test er kommunikationstesten. Denne undersøger hvorvidt de opstillede krav til robot-tens kommunikationsmodul er overholdt. Idet testen ikke drejer sig om robottens manøvrering,men derimod om datatransport, er der ikke nogen testbane for denne test. Testen udføres somnævnt, samtidig med stresstesten, dvs. testen der beskrives i det følgende, udføres imens robot-ten kører rundt på banen, på figur 4.3.

Testemner

Følgende emner ombefattes af stresstesten:

• Rækkevidden på den trådløse forbindelse skal være mindst 10 m.

• Kommunikationen skal kunne sende værdierne for en række nøgleparametre, som det heletiden ønskes at overvåge når robotten kører.

• Værdierne skal udsendes minimum 10 gange i sekundet

De parametre der ønskes overført i testen er: hastigheden på robotten, batterispænding og afstan-den til linien.

Testdesign

1. 10 m væk fra banen placeres en PC, som robotten skal sende til.

2. Robotten sættes i gang med stresstesten, som beskrevet tidligere.

3. Parametrene nævnt ovenfor, skal udsendes af robotten, og kunne aflæses på PC’en, imensrobotten afvikler stresstesten.

4. Parametrene overvåges via PC’en igennem hele stresstesten.

4. Accepttestspecifikation 37 af 250

Page 38: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

4.6 Delkonklusion

5. På PC’en registreres hvor meget data der modtages.

6. Ud fra den tid testen forløber, hvilket måles igennem stresstesten, kan det beregnes hvormeget data der skal være modtaget.

Testen er en succes såfremt følgende er overholdt:

1. Alle de ønskede parametre bliver modtaget på PC’en, igennem hele testforløbet.

2. Den modtagne mængde data afviger ikke fra den beregnede mængde, med mere end 1%.

En afvigelse på 1% i data mængden findes rimelig, idet det er svært præcist at måle tiden testenforløber, og dermed også præcist hvor stor mængde data der skal modtages.

4.6 Delkonklusion

Hermed er de nødvendige tests, af den samlede robot, opstillet. Udførelsen og behandlingen aftestresultaterne er som nævnt gennemført i kapitel 16.

I de efterfølgende kapitler gennemgås udviklingen af selve robotten, ud fra de blokke det tidli-gere er blevet beskrevet et robotten skal bestå af. Først udvikles og konstrueres de nødvendigehardware komponenter, hvorefter softwaren til robotten designes.

38 af 250 4. Accepttestspecifikation

Page 39: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Kapitel 5Motorer

Dette kapitel behandler valg af motorer til robotten. Valget af mekanisk platform, som motorernemonteres på, gennemgås i appendiks C.

5.1 Krav til motorer

I appendiks C er den mekaniske platform som nævnt beskrevet. Opsummerende er det valgt atanvende en platform med fire hjul, alle med fikseret vinkel i forhold til chassiset. Dette betyder atder anvendes skridstyring som styringsform. Som en naturlig forlængelse af dette, er det valgt atanvende 4-hjulstræk, hvilket medfører at der skal anvendes fire motorer. Det ønskes at motorerneer af samme type. I kravspecifikationen er der desuden opstillet følgende krav til robotten, hvilkedirekte kan overføres til motorerne:

• Robotten skal kunne drive sig selv op af en hældning på 16, krav 7.

• Robotten skal på en flad strækning, kunne opretholde en hastighed på minimum 1 m/s,krav 8.

• Robotten skal kunne køre både frem og tilbage, krav 9.

Grænseflader

Motorerne skal modtage et spændingssignal, hvorefter de roterer med en vis hastighed på bag-grund af denne spænding. Spændingssignalet skal kunne varieres, således motorernes omdrej-ningshastighed ligeledes varieres. Spændingssignalet der styrer motorerne kommer fra motorsty-ringen, som igen styres af mikrocontrolleren. Grænsefladerne er illustreret på figur 5.1.

39 af 250

Page 40: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

5.2 Overordnede løsningsmuligheder

Figur 5.1: Illustration af grænsefladerne til motoren.

5.2 Overordnede løsningsmuligheder

Der findes forskellige typer motorer som kan anvendes til robotten. Blandt andet skal det vælges,om det ønskes at anvende AC- eller DC-motorer. Da der på 5. semester modtages undervisning inetop DC-motorer, ses det som nærliggende at anvende disse. For at motorerne rent fysisk passermed den valgte mekaniske platform, vælges det at anvende en type motorer der kan monteres pådenne. Bemærk at der anvende enheden [RMS] (Rounds per minut), for omdrejninger per minut,på trods af at den korrekte SI-enhed er [1/60s]. Dette gøres da det findes at lette forståelsen, ogvil desuden ligeledes blive anvendt gennem den resterende del af rapport.

Ud fra størrelsen af de valgte hjul, som i tabel C.1 side 201 er anført til 12,07 cm, kan det beregneshvor hurtige motorerne skal være, før de kan drive robotten frem med en hastighed på 1 m/s:

vmaks =π ·d ·ω

K[m/s] (5.1)

Hvor:vmaks er robottens maksimale hastighed [m/s]d er diameteren på hjulet [m]ω er motorens rotationshastighed [RPM]K er omregningsfaktoren fra sekunder til minutter [-]

Heraf beregnes den nødvendige omdrejningshastighed:

ω =1 ·60

π ·0,1207⇔ [RPM] (5.2)

ω = 158,2 RPM (5.3)

Dette er altså den nødvendige omdrejningshastighed for motorerne, før robotten kan overholdekravet til maksimalhastighed.

40 af 250 5. Motorer

Page 41: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

5.3 Valg af motorer

5.3 Valg af motorer

De valgte motorer til robotten er 7,2 V DC-motorer, med permanente magneter. Motorerne hardesuden påmonteret en gearing på 30:1, hvilket betyder at selve motorakslen drejer 30 gangehurtigere rundt end den aksel hvorpå hjulene monteres [19]. Motorernes datablad er anført somkilde [19]. De relevante specifikationer for motorerne ses i tabel 5.1.

Beskrivelse Værdi EnhedNormeret arbejdsspænding 7,2 VGearing 30:1Normeret belastning 79,5E-3 N·mStrøm (ved 7,2 V ubelastet) 200 mAStrøm (ved 7,2 V normeret belastning) 687 mAStrøm (ved 7,2 V låst aksel) 3,8 ARotationshastighed (ubelastet) 291 ± 10% RPMRotationshastighed (ved normeret belastning) 235 ± 10% RPM

Tabel 5.1: Tabellen viser de relevante specifikationer for de valgte motorer.

Det ses ud fra tabel 5.1, at rotationshastigheden, ved normeret belastning, som minimum er0,9 · 235 = 211,5 RPM, hvormed motorerne overholder det tidligere stillede krav til hastig-hed. Robottens garanterede maksimalhastighed, med de valgte motorer ved normeret belastning,beregnes ud fra ligning 5.1:

vmaks =π ·0,1207 ·211,5

60⇔ [m/s] (5.4)

vmaks = 1,34ms

(5.5)

Motorernes omdrejningshastigheden bestemmes af den middelspænding der påtrykkes motorter-minalerne, hvor 7,2 V er maksimum. Omdrejningsretningen skiftes ved at ombytte polaritetenaf den spænding der påtrykkes. Motorerne overholder derfor kravet om at kunne køre både fremog tilbage, dog skal motorerne stoppes før der skiftes kørselsretning, da de ellers kan tage ska-de [19].

Selve motorakslen er forlænget gennem bagenden af motorhuset. Denne tilgang til motoraks-len kan eksempelvis bruges til registrering af omdrejningshastighed. Dog skal det bemærkes atmotorakslen, som tidligere beskrevet, roterer 30 gange hurtigere end hjulakslen. Dette uddybesnærmere i afsnit 6.

Motoren gennemgås dybere i appendiks D, hvor der desuden opstilles modeller for denne, hvilketskal bruges i forbindelse med reguleringen.

5. Motorer 41 af 250

Page 42: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Kapitel 6Omdrejningshastighed- og afstandsmåler

I dette kapitel behandles sensorerne til at måle motorernes omdrejningshastighed, hvilket bl.a.bruges i forbindelse med reguleringen ef robottens samlede hastighed. Disse sensorer anvendessamtidigt til at beregne robottens tilbagelagte afstand.

6.1 Krav til blokken

I henhold til kravspecificationen, afsnit 3.4.2 side 26, skal der på hver motor placeres en sensorsom kan registrere hjulets omdrejningshastighed samt den tilbagelagte afstand. Kravene til dissesensorer er som følger:

• Sensoren skal kunne bestemme motorens omdrejningshastighed, krav 27.

• Sensoren skal kunne registrere afstande ned til 5 mm, eller mindre, krav 28.

• Sensoren skal kunne bestemme motorens omdrejningsretning, krav 29.

• Sensoren skal kunne fungere ved den valgte motortypes maksimale omdrejningshastighed,krav 30.

• Sensoren skal som minimum kunne bestemmes omdrejningshastigheden 100 gange i se-kundet, krav 31.

• Sensorens output skal være kompatibelt med mikrocontrolleren, krav 32.

Det primære formål med at måle motorernes omdrejningshastighed, er at blive i stand til at regu-lere hastigheden ved hjælp af tilbagekobling. Reguleringen uddybes i kapitel 12, hvorimod dettekapitel alene omhandler valget af selve sensoren. Sensorerne anvendes ligeledes til beregningaf robottens tilbagelagte afstand, hvilket dog forudsætter at hjulspind undgås. Da det, i appen-diks C, er bestemt at anvende fire motorer, skal der ligeledes anvendes fire sensoren til at målederes hastighed. Da alle fire er identiske, beskrives i det følgende kun en enkelt sensor.

42 af 250

Page 43: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

6.2 Overordnede løsningsmuligheder

6.1.1 Grænseflader

Sensoren grænser på den ene side op til mikrocontrolleren, og på den anden side op til motorensom den er placeret på. Grænsefladen til motoren er mekanisk og det er derfor nødvendigt atsensoren rent fysik kan monteres på motoren, hvilket er muligt med den forlængede motoraksel,som beskrevet i kapitel 5. Grænsefladen til mikrocontrolleren er ikke fastlagt, da kravet blot er atde to blokke skal være kompatible med hinanden.

6.2 Overordnede løsningsmuligheder

Der er flere metoder der kan anvendes til at bestemme omdrejningshastighed, hvoraf nogle ud-valgte gennemgås i det følgende.

Brug af jævn- eller vekselsstrømsgenerator

En metode der kan anvendes, er at beregne omdrejningshastigheden på baggrund af en jævn-strømsgenerator, monteret på motorakslen. Den genererede spænding er proportional med om-drejningshastigheden, hvormed sidstnævnte kan beregnes [5]. Ud fra den, af generatoren, gene-rerede strøms retning, kan motorens omdrejningsretning samtidigt bestemmes.

Det er ligeledes muligt at anvende en vekselstrømsgenerator istedet, hvor hastigheden kan be-stemmes ud fra frekvensen på det genererede signal [5], dvs. jo hurtigere motoren drejer, johurtigere frekvens genereres. For at bestemme omdrejningsretningen ved brug af denne metode,skal der bruges en flere-faset generator, hvormed retningen kan bestemmes ud fra hvilken faseder er ledende. Generelt skal generatoren dog være meget lille i forhold til motoren, da den ellersvil belaste motoren for meget.

Brug af lys

En anden anvendelig metode, er at bruge lys til at måle omdrejningshastigheden. Dette principbestår i at en skive, også kaldt et kodehjul, monteres på motorakslen. På kodehjulet er der småhuller, der kan trænge lys gennem. På den ene side af kodehjulet er placeret en LED og på denanden side en photodetektor. I takt med at kodehjulet roterer vil photodetektoren rammes af lyshver gang et hul passerer LED’en. Tilsvarende rammes detektoren ikke af lys, når der ikke erhul i kodehjulet. Når photodetektoren rammes af lys, genereres en strømimpuls. Frekvensen afpulstoget, der fremkommer når photodetektoren i korte øjeblikke rammes af lysstrålen, vil varieremed omdrejningshastigheden. På figur 6.1 ses en illustration af dette.

6. Omdrejningshastighed- og afstandsmåler 43 af 250

Page 44: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

6.2 Overordnede løsningsmuligheder

Motoraksel

Kodehjul

Situation 1 Situation 2

LED

Photodetector

Hul

i

Figur 6.1: Illustration af hvordan omdrejningshastigheden på en motor kan måles med en optisksensor. Hver gang et hul passerer LED’en, situation 1, strømmer der lys ind i photodetektorenhvorpå denne genererer en strøm. I situation 2 blokerer kodehjulet for lyset og der genereresdermed ingen strøm i photodetektoren. Udgangssignalet fra photodetektoren vil derpå være pro-portional med omdrejningshastigheden.

Denne type sensor kaldes en optisk omdrejningsencoder [53]. Ved at måle frekvensen på signaletfra encoderen, kan hastigheden bestemmes. Samtidigt kan den tilbagelagte afstand findes, ved atkende afstanden som hver impuls fra encoderen svarer til. I nogle tilfælde er hullerne i kodehjuletudskiftet med reflekterende felter, og LED’en og photodetektoren sidder i disse tilfælde på sam-me side. En fordel ved en optisk omdrejningsencoder, er at den stort set ikke tilføjer belastningtil den motor der måles på, som var tilfældet ved metoden med en generator.

For at være i stand til at bestemme motorens omdrejningsretning, skal der anvendes en såkaldtkvadratur omdrejningsencoder. Denne type har et ekstra spor af huller på kodehjulet, samt en der-tilhørende photodetektor, hvormed der er to udgangssignaler fra sensoren. Sporene er forskudti forhold til hinanden, således der altid er en faseforskel på 90 mellem de to udgangssignaler.Omdrejningsretningen kan bestemmes ud fra hvilket udgangssignal der er ledende. På figur 6.2ses en illustration af de to udgangssignaler, fra en kvadratur omdrejningsencoder. På figuren ersignal A ledende, hvilket eksempelvis kan betyde at den pågældende motor roterer højre om. Iså fald vil signal B være ledende når motoren roterer venstre om. Ved at tælle de opadgåendeflanker, på eksempelvis signal A, over en given tid, samt i samme øjeblik som en flanke tælles,registrere hvilken værdi signal B har, kan både omdrejningshastighed og -retning bestemmes.

A

B

Tid

Figur 6.2: Figuren illustrerer udgangssignalerne fra en kvadratur omdrejningsencoder. Det le-dende signal angiver omdrejningsretningen. I dette tilfælde er signal A ledende.

44 af 250 6. Omdrejningshastighed- og afstandsmåler

Page 45: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

6.3 Valg og analyse af kredsløb

Der findes ydermere en sidste type af optiske omdrejningsencodere, kaldet absolutte omdrej-ningsencodere. Disse har et output der er et unikt bitmøster for hver målbar vinkel. Dette betyderat det kan bestemmes hvilken absolut vinkel motorakslen befinder sig i. Disse er dog væsentligtmere kostbare end de øvrige encodertyper, og da det ikke findes specielt hensigtsmæssigt forprojektet at anvende sådanne, behandles disse ikke nærmere.

Brug af kontakt

En anden tænkelig metode er, at lade en kontakt sluttes i takt med at motoren drejer rundt. Hermedskabes et signal vis frekvens afspejler hastigheden. Dette kan gøres efter samme princip somanvendes af de optiske omdrejningsencoder, blot med små forhøjninger i kodehjulet, istedet forhuller. Ved at anvende en kontakt der slutter hver gang en forhøjning passeres, skabes et pulstogmed en frekvens afhænging af omdrejningshastigheden. Denne mekaniske tilgang er dog primærtegnet til relativt lave omdrejningshastigheder, dels på grund af prel [53], og desuden vil dennemetode bidrage til yderligere belastning af motoren.

Brug af magnetisk element

En sidste metode, som gennemgås, er at bruge magnetisme til at bestemme omdrejningshastig-heden. Ved at montere en permanent magnet på motorakslen, vil der opstår et roterende mag-netfelt. Dette magnetfelt kan detekteres med en magnetisk sensor, også kaldet en hall-sensor,hvorigennem omdrejningshastigheden og retningen kan bestemmes. En hall-sensor er i princip-pet en transducer, der varierer sin udgangsspænding i forhold til ændringer i et magnetfelt [50].Hall-sensoren kan desuden bruges efter samme princip som ved den optiske omdrejningsenco-der. Dette være sig ved at montere små permanentmagneter rundt på kodehjulet, istedet for huller,hvormed en hall-sensor kan anvendes som erstatning for photodetektoren og LED’en.

6.2.1 Valg af løsning

Det vælges at benytte en optisk omdrejningsencoder til at måle motorens omdrejningshastighed.Dette begrundes dels i at denne løsning ikke tilføjer betydelig modstand til motorerne. Samti-digt synes løsningen simpel at anvende, fremfor eksempelvis at bruge en generator. For at kunnebestemme omdrejningsretningen, er det som nævnt nødvendigt at det er kvadratur omdrejnings-encodere der vælges.

6.3 Valg og analyse af kredsløb

I det følgende bestemmes hvilken type optisk omdrejningsencoder det ønskes at anvende. Eftervalget af dette, beskrives hvorledes den valgte type kan kommunikere med mikrocontrolleren.Bemærk at det vælges at anvende enheden [PPR] til at angive hvor mange pulser encoderenudsender per omdrejning, hvilket ifølge SI-standarden er enhedsløs. Dette vælges i kraft af at detfindes at lette forståelsen.

6. Omdrejningshastighed- og afstandsmåler 45 af 250

Page 46: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

6.3 Valg og analyse af kredsløb

6.3.1 Valg af optisk omdrejningsencoder type

Encoderen skal, som nævnt, kunne fungere ved den maksimale omdrejningshastighed for denvalgte motortype. Denne er, i henhold til, tabel 5.1 side 41, opgivet til 291 ±10% RPM udenbelastning, hvilket i værste tilfælde giver 320 RPM. Dette tal er opgivet for den aksel hvorpå hju-lene skal monteres, hvilken er gearet 30:1 i forhold til selve motorakslen. Encoderne placeres påmotorakslen, da motoren i forvejen er forberedt på dette. Den maksimale omdrejningshastighedpå motorakslen er dermed 320 · 30 = 9600 RPM, hvormed det kræves at omdrejningssensorenefungerer ved denne hastighed.

Der skal vælges en omdrejningsencoder som kan måle afstande ned til 5 mm. Dette sætter kravtil opløsningen på encoderen, altså hvor mange punkter der måles på en hel omdrejning, svarendetil antallet af huller i hvert spor på kodehjulet. Jo højere opløsningen er, jo mindre længder kanregistreres. Omdrejningsencoderen skal altså som minimum udsendes en puls pr. 5 mm som hju-let bevæger sig fremad. De valgte hjul har, i henhold til tabel C.1, en diameter på 12,16 cm. Dettegiver en omkreds på π ·12,16 = 38,20 cm. Da der er en gearing på 30:1 mellem motorakslen oghjulet, skal encoderens opløsning være minimum 38,20/(0,5 ·30) = 2,54 PPR≈ 3 PPR (PulsesPer Revolution).

Det vælges at anvende en omdrejningsencoder af typen E4P OEM Miniature Optical Kit En-coder fra producenten US digital [8], hvilken overholder alle de stillede krav. Omdrejningsen-coderen er kompatibel for montering på motorerne. Denne har opløsning på 100 PPR og kanmaksimalt holde til 30000 pulser pr. sekund. Sidstnævnte tilsvarer, med den givne opløsning, enomdrejningshastighed på (30000 ·60)/100 = 18000 RPM. Som det fremgår, har den valgte om-drejningsencoder en opløsning og maksimal omdrejningshastighed som er væsentligt bedre endkrævet. Der har dog ikke kunne findes andre omdrejningsencodere som var klargjort til monteringpå den valgte motortype, hvorfor valget faldt på netop denne. Eftersom omdrejningsencoderen nuer valgt, kan afstanden, som hjulet bevæger sig, for hver puls encoderne udsender, findes gennemfølgende ligning:

dpuls =Ohjul

Ghm ·PPRencoder[m] (6.1)

Hvor:dpuls er den kørte afstand per puls encoderen udsender. [m]Ohjul er hjulets omkreds. [m]PPRencoder er antallet af pulser encoderen udsender per omdrejning. [PPR]Ghm er gearingsfaktoren mellem hjulets aksel og motorakslen. [-]

Hermed bliver den afstanden for hver udsendt puls:

dpuls =0,382

30 ·100= 127,3 µm (6.2)

6.3.2 Valg af metode til aflæsning

På mikrocontrollersiden, kan omdrejningsencoderen kobles til på flere måder. Den valgte mikro-controller har indgange af typen ’timer counter’ [3, s.50], hvilke blandt andet kan bruges til at

46 af 250 6. Omdrejningshastighed- og afstandsmåler

Page 47: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

6.3 Valg og analyse af kredsløb

måle en frekvens. Dette kan anvendes i forbindelse med omdrejningsencoderen, da frekvensenpå dennes outputsignaler er proportionalt med omdrejningshastigheden. Der findes dog kun treindgange af denne type, på mikrocontrolleren, hvilket ikke er nok, da der anvendes fire encodere.

En anden mulighed er at interrupte mikrocontrolleren hver gang, eksempelvis udgangssignal Afra omdrejningsencoderen, udsender en puls. Encoderen vil dermed, i værste tilfælde, interruptemed en frekvens på encoderens opløsning gange akslens maksimale omdrejninger per sekund,altså 100 ·9600/60 = 16 kHz. Dette vurderes at være for meget, da det skal tages i betragtning atder er fire encodere, der alle vil interrupte med 16 kHz og dermed optage meget processorkraft.Frekvensen kan dog nedbringes med en binær counter mellem encoderen og mikrocontrolleren.Dette svarer til at nedbringe opløsningen på encoderen, hvilken dog ikke må bringes under hvadder svarer til 2,54 PPR, som er grænsen for den ønskede præcision af afstandsmålingen. Et andetproblem med denne metode er at samplingsfrekvensen ikke vil være konstant, hvilket besvær-liggør bestemmelsen af omdrejningshastigheden. Derfor vurderes denne løsning heller ikke somegnet.

Der vælges istedet at anvende en counter, til at tælle på hvor mange pulser encoderen har udsendtpå det ene af de to udgangssignal. Mikrocontrolleren gøres i stand til selv at aflæse denne værdi,og derefter nulstille counteren når den er aflæst. På denne måde kan der holdes en fast sampling-frekvens, som er styret af mikrocontrolleren.

For at kunne holde styr på omdrejningsretningen, opkobles counteren således den tæller hhv. opeller ned afhængigt af motorens retningen. Dette gøres i praksis ved at lade det andet udgangs-signal fra omdrejningsencoderen gå til et UP/DOWN ben på counteren, se figur 6.3. UP/DOWNbenet bestemmer, ud fra den logiske værdi på benet, hvilken retning counteren tæller i. I det øje-blik en positiv flanke forekommer, på det udgangssignal der tælles, vil UP/DOWN altid have enværdi som er bestemt af omdrejningsretningen. Dette være sig i kraft af at faseforskellen mellemde to signaler altid er 90 , samt at omdrejningsretningen bestemmer hvilket af de to signaler derer ledende. Dette fremgår af figur 6.2.

Ved brug af denne metode, vil antallet af pulser fra encoderen være repræsenteret i counteren veden two’s complement værdi, hvor fortegnet angiver retningen. I tabel 6.1 ses eksempler på hvor-dan tal repræsenteres ved two’s complement. Da der skal tælles i begge retninger, skal counterenvære dobbelt så stor som ellers nødvendigt, for at have plads til at repræsenterer både positive ognegative tal. Counterens minimums størrelse, kan beregnes ud fra følgende formel:

Ncounter,min = 2 · ωmax

K· PPRencoder

fs,min[-] (6.3)

Hvor:Ncounter,min er den værdi som counteren minimum skal kunne tælle til. [-]ωmax er motorens maksimale omdrejningshastighed på motorakslen [RPM]K er omregningsfaktoren fra sekunder til minutter [-]PPRencoder er antallet af pulser encoderen udsender per omdrejning. [PPR]fs,min er minimums samplingfrekvensen [Hz]

6. Omdrejningshastighed- og afstandsmåler 47 af 250

Page 48: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

6.4 Dimensionering af kredsløb

Fortegn Decimal værdi0 1 1 1 1 1 1 1 = 1270 0 0 0 0 0 1 0 = 20 0 0 0 0 0 0 1 = 10 0 0 0 0 0 0 0 = 01 1 1 1 1 1 1 1 = -11 1 1 1 1 1 1 0 = -21 0 0 0 0 0 0 1 = -1271 0 0 0 0 0 0 0 = -128

Tabel 6.1: Repræsentation af tal ved two’s complement med 8-bit

For ikke at mindske brugen af indgange på mikrocontrolleren, til at aflæse counterne i det sam-lede encoderkredsløb, ønskes det at anvende en serielt/parallel interface til aflæsningen. Til detteanvendes SPI (Serial Peripheral Interface Bus), hvilket er en kommunikationsstandard der kananvendes til at sende seriel data mellem enheder i et master-slave forhold, via en SPI-bus [4, s.190]. Aflæsningen af parallel data via en seriel bus, kan gøres med såkaldte SPI-expandere, derkan tage signaler fra den serielle bus, og omdanne dem til er paralellt signal. Hermed kan deparalelle signaler fra counterne aflæses med en SPI-expander, der serialiserer signalet, såledesat det indlæses serielt på mikrocontrolleren. For at styre expanderne, skal der bruges 3-seriellesignaler fra SPI-bussen, plus et chip-select signal. Dvs. at alle de paralelle data fra counterne, kanaflæses med kun tre ben fra mikrocontrolleren, plus et antal chip-select signaler. Via de tre inputfra bussen, kan expanderne enten læse eller skrive til de paralelle udgange. Idet der aldrig skalskrives til counternes output, bruges SPI-expanderne dog kun til at læse med.

Fordelen ved at anvende SPI er at alle counterne kan aflæses med ganske få indgange på mikro-controlleren. Dette stiller dog krav til at mikrocontrolleren er kompatibel med SPI standarden,for at den kan styre SPI-bussen, og dermed expanderne.

6.4 Dimensionering af kredsløb

På figur 6.3 ses det kredsløb som anvendes til aflæsning af omdrejningsencoderen. Det skal be-mærkes at figur 6.3 alene viser et uddrag af det samlede kredsløb, da der ialt skal kunne aflæsesfire encodere. De ben der, på figur 6.3, ikke er tilsluttet noget, samt ikke markeret med et kryds,anvendes i det samlede kredsløb. Det samlede kredsløbsdiagram findes i appendiks L og PCBudlæget findes på bilagscden /PCB/encoder/. I det følgende beskrives hvorledes kredslø-bets komponenter er valgt.

For at bestemme størrelsen på counteren, skal motorernes maksimale hastighed kendes. Da ro-bottens samlede vægt på nuværende tidspunkt ikke er kendt, vides ikke hvor meget motorerne vilblive belastet, og derfor ikke deres maksimale omdrejningshastighed. Omdrejningshastighedenvil dog aldrig blive højere end motorernes maksimale omdrejningshastighed uden belastning,hvorfor denne anvendes i de følgende beregninger. Ifølge tabel 5.1 på side 41, er den maksimaleomdrejningshastighed uden belastning 290 + 10% = 320 RPM. Denne er dog angivet på hju-lakslen, hvormed omdrejningshastigheden på motorakslen vil være 30 ·320 = 9600 RPM, i kraft

48 af 250 6. Omdrejningshastighed- og afstandsmåler

Page 49: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

6.4 Dimensionering af kredsløb

CS_SPI_MRCS_SPI_LRCS_SPI_LFCS_SPI_RRCS_SPI_RFCS_HBRO

Signal ASignal B

NPCS[0].DECODERNPCS[1].DECODERNPCS[2].DECODER

MSOMSISCK

VCC_5.0V

VCC_5.0V

VCC_5.0V

VCC_5.0V

Forbindelser til mikrocontroller

Forbindelser fra encoder

SPI-expander til indlæsning fra counterCounter til at tælle encoderpulser

SPI-expander til reset af countere 3 til 8 decoder, til at skabe CS-signaler

R.E6

750

R.E6

750

SPI.E1

MCP23S08

SPI.E1

MCP23S08

GP010GP111GP212GP313GP414GP515GP616GP717

Vdd 18Vss 9

INT 8

A05A14

CS 7

SCK 1MSI 2

RESET 6

MSO 3

D.E2LEDD.E2LED

SPI.E5

MCP23S08

SPI.E5

MCP23S08

GP010GP111

GP212GP313

GP414GP515

GP616GP717

Vdd 18Vss 9

INT 8

A05A14

CS 7

SCK 1SI 2

RESET 6

SO 3U.E1

74HC138

U.E1

74HC138

A 1B 2C 3

E3 6E2 4E1 5

Y015Y114Y213Y312Y411Y510Y69Y77

VCC 16

GND 8

COUNTER.E1

74F579

COUNTER.E1

74F579

CLK1

TC15

VCC16

GND 6

CEP18CET17

MR 20

OE 11

PE13 SR19

U/D14

CS12

D0 2D1 3D2 4D3 5D4 7D5 8D6 9D7 10

Figur 6.3: Kredsløb til aflæsning af en encoder.

af gearingsforholdet på 30:1 mellem de to aksler. Ifølge kravene til omdrejningsencoderen, skaldenne samples med minimum 100 Hz. Minimums størrelsen af counteren kan dermed findes viaformel 6.3:

Ncounter,min = 2 · ωmax

60· PPRencoder

fs,min[-] (6.4)

Ncounter,min = 2 · 960060· 100

100(6.5)

Ncounter,min = 320 (6.6)

Counteren skal dermed minimum kunne tælle til 320, hvormed der skal bruges en 9-bit counter,hvilken kan tælle til 511 (29−1). Det har imidlertid ikke være muligt at fremskaffe en counter,med UP/DOWN funktion, på mere end 8-bit. Dette betyder at der skal samples med en højere fre-kvens, for at størrelsen af counteren er tilstrækkelig, når robotten kører ved maksimal hastighed.Den laveste tilladte samplingfrekvens, findes på baggrund af formel 6.3:

fs,min =2 ·ωmax ·PPRencoder

60 ·Ncounter,min[Hz] (6.7)

fs,min = ·2 ·9600 ·10060 ·255

[Hz] (6.8)

fs,min = 125,5 Hz (6.9)

Det er dermed et krav at encoderen aflæses minimum 125,5 gange i sekunder, da der ellers ri-sikeres et overflow i counteren, hvormed hastighedsmålingerne bliver utilregnelige. Den valgtecounter er af typen 74F579 produceret af Fairchild Semiconductor [35].

Det kræver en 8-bit SPI-expander for at aflæse én counter, i kraft af at der anvendes en 8-bit coun-ter. Counteren skal dog samtidig kunne nulstilles, hver gang den er blevet læst, hvilket kræver en

6. Omdrejningshastighed- og afstandsmåler 49 af 250

Page 50: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

6.5 Verificering

ekstra bit, til at styre reset benet (MR). Da der ialt skal aflæses fire contere vælges det at anvendefire 8-bit SPI-expandere til at aflæse hver counter, samt derudover en 8-bit SPI-expander til atlevere reset signaler. Der anvendes altså ialt fem SPI-expandere i encoderkredsløbet. De valgteSPI-expandere er af typen MCP23S08 fra producenten Mikrochip [14].

Som det senere vil fremgå i kapitel 7, anvendes ligeledes en SPI-expander i forbindelse medstyringen af H-broerne. Mikroprocessoren har fire udgange til chip-select af SPI-enheder, kobletpå samme bus [4, s.190]. Da der som sagt skal bruges seks SPI-expandere, er det nødvendigt atdekode de eksiterende chip-select signaler, således der dannes tilstrækkeligt signaler til at kunnechip-selecte alle SPI-expanderne hver for sig. Til dette formål anvendes en 3 til 8 decoder aftypen 74HC138, fra producenten Philips [26].

Til sidst skal det nævnes at alle komponenter, som anvendes i forbindelse med encoderne, fun-gerer ved 5 V forsyning.

6.5 Verificering

Encoderkredsløbet verificeres ved dels at måle omdrejningshastigheden, på en roterende motor,ved hjælp af et optisk tachometer og samtidigt måle omdrejningshastigheden ved hjælp af enco-derne. Der udføres målinger ved seks forskellige omdrejningshastigheder på motoren. Målinger-ne fra tachometeret bruges som en reference for den faktiske hastighed på motoren, og det kandermed bestemmes hvor meget hastigheden, målt med encoderne, afviger fra denne. Målingerneudføres i henhold til beskrivelsen i målejournalen appendiks H. Resultaterne fra målejournalenbehandles i dette afsnit. Der udføres alene målingerne på én encoder og med én motor, i kraft afat de anvendte kredsløb til robottens fire motorer er identiske. Resultaterne fra målingerne ses itabel 6.2.

Motor- Tachometer- Encoder- Encoder Encoderspænding [V] måling [RPM] måling [RPM] afvigelse [RPM] afvigelse [%]2,0 2330 2304 26 1,123,0 3550 3533 17 0,484,5 5350 5275 75 1,405,5 6540 6374 166 2,546,5 7850 7603 247 3,157,2 8610 8371 239 2,77

Tabel 6.2: Tabellen viser måleresultaterne fra verificeringen af encoderkredsløbet

Det ses at hastighedsmålingerne, foretaget med encoderen, afviger mellem 0,48% til 3,15%, iforhold til referencemålingerne foretaget med tachometeret. En stor del af afvigelsen ved enco-dermålingerne består formentligt i den kvantiseringsfejl der begås i kraft af encoderenes opløs-ning.

50 af 250 6. Omdrejningshastighed- og afstandsmåler

Page 51: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

6.6 Delkonklusion

Som beskrevet i appendiks H er der en sammenhæng mellem omdrejningshastigheden på moto-rakslen, og aflæsningen fra encoderen, på:

ωRPM = Pudlæsning ·76,8 [RPM] (6.10)

Hvor:ωRPM er omdrejningshastigheden [RPM]Pudlæsning er den udlæste værdi fra counteren [-]

Ud fra dette ses, at hver gang counteren tæller én op, svarer dette til en forskel på 76,8 RPM imålingen. Dette vil sige at kvantiseringsfejlen i værste tilfælde er lige under denne værdi, hviscounteren aflæses lige før den ellers ville blive talt op. Kvantiseringsfejlen forklarer en del afafvigelsen i encodermålingerne.

Det ses desuden at encodermålingerne alle ligger under tachometermålingerne, hvilket antyderat fejlen som begås ved encodermålingerne, i et vis omfang er stationær. I reguleringshenseendevil en sådan stationær fejl give grund til at robotten altid vil køre ved en procentvis lavere ha-stighed end ønsket. Samtidigt vil afstandsmålingerne ligeledes blive procentvis mindre. Undermålingerne, som er beskrevet i målejournalen, blev der for hver motorhastighed, udlæst 256 ha-stighedsmålinger over 2 sekunder. Det sås her, at alle de udlæste målinger havde samme værdi,hvilket ligeledes antyder at fejlen er stationær, da målingerne eller ville have varieret. En sta-tionær fejl er dog relativ nem at udbedre gennem software og er derfor ikke kritisk. En del afgrunden til at den procentvise afvigelsen, i forhold til referencen, alligevel varierer i målinger,kan findes i måleusikkerheden ved det anvendte tachometer. Denne har i værste tilfælde en usik-kerhed på±(5% + 15 RPM), som beskrevet i målejournalen. Det skal dog også nævnes, at i kraftaf denne usikkerhed i referencemålingen, kan den faktiske fejl i encodermålingerne være op til3,15% plus tachometerets afvigelse.

Samlet set vurderes encoderkredsløbet at fungere efter hensigten, dog med en fejl på ca. 3%. Her-med vil reguleringen aldrig blive i stand til at regulere hastigheden med større præcision end 3%.Størstedelen af fejlen vurderes dog at være stationær, hvormed softwaren kan tilpasses såledesen bedre præcision kan opnås.

6.6 Delkonklusion

Der er blevet valgt at anvende optiske omdrejningsencodere, til hastigheds- og afstandsmåling.Der er desuden opstillet et kredsløb som gør det muligt for mikrocontrolleren at lave hastigheds-og afstandsmålinger med en fast frekvens. Verificeringen af encoderkredsløbet viste at målingenaf robottens hastighed, fungerer efter hensigten, dog med en fejl på ca. 3%.

6. Omdrejningshastighed- og afstandsmåler 51 af 250

Page 52: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Kapitel 7Motordriver

Dette kapitel omhandler udviklingen af kredsløbet som skal styre og drive motorerne. Idet deranvendes fire motorer af samme type, som skal kunne styres på samme vis, anvendes identiskekredsløb til hver motorer. Det er derfor, i dette kapitel, alene nødvendigt at udvikle et kredsløbder kan styre én motor. Bemærk at dimensioneringen af kredsløbet, er bragt i appensiks E.

Inden arbejdet med blokken begynder, bør der gives en bemærkning omkring terminologi. Det ertidligere forklaret at robotten skal haven en form for motorstyring, hvor dette kapitel gennemgårmotordriveren. Sammenhængen mellem disse to, er at motorstyringen er en samlet betegnelse forde elementer der styrer motorerne, bestående af en motordriver og en motorregulator. Motordrive-ren gennemgås i dette kapitel, og er i princippet en ’effektforstærker’ der sørger for at motorernefår den spænding og strøm der skal til, hvilken styres af motorregulatoren. Motordriveren er altsåhardwareimplementeringen af motorstyringen mens motorreguleringen er softwareimplemente-ringen. Dette er illustreret på figur 7.1. Bemærk at der samtidigt skal skelnes mellem motordriverog selve motoren.

Figur 7.1: Oversigt over sammenhængen mellem motorstyring, -driver og -regulering. De rødeblokke er hardware, og den blå er software.

52 af 250

Page 53: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

7.1 Krav til Blokken

7.1 Krav til Blokken

På baggrund af de generelle krav, i kravspecifikationen side 24, kan følgende krav opstilles tilmotordriveren:

• Motordriveren skal kunne styre omdrejningshastigheden på motoren, krav 9.

• Motordriveren skal kunne styre motoren i begge omløbsretninger, krav 10.

• Motordriveren skal kunne bremse motoren eller lade den køre i friløb, krav 11.

• Motordriveren skal kunne styres af mikrocontrolleren.

7.1.1 Grænseflader

Figur 7.2 viser motordriverens grænseflader til øvrige kredsløb. For at driveren kan styre mo-torerne, efter en ønsket hastighed, skal den bruge et eller flere logiske styresignaler. Dermed erder en grænseflade til mikrocontrolleren, dvs. motorreguleringen, som leverer disse styresignaler.Mikrocontrollerens logiske signaler har spændingsniveauerne: lav = 0 V samt høj = 3,3 V [3].Motordriveren har samtidig en grænseflade til forsyningskredsløbet, der leverer den spænding ogstrøm der skal bruges. Sidste grænseflade er selve motorerne der skal styres. Motorerne skal ha-ve en spænding mellem 0 V og 7,2 V, alt efter den ønskede hastighed eller moment. Motorernesopbygning og egenskaber er yderligere beskrevet i appendiks D.

Figur 7.2: Grænsefladerne til motordriveren.

7.2 Overordnede Løsningsmuligheder

Motordriverens opgave er at styre motorens omdrejningshastighed samt -retning. Hastigheden afen motor styres ved den spændingen der påtrykkes over dens terminaler, og retningen styres afstrømmens retning gennem motoren. Motordriveren skal dermed være i stand til at variere spæn-dingen over motorens terminaler, samt være i stand til at vende polariteten af spændingen.

7. Motordriver 53 af 250

Page 54: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

7.2 Overordnede Løsningsmuligheder

Motorens middelspænding skal kunne styres mellem 0 V og 7,2 V, da 7,2 V er den maksimalemiddelspænding som motoren må påtrykkes [19], og dermed vil give den maksimale omdrej-ningshastighed. Der kan altså opnås maksimal hastighed ved at påtrykke et 7,2 V DC signal tilmotoren, eller et signal med en højere spænding som derimod har en middelværdi på 7,2 V. Hvismotorstyringen har en forsyning der er lavere end 7,2 V, er det nødvendigt også at implementereet trin der transfomerer spændingen op, for at nå maksimal hastighed. Sidstnævnte er dog enunødvendig kompliceret løsning. I det følgende gennemgås hvorledes motordriveren kan kon-strueres således at den leverer maksimalt 7,2 V til motoren.

Som det fremgår af kravspecifikationen, skal forsyningskredsløbets spændingskilde være et bat-teri. I denne forbindelse er det nødvendigt at overveje hvordan motordriveren ønskes forsynet.Spændingen på et batteri varierer alt efter opladning og belastning, hvilket uddybes i afsnit 11.3.1.For at forsyne motordriveren, kan det kræves af forsyningskredsløbet, at dette converterer denvarierende batterispændingen, til en konstant 7,2 V DC-signal. Efterfølgende kan motordriverenconvertere dette DC-signal, til den rette middel-spændingen på motorerne, mellem 0 V og 7,2 V.Herved converteres batterispændingen i princippet to gange, for at opnå den ønskede motorspæn-ding.

For at undgå at convertere spændingen to gange, kan det vælges at lade batterispændingen væ-re direkte forsyning til motordriveren, på trods af variationerne i denne spænding. Dette stillerdermed krav til forsyningskredsløbet, om at batterispændingen altid skal være over 7,2 V. Hvisspændingen ikke er dette, vil motordriveren ikke kunne levere motorerne maksimums spæn-ding, og motorerne vil derfor aldrig kunne yde maksimalt. Når batterispændingen altid er over7,2 V, må motordriveren dermed aldrig påtrykke motorerne fuld forsyningsspænding, da moto-rerne maksimalt må få 7,2 V. Batterispændingen skal derfor, i dette tilfælde, løbende måles afmikrocontrolleren, således det kan beregnes hvor stor en del af batterispændingen, motordrive-ren skal påtrykke motorerne, for at opnå den ønskede spænding.

For begge de nævnte muligheder, skal der ske en konvertering af motordriverens forsynings-spændingen, således den spænding der påtrykkes motorerne er som ønsket. To metoder til atgøre dette, gennemgås i det følgende.

Linær strømforsynings principEn løsning kunne være at anvende samme princip som anvendes i en lineær strømforsyning. Påfigur 7.3 ses hvorledes dette princip fungerer. På figuren er Vin den indgangsspænding der skaljusteres, og Vmotor er motorspændingen der maksimalt må være 7,2 V. Selve motoren er symboli-seret ved en cirklen med et ’M’ i.

Spændingen justeres med en transistor, ved at regulere hvor ’åben’ den er, således spændings-faldet over motoren bliver som ønsket [29]. Der anvendes altså tilbagekobling i kredsløbet, forløbende at justere transistoren. Ulempen ved denne metode er, at spændingsfaldet over transito-ren vil give anledning til et relativt stort effekttab, proportionalt med den strøm der løber gennemden, når den ikke er fuldt åben.

Denne løsning kan implementeres ved at lade mikrocontrolleren måle spændingen over motorenmed en ADC (analog-digital-converter), og samtidig en DAC (Digital til Analog Converter) til atstyre hvor meget transistoren er åben.

54 af 250 7. Motordriver

Page 55: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

7.2 Overordnede Løsningsmuligheder

Figur 7.3: Principielle virkemåde af en lineær strømforsyning. Cirklen benævnt med ’M’ ermotoren der skal forsynes. For at kontrollere spændingen over denne, reguleres hvor megettransistoren er ’åben’.

Switch mode principEn anden løsning er at benytte princippet bag en switchmode converter. Dette princip bygger påat anvende en transistor som en kontakt, til at åbne og lukke for spændingen. På figur 7.4 illustre-res hvorledes kontakten åbnes og lukkes, således spændingen over RLoad bliver et firkantsignalmed en lavere middelværdi end Vcc. I en switchmode converter udglattes dette firkantsignal til enDC-spænding, af et filter bestående af en spole og en kondensator, hvormed udgangsspændingenbliver middelværdien at firkantssignalet. Dette kaldes også en buck converter. I kraft af at enmotor blandt andet består af en spole, som ligeledes fungerer som et filter, vil motoren selv værei stand til at udglatte firkantsignalet til en konstant strøm, hvormed filteret ikke behøver at væreen del af motordriveren.

Ved anvendelse af denne løsning er det muligt at styre motorens hastighed med mikrocontrolle-ren, ved at anvende et ’Pulse Width Modulation’ signal (PWM), til at tænde og slukke transisto-ren. Duty-cyclen på signalet der påtrykkes motoren kan dermed varieres, ved at styre hvor længetransistoren er tændt. Hermed opnås en væsentlig bedre effektivitet fremfor først nævnte løsning,da der ikke afsættes megen effekt i transistoren, idet den skiftevis åbnes eller lukkes helt.

Figur 7.4: Swicth mode princippet anvendt på en modstand. Grafen angiver spænding mellemkontakten og modstanden

7.2.1 Valg af teknologi

I motordriveren vælges det at anvende batterispændingen direkte som forsyning, og dermed la-de mikrocontrolleren måle hvor stor denne spænding er. Det stilles hermed som krav til forsy-ningskredsløbet, at batterispændingen altid skal være over 7,2 V. Det vælges desuden at reguleremotorspændingen, ud fra switchmode princippet, idet der på denne måde undgås meget af detenergitab der ellers ville forekomme, hvilket er favorabelt idet robotten dermed vil kunne kørelængere på én batteriopladning.

I det følgende opstilles og analyseres kredsløbet til motordriveren, hvorefter det dimensioneres iforhold til de givne krav og grænseflader.

7. Motordriver 55 af 250

Page 56: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

7.3 Valg og analyse af kredsløb

7.3 Valg og analyse af kredsløb

Ud over at styre hastigheden på motorerne, skal det også være muligt at styre hvilken funktiona-litet motorerne udfører. Med dette menes hvorvidt motorerne kører den ene eller anden retning,kører friløb eller bremser. Disse funktionaliteter, samt omdrejningshastigheden på motorerne,skal angives af styresignaler fra mikrocontrolleren, således motordriveren styrer motorerne kor-rekt.

En måde at realisere de ønskede funktionaliteter, samt anvende switchmode teknologi, er at bru-ge en såkaldt H-bro. På figur 7.6 (1), ses opbygningen af en H-bro, bestående af fire transistorer,anvendt som kontakter, samt motoren benævnt ’M’. Det ses at de 4 kontakter og motoren, danneret ’H’, deraf navnet [48, s.47]. Baggrunden for at anvende en H-bro, til at implementere motor-driveren, er at denne kan styre hastigheden i begge retninger, hvilket netop er motordriverensprimære funktionalitet. Dette stiller krav til mikrocontrolleren, om at denne skal indeholde et an-tal PWM moduler, altså udgange som kan udsende et PWM signal. Da der anvendes fire motorerpå robotten, skal mikrocontrolleren ligeledes indeholde fire PWM-moduler, da hver H-bro skalhave et seperat PWM signal.

I det følgende gennemgås H-broens virkemåde, og der gennemføres en analyse af motordriveren.Ud fra de indledende undersøgelser, kan et diagram over motordriveren og de blokke den skal in-teragere med, opstilles. På figur 7.5 ses dette diagram, hvor det ses at motordriveren kan deles opi to underblokke, nemlig H-broen, samt et kredsløb der styrer H-broen. Der tages udgangspunkti disse to blokke gennem den videre beskrivelse.

Figur 7.5: Motordriveren samt de blokke den skal interagere med, delt op i mindre dele.

Styrekredsløb

Styrekredsløbet indeholder det logik som skal omsætte styresignalerne fra mikrocontrolleren, tilsignaler som får H-broen til at opføre sig som ønsket. For at analysere styrekredsløbet, betragtestransistorne i H-broen som ideelle kontakter. Transistornes ikke ideelle egenskaber medtagesunder analysen af H-broen.

For at forstå hvordan logikken i styrekredsløbet skal fungere, skal det først klarlægges hvordanH-broen skal styres for at opnå de ønskede funktionaliteter. På figur 7.6 (1), ses H-broen somhelhed. Motoren vil køre fremad når strømmen løber fra plus terminalen til minus terminalen.

56 af 250 7. Motordriver

Page 57: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

7.3 Valg og analyse af kredsløb

Når eksempelvis kontakt A og D sluttes, som på figur 7.6 (2), vil motoren dermed køre fremad.Ved at tænde og slukke for en af kontakterne, eksempelvis A, vil det være muligt at regulereomdrejningshastigheden på motoren, ved at udnytte switch-mode princippet. På de resterendeeksempler, på figur 7.6, ses hvordan de øvrige ønskede funktionaliteter opnås, som resultat afhvordan kontakterne styres. For hver funktionalitet, pånær friløb, er der én transistor der er altider tændt samt én transistor der tænder og slukker med en vis duty-cycle. At der også bruges PWMsignal til at bremse, skyldes at duty-cyclen her bestemmer hvor hårdt der bremses.

Figur 7.6: 1) Viser en H-bro med 4 kontakter. 2) Motoren kører frem. 3) Motoren kører tilbage.4) Motoren bremser. 5) Motoren kører friløb

I tabel 7.1 ses en oversigt over de signaler, som skal påtrykkes de forskellige transistorer, forat opnå de ønskede funktionaliteter for motoren. Som det fremgår af tabellen anvendes både etPWM signal og et inverteret PWM signal, når der køres frem eller tilbage. Dette skyldes at denelektromotoriske kraft, som genereres i motoren, skal have en strømvej i det tidrum hvor PWMsignalet er lavt, og motorens ene terminal ellers ville være svævende. Dvs. ved fremdrift er Cslukket når A er tændt, og ved tilbagekørsel er D slukket når B er tændt.

Funktion PWM PWM ON OFFBremse C, D - - A, BFrem A C D BTilbage B D C AFriløb - - - A, B, C, D

Tabel 7.1: Oversigt over hvilke styre signaler de forskellige transistorer skal have, for at opnåde ønskede funktionalitet af motoren.

Det ønskes at styre motordriverens fire funktioner, som angivet i tabel 7.1, ved hjælp af to digitalesignaler I1 og I2 fra mikrocontrolleren. I tabel 7.2 ses hvilken funktion det ønskes skal gøre siggældende, afhængigt af de to styre signaler.

7. Motordriver 57 af 250

Page 58: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

7.3 Valg og analyse af kredsløb

Funktion I1 I2

Bremse 0 0Frem 1 0Tilbage 0 1Friløb 1 1

Tabel 7.2: Oversigt over hvilken funktion motordriveren skal udføre ved forskellige styresigna-ler.

Ud fra de to tabeller 7.1 og 7.2, opstilles et logisk kredsløb, som ved hjælp af de tre input PWM,I1 og I2, kan styre motordriverens funktioner. Dette kredsløb er vist på figur 7.7. Kredsløbetrealiseres gennem en PEEL kreds, der programmeres med ABEL. Koden til programmering afPEEL-kredsen er vedlagt på CD’en, /software/Abel, denne kode stemmer dog ikke heltoverens med figur 7.7, da to af udgangene skal inverteres for at danne de rigtige signaler tiltransistorerne. Dette skyldes at H-broerne implementeres med både P- og N-kanals MOSFET’s,hvilket gennemgås senere kapitlet.

A

B

C

DPWM

I1

I2

Figur 7.7: Styre logik til H-bro

Det bør forklares hvorledes det ønskes at frembringe de to logiske signaler I1 og I2. Til dettebemærkes at counterne i encoderkredsløbet, i forvejen styres og aflæses via en SPI bus, sombeskrevet i afsnit 6.3. Derfor er det fordelagtigt at anvende samme SPI bus, til også at frembringede logiske signaler til H-broerne. Da der er fire H-broer, med to logiske signaler til hver, skal deraltså anvendes en 8-bit expander til at styre de fire H-broer. Ved at anvende den samme SPI-bussom encoderkredsløbet, kræver det ingen yderligere ben på mikrocontrolleren, at styre de fireH-broer.

H-bro

Motoren forsager maksimalt strømtræk når belastningen er stor og rotoren ikke drejer rundt,hvormed motoren yder det største moment [48, s.37]. Det vil altså sige, lige når den sætter igangeller hvis den bliver holdt fast af en kraft der er større end det moment den selv kan levere. Derkan argumenteres for at det største strømtræk vil være i det tilfælde hvor motoren kører med

58 af 250 7. Motordriver

Page 59: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

7.3 Valg og analyse af kredsløb

maksimal hastighed i én retning, og der pludseligt påtrykkes en modsat polariseret spænding påmotorens terminaler. Hermed vil motoren begynde at køre den modsatte retning. Den elektromo-toriske kraft, som induceres i motoren, vil i et øjeblik have samme polaritet som den påtryktespænding, og den samlede spænding vil derfor være på sit maksimum. Denne situation må dogikke forekomme i denne henseende, da der i motorens datablad [19], står at motorens gear ikkekan klare at motoren bliver direkte reverseret, hvilket der skal sørges for gennem software. Detførst beskrevne tilfælde kan derfor betragtes som det tilfælde hvor der løber størst strøm gennemmotoren.

Strømmen er størst ved lave temperaturer, i kraft af at den er bestemt af motorens ankermod-stand (se appendiks D), hvilken ændrer sig med temperaturen. Dette skyldes at ankermodstandenprimært oprinder fra den ohmske modstand i det materiale som motorens spole er viklet af [48,s.38]. Dette materiale er ofte kobber, hvilket ændrer sin modstands værdi med 0.00393C−1. Forat sikre at H-broen kan klare den maksimale strøm, skal denne beregnes, hvilket gøres gennemformel 7.1. I denne formel indgår RA,min, hvilket er ankermodstanden ved den mindste tempera-tur som robotten skal fungerer ved, altså 5 C, i henhold til krav 12 i kravspecifikationen. RA,min

findes gennem formel 7.2 [48, s.38].

Imaks =Umaks

RA,min[A] (7.1)

RA,min = (∆T ·α+1) ·RA(T0) [Ω] (7.2)

Hvor:Imaks er den maksimale strøm [A]Umaks er spændingen over motorens terminaler [V]RA,min er motorens ankermodstand ved laveste anvendelses temperatur [Ω]RA(T0) er motorens ankermodstand, ved temperaturen T0 [Ω]∆T er forskellen mellem den mindste temperatur og temperaturen T0 [C]α er temperaturkoefficienten for det materiale, motorvindingerne er lavet af [C−1]

En ting der ligeledes er nødvendig at bestemme, er hvilken frekvens motordriveren minimum skalswitches med, for at motorens ankerspole er i kontinuert ledende tilstand (continous conductingmode). Hvis motoren ikke er i denne tilstand, vil den ikke yde et konstant moment, hvilket ikkeer ønsket, da hastigheden hermed heller ikke er konstant [21, s. 111]. Modellen der anvendes tilat beskrive motoren med i appendiks D, arbejder ud fra et ligningssæt, der antager at motoren eri kontinuert ledende tilstand, hvorfor dette er nødvendigt at sørge for. Denne switchfrekvensenbestemmes ud fra størrelsen på motorens ankerspole og ankermodstand, hvilket formel 7.3 an-vendes til [21, s. 111]. Ud fra formel 7.3 ses, at jo større ankermodstand motoren har, jo hurtigereskal der switches.

tswich <2 ·Lspole

RA,max[s] (7.3)

Hvor:tswich er switch tiden. [s]Lspole er motorens spoles størrelse. [H]RA,max er motorens ankermodstand ved højeste temperatur. [Ω]

7. Motordriver 59 af 250

Page 60: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

7.3 Valg og analyse af kredsløb

Som tidligere beskrevet, er det valgt at forsyne H-broerne ved direkte tilslutning til batteriet. Somdet fremgår af afsnit 11.2.1, hvor batteriet vælges, vil batteriet altid har en spænding højere end7,2 V, hvormed PWM signalet aldrig må have en duty-cycle på 100%. Dette skyldes, at motorenmaksimalt må få en middel spænding på 7,2 V. Duty-cyclen skal altså tilpasses således motor-spændingen aldrig overskrider en middelværdi på 7,2 V. Dette realiseres, som tidligere forklaret,ved løbende at måle batterispændingen ved hjælp af en ADC, og derigennem bestemme den nød-vendige duty-cycle. Det ønskes at kunne angive motorens hastighed som en procentdel, mellem0-100%, af den maksimale hastighed, svarende til motorerne påtrykkes en spænding med en mid-delværdi mellem 0 V og 7,2 V. For at omsætte denne procentsats til den duty-cycle som PWMsignalet dermed må have, skal den pågældende batterispænding medregnes. Omsætning mellemden ønskede procentdel af den maksimale hastighed, og PWM signalets duty-cycle, udregnes vedhjælp af formel 7.5 [9, s. 5].

Uavg,motor = DPWM ·Ubat [V] (7.4)

DPWM =7,2VUbat

·Dønsket [%] (7.5)

Hvor:Uavg,motor er middelværdien af spændingen påtrykt over motoren [V]DPWM er duty-cyclen på PWM signaler [%]Dønsket er den ønskede hastighed som en procentdel af den maksimale hastighed [%]Ubat er batterispændingen [V]

Når der køres friløb vil motorernes terminaler i princippet være svævende, som det fremgår påfigur 7.6. Det samme gør sig gældende når transistorerne er slukkede i bremse tilstanden. An-kerspolen vil dog prøve at opretholde den strøm der løber gennem den, hvormed spændingenover spolen vil stige. Dette giver uønskede spændingsspidser, som kan forstyrre andre elektriskekredsløb, og i værste tilfælde ødelægge dem [48, s.32]. Disse spændingsspidser kan mindskesved at indsætte en diode over hver transistoren. Herved vil spændingsspidsen maksimalt blive etdiodespændingsfald plus forsyningsspændingen. I H-broen anvendes der af samme grund MOS-FET’s, som i slukket stilling fungerer som en diode, hvorved disse spidser begrænses.

Figur 7.8: ID (grøn) og UDS (blå) er henholdsvis strømmen gennem og spændingen over enMOSFET, som switches med et PWM signal. De røde områder angiver switchtabet, hvilket erarealet under kurverne for ID og UDS i switchtiden.

Indtil nu er transistorerne blevet betragtet som ideelle kontakter. Der anvendes som sagt MOS-FET’s til at implementere disse kontakter i H-broen. Da disse ikke har ideelle egenskaber, bør detovervejes hvilken betydning dette har for motordriverens funktioner. De ikke ideelle egenskaberder betragtes, er det tab som indtræffer i den tid hvor MOSFET’en går mellem cutoff og triode

60 af 250 7. Motordriver

Page 61: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

7.3 Valg og analyse af kredsløb

regionen, svarende til tændt og slukket tilstand. Samtidigt er der et tab når MOSFET’en er i tændttilstand, kaldet ledetabet, i kraft af at den har en on-modstand Ron, hvori der afsættes effekt. Påfigur 7.8 [48, s. 28] ses hvordan strømmen gennem MOSFET’en samt spændingen over den, for-holder sig når denne skiftevis tændes og slukkes, ved hjælp af et PWM signal.

Det samlede tab i MOSFET’en, er summen af switchtabet og ledetabet, altså:

Ptotal = Pswitch +Pleder,max [W] (7.6)

Hvor:Ptotal er det samlede tab i transistoren [W]Pswitch er det samlede switchtab [W]Pleder,max er det maksimale ledetab [W]

Det maksimale ledetab findes ved ligning 7.7.

Pleder,max = Ron · I2max [W] (7.7)

Hvor:Pleder,max er det maksimale ledetab [W]Ron er modstanden gennem transistoren når den er i tændt tilstand [Ω]Imax er den maksimale strøm gennem transistoren [A]

Switchtabet findes som arealet under kurverne for strøm og spænding, i den tid hvor transistorenskifter tilstand, hvilet ses på figur 7.8. Switchtabet afhænger dermed af, hvor lang tid transistorener om at skifte tilstand. Det samlede switchtab findes gennem formel 7.8 [21, s. 94].

Pswitch = (Pswitch,on +Pswitch,off) · fswitch [W] (7.8)

Hvor:Pswitch,on er switchtabet når MOSFET’en går fra slukket til tændt tilstand [W]Pswitch,off er switchtabet når MOSFET’en går fra tændt til slukket tilstand [W]

Det ses at switchtabet øges i takt med forøgelse i switchfrekvens, hvilket skyldes at der switchesoftere. De to switchtab Pswitch,on og Pswitch,off kan approksimeres til formel 7.9 og 7.10 [21, s. 94].

Pswitch,on =12·UVcc · IA · ton [W] (7.9)

Pswitch,off =12·UVcc · IA · toff [W] (7.10)

Hvor:UVcc er spændingen over MOSFET’en [V]IA er strømmen gennem motorens ankerspole [A]ton er den tid det tager MOSFET’en at gå fra slukket til tændt tilstand [s]toff er den tid det tager MOSFET’en at gå fra tændt til slukket tilstand [s]

7. Motordriver 61 af 250

Page 62: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

7.3 Valg og analyse af kredsløb

Indtil nu er der alene set på effekttabet i MOSFET’en. I det følgende undersøges en anden para-meter som har indflydelse på denne, når den anvendes som kontakt. Før MOSFET’en kan skiftetilstand fra sukket til tændt eller omvendt, skal den parasitkapacitet som sidder i gaten, op- elleraflades.

Den forsinkelse der sker fra PWM signalet skifter tilstand, til MOSFET’en tænder eller slukker,bestemmes af op- og afladningstiden af denne parasitkapacitet. Forsinkelsen vil i det følgendeblive kaldt triggertiden. Triggertiden bestemmes dels af størrelsen på parasitkapaciteten og mod-standen som denne skal aflades gennem, samt det niveau som parasitkapaciteten skal op- elleraflades til, før MOSFET’en tænder eller slukker. Hvis triggertiden fra tændt til slukket tilstand,ikke er tilnærmelsesvis den samme som triggertiden fra slukket til tændt tilstand, vil duty-cyclen,på det PWM signal der påtrykkes gaten, være ændret på udgangen af MOSFET’en. Dette illu-streres på figur 7.9.

Figur 7.9: Figuren viser hvordan duty-cyclen på et signal, påtrykt en MOSFET, kan ændre sighvis triggertiden fra tænd til sluk, ikke er tilnærmelsesvis ens med triggertiden fra sluk til tænd.Signalet ’PWM’ illustrerer det ønskede påtrykte signal, fra eksempelvis en mikrocontroller. Sig-nalet ’Ugate’ illustrerer det faktisk påtrykte signal, som et resultat af at parasitkapaciteten i gaten,skal op- og aflades. Signalet ’Output’ viser det resulterende udgangssignal, fra den pågældendeMOSFET, hvilket har en anden duty-cycle end signalet ’PWM’, idet de to triggertider, ikke erens.

For at mindske denne forvrængelse af PWM signalet, kan op- og afladningstiden for parasitka-paciteten gøres lille. Dette gøres ved at lade parasitkapaciteten op- og aflade gennem en megetlille modstand, hvilket kan implementeres ved hjælp af en MOSFET-driver. På figur 7.10, sesden principielle virkemåde af denne. Som det ses, sidder der i MOSFET-driveren to transisto-rer, repræsenteret ved kontakter, hvilke kan åbne direkte til hhv. stel eller forsyning. Hvilkenaf de to kontakter der sluttes, bestemmes af inputsignalet PWM. På denne måde op- og afladesparacitkapaciteten i gaten, blot gennem on-modstanden i MOSFET-driverens transistorer. Idettransistorerne i MOESFET driveren er konstrueret til dette formål, er ’on’ modstanden ganskelille, og betragtes derfor som værende nul, hvilket giver parasitkapaciteten i MOSFET’en en me-get lille modstand at aflade igennem.

Afslutningsvis skal det bemærkes at det ønskes at vælge MOSFET’s med specifikationer, som gørat effekttabet minimeres. Dette ønskes på baggrund af at robotten forsynes af et batteri, hvilketaflades hurtigere jo mere strøm der forbruges. Samtidigt ønskes det at undgå brug af kølepla-der på transistorerne, da dette vil øge den fysiske størrelse af printet. Derfor skal der vælges enMOSFET hvis hus i sig selv kan aflede den afsatte effekt til den omgive luft.

62 af 250 7. Motordriver

Page 63: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

7.3 Valg og analyse af kredsløb

Figur 7.10: Illustrationen viser den principielle virkemåde for en MOSFET driver. Denne åbnerhhv. til stel eller forsyning, afhængigt af inputsignalet ’PWM’. Herved mindskes op- og af-ladningstiden for parasitkapaciteten Cgate, hvormed forvrængningen af PWM signalet igennemH-broen minimeres.

Da motordriveren hermed er analyseret og de nødvendige ligninger hermed er opstillet, er detmuligt at finde de egentlige komponenter, og få dimensioneret driveren, således at de opstilledekrav overholdes. Som nævnt i indledningen, er dimensioneringen bragt i appendiks E.

Kredsløbsdiagrammet der beskriver motordriveren ses på figur 7.11. Figuren beskriver én enkeltH-bro. Da der er fire motorer, skal der også konstrueres fire motordrivere. Disse er alle iden-tiske, hvorfor det findes unødvendigt at vise alle kredsløb. De resterende motordriver kredsløbkan findes på det samlede kredsløbsdiagram i appendiks L og PCB-layout på bilagscden/pcb/motordriver/. Af praktiske årsager anvendes samme PEEL-kreds til to H-broer. De firesvævende udgange på PEEL-kredsen, anvendes dermed til MOSFET-driveren på en anden H-bro.

H.I1_bH.I2_b

H.PWM_a

H.I1_a

H.PWM_b

H.I2_a

V_BAT1

V_BAT1

V_BAT1

V_BAT1

VCC_5.0V

VCC_5.0V

VCC_5VVCC_5.0V

VCC_5.0V

MOSFET-DRIVER

HBRO

HBRO

Q.H1P-MOSFETQ.H1P-MOSFET

1

23

Q.H2P-MOSFET

Q.H2P-MOSFET

1

23

C.H620uFC.H620uF

U.H2

SN75372

U.H2

SN75372

1A1

E2

2A3

GND4 VCC2 5

2Y 61Y 7

VCC8

J.H1ENCODER - HBRO_HJ.H1ENCODER - HBRO_H

1

23

4

5

6

7

8

910

J.H4

MOTOR

J.H4

MOTOR

1 2

U.H1

SN75372

U.H1

SN75372

1A1

E2

2A3

GND4 VCC2 5

2Y 61Y 7

VCC8

Q.H3N-MOSFETQ.H3N-MOSFET1

23

C.H540uC.H540u

C.H1100nFC.H1100nF

PEEL.H1

PEEL18CV8

PEEL.H1

PEEL18CV8

CLK1

GN

D10

VC

C20

I/O 19I/O 18

I/O 17I/O 16

I/O 15I/O 14

I/O 13I/O 12

I2I3I4I5I6I7I8I9 I 11

H.C8100nFH.C8100nF

J.H.2

VBAT1

J.H.2

VBAT1

12

C.H2100nFC.H2

100nF

Q.H4N-MOSFET

Q.H4N-MOSFET 1

23

Figur 7.11: Kredsløbet for én H-bro. Den samlede kredsløbstegning, hvorpå alle H-broer indgår,kan ses i appendiks L.

7. Motordriver 63 af 250

Page 64: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

7.4 Verificering

7.4 Verificering

Verificeringen af H-broerne omhandler to ting. Dels ønskes det at verificere at et PWM signal påH-broens udgang, ikke forvrænges i forhold til indgangen. Desuden ønskes det at verificere atmotorens spole hele tiden er i kontinuert ledende tilstand.

Udførslen af verificeringen er bragt i appendiks I, hvorfor der her blot ses på de opnåede re-sultater. Igennem den første måleserie erfaredes det at for forskellige duty-cycles på H-broensindgang, var den største afvigelse på udgangen, på 0,4%. Dette var for tilfældet hvor dutycyclenpå indgangen var netop 90%. For signaler med en dutycycle på 70% eller under, var den størsteobserverede afvigelse på 0,2%.

Ved at måle middelværdien af outputspændingen, for en given dutycycle på indgangen, erfaredesdet at afvigelsen imellem den beregnede outputspænding, og den faktiske outputspænding, mak-simalt opnåede en værdi på 0,115 V. Ud fra målingerne konkluderes det, at i henhold til at givedet ønskede signal på udgangnen, fungerer H-broen som ønsket.

Den anden måling udført i målejournalen, skal eftervise at den valgte switchfrekvens på 980 Hzgør, at motoren er i kontinuert ledende tilstand. Strømmen som måles igennem motoren, kan sespå figur 7.12, som er et plot optaget direkte på oscilloskop.

0 0.5 1 1.5 2 2.5 3

x 10−3

0

5

10

15

Spæ

ndin

g[V

]

Tid [s]

0 0.5 1 1.5 2 2.5 3

x 10−3

−0.5

0

0.5

1

1.5

2

Tid [s]

Strø

m[A

]

Figur 7.12: Skopbillede af spændingen på indgangen af motoren og strøm der løber ud af mo-toren.

64 af 250 7. Motordriver

Page 65: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

7.5 Delkonklusion

Øverst på figuren ses spændingssignalet på indgangen af motoren, dvs. udgangen af H-broen, ognederst ses strømmen der løber ud af motoren. Som det fremgår er strømmen aldrig nul, hvormedmotoren er i kontinuert ledende tilstand. De ’spikes’ der opstår i plottet for strømmen, kommerpå baggrund af støj, idet transistorerne i H-broen skifter, da de to transistorer der switches på, iet kort øjeblik hverken vil være tændte eller slukkede.

7.5 Delkonklusion

Det ses ud fra verificering, at motordriveren opfører sig som ønsket, ud fra de overvejelser der ermedtaget i kredsløbsanalysen. Motordriveren er efterfølgende koblet sammen med mikrocontrol-leren, hvorved det via denne, er muligt at styre omdrejningshastigheden på motoren, og hervedfå robotten til at køre.

7. Motordriver 65 af 250

Page 66: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Kapitel 8Liniesensor

I dette kapitel gennemgås udviklingen og konstruktionen af linisensoren, som robotten brugertil at regulere afstanden linien med. Udviklingen af liniesensoren hænger sammen med appen-diks F, hvor blandt andet selve dimensioneringen af diverse kredsløbskomponenter gennemgås.Der refereres løbende til dette appendiks.

8.1 Krav til Blokken

Opsummerende fra kravspecifikationen er kravene til liniesensoren som følger:

• Sensoren skal kunne detektere afstanden til midten af en sort tapelinie, af tapetypen Tesa-465, med bredde 38 mm, på et lysegråt gulv, krav 20.

• Afstanden til midten af linien måles vinkelret fra midten af bilens foraksel, krav 21.

• Liniesensoren skal kunne detektere forgreninger og kryds på tapelinien, krav 22.

• Sensoren skal ligeledes kunne registrere om robotten er kørt væk fra linien, krav 23.

• Afstanden fra midten af robottens foraksel, til liniens midtpunkt, skal som minimum kunnebestemmes 100 gange i sekundet, krav 24.

• Sensorens afvigelse må maksimalt være 10 mm, krav 25.

• Liniesensorens output skal være kompatibelt med mikrocontrolleren, krav 26.

Det er, som det fremgår, et krav at afstanden skal kunne bestemmes 100 gange i sekundet. Doger det sidenhen blevet bestemt, at omdrejningsencoderne, der måler omdrejningshastighed pårobottens hjul, skal samples mindst 125,5 gange i sekundet, som beskrevet i afsnit 6.4. Da bådehastighed og afstand til linien skal bruges for at regulere robotten, vælges det dermed også atkonstruere liniesensoren således at afstanden kan bestemmes med mindst 125,5 Hz.

66 af 250

Page 67: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

8.2 Overordnede løsningsmuligheder

8.1.1 Grænseflader

Internt i robotten har liniesensoren kun grænseflade til mikrocontrolleren, idet det er denne derskal behandle de data som liniesensoren indsamler. Til denne grænseflade er det blot et krav atliniesensorens output skal være kompatiblet med mikrocontrolleren, dvs. liniesenorens outputskal blot være en form for datasignal som mikrocontrolleren forstår.

Eksternt har sensoren grænseflade til linien som skal detekteres. Denne grænseflade er givetved tapen, der udgør linien, og er 38 mm bred. Som nævnt i kravene, skal midten af linienkunne detekteres mindst 125,5 gange i sekundet, med en præcision på 10 mm. Grænsefladerneer illustreret på figur 8.1.

Figur 8.1: Grænsefladerne for linisensoren.

8.2 Overordnede løsningsmuligheder

Der skal overvejes hvilken metode der ønskes anvendt til detektion af linien. Der er overordnetset to metoder til implementation af liniesensoren. Dette værende med enten et kamera, ellermed lys- og photodioder. Et kamera kan anvendes til at finde linien, ved at lade det tage en rækkebilleder foran bilen, hvorefter billedet behandles for at genkende linien på gulvet. Linien kangenkendes ved at den er meget mørkere end gulve, jvf. beskrivelsen af banen i appendiks B. Bil-ledbehandlingen kan da afsløre hvor robotten befinder sig i forhold til linien, og herefter er detmuligt at korrigere retningen, således linien er ud for midten af robotten. Anvendes denne meto-de, skal det overvejes hvor kraftig processoren skal være, således at det ikke vil tage for lang tidat analyse billederne, alt imens robotten kører forkert. Fordelen ved denne metode vil imidlertidvære, at når kameraet alligevel er installeret på robotten, kan det også anvendes til at genkendestrafporte og golfbolde, som beskrevet i afsnit 2.4.

Den anden metode, hvor der anvendes lys- og photodioder, fungerer ved at lade lysdioder belysegulvet og linien under bilen, og lade photodioder opfange lyset når det reflekteres. Da linien ermørkere end gulvet, vil denne reflektere en mindre mængde lys end gulvet. Ved at have photodio-der placeret langs hele bilens forreste aksel, kan placeringen af robotten i forhold til linien, findesved at analysere hvilke photodioder der opfanger mindst reflekteret lys. Fordelen ved at konstru-ere liniesensoren på denne måde, er at metoden er relativt simpel at implementere i forhold til atskulle implementere et kamera, og foretage billedbehandling.

8. Liniesensor 67 af 250

Page 68: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

8.2 Overordnede løsningsmuligheder

8.2.1 Valg af teknologi

Ud af de to gennemgåede løsningsforslag, vælges det at arbejde videre med at detektere linienved hjælp af lys- og photodioder. Da dette er fastlagt, kan det overvejes hvilken metode der merespecifikt ønskes anvendt til detektion af linien. Dette skyldes at detekteringen kan gennemførespå flere måder, alt efter: hvorledes det vælges at benytte de forskellige dioder, hvorledes lysetudstråles og hvorledes det senere hen ønskes at behandle de data som liniesensoren giver. Detvælges at anvende infrarødt lys, da der ved denne, fra universitetets side, er flest anvendeligekomponenter til rådighed. Det er dog nødvendigt at overveje hvilken bølgelængde af infrarødtlys der anvendes, hvilket tydeliggøres i det følgende.

Infrarødt lys og infrarøde dioder

Infrarødt lys er lys med bølgelængder i intervallet 700 nm - 1000 nm [30, s. 1080], hvilket over-lapper med det almindelige synlige lys. Derfor risikeres det at der modtages støj fra almindeligtsollys, hvis ikke der vælges en bølgelængde hvor intensiteten af sollys er forholdsvis lav. Påfigur 8.2 ses intensiteten af sollys, som funktion af bølgelængder.

Wavelength (nm)

Rel

ativ

e P

hoto

n F

lux

(%)

Figur 8.2: Relativ intensistet af sollys, som funktion af bølgelængde, kilde [28].

Af figuren fremgår det, at det ville være favorabelt, at anvende dioder med infrarødt lys i inter-vallet ca. 930 nm - 970 nm, idet sollysintensiteten er lavest i dette område. Imidlertid er det ikkealene bølgelængden der bestemmer hvilke dioder der skal anvendes. Dette vil senere fremgå, atdet ønskes at anvende flere dioder placeres ved siden af hinanden. Som det er beskrevet i ap-pendiks F, er vinklen lyset udstråles og opfanges med, derfor også et vigtigt element ved valg afdioder, i henhold til krydskobling dioderne imellem.

Der skal vælges to forskellige slags dioder: IR-LED’er (infra red light emitting diode) og IR-photodioder. IR-LED’erne udsender infrarødt lys, og photodioderne opfanger det, og generereren strøm fra det. Intensiteten af det infrarøde lys der udsendes af IR-LED’erne, afhænger af hvorstor strøm der sendes gennem dem. Photodioderne fungerer på den måde, at når de er forspændti spæreretningen, vil den infrarøde stråling generere en lækstrøm som løber i diodens spære-retning. Jo større lysintensitet photodioden udsættes for, jo mere strøm løber der. Når der i deefterfølgende afsnit nævnes outputniveauet for photodioderne, er det størrelsen af denne læk-

68 af 250 8. Liniesensor

Page 69: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

8.2 Overordnede løsningsmuligheder

strøm der refereres til. Det findes deslige phototransistorer, hvilke generelt udsender en størrestrøm end photodioder, grundet transistorens forstærkningsfaktor. Phototransistorer har dog læn-gere skifetider end photodioder, hvilket fremgår af datablade for forskellige slags af de to typerkomponenter.

Idet der er skabt indsigt i hvilken type lys der ønskes anvendt, bør der ses på hvorledes det ønskesat anvende dem, hvilket som nævnt kan gøres på forskellige måder. De forskellige metoder, derer overvejet i forbindelse med konstruktionen af liniesensoren, gennemgås i det følgende. Fællesfor metoderne er, at de bygger på at flere IR-LED’er er placeret ved siden af hinanden, med envis afstand, på tværs af robottens underside. På samme måde placeres der photodioder på tværsaf robotten. Det er dog ikke nødvendigt at have ligeså mange photodioder, som IR-LED’er, hvil-ket beskrives i det følgende. Lyset der udsendes af IR-LED’erne, reflekteres mod gulvet underrobotten, og modtages af photodioderne.

Smal lysudsendelse

Det er muligt er at anvende dioder, der udsender og opfanger lys i en meget smal vinkel. Hermedvil det udsendte lys’ spredning, på grund af udbredelse, kunne ignoreres. Dette betyder at lysetudsendt af en IR-LED, kun opfanges af en photodiode, hvis IR-LED og photodiode er placerettæt på hinanden, netop fordi lyset ikke spredes under udbredelsen. Dette er illustreret på figur 8.3.På figuren angiver længden af den tilbagegående pil, intensiteten af det reflekterede lys i det givnepunkt.. De blå kugler indikerer et diodepar, dvs. en IR-LED og en photodiode placeret sammen.

Figur 8.3: Anvendelse af dioder der udsender lys i en meget lille vinkel. De blå kugler illustreren IR-LED og en photodiode der sidder sammen. Det antager at lyset ikke spredes til siderne,og dermed kun reflekteres direkte tilbage, illustreret med de sorte pile.

Ved at anvende dioderne på denne måde, opnås en form for ’digital’ liniedetektering, idet hverenkelt photodiode kun vil kunne give 2 værdier, alt efter om de er over linien eller over gulvet.Der vil muligvis kunne optræde et 3. niveau hvis en diode er lige på overgangen fra linie tilgulv.Dette er illustreret på figur 8.4, hvilken skitserer outputtet fra 15 photodioder.

8. Liniesensor 69 af 250

Page 70: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

8.2 Overordnede løsningsmuligheder

Figur 8.4: Figuren viser de tre niveauer som en photodiode kan angive, alt efter om den er overgulv, linie eller overgang fra gulv til linie.

Det fremgår fra figur 8.4, at der kun kan angives meget grove niveauer for, hvor på linien robottenbefinder sig, idet det kun er muligt at se om et diodepar er over linien eller ej. Dette betyderat præcisionen aldrig vil blive bedre end afstanden mellem de enkelte diodepar, fordi det ikkeer muligt at lave nogen form for interpolation, imellem de målepunkterne.Der er dermed storkvantisering, hvormed der skal bruges mange diodepar, for at opnå stor præcision. Desuden erdet nødvendigt at have en photodiode sammen med hver IR-LED, hvilket betyder et øget omfangi brugen af komponenter.

Fordelen ved metoden er, at den er simpel at anvende, idet der kan fastsættes niveauer for hvilketoutput en photodiode giver, alt efter om den er over gulv, linie, eller overgang. Hermed bliveromfanget af den efterfølgende databehandling meget begrænset.

Bred lysudsendelse

Anvendes istedet dioder der udsender og opfanger lyset bredt, vil det også blive modtaget brede-re, efter refleksion.Dette er illustreret på figur 8.5. Længden af den tilbagegående pil illustrererigen, intensiteten af det reflekterede lyssignal.

I modsætningen til anvendelsen af den ’smalle’ lysudstråling, opnås der her langt flere niveauerfor det output en photodiode kan give, netop fordi den modtager lys fra dioderne til begge siderogså. Dermed kunne et muligt output, ved brug af 15 photodioder, se ud som på figur 8.6. Deyderste photodioder vil give et mindre output, idet de kun får reflektioner fra én side.

Idet der kan opnås så mange flere niveauer end tidligere, er det muligt at behandle de ind-samlede data fra photodioderne, og dermed finde en algoritme der kan beregne afstanden merepræcist end tidligere. Idet afstanden kan beregnes mere dynamisk, er det muligt at konstruere li-niesensoren med færre dioder, dvs. det er ikke nødvendigt at have en photodiode ved hver enkeltIR-LED. Denne anvendelse af dioderne, er til gengæld vanskeligere at implementere, idet der

70 af 250 8. Liniesensor

Page 71: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

8.2 Overordnede løsningsmuligheder

Figur 8.5: Anvendelse af dioder med bred lysudstråling. Pilene der peger til siderne, indikererat lyset også modtages af photodioderne ved siden af.

Figur 8.6: Figuren viser hvorledes der kan opnås mange forskellige niveauer, idet udbyttet fraen photodiode afhænger af refleksionen fra flere forskellige dioder.

netop skal gennemføres mere databehandling for at beregne afstanden. På grund af mulighedenfor større præcision, vælges det at konstruere liniesensoren efter det sidste princip, hvor der øn-skes krydskobling mellem de dioder der sidder ved siden af hinanden.

Idet det er blevet fastlagt hvilket princip liniesensoren skal konstrueres efter, er det muligt atopstille et kredsløb, der fungerer på den ønskede måde.

8. Liniesensor 71 af 250

Page 72: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

8.3 Valg og analyse af kredsløb

8.3 Valg og analyse af kredsløb

I det følgende gennemgås kredsløbet der udgør selve liniesensoren. Inden selve kredsløbet gen-nemgås, ønskes det dog kort at opridse det overordnede princip for liniesensoren.

Kredsløbet skal bestå af både en sender- og en modtagerdel. I senderen er det centrale elementde dioder, der udsender det infrarøde lys, og i modtageren er det de photodioder, der generererstrøm på baggrund af den mængde lys der bliver reflekteret.

Senderen opbygges, som sagt, af en række IR-LED’er, der placeres tværs over hele robottens un-derside. Dioderne placeres under robottens forreste aksel, idet de herved er beskyttet af hjulene,således at dioderne ikke kan søde ind i de forhindringer robotten møder. Idet lyset udsendes ogreflekteres bredt, kan der anvendes færre photodioder end LED’er. Ud fra outputniveauet fra hverphotodiode, kan placeringen af robotten, i forhold til linien, bestemmes.

I det følgende behandles sender- og modtagerdel hver for sig. Det bør bemærkes at det er nødven-digt at have en grundlæggende model, for hvorledes det udstrålede lys, udbredes. De nødvendigeligninger til dette, er gennemgået i appendiks F.2.

8.3.1 Liniesensorens senderdel

Senderdelen består i sig selv af en række delblokke, som illustreret på figur 8.7, hvis formål kortopsummeres nedenfor.

Figur 8.7: Blokdiagram af linisensorens senderdel

• IR-LED’erIR-LED’erne udsender det infrarøde lys, alt efter den mængde strøm der løber igennemdem.

• IR-LED driverDer skal løbe en forholdsvis stor strøm gennem dioderne, før de lyser tilpas kraftigt, hvor-for det er nødvendigt at have et driverkredsløb leverer denne strøm.

• OscillatorDer anvendes en oscillator til at danne en frekvens som IR-LED’erne skal blinke med.Dette gør det muligt at filtrere lyset omkring denne frekvens på modtagersiden, og dermedfjerne støj effektivt.

Den egentlige implementering af sendekredsløbet, er vist sidst i dette afsnit, på figur 8.10 påside 75. I det følgende afsnit gennemgås metoderne til implementeringen af de nævnte delblokke,og samtidig opstilles de relevante ligninger til dimensionering.

72 af 250 8. Liniesensor

Page 73: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

8.3 Valg og analyse af kredsløb

Oscillator

Frekvensen for bærebølgen, til det infrarøde lys, vælges til 70 kHz. Denne frekvens er valgt fordiden ligger langt over den lavfrekvente støj, såsom brum og blinken fra lysstofrør. Almindeligelysstofrør blinker normalt med en frekvens på den dobbelte af det forsyningsnetværk det er til-sluttet, dvs. ca. 100 Hz [17].

Oscillatorer kan konstrueres på mange forskellige måder. Det vælges dog at anvende en 555 ti-merkreds til formålet. Det ønskes at det oscillerende signal, skal have en dutycyle på ca. 50%. Forat opstille de nødvendige ligninger, til at dimensionere oscillatoren, er det nødvendigt at vælgehvilket komponent der ønskes anvendt. Det vælges at anvende en 555 timerkreds af typen NE555,hvis datablad er angivet som kilde [44]. For at opnå en duty-cycle på 50%, skal der vælges enkondensator, og to modstande. Disse komponenter dimensioneres ud fra flg. ligninger [44, s. 8]:

t1 = 0.693 ·RA ·C [s] (8.1)

t2 =RA ·RB

RA +RB·C · ln

(RB−2RA

2RB−RA

)[s] (8.2)

Hvor:t1 er tiden hvor signalet er højt [s]t2 er tiden hvor signalet er lavt [s]

Den samlede frekvens er dermed er givet ved f = 1/(t1 + t2). Komponenterne skal bestemmessåledes at t1 = t2 for en dutycycle på 50%.

IR-LED’er

Det skal bestemmes hvor stor afstand IR-LED’erne skal placeres fra hinanden. For at muliggøredette, er det nødvendigt at vælge hvilken type dioder der anvendes. Det vælges at anvende IR-LED’er af typen LD274-3 fra Siemens, hvis datablad er anført som kilde [38]. Denne IR-LEDudsender maksimal lysstyrke ved bølgelængden 950 nm, hvilket ligger i det ønskede interval.Diodens lysintensitet som funktion af vinklen, ses på figur 8.8. Som det fremgår er intensitetenaf lyset faldet til det halve ved ca. 10, hvilket ikke syntes særligt bredt. Dog skal det bemærkesat photodioden har en tilsvarende afhængighed, af vinklen lyset optages med. Som det vil frem-gå senere, er lysoptagelsen for photodioden, som vælges, ganske bred, hvorfor en lidt smallereudsendelse af lyset kan accepteres på sendersiden.

Det skal bestemmes hvor stor afstand IR-LED’erne skal placeres fra hinanden. I den forbindelseskal det vælges hvor stor krydskobling der ønskes. Til dette benyttes figur 8.9. Figuren viser toIR-LED’er der er placeret over samme underlag, dvs. refleksionen er ens for lyset udsendt af beg-ge IR-LED’er. Afstanden mellem dioderne betegnes ’a’. Begge dioder udsender en del af dereslys ligefrem, hvilket reflekteres direkte tilbage. Lys udsendt i denne vinkel har en relativ intensitetpå 100%, i forhold til den vinkelafhængighed den ustrålede lysintensitet har. På figuren angiverθ den vinkel hvor LED’ens lysintensitet er nede på 50%, som for den valgte IR-LED, er 10. Forat opnå passende spredning af lyset, vælges det at placere IR-LED’erne således, at LED1’s nabo,LED2, modtager lys fra LED1 med ca. 1/2 intensitet i forhold til LED1’s maksimal intensitet.

8. Liniesensor 73 af 250

Page 74: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

8.3 Valg og analyse af kredsløb

Irel = f ( )Radiation characteristics,

OHR01882

0 20 40 60 80 100 1200.40.60.81.0100

90

80

70

60

50

010203040

0

0.2

0.4

0.6

0.8

1.0

Figur 8.8: Udstrålingsintensitetsdiagram for Den valgte LED [38]

Figur 8.9: Spredning af lyset fra én diode til en anden.

Ud fra ovenstående, samt udstrålingsintensitetsdiagrammet for den valgte diode, skal dioderneplaceres så langt fra hinanden, at det lys der udsendes i en vinkel på 10, netop reflekteres op påphotodioden i nabodiodeparret. Med denne spredning kan afstanden mellem dioder beregnes udfra ligning F.36, fra appendiks F:

∆ = tan(θ) ·2d [m]

Afstanden fra dioderne til gulvet er d = 4 cm, idet dioderne placeres på robottens underside, ogrobotten har en frihøjde på godt 4 cm, tabel C.1 på side 201. Spredningen af lyset opnås til:

∆ = tan(10) ·0,08 = 0,014 m (8.3)

Af udregningen ses altså, at IR-LED’erne skal være ca. 1,4 cm fra hinanden, for at opnå denønskede krydskobling. Denne udregning tager imidlertid ikke højde for den spredning af lyset dersker idet det rammer gulvet, som er en ujævn overflade. Den fundne afstande mellem diodernemedfører, at der skal benyttes 12 IR-LED’er, da bredden af den mekaniske platform er 17 cm,hvilket fremgår af tabel C.1 på side 201.

74 af 250 8. Liniesensor

Page 75: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

8.3 Valg og analyse af kredsløb

IR-LED Driver

IR-LED’erne er normeret til en strøm på If = 100 mA [38], hvorfor det vælges at dimensionereefter at sende netop denne strøm gennem dem. Driverkredsløbet vælges at bestå af en NMOStransistor, der fungerer som en kontakt, og tænder og slukker med oscillator signalet. På drainbe-net af transistoren, sidder IR-LED’erne. IR-LED’erne placeres i 4 forskellige grene, med 3 dioderi hver gren. I hver gren placeres desuden en modstand til at styre strømmen gennem dioderne, sefigur 8.3.2. At der er valgt fire grene, fremfor blot én, skyldes den forsyningsspænding der haves,hvilket er tydeliggjort i appendiks F.1 på side 213. Idet der er fire grene på transistoren, og derskal løbe ca. 100 mA i hver gren, skal transistoren kunne klare en drain strøm på ca. 400 mA,med samme frekvens som oscillatoren.

ADC_LINIE

MUX.Y0

GPIO.MUX.A0GPIO.MUX.A1

MUX.Y1MUX.Y2MUX.Y3

GPIO.MUX.A0GPIO.MUX.A1

AD

C_L

INIE

VCC_5.0V

VCC_5.0VVCC_5.0V

VCC_5.0V VCC_5.0V

Multiplexer

Oscillator

LED driver

IR-LED'er

J.S1ENCODER - LINIESENSORJ.S1ENCODER - LINIESENSOR

1

2345678910

D.S7D.S7D.S1D.S1

R.S610.7R.S610.7U.S2

4051

U.S2

4051

Y013Y114Y215Y312Y41Y55Y62Y74

E 6

A011A110A29

Z 3

VDD 16

VSS 8VEE 7

D.S12D.S12

D.S11D.S11

1030R.SA1030R.SA

R.S310.7R.S310.7

D.S10D.S10

Q.S1IRLI530_NMOSQ.S1IRLI530_NMOS

436R.SB436R.SB

C.S110 nC.S110 n D.S6D.S6 D.S9D.S9

C.S210 nC.S210 n

U.S1

NE555

U.S1

NE555

OUT 3

RST 4

VCC 8

CV 5

TRG2

THR6

DSCHG7

GND 1

D.S3D.S3

D.S5D.S5 D.S8D.S8

R.S510.7R.S510.7

J.M9CPU.GPIO - LINIEMUXJ.M9CPU.GPIO - LINIEMUX

12

R.S410.7R.S410.7

D.S2D.S2

D.S4D.S4

Figur 8.10: Kredsløbet der udgør senderdelen af liniesensoren.

Modstanden i hver af de fire grene på drain benet, dimensioneres efter følgende formel:

R =Vcc−n ·Vd−VDS

If[Ω] (8.4)

Hvor:R er modstanden der dimensioneres [Ω]Vcc er forsyningsspændingen [V]Vd er spændingsfaldet over en enkelt diode [V]n er antallet af dioder i hver gren [-]VDE er spændingsfaldet fra drain til source [V]If er forwardstrømmen i dioderne [A]

På figur 8.10 ses senderkredsløbet. Dimensioneringen af dette, er bragt i appendiks F.

8. Liniesensor 75 af 250

Page 76: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

8.3 Valg og analyse af kredsløb

8.3.2 Modtagerdelen

Modtagerdelen af liniesensoren fungerer overordnet ved at de omtalte photodioder, modtager detreflekterede lys. Signalet der fremkommer på baggrund af lyset, skal på forskellige vis behandles,inden det sendes videre til mikrocontrolleren. På denne vis er liniesensorens output, et analogtsignal, som mikrocontrolleren dermed skal digitalisere, før det kan indlæses. Til dette skal an-vendes en ADC, hvilket medfører et krav til mikrocontrolleren, om at denne er udstyret med enADC indgang.

Ligesom for senderdelen består linisensorens modtagerdel af en række underblokke. Disse erillustreret på figur 8.11. Underblokkene gennemgås i det følgende.

Figur 8.11: Blokdiagram for linisensorens modtagerdel.

• PhotodioderDer anvendes et antal photodioder til at måle det reflekterede lys. Photodioerne genererersom nævnt en lækstrøm, når de udsættes for infrarødt lys. Størrelsen af denne anvendes tilat bestemme robottens placering.

• Strøm til spændings converteringIdet det er nemmere at arbejde med en spænding, omdannes photodiodens strøm, til etspændingssignal.

• FilterFor at fjerne støj fra signalet, sendes det igennem et filter.

• UdglatningDet ønskes at oversætte det genererede signal, til et DC-niveau som mikrocontrolleren kanfortolke, hvorfor det alternerende signal fra filteret, udglattes så det tilnærmelsesvis bliveret DC-signal.

• SkalleringFor at udnytte hele skalaen for mikrocontrollerens ADC konvertering, skal signalet i mod-tageren skalleres således det passer med denne.

• UdvælgelseMikrocontrolleren skal gøre i stand til at udvælge hvilken photodiode den måler på.

76 af 250 8. Liniesensor

Page 77: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

8.3 Valg og analyse af kredsløb

Den egentlige implementering af modtagerkredsløbet, er vist sidst i dette afsnit, på figur 8.17 påside 81. I det følgende afsnit gennemgås metoderne til implementeringen af de nævnte delblokke,og samtidig opstilles de relevante ligninger til dimensionering.

Photodioder

Photodioderne der anvendes er af typen BPW34F, hvis datablad er anført som kilde [37]. Dennearbejder med samme bølgelængde som de valgte IR-LED’er. Diodenes evne til at opfange lyset iforskellige vinkler, fremgår af figur 8.12. Det fremgår at photodioden som nævnt opfanger lyseti en meget bred vinkel, hvilket danner et godt grundlag for at opnå den ønskede krydskobling.

Directional characteristics Srel = f ( )

OHF01402

90

80

70

60

50

40 30 20 10

20 40 60 80 100 1200.40.60.81.0

0.2

0.4

0.6

0.8

1.0

1000

0

0

Figur 8.12: Photodiodens følsomhed som funktion af indstrålingsvinklen af lys. Diagrammet erfor lys med bølgelængden 950 nm [37]

Det er som tidligere nævnt ikke nødvendigt at anvende ligeså mange photodioder, som der an-vendes IR-LED’er. Ved at forsøge med forskellige muligheder, er det fundet at 4 photodioderer et acceptabelt antal. Dioderne placeres jævnt fordelt langs robottens forreste aksel, ligesomIR-LED’erne.

Photodioderne placeres med deres katode på forsyningsspændingen, således at den genereredelækstrøm løber ud af anoden, og ind i det resterende kredsløb.

Strøm-spændings convertering

Det ønskes at få strømmen fra photodioderne omdannet til en spænding, hvilket gøres i strøm-spændings converteren. Denne kan ses på figur 8.13.

Converteren består af en enkelt modstand og en bufferkobling. Bufferkoblingen indsættes fordidet antages, at strømmen der løber ind i opampen, er så lille at den kan negligeres. Derfor vilalt strømmen, genereret af photodioden, løbe igennem modstanden. Herved bliver spændingenover modstanden, proportional med den strøm der genereres af photodioden. Da modstanden er

8. Liniesensor 77 af 250

Page 78: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

8.3 Valg og analyse af kredsløb

V.cvc

R1R1D1D1

-

+

-

+3

21

Figur 8.13: Photodiode og strøm-spændings converter.

forbundet til stel, vil spændingen efter photodioden kunne bestemmes ved:

VCVC = Iphoto ·RCVC [V ] (8.5)

Hvor:Vphoto er spændingen efter photodioden [V]Iphoto er strømmen fra photodioden [A]Rphoto er modstanden i strøm-spændings converteren [Ω]

Filter

Der skal indsættes et filter, for at dæmpe støjen på signalet der modtages. Det ønskes at udforme etbåndpasfilter, idet der herved kan fjernes både høj- og lavfrekvent støj. Filteret skal dimensione-res således at centerfrekvensen bliver modulationsfrekvensen, eller bærebølge, for det infrarødelys. Kontruktionen af filteret er relativt omfattende, og da det for så vidt ikke har noget med denresterende del af liniesensoren at gøre, er det flyttet til appendiks F. Af appendikset fremgår detat filteret der skal konstrueres, har den approximerede overføringsunktion:

Ha(s) =a1 · s

s2 +b1 · s+b2(8.6)

Ha(s) =87,96E3 · s

s2 +87,96E3 · s+437,6E32 (8.7)

Filteret realiseres som vist på figur:

V.indV.out

R.BR.B

R.AR.A

R.3R.3

C.2C.2

C.1C.1

R.2R.2-

+

-

+3

21

R.1R.1

Figur 8.14: Båndpas implementeringen af et Sallen-key filter.

78 af 250 8. Liniesensor

Page 79: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

8.3 Valg og analyse af kredsløb

Hvor komponentværdierne beregnes ved følgende formler:

RA =

3−

√2 ·b2

1b2

·RB [Ω] (8.8)

R =√

2b2C2 [Ω] (8.9)

På grund af kondensatorerne i filteret, AC-kobles opampen, således at signalet ideelt set vil svin-ge omkring nul volt efter filteret. Dette er imidlertid ikke muligt idet spændingsforsyningen tilrobotten, som vælges i kapitel 11, kun tillader enkeltsidet spænding til alle komponenter. Dermedvil den del af filterets output, der ligger under 0 V, blive skåret væk. For at omgå dette problem,skabes et nyt stelpunkt, der anvendes af alle filterets komponenter, pånær opampen. Ved at la-de opampen være tilsluttet positiv forsyning og ’ægte’ stel, imens de resterende komponenterarbejder med det nye stelpunkt som reference, kan DC-offsettet bevares igennem filteret. Det’kunstige’ stelpunkt skal da have et potentiale et sted mellem positiv forsyning og stel.

Det nye stelpunkt skabes af to modstande der danner en spændingsdeling mellem forsyning ogstel, hvor det nye stelpunkt kan udtrækkes mellem modstandene. For at holde spændingsniveau-et stabilt, anvendes en bufferkoblet opamp mellem spændingsdelingen og resten af kredsløbet.Spændingsdelingen kan bestemmes ud fra:

Vo =R2

R1 +R2·Vcc [V] (8.10)

Hvor:Vo er potentialet for det nye stelpunkt [V]R1 og R2 er modstandene i spændingsdelingen [Ω]Vcc er forsyningsspændingen [V]

Udglatning

For at fjerne den bærebølge signalet er blevet overført med, laves en udglatning på signalet,således det laves om til et DC-signal. Udglatningen består essentielt af en diode og et 1.ordenslavpas filter, med en knækfrekvens der er meget lavere end frekvensen på signalets bærebølge.Udglatningen kan ses på figur 8.15.

V.outV.filterD1D1

R1R1 C1C1

Figur 8.15: Udglatningskredsløbet

8. Liniesensor 79 af 250

Page 80: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

8.3 Valg og analyse af kredsløb

Knækket for det indsatte filter er givet ved:

f0 =1

2π ·R1 ·C1[Hz] (8.11)

Hvor:f0 er knækfrekvensen af filteret [Hz]R er modstanden [Ω]C er kondensatoren [F]

Modstanden og kondensatoren i ensretningen, er ligesom komponenterne i filteret, koblet til det’kunstige’ stel. Udglatningen er ikke ideel, dvs. der vil stadig være en smule ripple på signalet,selv efter udglatningen.

Udglatningen skal dimensioneres således at RC-ledet er meget langsommere end de 70 kHz, somer bærebølgen der skal filtreres væk.

Skallering

Mikrocontrolleren, der vælges i kapitel 10, er udstyret med en ADC indgang, der kan måle spæn-dinger i intervallet fra 0 V og 3,3 V [3, s.13]. Det ønskes at skallere outputet, således hele denneskala udnyttes. Derfor indsættes en differensforstærker, således det minimale output fra en pho-todiode skalleres til et endeligt output på 0 V, og et maksimalt output fra en photodiode resultereri et endeligt output på 3,3 V. Differensforstærkeren ses på figur 8.16.

V.udglV.ref

V.out

R4R4

R2R2

R1R1

-

+

-

+3

21

R3R3

Figur 8.16: Differensforstærkeren

Differensforstærkerens overføringsfunktion er givet ved [13, s.329]:

Vout =R2

R1· (Vudgl−Vref) [V] (8.12)

Hvor:Vudgl er spændingen efter udglatningen [V]Vref er en referencespædning [V]

Ovenstående ligning gælder kun såfremt at R1 = R3 og R2 = R4. Referencespændingen til for-stærkeren, frembringes af en spændingsdeling, på samme måde som det kunstige stel.

80 af 250 8. Liniesensor

Page 81: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

8.4 Verificering

Udvælgelse

For at gøre det muligt for mikrocontrolleren at vælge hvilken photodiodes signal den ønsker atlæse, indsættes en multiplexer i kredsløbet. Herved kan er det alene nødvendigt med én ADCindgang på mikrocontrolleren, til at aflæse alle photodioder. Ved at lade mikrocontrolleren styrede logiske inputben på multiplexeren, kan mikrocontrolleren styre hvilken photodiodes outputder indlæses.Idet alle de nødvendige ligninger er opstillet, er det muligt at dimensionere liniesen-soren, dvs. bestemme værdien af de enkelte kredsløbskomponenter. Som tidligere nævnt er detteflyttet til appendiks F.

På figur 8.17 ses implementeringen af modtagerkredsløbet. Denne figur viser dog kun 1/4 af detsamlede modtagerkredsløb. Dette skyldes kredsløbet skal konstrueres for alle de fire photodioder,men da de fire ’delkredsløb’ er ens, findes det ikke nødvendigt at vise hele det samlede kredsløb.Dette kan imidlertid findes på det samlede kredsløbsdiagram i appendiks L.

Pseudo_stelPseudo_stel Pseudo_stel

Multiplexer

Pseudo_stel

VCC_5.0VVCC_5.0V

VCC_5.0VVCC_5.0V

VCC_5.0V

VCC_5.0V

Buffer Filter Ensretning/ DifferensforstærkerUdglatning

Pseudo_stel

C.M11 n

C.M11 n

C.M21 n

C.M21 n

R.M833,2 kR.M833,2 k

R.M23,24 k R.M23,24 k

R.M125 kR.M125 k

R.M1100 kR.M1100 k

D.M1D.M1

R.M43,24 kR.M43,24 k

D.M2BAT85D.M2BAT85

R.M933.2 kR.M933.2 k

+

-

+

-

R.M104.99 kR.M104.99 k

R.M33,24 kR.M33,24 k

R.M143.01 kR.M143.01 k

C.M310 n

C.M310 n

R.M61 kR.M61 k

+

-

+

-

R.MA10 kR.MA10 k

+

-

+

-

R.M71 kR.M71 k

R.M55 kR.M55 k

R.MB10 k

R.MB10 k

R.M155 kR.M155 k

Figur 8.17: Kredsløbsdiagram over modtagerdelen af liniesensoren. Figuren viser kun kreds-løbet for en enkelt photodiode.

Liniesensoren konstrueres så alle dioderne er placeret på et separat print under robotten, langsden forreste aksel, mens den resterende del af liniesensensoren er placere ovenpå robotten. Printetmed dioderne kaldes ’lysbummen’, og med den valgte placering, gør at alle dioderne beskyttesaf robottens dæk. PCB udlæget til lysbummen ses på bilagscden:

PCB/liniesensor.

Da liniesensoren hermed er udviklet, er det muligt at verificere dens funktionalitet, ud fra deopstillede krav. Dette gøres i det følgende.

8.4 Verificering

I verificeringen ønskes det at gennemføre en række målinger med den konstruerede liniesensor,med henblik på at opstille en algoritme, der kan anvendes af robotten, til at bestemme afstandentil linien. Desuden ønskes det at undersøge hvorledes robotten kan anvende målinger fra liniesen-soren, til dels at detektere om den befinder sig i et kryds samt om linien er forsvundet. Algoritmensom opstilles afprøves efterfølgende, for at verificere liniesensorens præcision.

8. Liniesensor 81 af 250

Page 82: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

8.4 Verificering

Verificeringen af liniesensoren består dermed af en række målinger, på sensorens output. Af sam-me grund er det valgt at beskrive udførelsen af målingerne i en målejournal, som er anført somappendiks J. Resultaterne fra målingerne gennemgås i det følgende. Målejournalen består af tomåleserier. Den første er et ’sweep’ hvor liniesensorens output måles, efterhånden som den flyt-tes vinkelret hen over linien, således at lysbummens dioder skiftevis passerer midten af linien. Idet følgende betegnes værdierne der udlæses fra de fire photodioderne, som et ’output’ fra linie-sensoren. Efter måleserien er gennemført, som beskrevet i appendikset, undersøges de opnåedemålinger. Ved at forsøge med forskellige beregninger på liniesensorens output, findes der frem tilat summen af de fire værdier i et output, kan anvendes til at opstille en algoritme for afstanden.Som beskrevet i appendikset, resulterer en læsning fra hver photodiode i en værdi i intervallet på0-255 alt efter hvor meget lys den modtager. Dvs. den samlede sum i et målepunkt kan ligge mel-lem 0 og 1020, alt efter hvor meget lys hver enkelt diode modtager. Plottes afstanden til midtenaf linien, som funktion af summen af alle fire photodioder, fås plottet vist på figur 8.18. Figurenviser summen for tre gentagelser af måleserien fra appendiks J, samt et gennemsnint af de tre.

400 500 600 700 800 900 1000−15

−10

−5

0

5

10

15

Samlet sum for de 4 dioder [-]

Afs

tand

tillin

ien

[cm

]

Måling 1Måling 2Måling 3Gennemsnit

Figur 8.18: Den samlede sum af de fire output fra liniesensoren, som funktion af afstanden fracentrum af robotten, til midten af linien. Stjernerne indikerer målepunkter.

Som det fremgår bliver summen fra de fire dioder nærmest konstant ca. 880, når afstanden fracentrum af robotten, til midten af linien bliver så stor, at den er uden for robottens ’synsfelt’, dvs.alle photodioder er over gulvet. Dette er indikeret med røde streger på figur 8.18, hvormed detantydes at liniesensoren kun kan måle afstanden op til ± 10 cm fra linien.

For hvert målepunkt, er det muligt at se på de fire værdier i outputtet, og finde den mindste,svarende til at finde photodioden der har modtaget mindst lys. Der skaleres efter denne lavesteværdi for hver måling, således at værdien fra denne diode angiver en reference på nul, og deøvrige data i samme måling reduceres tilsvarende. Princippet i dette er illustreret på figur 8.19.

82 af 250 8. Liniesensor

Page 83: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

8.4 Verificering

Figuren et plot af en enkelt af målepunkterne, hvor x-aksen angiver photodiodernes placering iforhold til linien, og y-aksen angiver den værdi liniesensoren har målt på dioden. De blå stjernerer de egentlige målinger, og de røde er hvor værdierne er skaleret så den laveste svarer til nul.

−8 −6 −4 −2 0 2 4 6 80

20

40

60

80

100

120

140

160

180

200

Afstand fra stregen [cm]

Out

put

fra

phot

odio

der

[-]

UskalleretSkalleret

Figur 8.19: Ploteksempel

Ved at summe de skalerede data i hvert målepunkt, opnås en skaleret sum. Denne sum kan an-vendes til at beregne afstanden til linien. Dette uddybes i det følgende. Ved igen at forsøge medforskellige metoder, findes der frem til at det er mest hensigtsmæssigt at se på summen af de tomidterste dioder (diode 2 og 3). Den skalerede sum fra disse to dioder, som funktion af afstanden,kan ses på figur 8.20. Figuren er lavet ud fra gennemsnittet af de tre måleserier.

Af figuren fremgår det at den skalerede sum for de midterste dioder, tilnærmelsesvis kan ud-trykkes ved 6 rette linier, som indtegnet. Ved hjælp af lineær approksimation, kan der findes enforskrift for de rette linier. Herved kan afstanden til linien beregnes, når blot der er fundet ud afhvilken linie der skal anvendes til beregning, for en given måling. Som det fremgår er der to om-råder på grafen der skiller sig ud idet den skallerede sum varierer på en uhensigtsmæssig måde.Hvis der modtages en måling der falder indefor området med dise pikant-heder, kan afstandenikke længere udregnes på samme hvis som i den resterende del af grafen.

Inden for disse problemområder er det istedet fundet favorabelt at se på forskellen imellem deto yderste photodioder på lysbummen, i enten den ene eller anden side. Ved at gøre dette er derfundet ud af at det stadig er muligt at beregne afstanden til linien ud fra et 1. ordens polynon, nublot med den skallerede forskel mellem to yderdioder som input, istedet for den skallerede sumaf de to midterste. Hvilken side af lysbummen de to dioder der anvendes, sidder på, skal bestem-mes ud fra hvilken af de to problemområder en måling ligger i. Da problemområderne også kanbehandles med en ret linie, giver dette totalt set 8 rette linier, hvor afstanden kan beregnes ud fraén.

8. Liniesensor 83 af 250

Page 84: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

8.4 Verificering

0 50 100 150 200 250 300 350−15

−10

−5

0

5

10

15

Skalleret sum fra midterdioder [-]

Afs

tand

tillin

ien

[cm

]

MiddelværdiSpline 1Spline 2Spline 3Spline 4Spline 5Spline 6

Figur 8.20: Sammenhængen mellem den skallerede sum af de to midterste photodioder, ogafstanden til linien.

Opgaven for algoritmen bliver dermed først at se om linien kan detekteres, dernæst at finde ud afhvor på figur 8.20 målingen fra liniesensoren ligge, og slutteligt udregne afstanden ud fra en af 8linier.

Hvilken linie, afstanden skal beregnes efter, kan bestemmes ud fra to parametre:

1. De fire dioders værdi i forhold til hinanden.

2. Den samlede uskalerede sum fra de fire dioder.

Algoritmen der beregner afstanden fungerer dermed som følgende:

1. Hvis den samlede, uskallerede sum fra de fire dioder, i et målepunkt, er under 880, kanlinien ses. Ellers er linien forsvundet ud af synsfeltet for robotten.

2. Hvis linien kan ses, er der otte scenarier:

(a) Hvis diode 1 har det mindste output, og den samlede sum er over eller lig 620, regnesafstanden ud fra spline 2 på figur 8.20.

(b) Hvis diode 4 har det mindste output, og den samlede sum er over eller lig 620, regnesafstanden ud fra spline 1 på figur 8.20.

(c) Hvis den samlede sum er under 620, og diode 2 giver mindre output end diode 3, erder tre muligheder:

i. Hvis den skallerede sum er over eller lig 175, regnes afstanden ud fra spline 3på figur 8.20.

84 af 250 8. Liniesensor

Page 85: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

8.4 Verificering

ii. Hvis den skallerede sum er under eller lig 145, regnes afstanden ud fra spline 5på figur 8.20.

iii. Hvis den skallerede sum er over 145, men under 175, regnes afstanden ud fraspline 7 på figur 8.20.

(d) Hvis den samlede sum er under 620, og diode 3 giver mindre output end diode 2, erder igen 3 muligheder:

i. Hvis den skallerede sum er over eller lig 145, regnes afstanden ud fra spline 4på figur 8.20.

ii. Hvis den skallerede sum er under eller lig 115, regnes afstanden ud fra spline 6på figur 8.20.

iii. Hvis den skallerede sum er over 115, men under 145, regnes afstanden ud fraspline 8 på figur 8.20.

Denne algoritme implementeres gennem softwaren, hvilket er beskrevet i afsnit 15.3. Det er her-med muligt for liniesensoren beregne en afstand til linien. For at verificere hvorvidt liniesensorenopfyldes det stillede krav om præcision, måles afstanden til linien med liniesensoren, samtidigmed at den virkelige afstand noteres. Et plot af den målte afstand i forhold til den reelle afstand,ses på figur 8.21. Af figuren fremgår desuden hvilken fejl der opstår for målingerne, i en vis af-stand til linien. Som det desuden fremgår af figuren, og som tidligere forklaret, kan sensoren kunmåle afstand ud til ± 10 cm, hvilket skyldes at den samlede uskalerede sum kommer over 880,og linien dermed er udenfor liniesensoren detektionsområde. Den uskalerede sum kan dermedogså bruges til at undersøge, om robotten overhovedet er over linien.

−15 −10 −5 0 5 10 15−20

−10

0

10

20

Afstand til stregen [cm]

Ber

egne

taf

stan

d[c

m]

Måling 1Måling 2Måling 3Ideelt

−15 −10 −5 0 5 10 150

1

2

3

4

5

Afstand til stregen [cm]

Fejl

[cm

]

Måling 1Måling 2Måling 3Krav

Figur 8.21: Figuren viser dels hvilken afstand liniesensoren måler, i forhold til den reelle af-stand, samt fejlen der begås i liniesensoren.

Ud fra målingerne på figur 8.21 ses det at afvigelsen overstiger grænsensen på 1 cm, når linie-sensoren er i en afstand af ca. -4 cm fra linien. I resten af måleområdet overholdes kravet, ogi store dele af måleområdet er afvigelsen end da mindre end 0,5 cm. At afvigelsen er for storved -4 cm, som ligger i det ene af problemområderne fra figur 8.20, antyder at algoritmen ikkeer tipas præcis i denne afstand fra linien,på trods af at den er ganske præcis både tættere på og

8. Liniesensor 85 af 250

Page 86: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

8.5 Delkonklusion

længere væk fra linien. Konsekvensen af at liniesensoren angiveligvis er upræcis i denne afstand,har imidlertid ikke været så stor, at det har kunnet mærkes i reguleringen af robotten, som gen-nemgås i kapitel 12 og 13.

Afslutningsvis er det nødvendigt at opstille en måde at genkende kryds på. Ud fra appendiks J,vides det at dette kan begrænses til at kunne genkende en linie af dobbelt tykkelse, hvormeddet ikke er nødvendigt at skelne imellem de forskellige kryds. Dette kan gøres ud fra følgendealgoritme:

Hvis 2 eller flere af diodernes uskallerede output er under 30, er robotten i et kryds.

Baggrunden for ovenstående måde at kende kryds på, er ligesom for hovedalgoritmen, at se påmålingerne gennemført i appendiks J, og forsøge med forskellige muligheder.

Der nu opstillet metoder til at regne afstand, finde kryds samt detektere mangel af linie. Samtidigter det eftervist at usikkerheden af sensoren maksimalt 10 mm, hvormed liniesensoren må sigesat fungere som ønsket.

8.5 Delkonklusion

I dette kapitel er konstruktionen af liniesensoren gennemgået. Sensoren er konstrueret ved at an-vende 12 LED’er, og 4 photodioder. Kredsløbet i liniesensoren er konstrueret således, at hverphotodiode har et endeligt output mellem 0 V og 3,3 V, alt efter underlaget photodioden befindersig over.

Der er opstillet algoritmer der kan anvendes i softwaren for robotten, således det er muligt, atberegne afstand og finde kryds på linien, ligesom det også er muligt at detektere om linien erforsvundet.

Sensorens afvigelse er på maksimalt 1 cm, i en afstand af ± 10 cm fra midten på linien, medundtagelse af området omkring -4 cm, hvor afvigelsen stiger. De opstillede krav er dermed ikkeoverholdt i hele måleområdet, men som nævnt har det ikke haft indflydels på den senere re-guleringsproces. Liniesensoren er ellers konstrueret således at alle de øvrige opstillede krav, eroverholdt.

I det følgende kapitel gennemgås implementationen af en kommunikationskanal på robotten, dergør det muligt at sende data til og fra en ekstern computer, som et led i at overvåge nøglepara-metre for robotten igennem testfasen.

86 af 250 8. Liniesensor

Page 87: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Kapitel 9PC kommunikation

I dette kapitel beskrives mulighederne, for at gøre robotten i stand til at kommunikere med en PC,via en trådløs forbindelse. Denne forbindelse skal anvendes under testforløbet, til at monitorereudvalgte parametre, såsom omdrejningshastigheder på motorer og lignende. Dette skal ses somen mulighed for at fejlfinde på robotten. Samtidigt kan forbindelsen anvendes til at sende udvalgtestyresignaler til robotten, eksempelvis en nødstopskommando.

9.1 Krav til blokken

I henhold til kravspecifikationen, afsnit 3, stilles følgende krav til PC kommunikationen:

• Kommunikationen skal foregå trådløst.

• Den trådløse forbindelse skal have en rækkevidde på mindst 10 m.

• Kommunikationen skal kunne sende værdierne for en række nøglevariable, som det heletiden ønskes at overvåge når robotten kører.

• Værdierne skal sendes minimum 10 gange i sekundet.

• Dataoverførslen skal ske ved minimum 10 kbps.

• Kommunikationen skal kunne deaktiveres eller afmonteres, uden indflydelse på de reste-rende blokke.

9.1.1 Grænseflader

Kommunikationsblokken grænser op til mikrocontrolleren på den ene side, og en PC på denanden. Kommunikationsmodulet er dermed en kanal hvor robotten sender data fra robotten tilPC’en, og PC’en kan indsende beskeder til robotten.

87 af 250

Page 88: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

9.2 Overordnede løsningsmuligheder

Figur 9.1: Grænseflader for Kommunikations blokken.

Grænsefladen mellem kommunikationsblokken og mikrocontrolleren, skal være et interface derer understøttet af begge blokke. Løsningen der vælges sætter dermed et krav til mikrocontrolle-ren.

Grænsefladerne mellem kommunikations- og PC blokken, er en trådløs forbindelse. Det ønskesat forbindelsen mellem PC’en og kommunikations blokken følger et kendt standard for data over-førsel.

9.2 Overordnede løsningsmuligheder

I det følgende afsnit gennemgås de forskellige metoder robotten kan anvende til kommunikation.

9.2.1 Grundlæggende muligheder

Til trådløs dataoverførsel findes der tre grundlæggende metoder [46, s.21-23], hvilke gennemgåsoverfladisk i det følgende:

Trådløs PAN

PAN (Personal Area Network) er en metode hvor to trådløse enheder forbinder til hinanden i etmaster/slave forhold. Masteren i en PAN forbindelse styrer fordelingen af adresser i netværket,hvornår slaven må sende, hvor lang tid der må sendes, hvilke frekvenser der kan sendes på osv.Slaven er en passiv enhed der ikke udfører nogen opgave før den får besked fra en master.

Trådløs LAN

I et trådløst LAN (Local Area Network), har alle enheder på netværket samme rettigheder og kanbåde sende og modtage. Alle netværksenhederne er forbundet til hinanden gennem en central sta-tion, som sørger for at fordele data ud til de rigtige enheder. I tilfælde hvor enhederne er placeretinden for en relativ kort afstand af hinanden, kan der opsættes en point-to-point forbindelse hvordet kun er 2 enheder der har forbindelse til hinanden.

88 af 250 9. PC kommunikation

Page 89: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

9.2 Overordnede løsningsmuligheder

Trådløst LAN (Wireless LAN eller blot WLAN) er en teknologi der, benytter radiosignaler tilat kommunikere med. I et WLAN netværk er alle enhederne på netværket forbundet gennemet eller flere accesspoints, hvilke står for at sende data frem og tilbage mellem de tilknyttedeenheder på netværket. To WLAN enheder kan dog forbindes direkte til hinanden hvis de erinden for relativ kort afstand af hinanden. WLAN netværk følger IEEE 802.11 standarden, sombestemmer frekvenser mm. WLAN netværk kan have en båndbredde på op til 54 Mbps og enrækkevidde op til 100 m fra et accesspoint [46, s.292-295].

Trådløs WAN

WAN (Wide Area Network) fungerer efter samme princip som trådløs LAN, dog over større af-stande samt med lavere overførselshastighed. [46, s.292-295]

Ud fra beskrivelsen af de tre netværks typer, PAN, LAN og WAN, vurderes fordele og ulemperved de forskellige, således at den mest anvendelige type netværk kan specificeres.

WAN netværket fravælges, da der ikke er brug for den store rækkevidde. Hvis WAN skulle an-vendes, ville det sandsynligvis blive implementeret gennem et allerede eksisterende netværk,såsom GSM-nettet (Global System for Mobile Communications) eller lignende.

LAN fravælges også, idet det umiddelbart er beregnet til at fungere mellem flere enheder på net-værket, hvorfor det forventes at være for omfattende at skulle implementere, blot for at kommu-nikere imellem to enheder. Der arbejdes altså videre med PAN løsningen, hvor der i det følgendeses på to specifikke implementationsmuligheder for dette.

Infrarød PAN

Infrarød dataoverførsel er en simpel og billig måde at overføre informationer trådløst. Ved afsen-delse omsættes data, i form af en vekslende spænding, til infrarødt lys i en IR-LED. Ved mod-tagelse opfanges det infrarøde lys af en photodiode, som genskaber den vekslende spænding,ligesom som det anvendes i robottens liniesensor, se kapitel 8. Udover sender- og modtagerdio-derne, anvendes som regel en form for modulation af signalet ved afsendelse, samt demodulationog filtrering ved modtagelse.

De infrarøde signaler kan ikke forcere faste materialer såsom mure og lignende [46, s.106-107],hvilket kan være et problem hvis dette skal anvendes med robotten, idet der hermed altid skalvære frit udsyn fra robotten til.

Signaler der sendes med infrarøde dioder, er meget retningsbestemte, idet deres udbredelse er be-stemt af hvor bredt IR-LED’en udsender lyset. Sender og modtager skal derfor være rettet modhinanden, hvilket giver sikkerhed imod at signalet opfanges af andet end den tiltænkte modtager.Ved dataoverførsler er der en anbefalet maksimum afstand på 1 meter mellem enhederne, hvorhastigheden kan være op til 16 Mbps [39].

9. PC kommunikation 89 af 250

Page 90: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

9.3 Valg og analyse af kredsløb

Bluetooth PAN

Ved bluetooth kommunikation anvendes radio signaler til at forbinde enheder med hinanden [46,s.310-311]. Teknologien er udviklet til nemt at implementere en trådløs data forbindelse i enhedersåsom mobiltelefoner eller PC tilbehør. Bluetooth følger IEEE 802.15 standarden, og fungererefter master/slave princippet, hvor slaven er en relativ simpel enhed der blot modtager ordrer framasteren. Når slaveenhederne ikke sender eller modtager, går de i en dvaletilstandsåledes strøm-forbruget minimeres. En master enhed kan have forbindelse til 7 aktive slaveenheder på en gang,og der kan der være 255 enheder på et netværk der er i dvale. Bluetooth netværksenheder er deltop i 3 klasser [39], hvor klasse 1 har den længste rækkevidde, og klasse 3 den mindste. Klasse 1har en rækkevidde på 100 meter, klasse 2: 10 meter og klasse 3: 1 meter. Dataoverførselshastig-heden kan, alt efter hvilken type der vælges, være op til 3 Mbps.

9.2.2 Valg af teknologi

Ud fra de krav der er stillet til kommunikationsblokken vurderes hvilken af de to PAN imple-mentationsformer der er mest anvendeligt. Begge implementationer kan overholde kravet til ha-stighed. Den infrarøde teknologi kan dog ikke overholde kravet om en rækkevidde på 10 meter,og fravælges derfor. Ud over rækkevidden ville infrarøde kommunikation kunne give problemeri kraft af at det er retningsbestemt, og dermed ikke godt egnet til at sidde på en robot der løbendeflytter sig, ligesom der er stor risiko for forstyrrelser hvis der kommer genstande i vejen for for-bindelsen, så lyset ikke kan overføres.

Valget må derfor falde på Bluetooth, hvilket kan opfylde alle de stillede krav, så længe der vælgesbluetooth med en rækkevidde svarende til mindst en type 2.

9.3 Valg og analyse af kredsløb

Det vælges at benytte et færdigt Bluetooth modul, af typen AMB2300, hvilket stilles til rådighedfra universitetes side. Databladet for modulet er anført som kilde [55]. Bluetoot modulet beståraf en LMX9830-chip som er et bluetooth seriel port modul, hvis datablad anføres som kilde [6].Bluetooth modulet består desuden af de nødvendige komponenter der skal anvendes sammenmed LMX9830 chippen.

Det samlede bluetoothmodul er blot en komponent der skal sættes på robotten, og der er dermedikke tale om at der skal udformes et egentligt kredsløb, men derimod blot at modulets forbindelserskal forbindes rigitgt på mikrocontrolleren, ligesom modulet rent hardwaremæssigt skal sættesop med den rigtige baudrate, datalængde, paritet osv. hvilket gennemgås i det følgende.

90 af 250 9. PC kommunikation

Page 91: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

9.3 Valg og analyse af kredsløb

GND

OP3

PG7

SFS

SRDSTD

OP5OP4

Antenne

GND

VccNC

PG6

RX_BTTX_BT

RTS#_BT

CTS#_BT

RESETBB#

SCLK

Figur 9.2: Figuren viser de en der er tilgængelige på AMB2300 modulet [55].

De forskellige ben på bluetooth-modulet, er vist på figur 9.2. Bluetooth modulet andvender etUSART interface (Universal Asynchronous Receiver/Transmitter) for at kommunikere med mi-korcontrolleren [55], hvilket dermed stiller krav til mikrocontrolleren om at denne skal have etsådan interface. Modulet er komplet med alt nødvendig hardware for at fungere som en slaveen-hed i et bluetoothnetværk, og kan sættes op til at overholde alle de stillede krav. Rækkevidden er10 m og maksimum overførselshastigheden for bluetoothforbindelsen er 704 kbps [6].

USART koblingen mellem mikrocontroller og bluetooth modul, består af 4 forbindelser, somfunktionsmæssigt hænger sammen to og to. På figur 9.3 ses koblingen som den skal være medUSART’en på mikrocontrolleren. To forbindelser, Rx (recieve) og Tx (transmit), bruges til atsende data imellem de to enheder, Tx er til udgående data og forbindes til Rx på den modsatte si-de af forbindelsen, dvs. indgangen for data på modtageren. Desuden er der forbindelsen ’requestto send’ (RTS) som er en udgang der er høj når en af enhederne er klar til at modtage data.RTS benet er forbundet til ’clear to send’ (CTS) på den modsatte side af forbindelsen. CTS eren indgang som registrerer om den modsatte enhed er klar. Figur 9.3 er USART forbindelserneillusteret imellem mikrocontrolleren og AMB2300 modulet.

Figur 9.3: USART forbindelsenmellem mikroprocessor og kommunikations blokken. Hvor Txog Rx er forbindelserne til at sende(Tx) og modtages(Rx) data. CTS og RTS er ’clear to send’og ’request to send’ forbindelserne der benyttes til handshake.

For USART forbindelsen skal hastigheden og handshake metoden sættes ens op i begge enderaf forbindelsen. På modulet findes tre ben: OP3, OP4 og P5, hvis logiske opsætning bestemmerhastigheden for modulet:

9. PC kommunikation 91 af 250

Page 92: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

9.3 Valg og analyse af kredsløb

OP3 OP4 OP5 Opsætning0 0 0 Ikke understøttet0 1 0 Ikke understøttet1 0 0 Hastighed aflæses fra NVS (EEPROM)1 0 1 9,6 kbps1 1 0 115,2 kbps1 1 1 921,6 kbps

Tabel 9.1: Hastigheds muligheder for AMB2300 modulet [55, s. 6].

Af tabellen fremgår det at OP3 altid skal sættes høj. OP4 og OP5 kan sættes høj eller lav, menaf databladet fremgår det at når de sættes høj, skal det være igennem en 1 kΩ modstand [55,s. 6]. Når OP4 og OP5 skal være lave, skal de blot afbrydes, idet de internt i modulet trækkeslave. Af tabellen fremgår det at den overførselshastighed der ligger nærmest kravet på 10 kbps er9,6 kpbs. Det kunne vælges at anvende en hastighed på 115,2 kbps for at komme over kravet på10 kbps. Dog er det stadig muligt, med en hastighed på 9,6 kbps, at overføre op til 30 variable a’32 bit, hvilket var det oprindelige grundlag for kravet om overførselshastighed, hvorfor vælgesdet at anvende denne hastighed.

For at opnå den ønskede hastighed, ses det ud fra tabel 9.1, at OP3 skal sættes høj, OP4 skalvære svævende, og OP5 skal sættes høj igennem en modstand på R = 1 kΩ. Med den forklare-de opsætning, styres handshake af hardwareforbindelserne. Hvis modulet ikke skal arbejde medhandshake, skal modulets RTS og CTS ben korsluttes til stel. Handshake funktionen kan und-væres, men det skal bruges for at undgå overrun i bluetoothmodulet. Overrun kan opstå når derkøres med en højere hastighed for forbindelsen til modulet gennem USART forbindelsen end derkan sendes med over Bluetooth forbindelsen.

TX

RX

RTS

CTS

VCC_3.3V

VCC_3.3V

VCC_3.3V

R.B11KR.B11K

J.B3JUMPERJ.B3JUMPER

12

D.B1LEDD.B1LED

J.B1CPU - BLUETOOTHJ.B1CPU - BLUETOOTH

1

234

5678910

J.B2BLUETOOTH FORSYNINGJ.B2BLUETOOTH FORSYNING

12

U1

BlueNiceCOM4

U1

BlueNiceCOM4

GN

D1

OP3 2

PG73

SCLK 4SFS 5SRD 6

OP5 8OP4 9

VC

C10

NC11

PG612

RX13

TX14

RTS15

CTS16

RESET17

STD 7

B.R31KB.R31K

R.B21KR.B21K

J.B4JUMPERJ.B4JUMPER

12

Figur 9.4: Diagram over opkoblingen af AMB2300 bluetooth modulet. PCB udlæget findes påbilagscden: /PCB/bluetooth/

92 af 250 9. PC kommunikation

Page 93: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

9.4 Delkonklusion

Den rent kredsløbsmæssige tilslutning af bluetooth modulet, ses på figur 9.4. OP3 er sat direktetil forsyningen. For at kunne styre hvorledes OP4 og OP5 er koblet indsættes der to jumpereJB3 og JB4. Ved at placere de to jumpere kan OP4 og OP5 sættes hhv. svævende eller sat tilforsyning igennem en 1 kΩ modstand (RB1 og RB2), hvormed det er muligt at skifte til en andenoverførselshastighed, skulle dette vise sig nødvendigt, eller favorabelt.

Forbindelserne der styrer dataudvekslingen, er forbundet til et stik (JB2), hvortil der tisluttes etkabel, således at forbindelserne passer med mikrocontrollerens USART, da denne er placeret pået andet print, end bluetoothmodulet.

Bluetoothmodulets forsyningsspænding tilsluttes via endnu et stik (JB1), hvor der desuden erindsat en LED og en modstand. LED’en bruges til at indikere hvornår der er forsyning på printethvor bluetoothmodulet er placeret. Idet modulet er placeret på et særskilt print, kan det pilles afrobotten, som krævet.

Idet der anvendes et færdigt modul, er det ikke umiddelbart muligt at verificere dets anvendelse.Verificeringen af modulet kommer dermed til at bestå i, hvorvidt der kan kommunikeres medrobotten via en bluetoothforbindelse eller ej.

Det bør understreges at selvom modulet anvender en standardiseret kommunikationsform, brugesder ikke energi på at gennemgå bluetooth standarden, dvs. hvad den dækker over og indebærer.Dette skyldes at dette ikke har relevans for projektet, og heller ikke har indflydelse på brugen afbluetoothmodulet.

9.4 Delkonklusion

I dette afsnit er en række muligheder for trådløs forbindelse imellem en pc og robotten disku-teret. Valget af trådløs forbindelse er faldet på et færdigt bluetooth modul. Valget af et færdigtbluetooth modul, betyder at der stilles krav til mikrocontrolleren om at have en USART indgang.

I det følgende kapitel gennemgås valget af selve mikrocontrolleren, samt hvorledes denne imple-menteres, således at den kan anvendes dels med det valgte bluetooth modul, men også med allede øvrige hardware kredse, som i de foregående kapitler er blevet gennemgået og analyseret.

9. PC kommunikation 93 af 250

Page 94: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Kapitel 10Mikrocontroller

Dette kapitel har fokus på robottens mikrocontroller. Denne enhed er robottens centrale element,fordi den på baggrund af robottens sensorer, ved brug af robottens aktuatorer, skal kontrollereog regulere den resterende del af robotten. Kapitlet beskriver hvilke krav der er opstillet til mi-krocontrolleren, både gennem kravspecifikationen, og gennem de resterende moduler i robotten,og på baggrund af dette vælges den mest anvendelige løsning.

10.1 Krav til blokken

Kravene til mikrocontrolleren består dels af de krav der allerede er opstillet, igennem kravspe-cifikationen, og dels de krav der sidenhen er opstået på baggrund af konstruktionen af de øvrigeblokke. Alle kravene opsummeres i det følgende.

Fra kravspecifikation

Fra kravspecifikationen kan følgende krav tillægges mikrocontrolleren:

• Mikrocontrolleren skal være kompatibel med signalet fra liniesensoren.

• Mikrocontrolleren skal være kompatibel med den sensor, som vælges til at måle motorer-nes omdrejningshastighed.

• Mikrocontrolleren skal være kompatibel med den kommunikationsstandard, som vælgestil kommunikation med PC.

• Mikrocontrolleren skal være kompatibel med et kamera og kunne behandle billed-data.

• Mikrocontrolleren skal have et tilgængeligt udviklingsværktøj, som inkluderer mulighedfor debugging.

• Mikrocontrolleren skal kunne afvikle realtidspogrammer.

94 af 250

Page 95: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

10.1 Krav til blokken

• Mikrocontrolleren skal desuden være så stabil, at den ikke forstyrres af rystelser og slag,der forekommer imens robtten gennemkører forhindringsbanen.

Desuden skal den startknap som robotten skal have, medtages i implementationen af mikrocon-trolleren.

Krav fra øvrige blokke

Følgende krav er opstået under udvikling af de resterende hardware elementer af robotten.

Omdrejningsencodere:

• Mikrocontrolleren skal have et SPI-interface, der gør det muligt at aflæse de fire counteresom omdrejningsencoderne er tilkoblet.Aflæsningen skal ske med en frekvens på minimum 125,5 Hz. Counterne skal kunne aflæsesog nulstilles.

Liniesensor:

• Mikrocontrolleren skal have en ADC indgang.ADC spændingsinputtet fra liniesensoren er højimpedant og i intervallet 0−3,3 V.

• Mikorcontrolleren skal kunne styre multiplexeren i liniesensoren, med to logiske output-ben.De to logiske styresignaler er CMOS.

Motordriver:

• Mikrocontrolleren skal have 4 PWM (Pulse Width Modulation) udgange, hvilket tilsvarerantallet af motorer.PWM spændingsoutput til motorstyringen, i form af firkantsignal på 3,3 V med en frekvenspå 1 kHz, og varierende duty-cycle fra 0% - 100%.

• Mikrocontrolleren skal have et SPI-interface der gør det muligt at styre de logiske signalertil H-broerne.

Kommunikationsmodul:

• Mikrocontrolleren skal have et UART-interface.Alt data der sendes eller modtages af bluetooth-modulet, transporteres gennem et US-ART interface.

10. Mikrocontroller 95 af 250

Page 96: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

10.2 Overordnede løsningsmuligheder

10.1.1 Grænseflader

Grænsefladerne fra mikrocontrolleren til de øvrige hardwareelementer af robotten, er givet vedde krav der er opstillet i forrige afsnit. For at skabe yderligere overblik over grænsefladerne, erde anskueliggjort på figur 10.1. Figuren viser kun gænsefladerne for selve mikrocontrolleren,og viser dermed ikke noget om signaler på den anden side af eventuelle mellemblokke, somSPI-interface eller bluetooth.

Figur 10.1: Figuren illustrerer grænsefladerne for mikrocontrolleren.

10.2 Overordnede løsningsmuligheder

Der er mange valgmuligheder når det drejer sig om at finde en mikrocontroller, da udbudet ermeget stort. Dog er der en række andre betingelser, end de i afsnit 8.1.1 nævnte, som også skaltages med i betragtning når det gælder valget af mikrocontroller:

• Styresystem eller ej: Det ønskes at vælge en mikrocontroller som er udviklet til at bli-ve tilgået uden nødvendigvis at have et styresystem på controlleren. Dette skyldes at detstemmer bedst overens med kravene givet i studieordnen.

• High-End: Det ønskes at lære at anvende en mikrocontroller af nyere dato.

• Tilgængelige komponenter: Det ønskes at bruge off-the-shelf-komponenter i så vid ud-strækning som muligt, så længe der ikke gåes på kompromis med funktionalitet.

På universitetet findes debugger værktøj til hele Atmels mikrocontroller AVR-serie, ligesom derfra Atmels side er konstrueret frittilgængelige udviklingsværktøjer der kan anvendes sammenmed disse controllere. Derfor er ønskes det at benytte en af disse mikrocontrollere såvidt de kanleve op til alle givne krav. Som nævnt i kravspecifikationen er debuggeren af typen JTAG IceMKII.

96 af 250 10. Mikrocontroller

Page 97: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

10.3 Valg og analyse af kredsløb

10.2.1 Valg af teknologi

Det vælges at arbejde videre med en Atmel AVR AT32UC3A0512, kilde [4]. Processoren opfyl-der alle krav der er stillet til den, idet den har følgende egenskaber:

• RISC instruktions set processor med hastighed på op til 60 Mhz

• Kompatibel med JTAG udviklingsværktøj til PC

• Intern flash 512 kB

• Real Time Clock timer

• 7 kanals PWM-modul

• USART-kommunikationsmodul

• 8 kanals ADC indgang

• 8 kanals interrupt indgang

• Prioritering af interrupts

Forsyningsspændingen for denne controller skal ligge i intervallet 3,0 V til 3,6 V, hvilket sætterkrav til det forsyningskredsløb som dimensioneres i kapitel 11.

10.3 Valg og analyse af kredsløb

Den valgte mikrocontroller kan fås som enkelt SMD (Surface Mounted Device) IC eller somboard, hvorpå der fra producentens side er monteret al nødvendig basishardware mv. Dog ønskesdet selv at udvikle et board som er tilpasset netop de krav, som er stillet jf. afsnit 10.1

Da mikrocontrolleren blot er en IC, er der som sådan ikke et kredsløb der, skal dimensioneres,pånær de oscillatorer og afkoblingskondensatorer controlleren skal have for at fungere. Dog ercontrolleren uanvendelig i sig selv, hvorfor det ønskes at konstruere et print hvorpå den kanmonteres, som giver mulighed for at tilslutte de øvrige dele af robotten. Udarbejdelsen af detteprint, gennemgås i appendiks G. Heri ses ligeledes en tabel over samtlige at de ben som er trukketud fra mikrocontrolleren. Benenes anvendelse er ligeledes beskrevet i dette appendiks og det ersamtidigt beskrevet, hvorledes startknappen implementeres.

10.4 Delkonklusion

I dette kapitel er gennemgået hvilken mikrocontroller der anvendes i projektet. Det er desuden,i appendiks G, udviklet et print, hvorpå mikrocontrolleren kan monteres, med udtag til alle denødvendige benforbindelser. Hermed er det muligt at tilkoble de resterende kredsløb til denne.

Med dette er alle de forskellige blokke, der på den ene eller anden vis bidrager til robottensfunktioner, blevet gennemgået. I det følgende kapitel gennemgås det kredsløb der skal sørge forat de forskellige dele af robotten får den korrekte forsyningsspænding.

10. Mikrocontroller 97 af 250

Page 98: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Kapitel 11Forsyning

I dette kapitel vælges hvorledes forsyningskredsløbet, til robotten, skal udformes. Forsyningenvælges dels ud fra kravene i kravspecifikationen, men også ud fra krav der sidenhen er opstået,på baggrund af udviklingen af de øvrige kredsløb i robotten. Forsyningskredsløbet opgave er atomdanne en batterispænding, til de spændinger som anvendes i de resterende kredsløb.

11.1 Krav til blokken

I henhold til kravspecifikationen, afsnit 3, er der følgende krav til forsyningen:

• Forsyningen skal have et genopladeligt batteri som spændingskilde, krav 46.

• Batteriet i forsyningen skal kunne drive robotten i mindst 15 minutter, når robotten følgeren linie ved en hastighed på 1 m/s, krav 48.

• Forsyningen skal kunne levere de spændinger der er krævet af robottens øvrige elektriskekredsløb, krav 47.

11.1.1 Grænseflader

Forsyningen grænser op til de fleste øvrige kredsløb i robotten, idet alle kredsløb skal være til-sluttet en spændingsforsyning. Der er dog nogle som får spænding gennem andre kredsløb, ek-sempelvis motorerne, som får det gennem H-broerne, hvorfor de ikke har grænseflade til selveforsyningen. Gennem udviklingen af de øvrige kredsløb, er det bestemt hvilke forsyningsspæn-dinger der er krævet.

Som opsummering, fungerer både mikrocontrolleren og bluetoothmodulet ved 3,3 V. Omdrej-ningsenkoderne samt liniesensoren fungerer ved 5 V. Den digitale styring af H-broerne fungererligeledes ved 5 V, mens H-broerne i sig selv skal have minimum 7,2 V for at kunne drive motorer-ne. H-broerne behøves altså ikke få en konstant forsyningsspænding, når blot den er over 7,2 V,hvilket er beskrevet nærmere i afsnit 7.2. Forsyningens grænseflade til mikrocontrolleren består,

98 af 250

Page 99: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

11.2 Overordnede løsningsmuligheder

udover forsyningsspænding, af en forbindelse hvor mikrocontrolleren kan måle batterispænding-en. Årsagen til dette er at PWM-signalet til H-broerne skal tilpasses, således motorerne aldrig fårhøjere spænding end 7,2 VDC, hvilket beregnes ud fra batterispændingen, som kan variere. Detteer beskrevet nærmere i afsnit 7.3.

På figur 11.1 ses grænsefladerne til forsyningen, samt hvilke spændinger de forskellige kredsløbskal bruge.

Figur 11.1: På figuren ses alle de kredsløb som har grænseflade til forsyningen. Samtidigt seshvilke spændinger de respektive kredsløb fungerer ved.

Det skal desuden fastlægges hvor meget forsyningsspændingerne må afvige, for stadig at væretilstrækkelige for de respektive kredsløb. Dette gøres ved at betragte de komponenter som stillerstørst krav til forsyning. Ud fra datablade for mikrocontrolleren [4, s.8], er det fundet at 3,3 Vforsyningen maksimalt må afvige±9,1%, svarende til mellem 3,0 V og 3,6 V. På samme vis er detfundet, ud fra databladet for counterne 74F579 [35], at 5,0 V forsyningen maksimalt må afvige±10%, svarende til mellem 4,5 V og 5,5 V. Forsyningen til H-broerne skal som sagt konstantvære over 7,2 V for at være tilstrækkelig. I det følgende afsnit gennemgås hvilke muligheder derkan anvendes til at frembringe de forskellige forsyningsspændinger.

11.2 Overordnede løsningsmuligheder

Som det fremgår, er det et krav at spændingskilden skal være et genopladeligt batteri. Dette kom-mer sig af, at robotten skal kunne bevæge sig frit på forhindringsbanen, uden at være ’bundet’af ledninger til en stationær strømforsyning. Der findes flere anvendelige typer af genopladeligebatterier, heriblandt NiCd (Nikkel-Cadmium), NiMH (Nikkel Metal Hydrid) og LiPo (Lithium-ion Polymer). Det vælges uden videre at anvende et batteri af typen LiPo. Fordelene ved dennetype batterier, frem for de andre, er at den har en højere energitæthed, og vejer derfor mindre [51].Dette er en fordel i kraft af, at desto mere robotten vejer, desto mere energi vil det kræve at driveden rundt på banen, og jo kortere tid vil den kunne køre på en batteriopladning.

11. Forsyning 99 af 250

Page 100: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

11.2 Overordnede løsningsmuligheder

Et LiPo batteri har den ulempe, at det kan tage skade hvis det aflades under et vist spændingsni-veau, typisk omkring 2,7 V pr. celle [2]. Af denne årsag skal batterispændingen løbende monito-reres, således det kan detekteres når batterispændingen er nærmer sig dette niveau. Til gengælder et LiPo batteri i stand til at holde batterispændingen over dette niveau i hovedparten af densafladningsforløb, da den har en næsten flad afladningskurve, som først dykker væsentligt når bat-teriet nærmer sig at være helt afladt [51]. At skulle måle batterispændingen løbende er dog ikkeet videre problem, da måling af batterispændingen alligevel skal foretages, som det fremgår afkapitel 7, for at kunne beregne den korrekte duty-cycle til H-broernes PWM signal.

I de følgende afsnit vælges mere specifikt hvilket batteri af LiPo typen der vælges, udfra be-hov omkring spændingsniveau og strømkapacitet. Det ønskes desuden at begrænse sig til kunat anvende ét batteri på robotten, således de ønskede spændinger frembringes ud fra spænding-en på dette ene batteri. På denne vis kan der skabes mere stabile forsyningsspændinger, hvilketbeskrives nærmere i det følgende afsnit.

11.2.1 Valg af løsning

Der bruges som sagt, flere forskellige spændinger til de forskellige øvrige kredsløb. Ved hjælp afDC/DC convertere kan de ønskede spændinger frembringes. Batterispændingen skal være højereend 7,2 V, da kravet fra H-broerne, om en forsyningsspænding på minimum 7,2 V, herved kanopfyldes uden brug af en boost converter, hvilket er ønskeligt. På figur 11.2 ses et overordnetblokdiagram over hvorledes forsyningen ønskes konstrueret. Som de fremgår dannes både 5 Vog 3,3 V med DC-DC convertere, hvorimod spændingen til H-broerne tages direkte fra batteriet,hvilket også er beskrevet i kapitel 7.

Figur 11.2: Figuren illustrerer et blokdiagram over forsyningskredsløbet. Udover at levere for-syningsspændinger til de øvrige kredsløb, skal den ligeledes give mikroprocessoren mulighedfor at måle batterispændingen.

100 af 250 11. Forsyning

Page 101: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

11.3 Valg og analyse af kredsløb

11.3 Valg og analyse af kredsløb

11.3.1 Valg af batterispænding

I et LiPo batteri har hver celle en nominel spænding på 3,7 V. I realiteten kan de dog variere mel-lem 4,2 V ned til omkring 2,7 V [51], afhængigt af om de er fuldt opladt eller ved at være afladt.Denne variation er samtidigt årsagen til at der ikke anvendes batterier som direkte forsyning til al-le de øvrige kredsløb, da eksempelvis mikrocontrolleren som nævnt skal en forsyningsspændingder ikke svinger mere end 3,0-3,6 V [4], hvilket en LiPo celle ikke vil kunne garantere. Samtidigtvil det, som antydet, kræve flere batterier, med forskellige spændinger, hvis der ikke anvendesDC/DC convertere, hvilket er uønsket. H-broerne er det eneste kredsløb der ikke kræver en fastforsyningsspænding, blot den er over 7,2 V. Dette skyldes, som beskrevet i kapitel 7, at H-broernei sig selv fungerer som en step-down DC/DC converter, og kan derfor regulerer spændingen nedtil den spænding som effektivt er ønsket på robottens motorer.

For konstant at holde spændingen højere end 7,2 V, undersøges det hvor mange celler batteri-et skal have, ud fra en betragtning af hver celles minimumsspænding. Dermed skal der brugesminimum 7,2/2,7 = 2,66 ≈ 3 celler, for at overholde kravet om spændingen. Dette betyder atder vælges et batteri med en nominel spænding på 3 · 3,7 V = 11,1 V. Spændingen på batterietkan, ud fra de angivne afvigelser pr. celle, svinge mellem 8,1 V og 12,6 V.

For at skabe spændingerne 5 V og 3,3 V, anvendes buck convertere, da disse har en bedre nyt-tevirkning fremfor lineære regulatorer [49]. Dette er nærmere beskrevet i kapitel 7. Det vælgesat anvende to buck convertere af typen LM2575S-3.3 og LM2575S-5.5, hvilke er i stand til atnedbringe spændingen til hhv. 3.3 V og 5.0 V, med en maksimalt strømtræk på 1 A [36]. Somdet kan ses ud fra tabel 11.1, i det følgende afsnit, er dette maksimale strømtræk tilstrækkeligt,i forhold til den strøm robotten trækker på de to forsyningsspændinger. Dimensionering af buckconverterne gennemgås i afsnit 11.4.

11.3.2 Valg af batterikapacitet

Kapaciteten, C, på et genopladeligt batteri angives i Ampere timer [Ah], hvilket angiver denstrøm der skal til at lade batteriet op på en time [2]. Eksempelvis kan et batteri på 2,2 Ah levere2,2 A i en time, eller 4,4 A i en halv time osv.

Samtidig angives batteriets maksimale spidsstrøm, som er den maksimale strøm der kan trækkesfra batteriet. Dette angives som en faktor gange kapaciteten, eksempelvis 20·C, hvilket betyderspidsstrømmen er 20 gange så stor som kapaciteten.

For at vælge et passende batteri skal det altså vides hvor meget strøm der skal trækkes, over denperiode som det skal tage at tømme batteriet for strøm, samt hvad spidsstrømmen er.

I første omgang anslås hvor stor strøm samtlige af robottens øvrige blokke trækker, ved kørselefter linien ved en hastighed på 1 m/s. Disse værdier ses i tabel 11.1. For at sikre at der vælgeset batteri med tilstrækkelig kapacitet, er det de højst tænkelige strømtræk der er anslået i tabel-len. Det er altså ikke så væsentligt hvorvidt strømforbruget for de enkelte kredsløb er angivetnøjagtigt, blot værdierne ikke ligger under det faktiske strømforbrug. Værdierne er anslået ud fra

11. Forsyning 101 af 250

Page 102: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

11.3 Valg og analyse af kredsløb

datablade for de anvendte komponenter, samt observersioner i laboratoriet.

I forbindelse med H-broernes strømforbrug, bør det nævnes at det værst tænkelige strømforbrugfor H-broen egentligt er 4 ·4,34 = 17,36 A, i henhold til ligning E.2 side 210, som er udregningenaf motorernes maksimale strømforbrug. Det er nemlig hovedsageligt motorerne der bestemmerH-broernes strømforbrug, i kraft af at motorerne trækker strøm gennem disse. Men eftersom dettemaksimale strømforbrug alene forekommer i meget kort tid, lige når motorerne sætter igang (el-ler motorerne blokeres), er det unødvendigt at dimensionere batteriet efter at kunne levere dennestrøm konstant i et kvarter.

I databladet for de valgte motorer [19], findes en graf over strømforbrug som funktion af omdrej-ningshastighed. De valgte hjul har, i henhold til tabel C.1, en diameter på 12,16 cm, hvilket giveren omkreds på π · 0,1216 = 0,382 m. En hastighed på 1 m/s svarer derfor til at motorerne haren omdrejningshastighed på (1/0,382) ·60 = 157,1 RPM. Gennem grafen i motorernes databladfindes strømforbruget, ved denne hastighed, til ca 1,5 A pr. motor. Dette skal dog bemærkes atvære ved normeret belastning. Da den egentlige belastning af motorerne er ukendt, regnes dervidere med denne værdi. Dog tillægges der en sikkerhedsmargin, således at der regnes med atmotorernes samlede strømtræk ved kørsel efter linien er på 8 A, ved en hastighed på 1 m/s.

I tabel 11.1 er desuden anført et strømtræk på 500 mA til ’Andet’. Dette er tiltænkt ekstra udstyr,som eventuelt ønskes tilsluttet senere, eksempelvis et kamera eller gribearm. Da dette blot er enbuffer, anføres den som et strømtræk ved batterispændingen.

Blok Strømforbrug [mA] Spænding [V]Mikrocontroller 80 3,3Bluetooth modul 100 3,3Liniesensor 250 5,0Rotationsencodere og logik 400 5,0H-bro styring 200 5,0H-broer 8000 7,2Andet 500 Vbat

Tabel 11.1: Tabellen viser en estimering af det værst tænkelige strømforbrug, for de forskelligeblokke, ved kørsel efter linien med 1 m/s.

For at beregne hvor stor kapacitet batteriet skal have, for at kunne forsyne robotten i 15 minutter,under de givne forhold, skal det beregnes hvor stort en strøm der trækkes fra batteriet, når deforskellige kredse har en strømforbrug som listet i tabel 11.1. I kraft af, at der anvendes buckconvertere, hvilke switcher strømmen, vil batteriet opleve mindre strømtræk, end hvad der erangivet i tabel 11.1, da spændingen strømmen trækkes ved, er lavere end batteri spænding. Detteer som følge af at effekten vil være bevaret gennem kredsløbet. Der vil dog være et effekttab ibuck converterne, da disse har en effektivitet mindre end 100%, hvor tabet afsættes som varme.

102 af 250 11. Forsyning

Page 103: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

11.3 Valg og analyse af kredsløb

Ud fra følgende ligning kan det gennemsnitlige strømtræk fra batteriet beregnes:

Pkreds = η ·Pbat⇔ [W] (11.1)

Vkreds · Ikreds = η ·Vbat · Ibat⇔ [W] (11.2)

Ibat =Ikreds ·Vkreds

η ·Vbat⇔ [A] (11.3)

Hvor:Pbat er effekten afgivet af batteriet [W].Pkreds er effekten afsat i kredsløbet [W].η er buck converterens effektivitet [%].Vbat er batterispændingen [V].Vkreds er kredsløbets forsyningsspænding [V].Ibat er middelstrømmen som trækkes fra batteriet [A].Ikreds er middelstrømmen som trækkes af kredsløbet [A].

I følge databladet for LM2575S-3.3 og LM2575S-5.5 [36], har disse en typisk effektivitet på hhv.75% og 77%, hvormed ca. 3/4 af effekten, der trækkes fra batteriet, overføres til de pågældendekredsløb. Effektiviteten af H-broerne er ikke fundet direkte. Det ses dog ud fra verificeringen afdisse, i tabel I.1 side 236, at den strøm der løber ind i H-broerne næsten er lig den strøm der løberud, pånær et tab på maksimalt 160 mA. Sidstnævte skyldes strømforbruget af de komponentersom anvendes i forbindelse med H-broerne. Det kan derfor anslås at H-broerne har en effektivitetop imod 100%. Til de videre beregninger antages H-broernes effektivitet dog at være 95%, for atindlægge en sikkerhedsargin.

I tabel 11.2 ses hvor stor strøm de forskellige kredse effektivt trækker fra batteriet. Værdierne, itabel 11.2, er bestemt ud fra ligning 11.3, med de anslåede værdier fra tabel 11.1 samt den lavestmulige batterispænding, som er 8,1 V i henhold til afsnit 11.2.1. Beregningerne udføres for denlaveste batterispænding, for at opnå et overslag for ’worst-case’.

Blok IBAT [mA]Mikrocontroller 43,5Bluetooth modul 54,3Liniesensor 200,4Rotationsencodere og logik 320,7H-bro styring 160,3H-broer 7485,4Andet 500Ialt 8764,6

Tabel 11.2: Tabellen viser hvor stort et gennemsnitligt strømtræk fra batteriet de forskelligekredsløb giver anledning til. Værdierne er beregnet på baggrund af tabel 11.1 og ligning 11.3.

Batteriets nødvendige kapacitet kan nu bestemmes. Strømtrækket fra batteriet er altså i værstetilfælde 8764,6 mA. For at batteriet skal kunne holde robotten kørende i 15 minutter (0,25 time= 0,25 h), ved dette strømtræk, skal det have en kapacitet på minimum 8764,6 mA · 0,25 h =2191,15 mAh

11. Forsyning 103 af 250

Page 104: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

11.4 Dimensionering af kredsløb

Det skal samtidigt bestemmes hvor stor en spidsstrøm det skal være muligt at trække fra batteriet.Motorerne er den primære kilde til det maksimale strømtræk. Lige når de sætter igang, eller hvisde blokeres, vil de som tidligere nævnt trække op til 17,36 A. Oveni dette kommer strømtrækketsom de resterende kredsløb forsager, hvilket udfra tabel 11.2, kan bestemmes til 1279,2 mA. Bat-teriet skal altså kunne holde til en spidsstrøm på 17360 mA+1279,2 mA = 18639,2 mA. Omreg-nes dette i forhold til kapaciteten, skal den tilladte spidstrøm være 18639,2 mA / 2191,15 mAh =8,5C.

Det vælges at bruge et batteri med en kapacitet på 2200 mAh samt en spidsstrøm på 25C, hvor-med alle krav er overholdt.

I det følgende gennemgås dimensioneringen for forsyningskredsløbet. Det er valgt ikke at flyttedette til et appendiks, ligesom det var tilfældet for eks. liniesensoren og H-broerne, idet omfangetaf dimensioneringen ikke er så omfattende at det findes forstyrrende for kapitlet.

11.4 Dimensionering af kredsløb

Det samlede forsyningskredsløb ses på figur 11.3. PCB designet af kredsløbet ses på bilagsc-den: /PCB/forsyning. I det følgende dimensioneres de komponenter som skal bruges ikredsløbet. De komponenter der skal anvendes i forbindelse med de valgte buck convertere, erdimensioneret ud fra databladet for LM2575S-3.3 og LM2575S-5.5 [36], hvorfor dimensione-ringen af disse komponenter ikke beskrives yderligere. De pågældende komponenter er: LF1,LF2, DF1, DF2 samt CF1 til CF4. Værdierne af disse komponenter, ses på figur 11.3. Den resteren-de dimensionering samt beskrivelse af kredsløbet, gennemgås i det følgende.

Som gennemgået i kapitel 7 side 52, skal batterispændingen kunne måles af mikrocontrolle-ren, således styringen af H-broerne kan sørge for at motorerne ikke får en spænding højere end7,2 VRMS. Til at foretage målingen anvendes en ADC indgang på den valgte mikrocontroller.ADC’en på mikrocontrolleren har en reference værdi på 3,3 V [3, s.13], hvilket vil sige at spæn-dinger mellem 0-3,3 V kan repræsenteres. Hermed skal batterispændingen bringes ned såledesden aldrig overstiger 3,3 V, hvilket gøres med en spændingsdeling. Den maksimale batterispæn-ding er, ifølge afsnit 11.2.1 givet ved: 4,2 V ·3 = 12,6 V. Som en sikkerhedsmargin vælges detat dimensionere således der kan måles op til 13 V. Den ene modstand i spændingsdelingen, RF2,vælges til 1 kΩ. Hermed kan den anden modstand, RF1, beregnes:

3,3 =1

1+RF1·13 [V] (11.4)

RF1 =133,3−1 = 2.94 kΩ (11.5)

104 af 250 11. Forsyning

Page 105: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

11.4 Dimensionering af kredsløb

Charge

ADC_5.0VADC_VBAT

ON

ON/OFF 3.3V

ON/OFF 3.3V

ON/OFF 5.0V

ON/OFF 5.0V

Stik til H-broer 3,3 V buck converterStik til blutooth Stik til mikrocontroller

Spændingsdelinger til måling af forsyningsspændinger

Stik til encoder-kredsløb

5,0 V buck converter

Stik til batteri og laderSikring og ON-kontakt

U.F1 LM2575S-5.0U.F1 LM2575S-5.0

VIN1

OUT 2GND3

FB 4

ON

/OF

F5

D.F21N5822D.F21N5822

SW.F1

On/Charge

SW.F1

On/Charge

+ C.F4330 uF

+ C.F4330 uF

J.F6

VBAT4

J.F6

VBAT4

12

+ C.F3100 uF

+ C.F3100 uF

J.F8

BLUE_5.0V

J.F8

BLUE_5.0V

12

J.F7

ENC_5.0V

J.F7

ENC_5.0V

12

L.F2

330 uH

L.F2

330 uH

D.F11N5822D.F11N5822

J.F1

Battery

J.F1

Battery

12

U.F2 LM2575S-3.3U.F2 LM2575S-3.3

VIN1

OUT 2GND3

FB 4

ON

/OF

F5

+ C.F2330 uF

+ C.F2330 uF

+ C.F1100 uF

+ C.F1100 uF

F.F1

FUSE

F.F1

FUSE

L.F1

220 uH

L.F1

220 uH

R.F41kR.F41k

R.F21kR.F21k

R.F1

2.94k

R.F1

2.94k R.F3

2.94k

R.F3

2.94k

J.F5

VBAT3

J.F5

VBAT3

12

R.F510kR.F510k

J.F4

VBAT2

J.F4

VBAT2

12

J.F3

VBAT1

J.F3

VBAT1

12

+ C.F5470 uF

+ C.F5470 uF

J.F2

Charge

J.F2

Charge

12

R.F610kR.F610k

J.F9

CPU - FORSYNING

J.F9

CPU - FORSYNING

123456789

10

Figur 11.3: Kredsløbsdiagram over forsyningskredløbet.

ADC’en, i den valgte mikrocontroller, kan indstilles til at være enten 8 bit eller 10 bit [4]. Detvælges at opsætte den til 8bit, da dette findes tilstrækkeligt. Opløsningen som batterispændingenmåles med, kan dermed bestemmes ud fra:

Vopl =Vmax

2N (11.6)

Hvor:Vopl er den opløsning som spændingen kan måles med [V].Vmax er den maksimale spænding som kan måles [V].N er antal bits i ADC’en [-].

Hermed opnås:

Vopl =1328 = 0,051 V (11.7)

Opløsningen på 0,051 V anses som værende tilstrækkeligt. Det vælges desuden at gøre mikrocon-trolleren i stand til ligeledes at måle på 5 V forsyningen. Dette implementeres med en lignendespændingsdeling, hvormed samme skaleringsfaktor kan bruges, når spændingerne skal omreg-nes i mikrocontrolleren. Denne spændingsdeling implementeres gennem modstandende RF3 ogRF4, se figur 11.3. Dette skal ses som en ekstra tilføjelse som eventuelt kan anvendes på et sene-re tidspunkt, hvis det findes anvendeligt. Det ønskes ikke at kunne måle 3,3 V forsyningen, damikrocontrolleren ikke vil fungere hvis denne ikke er som ønsket.

11. Forsyning 105 af 250

Page 106: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

11.5 Verificering

Det er muligt at afbryde for outputspændingen af Buck converterne, via benene ON/OFF [36].Disse ben trækkes ud fra mikrocontrolleren, således denne har muligheden for at afbryde buckconverterne. Selvom det ikke er hensigtsmæssigt, at mikrocontrolleren afbryder forsyningen tilsig selv, skal dette igen ses som en ekstra tilføjelse, som eventuelt kan anvendes på et seneretidspunkt, hvis det findes anvendeligt. På figur 11.3 ses disse forbindelser som ’ON/OFF 5 V’ og’ON/OFF 3.3 V’. Da forsyningen er afbrudt hvis disse ben er høje, er modstandene RF5 og RF6

indsat som pull-down modstande, som sørger for at buck converterne ikke er afbrudt, medmindreder modtages et højt signal fra mikrocontrolleren.

For at gøre det muligt at lade på batteriet, uden at afmontere det, er kontakten SWF1 indsat.Denne kontakt virker desuden som en hovedafbryder til robotten. Kondensatoren CF5 er en af-koblingskondensator, til at minimere eventuel støj på batterispændingen. Der er desuden indsaten sikringsholder, FF1, således de resterende kredsløb beskyttes mod store strømme. Der er fireforsyningsstik til H-broerne, JF3 til JF6, således at hver enkelt H-bro kan tisluttes forsyning sepe-rat. Stikket JF9 er til mikrocontrolleren og JF7 samt JF8 er til de resterende kredsløb som anvenderhhv. 5 V og 3,3 V.

11.5 Verificering

I målejournalen K side 241 beskrives hvorledes verificeringen af forsyningen udføres. Formåleter at verificere hvorvidt forsyningen er i stand til at levere de spændinger den er dimensioneret til,selv ved store pludselige strømtræk, hvilket motorerne vil kunne forsage. I dette afsnit bringesbehandlingen af måleresultaterne. På figur K.2, K.3 og K.4, i målejournalen, ses resultaterne framålingerne.

I målejournalen frembringes et pludseligt strømtræk, igennem en modsand, på 8 A, altimensbåde batterispændingen, 5 V og 3,3 V niveauerne overvåges. Som det fremgår af målejournalensresultater bevirker det pludselige strømtræk, at batterispændingen falder med flere volt fra ca.12,6 V til ca. 10,2 V. Det store strømtræk har imidlertid ikke nogen mærkbar virkning på de toøvrige spændingssignaler.

Da det store strømtræk ikke påvirker de to lave spændingsniveauer, og batterispændingen desligeikke kommer i nærheden af den fatsatte minimumsgrænse, vurderes det at forsyningskredsløbetfungerer efter hensigten.

11.6 Delkonklusion

Efter konstruktion og test af forsyningskredsløbet, kan det konkluderes at dette fungerer somønsket. De opstillede krav overholdes, hvorfor kredsløbet kan anvendes som til at give forsyningtil de øvrige kredsløb i robotten.

106 af 250 11. Forsyning

Page 107: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Kapitel 12Hastighedsregulering

I dette kapitel ønskes det at beskrive en samlet model for robottens fremadrettede bevægelse.Herunder bestemmelse og design af de reguleringsformer, som garanterer at robotten bevægersig som beskrevet i kravsspecifikationen. I det næste kapitel gennemgås tilsvarende modellen forrobottens bevægelse i forhold til linien.

12.1 Model af robottens bevægelse

Figur 12.1 viser et overordnet blokdiagram over robottens bevægelse. Figuren beskrives i detfølgende for at forklare hvilke størrelser der ses de forskellige steder i diagrammet og for at giveet overblik over den samlede funktionsmåde. Overordnet set, består figuren af to reguleringer:En hastighedsregulering, som beskrives i dette kapitel, og en afstandsregulering som beskrives inæste kapitel.

Figur 12.1: Blokdiagram over motorstyringen

Figuren skal forstås på følgende måde: I højre side (lyserød) ses den virkelige verden. Her gælderfor robotten, at den har en given fysisk afstand til linien på gulvet, benævnt dout. Derudover gæl-

107 af 250

Page 108: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

12.2 Model for robottens hastighedsregulering

der, at robotten har en given fysisk hastighed i både venstre og højre side, benævnt vv,out og vh,out

hvor indeks ’h’ og ’v’ indikerer højre og venstre side af robotten mens indeks ’out’ indikerer, atder er tale om en virkelig fysisk størelse.

Målet med reguleringen er at kunne styre disse størrelser, således at robotten kører med en be-stemt hastighed samt har en bestemt afstand til linien. For at muliggøre dette er robotten udstyretmed sensorer. Robottens sensorer måler disse fysiske størrelser dout, vh,out og vh,out og hvoreftermålingerne omsættes til digitale værdier hhv. vc,målt og dmålt. Indekset ’c’ indikerer, at vc,målt erbilens centrums hastighed, bestemt ved vc,målt = 1

2 · (vh,målt + vv,målt). Omsætningen sker i de toblokke kaldet A/D, som ligger i grænsen mellem den analoge fysiske verden og den digitale ver-den.

Det lyseblå område er softwaresiden, dvs. det som foregår i mikrocontrolleren. Her ses to værdieryderst til venstre angivet dref og vc,ref. Disse to referenceværdier er de værdier, det ønskes at dout

og vc,out skal antage.

Fra de to referenceværdier fratrækkes de målte værdier for centrumhastighed og linieafstand. Deto differencer benævnes på figuren ve og de, hvor indeks ’e’ indikerer error, dvs. en fejlen mellemmålingen og referencen. Fejlen i afstanden til linien de omregnes til en bestemt hastighedsdiffe-rence ∆v, der skal påtrykkes motorerne på robottens to sider, for at korrigere robotten efter linien.Denne ∆v omregnes sammen med fejlen i centrumhastighed, ve, i omregningsblokken til en øn-sket hastighed på højre og en ønsket hastighed på venstre hjul. Disse er på figuren benænvt vh

og vv. Disse ønskede outputhastigheder påtrykkes robotten, dvs. de omsættes til spændinger påhøjre og venstre hjul uh og uv, som påtrykkes robottens motorer.

Ovenstående indledende forklaring, giver baggrund for den kommende analyse, hvor det ønskesat opstille to tilbagekoblingsmodeller, som er nødvendige for at styre robottens bevægelse, og fin-de de nødvendige overføringsfunktioner for de to modeller. De to modeller der ønskes opstilleter følgende:

1. En tilbagekoblet model for hvordan robottens samlede hastighed styres ud fra en spænding,der påføres motorerne. Dette gennemgås i dette kapitel.

2. En tilbagekoblet model for robottens afstand til linien ud fra en given hastighedsdifferenceimellem robottens to sider. Dette gennemgås i kapitel 13.

12.2 Model for robottens hastighedsregulering

I dette afsnit opstilles den tilbagekoblingsmodel der viser hvorledes robottens hastighed styres.Dette kan illustreres som på figur 12.2. Figuren er i virkeligheden blot en uddybning af den delfra figur 12.1, der har med hastighedsreguleringen at gøre. Bemærk at den lyseblå farve angiveren overføringsfunktion i den digitale verden, mens den lyserøde farve angiver en overførings-funktion i den virkelige fysiske verden. Bemærk desuden at blokdiagrammet er det samme forhjulene på både højre og venste side af robotten.

108 af 250 12. Hastighedsregulering

Page 109: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

12.2 Model for robottens hastighedsregulering

Figur 12.2: Tilbagekoblingssløjfe for hastighedsreguleringen.

Fremafkoblingen består af en model for motoren, der omsætter den tilførte spænding ua til en gi-ven hastighed vout. Denne overføringsfunktion kaldes Huv(s), hvor indeks ’uv’ betyder spænding(u) til hastighed (v). Tilbagekoblingen består af encoderne, som er placeret på hver motor, for atmåle omdrejningshastigheden. Overføringsfunktionen for encoderne kaldes Henc(s).

I fremadkoblingen ses desuden reguleringsblokken D1(s), der regulerer fejlen mellem den målteog den ønskede værdi, som beskrevet i indledningen. Formålet med dette afsnit er at dimensione-re netop denne blok, og derved sørge for at de, i kravsspecifikationen, stillede krav til stabilitet,stationær fejl og dynamik for systemet, alle bliver overholdt.

I det følgende opstilles de forskellige overføringsfunktioner. Først opstilles Huv(s) og Henc(s)hvorefter D1(s) dimensioneres.

Overføringsfunktionen Huv(s)

Det ønskes i det følgende at beskrive hvorledes robottens centrumhastighed vc afhænger af hvorstor en gennemsnitsspænding ua motorerne får. Dette gøres ved at opstille elektrisk model formotoren, en kraftmomentmodel for hjulet samt en kraftanalyse for hele robotten.

Den generelle model for en DC-motor er gennemgået i appendiks D på side 203. Figur 12.3 viserden elektriske model for en DC-motor, som den er gennemgået i appendikset.

Figur 12.3: Elektrisk model af motor.

I appendikset er desuden opstillet en mekanisk model for motoren. Følgende ligninger er opstilletfor at beskrive de to modeller:

12. Hastighedsregulering 109 af 250

Page 110: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

12.2 Model for robottens hastighedsregulering

Den elektriske model:

ua = Ra · ia +La ·diadt

+K ·ω [V] (12.1)

Hvor:ia er strømmen gennem motoren [A]ua er den påtrykte spænding [V]Ra er motorens indre modstand [Ω]La er motorens selvinduktans [H]K er motorens momentkonstant [N·m/A]ω er motorens rotors vinkelhastighed [rad/s]

Den mekaniske model:

Jω = τm− τb−bω− τc [N ·m] (12.2)

Hvor:J er motoraksens inertimoment [kg · m2]τm er momentet som motoren bidrager med [N·m]τb er moment fra ydre belastninger [N·m]b er en friktionskoeffecient [N· m / s]τc er motorens tørfriktion (Culoumbfriktion) [N·m]

Ovenstående ligning for de forskellige momenters påvirkning, kan illustreres som på figur D.5på side 207.

I ligning 12.2 er τm det moment, som skabes af selve motoren. Dette moment er givet ved strøm-men gennem motoren gange motorens momentkonstant, altså τm = K · ia. [22, s 349].

I samme ligning er er τb momentet fra ydre belastninger. Dette moment giver anledning til atrobotten vil køre fremad, idet det vil foresage en kraft Fmotor = τb/r på bilen.

Således kan ligning 12.2 skrives som:

Jω = K · ia−Fmotor · r− τc−b ·ω [N ·m] (12.3)

Hvor:r er radius på hjulet fastgjort til motoren [m]

Det bemærkes, at leddet τc i ligning 12.3 ikke er lineært afhænging af ω. For at kunne bestemmeden ønskede overføringsfunktion er det derfor nødvendigt at linearisere ligningen omkring etbestemt arbejdspunkt. Dog bemærkse ud fra appendiks D at størrelsen af tørfriktionen er megetmindre, end de andre størrelser i ligningen, hvorfor der uden fejl kan ses bort fra dette led.Dermed kan ligning 12.2 approksimeres til:

Jω≈ K · ia−Fmotor · r−b ·ω [N ·m] (12.4)

Den resulterende kraft på robotten Fres vil være kraften fra hver enkelt motor summeret, og der-efter fratrukket en vis friktionskraft på grund af gulvet. I de følgende ligninger ses der på den

110 af 250 12. Hastighedsregulering

Page 111: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

12.2 Model for robottens hastighedsregulering

samlede friktion for hele robotten, som alle motorerne bidrager til, frem for at se på friktionsbi-draget fra hver enkelt motor for sig. Sammenholdes det ovenstående med Newtons 2. lov, sommå gælde for robotten, ses at:

Fres = 4 ·Fmotor−bf · x = m · x [N] (12.5)

Hvor:bf er en samlet friktionskoefficient for alle motorerne [s·N/m]m er bilens masse [kg]x er bevægelsen af robotten [m]

Hvormed:x er hastigheden [m/s]x er accelerationen [m/s2]

Det antages nu at robottens to sider kører lige hurtigt, dvs. vh = vv, og at begge hastighederer konstante. Det antages desuden at robottens hjul ikke skrider. Dermed kan hastigheden afrobotten bestemmes blot ved at bestemme hastigheden for et enkelt hjul. Hastigheden for ethjul er givet ved v = r ·ω, som derfor også bliver robottens hastighed. Ovenstående ligning kandermed udviddes til:

4 ·Fmotor−bf · x = m · r · ω⇔ [N] (12.6)

Fmotor =r4(m · ω+bf ·ω) [N] (12.7)

Ligning 12.7 indsættes i ligning 12.4 og laplacetransformeres. Herved opnås:

J ·Ω(s) · s = K · Ia(s)−r2

4(m ·Ω(s) · s ·+bf ·Ω(s))+Ω(s) ·b⇔ (12.8)

Ia(s) = K(J ·Ω(s) · s+r2

4(m ·Ω(s) · s+bf ·Ω(s))+Ω(s) ·b (12.9)

Hvor:K = K−1 [A/m· N]

Ligning 12.1 kan ligeledes Laplacetransformeres:

Ua(s) = Ra · Ia(s)+La · Ia(s) · s+K ·Ω(s) (12.10)

Udtrykket for Ia(s) i ligning 12.9 indsættes i 12.10, hvormed der opnås:

Vc(s)Ua(s)

=G

s2 +α · s+β(12.11)

Hvor:G = r ·K/(La · J + 1

4 La · r2 ·m)α = (Ra · J + 1

4 Ra · r2 ·m+ 14 La · r2 ·bf +La ·b)/(La · J + 1

4 La · r2 ·m)β = (K2 + 1

4 Ra · r2 ·bf +Ra ·b)/(La · J ·+14 La · r2 ·m)

I ligning 12.11 er det igen udnyttet, at forholdet mellem vinkelfrekvens og hastighed netop erhjulenes radius r.

12. Hastighedsregulering 111 af 250

Page 112: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

12.2 Model for robottens hastighedsregulering

Af det ovenstående kan det altså konkluderes at:

Huv(s) =G

s2 +α · s+β[−] (12.12)

Hvor værdierne for konstanterne α, β og G er beskrevet ovenfor.

I tabel D.1 på side 208 er anført de forskellige motorparametre som er fundet eksperimentelt.Selve målejournalerne, hvori de forskellige parametre findes, er vedlagt på bilags CD’en, understien /maalejournaler.pdf. Desuden kendes bilens hjulradius samt masse, hvorfor para-metrene α, β og G kan bestemmes. Ud fra α og β kan det således bestemmes, hvor Huv(s) harsine to poler (se matlab/robot.m):

Huv(s) =G

s2 +α · s+β=

G(s− p1)(s− p2)

(12.13)

Hvor:p1 =−8,3 rad/s er den ene pol.p2 =−8,5E3 rad/s er den anden pol.

Idet der i kravspecifikationen er opstillet krav om at systemets samlede rise-time tr = 1 s (krav 19),kan systemets båndbredde beregnes ud fra nedenstående ligning [24], der gælder for 2. ordens-systemer.

tr ≈1,8ωn≈ 1,8 ·1,4

ωBW= 1⇔ (12.14)

ωBW = 2,52 rad/s (12.15)

Hvor:ωBW er systemets 3 dB båndbredde.ωn er systemets naturlige udæmpede frekvens.

Det bemærkes at systemets 3 dB båndbredde er ≈ 2,52 rad/s. Sammenholdes dette med place-ringen af de to poler i overføringsfunktioner 12.13 ses at kun den nedre pol p1 ligger i systemetsarbejdsområde, mens den øvre pol p2 ligger tre dekader længere oppe i frekvens. Idet der gælderfor systemets cross-over frekvens (ωc) at: |ωc|<< |p2|, kan ligning 12.13 tilnærmes:

Huv(s) =G

s2 +α · s+β=

G(s− p1)(s− p2)

≈ c1

s+ c2(12.16)

Hvor:c1 =−G/p2

c2 =−p1

Hermed er overføringsfunktionen Huv(s) opstillet, idet værdierne for både c1 og c2 kan bestem-mes ud fra de allerede kendte værdier af p1, p2 og G.

112 af 250 12. Hastighedsregulering

Page 113: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

12.2 Model for robottens hastighedsregulering

Overføringsfunktionen Henc(s)

I tilbagekoblingsdiagrammet på figur 12.2 tager encoderne en virkelig hastighed som input, oggiver en målt hastighed som output. Dermed bør overføringsfunktionen Henc(s) grundlæggendevære givet ved en omsætningskonstant Kenc. Hvis der optræder en tidsforsinkelse i encoderne,kan det være nødvendigt at tilføje et led af typen es·λ, hvor λ angiver tidsforsinkelsen. Detteskyldes at [11, s. 808]:

L [f(t−λ)] = F(s) · e−sλ [−] (12.17)

Hvor:L [∗] er laplacetransformen af ∗ [-]λ er tidsforsinkelsen, λ≥ 0 [s]

Imidlertid måles det at en encodermåling tager under 100 µs, hvorfor det antages at tidsforsinkel-sen kan ignoreres. Ydermere kan hastigheden skaleres rent softwaremæssigt, således at Kenc = 1.Dermed bliver:

Henc(s) = 1 (12.18)

Altså har systemet fra figur 12.2 unity feedback.

Overføringsfunktionen D1(s)

Regulatoren i tilbagekoblingen skal som sagt dimensioneres således at tilbagekoblingen somhelhed er stabil og således at alle krav til hastighedsreguleringen er overholdt. Opsummerendefra kravspecifikationen er kravene til hastighedsreguleringen sat til:

1. Overshoot Mp ≤ 20%

2. Rise time tr ≤ 1 s

3. Stationær fejl ess = 0 ved et påsat spring

Hvis de to overføringsfunktioner der indtil nu er fundet for systemet, sættes ind i figur 12.2, sesdet at systemet er af type0, hvis regulatoren blot er en propotinalitetskonstant. Dette skyldes atsystemet har unity-feedback og ingen poler i nul [11, s. 178]. For at overholde kravet om enstaitonær fejl på nul ved påsat spring, vides det at systemet som minimum skal være type1 [11,s. 178]. Dette kan opnås ved en proportinal-integral-regulator (PI-regulator), idet den har en poli nul. Et PI-reguleringsnetværk er beskrevet ved en overføringsfunktion [11, s. 186]:

D1(s) =KP · s+KI

s(12.19)

Hvor:KI og KP er konstanter

Regulatoren ses indsat i det endelige blokdiagram i figur 12.4.

12. Hastighedsregulering 113 af 250

Page 114: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

12.3 Design af hastighedsregulator

Figur 12.4: Tilbagekoblingssløjfen med indsatte overføringsfunktioner. Kenc er bestemt til 1, såsystemet har unity feedback.

12.3 Design af hastighedsregulator

Ved at indsætte alle konstanter for motoren i overføringsfunktionen for hastighedsreguleringen,udledt i ligning 12.16, fås:

Huv(s) =c1

s+ c2=

1.571s+6.584

(12.20)

Dette er dermed et teoretisk udtryk for omsætningen mellem spænding og hastighed for mo-toren. For at verificere dette plottes et steprespons for ovenstående teoretiske system, med etvirkeligt målt steprespons, opnået ved at sætte et spændingsstep på motorerne, og aflæse værdierfra encoderne. Plottet ses på figur 12.5. Her er de blå punkter hastighedsmålinger lavet med ro-bottens encodere, på et af robottens hjul, mens de røde punkter er tilsvarende for et andet hjul.Samtidigt er den sorte kurve stepresponset opnået via ligning 12.20. Bemærk at stepresponset afligning 12.20 er skaleret til samme input som ved målingerne.

Grafen viser at den fundne overføringsfunktion passer med de virkelige målinger, både hvadangår rise-time, og steady-state niveau, hvormed overføringsfunktionen Huv(s) er verificeret. Daden fundne overføringsfunktion for motoren er verificeret, kan den anvendes til at dimensionereoverføringsfunktionen for regulatoren. Ud fra overføringsfunktionen Huv(s) ses at der er en pol i|ω|= 6,584 rad/s.

PI-regulatoren kan dimensioneres ud fra overføringsfunktionen 12.20. PI-reguleringen D1(s) =(Kp · s + KI)/(s), placerer en pol i 0 og et nulpunkt i −KI/KP. Ved at placere nulpunktet tæt påsystemets pol i 6,584 rad/s, vil denne maskeres, mens den nye pol i 0 gør systemet til et type1, som ønsket. Dette gør at fasen kun vil dreje 90 i alt, hvorved der ikke vil være overshoot påsystemet. Altså vil KI/KP ≈ 6,584 opfylde krav til både stationær fejl og overshoot.

Ud over forholdet mellem de to konstanter, kan der også justeres på størrelsen af dem. Jo stør-re de to konstanter er, jo større DC-gain vil systemet have. Jo større DC-gain, jo større bliverbåndbredden også, og jo større båndbredde jo mindre rise-time [24]. Dog kan de to værdier ikkevælges vilkårligt store, for at få så lille en rise-time som muligt. Dette skyldes at båndbredden afsystemet er omvendt proportional med rise-time, hvilket fremgår af ligning 12.14.

114 af 250 12. Hastighedsregulering

Page 115: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

12.3 Design af hastighedsregulator

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

Tid (sec)

Has

tigh

ed(m

/s)

Figur 12.5: Der påsættes et step på alle robottens hjul, mens hastigheden af højre og venstrehjul logges via robottens encodere.

Af kilde [11, s. 20] fremgår at følgende forhold skal overholdes:

ωs

ωBW> 20 (12.21)

Hvor:ωs er samplefrekvensen [rad/s]

Dette betyder ultimativt, at jo større værdier for de to konstanter Kp og KI der vælges, jo hurtigereskal der samples for at ligning 12.21 er overholdt, hvilket er en nødvendighed når regulatorensenere hen skal diskretiseres. Ved at vælge KP = 4 og KI = 32 fås PI-reguleringen:

D1(s) =Kp · s+KI

s=

4 · s+32s

(12.22)

Den samlede closed-loop overføringsfunktion for figur 12.4 fås dermed til:

T(s) =Huv(s) ·D1(s)

1+Huv(s) ·D1(s)=

6,285s+50,28s2 +12,868s+50,272

(12.23)

Stepresponset, der kan konstrueres på baggrund af T(s), er vist med den røde kurve på figur 12.6.Det ses at der at der så godt som ingen overshoot er. Desuden ses at steadystatefejlen er nul og atrisetime er ca. 0,35 s. Således er alle de anførte krav opfyldt. Sammen med T(s) er også plottet enmåling på motorerne, hvilket beskrives i det følgende afsnit. Bemærk at stepresponset ligesomfør er til at passe med målingerne.

12. Hastighedsregulering 115 af 250

Page 116: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

12.4 Verificering af regulator

12.4 Verificering af regulator

For at verificere den fundne regulator, skal den implementeres på mikrocontrolleren, hvilket kræ-ver at D1(s) diskretiseres til D1(z). Til diskretiseringen anvendes Tustins metode [11, s. 607].Samplingsfrekvensen er valgt til 128 Hz, da denne frekvens både er bekvem at arbejde med ihenhold til processoren, og ligeledes overholder de krav der er opstået i konstruktionen af enco-derkredsløbet, om at samplingen skal være minimum 125,5 Hz.

Som beskrevet i ligning 12.21, skal der være en faktor 20 mellem båndbredde og samplefre-kvens. Dette er nødvendigt for at minimere den ændring der opstår i systemet, mellem hver gangregulatoren griber ind. Med fs = 128 Hz, dvs. ωs = 804,2rad/s, opnås:

ωs

ωBW=

804,22,52

= 319,1 > 20 (12.24)

Dette viser at den valgte samplingsfrekvens er så høj, at reguleringen vil kunne reagere hurtigti forhold til systemet. Dog skal det nævnes at der også er en ulempe ved at have en meget højsamplingsfrekvens. En meget høj samplingsfrekvens kan foresage at polerne i tilbagekoblings-systemet kommer meget tæt på 1 efter diskretisering, hvilket kan give problemer rent implemen-teringsmæssigt [25]. Dog arbejdes der i reguleringen videre med frekvensen 128 Hz, netop pågrund af de tidligere stillede krav om en samplefrekvens på mindst 125,5 Hz, og at det desudenikke er givet at en høj samplingsfrekvens nødvendigvis giver problemer.

Diskretiseringen af regulatoren gennemføres i matlab, og giver:

D1(s) =4 · s+32

sTustin→ [−] (12.25)

D1(z) =Y(z)X(z)

=4,125 · z−3,875

z−1[−] (12.26)

Den diskretiserede overføringsfunktion, omskrives til den tilsvarende differensligning, som deter muligt at implementere på mikrocontrolleren. Dermed opnås:

u[n+1] = 4,125 · e[n+1]−3,875 · e[n]+u[n] [−] (12.27)

Til ovenstående omregning er anvendt regneregler fra [10, s. 104].

Ligning 12.27 giver direkte en algoritme til hastighedsreguleringen og skal forstås på følgendemåde:

På figur 12.4 ses PI-reguleringen i dens kontekst. Dens input er differencen mellem det ønskedesignal samt det aktuelle målte signal. Dette input er benævnt e for error i ligning 12.27. Out-puttet er spændingsstyresignalet til motoren, hvilket er benævnt u i samme ligning. Indekset nindikerer samplenummeret, og med fs = 128 Hz vil der således være 7,8125 ms mellem hvertn. Således viser ligning 12.27 hvad det næste signal på motoren skal være, på baggrund af detsidste signaloutput, samt de to sidste differencer mellem ønsket og målt output.

116 af 250 12. Hastighedsregulering

Page 117: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

12.4 Verificering af regulator

Dynamik

Reguleringen implementeres i software, og testes. Robotten sættes til at lave et hastighedsstep,altså køre på jorden og accelerere fra 0 m/s op til en 0,57 m/s, imens den opstillede algoritmeregulerer hastigheden. Under kørsel logges hastigheden på to af robottens hjul og plottes medhhv. røde og blå prikker i samme figur som stepresponset for T(s), dvs. på figur 12.6. Figurenviser at den faktiske hastighed er meget tæt på den forventede hastighed, og desuden passerstigetiderne også godt overnes, hvorved hastighedsreguleringens dynamik er verificeret.

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

0.1

0.2

0.3

0.4

0.5

Tid (sec)

Has

tigh

ed(m

/s)

Figur 12.6: Stepresponse for hastighed udført med PI-regulation. De blå punkter er målinger afstepresponset, mens den røde linie er stepresponset jf. den opstillede model, som ses i ligning12.23

Steady state

For at verificere hastighedsreguleringens stationære tilstand laves en test, hvor robotten sættes tilat køre med konstant hastighed 0,5s m/s over en bakke. Mens robotten kører fra fladt gulv ogop på rampen logges hastigheden. Plottet ses på figur 12.7. Figuren viser at robottens hastighedstabiliserer sig på de 0,5 m/s mens den kører på gulvet efter den ventede risetime på ca. 0,35 s.Robotten starter opkørsel på rampen efter ca. 2,8 sekunder. Når opkørselen startes ses at hastig-heden falder kort, men reguleres efterfølgende op på de 0,5 m/s, og stabiliserer sig under restenaf opkørslen. Dette viser at hastighedsreguleringen også stationært opfører sig som forventet ogønsket.

12. Hastighedsregulering 117 af 250

Page 118: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

12.5 Delkonklusion

0 1 2 3 4 50

0.1

0.2

0.3

0.4

0.5

tid [s]

hast

ighe

d [m

/s]

Figur 12.7: Robottens hastighed når den kører med hastighedsregulering fra gulv til rampe.

12.5 Delkonklusion

I dette afsnit er designet og verificeret en hastighedsregulator med følgende egenskaber:

• Risetime tr ≈ 0,35 s

• Overshoot Mp ≈ 0

• Steady state error på spring ess ≈ 0

Ved at sammenligne resultaterne opnået igennem verificeringen af den udledte reguleringsalgorit-me, med de stillede krav, ses at alle disse er overholdt. Dermed vurderes hastighedsreguleringenat være konstrueret på en hensigtsmæssig, og anvendelig måde.

Næste skridt er at konstruere en afstandsregulering, der sørger for at robotten bliver på linien,hvilket som nævnt sker i det følgende kapitel.

118 af 250 12. Hastighedsregulering

Page 119: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Kapitel 13Afstandsregulering

Som beskrevet i forrige kapitel, består det samlede tilbagekoblingssystem for robotten af to se-parate systemer: Et for hastighedsregulering, og et for regulering af afstanden til linien. I sidstekapitel blev hastighedsreguleringen gennemgået, og i dette kapitel gennemgås afstandsregule-ringen. Ligesom i sidste kapitel opstilles og analyseres først en model, hvorefter en regulatoropstilles, dimensioneres og diskretiseres, således at der kan bestemmes en algoritme for regule-ringen, som afslutningsvis verificeres.

13.1 Model for robottens afstandsregulering

Det ønskes i det følgende at beskrive hvorledes robottens afstand til linien vil ændres, alt efterhvilken difference i hastighed, der sættes på hjulene af højre hhv. venstre side af robotten. Regu-leringen af robottens afstand til linien følger figur 13.1, der er et tilbagekoblingsblokdiagram forreguleringen af afstanden til linien. Indholdet og opbygningen af figuren beskrives i det følgende.

Som det ses af figuren, benytter afstandsreguleringen sig af hastighedsreguleringen, som blev be-skrevet i sidste kapitel. Dvs. hele den hastighedsregulering, der blev konstrueret i sidste kapitel,indgår som en del af reguleringen, der opstilles i dette kapitel. Hastighedsreguleringen alene sessom blokdiagram i figur 12.2 på side 109. Som det ses på figur 13.1, er hastighedsreguleringenindsat for både højre og venstre hjul. Afstandsreguleringen sidder således ’udenpå’ de to hastig-hesreguleringer. Afstandsreguleringen beskrives overordnet i det følgende. Afstandsreguleringenskal sørge for at holde robotten over linien. Afstanden til linien betegnes d og afhænger af hastig-hedsforskellen på højre og venstre hjul. Derfor er det vist på figur 13.1 at forskellen i hastighed∆v, dvs. vout,v minus vout,h, er input til bevægelsesmodellen, der beskriver hvorledes robotten vilbevæge sig afhængigt af denne hastighedsdifference. Denne bevægelsesmodel betegnes H∆vd.

Afstanden til linien måles af liniesensoren. Liniesensorens overføringsfunktion kaldes Hlin(s) ogoutputtet fra denne er, efter det digitaliseres, dmålt. Forskellen på den ønskede afstand til liniendref og den målte afstand til linien dmålt er det error-signal, som regulatoren tager som input.Outputtet af hastighedsreguleringsnetværket er en ønsket difference i hastighed på . Dvs. af-standsreguleringen dikterer hvad differencen i hastighed på de to hjul skal være, for at robotten

119 af 250

Page 120: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

13.1 Model for robottens afstandsregulering

vil følge linien. Dette benyttes i den tidligere udviklede hastighedsregulering. Denne tager sominput den ønskede hastighed minus centrumhastigheden. Desuden fratrækkes hastighedsregule-ring i højre side halvdelen af afstandsreguleringens output mens hastighedsreguleringen i venstreside adderes med halvdelen af afstandsreguleringens output, jf. figur 13.1.

Den overordnede virkemåde kan således beskrives således: Hastighedsreguleringen vil søre for atcentrumhastigheden af robotten er lig med reference-centerhastighedensamtidigt samtidigt medat afstandsreguleringen vil sørge for at afstanden til linien er lig med referenceafstanden. I detfølgende opstilles modeller for Hlin(s) og H∆vd(s), hvorefter regulatoren D2(s) kan dimensione-res.

Overføringsfunktionen for fremadkoblingen betragtes i to dele: Først findes et udtryk for af-standen til linien d i forhold til hastighedsforskellen mellem højre og venstre side, givet ved:∆v = vh− vv. Denne overføringsfunktion er på figur 13.1 betegnet ’Bevægelsesmodel’. Overfø-ringsfunktionen for bevægelsesmodellen er givet ved forholdet:

H∆vd(s) =D(s)

∆V(s)(13.1)

Hvor:D(s) er den laplacetransformerede afstand.∆V(s) er den laplacetransformerede hastighedsforskel.

Efterfølgende bestemmes hvorledes de to hastighedsreguleringer kan betragtes som en samletblok, med en enkelt overføringsfunktion. Når dette er udført bestemmes og verificeres den egent-lige regulator D2(s).

Figur 13.1: Tilbagekoblingsdiagram for reguleringen af robottens afstand til linien. Blå betydersoftware, og rød betyder den virkelige verden.

120 af 250 13. Afstandsregulering

Page 121: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

13.1 Model for robottens afstandsregulering

Overføringsfunktionen H∆vd(s)

Som det er forklaret i appendiks C, har platformen fire hjul, der ikke kan ændre vinkel i forholdtil robotten. For at simplificere analysen af robottens afstand til linien, undersøges først en modelfor en platform med kun to hjul, hvor hastigheden på hvert hjul er kendt. Derefter ses på en modelmed fire hjul, stadig hvor hastighederne er kendte.

Figur 13.2: En mekanisk platform med to hjul, i forhold til linien som skal følges.

På figur 13.2 ses en tegning af en mekanisk platform med to hjul, og den linie som den skalfølge. Som det ses er platformens centrum c placeret et stykke væk fra linien. Den vinkelretteafstand mellem linien og punktet c betegnes d. På hver side af platformen er der et hjul, som haren given hastighed. Ud fra hjulenes hastigheder, er det muligt at bestemme afstanden d som enfunktion af tiden dvs. d(t). Hastigheden for det venstre hjul betegnes vv(t) og den højre vh(t).Ved at placere figur 13.2 i et xy-koordinatsystem, hvor linjen lægges på y-aksen, vil afstand dsvare til x-koordinatet for punktet c, hvilket skrives:

d(t) = cx(t) [m] (13.2)

Punktet cx ligger midt på linien mellem venstre og højre hjul, hvor de to hjuls x-koordinaterkaldes henholsvis svx og shx. Sammenhængen kan beskrives som i ligning 13.3:

cx(t) =svx(t)+ shx(t)

2[m] (13.3)

Den fysiske sammenhæng imellem hastighed og sted er beskrevet i ligning 13.4. Ved at integrerepå begge sider fås 13.5, som er den tilbagelangte afstand over tid.

vv(t) =ddt

s(t) [m/s] (13.4)

s(t) =∫

v(t)dt [m] (13.5)

Til bestemmelse af hjulenes x-koordinat, skal x-komposanten af hastighedsvektoren findes. Stør-relsen på denne er bestemt dels af længden på vektoren selv, og dels af vinklen imellem vektorenog x-aksen. Det ses på figur 13.2 at når vinklen imellem platformen og linien er nul, vil vinklen

13. Afstandsregulering 121 af 250

Page 122: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

13.1 Model for robottens afstandsregulering

imellem hastighedsvektoren og x-aksen være 90. Når platformen drejer imod uret vil vinklenimellem linien og platformen stige. Det sammen gælder for vinklen imellem hastighedsvekto-ren og x-aksen. Derfor skal der ligges 90 til platformens vinkel, for at finde hastighedsvektorensvinkel. Derved fremkommer ligning 13.6. Størrelsen på x-koordinat bliver bestem af ligning 13.7for det vestre hjul og på samme måde bestemmes det højre hjuls ligning 13.8;

vvx(t) = vv(t) · cos(θ(t)+90) [m/s] (13.6)

Bemærk at:cos(θ + 90) = -sin(θ)

Dermed fås

svx(t) =∫

vv(t) · (-sin(θ(t)))dt [m] (13.7)

shx(t) =∫

vh(t) · (-sin(θ(t)))dt [m] (13.8)

Ved at indsætte udtrykkene for x-koordinaterne, dvs. 13.7 og 13.8 i 13.3, fås et udtryk for hvor-ledes centrum cx(t) bevæger sig, og dermed hvor stor afstand der er til linien. Dette udtryk ses iligning 13.9.

d(t) =∫

vv(t) · (−sin(θ(t)))dt +∫

vh(t) · (−sin(θ(t)))dt2

+d0 [m] (13.9)

Hvor:d0 er startafstanden [m]

Figur 13.3: Figur af hvordan motor hastighederne ændre vinklen på en mekanisk platform medto hjul.

Det ses udfra ligning 13.9, at for at bestemme bevægelsen af cx(t), skal udtrykket for ændringenaf vinklen for platformen bestemmes. Udtrykket findes ved hjælp af figur 13.3. Det ses på figurenat hvert hjul bidrager til en ændring i vinklen. Det vælges at regne bevægelsen mod uret for po-sitiv. Afstanden imellem hjulene, dvs. bredden af køretøjet betegnes δ. Denne størrelse anvendestil at finde ændringen i vinklen omkring punktet c.

122 af 250 13. Afstandsregulering

Page 123: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

13.1 Model for robottens afstandsregulering

Den fysiske sammenhængen imellem hastigheder og ændringen af vinklen, er beskrevet ved lig-ning 13.10. Denne ligning er i 13.11 omskrevet til at give et udtryk for vinklen som funktion aftid. Punktet hjulet drejer omkring er i dette tilfælde det modsatte hjul.

v(t) = r · dθ(t)dt

[m/s] (13.10)

θ(t) =∫ v(t)

rdt [−] (13.11)

Hvor:r er afstanden til det punkt som den drejer rundet om [m]θ(t) er vinklen []v(t) er hastigheden [m/s]

Summen af de to hjul bidrager til en ændring af vinkelen for platformen, udfra punktet C. Detteer beskrevet i ligning 13.12.

θ(t) =∫ vv(t)

-δdt +

∫ vh(t)δ

dt +θ0 =∫ vh(t)−vv(t)

δdt +θ0 [] (13.12)

Hvor:θ0 er startvinklen

Som sagt er der ind til videre blevet set på en model med kun to hjul. En tilsvarende modelmed fire hjul, er illustreret på figur 13.4. Idet længden af platformen, hjulene er fastgjort til, ikkeændrer sig, er der en konstant afstand mellem hjulene på hver side af platformen, på samme mådesom afstanden mellem de to sider også er konstant. At afstanden mellem hjulene på samme sideer konstant, medfører at de skal have samme hastighed, dvs.:

vv1 = vv2 = vv (13.13)

vh1 = vh2 = vh (13.14)

Hvis hastigheden af hjulene på samme side er forskellig, vil der være et hjul der enten laverhjulspin, eller bliver skubbet hen over overfladen der køres på. Dette er uønsket, da det vil van-skeliggøre beregning af platformens afstand til linien. Derfor skal der sørges for at de to motorerder sidder på samme side, roterer lige hurtigt. Med denne overvejelse, kan modellen med fire hjulbeskrives ud fra modellen for to hjul. Dette betyder at platformens bevægelse omkring centrum,kan beskrives med ligningerne fra modellen med to motorer.

13. Afstandsregulering 123 af 250

Page 124: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

13.1 Model for robottens afstandsregulering

Figur 13.4: Figur af hvordan motor hastighederne ændre vinklen på en mekanisk platform medfire hjul.

Det endelige udtryk for afstanden til linien d(t), fås ved at indsætte udtrykket for ændringen afvinklen 13.12 i udtrykket for afstanden til linien 13.9. Derved bliver udtrykket som i 13.16:

d(t) = -12

∫vv(t) · sin

(∫ vh(t)−vv(t)δ

dt)

dt−

12

∫vh(t) · sin

(∫ vh(t)−vv(t)δ

dt)

dt [m] (13.15)

d(t) =∫

sin(

∆v(t)δ

)dt ·

∫vc(t)dt [m] (13.16)

Hvor:vc(t) = 1

2(vv(t)+ vh(t)) er robottens centrums hastighed [m]∆v(t) = vv(t)− vh(t) er robottens hastighedsforskel fra højre til venstre hjul

Fortegnet på d(t) i ligningen13.16 er en definitionssag. I ligningen ses, at afstanden til linien ddefineres som positiv, når robotten er på højre side af linien (som på figur 13.3). Som det fremgårer startvinklen i de sidste par ligninger, sat til nul.

Det ønskes at lave en approximation af denne model og samtidig at føre denne over i Laplace-domænet. Dette gøres ved først at betragte ligning 13.16:

d(t) =∫

sin(

∆v(t)δ

)dt ·

∫Vc(t)dt ≈

∫∆v(t)

δdt ·

∫Vcdt [m] (13.17)

I ligning 13.17 er lavet to tilnærmelser. For det første betragtes hastigheden som værende kon-stant vc, altså ikke en funktion af tiden. Dette er en god tilnærmelse, idet det netop er målet atsørge for at robotten bevæger sig med konstant hastighed.

Den anden tilnærmelse er at vinkelen til linien er meget lille, hvor tilnærmelsen x = sin(x) gæl-der. Denne tilnærmelse er ligeledes acceptabel, idet robotten konstant vil førsøge at få vinkelentil at være nul, hvorfor den ikke vil variere meget fra dette.

124 af 250 13. Afstandsregulering

Page 125: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

13.1 Model for robottens afstandsregulering

Ligningen 13.17 er nu lineær, hvorved den kan føres over i laplacedomænet og finde en overfø-ringsfunktion for afstand til linien i forhold til differensen af hastigheder på hjulene:

D(s) =∆V(s)

δ · s· Vc

s⇔ [m] (13.18)

H∆vd(s) =D(s)

∆V(s)=

Vc

δ · s2 [s] (13.19)

Hermed er der bestemt en model for hvordan en hastighedsforskel på de to sider, vil bevirke enbestemt afstand til linien. Det ville være ønskeligt her at lave et steprespons i virkeligheden, for atse om robottens afstand til linien, rent faktisk følger den opstillede model. Imidlertid er det ikkemuligt at lave et step i hastigheden, hvorfor modellen først kan verificeres på et senere tidspunkt.

Overføringsfunktionen for hastighedsregulering

Som det fremgår af figur 13.1 indgår hastighedsreguleringen som helhed, i tilbagekoblingssløj-fen for afstandsreguleringen. Det er derfor nødvendigt at få opstillet en overføringsfunktion forden samlede hastighedsregulering, således at denne kan repræsenteres med blot en enkelt blok idiagrammet fra figur 13.1. Denne overføringsfunktion opstilles i det følgende.

Blokdiagrammet for hastighedsreguleringen ses i figur 12.4. Idet alle overføringsfunktioner iblokdiagrammet er bestemt, kan hastighedsreguleringens closed loop overføringsfunktionen Tv(s)bestemmes. Den bestemmes ud fra:

Tv(s) =D1(s) ·Huv(s)

1+D1(s) ·Huv(s) ·Hlin(s)[−] (13.20)

Ved at indsætte de værdier, som er fundet i forrige kapitel, opnås:

Tv(s) =Vout

Vref=

6,285s+50.28s2 +12,87s+50,28

(13.21)

Tv(s) er som beskrevet lukketsløjfeoverføringsfunktionen for hastighedsreguleringen, med in-deks ’v’ for hastighed. Funktionen beskriver hvordan outputhastigheden reguleres når der påsæt-tes en given hastighedsreference. Idet der i laplacedomænet gælder superposition, betyder 13.21at der også gælder:

T∆(s) =∆Vout

∆Vref=

Vh, out−Vv, out

Vh,ref−Vv,ref=

6,285s+50.28s2 +12,87s+50,28

(13.22)

Hvor T∆(s) er overføringsfunktionen, for hastighedsreguleringen af differencen mellem robot-tens to sider. Denne overføringsfunktion fortæller hvorledes differencen i referencehastighed påhøjre i forhold til venstre side af robotten, vil give en fysisk forskel i hastighed på højre og ven-stre side af robotten.

For at verificere denne model påsættes en forskel i referencehastigheden for højre og venstre sideaf robotten. Stepresponsene udføres ved at robotten først kører fremad med en konstant hastig-hed, hvorefter den skifter således at det ene hjul sættes til at køre hurtigere og det andet hjul til atkøre tilsvarende langsommere. Dette gøres via hastighedsreguleringen. Der udføres seks af den-

13. Afstandsregulering 125 af 250

Page 126: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

13.1 Model for robottens afstandsregulering

ne slags målinger hvor der påtrykkes differencer i referencehastigheden på hhv. 0 m/s, 0,1 m/s,0,2 m/s, 0,3 m/s, 0,4 m/s og 0,5 m/s. Disse seks steprespons plottes og ses på figur 13.5. Herer plottene med farver de målte differencer i hastighed, mens de sorte kurver er den forventedehastighedsforskel ud fra overføringsfunktion 13.22, ved den givne difference i referencehastig-heden.

0 0.5 1 1.5 2 2.5 3 3.5 40

0.1

0.2

0.3

0.4

0.5

Tid (sec)

Has

tigh

edsf

orsk

el(m

/s)

Figur 13.5: Figuren viser hvorledes hastighedsregulatoren reagerer, når den får en difference ihastighed som input.

Det ses at der i steady state, for alle seks målinger, opnås en hastighedsforskel, som stemmeroverens med det ønskede (den sorte kurve), hvilket er forventeligt idet hastighedsreguleringenvil sørge for dette. Dog bemærkes at risetime for målingerne ikke er de 0,35 s, som tidligere be-regnet, og som den sorte kurve dermed viser. Det ses at alle kurverne stiger meget langsommere,end den opstillede overføringsfunktion beskriver. Altså er modellen i ligning 13.22 ikke en godbeskrivelse af virkeligheden med hensyn til systemets dynamik.

På figur 12.6 er hastighedsreguleringen for kørsel ligeud allerede verificeret, hvor risetime ogsåstemmer overens med modellen. Grunden til at robotten opfører sig anderledes end forventet nårder påtrykkes en hastighedsforskel imellem robottens to sider, er sandsyneligvist fordi hjulene istørre grad begynder at skride på tværs af kørselsretningen. Dette forstærkes jo større hastigheds-forskel der er på robottens to sider, dvs. jo skarpere vil den svinge. Herved vil hjulene opleveen større friktion og kan derfor ikke accelerere så hurtigt som modellen antager. For at beskrivebevægelsen bedre omskrives overføringsfunktionen 13.22 til et førsteordensfilter, som matcherde målte steprespons fra figur 13.5 bedre. Denne overføringsfunktion bliver:

T∆(s) =∆Vout

∆Vref=

c1

s+ c2=

3,268s+3,215

(13.23)

126 af 250 13. Afstandsregulering

Page 127: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

13.1 Model for robottens afstandsregulering

Hvor værdierne af de to konstanter c1 og c2, er bestemt ved at finde de værdier, der giver et plotsom ligger så tæt på målingerne, som muligt. Altså er T∆(s) bestemt blot ved at tilpasse en kurve,således den stemmer overens med målingerne i figur 13.5. Ligningen 13.23 skal forstås således,at hvis der påsættes en ønsket hastighedsdifference, ∆Vref på hastighedsregulatorerne, vil detteresultere i at hastighedsforskellen vil blive ∆Vout.

Produktet af de to overføringsfunktioner H∆vd(s) og T∆(s) benævnes i det følgende G(s).

Overføringsfunktionen Hlin(s)

Liniesensoren er ligesom encoderne, blot en sensor der omsætter en virkelig værdi, til en måltværdi. Ligesom for encoderne gælder derfor også at overføringsfunktionen er givet ved:

Hlin(s) = Klin · e−s·λ [−] (13.24)

Forsinkelsen λ kan imidlertid måles til under 100 µs, hvorfor tidsforsinkelsen antages at mistesin indflydelse. Desuden skaleres afstanden softwaremæssigt, således at Klin = 1Dermed bliver:

Hlin(s) = 1 (13.25)

Hvormed systemet har unity feedback.

Overføringsfunktionen D2(s)

Regulatoren i tilbagekoblingen skal som sagt dimensioneres således at tilbagekoblingen som hel-hed er stabil og således at alle krav til hastighedsreguleringen er overholdt. Kravene opsummeresfra kravspecifikationen:

1. Overshoot Mp ≤ 25%, krav 3.2

2. Rise time tr ≤ 3 s, krav 19

3. Stationær fejl ess = 0 ved et påsat spring, krav 14

Det første af kravene medfører at systemet skal have en fasemargin på PM ≥ 40, i henhold tilkilde [11, s. 118] og [24]. På figur 13.6 ses tilbagekoblingsnetværket for afstandsreguleringen,med regulatoren D2(s) samt de fundne overføringsfunktioner for bevægelse og hastighedsregu-lering i fremadkoblingen, og liniesensoren i tilbagekoblingen. Regulatoren D2(s) skal sørge forat holde systemet stabilt. Denne dimensioneres i det følgende. Regulatoren udformes i to omgan-ge. Først undersøges det hvilken regulator der er nødvendig for at systemet er stabilt. Herefterdimensioneres regulatoren efter de, i kravspecifikationen, stillede krav.

Ud fra den allerede fundne overføringsfunktion G(s), kan reguleringen bestemmes, idet udlednin-gen af den kombinerede overføringsfunktion G(s), gør det muligt at gentegne figur 13.1, såledesden fremstår på standardform. Dette ses på figur 13.6.

13. Afstandsregulering 127 af 250

Page 128: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

13.1 Model for robottens afstandsregulering

Figur 13.6: Tilbagekoblingssløjfen med indsatte overføringsfunktioner

Det bemærkes umiddelbart, at overføringsfunktionen G(s) vil give et fasedrej på mellem -180 og-270 idet der er 3 poler, hvoraf de to ligger i nul. Dermed er kravet til faseargin ikke overholdt.Plottes G(s) i et Nyquist-plot [11, s. 345], fås plottet vist figur 13.7.

Figur 13.7: Nyquistplot over den uregulerede fremadløbende gren G(s).

Af nyquistplottet ses det at punktet (-1,0) omkrandses to gange med uret. Derfor er systemetustabilt og har to poler i højre halvplan. Systemet kan ikke stabiliseres med en PI-regulator,ligesom tildligere, da en en sådan ikke vil kunne løfte fasen. Istedet betragtes en anden regulatortype, kaldet et lead-netværk. Leadnetværket har formen [11, s.366]:

D2(s) = KlTz · s+1Tp · s+1

, Tp < Tz (13.26)

Hvor:Kl er DC-gainet af lead netværketTz bestemmer hvor leadnetvækets nulpunkt er

128 af 250 13. Afstandsregulering

Page 129: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

13.2 Design af afstandsregulator

Tp bestemmer hvor leadnetvækets pol er

Leadnetværket har således pol i -1/Tp og nulpunkt i -1/Tz. Ved at Tp < Tz vil nulpunktet kommefør polen. Leadnetværket kan dimensioneres til at give et faseløft på 90 ved en give frekvens.Ved at placere dette faseløft ved lav frekvens, hvor fasedrejet endnu ikke er faldet væsentligtunder −180, kan der opnås at få en fasemargin på 40 som ønsket.

13.2 Design af afstandsregulator

Ved at indsætte tal i ligning 13.19 samt gange dette med ligning 13.23, fås et udtryk for G(s):

G(s) = T∆(s) ·H∆vd =13,07

s3 +3,22s2 (13.27)

De værdier der anvendes for at opnå ovenstående funktion, er centrumhastigheden Vc = 1 m/s ogbredden af bilen, δ = 0,25 m. Denne bredde er målt imellem midten af de to hjul.

Af ligning 13.27 fremgår det at der er to poler i nul, og en enkelt pol i s = -3,22. For at finde ud afhvorledes reguleringen skal dimensioneres, udformes et bodeplot af G(s). Dette ses på figur 13.8.For i første omgang at få systemet stabilt, skal leadnetvæket dimensioneres således at fasen løftesop ved en frekvens, hvor det endelige fremadløbende system har forstærkningen er 0 dB. Dettegøres ved at indsætte leadnetvækets pol i tilpas høj frekvens, så den ikke har indflydelse på syste-mets fase ved frekvensen hvor systemet har forstærkning 0 dB. Derudover indsættes nulpunktetved en lavere frekvens, lavere end systemets pol i 3,22 rad/s . Ved en tilpas lav frekvens er fasenkun drejet omkring -180 hvorved det ved indsættelse af et nulpunkt er muligt at hæve fasen,således der fås en fasemargin på 40 eller højere.

Ud over at designe leadnetvæket, således at fasen hæves ved denne lave frekvens, skal gainetdesuden tilpasses via konstanten Kl, således forstærkningen går gennem 0 dB ved samme fre-kvens som faseløftet placeres. Herved kan stabilitet opnås.

Til at dimensionere leadnetværket benyttes metode beskrevet i kilde [11, s. 375]. Metoden beståri at der kun ændres på tre parametre: Hvor meget faseløft leadnetværket skal give der hvor detgiver mest løft φmax, til hvilken frekvens dette faseløft skal placeres ved ωmax og hvilket gain heleleadnetværket totalt set skal have Kl. Ud fra figur 13.8 ses at faseløftet skal placeres ved en fre-kvens omkring 2,4 rad/s, og at dette faseløft skal være ca. 75. Denne frekvens er så lav, at fasenikke er drejet for meget til at den ønskede fasemargin kan opnås. Desuden ses at forstærkningenskal nedjusteres, således at forstærkningen, for det regulerede system, går gennem 0 dB.

Disse værdier benyttes som et udkast til et leadnetværksdesign. Hvis variabelnavnene fra lig-ning 13.26 omskrives:

T = Tz [rad/s] (13.28)

α ·T = Tp [rad/s] (13.29)

13. Afstandsregulering 129 af 250

Page 130: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

13.2 Design af afstandsregulator

Figur 13.8: Bodeplot af det uregulerede system.

vides fra kilde [11, s. 368], at T og α, og dermed det samlede leadnetværk, kan bestemmes udfra ønskerne stillet til faseløft og placering af faseløftet:

α =1− sinφmax

1+ sinφmax=

1− sin75

1+ sin75' 1

60(13.30)

T =1

ωmax ·√

α=

12,4 ·

√1/60

' 3,22 rad/s (13.31)

Således kan leadnetværket bestemmes:

Tz = T = 3,22 rad/s (13.32)

Tp = α ·T =3,2260

= 0,054 rad/s (13.33)

Tilbage er blot at bestemme Kl. Dette gøres ved at at betragte hvor det samlede fremadkobledesystem har mest faseløft. Det ses at være ved ca. 1 rad/s, hvorfor gainet Kl tilpasses således atforstærkningen, af den fremadløbende gren, er 0 dB ved frekvensen 1 rad/s. Det ses at Kl = 0,051vil opfylde dette ønske. Det opstillede lead-netværk er således:

D2(s) = KlTz · s+1Tp · s+1

= 0,0513,227s+1

0,05379s+1(13.34)

130 af 250 13. Afstandsregulering

Page 131: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

13.2 Design af afstandsregulator

Dette svarer til et nulpunkt i -0,310 og en pol i -18,59. Dette giver et faseløft ved lave frekvenser,og sammen med gainet Kl = 0,051, gør det at systemet får en positiv fasemargin, af den ønskedestørrelse. Dette kan ses for bodeplottet af open-loop gainet, fra figur 13.8, efter at leadnetværketer sat ind. Bodeplottet ses på figur 13.9.

Figur 13.9: Bodeplot af det regulerede system.

Bodeplottet viser effekten af leadnetvæket, nemlig at fasen løftes ved de lave frekvenser, samti-digt med at forstærkningen sænkes således at 0 dB forefindes netop hvor fasen er løftet. Det sesaf bodeplottet, at fasemargin er højere end kravet på 40. For at verificere at systemet rent faktisker stabilt, tegnes, for samme system, et nyquist plot. Dette ses på figur 13.10.

Figur 13.10: Nyquistplot over den regulerede fremadløbende gren

13. Afstandsregulering 131 af 250

Page 132: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

13.2 Design af afstandsregulator

Nyquistplottet viser at der, i den lukkede sløjfe, ikke er poler i højre halvplan, hvilket er et kravfor stabilitet. Dette ses idet punktet (-1,0) omkrandses een gang med uret, og tilsvarende een gangmod uret.

Det bemærkes dog at gainet i leadnetværket, Kl = 0,051, er en kraftig reduktion af signalet. Dettelave gain, gør at DC-gainet bliver mindsket kraftigt. Denne nedskalering af gainet, bevirker atsystemets båndbredde, bliver meget mindre hvilket påvirker systemets dynamik. Risetimen vilblive øget jo mindre DC-gainet er, derfor vil denne nedskalering af gainet, gøre at risetimenvil blive høj. For derfor at se om kravene til steadystatefejl og risetime er overholdt, plottes etsteprespons, for det lukkede system, altså stepresponset af systemet som ses i figur 13.6 medindsatte værdier. Dette steprespons ses i figur 13.11.

Figur 13.11: Steprespons af det lukkede system, som ses i figur 13.6.

Af figuren ses følgende: Systemet har overshoot på cirka 25% samt en risetime på cirka 2 s. Des-uden ses at steadystatefejlen er nul. Altså er alle de opstillede krav overholdt.

Det er nu nødvendigt at diskretisere den fundne regulering. Dette ønskes gjort med samme sam-plingsfrekvens, som ved hastighedsreguleringen, dvs. ved 128 Hz. Det kontrolleres om dennefrekvens er fornuftig ved, ligesom for hastighedsreguleringen, at sammenholde med systemetsbåndbredde. For at approksimere systemets båndbredde bruges samme ligning, som gælder foret andenordens system[24]:

ωBW ≈2,52

tr=

2,522

= 1,26 rad/s (13.35)

132 af 250 13. Afstandsregulering

Page 133: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

13.3 Verificering af regulator

Nu kan samplingsfrekvens vurderes:

ωs

ωBW=

804,21,26

= 638,3 > 20 (13.36)

Igen ses det at samplingsfrekvens er en stor faktor højere end systemets båndbredde, hvilket ligesom tidligere, er ønskeligt.

Tilbage er at omskrive leadnetværkets overføringsfunktion så den kan implementeres i robottenssoftware. Leadnetværketets overføringsfunktion diskretiseres via Tustins metode [11, s. 607] medsamplingsfrekvens fs = 128 Hz, på samme grundlag som i sidste kapitel:

D2(s) = 0,0513,227s+1

0,05379s+1Tustin→ (13.37)

D2(z) =Y(z)X(z)

=2,955 · z−2,951

z−0,9299(13.38)

Ligesom før bruges den diskrete overføringsfunktion til at opstille en differensligning der kanimplementeres på mikrocontrolleren:

u[n+1] = 2,995 · e[n+1]−2,951 · e[n]+0,9299 ·u[n] (13.39)

Ligesom i sidste kapitel skal reguleringen verificeres, hvilket gøres i følgende afsnit.

13.3 Verificering af regulator

Ligning 13.39 viser direkte en algoritme til afstandsregulering og skal forstås på følgende måde:På figur 13.1 ses leadnetværket i sin kontekst. Dens input er differencen mellem det ønskedesignal samt det aktuelle målte signal af afstanden til linien. Dette input er benævnt e i ligning13.39, for at indikere en fejl (error). Outputtet er differencen i hastighed til hastighedsregulerin-gen, hvilket er benævnt u i samme ligning. Indekset n indikerer samplenummeret. Således viserligning 13.39 hvad det næste styresignal skal være, på baggrund af det sidste styresignaloutput,samt de to sidste differencer mellem ønsket og målt output.

Dynamik

Den endelige ligning 13.39 implementeres på robotten og testes. Det viser sig imidlertid at lead-netvækets output ∆Vref(s), som er en difference i hastighed til hastighedsreguleringen, er megetlille i forhold til hastighedsreferencen, som er i størrelsesordnen 1 m/s. Resultatet af dette er, atselv store afstande til linien ikke giver nok udslag til at robotten reagerer, hvorfor den ikke kanfølge linien. For at gøre ∆Vref(s) større, øges leadnetvækets gain Kl. Ved at øge dette gain til etsted i området 30 ∼ 120 fås en størrelse af ∆Vref(s), som er stor nok til at have en betydning forselve driften af robotten. Der vælges at benytte Kl = 100.

Grunden til denne nødvendige forøgelse af forstærkningen kan skyldes flere ting. Den primære

13. Afstandsregulering 133 af 250

Page 134: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

13.3 Verificering af regulator

årsag er sandsynligvis at de modeller, der er brugt til at beskrive robottens bevægelse, alle er line-ære. Dette betyder at der modelmæssigt set ikke er nogen form for tørfriktion, f.eks. i motorerne,som skal overvindes, for at få robotten til at bevæge sig.

For nu at teste afstandsreguleringens dynamik laves steprespons som beskrevet i det følgende.Robotten sættes til at følge en sort linie ligeud. Efter et stykke tid ophører denne linie, samtidigtmed at en anden sort, linie paralellt med den første, starter. Dette er illustreret på figur 13.12.

Figur 13.12: Steprespons for afstandsreguleringen. Robotten kører langs een sort linie og sprin-ger til en sort linie paralellt med 80 mm forskudt.

Afstanden mellem de to linier er 80 mm. Forløbet gennemføres med 1 m/s, som er den arbejds-hastighed der ønskes at køre med. Under hele forløbet logges afstanden til linien, som dermedefterfølgende kan plottes. Dette ses i figur 13.13. Der bemærkes flere ting. For det første ses atrisetime er under 1 sekund. Derudover ses at der ikke er overshoot. Begge dele betyder at demålte data adskiller sig fra den opstillede model, hvis steprespons ses i figur 13.11.

Figur 13.13: Steprespons for afstandsreguleringen. Banens forløb ses i figur 13.12, og plottet idenne figur ses afstanden til linien. Det bemærkes at risetime er under 1 s.

134 af 250 13. Afstandsregulering

Page 135: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

13.3 Verificering af regulator

Steady state

For at verificere kørslen af robotten i steady state, gennemføres følgende test: Robotten sættes tilat køre i en aflang afrundet bane som vist på figur 13.14, med en hastighed på 1 m/s.

Figur 13.14: Den sorte streg markerer tapelinien, som robotten skal følge. Robotten er vistsom den røde firkant. Ved at følge linien kan hastigheden og afstanden til linien logges, for atverificere de to regulatorer. Banens radius i enderne er 0,5 m, hvilket svarer til de skarpeste svingtil robocup.

Samtidigt logges både centrumhastighed og afstand til linien. Afstanden til linien regnes entenpositiv eller negativ, alt efter hvilken side af linien, bilen befinder sig. I et forløb på 12 sekunderkører bilen lidt mere end en omgang på banen. Plottet for afstanden til linien, samt centrumha-stighed, ses på figur 13.15.

Figur 13.15: Øverste figur viser med blåt afstanden til linien. Nederste figur viser centrumha-stighed, altså gennemsnitshastigheden mellem højre og venstre side af robotten.

Øverste plot i figur 13.15 viser afstanden til linien som funktion af tiden. Bilen starter på den ligestrækning, og det ses i plottet at afstanden til stegen er tæt på nul, indtil det første sving begynder.Her stiger afstanden til linien imidlertid til omkring 80 mm indtil svinget er slut, hvorefter ro-

13. Afstandsregulering 135 af 250

Page 136: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

13.4 Delkonklusion

botten igen regulerer afstanden mod 0 mm i forhold til linien. Det samme gentager sig for næstesving. I øverste plot på figur 13.15, er desuden plottet en vandret sort linie, svarende til afstanden0 mm. Dette er robottens reference afstand, dvs. afstanden som robotten regulerer imod.

På nederste plot, er indsat en sort vandret linie ved 1 m/s. Dette er referencen for hastigheden.Derudover er der indsat lodrette røde linier, hvilke angiver start og slut på banens sving. Betrag-tes det nederste, ses at også hastigheden holder sig konstant som ønsket indtil svinget begynder.Rundt i svinget har hastighedsregulatoren svært ved at holde den konstante hastighed på 1 m/s.Dog stabiliseres hastigheden efter svinget.

Denne test viser at de opstillede reguleringssløjfer for afstands- og hastighedsregulering fun-gerer efter hensigten. Desuden viser testen at robotten kan følge selv de skarpeste sving, somRoboCup-banen har, med en hastighed på cirka 1 m/s.

13.4 Delkonklusion

I dette kapitel er robottens afstandsregulering udviklet, implementeret og testet. Robottens af-standsregulering er implementeret via et diskretiseret lead-netværk.

Ud fra de to målinger, som ses i figurerne 13.15 og 13.13, kan den endelige afstandsreguleringverificeres. Det ses ud fra de to plots, at der for afstandsreguleringen gælder:

• Risetime tr ≈ 0,6 s

• Overshoot Mp ≈ 0

• Steady state error på spring ess ≈ 0

Sammenlignes med kravene ses at de alle er overholdt.

Ud over disse krav er det erfaret at afstandsreguleringen fungerer efter hensigten, idet at robottenigennem de skarpeste sving, med den højest ønskelige hastighed, kun kommer 80 mm fra linien,hvilket stadig er indenfor robottens synsfelt.

Det bemærkes interessant nok, at afstandsreguleringen afviger fra modellen, hvis steprespons ervist i figur 13.6. Modellen beskriver et vist overshoot, hvilket robotten ikke udviser. Dette tyderpå at den friktion, hovedsageligt i form af skrid på banen, der forekommer, har en større rolle endforventet. Dog bidrager det ikke på negativ vis i tilbagekoblingen, idet det blot gør overshootetmindre.

Hermed er udledningen, dimensioneringen samt verificering af robottens reguleringssløjfer ud-ført, hvorfor næste skridt er at strukturere og udvikle robottens software. I det følgende kapitelgennemgås først de indledende overvejelser for softwaren, og opbygningen af denne, og i kapitletefter gennemgås de endelige softwaretråde.

136 af 250 13. Afstandsregulering

Page 137: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Kapitel 14Softwareopbygning

Dette kapitel giver overblik over hvorledes softwaren til robotten er opbygget og udviklet. Kapit-let er udformet i to dele. I første del opsummeres kravene til robottens softwareside, hvorefter detundersøges hvilke muligheder for softwareimplementering, der er anvendelige. Efter den mestanvendelige softwareimplementering er valgt, redegøres for den overordnede struktur af softwa-ren, samt hvilke tråde det ønskes robottens software skal bygges op omkring. I den anden delaf kapitlet ses nærmere på den softwaremæssige opbygning af mikrocontrolleren, samt det fra-mework der kan anvendes med den.

14.1 Krav til softwaren

Opsummerende fra kravspecifikationen er de overordnede krav til den samlede software:

• Softwaren skal indeholde realtidsprogrammering, krav 49.

• Softwaren skal regulere robottens motorer, krav 50.

• Softwaren skal indhente og behandle data fra robottens sensorer, krav 51.

• Softwaren skal holde styr på hvor på banen robotten befinder sig, og herudfra afgøre hvadrobotten skal foretage sig, krav 52.

• Softwaren skal styre robottens kommunikation gennem kommunikationsmodulet, krav 53.

Softwaren skal altså udvikles til at udføre de opgaver, som kravene beskriver. Softwaren opde-les derfor i en række tråde, som kan afvikles på skift, og hver især tage hånd en given opgave.For at holde styr på trådene, og holde styr på deres afvikling, er det nødvendigt at have en over-ordnet styring af softwaren. I det følgende overvejes forskellige typer styring, i forbindelse medsoftwareafviklingen på robotten.

137 af 250

Page 138: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

14.2 Overordnede løsningsmuligheder

14.2 Overordnede løsningsmuligheder

I det følgende overvejes to typer styring af softwaren, hhv. med og uden kerne. For løsningenmed kerne overvejes deslige to forskellige typer, nemlig preemptiv, og non-preemptiv kerneim-plementering.

14.2.1 Sekventiel afvikling

Sekventiel afvikling er den simpleste implementeringsform der kan opstilles. Princippet er attrådene indsættes i en uendelig løkke, hvor trådene afvikles én af gangen efter tur, dvs. en trådstarter når den foregående tråd er slut, hvilket er illustreret på figur 14.1. På figuren ses hvorledesn tråde afvikles, hvorefter der startes forfra. Den lyse farve indikerer en tråds gennemsnitligeafviklingstid, og den mørke farve indikerer den eventuelle ekstra tid det måtte tage, hvis trådeneventuelt skal kommunikere med en ekstern enhed. Den maksimale afviklingstid for en tråd, erdermed den lyse del plus den mørke del.

Ved at anvende denne løsning til at styre trådene, er der ingen kontrol over tiden mellem afvik-

Tråd 1 Tråd 2 Tråd 3 Tråd n Tråd 1

Tid

Figur 14.1: Et eksempel på sekventiel trådafvikling.

lingen af hver tråd, da trådene som beskrevet kan variere i afviklingstid.

En udvidelse af ovenstående løsning, er at lade en timer styre afviklingen af trådene, således entråd først startes når en timer fortæller den dette. Ved at starte en timer, på en given tid, hver gangen tråd startes, og først lade den efterfølgende tråd starte når timeren er udløbet, er der fuldstæn-dig styr på tiden mellem afviklingen af hver tråd .

Ovenstående kan implementeres med RTC (Real Time Clock) interrupts, ved at lade en RTC kon-trollere timeren, hvorved der kan genereres et interrupt når denne er udløbet. Dette kan ydermereudvides, ved at lade en variabel angive hvilken tråd der står for afvikling næste gang. Timeren,som RTC interruptet udløses ved, kan derved indstilles forskelligt afhængigt af denne variabel,således tiden mellem hver tråd ikke behøves være den samme. Ovenstående form for sekventielafvikling er illustreret på figur 14.2.

tIRQ1 t1 tIRQ2 t2 tIRQ3 t3 tn Ts

RTC Irq 3RTC Irq 2RTC Irq 1 RTC Irq n

Tråd 1 Tråd 2 Tråd 3 Tråd n

RTC Irq 1

Figur 14.2: Sekventiel afvikling af tråde, ud fra et timer interrupt.

138 af 250 14. Softwareopbygning

Page 139: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

14.2 Overordnede løsningsmuligheder

Timingskrav

Idet den sekventielle afvikling kan gennemføres med en veldefineret tid mellem afviklingen afhver tråd, er dette en løsning som er brugbar til afvikling af tidskritisk kode, dvs. software medrealtidskrav. Dette medfører dog at trådene samlet set skal overholde et timingskrav. Antag foreksempel at tråd 1 er tidskritisk, og skal afvikles med en periode på Ts. Da alle trådene afviklespå skift i en lykke, kan dette krav kun overholdes, hvis alle tråde kan afvikles indenfor periodenTs. Dette kan udtrykkes ved:

Ts >N

∑i=1

ci [s] (14.1)

Hvor:N er det samlede antal af tråde.ci er afviklingstiden for tråd nr. i.

Hvis ikke kravet er overholdt, vil periodetiden, Ts, for den tidskritiske tråd heller ikke kunneoverholdes.

14.2.2 Nonpreemptive kerne

En anden form for håndtering af de forskellige tråde, er ved at anvende en kerne til at styre hvor-når de forskellige tråde får afviklingstid. Der beskrives som sagt to forskellige typer af kerneim-plementationer, hvor dette afsnit omhandler den non-preemptive kerne. Det skal indledningsvisbemærkes at både den non-preemptive kerne som gennemgås her, og den preemptive kerne somgennemgås senere, kan implementeres på mange forskellige måder, hvoraf denne gennemgangblot er et eksempel på hvorledes det kan forefinde. Desuden bør det understreges at gennemgan-gen af de to kernetyper er på et overordnet plan, og dermed ikke en detaljeret gennemgang afimplementeringsmuligheder.

I en non-preemptive kerne (NPK), kan en tråd ikke afbrydes når først den er igangsat. En storfordel ved en non-preemptiv kerne er at implementeringen er relativt simpel. Den er dog mindrefleksibel, hvis det på et tidspunkt ønskes at udvide softwaren, hvilket vil fremgå af det følgende.

Beskedkø

I en NPK (non-preemptive kernel) kan afviklingsrækkefølgen af tråde styres via en kø, hvori dersættes beskeder med informationer omkring den tråd der skal afvikles. Dette værende eksempel-vis navnet på tråden, hvornår tråden skal afvikles, hvordan den skal afvikles, og eventuelle datasom tråden skal bruge i sin afvikling. Hver gang en tråd skal afvikles, er det dermed på baggrundaf at en besked fra køen fortæller kernen at tråden skal afvikles. Beskeden indikerer som sagtbl.a. hvornår tråden skal afvikles, hvilket gøres ud fra et timer-delay. Denne angiver i princippetden ønskede forsinkelse fra beskeden er sat på køen, til tråden afvikles.

14. Softwareopbygning 139 af 250

Page 140: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

14.2 Overordnede løsningsmuligheder

Kernens opgave er at styre afviklingen af beskederne, som lægges på køen. Dvs. når en beskedskal behandles, skal den tages af køen, og den ønskede tråd skal afvikles. Det er ikke kernenselv, som lægger beskeder på køen, den sørger blot for at behandle beskederne fra køen, nårderes timer-delay løber ud. Det er derimod de enkelte tråde, som selv sætter nye beskeder ikøen. Således kan tråd 1 ved eksekvering eksempelvis sætte en besked på køen om at tråd 2 skalafvikles efter 1 sekund.

Timer-delay værdien skal tælles ned med en given frekvens, således beskeden bliver behandletnår timer-delayet er nul. Nedtællingen på timer-delayet kan styres med RTC interrupts, ligesomdet blev forklaret for den sekventielle afvikling. Ved at opsætte RTC’en til at interrupte meden given frekvens, kan timer-delayet, for en besked, angives som et antal RTC interrupts, indenbeskeden skal afvikles. Dette kan anvendes af tidskritiske tråde, idet de blot kan sætte en beskedtil sig selv i kø, med et timer-delay der netop svarer til den afviklingsperiode tråden skal have.Dermed sikrer tråden at den altid afvikles med den samme periode.

Når beskeder sættes i kø, skal kernen sørge for at analysere hvor i køen den skal sættes ind. Køenskal nemlig ordnes således at beskeder med det korteste timer-delay står forrest. Beskedkøen kanderfor betragtes som en slags tidsprioriteres FIFO-kø. Hvis to tråde, via deres timer-delay, er sattil at starte samtidigt, vil den der først blev sat i kø altså også blive afviklet først. Dermed vilden sidst tilkomne opleve en tidsforsinkelse, på den tid det tager at afvikle den først tilkomne.Dette kan medføre problemer mht. timingen, hvilket diskuteres yderlige i et senere afsnit. Enafviklingssekvens kan eksempelvis foregå som illustreret på figur 14.3, hvor tråd 1 er tidskritiskdvs. den skal afvikles med en bestemt frekvens. For at sikre dette, starter tråden med at sætte sigselv i kø, med et timer-delay på netop den ønskede sampletid, således den afvikles igen når dettetimer-delay er udløbet. Efter tråd 1 har sat sig selv i kø, udfører den sin opgave og sætter tråd 2 ikø med et timer-delay på 0, dvs. den skal afvikles prompte efter den første tråds afvikling. Tråd 2afvikles nu, og afslutter med at sætte tråd 3 i kø til øjeblikkelig afvikling, og så videre. Såledesafvikles trådene, og sætter hele tiden den efterfølgende tråd i kø. Når timer-delayet fra tråd1 løberud, afvikles hele løkken en gang til.

Tilstande

For så vidt muligt ikke at have redundant software, er det muligt at kalde alle tråde i forskelligetilstande. Dette betyder at hver gang en tråd kaldes, får den at vide hvilken af sine tilstande,tråden skal afvikles i. Når tråden startes kan den således udføre forskellige opgaver, alt efterhvad tilstand den kaldes i. Dette er fordelagtigt idet det gør at den samme tråd kan udføre mangeforskellige opgaver ved brug af de samme funktioner. Altså kan der i stedet for at lave mangetråde, som indeholder redundant data, blot laves een tråd som kaldes i forskellige tilstande.

Dataudveksling

Dataudveksling mellem trådene sker som antydet også gennem køen, via de beskeder der sættesi kø. Ligesom en besked på køen fortæller hvilken tilstand en tråd afvikles i, skal beskedenogså overbringe de data som en tråd skal bruge i sin afvikling. De data der leveres af en beskedkan variere efter den tilstand tråden skal afvikles i. Sammen med beskeden følger desuden en

140 af 250 14. Softwareopbygning

Page 141: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

14.2 Overordnede løsningsmuligheder

Figur 14.3: Figuren illustrerer hvorledes de forskellige tråde sættes i gang, ved at de foregåendetråde har sat den i kø. Tiden på figuren er delt ind i fem stadier a-e. ci angiver afviklingstiden forden i’te tråd.

information om, hvor lang denne medsendte besked er. Med dette er der skabt overblik over deinformationer der skal fremgå af de beskeder der sættes i kø. Den ovenstående gennemgang af enkø-besked, kan visualiseres med figur 14.4, der viser de primære felter en besked kan bestå af.

Figur 14.4: Oversigt over felterne i en besked der kan sættes i kø.

14. Softwareopbygning 141 af 250

Page 142: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

14.2 Overordnede løsningsmuligheder

Timingskrav

Som sagt kan der opstå forsinkelse mellem trådenes afvikling, hvis flere tråde er sat til at bliveafviklet samtidig. Idet der ikke indføres prioritering mellem tråden, kan det risikeres at en tråd derer meget tidskritisk forsinkes af afviklingen af en tråd der er mindre tidskritisk. For at den mesttidskritiske tråd stadig kan overholde sin deadline giver dette et vigtigt timingskrav til trådene påen NPK:

• Alle trådes samlede afviklingstid, må ikke overstige deadlinetiden for den mest tidskritisketråd.

Hvis det bestemmes at deadlinen for tråden er den samme som perioden for tråden, kan kravetformuleres ligesom for den sekventielle afvikling, dvs.:

Ts <N

∑i=1

ci [s] (14.2)

Hvor:Ts er sampletiden for den mest tidskritiske tråd [s].N er det samlede antal af tråde.ci er afviklingstiden for tråd nr. i [s].

Tag som eksempel et tilfælde hvor alle trådene er sat i kø, og er sat til at starte samtidigt. Antagdesuden at den sidst tilkomne, er den mest tidskritiske. For at denne tråds realtidskrav overhol-des, skal den samlede afviklingstid for trådene være mindre end periodetiden for den hurtigstetråd (den tidskritiske), da denne ellers ikke vil kunne nå at blive afviklet inden for den aktuelleperiode. Dette krav er desuden årsagen til, at en non-preemptive kerne er ufleksibel, idet det ikkeer muligt at tilføje ekstra tråde, når først loftet for trådenes samlede afviklingstid er nået.

Af det ovenstående og ligning 14.2 skal der bemærkes følgende. Tidskravene gælder kun hvisen tråd kun sættes i kø én gang til et bestemt afviklingstidspunkt. I princippet kunne den sammetråd blive kaldt mange gange til udførsel til samme tidspunkt, hvor ligning 14.2 ikke vil garante-re at tidskravene på tidskritiske processer bliver overholdt. Dette betyder, at flowet af tråde skalbetragtes for at bestemme hvorvidt tidskrav i en NPK overholdes. Desuden bemærkes at der idet ovenstående regnes med at den samme tråd har samme afviklingstid uanset hvad tilstand denkaldes i, hvilket ikke nødvendigvist passer. Hermed er der skabt klarhed omkring hvorledes det ermuligt at anvende en non-preemptiv kerne på robotten. I det følgende afsnit gennemgås hvorledesen preemptiv kerne i hovedtræk fungerer, samt hvorledes den kan anvendes med robotten.

14.2.3 Preemptive kerne

Grundprincippet i en preemptiv kerne er at tråde kan afbrydes i deres udførelse, og fortsættesigen på et senere tidspunkt. Således kan en preemptive kerne udføre pseudo paralel kode på denmåde, at den kan opdele alle tråde i meget små stykker og skifte mellem disse små stykker.

142 af 250 14. Softwareopbygning

Page 143: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

14.2 Overordnede løsningsmuligheder

Skift mellem tråde

En måde kernen kan skifte mellem tråde på, er ud fra ’round robin’ princippet, hvor alle trådepå skift afvikles i et fastsat tidsinterval [34, s. 13], og afbrydes når den afsatte tid er gået. Det erogså en mulighed at prioritere trådene således en højtprioriteret tråd kan afbryde tråde med lavereprioritet, men ikke modsat. Herved kan sikres at de vigtigste tråde altid afvikles helt, når først deer startet. Der findes mange forskellige måder at prioritere tråde på, hvilket ikke vil uddybes her.

Der kan opstilles et diagram som illustrer afviklingen af de forskellige tråde, på baggrund afderes prioritet og deres afviklingsperiode. Dette ses på figur 14.5, hvor tråd 1 har højere prioritetend tråd 3, hvorfor tråd 3’s afvikling sættes på ’pause’ idet tråd 1 melder klar 2. gang. Hermedbliver tråd 3’s afviklingstid summen af sin egen og afviklingstiden for tråd 1. På figuren angiverci afviklingstiden for den i’te tråd. Idet der sker en forsinkelse af lavtprioriterede tråde når deafbrydes, er der risiko for at disse overskrider deres deadlines, selvom de vigitgste tråde rentfaktisk overholder deres. Derfor er det nødvendigt at opstille prioriteringsalgoritme der sørgerfor at alle tråde altid overholder deres deadlines, for at schedulleringen er brugbar.

Figur 14.5: Afviklingen af tråde, ved brug af preemptiv kerne. Beærk at afviklingen af tråd treer indstillet idet tråd 1 tilsidesætter den.

Dataudveksling

Datatransporten mellem tråde for en preemptiv kerne er et område som kræver særlig opmærk-somhed. Idet en tråd til ethvert tidspunkt kan blive afbrudt, betyder det at den eksempelvis kanblive afbrudt mens den opererer på en variabel, som også skal kunne tilgås fra en anden tråd.Derfor er det nødvendigt at sikre at tråd nummer to, kan foregå gennem kritiske regioner, dvs.dataområder som deles mellem to eller flere tråde. Når afviklingen af en tråd begynder, kan denkritiske region låses med en semafor, for at sikre at kun en enkelt tråd bearbejder de kritiskedata ad gangen. Dette kan imidlertid medføre problemer, idet det risikeres at en højtprioriterettråd ikke kan køre fordi en lavtprioriteret tråd har låst et dataområde med en semafor, mens denlavtprioriterede tråd er tilsidesat for afviklingen, af endnu en tråd. Dvs. at den vigtigste tråd kankomme til at stå og vente længe på at den lavtprioriterede tråd får arbejdet færdig og frigivetsemaforen. En fordel ved denne metode til udveksling af data er imidlertid at der er altid er fuldkontrol over at kun en enkelt tråd har adgang til en mængde data ad gangen, således at data frade forskellige tråde ikke bliver blandet eller overskrevet på en uhensigtsmæssig måde.

14. Softwareopbygning 143 af 250

Page 144: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

14.2 Overordnede løsningsmuligheder

Timingskrav

For at en preemptiv kerne rent timingsmæssigt hænger sammen, er det nødvendigt at betragte detværst tænkelige tilfælde, for afviklingen af en tråd. Hvis kernens schedulering kan anvendes i detværst tænkelige tilfælde, kan den anvendes i alle tilfælde.

Betragt derfor en tråd τi, som er den lavest prioriterede tråd i en preemptiv kerne. Det værsttænkelige tidspunkt denne tråd kan starte sin afvikling, er på et tidspunkt hvor alle de højere-prioriterede tråde også starter deres afvikling, idet τi i denne situation vil blive nedprioriteret,indtil alle de øvrige tråde τ1,τ2, ...,τi-1 har udført deres arbejde. For at kernens scheduleringer brugbar, skal der dog stadig være mulighed for at τi kan afvikles, inden dens deadline over-skrides [33]. Dette kan illustreres som på figur 14.6. Det skal bemærkes at det i dette eksempelantages at tråd τ1 til τi-1 kun afvikles en enkelt gang inden τi.

Figur 14.6: Worst-case afviklingsforløbet for den i’te tråd, i det opstillede eksempel. Her hartråd 1 højest prioritet og tråd i lavest prioritet. De lavere prioriterede trådes afvikling er indstilletimens en højere prioriteret tråd arbejder.

Struktur

Idet den preemptive kerne bygger på at alle tråde til en hver tid kan afbrydes, er det nødvendigtat overveje hvorledes en igangværende tråd afbrydes, og hvorledes dens data skal gemmes, nården afbrydes af anden tråd. Dette beskrives i det følgende eksempel med to tråde.

Problematikken består i følgende. Når en tråd a afbrydes midt sin i afvikling til fordel for enanden tråd, skal kernen vide hvor i afviklingen tråden blev stoppet. Dette er nødvendigt for atsåledes kernen kan sætte tråden i gang igen fra samme sted som den blev afbrudt. Derudoverskal kerne kunne gendanne alle arbejdsregistre til de værdier de havde, da tråd a blev afbrudt.Endeligt skal statusregisteret til tråd a også gemmes, idet det indeholder informationer om deberegninger mv. som tråden var i gang med.

144 af 250 14. Softwareopbygning

Page 145: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

14.2 Overordnede løsningsmuligheder

En måde at løse dette på, er ved brug af mikrocontrollerens hardwarestyrede timerinterrupts. Nåret timerinterrupt udløses vil controlleren automatisk pushe arbejdsregistre, programcounter samtstatusregiser på dens stak [4, s. 22]. Dette kan udnyttes direkte til et trådskift, idet controllerensåledes automatisk udfører det meste af det nødvendige arbejde. Det som den preemptive kernedog skal gøre, er at opdele stakken i flere ’delstakke’ alt efter hvor mange tråde der er. Hervedkan hver tråd få sin egen delstak, og det er så blot kernens opgave at sørge for, at der ved timerin-terrupt skiftes fra den stak der køres, til den stak som skal køre istedet. Dette betyder at der ved ettimerinterrupt, alt efter trådsskiftningsmetoden, skal undersøges hvilken tråd der har højest pri-oritet, eller hvilken tråds tur det er til at køre. Når dette er undersøgt skal den pågældende trådsstak poppes, herunder denne tråds programcounter, således at der hoppes til den ønskede tråd, ogat denne afvikles fra det sted den tidligere blev afbrudt, eller på anden vis stoppede sin afvikling.

Hermed er de forskellige mulige softwareimplementeringer gennemgået. I det følgende vælgesen implementationsform, ud fra fordele og ulemper for hver af mulighederne.

14.2.4 Valg af softwarimplementering

Ud fra ovenstående beskrivelse af forskellige softwarestrukturer kan det vurderes hvilken løsningder vil være mest hensigtsmæssig til robotten.

Den sekventielle afvikling er kun anvendelig i den udgave hvor der anvendes en timer til at startetrådene, da der ellers ikke er styr på om realtidskrav er overholdt, ligesom der heller ikke er styrpå at trådene afvikles med en fast samplingsfrekvens. Dog er selv ikke den timerstyrede udgaveaf den sekventielle afvikling særlig anvendelig, da det er nødvendigt at alle tråden afvikles i densamme rækkefølge hver gang.

De to kerneimplementeringer har begge den fordel at rækkefølgen trådene afvikles i, kan varie-res igennem afviklingsforløbet. Den preemptive kerne er mere fleksibel end den non-preemptive.Dette ses ved, at timingskravet for den preemptive kerne stillet ud fra den lavesteprioriteredetråd, som i flere prioriteringsalgoritmer også er den langsomste, hvorimod den non-preemptivestimingskrav stilles ud fra den hurtigtste tråds afviklingsperiode. Dette gør sig som sagt gældendehvis de tråde, der skal afvikles, har samme deadline som de har afviklingsperiode. Dog kan derargumenteres for at softwareomfanget i dette projekt er så begrænset, at det angiveligt ikke vilopstå problemer med at trådene ikke kan nå at blive afviklet med en NPK.

En ulempe ved den preemptive kerne er at den skal stakke meget data ved hvert tråd skift, for atden afbrudte tråd kan genoptages senere. Den nonpreemptive kerne skal også stakke en mængdedata, i kraft af at den anvender RTC generede interrupts. Imidlertid er datamængden som i dettetilfælde skal stakkes, ikke lige så omfattende som det ellers ville være tilfældet [4, s. 22]. Des-uden vil den preemptive kerne oftest komme med flere interrupts, end den nonpreemptive, idetden ofte vil dele processerne op i flere dele.

Hverken brug af preemptiv, eller nonpreemptiv kerne vil indebære at kernen skal skrives frabunden. Atmel har udviklet en preemptiv kerne ’Free RTOS’ som kan anvendes til mikrocon-trolleren. På samme vis er det muligt at finde en non-premptiv kerne der kan anvendes, uden denskal skrives fra bunden.

14. Softwareopbygning 145 af 250

Page 146: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

14.3 Softwarestruktur

Det fravælges at arbejde med den sekventielle struktur uden kerne, da det ikke findes hensigts-mæssigt at trådene altid skal afvikles i den samme rækkefølge. Af de to kernetyper vælges det atarbejde videre med den nonpreemptive kerne. Dette gøres ud fra at der ikke findes nogen gevinstved at arbejde med den preemptive, da det ikke forventes at den manglende fleksibilitet i NPKkernen, vil have nogen betydning i denne henseende. NPK kernen ønskes implementeret efterden struktur der er gennemgået i dette kapitel, med beskedkø, og afvikling af tråde i forskelligetilstande.

NPK’en der arbejdes videre med, er venligst udlånt af Henrik Schiøler, fra AAU’s institut forelektroniske systemer, afdeling for ’Automation and Control’.

Da det er valgt hvilken softwarestyring det ønskes at arbejde videre med, er det muligt at se nær-mere på strukturen af softwaren, der skal udarbejdes dvs. hvilke tråde det ønskes at konstruere,for at overholde de krav der er opsummeret i afsnit 14.1. Softwarestrukturen gennemgås i detfølgende.

14.3 Softwarestruktur

Som forklaret skal softwaren opsplitters i tråde, der hver især kan håndtere en afgrænset del afsoftwaren. Denne opdeling af softwaren gennemføres ud fra et såkaldt kontekstdiagram.

Kontekstdiagram

Kontekstdiagrammet viser alle de eksterne aktører for robotten og viser samtidigt hvilke data derskal transporteres fra aktørerne til robotten, og modsat. I denne sammenhæng betyder ’robotten’den softwarebehandling, der skal foretages på de forskellige data og signaler. Kontekstdiagram-met viser desuden hvorledes det ønskes at datatransporten og -behandlingen skal foregå internti robotten. Diagrammet ses på figur 14.7. Ud fra de opstillede krav, samt det overblik der i rap-porten indtil nu er skabt omkring sammenhængen mellem de forskellige dele af robotten, kansammensætningen af kontekstdiagrammet udledes til følgende:

• En del af softwaren skal måle på omdrejningsencoderne, således at robottens hastighedsamt tilbagelagte afstand kan bestemmes.

• En anden del skal hente data fra liniesensoren, så afstanden til linien kan beregnes, og evt.kryds kan detekteres.

• På baggrund af encoder- og liniesenordata, skal det bestemmes hvor på banen robottenbefinder sig, og der skal tages en beslutning om hvordan robottens skal bevæge sig.

• Motorerne skal reguleres således, at robotten kører i den ønskede retning med den ønskedehastighed.

• En del af softwaren skal kontrollere, at batterispændingen ikke bliver for lav, samt at mo-torerne ikke påtrykkes en for høj spænding

146 af 250 14. Softwareopbygning

Page 147: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

14.3 Softwarestruktur

• En del af softwaren skal kunne registrere at robotten skal starte med at køre, når der trykkespå startknappen.

• En del af softwaren skal desuden kunne modtage og sende data via bluetooth-modulet,herunder udsende faste beskeder med de vigtigste nøgleparametre for robotten, kaldet bea-cons.

Figur 14.7: Kontekstdiagram for robottens samlede software.

Kontekstdiagrammet, på figur 14.7, giver et overblik over robottens softwares ønskede funktiona-litet, og kan bruges til at bestemme den mest fordelagtige opdeling i tråde. Der ses et umiddelbartbehov for en tråd der tager sig af måling og regulering, en tråd der tager beslutninger for robot-ten alt efter dens placering på banen, og en sidste tråd der kommunikerer med en ekstern PC.Softwaren konstrueres dermed omkring disse tre tråde. I det følgende gennemgås det overordne-de indhold af hver tråd.

14. Softwareopbygning 147 af 250

Page 148: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

14.3 Softwarestruktur

Tråde

• ReguleringstrådReguleringstråden består af tre mindre moduler, som kaldes: Encoder-, liniesensor- ogmotorreguleringsmodul.

Trådens overordnede funktion er at regulere hastigheden på robottens motorer med henblikpå at korrigere retning og den samlede hastighed på robotten. Dette gøres ved først at hentebatterispænding, samt data fra encodere og liniesensor og analysere hastighed og afstand tillinien. Motorerne skal reguleres ud fra de opnåede data, samt retningslinier som udstikkesaf beslutningstråden

• BeslutningstrådHver gang robotten passerer et kryds, skal der træffes en beslutning om hvilken gren derskal følges i krydset. Samtidigt opstår der, som tidligere beskrevet, forskellige situationerhvor robotten ikke skal følge linien, men derimod udfører en opgave uafhængigt af linien.Alle beslutninger af denne type træffes af denne tråd. Beslutningen tages ud fra de data, derhentes fra robottens sensorer, dvs. liniesensor og omdrejningsencodere. Når robotten når etpunkt på banen, hvor linien ikke længere skal følges, afgør beslutningstråden hvad der i ste-det skal ske. Beslutningen om hvad robotten skal gøre, meldes videre til reguleringstråden,der styrer robottens bevægelser. Det er desuden beslutningstråden der håndterer startknap-pen, hvilken er monteret på robotten som beskrevet i kapitel 10. Bemærk at startknappenligeledes bruges som en stopknap, hvilket primært er anvendeligt i testhenseende.

• KommunikationstrådDenne tråd sørger for alt den trådløse kommunikation for robotten i testforløbet. Den sørgerfor at udsende ’beacons’ (cyklisk informationssignal) til en ekstern PC med alle de variablesom er interessante at få udlæst på en PC i forbindelse med fejlfinding. Dette være sigeksempelvis afstand til linien, hastighed og batterispænding.

Ud over de tråde, som softwaren består af, og den kerne, som styrer afviklingen af trådene, erdet desuden nødvendigt at have en indledende opstartsprocedure, som kan initialisere robottenog opsætte de forskellige anvendte moduler på mikrocontrolleren. Tilsvarende er det nødvendigtat have styr på nedlukningen af robotten.

Det skal understreges at der i det følgende ønskes at klarlægge strukturen af softwaren, herunderkommunikation og dataflow mellem tråde, mere end det ønskes at gennemgå egentlig program-kode. Mere specifikt indhold af hver tråd gennemgås i det følgende kapitel 15.

Idet det er blevet bestemt hvilke tråde softwaren skal bestå af, er det nødvendigt at se på hvilkekommunikationsgrænseflader der er imellem trådene og fra trådene til de perifere enheder, dvs.bluetoothmodulet samt startknappen, som er afbilledet på figur 14.7.

148 af 250 14. Softwareopbygning

Page 149: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

14.4 Overordnede grænseflader

14.4 Overordnede grænseflader

Som det er gennemgået i afsnittet omkring den preemptive kerne, kommunikerer alle trådeneigennem en beskedkø, ved at sætte beskeder på køen indeholdende tråden, der skal afvikles, ettimer-delay indtil tråden ønskes eksekveret, en tilstand samt eventuelle data, der skal anvendes iafviklingen af tråden.

På samme måde implementeres startknappen ved at lade knappen generere et interrupt, somsætter en besked på køen, således at beslutningen afvikles i en tilstand, der starter hhv. stopperrobotten. På samme måde vil en indkommende besked fra bluetoothmodulet, sætte en besked ikø, således at kommunikationstråden afvikles i en bestemt tilstand.

Det er dermed tydeligt at alle grænseflader i softwaren går igennem beskedkøen, hvad enten deter imellem trådene, eller fra et eksternt element til en tråd. På denne måde kan alle tråde kommu-nikere med hinanden på en veldefineret og struktureret måde. Dette er illustreret på figur 14.8. Påfiguren er også illustreret at det er reguleringstråden, der henter data fra robottens sensorer, samtbatteri, og desuden styrer motorerne. Motorerne styres dog som nævnt på baggrund af beslutnin-ger fra beslutningstråden.

Figur 14.8: Figuren viser de overordnede grænsefladerne imellem de forskellige tråde i pro-grammet. Som det fremgår sker alt kommunikation igennem en kø. Bemærk at reguleringstrådenalene kommunikerer med robottens aktører.

For at figuren forstås korrekt, er en symbolforklaring illustreret på figur 14.9.

14. Softwareopbygning 149 af 250

Page 150: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

14.4 Overordnede grænseflader

Figur 14.9: Forklaring af de forskellige symboler fra figur 14.8.

Hermed er der dannet overblik over trådenes overordnede grænseflader. De forskellige tilstandetrådene kan afvikles i, og arbejdet der udføres af hver enkelt tråd i en given tilstand, gennemgåsi kapitel 15.

Ud over at have veldefinerede grænseflader, er det nødvendigt at afgøre hvorledes softwaren skalsynkroniseres, dvs. hvilke realtidskrav der er gældende for de enkelte tråde. Dette gennemføres idet følgende

Håndtering af tidskritiske elementer

De diskrete overføringsfunktioner som er opstillet i de opstillede tilbagekoblingssløjfer i kapitel12, er bestemt ud fra en antaget fast samplingsfrekvens. Derfor er det nødvendigt at robottenssensorer samples med denne frekvens, hvilket betyder at tråden, som afviker denne sampling,ligeledes skal afvikles med en bestemt frekvens.

Som det fremgår af tilbagekoblingskapitlerne på side 116 og 133, skal sensorerne samples meden frekvens på 128 Hz. Dette betyder at tråden skal afvikles med en periode på T = 1/128 s '7,8 ms. Deadlinen for tråden er den samme som perioden, idet det blot er et krav at den kanafvikles 128 gange i sekundet.

Beslutningstråden skal afvikles lige så ofte som reguleringstråden, da den hele tiden skal over-våge reguleringstrådens målte data, ekesempeltvist registrerede kryds mv. Afviklingperioden forbeslutningstråden er derfor også T = 7,8 ms, og deadlinen er også den samme.

Af kravspecifikationen fremgår det at kommunikationen skal afvikles 10 gange i sekundet, hvil-ket giver denne tråd en periode på T = 100 ms. Ligesom for de to øvrige tråde vælges det atholde deadlinen ens med afviklingsperioden. Tidskravene til de tre tråde er tydeliggjort i tabellennedenfor:

Regulering Beslutning KommunikationT 7,8 ms 7,8 ms 100 msd 7,8 ms 7,8 ms 100 ms

Hvor:T er periodetiden for den pågældende trådd er deadlinen for den pågældende tråd

150 af 250 14. Softwareopbygning

Page 151: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

14.5 Mikrocontrollerens opbygning

Hvis reguleringstråden ikke overholder de givne tidskrav, risikeres at robotten ikke følger linien,da motorernes hastigheder ikke opdateres til tiden. Hvis beslutningen ikke overholder sin dead-line, risikeres det at robotten gør noget forkert, så som at følge den forkerte retning i et kryds.Der kan dog argumenteres for at den rent bevægelsesmæssige ændring ikke er så stor, så hvisdeadlinen overskrides kan konsekvensen i mange tilfælde være ubetydelig. På samme vis, hviskommunikationen overskrider sin deadline, vil de data der modtages på PCen ikke være helt op-datere, men igen vil konsekvenserne være begrænsede.

Som nævnt i den indledende gennemgang af kernen der arbejdes med, skal trådene samlet setoverholde timingskravet:

Ts =N

∑i=1

ci [s] (14.3)

Hvor:Ts er sampletiden for den mest tidskritiske tråd, som er reguleringen, dvs. Ts = 7,8 ms.N er det samlede antal af tråde.ci er afviklingstiden for tråd nr. i [s].

Det er nødvendigt at overveje hvorledes det forsøges at sikre at dette krav er overholdt. Specieltfor kommunikationstråden kan det være nødvendigt at tage særlige forbehold for at overholdekravet, da store dele af denne tråds opgave består i at kommunikere igennem mikrocontrollerensUSART til bluetoothmodulet, hvilket foregår meget langsommere end mikroprocessorberegnin-ger. Derfor risikeres at dette tager langt tid i forhold til den tid, der er til rådighed hvorved detrisikeres at deadlinen for trådene blive overskredet.

Den overordnede softwarestruktur er hermed gennemgået, hvorfor det er muligt at gennemgådet specifikke indhold af hver enkelt tråd, hvilket gøres i næste kapitel. Inden dette er det dognødvendigt at se nærmere på den softwaremæssige opbygning af mikrocontrolleren, samt detframework der følger med controlleren.

14.5 Mikrocontrollerens opbygning

Den softwaremæssige opbygning af mikrocontrolleren, gennemgås i flere trin. Først ses der nær-mere på opbygningen af mikrocontrolleren set fra softwaresiden, dvs. med henblik på de forskel-lige registre, hukommelse, interrupts osv. Dernæst ses der nærmere på det det framework der erudarbejdet til controlleren, samt hvorledes det kan anvendes i forbindelse med dette projekt.

14.5.1 Arkitektur

Robottens mikrocontroller AT32UC3A0512 har en 32-bit RISC mikroprocessor kerne med intern512 kB flash og 64 kB SRAM. Mikrocontrolleren har 16 arbejdsregistre a’ 32 bit (R0-R15), samt32 bit programcounter, linkcounter og stackpointer registre [4, s. 20].

14. Softwareopbygning 151 af 250

Page 152: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

14.5 Mikrocontrollerens opbygning

Mikrocontrolleren kan håndtere prioriterede interrupts, med prioritet 0-3 samt et non-maskableinterrupt [3, s. 25]. Ved et interrupt vil indholdet af registrene R8 til R12 automatisk blive pus-hed på stakken sammen med returadressen og statusregisteret. I afviklingen af interruptet kanregistrene R8 til R12 dermed frit anvendes [4, s. 22].

14.5.2 Software framework

Til at skrive softwaren, der skal afvikles af mikrocontrolleren, anvendes et framework, udarbej-det af Atmel. Dette framework består af en række drivere, biblioteker og aplikationer, der kananvendes med processoren, således en stor del basiskoden på forhånd er skrevet. Det er dermedikke er nødvendigt at starte helt fra bunden med alt koden. Frameworket indeholder desuden enmasse definitioner og funktioner der dels gør det nemmere at tilgå forskellige af mikrocontrolle-rens funktionaliteter, såsom ADC og USART, og dels gør koden mere overskuelig.

Ved at anvende frameworket spares der dermed en del tid, på opsætning af mikrocontrolleren,idet dette fra producentens side er klaret. Herved opnås også en stor grad af kodeskjulning, idetmange af Atmels funktioner kan anvendes, uden at vide specifikt hvordan de fungerer, så længeder er klarhed om hvordan funktionen kaldes, og hvad funktionen som slutresultat gør. Af sammeårsag vil de af Atmels funktioner der anvendes kun overfladisk blive beskrevet, da det findes tri-vielt at beskrive i detaljen hvorledes de fungerer. Softwaren udvikles i Atmels AVR32Studio, derunderstøtter den valgte mikrocontroller, og samtidig inkluderer det frameworket. AVR32Studioanvender en AVR32-gnu compiler. Koden skrives i sproget C.

Det omtalte framework består af en række drivers, som er skrevet til netop de forskellige modu-ler i AT32UC3A0512, og som således kan benyttes direkte eller omskrives og benyttes. Alle debenyttede moduler findes på den vedlagte billags cd i mappen:

/RoboCup/src/SOFTWARE_FRAMEWORK/DRIVERS.

14.5.3 Afviklingstid

Den samlede afvikling af trådene, skal som forklaret overholde timingskravet, som beskrevetved ligning 14.3. Derfor skal det bestemmes, hvor langt tid hver tråd tager at afvikle. Så længeen tråd blot bruger operationer internt i mikrocontrolleren, kan denne tid bestemmes blot ved at’tælle maskin-kodelinier’, idet mikrocontrolleren som nævnt anvender en RISC processor, sombeskrevet i afsnit 10.2.1. Dette betyder at eksempelvis beregninger vil tage en clock-cycle forprocessoren, som jo er 1/16 MHz = 62,5 ns. I mange tilfælde skal trådene imidlertid kommuni-kere med noget eksternt, eksempelvis en sensorenhed eller et kommunikationsmodul. Så snartdette er tilfældet, kan der ikke blot tælles maskinkodelinier, hvorfor det er nødvendigt enten atberegne på anden vis, eller måle det eksperimentielt.

Idet der er skabt indsigt, både i hvilke tråde programmet skal bestå af, hvorledes de skal kom-munikere med hinanden, og transporterer data, og ydermere er der skabt indsigt omkring kerne-strukturen af robotten, kan den software som udgør de enkelte tråde, udvikles. Dette gøres i detfølgende kapitel.

152 af 250 14. Softwareopbygning

Page 153: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Kapitel 15Robottens software

I dette kapitel gennemgås al robottens grundlæggende software. Herunder opstart og nedlukningsamt gennemgang af alle trådene. Trådene gennemgås ud fra den overordnede beskrivelse, derblev gennemgået i forrige kapitel. Der bør indledningsvis forklares, at der i dette kapitel er fokuspå robottens tråde samt hvilke tilstande de kan antage. Der ses således ikke direkte på kode ellerfunktioner, men derimod mere overordnet på hvordan trådene kaldes og hvad trådene gør i deresforskellige tilstande. Sidst i kapitlet findes en beskrivelse af hvorvidt de enkelte tilstande er imple-menteret og testet. Der henvises derudover til kodedokumentation og kildekode for gennemgangaf de enkelte tilstande.

Kildekoden til robottens software ses på medfølgende cd:/software/RoboCup/

Doxygen dokumentation af softwaren ses på medfølgende cd:/software/doxygen/

Bemærk kapitlets opbygning: Først gennemgås opstarts- og nedlukningsproceduren. Dette er ik-ke tråde, men nærmere funktioner, som blot kaldes én gang når systemet skal starte op eller lukkened. Dernæst gennemgås de tre egentlige tråde i hver sit afsnit.

15.1 Opstartsprocedure

Opstartsproceduren består af to dele. Den første kaldes modulopsætning, som tager hånd om op-sætningen af alle mikrocontrollerens interne og perifere moduler, og desuden opsætter robottenskerne. Dette er nødvendigt én gang, nemlig når robotten tændes. Den anden opstartsprocedu-re kaldes i det følgende for reguleringsopsætningen. Denne opsætning er nødvendig hver gangrobotten har stået stille. Formålet med reguleringsopsætningen, er at sørge for at robottens regu-lering startes op med fornuftige initialværdier. De to opstartsprocedurer beskrives i det følgende.

153 af 250

Page 154: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.1 Opstartsprocedure

15.1.1 Beskrivelse af opstartsproceduren

Modulopsætning

Initialiseringen starter med at opsætte mikrocontrolleren til at benytte den eksterne krystal, sommain clock generator. Herefter opsættes multiplexing af alle udgangsben, der skal konfigureres,så de får den ønskede funktionalitet, idet hvert ben kan opsættes til flere funktionaliteter. Herun-der konfigureres udgangsben til USART, ADC, PWM, SPI samt interruptben.

Mikrocontrolleren skal debugges og programmeres via en JTAG mkII. Dette kræver den hardwa-remæssige opsætning som beskrevet i appendiks G på side 227. Softwaremæssigt kræver det ikkemeget opsætning, blot skal microcontrolleren resettes via JTAG-interfacet første gang det ønskesat programmere denne via JTAG.

Microcontrolleren skal kommunikere via et bluetooth-modul, som er USART-kompatibelt. Mo-dulets hardwaremæssige opsætning, ses i afsnit 9.3 på side 90. Som beskrevet i dette afsnit, skalmodulet sættes op til at køre 9600 bps. En del af opstartsproceduren er ligeledes at opsætte inter-rupts, herunder real time interrupts til brug af kernen, USART interrupts til brug ved bluetooth-kommunikation og eksterne interrupts til brug af robottens eksterne startknap.

For at måle de analoge spændinger fra liniesensoren, benyttes en ADC. Denne opkobles til athave en opløsning på 8 bit.

PWM-signalerne til de fire motorer, initialiseres således at denne har en frekvens på 976,56 Hz,som bestemt i kapitlet omhandlende H-broer, og sættes til at have en duty cycle, ved start, på 0%.

Efter at SPI-kommunikationen er konfigureret, kan controlleren opsætte alle de perifere SPI-expanderne. Disse fungerer alle som en række indgange/udgange. De opsættes som følgende:

• De fire SPI-expandere, som aflæser encodernes countere sættes som input.

• Den SPI-expander, som styrer reset af encodernes countere sættes til output. I initialiserin-gen resettes alle encoderne.

• Den SPI-expander, som styrer funktionaliteten på H-broerne, sættes som output. Den sæt-tes til at initialisere H-broen så alle hjul kører i friløb.

Endeligt skal modulopsætningen initialisere systemets kerne. Dette består blot i at opsætte denlinkede liste, som beskedkøen består af.

Reguleringsopsætning

Reguleringsopsætningen vil, som nævnt, blive kaldt hver gang robotten har stået stille. Detteværende eksempelvis når robotten er blevet stoppet over bluetooth, via startknappen eller nårrobotten har været slukket. Reguleringsopsætningen skal garantere at robotten gør noget veldefi-neret, når den starter sit forløb.

Det første led i reguleringsopsætningen er, at H-broen sættes til fremadkørsel. Som det ses afafsnittene 12.3 på side 114 og 13.2 på side 129 består reguleringen af to differensligninger, som

154 af 250 15. Robottens software

Page 155: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.2 Nedlukningsprocedure

begge benytter sig af et tidsdelay på en sample. Dette betyder at når reguleringen startes, hardenne i princippet behov for to tidligere målinger og to tidligere outputs. Idet robotten står stille,og dermed ikke har disse målinger, eller output, er det vigtigt at værdierne for disse, manueltsættes til noget der gør at robotten får et godt opstartsforløb, dvs. robotten skal køre ligeud ogaccelerere.

For hastighedsreguleringen gøres dette ved manuelt at sætte den tidligere målte værdi til nul sam-tidigt med at encodercounterne nulstilles. Dette kan gøres fordi det vides at robotten står stillenår den startes op, dvs. hastighed og kørt afstand er nul. Derudover benytter algoritmen sig ogsåaf det sidste output, som heller ikke eksisterer ved opstart. Denne værdi tilskrives den ønskedereferenceværdi, fordi det er denne hastighed det ønskes at opnå. Som det ses af algoritmen, lig-ning 12.27 på side 116, resulterer dette i at hastighedsreguleringens to første målinger bliver nul.Samtidigt bliver sidste output den ønskede hastighed, hvorved robotten vil påtrykke en spændingpå hjulene, allerede ved første gennemløb af reguleringsalgoritmen. Herved fås en ønsket og vel-defineret opstart i hastighedsreguleringen.

For afstandsreguleringen kan den tidligere måling, ikke blot sættes til nul, idet det ikke vides hvorpå linien robotten er startet. Hvis værdien sættes til nul, mens robotten ikke står midt på linien,vil dette resultere i at robotten vil påtrykke en stor hastighedsdifference på de to hjul. Dette vilgøre at robotten vil starte med at slingre, og i værste tilfælde køre væk fra linien. Derfor starterrobotten med at måle afstanden til linien som en del af opstartsprocedure, før selve reguleringsal-goritmerne startes. Derudover sættes sidste output til nul. Således vil reguleringsalgoritmen, forafstandsreguleringen, første gang den kører have to identiske error-signaler samt et outputsignalsom er nul. Det ses af ligning 13.39 på side 133, at dette betyder at outputtet bliver tæt på nul,hvorved leadnetværket ikke vil påtrykke nogen hastighedsdifference. Dette gør at robotten vilstarte med at køre ligeud, hvilket er veldefineret og ønskeligt ved opstart.

15.2 Nedlukningsprocedure

Nedlukningsproceduren benyttes når robotten stoppes via startknappen eller via bluetooth. Nårrobotten stoppes ønskes det ikke at robotten genstartes, men blot at den pauser i sit afviklingsforløb og derved er i stand til at fortsætte når den bliver bedt om det.

15.2.1 Beskrivelse af nedlukningsproceduren

Når robotten bedes om at pause sit forløb, er det ønskeligt at robotten igen kan bedes om atgenoptage sit forløb. Hvis robotten er i gang med at følge linien, kræver denne genoptagelse afforløbet, at robotten stadigt er på linien efter den har været pauset. Der er flere muligheder forrobotten, når den skal stoppe sit forløb. Den kan lukke ned for PWM-signalet således at hjulenesmotorer ikke får signal. Dette vil dog resultere i at robotten vil trille et stykke frem, før den tilsidst, på grund af friktion, vil stoppe. Dette vil foregå uden regulering, hvorfor det kan resulterei at robotten kører væk fra linien, hvis den for eksempel er midt i et sving. Derfor implementerespause-funktionen istedet ved at robotten prompte sættes til fuld brems på alle fire hjul. Dette ud-føres ved at sætte robottens H-bro i bremsetilstand (tilstand 4 på figur 7.6 på side 57). Derudover

15. Robottens software 155 af 250

Page 156: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.3 Reguleringstråd

sættes duty-cyclen op til maksimum, for at bremse så meget som muligt. Resultatet er at robottenstopper indenfor få centimeter, og derved bliver på linien. Denne procedure håndteres af beslut-ningstråden, som beskrives i afsnit 15.4, da det i princippet er denne der ’beslutter’ at robottenskal pauses.

15.3 Reguleringstråd

Formålet med reguleringstråden, er at styre robottens motorer ud fra bestemte parametre. Detteværende eksempelvis afstanden til linien, hastighed for robotten, eller robottens placering på ba-nen. Motorerne skal styres ud fra de tilbagekoblingssløjfer der er opstillet i hhv. kapitel 12 og 13.

15.3.1 Beskrivelse af tråden

Reguleringstrådens primære opgave er at indhente målinger fra encoderne og eventuelt linie-sensor, samt udføre beregninger af hastighed og afstand til linien. Desuden skal hastigheden pårobottens motorer i begge sider, reguleres alt efter givne referenceværdier. Det er desuden regu-leringstrådens opgave at beregnes robottens totale tilbagelagte afstand, samt detektere eventuellekryds, eller hvis linien stopper.

Når encodercounterne er aflæst og nulstillet, hentes data fra liniesensorens photodioder, og derundersøges efterfølgende om robotten evt. befinder sig i et kryds, eller om robotten har tabt linienaf syne. Informationen omkring kryds eller mangel af linie, skal bruges i beslutningstråden. Hvisrobotten følger linien, skal det ligeledes bestemmes hvor stor afstanden til midten af denne er.

Et led i reguleringen er også at hente den aktuelle batterispænding, da denne er nødvendig for atberegne det PWM-signal, som vil give den ønskede spænding på motorerne. Desuden skal derkontrolleres om batterispændingen bliver kritisk. Batterispændingen betragtes som kritisk hvisden er under 9 V, idet batteriet består af tre celler, der hver har opgivet en minimumsspændingpå 2,7 V. Hvis batterispændingen er for lav, skal dette meddeles til beslutningstråden, som vilstoppe robotten samt sende en fejlmelding gennem kommunikationstråden til PC’en.

Referenceværdierne på hastighed og afstand, som reguleringen benytter, bestemmes ikke i regu-leringstråden selv, men fastsættes derimod i beslutningstråden, som sender denne information tilreguleringstråden.

Et sidste element i reguleringstråden er at den skal kunne modtage en forespørgsel fra kommu-nikationstråden og svare på denne. Dette er aktuelt, når kommunikationstråden ønsker at sendeet beacon, hvor den vil forespørge reguleringstråden efter forskellige værdier, herunder batteris-pænding, hastigheder mv.

15.3.2 Grænseflader til andre tråde

Som det fremgår har tråden grænseflader til begge de øvrige tråde, og som beskrevet i kapitel 14,er alle grænsefalderne igennem beskedkøen. Al trådens interaktion med de andre tråde er illu-streret på figur 15.1 og skal forstås således. I venstre side ses alle indkomne beskeder, det vil

156 af 250 15. Robottens software

Page 157: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.3 Reguleringstråd

sige hver gang reguleringstråden kaldes, sker det via en af de fire pile ind. Et kald kan ske frabeslutningstråden, fra kommunikationstråden eller reguleringstråden selv. På samme måde sesi højre side af figuren, alle de beskeder som reguleringstråden kan sende, til sig selv og de toøvrige tråde. På alle pilene er anført en tekst i firkantede parenteser. For de indgående beskederangiver teksten hvilken tilstand reguleringstråden afvikles i. For de udgående beskeder angiverteksten hvilke tilstand som det ønskes at afvikle modtagertråden i. I det følgende beskrives disseinteraktioner. For at tydeliggøre hvornår der i teksten er tale om en tilstand, angives disse altid ianførselstegn.

Figur 15.1: Reguleringstrådens grænseflader. Til venstre ses de kald, som reguleringstråden kanfå, og hvilken tilstand disse kald kommer i. Til højre ses kald, som reguleringstråden selv kanudføre. Bemærk at reguleringstråden kalder sig selv for at fastholde fast samplingsfrekvens.

Først og fremmest skal reguleringstråden udføre den egentlige regulering med den ønskede sam-plingsfrekvens. Dette gøres ved at reguleringstråden kalder sig selv hver gang den skal regule-re. Kaldet til sig selv foregår som det første i reguleringstråden, idet dette sikrer den ønskedesamplingsfrekvens, som beskrevet i afsnit 14.2.2. Hvis robotten, dvs. reguleringstråden, er i entilstand hvor den følger linien, kalder den sig selv i tilstanden ’Følg linie’. Men hvis robottenkører efter prædefinerede ruter, kalder reguleringstråden sig selv i tilstanden ’Prædefineret rute’.Dette uddybes i næste afsnit.

Fra beslutningstråden kommer der beskeder via beskedkøen, når reguleringen skal ændre denmåde, den regulerer på. Denne besked kalder reguleringstråden i tilstanden ’Ny reguleringsmå-de’. Beslutningstråden kan ved dette kald bede reguleringstråden om enten af følge linien ellerom at køre efter en prædefineret rute. Når reguleringstråden bliver bedt om dette, vil den begyndeat kalde sig selv i den dertilhørende tilstand med samme samplingsfrekvens som når den følgerlinien. Denne tilstand benyttes også hvis beslutningstråden ønsker at ændre de referenceværdier,som reguleringen benytter. Dette værende eksempelvis centrumhastighed når robotten følger li-nien, eller højre og venstre hastighed, når robotten kører prædefineret rute.

Reguleringstråden sender som nævnt besked til beslutningstråden om der er detekteret kryds, omlinien er forsvundet og hvad den tilbagelagte afstand er. Alle disse data skal beslutningstrådenbruge til at afgøre hvilke handlinger robotten skal udføre, hvilket uddybes i afsnit 15.4. Denne

15. Robottens software 157 af 250

Page 158: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.3 Reguleringstråd

besked sendes hver gang reguleringstråden har kørt et af sine egne kald, og beskeden som sendestil beslutningstråden sendes med tilstanden ’Foretag beslutning’

Kommunikationstråden sørger for at der med faste mellemrum sendes beacons via bluetooth.Dette foregår ved at kommunikationstråden forespørger reguleringstråden om værdier gennem’Forespørgsel regulering’. Reguleringstråden svarer tilbage på forespørgslen, med en besked tilkommunikationstrådens tilstand ’Beacon data’, indeholdende de nødvendige variable.

Hvis reguleringstråden detekterer at batterispænding er kritisk, skal den sende en fejlmeddelelsedirekte til kommunikationstråden ’Send error’, som så vil sende beskeden videre via bluetooth tilPC’en. Derudover skal reguleringstråden sende besked til beslutningstråden om at den skal sætterobotten i pause via ’Foretag beslutning’.

15.3.3 Trådens tilstande

Figur 15.1 viser al reguleringstrådens interaktion. Det bemærkes at der er fire ’indgange’ tilreguleringstråden, hvilket ses som fire pile dvs. indkommende beskeder. Det betyder at regule-ringstråden skal have fire afviklingstilstande, én til hver indgang:

Tilstand Kaldt af BeskrivelseFølg linje Kaldt af sig selv Regulering efter strejenPrædefineret rute Kaldt af sig selv Udelukkende hastighedsreguleringNy reguleringsmåde Beslutningstråden Information om skift af styringsmåde:

Efter linie eller prædefineret rute.Forespørgsel regulering Kommunikationstråden Forespørgsel på forskellig data, herun-

der hastigheder og kørt afstand.

Tabel 15.1: Tabel over hvilke tilstande, reguleringstråden kan antage.

I dette afsnit beskrives trådens egentlige funktionsmåde. Dette gøres ud fra de fire tilstande,som tråden kan antage (tabel 15.1 ), idet tråden udfører helt forskellige opgaver alt efter hvilkentilstand den kaldes i. Derudover beskrives hvilke inputargumenter de enkelte tilstande tager, samthvilke tråde der eventuelt kaldes i de enkelte tilstande.

Tilstanden ’Følg linie’

I tilstanden ’Følg linie’ består opgaven i af at måle på robottens sensorere og efterfølgende atregulere robotten. Denne opgave kan betragtes som tre moduler, der i store træk kan behandlesselvstændigt, hvilket også er antydet i diskussionen omkring antallet af tråde, i afsnit 14.3. De tremoduler kan da beskrives som:

• Encodermodul: Modulet henter og håndtere data fra omdrejningsencodere.

• Liniesensormodul: Modulet henter og håndtere på data fra liniesensor.

• Reguleringsmodul: Modulet samler data og udfører beregninger samt udfører reguleringenpå motorerne.

158 af 250 15. Robottens software

Page 159: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.3 Reguleringstråd

Encodermodulet beregner hastigheden på de fire motorer og liniesensormodulet beregner af-standen til linien, hvilket motorreguleringensmodulet bruger til at beregne det PWM signal, deenkelte motorer skal have. PWM signalet beregnes desuden ud fra batterispændingen. Disse sam-menhænge er illustreret på figur 15.2.

Figur 15.2: Interne grænseflader i reguleringstråden. De hvide blokke representerer de tre mo-duler. Bemærk at motorreguleringen giver fire PWM signaler, et til hvert hjul.

Flowet i reguleringstråden kan beskrives ud fra disse tre moduler, idet de udføres efter hinandeni førnævnte rækkefølge. Dette er illustreret på følgende tre flowcharts. Flowchart figur 15.3 viserencodermodulet, som gennemløbes som figuren viser det. Når dette er gennemløbet, fortsættespå næste flowchart, figur 15.4. Denne overgang er illustreret med punktet ’A’. Efter liniesen-sormodulet, fortsættes til selve reguleringen, som ses figur 15.5. De tre moduler og tilhørendeflowcharts beskrives i det følgende.

Encodermodul:På figur 15.3 ses flowchartet for encodermodulet. Det bemærkes at det første der sker, er at trådenkalder sig selv med et timer-delay, som sikrer den ønskede samplingsfrekvens. Dette gøres somsagt først i tråden for at holde konstant samplingsfrekvens.

Herefter hentes data fra hver enkelt encoder, gennem de tilhørende countere. Hver gang der hen-tes data fra encoderne, hentes værdierne 5 gange. Herefter sorteres de fem værdier fra højest tillavest, og derefter anvendes den midterste værdi, som den egentlige målte værdi. Dette gøresfordi det er erfaret at der kommer en del fejlmålinger fra encoderne, på grund af støj. Når defem målinger er gennemført nulstilles counterne. Idet nulstillingen også kan ødelægges af støj,udføres dette tre gange.

Ud fra counterværdierne beregnes hastigheden, samt den kørte afstand, hvilket er muligt da co-unterværdien repræsenterer en afstand, og det vides hvor lang tid der er gået siden counteren sidstblev læst og nulstillet. Hastigheden beregnes både samlet for robotten (centrumhastighed), og påhver motor. Til sidst i modulet gemmes alle de beregnede værdier.

15. Robottens software 159 af 250

Page 160: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.3 Reguleringstråd

Figur 15.3: Flowchartdiagram for encodermodulet. Flowchartet slutter med ’A’, hvilket erdet sted hvor liniesensormodulet skal forsætte vist på figur 15.4.

Liniesensormodul:På figur 15.4 ses flowchartet for modulet, der henter værdierne fra dioderne på liniesensorenog analysere data. Målingen foregår ved at der foretages 8 målinger på samme diode, hvoreftermiddelværdien af højeste og laveste måling benyttes. Dette foretages for alle fire dioder. Ud fradisse målinger, undersøges det, om robotten er i et kryds, eller om linien er forsvundet. Hvisen af de to ting er indtruffet, sendes en besked til beslutningstråden om dette, hvorefter trådenafsluttes. Hvis linien derimod kan detekteres, udregnes og gemmes afstanden til linien.

Figur 15.4: Flowchartdiagram for liniesensormodulet. Flowchartet starter ved ’A’, hvilket erdet sted hvor encodermodulet stoppede og liniesensormodulet skal fortsætte fra. ’B’ er det stedhvor motorreguleringsmodulet skal forsætte vist på figur 15.5.

160 af 250 15. Robottens software

Page 161: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.3 Reguleringstråd

Reguleringmodul:På figur 15.5 ses flowchartet for reguleringsmodulet. Som det ses starter modulet med at målebatterispændingen Vbat, og undersøge hvorvidt den er for lav dvs. under 9 V. Hvis batterispænd-ningen er for lav sendes to beskeder. En besked sendes til kommunikationstråden så denne kangive beskeden videre over bluetooth om at der er lav batterispænding. Den anden besked sen-des til beslutningstråden, med besked om at denne skal stoppe robotten. Hvis batterispændingenikke er for lav, kan duty-cylen af PWM signalet udregnes, således at motorerne påtrykkes denønskede middelspænding. Denne udregning foretages på baggrund af batterispændingen samtpå baggrund af liniesensormålingerne og hastighedsmålingerne via tilbagekoblingsalgoritmerne,som ses i afsnit 12 og 13.

Figur 15.5: Flowchartdiagram for reguleringsmodulet. Flowchartet starter ved ’B’, hvilketer det sted hvor liniesensormodulet stoppede og reguleringsmodulet skal fortsætte fra.

Tilstanden ’Prædefineret rute’

Denne tilstand minder meget om tilstanden ’Følg linie’, hvorfor den ikke vil blive udspecificetmeget. Denne tilstand kaldes når robotten ikke følger linien, men en prædefineret rute. Ligesomforrige tråd starter også denne tilstand med at kalde sig selv til afvikling i tilstanden ’Prædefineretrute’. Herefter gennemgås tilstanden som vist på flowchartet på figur 15.3 med den ene ændring,at det ikke er den samlede hastighed, som gemmes, men derimod kun hastigheden på hhv. højreog venstre hjul, idet disse to hastigheder benyttes af beslutningstråden til at beregne den præde-finerede rute, som køres. Dernæst afvikles også flowchartet for liniesensormodulet på figur 15.4med den ændring, at der kun undersøges for kryds og om linien kan ses. Der beregnes altså ik-ke en afstand til linien. Til sidst udføres også reguleringsmodulet vist i flowchartet figur 15.5med den ædring, at der ikke benyttes afstandsregulering men blot hastighedsregulering i højre ogvenstre side.

15. Robottens software 161 af 250

Page 162: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.3 Reguleringstråd

Tilstanden ’Ny reguleringsmåde’

På figur 15.6 ses flowchartet hørende til tilstanden ’Ny reguleringsmåde’. Denne tilstand har toopgaver. For det første kan den ændre i reguleringsmåden. Beskeden kan enten fortælle, at derskal skiftes til at køre efter linien eller der skal skiftes til at køre en prædefineret rute. Virkemådenbeskrives ved følgende eksempel: Robotten kører efter ’Følg linie’ og reguleringstråden får enbesked fra beslutningstråden, som angiver at reguleringen nu skal ændre til at køre ’Prædefineretrute’. På dette tidspunkt vil reguleringstråden allerede have sat en ’Følg linie’ besked i kø. Denneskal reguleringstråden slette, hvorefter den skal sætte en ny besked i kø, hvor den istedet kaldesi tilstanden ’Prædefineret rute’. Såldedes vil reguleringstråden kunne ændre den sekventielle af-vikling af enten ’Prædefineret rute’ eller ’Følg linje’.

’Ny reguleringsmåde’ tilstandens anden opgave er, at den kan opdatere referenceværdier. Dissereferenceværdier fås fra beslutningstråden gennem beskeden. Herigennem kan det eksempelvisbestemmes, at reguleringstråden skal sørge for at robotten kører med 1 m/s og følger linien. El-ler den kan bestemmes at der skal køre prædefineret, med hastighederne: højre hjul 0,5 m/s ogvenstre hjul med 0,75 m/s. Disse referenceværdier vil fastholdes indtil reguleringstråden får enny besked i tilstanden ’Ny reguleringsmåde’.

Figur 15.6: Flowchartdiagram for tråden der henter ny data til reguleringen og bestemmer omder skal køres væk fra linien.

Tilstanden ’Forespørgsel regulering’

På figur 15.7 ses et flowchart hørende til tilstanden ’Forespørgsel regulering’. Denne tilstandbliver kaldt, når kommunikationstråden har brug for beacon-data, den skal sende over bluetooth.Disse værdier indbefatter batterispænding, gennemsnitshastighed, kørt afstand samt afstand tillinien. Værdierne samles og sendes i en besked til kommunikationstråden.

162 af 250 15. Robottens software

Page 163: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.4 Beslutningstråd

Figur 15.7: Flowchartdiagram for tilstanden, der sender ’beacon’ variabler til kommunikations-tråden.

15.3.4 Trådens funktioner

Kildekoden for funktionerne, og den egentlige afvikling af tråden kan ses på bilags CD’en, underfølgende stier:

/software/RoboCup/src/THREADS/REGULATION

/software/RoboCup/src/THREADS/SPEEDSENSOR

/software/RoboCup/src/THREADS/LINESENSOR

15.4 Beslutningstråd

Beslutningstråden er den tråd, der tilføjer autonomitet til robotten. Formålet med tråden er at gørerobotten i stand til at træffe beslutninger om dens fremtidige færden, alt efter hvor på banen denbefinder sig.

15.4.1 Beskrivelse af tråden

Beslutningstråden træffer beslutninger på baggrund af data fra reguleringstråden, som behandleraf robottens sensorer. Sensorerne giver, i et vis omfang, mulighed for at bestemme robottensposition på banen. Beslutningstrådens primære beslutningsgrundlag, er hvorvidt der passereskryds, altså steder hvor linien på den ene eller anden vis forgrener sig. Det bestemmes på forhåndhvilken rute rundt på banen robotten ønskes at følge, og beslutningstråden skal herudfra træffede rigtige valg, når der detekteres et kryds. Beslutningstråden skal således eksempelvis dikterehvorvidt robotten skal køre til højre eller venstre i en forgrening.

I kraft af at reguleringstråden, som håndterer liniesensoren, udfører målinger adskillige gange isekundet, vil samme kryds blive detekteret flere gange ved overkørsel. Hver gang det detekteres,vil reguleringstråden give beslutningstråden besked herom, som beskrevet i afsnit 15.3. Det erderfor beslutningstrådens opgave at bestemme hvorvidt et detekteret kryds er ’nyt’ kryds, ellerblot et allerede registreret kryds, som blot detekteres igen. Samtidigt skal eventuelle fejlmålingerfra reguleringstråden sorteres fra, ved at et kryds ikke tælles som nyt, før det er blevet detekteretmere end blot een gang. Beslutningstråden skal dermed holde styr på hvor mange ’rigtige’ krydsder er passeret, for at kende robottens position på banen.

15. Robottens software 163 af 250

Page 164: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.4 Beslutningstråd

Den kørte afstand, som reguleringstråden beregner på baggrund af omdrejningsencoderne, an-vendes hovedsageligt når robotten skal færdes væk fra linien, altså følge en prædefineret rute.Dette gør sig gældende de steder på banen hvor linien ophører og de steder hvor robotten skaludføre en opgave som er væk fra linien.

Et andet element som beslutningstråden skal administrere, er startknappen, som er monteret pårobotten som beskrevet i kapitel 10. Startknappen skal gøre det muligt for en bruger, at signaleretil robotten, at den er placeret ved startpositionen på RoboCup banen (se figur 15.11), og at detønskes at igangsætte gennemkørselen af banen. Samtidigt ønskes det, i testhenseende, at kunneafbryde robottens banegennemkørsel midlertidigt ved hjælp af startknappen, dvs. at sætte robot-ten på ’pause’, og efterfølgende genoptage banegennemkørslen ved igen at trykke på knappen.

Et sidste område som beslutningstråden skal kunne håndterere, er at modtage data fra kommuni-kationstråden. Dette være sig ekempelvis enten fordi der forespørges en variabelværdi, som skaludsendes med beacon, eller fordi kommunikationstråden kommer med en værdi, som skal over-skrive eksisterende data i beslutningstråden. Eksempelvis hvis det under test, ønskes at sænkerobottens hastighed, uden at skulle brænde softwaren på ny til mikrocontrolleren. På trods af, atdet er reguleringstråden som regulerer robottens hastighed, er det beslutningstråden der sætterreferencen til denne, og det skal derfor gå denne vej igennem.

Grænseflader til andre tråde

På figur 15.8 ses beslutningstrådens grænseflader til de andre tråde. Figurens skal forstås påsamme måde som figur 15.1 på side 157. Ligesom før er tilstande på figuren angivet i kantedeparenteser, og i teksten vises de med anførselstegn. Som det ses af figuren, kan beslutningstrå-den startes af både reguleringstråden og kommunikationstråden. Reguleringstråden vil altid givebesked til beslutningstråden efter en endt regulering, hvorfor reguleringstråden også vil blive af-viklet sekventielt med samme frekvens som reguleringstråden, i denne tilstand. Kaldet foregår tilbeslutningstrådens ’Foretage beslutning’ tilstand.

Når beslutningstråden har truffet en beslutningen om hvordan robotten skal agere, på baggrundaf de modtagne data, skal den have mulighed for, at videregive den valgte handling til regule-ringstråden. Til dette anvendes reguleringstrådens tilstand ’Ny reguleringsmåde’. Handlingen,som videregives, består dels i hvorvidt det ønskes at følge linien eller ej, samt hvilken hastighedder skal køres med på robottens to sider eller en samlet hastighed hvis linien skal følges. Dennekommunikation fra beslutningstråd til reguleringstråd foregår dog kun når der tages en ny beslut-ning, altså en som varierer fra det der sidst blev sendt.

Ligeledes er der grænseflade til kommunikationstråden, idet kommunikationstråden som beskre-vet, kan ændre på variable gennem ’Opdater beslutning’. Desuden kan kommunikationstrådenforespørge data, når den skal sende beacons. Dette gøres gennem ’Forespørsel beslutning’ til-standen. Svaret på forespørgselen sendes til kommunikationstråden, gennem dennes ’Beacondata’ tilstand.

Endeligt er der også en grænseflade til startknappen som ikke er nogen tråd, men blot en eksternenhed. Den vil, når der trykkes på den, sætte en besked på køen, til beslutningstrådens ’Startknap’tilstand. Herefter kan beslutningstråden bede reguleringstråden, om at sætte robotten i pause, el-

164 af 250 15. Robottens software

Page 165: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.4 Beslutningstråd

ler genoptage afvikling, hvis den i forvejen var sat på pause.

Beslutningstråden skal desuden være i stand til at sende en fejlmelding til kommunikationst-rådens ’Send error’ tilstand. Dette benyttes eksempelvis, hvis robotten kommer til et sted påbanen, den ikke genkender. Kommunikationstråden vil så videresende dette data, over bluetooth,til PC’en.

Figur 15.8: Beslutningstrådens grænseflader. Til venstre ses de kald, som beslutningstråden kanfå, og hvilken tilstand disse kald kommer i. Til højre ses kald, som beslutningstråden selv kanudføre. Bemærk at beslutningstråden startes af reguleringstråden efter hver endt regulering, dvs.med fast frekvens.

15.4.2 Trådens tilstande

Ud fra den ovenstående gennemgang, kan selve opbygningen af tråden fastlægges. Som det sesaf figur 15.8 skal beslutningstråden kunne kaldes på fire forskellige måder, hvilken giver trådenfire forskellige tilstande. Disse tilstande ses i tabel 15.2.

Tilstand Kaldt af BeskrivelseStartknap Startknap interupt Robotten startes eller pasusesForespørsel beslutning Kommunikationstråden Forespørsel af værdi til beaconOpdatering beslutning Kommunikationstråden Ny værdi som beslutningstråden

skal antageForetag beslutning Reguleringstråden Træf beslutninger fra regule-

ringsdata

Tabel 15.2: Tabel over hvilke tilstande, beslutningstråden kan antage.

I det følgende er et afsnit samt et flowchart til hver af de fire tilstande.

15. Robottens software 165 af 250

Page 166: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.4 Beslutningstråd

Tilstanden ’Startknap’

På figur 15.9 ses flowchartet hørende til tilstanden ’Startknap’. I denne tilstand skal beslutningst-råden blot sørge for at ændre værdien af en kør/stop indikator til det modsatte. Altså hvis tilstan-den i forvejen er kør, skal den ændres til stop og vice versa. Denne indikator bruges i tilstanden’Foretag beslutning’, som en del af beslutningsgrundlaget. Hvis indikatoren eksempelvis ændrestil stop, vil det blive besluttet at køre nedlukningsproceduren, næste gang beslutningstråden af-vikles i tilstanden ’Foretag beslutning’. Hvad dette indebærer, tydeliggøres i gennemgangen aftilstanden ’Foretag beslutning’.

Figur 15.9: Flowchart over beslutningstråden i tilstanden ’Startknap’

Tilstanden ’Forespørsel beslutning’

Tilstanden ’Forespørsel beslutning’ er tilsvarende tilstanden i reguleringstråden kaldet ’Fore-spørgsel regulering’, hvis flowchart ses i figur 15.7 på side 163. Beslutningstråden kaldes somsagt i denne tilstand når kommunikationstråden forespørger beacon-data. Indeholdende i beske-den fra kommunikationstråden, er information om hvilken værdi som forespørges. Dette kaneksempelvis være antallet af passerede kryds.

Tilstanden ’Opdater beslutning’

Beslutningstråden kaldes i tilstanden ’Opdater beslutning’ af kommunikationstråden, når denneønsker at overskrive eksisterende data i beslutningstråden. Ved at overskrive udvalgte variable ibeslutningstråden, kan robottens rute, hastighed mv. styres, via bluetooth, fra PC’en. Dette kangøres ved at overskrive date i den handlingstabel som robotten tager beslutninger ud fra, hvilkenpræsenteres under gennemgangen af tilstanden ’Foretag beslutning’.

Tilstanden ’Foretag beslutning’

På figur 15.10 ses et flowchart hørende til tilstanden ’Foretag beslutning’. Denne tilstand anven-des når reguleringstråden sender beskeder til beslutningstråden. Reguleringstråden sender be-skeder indeholdende de data, som bruges til at træffe beslutninger ud fra. Når reguleringstrådengiver besked om at et kryds er detekteret, fem gange i træk, godtager beslutningstråden det somet ’rigtigt’ kryds, og ikke bare en fejlmåling. På figur 15.10 er dette samlet set indbefattet i kassen>Er der detekteret kryds<.

166 af 250 15. Robottens software

Page 167: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.4 Beslutningstråd

Figur 15.10: Flowchart over beslutningstråden i tilstand ’Foretag beslutning’

Ud over dette noteres den tilbagelagte afstand, til det tidspunkt, hvor et kryds er godtaget af be-slutningstråden. Dette gøres for at undgå samme kryds detekteres flere gange, idet beslutningst-råden først vil godtage næste kryds, når der er kørt yderligere mindst 20 cm.

Når et nyt kryds er godkendt, optælles antallet af passerede kryds, hvilket anvendes som endel af beslutningsgrundlaget for hvilke handlinger robotten skal udføre. Antallet af passeredekryds, tælles dog ikke op, hvis robotten ikke kører efter linien. Dette skyldes, at det forløb dergennemkøres, eksempelvis under en prædefineret rute, ikke skal indgå som en del af beslutnings-grundlaget. Først når den prædefinerede rute er tilendebragt, skal robotten igen begynde at tællekryds. På denne vis undgås at robotten forvirres af de ting der sker under den prædefinerede rute.Dette kunne eksempelvis være hvis robotten, under en prædefineret rute, krydser en linie, hvilkenvil fremstå som et kryds, i kraft af liniesensoren virkemåde. Bemærk at dette ikke umiddelbartfremgår af flowchartet, figur 15.10, da det er en del af blokken ’optæl antal passerede kryds’, attjekke hvorvidt linien følges eller ej.

Hvis linien er udenfor liniesensorens detektionsområde, undersøges på samme vis om målingenkan være en fejlmåling, ved at kræve et vis antal målinger i træk, der alle indikerer linien er væk.Dette er ligesom godkendelsen af kryds, indbefattet i >Er linien væk< kassen. Hvis målingenbestemmes at være pålidelig, sættes en indikator, som anvendes som en del af beslutningsgrund-laget. Dette gør sig kun gældende når der køres efter linien, af samme årsag som ved krydsde-tektering. Når der ikke køres efter linien, registreres det dog stadigt hvorvidt linien er væk ellerej. Dette bruges dog kun af de funktioner som skal udføre de handlinger, som skal gøre sig gæl-

15. Robottens software 167 af 250

Page 168: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.4 Beslutningstråd

dende når linien ikke følges. Eksempelvis hvis en funktion har til opgave af køre ligeud til linienmødes, skal funktionen have mulighed for at vide hvornår linien mødes. Bemærk at dette ikkeumiddelbart fremgår af flowchartet, figur 15.10, idet det er en del af blokken ’Indiker at linien ermistet’, at tjekke hvorvidt linien følges eller ej.

Et parameter der ligeledes indgår som en del af beslutningsgrundlaget, er kør/stop tilstanden,hvilken styres af startknappen, som beskrevet under tilstanden ’Startknap’.

Efterfølgende sammenlignes de givne parametre med en handlingstabel, som angiver hvilkenhandling der skal gøre sig gældende i den pågældende situation. Til sidst sendes en besked tilreguleringstråden, indeholdende de variable som skal bruges for at udføre den ønskede handling.Denne besked sendes dog kun når der er ændringer i reguleringsmåden.

For at udforme handlingstabellen som beslutningstråden skal arbejde efter, skal det fastlæggeshvilken rute gennem RoboCup banen det ønskes at robotten skal følge. På figur 15.11, ses Ro-boCup banen fra 2008, samt den rute det ønskes at følge. Beskrivelsen af selve banen, samt densforhindringer, findes i appendiks B side 193. Hver gang der passeres et kryds eller linien ophørerskal beslutningstråden foretage et valg. Det valg, der ønskes at beslutningstråden skal udføre, ervist med de røde stiplede pile. Bemærk at de røde pile følges i alfabetisk rækkefølge.

Ud fra ruteoversigten, på figur 15.11, kan det afgøres hvilke handlinger der skal gøre sig gæl-dende, når de forskellige kryds detekteres. Udover de handlinger, som skal gøre sig gældende påbaggrund af den ønskede rute, er der enkelte handlinger som skal gøre sig gældende i specielletilfælde. Dette være sig eksempelvis når der trykkes på startknappen. Hvis kør/stop tilstanden iforvejen var kør, vil den som sagt ændres til stop. Hermed skal nedlukningsproceduren køres,således robotten bremser. Hvis tilstanden, ved et tryk på startknappen, ændres tilbage, skal robot-ten forsætte hvor den slap. Hvis linien mistes et sted på banen, hvor robotten regner med at derskal være en linie, skal robotten bakke tilbage, i et forsøg på at finde linien igen. Ligeledes hvisrobotten detekterer flere kryds end forventet, er der noget der er gået galt, hvorfor robotten blotskal køre nedlukningsproceduren og udsende en fejlmeddelse.

168 af 250 15. Robottens software

Page 169: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.4 Beslutningstråd

start

1 2 3 4 5 6 7 8 90 m

M

B

A

C

D

EF

G

H

I

JK

L

N

O

P

0,5

0,35

0,25

0,2

1,0

1,9

2,7

1,9

135

45

45

135

Figur 15.11: Flowchart over beslutningstråden

Den samlede handlingstabel er listet i tabel 15.3. Feltet ’Handlingsbetegnelse’ angiver enten detsted på banen, hvor en handling skal udføres, eller en ekstraordinær handling, som ikke er en delaf en ’standard gennemkørsel’. Bemærk at ’X’ i tabellen bruges til at betegne hvis en parameterikke har indflydelse på om handlingen skal udføres. Symbolet ’!’ anvendes til at angive ’ikke’.Vildspor handlingen, skal dermed kun gøre sig gældende, hvis antallet er kryds ikke er 5 eller 13.

15. Robottens software 169 af 250

Page 170: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.4 Beslutningstråd

Handlings Kør/stop Antal linie mistet Handlingbetegnelse indikator krydsStart kør 0 nej Følg linie.A kør 1 nej Følg linie ligeud.B kør 2 nej Følg linien til venstre.C kør 3 nej Drej 90 mod højre og følg derefter linien.D kør 4 nej Kør ligeud.E kør 5 nej Drej 90 mod højre og følg derefter linien.F kør 5 ja Prædefineret rute 1.G kør 6 nej Kør ligeud til linie mødes.H kør 7 nej Drej 90 mod højre og følg derefter linien.I kør 8 nej Følg linien ligeud.J kør 9 nej Følg linien ligeud.K kør 10 nej Prædefineret rute 2.L kør 11 nej Drej 90 mod højre og følg derefter linien.M kør 12 nej Følg linien ligeud.N kør 13 nej Følg linien ligeud.O kør 13 ja Prædefineret rute 3.P kør 14 nej Prædefineret rute 4.Vildspor kør !5 og !13 ja Kør baglæns til linie detekteres.Pause stop X X Kør nedlukningsprocedure.Fejl kør >14 X Kør nedlukningsprocedure og send fejl.

Tabel 15.3: Tabellen lister hvilke handlinger der skal gøre sig gældende i de forskellige krydssom robotten møder.

Indholdet af de prædefinerede ruter, som omtales i handlingstabellen 15.3, kan bestemmes ud frafigur 15.11. Ruterne er som følger:

• Prædefineret rute 1: Kør ligeud 0,2 m, drej 90 mod højre, kør ligeud til linie mødes, drej90 mod venstre, følg linie.

• Prædefineret rute 2: Drej 90 mod højre, følg linien 1 m, kør i en halvcirkel med radius0,35 m mod højre, kør i en halvcirkel med radius 0,25 m mod venstre, kør ligeud 1,0 m,kør i en cirkel med radius 0,5 m mod venstre til linien mødes, følg linie.

• Prædefineret rute 3: Kør ligeud til linie mødes, drej 90 mod højre, følg linie.

• Prædefineret rute 4: Drej 90 mod højre, kør ligeud 1,0 m, drej 45 mod højre, kør ligeud1,9 m, drej 135 mod venstre, kør ligeud 2,7 m, drej 135 mod venstre, kør ligeud 1,9 m,drej 45 mod højre, kør ligeud til steg mødes, drej 90 mod højre, følg linie.

Handlingstabellen og de prædefinerede ruter, implementeres i beslutningstråden. Hvis det på etsenere tidspunkt ønskes at ændre robotten rute gennem banen, ændres blot i handlingstabellen.I kraft af, at baneoversigten ikke er helt målfast, skal de angivne kørselslængder evt. tilpassesefterfølgende, når robotten testkøres på den rigtige bane. Målene som er angivet på figur 15.11er alle i meter.

170 af 250 15. Robottens software

Page 171: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.4 Beslutningstråd

15.4.3 Trådens funktioner

Kildekoden for funktionerne, og den egentlige afvikling af tråden kan ses på bilagscden, underfølgende stier:

/software/RoboCup/src/THREADS/DECISION

Virkemåden, for de funktioner der anvendes til at udføre selve handlingerne, forklares i det føl-gende, da disses virkemåde adskiller sig fra de resterende funktioner i beslutningstråden. I kraftaf at kernen er en NPK, kan trådene ikke afbrydes under afvikling. Hvis en funktion eksempel-vis har til opgave at køre robotten 2 m ligeud, vil det i realiteten kunne tage flere sekunder, føropgaven er fuldført. Funktionen må dog ikke tage flere sekunder at afvikle, da den blokerer forde andre tråde mens den kører, hvormed realtidskravene ikke kan overholdes. For at løse denneproblemstilling, konstrueres funktionerne således at de ikke udfører hele den opgave de er sattil, af én gang. De returnerer derimod inden opgaven er fuldført, med en returværdi, som for-tæller beslutningstråden at det er nødvendigt at kalde funktionen igen, for at fuldføre opgaven.Funktionerne returnerer ’1’ hvis de ikke er færdige med deres opgave og ’0’ hvis de er. Hvergang beslutningstråden gennemløbes i tilstanden ’Bestem handling’, afvikles den ønskede funk-tion én gang. Næste gennemløb afvikles den igen, hvilket gentages til funktionen melder at havefuldført opgaven. I kraft af at funktionen fra første gang den kaldes, har igangsat den ønskedehandling, ved at sende den til reguleringstråden, vil handlingen løbende være under udførelse,selv når funktionen ikke er aktiv. Måden hvorpå dette realiseres, er ved at gøre funktionerne istand til at huske deres sidste returværdi. Dette bruges af funktionerne, til at bestemme hvorvidtder skal påbegyndes en ny handling eller blot forsættes på en gammel. Hvis sidste returværdi var’0’ betyder det at der skal påbegyndes en ny handling, hvorimod ’1’ betyder at den skal fortsættemed en igangværende.

For at give et eksempel betragtes en funktion som skal få robotten til at køre 2 m ligeud. Førstegang funktionen afvikles i et handlingsforløb, vil den huske at den sidste returværdi var ’0’. Denskal derfor påbegynde en ny handling. Dette gøres ved at gemme robottens kørte afstand, sommodtages fra reguleringstråden gennem beskedkøen, i en statisk variabel til senere sammenlig-ning. Derefter ligges en besked til reguleringstråden, på beskedkøen, indeholdende de variablesom får robotten til at køre ligeud med en given hastighed. Funktionen afslutter herefter medreturværdien ’1’, eftersom opgaven endnu ikke er fuldført. Beslutningstråden ved hermed, at deter nødvendigt at afvikle funktionen igen, hvilket gøres næste gang beslutningstråden får beskedom at køre i tilstanden ’Bestem handling’. Når funktionen afvikles næste gang, husker den at densidste returværdi var ’1’. Hermed sammenligner den kørte afstand, som i mellemtiden har ændretsig, med den afstand der blev gemt under første afvikling, for at se om robotten har kørt 2 m iforhold til den gemte værdi. Denne procedure gentages indtil robotten faktisk har kørt 2 m, ogfunktionen returnerer dermed ’0’ idet dens opgave er fuldført.

15. Robottens software 171 af 250

Page 172: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.5 Kommunikationtråd

15.5 Kommunikationtråd

Formålet med tråden er at håndtere det data, der sendes eller modtages over robottens bluetoothmodul som beskrevet i kapitel 9.

15.5.1 Beskrivelse af tråden

Tråden styrer robottens kommunikation med PC’en. Hovedparten af kommunikationen består i atsamle og sende parametere fra robottens andre tråde til PC’en. Dette er den såkaldte ’beacon’ somkommunikationstråden skal sende med en given frekvens. Denne beacon indeholder en rækkeoplysninger om f.eks. hastighed af robottens hjul, robottens samlede hastighed, den samledekørte afstand, afstanden til linien, samt batterispændingen.

Denne beacon skal, som beskrevet i krav 36 i kravspecifikationen, sendes 10 gange per sekund.For ikke at blokere de andre trådes afvikling, sendes beacon-parametrene enkeltvis, hvilket gør atsendetidspunkterne kan fordeles jævnt ud over den tid, kommunikationstråden har til rådighed.

Udover at sende beacons til PC’en, skal tråden desuden være i stand til at sende fejlmeddelserfra de to andre tråde til PC’en.

Tråden skal desuden modtage beskeder fra PC’en og videresende disse til beslutningstråden.Dette er tilfældet når det via PC ønskes at ændre på forskellige parametre, eksempelvis indholdeti handlingstabellen. Dette gøres således gennem kommunikationstråden.

15.5.2 Grænseflader til andre tråde

I det følgende beskrives kommunikationstråden græsneflader til sig selv og de andre tråde. Sefigur 15.12. I det følgende gennemgås trådens forskellige tilstande.

Kommunikationtråden sender hele tiden beacons sekventielt, hvorfor kommunikationstråden al-tid skal kalde sig selv i starten af tilstanden ’Send beacon’.

Som beskrevet vil kommunikationstråden splittet sine beacons op i små stykker, og sende demen parameter af gangen, for ikke at låse controlleren over lang tid. Dette gøres ved, idet beacon-tilstanden startes, at sætte en hel række beskeder i kø med et bestemt tidsinterval mellem hver.Dette gøres med de to tilstande ’Forespørg beslutning’ og ’Forespørg regulering’. Disse beskederer alle til både reguleringstråden og beslutningstråden. Hver besked anmoder hhv. beslutnings-og reguleringstråden, om én enkelt variabel. Reguleringstråden og beslutningstråden sender svartilbage med værdien af den forespurgte variabel, til kommunikationstrådens tilstand ’Beacon da-ta’. I denne tilstand sender kommunikationstråden sende de modtagne data videre over bluetooth.Idet de forskellige data i et beacon forespørges én parameter af gangen, vil de også modtages énparameter af gangen, og de kan dermed sendes én parameter af gangen. På denne måde optagertråden ikke nær så lang tid, som hvis den skulle sende værdierne for en lang række parametre, påén gang.

Hvis der fra PC’en, gennem bluetooth, vil ændres en værdi i beslutningstråden, vil dette modta-ges i tilstanden ’PC opdatering’. Her vil kommunikationstråden opdatere den pågældende værdi,

172 af 250 15. Robottens software

Page 173: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.5 Kommunikationtråd

ved at sende en besked videre til beslutningstråden med tilstanden ’Opdater beslutning’, som in-deholder den værdi, der skal ændres.

Tilstand ’Send error’, som kaldes af beslutningstråden eller reguleringstråden, hvis disse har fejl-meddelelser, som skal sendes. Kommunikationstråden vil videresende dette data via bluetooth.

Figur 15.12: Kommunikationstrådens grænseflader. Til venstre ses de kald, som kommunika-tionstråden kan få, og hvilken tilstand disse kald kommer i. Til højre ses kald, som kommuni-kationstråden selv kan udføre. Bemærk at kommunikationstråden kalder sig selv med en fastfrekvens for herved at garantere en sekventiel afsendelse af beacons.

15.5.3 Trådens tilstande

Ud fra den ovenstående gennemgang, og specielt figur 15.12, kan selve opbygningen af trådenfastlægges. I første omgang deles tråden op i afviklingstilstande. Som det ses af figur 15.12 kankommunikationstråden kaldes på fire forskellige måder, hvorfor det vælges at beslutningstrådenskal have fire forskellige tilstande. Disse tilstande ses i tabel 15.2.

Tilstand Kaldt af BeskrivelseSend beacon Sig selv Tilstanden sørger for den sekventielle

beaconafsendelseBeacon data Beslutningstråden eller

kommunikationstrådenKommunikationtråden får svar på sineforespørgsler og kan sende dataen vi-dere til PC

PC opdatering Bluetooth Fra PC sendes en værdi, som skal op-dateres.

Send error Beslutningstråden ellerkommunikationstråden

Kommunikationtråden skal videresen-de en fejlmeddelelse.

Tabel 15.4: Tabel over hvilke tilstande, reguleringstråden kan antage.

Disse fire tilstande vil blive beskrevet i det følgende. Dog vil der først beskrives hvorledes kom-munikationstråden interagerer med bluetoothmodulet.

15. Robottens software 173 af 250

Page 174: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.5 Kommunikationtråd

Protokol mellem bluetooth og kommunikationstråden

For at bluetoothkommunikationen kan fungere, skal der opstilles en protokol for hvilket byte-mønster der sendes. Dette gælder kommunikationen mellem bluetoothmodul og kommunika-tionstråden. For at vide hvilken information, der sendes, vælges det at at påsætte en ’headerbyte’ved transmissionen af hver enkelt parameter. Headerbyten beskriver hvilken information der sen-des. De forskellige muligheder for headerbytes er vist i tabel 15.5, alt efter hvilken parameter dersendes eller modtages.

Header Indhold Afsender0x01 Beaconværdi hastighed højre forhjul Robotten0x02 Beaconværdi hastighed højre baghjul Robotten0x03 Beaconværdi hastighed venstre forhjul Robotten0x04 Beaconværdi hastighed venstre baghjul Robotten0x05 Beaconværdi samlet hastighed Robotten0x06 Beaconværdi kørt afstand venstre side Robotten0x07 Beaconværdi kørt afstand højre side Robotten0x08 Beaconværdi afstand til linie Robotten0x09 Beaconværdi batterispænding Robotten0x0A Beaconværdi antal passerede kryds Robotten0x0B Beaconværdi linie mistet Robotten0x0C Beaconværdi kør/stop tilstand Robotten0x0D Beaconværdi reference hastighed højre Robotten0x0E Beaconværdi reference hastighed venstre Robotten0x29 Fejl: lav batterispænding Robotten0x2A Fejl: for mange kryds registreret Robotten0x1A Sæt antal passerede kryds PC0x1B Sæt kør/stop tilstand PC0x1C Sæt linie mistet PC0x1D Sæt værdi i handlingstabel PC

Tabel 15.5: Liste over mulige headerbytes samt deres anvendelse.

Protokollen garanterer, at softwaren på robotten og softwaren på PC’en kompatible. Figur 15.13viser et eksempel på bytemønsteret i en > sæt antal passerede kryds < kommando. Første byte erheaderbyten, som angiver indholdet. Når indholdet kendes, vides også hvilken type, den pågæl-dende variabel har, og dermed hvor mange af de efterfølgende bytes der skal sammenholdes medden pågældende header. I dette tilfælde er det blot en enkelt byte, der angiver den nye værdi derskal sættes for antallet af passerede kryds.

Figur 15.13: Eksempel på bytemønsteret der modtages, når der skal ændres antallet af passeredekryds. 0x1A er headeren, der fortæller at der er antal kryds værdien der skal ændres. 0x06 erden nye værdi, der skal indsættes.

174 af 250 15. Robottens software

Page 175: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.5 Kommunikationtråd

Hvis det ønskes at sætte en værdi i handlingstabellen, skal det vides samtidigt vides hvor dennye værdi skal indsættes. Til dette anvendes at handlingstabellen er implementeret som matricei beslutningstråden, hvorved en placering kan med angives række- og søjlenummer på den cellehvor den nye variabel ønskes indsat. Dette gøres som illustreret på figur 15.14.

Figur 15.14: Eksempel på bytemønsteret, når der skal ændres i handlingstabellen. 0x1D er he-aderen, der fortæller at der skal ændres i handlingstabellen. De næste to bytes er hhv. søjle- ogrækkenummeret på den celle i handlingstabellen, den nye værdi skal indsættes. De sidste firebytes er selve værdien, hvilken er af typen float.

Alle data, der skal sendes over bluetoothforbindelsen, vil blive sendt over i bytes på 8 bits. Detteskal kommunikationstråden tage højde for, idet den også skal kunne sende værdier, som fyldermere end 8 bits. Det vælges, ud fra opsætning af USART forbindelsen beskrevet i afsnit 9 påside 87, at dele parametre større end 8 bit, op i 8 bit stykker. På denne måde er modtageren sikretat modtage alle byte. Figuren 15.15 illustrere hvordan en 32 bit værdi splittes op.

Figur 15.15: Figueren illustere hvordan de forskellige data størrelser, som bruges intern i ro-bottens software, splittes på i 8 bit stykker og vedhæftes en headerbyte, som fortæller hvilkenværdi der sendes. Sendes eksempelvis batterispændingen, som er en 32 bit float, vil den opsplit-tet som vist på figuren, og headeren vil fortælle at der er tale om batterispændingen, hvorudframodtageren kan se at det er en 4 bytes float der efterfølgende modtages.

Alle datatransmissioner, der sendes imellem robot og PC, består af flere bytes. Når kommunika-tionen skal sende til PC’en, modtager den en hel parameterværdi af gangen fra en af de andretråde, ligegyldigt om det er en float, char eller anden datalængde. Værdien kan dermed øjeblik-keligt tilføjes en header, og sendes 1 byte ad gangen.

Når der derimod modtages data fra PC’en, modtages disse en byte af gangen, dvs. der skal mod-tages en header plus et antal databytes, før en hel parameterværdi er modtaget. For kun at optageprocessoren når der er modtaget en hel transmission, implementeres der en lokal buffer, hvoralt data gemmes bytevis, når det modtages. Med bufferen kan tråden vente med at behandle demodtagne data til der er tid, og på den måde låser kommunikationstråden ikke systemet.

15. Robottens software 175 af 250

Page 176: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.5 Kommunikationtråd

Tilstanden ’Send beacon’

Figur 15.16 er et flowchart der beskriver tilstanden ’Send beacon’.

Figur 15.16: Flowchart for kommunikationstråden i beacon tilstand.

Når tråden er i denne tilstand, er det første den gør at sende en besked til sig selv med en tid-forsinkelse på 100 ms, dette gøres først for at sikre at tråden bliver afviklet periodisk med denønskede frekvens. Derudover sender den en hel række beskeder til reguleringstråden, hvor denforespørger hjulhastigheder, kørte afstande, afstand til linien og batterispændingen. Herefter sen-der den en række beskeder til beslutningstråden, med forespørgsler på antal passerede kryds,kør/stop tilstand og om linien er mistet. Alle disse beskeder udsendes med timer-delays, med etvist interval imellem. Dette gøres for at forespørgslerne bliver delt ud over de 100 ms, hvorvedsystemet ikke låses i længere tid.

Tilstanden ’Beacon data’

Figur 15.17 illustrerer hvad der sker i kommunikationstråden når den kaldes i tilstanden ’Beacondata’. Dette sker når reguleringstråden og beslutningstråden svarer på de beacon-forespørgelser,som kommunikationstråden har sendt i dens ’Send beacon’ tilstand. Når kommunikationstrådensåledes kaldes i ’Beacon data’ tilstanden, vil den tage den parameterværdi den har modtagetfra kommunikationstråden eller fra beslutningstråden og tilføje en header, der beskriver hvadværdien er. Det data der modtages fra reguleringstråden og beslutningstråden, vil komme tilbage isamme rækkefølge som forespørgslerne er udsendt. Hermed ved kommunikationstråden, hvilkenheader der skal påsættes. Efter headeren er blevet tilføjet, sendes beskeden via bluetoothmodulettil PC’en.

Figur 15.17: Flowchart for kommunikationstråden i tilstanden ’Beacon data’

176 af 250 15. Robottens software

Page 177: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.5 Kommunikationtråd

Tilstanden ’PC opdatering’

Figur 15.18 illustrerer hvad der sker i kommunikationstråden når den kaldes i tilstanden ’PCopdatering’.

Figur 15.18: Flowdiagram for kommunikationstråden i ’PC opdatering’ tilstanden

I denne tilstand får kommunikationstråden tilsendt data fra PC over bluetooth. Dette forekommernår det ønskes at overskrive en variabel i beslutningstråden. Kommunikationstråden får tilsendtdata på samme måde, som angivet i tabel 15.5. Når kommunikationstråden modtager data, vilden som nævnt, gemme det modtagne data i en lokal buffer. Idet den først får en header, vi-des hvor mange efterfølgende databytes den skal modtage før overførslen af den igangværendeparameter er slut. Modtages eksempelvis en header 0x1A, vides det at der efterfølgende skalmodtages 1 byte data, som fortæller hvor mange passerede kryds, der skal overskrives med ibeslutningstråden. Når ’PC opdatering’ tilstanden har modtaget noget data, men ikke det heledata, afsluttes tråden for ikke unødvendig at bruge resourcer. Dette skyldes at i tiden mellem dermodtages bytes fra bluetooth modulet, kan controlleren nå at udføre andre opgaver. Når sidstebyte er modtaget, samles beskeden og der sendes besked til beslutningstråden, i tilstand ’Opdaterbeslutning’, indeholdende det givne data.

Tilstanden ’Send error’

Kommunikationtråden kaldes i denne tilstand, når der fra kommunikationstråden eller regule-ringstråden skal sendes en fejlbesked. Fejlmeddelelsen modtages med en header. Således skalkommunikationstråden blot videresende alt den modtagne data over bluetooth.

15.5.4 Trådens funktioner

Kildekoden for funktionerne, og den egentlige afvikling af tråden, kan ses på bilags CD’en, understien:

/software/RoboCup/src/THREADS/COM

15. Robottens software 177 af 250

Page 178: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.6 Delkonklusion

15.6 Delkonklusion

I dette afsnit bringes en delkonklusion på udarbejdelsen af de tre tråde som er opstillet for ro-bottens software. Derudover konkluderes på opstarts- og nedlukningsproceduren samt trådenestidskrav. Afsnittet er opbygget således at det for hver af de tidligere gennemgåede tilstande, op-summeres først det ønskelige indhold, hvorefter det afklares hvor stor del af tråden der er hhv.implementeret og testet. Af tidsmæssige årsager er ikke alle trådes funktionaliteter blevet imple-menteret, ligesom ikke alle funktionaliteter er blevet testet. Derfor beskrives i det følgende hvilkedele, der er implementeret og testet, samt hvilke der ikke er.

15.6.1 Reguleringstråden

Tilstanden ’Følg linie’

Tilstanden ’Følg linie’ er sporadisk, og kalder således sig selv så den afvikles med en givenfrekvens. Tråden benytter robottens sensorer til at regulere robottens hjuls hastigheder, således atrobotten kan følge linien. Derudover skal denne tråd detektere hvorvidt robotten er over et krydsog hvorvidt robotten er over linien.

Tilstanden ’Følg linie’ er implementeret i softwaren som beskrevet i afsnit 15.3.3 på side 158ligesom den er testet og virker efter hensigten. Dog er detekteringen af hvorvidt robotten er overlinien eller ej implementeret, men er ikke testet.

Tilstanden ’Prædefineret rute’

Tilstanden ’Prædefineret rute’ er sporadisk, og kalder således sig selv så, den afvikles med engiven frekvens. Det skal bemærkes at reguleringstråden kun sætter den ene af de to tilstande’Prædefineret rute’ eller ’Følg linie’ i kø af gangen, dvs. begge tilstande anvendes ikke af trådenpå samme tid. Tråden benytter robottens hastighedssensorer til at opretholde en ønsket hastighedpå hhv. højre hjul og venstre hjul. Derudover detekterer den hvorvidt robotten er over et kryds,og hvorvidt robotten er over linien.

Tilstanden ’Prædefineret rute’ er implementeret i softwaren som beskrevet i afsnit 15.3.3 på si-de 158. Tilstanden er testet og virker efter hensigt jf. afsnittet. Dog er detekteringen af hvorvidtrobotten er over linien eller ej implementeret men ikke testet.

Tilstanden ’Ny reguleringsmåde’

Tilstanden ’Ny reguleringsmåde’ er tilstanden som kaldes når robottens opgave skal ændres fraat følge linien, til at køre prædefineret, eller hvis referencehastighederne skal ændres.

Tilstanden ’Ny reguleringsmåde’ er implementeret i softwaren, testet og virker som beskrevet iafsnit 15.3.3 på side 158 med nogle undtagelser. Af tidsmæssige årsager, er der valgt en simplereimplementeringsmåde af tilstanden. Den ønskede implementering var at denne tilstand skulleslette den besked i køen, som reguleringstråden allerede havde sat i kø til sig selv, idet denne

178 af 250 15. Robottens software

Page 179: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.6 Delkonklusion

ville bede tråden om at gøre noget forkert i forhold til den nye reguleringsmåde. Imidlertid er detimplementeret således at reguleringstråden har en statisk variabel, som angiver hvorvidt robottenskal køre i ’Følg linie’ eller ’Prædefineret rute’ tilstanden. Ved at ændre denne variabel vil dennæste reguleringsbesked til reguleringstråd ikke være ændret, men først blive ændret en samplesenere, dvs. tråden udfører i princippet en forkert handling én enkelt gang, idet beskeden ikkefjernes fra køen. Dette medfører et delay, på en enkelt sample, før den nye regulering i princippettræder i kraft.

Ud over denne forsinkelse i form af en sample, er tilstanden ’Ny reguleringsmåde’ implementeretog testet til at virke som beskrevet i afsnit 15.3.3 på side 158.

Tilstanden ’Forespørgsel regulering’

Tilstanden ’Forespørgsel regulering’ kaldes af kommunikationstråden, når det ønskes at kendeen bestemt værdi i reguleringstråden. Alt efter hvad der forespørges, skal denne tilstand sendeprompte svar tilbage til kommunikationstråden.

Tilstanden ’Forespørgsel regulering’ er implementeret som beskrevet i afsnit 15.3.3 på side 158og er testet og virker. Dog er den kun implementeret til at kunne returnere én værdi, nemlig bat-terispændingen. Dette er implementeret og testet. Således det er vist at tilstanden kan virke somønsket. Dog mangler implementeringen af returnering af de resterende værdier, som kommuni-kationstråden, jf. tabel 15.5 på side 174, kan anmode om.

15.6.2 Beslutningstråden

Tilstanden ’Startknap’

Tilstanden ’Startknap’ starter og stopper robotten i sin bevægelse. Den benyttes således når detønskes at robotten starter sin kørsel ligesom den gør at robotten kan pauses midt i sin kørsel, ogderefter genoptage kørslen ved endnu et tryk på knappen. Tilstanden sender en besked til beslut-ningstråden, som så udfører den passende kommando.

Tilstanden ’Startknap’ er endnu ikke implementeret efter beskrivelsen i afsnit 15.4.2 på side 165.Robotten fastfryses blot efter opstart og afventer et tryk på knappen, hvorefter robotten selv vilstarte de sporadiske beskeder. Derved mangler implementering og test af både start- og stopfunk-tionaliteten.

Tilstanden ’Forespørgsel beslutning’

Tilstanden ’Forespørgsel beslutning’ kan kaldes fra beslutningstråden når denne ønsker at få op-lyst værdier, som beslutningstråden har adgang til. Det være eksempelvis den totale tilbagelagteafstand.

Tilstanden ’Forespørgsel beslutning’ er implementeret og testet i software og virker efter ønskejf. afsnit 15.4.2 på side 165. Dog er den kun implementeret til at kunne besvare forespørgsel påtilbagelagt kørt afstand, og ikke de resterende parametre.

15. Robottens software 179 af 250

Page 180: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.6 Delkonklusion

Tilstanden ’Opdatering beslutning’

Tilstanden ’Opdatering beslutning’ kaldes via kommunikationstråden hvis det, fra PC’en, ønskesat opdatere en parameter i beslutningstråden, eksempelvis antallet af passerede kryds.

Tilstanden ’Opdatering beslutning’ er hverken implementeret eller testet.

Tilstanden ’Foretag beslutning’

Tilstanden ’Foretag beslutning’ kaldes af reguleringen efter hver endt regulering. Denne tilstandfår informationer om detekterede kryds, og om linien er detekteret. Derudover får den oplysnin-ger om hvor langt der er kørt. Disse informationer er brugt som grundlag til at slå op i trådenshandlingstabel, som dikterer hvad robotten skal foretage sig.

Tilstanden ’Foretag beslutning’ er implementeret i software så den fungerer som ønsket, og be-skrevet i afsnit 15.4.2 på side 165. Som tidligere beskrevet videregiver reguleringstråden ikkeinformation om hvorvidt linien kan ses eller ej. Derfor kan det ikke testes om beslutningstrådenkan ændre tilstand på baggrund af dette. Resten af tilstanden er testet og virker.

15.6.3 Kommunikationstråden

Tilstanden ’Send beacon’

Tilstanden ’Send beacon’ er den sporadiske tilstand, som sørger for at forespørge reguleringstrå-den og beslutningstråden om det data, der skal sendes til PC’en. Tilstanden forespørger alle denødvendige værdier, én af gangen, ved at sende beskeder til de to andre tråde. Disse beskedersendes med et givent interval for ikke at låse processoren.

Tilstanden ’Send beacon’ er implementeret og testet i software og virker jf. det ønskede sombeskrevet i afsnit 15.5.3 på side 173. Dog forespørger den kun én værdi fra reguleringstråden ogén værdi fra beslutningstråden, hvilket også er beskrevet tidligere.

Tilstanden ’Beacon data’

Tilstanden ’Beacon data’ kaldes når reguleringstråden og beslutningstråden returnerer forespurgtdata. Denne tilstand videresender den modtagne information til PC via bluetooth.

Tilstanden ’Beacon data’ er implementeret og testet og virker jf. det ønskede som beskrevet iafsnit 15.5.3 på side 173. Den modtager og videresender al modtaget data. Dog er tilstanden kuntestet ved at sende beacons til PC via RS-232 kabel og ikke over bluetooth-modulet.

180 af 250 15. Robottens software

Page 181: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.6 Delkonklusion

Tilstanden ’PC opdatering’

Tilstanden ’PC opdatering’ kaldes fra PC hvis det ønskes at ændre parametre i beslutningstråden,eksempelvis antallet af passerede kryds eller andet.

Tilstanden ’PC opdatering’ er hverken implementeret eller testet i software.

Tilstanden ’Send error’

Tilstanden ’Send error’ kan kaldes af de to øvrige tråde hvis der opstår fejl, enten for lavt batterieller hvis robotten ikke kan kende sin placering ud fra handlingstabellen. Tilstanden skal stopperobotten og sende en fejlbesked til PC over bluetooth.

Tilstanden ’Send error’ er kun implementeret og testet for tilfældet hvor der måles for lav batte-rispænding. Afsendelse af fejlbeskeden er ikke implementeret.

15.6.4 Opstart og nedlukning

Modulopsætning

Modulopsætningen sikrer at alle microcontrollerens moduler stemmer overens med de perifereenheder, de skal kommunikere med. Modulopsætningen udføres som beskrevet i afsnit 15.1.1side 154. Al opsætning er implementeret, testet og virker som beskrevet.

Reguleringsopsætning

Reguleringsopsætningen garanterer, at regulatoralgoritmerne ved opstart får inputs, som vil fore-sage et veldefineret startforløb. Dette er implementeret, som er beskrevet i afsnit 15.1.1 side 154.Reguleringsalgoritmerne er testede og virker efter hensigten.

Nedlukningsprocedure

Nedlukningsproceduren sikrer, at robotten ved nedlukning afslutter de sporadiske tråde, somkører på robotten. Desuden sørger den for et veldefineret stop, idet robotten bremser på alle hjul.

Nedlukningsproceduren er på grund af tidsbesparelsesmæssige årsager ikke implementeret.

15.6.5 Timingskrav

I afsnit 14.2.2 side 142 beskrives de timingskrav, der stilles til trådene. Det fremgår heraf at deter et krav, at alle trådenes samlede eksekveringstid er mindre end den mest tidskritiske tråd. Denmest tidskritiske er reguleringstråden, som skal overholde en deadline på 1

128 s.

15. Robottens software 181 af 250

Page 182: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.6 Delkonklusion

For at undersøge hvorvidt dette er overholdt, tilføjes følgende funktionalitet til softwaren: Hvergang en af de tre tråde afvikles, vil eksterne processorben sættes til højt signal, indtil trådener afviklet færdig, hvor benet igen hives lavt. Herved kan rækkefølge samt eksekveringstider påhver enkelt tråd aflæses. På figur 15.19, er de tre tråde illustreret. Målingen er fortaget på robotteni stillestående tilstand. Dette gør at trådene måske vil bruge lidt mere tid når robotten kører, mendet antages at dette ikke giver i aktivitetsnivauet, og dermed heller ikke i trådenes afviklingstid.Ud fra målingen kan det tydeligt ses at der er meget tid hvor ingen af trådene er aktive. Dette vildog ændre sig når kommunikationstråden sættes op til at sende mere en de 2 beskrevne paramtreper beacon, som er tilfældet under denne måling.

0.03 0.035 0.04 0.045 0.05 0.055 0.06 0.065 0.07 0.075

Kommunikation

Beslutning

Regulering

Tid [s]

Trad

Figur 15.19: Måling af afviklingstiden og rækkefølgen for de tre tråde. Blå viser hvornår regu-leringstråden er aktiv, grøn viser beslutningstråden og rød viser kommunikationstråden.

Rækkefølgen for afviklingen af de tre tråde stemmer overens med det forventede ud fra softwa-rens opbygning. Ud fra figuren kan observationerne i det følgende, gøres. Det skal bemærkes atopløsningen på oscilloskopet, som dataene er målet med, er så stor at det er svært at se nøjagtighvor lang tid de enkelte tråde tager.

Reguleringstråden bliver afviklet ca. for hver 8 ms, hvilket svarer godt overens med 128 Hz. Trå-dens afvikling er færdig efter ca. 40µ s hvor beslutningstråden vil blive aktiv.

Beslutnings tråden kaldes direkte efter reguleringstråden har afsluttet, idet beskeden den kaldesmed, ikke har nogen forsinkelse. Beslutningen er aktiv i ca 280µ s.

182 af 250 15. Robottens software

Page 183: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

15.6 Delkonklusion

Den sidste tråd, kommunikationstråden, bliver ikke afviklet på én gang, trådens cyklus er ca. på100 ms. Dette kan dog ikke ses ud fra figuren, da der kun er medtaget ca. 80 ms i plottet. Det harimidlertid ikke været muligt at udvidde plottet ret meget, uden samtidig at få vist så mange tråd-afviklinger, at plottets indhold går tabt. Den første del af kommunikationstråden afvikles på ca.40 µs. Her udsendes de to beskeder som skal få de to andre tråde til at sende værdien for hhv. denkørteafstand og baterispændingen retur. Delayet på disse to beskeder er ved disse målinger sat til3 RTC ticks for beslutningstråden, og 6 RTC ticks for reguleringstråden. Når de to andre trådesender beskeder retur, gøres det uden forsinkelse, dvs. at kommunikationen kan køre med detsamme. Regulering- og beslutningstråden bruger ca. 40 µs på at svare kommunikations tråden.Den første værdi som kommunikationen får retur, er den samlede kørte afstand fra beslutningst-råden. Dette er en 32 bits float, dvs. for at sende denne værdi til PC, skal der sendes sammenlagt5 bytes. Det ses af figuren er dette tager ca. 3,34 ms. Den næste værdi, som er batterispændingen,er kun en byte, dvs. der skal sendes sammenlagt 2 bytes. Det fremgår af figuren at dette tager ca.60 µs. At forskellen på at sende to bytes, og sende fem bytes, er så stor, har det ikke været muligtat forklare, men gentagne målinger giver samme resultat. En mulighed kan være at der er en hvisbufferkapacitet i mikrocontrollerens USART, der gør at beskeder der er tilpas små, kan sendeshurtigere.

Af ovenstående kan konkluderes at idet en 5 bytes værdi er den største datamængde der, af énomgang, skal sendes fra kommunikationen, vil det opstillede timingskrav være overholdt, idetalle afviklingstider sammenlagt er mindre end 7,8 ms, og reguleringen dermed ikke vil misse endeadline. Det eneste problem der kan opstå, er hvis antallet af variable i et beacon bliver så stortat det ikke kan nås at sende dem inden det næste beacon skal sendes. I dette tilfælde er det dogkommunikationen, og ikke reguleringen som misser deadlinen.

Ud fra figur 15.19 ses det desuden at processoren blot er cirka 10% belastet, hvilket betyder atder stadig vil kunne implementeres flere tråde i en fremtidig softwareudvikling, ligesom kom-munikationstråden vil kunne implementeres til at sende flere parametre til PC, uden at nogen aftimingskravne bliver brudt.

15. Robottens software 183 af 250

Page 184: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Kapitel 16Udførsel af accepttesten

I dette kapitel gennemgås resultaterne, opnået gennem de tests som er opstillet i accepttestspe-cifikationen, kapitel 4. Disse tests skal validere at robottens funktionalitet er som ønsket. Alletestbaner er fotograferet og testudførslen er optaget på video. Dette materiale kan findes på bi-lags CD’en under stien: /acceptest/.Ligeledes kan handlingstabellen anvendt i hver test, hvilken bruges af beslutningstråden, ses idenne mappe.

16.1 Hastighedstest

I testen undersøges hvorvidt robotten kan gennemføre den del af konkurrencebanen, der kræveren gennemsnitshastighed på mindst 1 m/s, også kaldet racerbanen.

Testbanen opstilles som vist på figur 4.1 side 31 og testen udføres som beskrevet i testdesignet,afsnit 4.1. Den samlede længde af banen, er målt til 9 m. Kravet om en gennemsnitshastighed påmindst 1 m/s, vil dermed være overholdt, hvis gennemkørselen af banen gøres på under 9,0 s.Testen gennemføres tre gange, for at eftervise at den kan gennemføre testen med samme resultatgentagende gange. Bemærk at det kun er én af de tre gennemløb, der er dokumenteret på video.

Resultat

Robotten gennemførte hastighedstesten på 8,7 s, 8,8 s og 8,8 s. Hvilket giver en gennemsnits-hastighed på mindst 1,02 m/s. Det har være nødvendig at nedsætte hastigheden på robotten til0,7 m/s i svinget, for at undgå kollision med porten. Da gennemsnitshastigheden som sagt over-holdes, har dette ingen betydning for testens succes. Robotten følger ligeledes linies forløb underhelt testen.

Det kan dermed konkluderes at testen er udført med succes.

184 af 250

Page 185: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

16.2 Beslutningstest

16.2 Beslutningstest

I denne test undersøges hvorvidt robotten er i stand til at tage korrekte beslutninger, i udvalgtenøglepunkter, samt udføre en prædefineret rute væk fra linien.

Testbanen opstilles som vist på figur 4.1 side 31 og testen udføres som beskrevet i testdesignet,afsnit 4.2.

Resultat

Robotten kørte fra punkt ’B’ til ’C’ langs linien. Herefter drejede den til højre og fulgte linientil punkt ’D’. I punkt ’D’ kørte robotten en prædefineret rute, vist med den røde stiplede linie påfigur 4.1. Efterfølgende fandt robotten tilbage til linien, ved punkt ’D’, og fulgte denne til punkt’C’, hvor testen stoppede. For at være sikker på at porten kunne åbnes, blev robotten sat til ataccelerere kraftigt op, således at porten blev ramt med høj hastighed. Eftersom robotten følgerden rute som testbeskrivelsen anviser, har robotten gennemført testen med succes.

16.3 Forhindringstest

I denne test undersøges robottens evne til at klare udvalgte forhindringer på banen. Samtidig te-stes igen hvorvidt robotten kan træffe rigtige beslutninger, i givne nøglepunkter, denne gang dogunder andre forhold.

Det har været nødvendigt at ændre denne testbane i forhold til den som er beskrevet i accept-testspecifikationen afsnit 4.3. Dette skyldes at det tidsmæssigt ikke har været muligt at byggehele banen. Der forekommer derfor ikke nogen vippe på banen. Den anvendte testbane er vist påfigur 16.1.

Testen starter i punkt ’A’ og slutter når robotten har været en omgang rundt på banen, og ertilbage til punkt ’A’. Den tykke sorte streg viser, ligesom tidligere, tapelinien på gulvet, og detyndere streger indikerer forhindringerne. De gule streger viser hvor der er placeret pointporteforskellige steder langs linien.

Fra startpunktet ’A’, skal robotten køre op ad testbanens rampe 1. I punktet ’B’ skal robottenfortsætte ligeud og køre ned af trappen. For enden af trappen, i punktet ’C’, stopper tapelinien,hvormed robotten skal følge ruten angivet med den røde stiplede streg, til den møder linien ipunktet ’D’. Her skal robotten dreje til venstre, og følge linien op af rampe 2, til punktet ’B’. Ipunktet ’B’, skal robotten dreje til højre og køre ned af rampe 1, til slutpunktet ’A’. Rampe 1 haren hældning på 16 og rampe 2 en hældning på 12 .

Succeskriterierne er de samme som beskrevet under det oprindelige testdesign i afsnit 4.3.

16. Udførsel af accepttesten 185 af 250

Page 186: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

16.4 Stresstest

B

A

C

Rampe 2

Rampe

1

Trappe

D

Figur 16.1: Testbane til forhindringstesten.

Resultat

Under testen fulgte robotten linien til punkt ’B’, og kørte derefter ned af trappen til punkt ’C’.Efter trappen, havde den dog mistet orienteringen, hvilket bevirkede at den efterfølgende ikkefandt hen til punkt ’D’. Der blev udført endnu test, hvor trappen blev udskiftet med en rampe. Idette tilfælde fandt robotten fint videre fra punkt ’C’ til ’D’ og forsatte op af rampen til punkt’B’. Herefter drejede den til højre ned af rampe 1, hvorefter den stoppede ved punkt ’A’.

Robotten tog ikke skade af at køre ned af trappen, på trods af at den mistede orienteringen.Den kolliderede desuden ikke med nogen porte undervejs. Testen var dog ikke nogen succes,eftersom den mistede orienteringen mellem punkt ’C’ og ’D’, og derfor ikke fulgte den korrektevej gennem banen. Efter trappen var udskiftet med en rampe, kunne robotten dog godt finde vej.Dette tyder på at robotten mangler justering for at kunne forcere trappen.

16.4 Stresstest

I denne deltest undersøges robottens evne til at fungere under stress, hvilket gøres ved at udsætterobotten for en lang række skarpe sving, lige efter hinanden.

Det viser sig at det ikke er muligt for robotten at holde sig på linien med en hastighed på 1 m/s,hvilket ellers står beskrevet i testdesignet, afsnit 4.4. Det bør dog bemærkes at dette for så vidtheller ikke er et krav til robotten. Hastigheden på 1 m/s er valgt ud fra at batteriet ved dennehastighed, minimum skal kunne drive robotten i et kvarter.

186 af 250 16. Udførsel af accepttesten

Page 187: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

16.5 Kommunikationstest

Det vælges at gennemføre testen ved en hastighed på 0,4 m/s. Det ønskes dog stadig undersøge,hvorvidt batteriets kapacitet er tilstrækkelig. Derfor opjusteres grænsen for hvor lang tid robottenminimum skal kunne køre i testen. Dette gøres med forholdet mellem hastigheden i kravet ogden nye hastighed, altså 1/0,4 = 2.5. Den nye tidsgrænse bliver hermed 2.5 ·15 = 37.5 minutter.Hvis batteriet har kapacitet til at drive robotten i 37,5 minutter ved 0,4 m/s, vurderes det at detligeledes vil kunne drive robotten i 15 minutter, ved 1 m/s.

Resultat

Robotten fulgte liniens forløb gennem hele testen. Efter 45 minutter, blev testen stoppet, idet detikke fandtes nødvendigt at køre mere.

Selv om robotten ikke gennemførte stresstesten med en hastighed på 1 m/s, men derimod 0,4 m/s,vurderes det at batteriets kapacitet er tilstrækkelig. Batterispændingen blev efter testen målt til11,4 v, hvilket antyder at robotten kunne have kørt i længere tid end 45 minutter.

Hvad angår robottens evne til at følge linien, bør det understreges at på konkurrencebanen fo-rekommer der ikke en situation hvor et skarpt højresving, efterfølges af et skarpt venstresving,hvorfor det ikke frygtes at robotten ikke kan følge konkurrencebanen. Testen betragtes samlet setsom en succes på trods af at de oprindelige succeskriterier ikke blev overholdt.

16.5 Kommunikationstest

Det har ikke været muligt at gennemføre denne test, grundet hardwareproblemer med bluet-oothmodulet, umiddelbart før testen skulle udføres. Det har ikke være muligt at fremskaffe ettilsvarende modul, før afleveringstidspunktet. De funktionaliteter som testen omfatter, kan derforikke verificeres.

16.6 Konklusion på accepttest

Hastighedstesten samt beslutningstesten er udført med succes. Ligeledes er stresstesten, dog ikkemed samme hastighed som beskrevet i det oprindelige testdesign. Under forhindringstesten vistedet sig at robotten havde problemer med at forcere banens trappe. Dette vurderes dog at kun-ne bringes iorden via software justeringer. Kommunikationstesten kunne som sagt ikke udføres,grundet et hardwareproblem med blutoothmodulet. Kommunikationen er dog kun til brug i test-henseende, hvorfor dette ikke forhindrer robotten i at deltage i RoboCup, med succes. Samlet setvurderes det at robotten, med lidt justeringer, vil kunne gennemføre RoboCup banen efter denudvalgte rute, hvormed målet med robotten er nået.

16. Udførsel af accepttesten 187 af 250

Page 188: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Kapitel 17Konklusion

Formålet med projektet har været at udvikle en autonom linierobot, med henblik på at deltage iDTU’s RoboCup. På baggrund af en indledende analyse, er udviklingen af robotten gennemførtindenfor tre hovedområder: Hardware, software samt regulering og tilbagekobling. I hvert af detre hovedområder, benyttes opstillede krav som baggrund for analyse, design og implementering.I dette kapitel forsøges at give en samlet konklusion på projektet.

Robottens hardwareRobottens hardware bygges op omkring en mekanisk platform, der danner grundlag for robottensbevægelsesmuligheder. Det vælges at anvende en mekanisk platform med fire DC-motorer og firehjul. Platformen styres ved hjælp af skrid styring, dvs. en styreform hvor hjulenes vinkel er fikse-ret, og der styres via hastighedsdifferencer på hjulene. Hardwareblokkene der er konstrueret somen del af projektet, er dels sensorer til at måle afstand til linien, samt robottens hastighed. Derkonstrueres et driverkredsløb, til at styre de fire motorer. Desuden er der konstrueret et kredsløbtil at danne de nødvendige forsyningsspændinger. Derudover er det valgt at implementere etbluetoothmodul, der danner en kommunikationskanal til en ekstern PC. Hele hardwaredelen afprojektet er bygget op omkring en AVR32 mikrocontroller.

Motordriverne implementeres med H-broer, som på baggrund af et PWM signal og to styresig-naler, kontrollerer hver motor. H-broerne varierer spændingen på motorerne, ved hjælp af swit-chmode princippet. De konstruerede H-broer virker efter hensigten, med en negligibel afvigelsepå udgangs PWM signalet, på blot 0,4%. Alle de opstillede krav til motordriverne er overholdt.

Til hastighedsmålinger på motorerne, anvendes optiske omdrejningsencodere, idet disse ikke til-fører friktion på hjulene. Der implementeres en counter til hver encoder, hvilke tæller de pulsersom disse udsender. Herved kan hastigheden samples med en fast frekvens. Verificering af enco-derne viser at der kan måles hastigheder med en afvigelse på ca. 3%. Alle de opstillede krav tilhastighedsmålingen overholdes.

188 af 250

Page 189: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Liniesensoren er bygget op omkring 12 IR-LED’er, samt 4 photodioder. Gennem verificeringenaf sensoren, er det bekræftet at denne kan bestemme afstanden fra robottens midte til linien, meden præcision på ca. 1 cm. Liniesensoren har et måleområdet på ca. 10 cm til begge sider fra mid-ten af robotten. I en afstand på omkring 4 cm fra stregen stiger usikkerheden på liniesensoren tilca. 2 cm, dog kun på den ene side af robotten. Udover dette, er alle de opstillede krav overholdt.

Som forsyningskilde benyttes et 11,1 V Lithium Polymerbatteri. For at forsyne robotten behø-ves, foruden batterispændingen selv, 3,3 V og 5,0 V forsyningsspændinger, hvilket dannes viaswitchmode DC/DC convertere. Verificeringen viser at pludselige strømtræk på op til 8 A, ikkepåvirker de nedregulerede spændinger. Alle krav til forsyningskredsløbet er overholdt.

Til at kommunikere med en PC, hvilket anvendes i testhenseende, benyttes et færdigt bluetooth-modul. Af hardwaremæssige årsager, kan den endelige test af dette ikke udføres.

Robottens softwareRobottens mikrocontroller implementeres i form af en 32 bit 16 MHz AVR microcontroller. Derimplementeres en non-preemptiv kerne på mikrocontrolleren, til at styre afviklingen af tråde. Alkommunikation trådene imellem, sker via en beskedkø. Gennem analyse af robottens ønskedefunktionalitet og dens aktører, opdeles robottens software i tre tråde: En reguleringstråd, somkan regulere robottens hastighed samt afstand til linien, en beslutningstråd, som ud fra en hand-lingstabel dikterer robottens opførsel, samt en kommunikationstråd, som udveksler data mellemrobotten og en PC, via bluetoothmodulet.

Reguleringstråden konstrueres så den afvikles med en fast frekvens, og indhenter den nødven-dige data fra robotten sensorer, for at regulere motorernes hastigheder. Beslutningstråden får,gennem reguleringstråden, data fra robottens sensorer. Dette bruges som beslutningsgrundlag,til at bestemme robottens færden, hvilket gøres ud fra en fastlagt handlingstabel. Kommunika-tionstråden konstrueres således den er i stand til at hente data fra de andre tråde, og videresendedette til PC’en. Kommunikationstrådens grundlæggende funktionaliteter testes og det verificeresat tråden virker efter hensigten. Tråden testes dog kun gennem en RS-232 forbindelse og ikkeover bluetooth, da det som nævnt, af hardwaremæssige årsager ikke var muligt. De øvrige totråde fungerer ligeledes efter hensigten

Via målinger på trådenes afvikling over tid, verificeres at de timingskrav som trådene stiller, eroverholdt, idet ingen tråde misser deres deadlines.

Tilbagekobling og reguleringRobottens bevægelse modelleres ud fra både dens hastighed, og dens afstand til linien. De op-stillede modeller verificeres løbende via målinger i form af steprespons. Modellerne viser at deter nødvendigt at indsætte både en hastighedsregulator og en afstandsregulator, for samlet set atkunne styre robotten.

17. Konklusion 189 af 250

Page 190: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

For at kunne regulere hastigheden, implementeres i software en PI-regulator. For at regulere af-standen til linien implementeres i software et lead-netværk. Begge regulatorer verificeres medhensyn til deres dynamik, stabilitet og deres stationære fejl. Alle opstillede krav overholdes. Denafsluttende accepttest, har til formål at undersøge hvorvidt robotten opfylder sit formål, nemligat kunne gennemføre udvalgte udfordringer på forhindringsbanen i DTU’s Robocup. Dette gø-res ved at konstruere uddrag fra den rigtige RoboCup bane, og derpå se hvorvidt robotten kangennemføre disse efter givne specifikationer. Testen viser at robotten rent hastigheds- og styre-teknisk, overholder de opstillede krav idet det er muligt, over et længere stykke, at opretholdeen hastighed på minimum 1 m/s. Desuden kan det lade sig gøre at gennemkøre de skarpestekurver, som konkurrence specifikationerne angiver. Under disse sving kommer robottens linie-sensor maksimalt 8 cm væk fra linien, hvilket er mindre end dens måleområde, hvorved linienikke tabes. Accepttesten viser desuden at robotten er i stand til at følge en indprogrammeret rute,uafhængigt af linien, på forudbestemte steder på banen. Det viste sig dog at robotten ikke kunneforcere en trappe, hvilket var en af udfordringerne. Dette menes dog at skyldes manglende juste-ringer, af dels handlingstabellen og hastighed.

Samlet set viser accepttesten, og de enkelte verificeringer undervejs i udviklingsforløbene, atrobotten fungerer efter hensigten, ud fra den indledende analyse, samt de i kravspecifikationenopstillede krav.

190 af 250 17. Konklusion

Page 191: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Kapitel 18Perspektivering

Afslutningsvis gennemgås hvilke ændringer eller videreudviklinger som, efter at robotten er kon-strueret, er erfaret kunne været en fordel at gennemføre for robotten.

Det er igennem testforløbet erfaret at det kan være svært at kontrollere præcist hvor mange gra-der robotten drejer, når det forsøges at gennemføre et sving uafhængigt af linien. Dette skyldes atdet eneste der kan bruges som reference i denne sammenhæng, er hjulenes kørte afstand, hvilketi kraft af den valgte styringsform, kan være misvisende. En eventuel udvidelse kunne dermedvære, at udstyre robotten med en form for elektrisk gyroskop, således at det var muligt at måleen relativ vinkel for robotten, og dermed have en fornuftig reference at svinge efter.

Som nævnt allerede i foranalysen, vil der med fordel kunne implementeres et kamera på robotten,for herigennem at gøre robotten i stand til, via billedanalyse, at detektere de golfbolde, som er ud-lagt forskellige steder på banen. I denne forbindelse skulle en gribearm desuden implementeres,således golfboldene kan opsamles og eventuelt puttes i hul. Samtidigt er et kamera anvendeligti forbindelse med genkendelse af strafporten, hvilken lyser rødt. Implementationen af et kameravil medføre at softwaret ligeledes skal udvides, idet der skal skrives billedbehandlingsalgoritmer,ligesom der også skal skrives software til at styre gribearmen.

Hvis billedbehandlingen bliver omfattende, kan det overvejes at implementere endnu en mikro-controller, dedikeret til dette formål. Dermed ville det også blive nødvendigt at overveje hvorled-es robottens to mikrocontrollere skal kommunikere sammen.

For at undgå en omfattende billedbehandling, kan strafporten detekteres med andet en et kamera.Ved at implementere lysgenkendelsen med en eller flere lysfølsomme dioder, der reagerer på dentype lys som porten udsender, kan et output fra disse dioder, anvendes til at genkende strafporten.Dette kan gøres ud fra samme princip som anvendes i liniesensoren.

191 af 250

Page 192: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Appendiks AAnvendte forkortelser

I dette appendiks er listet alle de forkortelser der anvendes igennem rapporten.

Forkortelse BetydningADC Analog to Digital ConverterAGV Autonomous guided vehiclebps bits per secondCODARTS Concurrent Design Approach

for Real-Time SystemsCVC Current-Voltage converterDTU Danmarks Tekniske

UniversitetGPIO General Purpose Input OutputGSM Global System for Mobile

CommunicationsIR InfrarødIEEE Institute of Electrical

and Electronic EngineersJTAG Joint Test Action GroupLAN Local Area NetworkLED Light Emitting DiodeLHP Left HalfPlaneLi-ion Lithium-ionLiPo Lithium-ion PolymerNiCd Nikkel CadmiumNiMH Nikkel Metal HydridPAN Personal Area NetworkPC Personlig Computer

Forkortelse BetydningPCB Printed circuit boardPWM Pulse Width ModulationPPR Pulses Per Revolution

(Pulser per omdrejning)RMA Rate monotonic algorithmRPM Revolutions per minute

(Omdrejninger per minut)SCD System Context DiagramSCK Serial Clock InputSI Serial Data InputSPI Serial Peripheral

Interface BusSO Serial Data OutputTCK Test ClockTDI Test Data InTDO Test Data OutTMS Test Mode SelectUSART Universal Synchronous

/AsynchronousReceiver/Transmitter

WAN Wide Area NetworkWLAN Wireless Local

Area Network

192 af 250

Page 193: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Appendiks BDTU Robocup

Dette appendiks indeholder de, af DTU udstukne regler for konukurrencen, samt gennemgangenaf banen. Teksten i appendikset er uredigeret sat ind fra konkurrencehjemmesiden [32].

DTU RoboCup er konkurrencen, hvor selvkørende robotter kører om kap på en bane med kurver,porte, en guillotine, et skråplan, en trappe og mange andre forhindringer. Opgaven er at klare såmange forhindringer som muligt og derved vinde pointpenge og måske en af de store pengepræ-mier. Konkurrencen blev afholdt første gang i 1997 og blev så positivt modtaget, at den nu er entilbagevendende årlig begivenhed [32].

B.1 Regler

B.1.1 §1 Autonom robot

Køretøjerne skal være fuldstændigt autonome: Ingen kommunikation mellem omverden og kø-retøj er tilladt, når køretøjet har påbegyndt banen. En kørsel / et forsøg vil blive afbrudt, hvis etkøretøj forlader området afmærket med afmærkningstape, eller hvis en deltager rører køretøjet.

B.1.2 §2 Kørsel

Hvis køretøjet ikke når frem til den første port hurtigt nok (svarende til at den har haft en gen-nemsnitshastighed under 0.25 m/s) vil denne port lukkes og kørslen afbrydes. Kørslen kan ogsåblive afbrudt andre steder på banen, hvis køretøjet ikke foretager væsentligt fremskridt i et visttidsrum. For at sikre en hurtig og effektiv afvikling vil deltagere desuden kunne diskvalificeres,hvis de ikke er parate til start, når det er deres tur.

Portene vil ikke alle være fast monteret, men det er tilladt at berøre porte og forhindringer - påen ikke forsætlig destruktiv måde. Er en port væltet inden passagen vil dommeren afgøre om dener passeret. Dommeren kan desuden afbryde kørslen, hvis den skønnes forsætlig destruktiv.

Alle hold gennemkører banen 2 gange under konkurrencen. Afbrydes en kørsel, vil det antal po-int, der er opnået inden afbrydelsen være gældende for kørslen. Kun den bedste af de 2 kørsler

193 af 250

Page 194: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

B.1 Regler

giver point.

Startrækkefølgen i finalen vil være bestemt af antal point i kvalifikationsrunden, således at demmed færrest point starter først. Startrækkefølgen i kvalifikationsrunden bestemmes af arrangører-ne (senest 1 time før start).

B.1.3 §3 Restriktioner

Hverken banen eller omgivelserne må ændres for at gøre opgaven nemmere for robotten. Et kø-retøj kan have sensorer, computere og styresystemer ombord, motorer, energikilder, og bremser.Der er ingen restriktioner på størrelse, udover at køretøjerne skal være i stand til at komme gen-nem portene. Køretøjet må ikke indeholde forbrændingsmotor og må i øvrigt ikke udgøre en farefor publikum.

B.1.4 §4 Point

Point gives for gennemført forhindring, som beskrevet for banen. Hver point tæller kun een gangselvom forhindringen passeres flere gange. En port er passeret når hele køretøjet inklusive sen-sorer er mindst 1 cm på den anden side af porten.

En kørsel er afsluttet, når målet er nået, eller når holdlederen eller dommerne siger ”stop”.

Har flere hold samme antal point vil der blive arrangeret omkørsel for de berørte hold, dog kunfor kampen om 1.-3. pladsen og deltagelse i finalen (15-16 plads i kvalifikationsrunden). Er f.eks.2. pladsen delt mellem 3 hold vil disse deltage i en omkørsel om 2., 3. og 4. pladsen, i omkørslenvil gennemførselstiden blive afgørende, hvis der fortsat er pointlighed. Point opnået i omkørslergiver ikke point-penge. En eventuel omkørsel vil finde sted umiddelbart efter sidste konkurence-kørsel.

B.1.5 §5 Adgang til banen

To timer før konkurrencens start vil banen blive afspærret, og den kan derefter først benyttes,når konkurrencen afvikles. Under disse to timer kan porte og udgreninger eventuelt flyttes (menbanen vil dog stadig være i overensstemmelse med ovenstående beskrivelse). En indkodning afbanens eksakte forløb vil derfor ikke kunne forventes at være tilstrækkeligt.

B.1.6 §6 Unik robot

Ingen dele af noget køretøj (dette indbefatter software) må genfindes på noget andet køretøj, derdeltager i konkurrencen, ligesom ingen personer på et hold må deltage på andre hold.

B.1.7 §7 Tvister

Arrangørerne afgør reglernes fortolkning.

194 af 250 B. DTU Robocup

Page 195: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

B.2 Banen

B.2 Banen

Banens layout vil i hovedtræk være som vist på figur B.1. Banen er designet ud fra den forudsæt-ning, at køretøjet kan følge en sort tape-linie på gulvet, og holder man til højre på denne linie vilman nå mål, men opnår så kun relativt få point.

1

2

3

4

67

8

910

11

1213

14

start

5

1

23

4

56

1 2 3 4 5 6 7 8 90 m

Figur B.1: Robocupbanen i 2008

Krav til banen:

• Gulvet under banen har to typer belægning, en lysegrå malet glasfiberbelægning (hvideområder på figuren) og områder med lidt mørkere klinker (markeret med gråt på figuren).Klinkeområderne er 45 cm brede. Områderne, hvor to klinkestriber krydser, er dækket afen metalplade (kabelbrønd), der ikke skal påregnes at være farbar.

B. DTU Robocup 195 af 250

Page 196: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

B.2 Banen

• Linien er lavet med 38 mm bred sort lærredstape (type Tesa-4651). Tapen vil være placeretnogenlunde som vist på figuren, og således at ingen kurve vil være skarpere end en cirkelmed en radius på 50 cm. Den sorte tape er synlig både på det lyse gulv og på klinkerne.

• Portene er alle 45 cm brede (±2 cm) med 47-50 cm frihøjde (gul port). Godstykkelsen påportene er ca. 16 mm. Dette gælder dog ikke tunnelen og racerbanen.

• Starten foregår på en startplade (nederste venstre hjørne på figuren). Når pladen forlades,starter nedtælling til lukning af guillotineport 1. Timing og afstand til guillotinen er fastlagtsåledes, at en gennemsnitshastighed på 25 cm/s vil være tilstrækkeligt til passage. Passageaf porten giver 1 point.

• Rampen (2) leder op til et plateau i en højde af ca. 55 cm. Rampen starter minimum 3,5 mfør plateauet (vandret afstand) og med samme stigning hele vejen. Bredden er 60 cm. Pårampen er der placeret en port der giver 1 point. Rampen er ligesom plateau, trappe ognedkørsel lavet af træ og er malet i en lys farve. Rampen har desuden en ru overflade forøget friktion under opkørsel. På den øverste del af rampen er der på venstre side montereten vippe (3). Vippens normalstilling er vandret, og den er understøttet i rampeenden. Dettebetyder, at vippen vil forblive vandret, når et køretøj kører fra rampen ned på vippen, indtilkøretøjet når forbi understøttelsespunktet. Det vil kræve ca. 200 g påvirkning 20 cm fraunderstøtningspunktet, før vippen vipper. Der er placeret en gul port ved den yderste endeaf vippen. Ved kørsel fra rampe til vippe vil der være op til 6 cm højdeforskel. (Se foto 1og foto 2.)

• Ved positionen (4) 30 cm fra vippens understøtningspunkt og (5) på rampens plateau, beg-ge markeret med en rød cirkel på figuren, findes en golfkugle. Disse kugler skal bringesmed robotten og placeres i hullet på plateauet for at opnå point. Diameteren på kuglener standard 42,7 mm, men af hensyn til vision-baserede løsninger anvendes golfkugler tilvintergolf med en signalrød farve. For at sikre at kuglens placering er ensartet ved hvergennemkørsel, vil der under tapen blive monteret en lille metalring (nøglering), i hvilkenkuglen bliver placeret.

• Ved (6) findes føromtalte golfhul, hvori golfkuglerne skal placeres for at opnå point fordisse. Hver kugle udløser et point (maksimalt 2 point), og der findes tre kugler på banen.Hullets diameter er 52 mm.

• Nedkørslen fra plateauet kan finde sted ad 2 alternative veje. Rampen er 60 cm bred ogslutter minimum 2 m fra plateauet (vandret afstand). På rampen findes en port, der giver etpoint for passage.

• Den anden mulighed for nedkørsel er trappen, der har 4 trin og derfor 5 niveauspring påhver ca. 11 cm. Hvert trin er ca. 40 cm langt og 60 cm bredt. På trappen findes to porte,der hver giver 1 point for passage.

• På en af seks placeringer markeret med stjerner - som ved (7) - er placeret en tredje golf-kugle. Denne kugle er ligeledes signal-rød. Kugleplaceringerne er mellem 30 cm og 50 cmfra den nærmeste tapelinie. For at sikre at kuglens placering er ensartet ved hver gennem-kørsel vil der under et lille stykke hvid tape blive monteret en lille metalring (nøglering),

196 af 250 B. DTU Robocup

Page 197: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

B.2 Banen

i hvilken kuglen bliver placeret. Kuglen vil blive placeret tilfældigt på en af disse positio-ner, efter at kørslen er startet. Medbringes kuglen (eller en af de andre golfkugler) til mål,opnås et point.

• Minus-porten vil være en af portene ved (8). De består af almindelige gule porte, der hverer påmonteret en lys-markering bestående af 4 røde stoplys-lister (3 på forsiden, samt en påbagsiden af hensyn til publikum). Stoplysene er varenr. 40651 fra thansen og koster 79,- pr.stk. På den ene af portene (valgt tilfældigt ved kørslens påbegyndelse) vil lys-markeringenblinke ca. 1 gang pr. sekund (tændt 0,5 s, slukket 0,5 s). Passage af denne port giver -1point (strafpoint), mens passage af den anden port (med slukket lys-markering) giver 1point. Portene vil stå med en indbyrdes afstand på ca. 1 m. Strømforsyningen til portenevil komme fra kabelbrønden (til højre på figuren) og vil blive tapet fast til gulvet. Detanbefales derfor at passere venstre om minus-porten.

• Racerbanen (9) starter og slutter med en elektronisk port. Portene består af lægter medinvendige mål svarende til de øvrige porte. Portene bliver malet i en grå nuance. Når enlysstråle brydes i startporten, starter tidtagning, og den stopper først, når en tilsvarendelysstråle brydes i slutporten. Lysstrålerne er placeret ca. 2,5 cm over gulvniveau. På linienmellem start- og slutporten er der en gul port (10), som skal passeres efter startporten oginden slutporten for at opnå point i racerbanen. Den gule port giver 1 point, og der givesyderligere 0, 1, 2 eller 3 hastighedspoint. Tidsgrænserne er ikke fastlagt, men det vil kræveen gennemsnitshastighed over 1 m/s for at opnå maksimum point på denne forhinding.

• Tunnelen (11) er monteret med en udadgående dør i hver ende, som vist på denne skitse.Note: dørene er 25 cm i højden. Den forreste dør er den bredeste - således at den kanskubbes op. Det giver 1 point for passage af hver af dørene. Døråbningerne har samme målsom en port, men de vil ikke være gule.

• Keglebanen (12) består af 9 kegler, som har dimensionerne grundflade 30 cm gange 30 cmog højden 50 cm. Keglebanen er placeret ud for en rød port (som giver 1 minuspoint) ogmidt imellem to sidestreger, der er anbragt med 1 m mellemrum. Ud for de to sidestregerer placeret to gule porte 40 cm fra hovedstregen. I et koordinatsystem med origo i midtenaf den røde port og x-aksen langs linen med målet og y-aksen mod keglerne er koordi-naterne for keglernes midtpunkter:* (0,55), (0,100), (0,150), (0,205), (-50,205), (50,205),(125,150), (110,100), (95,55). (Se foto 1 og foto 2 af keglerne - NB! keglebanen er spejl-vendt og tape-linier er anderledes i forhold til foto). Til venstre for den røde port er etforbudt område (13) markeret med hvid tape, som ikke må anvendes af robotten. Har ro-botten bare et hjul inden for dette område, gives -1 point.

• Målets sirene (14) aktiveres ved at trykke på frontpladen (der mekanisk aktiverer en kon-takt). Frontpladen er ca. 15 cm bred, 10 cm høj og forsænket ca. 1 cm i forhold til rammen.Der gives 2 point for at komme i mål (fra forsiden).

• På nær guillotinen (1) og mål (14) kan resten af forhindringerne gennemføres i vilkårligrækkefølge. Der er ikke krav om, at alle forhindringer skal gennemkøres.

B. DTU Robocup 197 af 250

Page 198: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Appendiks CMekanisk platform

I dette appendiks vælges hvilken mekanisk platform der anvendes i projektet. For at vælge denmest optimale makaniske platform, behandles denne efter samme model som anvendes til udvik-ling af hardware, hvilken er beskrevet i afsnit 3.2.4

C.1 Krav til platformen

I kravspecifikationen opstilledes en række generelle krav, som den samlede robot skal overholde.Mange af disse krav er relevante i forbindelse med valget af en platform til robotten. Opsumme-rende skal robottens platform overholde flg. krav:

• Robotten skal være et køretøj.

• Bredden af hele robotten må ikke overstige 35 cm.

• Højden af hele robotten må ikke overstige 47 cm.

• Robottens udformning må ikke hindre nedkørsel af forhindringsbanens trappe, som er be-skrevet i appendiks B.2 side 195.

• Robottens udformning må ikke hindre op- og nedkørsel af en rampe med 16 hældning.

• Robotten skal kunne dreje med en svingradius på 50 cm, eller mindre.

Grænseflader

Den mekaniske platforms grænseflader er kun af fysisk karakter, dvs. de øvrige blokke i robottenhar rent elektronisk ingen sammenhæng med platformen. Platformen danner kun rammen somde resterende blokke skal monteres på.

198 af 250

Page 199: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

C.1 Krav til platformen

C.1.1 Overordnede løsningsmuligheder

Ud fra de krav der er stillet, kan der vælges mellem en lang række platforme, der vil kunneanvendes, så længe at platformens dimensioner overholder kravene, samt at platformen er solidnok til at køre ned af en trappe.

Et element der imidlertid spiller stor rolle for valget af en mekanisk platform, er måden det ønskesat styre robotten på. En central del af projektet er at robotten er i stand til at dreje, idet den skalfølge en kurvet linie, hvilket kan gøres på forskellige måder. Det er også nødvendigt at besluttehvor mange hjul eller lignende det ønskes at robotten skal have. Disse elementer er der ikke stilletkrav til, men det er alligevel nødvendigt at overveje.

Antal af hjul

Som det fremgår skal robotten udformes som et køretøj, men det er endnu ikke fastlagt hvormange hjul den skal have.

I realiteten kan det godt lade sig gøre at konstruere robotten kun med to hjul, ligesom eksempel-vis en ’segway’. Dette vil imidlertid medføre at alene det at få robotten til at holde balancen, vilkræve en omfattende regulering. Anvendes der istedet tre hjul, skal der ikke tages hånd om at fårobotten til at holde balancen, men til gengæld skal stabiliteten af platformen overvejes, såledesat robotten ikke vælter til siden under kørsel.

Med fire hjul vil robotten have balance som en almindelig bil, og der vil derfor ikke være proble-mer med hverken balance eller stabilitet, idet robotten ikke kan vippe.

Anvendes der mere end fire hjul, er det nødvendigt at lade hjulene være i stand til at rotere omderes vertikale akse, idet der ellers opstår problemer med at få robotten til at dreje, uden et ellerflere hjul utilsigtet ’skurer’ eller skrider hen over jorden. Problematikken med hvorledes hjulenekan dreje, uddybes yderligere i næste afsnit. Af de gennemgåede muligheder, vælges det alleredenu at konstruere robotten med 4 hjul da dette findes mest optimalt.

Dreje ved at rotere hjul om lodret akse

Der er grundlæggende to måder at få et køretøj med 4 hjul til at dreje. Den ene er at få hjuleneder styres på, til at dreje om en lodret akse, som illustreret på figur C.1.

Denne metode virker ved at ændre på vinklen, et eller flere af hjulene har, i forhold til restenaf bilen. Hermed vil køretøjet køre i den retning, hjulet eller hjulene peger i. Det er blandt andetdenne metode der anvendes på de forreste hjul i en personbil. Placeringen og antallet af de hjulder kan ændres vinkel på, har betydning for hvordan platformen vil dreje. Eksempelvis drejerpersonbiler i cirkler med en vis radius, fordi de kun ændrer vinkel på de forreste hjul. Et køretøjder kan ændre vinklen individuelt på alle fire hjul, kan derimod dreje rundt på stedet.

C. Mekanisk platform 199 af 250

Page 200: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

C.1 Krav til platformen

Figur C.1: Illustrering af hvordan hjulene kan roteres for at dreje robotten.

Dreje ved at ændre hastighed på hjulene

En anden metode som kan anvendes til at få platformen til at dreje på, er ved at ændre på hastig-heden af hjulene, på hver side af køretøjet. Hvis hjulene på begge sider af køretøjet har sammehastighed, er køreretningen ligeud. Hvis eksempelvis højre side derimod kører hurtigere endvenstre, vil køretøjet dreje mod venstre. Jo større forskel der er i hastigheden på de to sider, joskarpere vil køretøjet dreje.

Denne styringsform kan også anvendes til at vende på stedet, altså have en svingradius lig nul.Dette kan gøres ved at lade hjulene på hver side, rotere hver sin retning, dvs. f.eks. højre sidekører frem, og venstre tilbage, med samme hastighed.

Denne metode til at dreje et køretøj på, uden at ændre vinklen på hjulene, kaldes skridstyringeller ’skid steering’ [54], idet alle hjulene skrider en lille smule på tværs af køreretningen, nårkøretøjet drejer. Når køretøjet kører ligeud, fungerer denne styreform ligesom for normale biler.

Begge de gennemgåede metoder til at dreje, vil kunne overholde det krav som er stillet til svin-gradius. For metoden hvor vinklen på hjulene ændres, kræver dette dog at vinklen kan ændrestilstrækkeligt.

Valg af løsning

Det er allerede bestemt at robotten skal have fire hjul, så det skal blot afgøres hvilken metode detønskes at anvende til at dreje med. Det vælges at arbejde videre med skridstyring, dvs. metodenhvor hastigheden af hjulene ændres, uden at vinkelen på hjulene modificeres. Dette valg bunderdels i situationen hvor robotten skal køre ned af banens trappe. Hvis vinklen på hjulene kanændres, risikeres det at vinklen ændres idet robotten rammer jorden, hvilket kan slå den ud afkurs. Dette kan ikke lade sig gøre med den anden metode, idet vinklen på hjulene er fikseret.Samtidigt ses det som en fordel at have en svingradius på nul, hvilket dog kan lade sig gøremed begge styringsformer. Det vurderes alligevel at være simplest at implementere med fikseretvinkel på hjulene, da det er en naturlig del af denne styreform, hvorimod det vil kræve fleremotorer at implementere hvis den anden løsning vælges. Alt i alt anses metoden hvor vinklenikke kan ændres, som den mest hensigtsmæssige.

200 af 250 C. Mekanisk platform

Page 201: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

C.1 Krav til platformen

C.1.2 Valg af den mekaniske platform

Der findes som sagt et utal af platforme, hvoraf det blot er at vælge en der opfylder de stille-de krav, og desuden benytter den valgte styreform. Platformen som vælges er ’The LynxmotionAluminum A4WD1’ fra Lynxmotion. Specifikationerne for platformen er anført som kilde [18].

Platformen er konstrueret i kraftig aluminium, som er bukket på en måde der giver et robust chas-sis [18]. Platformen er beregnet til montering af 4 motorer, og platformen er desuden konstruerettil skid steering. At anvende 4 motorer på platformen har indflydelse på måden robotten skalstyres på. En model for dette udledes i afsnit 13.1. Hjulene det vælges at anvende sammen medrobotten, er brede offroad dæk, ligeledes fra lynxmotion. Specfikationerne for hjulene anføressom kilde [20].

Figur C.2: Den mekanisk platform set fra tre sider.

På figur C.2 ses en skitse af den valgte platform. Skitsen er tegnet med det rigtige størrelsesfor-hold mellem længe,bredde og hjulstørrelse. I tabel C.1 ses dimensionerne, for den samlede robot,dvs. selve platformen, monteret med hjul. Af tabellen fremgår det at den valgte platform over-holder kravene til robottens dimensioner. Robotten vil endvidere, rent fysisk, være i stand til atkøre op af ramperne, da det forreste punkt på robotten, er dens hjul, som illustreret på figur C.3,dvs. at selve robottens ramme vil ikke ’støde på grund’.

Mål StrørrelseLængde robot 27,94 cmBredde robot 31,75 cmLængde platform 22,23 cmBredde platform 17,78 cmHøjde 12,16 cmHjul diameter 12,16 cmHjul bredde 7,0 cmFri højde 4,14 cm

Tabel C.1: Dimensionerne på den mekanisk platform med hjul, kilde [18].

C. Mekanisk platform 201 af 250

Page 202: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

C.1 Krav til platformen

Figur C.3: Den mekanisk platform på en 16 stejl rampe.

Figur C.4 illustrerer hvordan den mekaniske platform kan køre ned af et trin på trappen. Påfiguren er trappen og robotten tegnet i korrekt størrelsesforhold. Det ses at der er risiko for attrappen rammer robotten på undersiden, idet robotten kører ud over kanten. Dette betyder dogikke noget for selve kørslen, men det bør overvejes at eksempelvis liniesensoren ikke placeresunder midten af robotten, idet der som sagt er risiko for at de bliver skadet af trappen.

Figur C.4: Figuren viser banens trappe, hvor det ses at platformen kan køre på den.

202 af 250 C. Mekanisk platform

Page 203: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Appendiks DMotormodel

I dette appendiks gennemgås den overordnede funktion og opbygning for DC-motorer. Dettegøres med henblik på at forklare hvilke paramtere der er relevante at kende når der arbejdesmed motorer, og samtidig få opstillet ligninger for sammenhængen imellem parametrene. Herveder det muligt igennem en række målingern at opnå værdierne for de forskellige parametre, for demotorer der anvendes i projketet.

D.1 General opbygning

Motorerne, der er brugt i dette projekt, er DC-motorer med permanente magneter. Opbygningenog princippet i disse motorer bygger på at hvis en strømbærende leder placeres i et magnetfelt,vil denne leder blive udsat for en magnetisk kraft. Kraften virker på lederen i en retning der ervinkelret på både leder og magnetfeltet som illustreret på figur D.1.

f

B

i

Figur D.1: Illustration viser hvordan kraftpåvirkningen f, virker på lederen i magnetfeltet B, nårstrømmen i løber i lederen.

203 af 250

Page 204: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

D.1 General opbygning

Størrelsen af kraften der virker på et infinitisimal stykke af lederen, kan bestemmes ud fra flg.udtryk [23, s. 12]:

d~f = i(d~×~B) [N] (D.1)

Hvor:d~f er kraften på lederstykket [N]i er strømmen der løber i lederen [A]d` er et infinitisimalstykke af lederen [m]~B er fluxtætheden for magnetfeltet [Wb/m2].

Hvis det antages at magnetfeltet er uniformt og at lederen er vinkelret med magnetfeltet, kanudtrykket for kraften omskrives så det alene indeholder skalarer [22, s.339]:

f = i · ` ·B [N] (D.2)

Lederen i en motor består typisk af en kobbertråd, der er viklet omkring en jernkerne, placeret påmotorens aksel. Når der sættes strøm på motoren løber strømmen igennem lederen, på en sådanmåde at den løber i modsat retning, på hver side af motorens aksel. I motoren er sidder småpermanente magneter, som danner et magnetfelt, som lederen er placeret i. Når der løber strømigennem motoren, påvirkes lederen af en kraft, som illustreret på figur D.2. Idet lederen er vikletsåledes at strømmen løber både ind og ud af magnetfeltet, vil kraftpåvirkningen af lederen væremed modsat fortegn på hver side af lederen. Dette medfører et rotationsmoment på den vikledeleder, der gør at hele motorakslen roterer.

i

f

B

S N

f

Figur D.2: Leder i et magnetfelt

Lederen inde i motoren er ofte viklet mange gange rundt om kernen, dvs. hver vikling bidragertil den samlede kraftpåvirking, og dermed også til rotationsmomentet. Det samlede rotations-moment der opleves på motorakslen, udtrykkes ved produktet af den samlede kraft på lederen ogafstanden til akslen. For at beregne hvor stor moment akslen påvirkes med, anvendes viklingernesmiddelafstand til aksen.

204 af 250 D. Motormodel

Page 205: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

D.1 General opbygning

Dette giver udtrykket D.3 [23, s.8-13].

τ = i · ` ·B · r = K · i [m ·N] (D.3)

Hvor:τ er det samlede moment der frembringes i motoren [N ·m]r er middelafstanden imellem leder og aksen [m]K = ` ·B · r, kaldes moterens momentkonstant [N ·m/A]

Hvis ikke kraftpåvirkningen af lederen ændres efterhånden som motorakslen roterer, vil aks-len blive fastlåst når akslen har roteret så meget at de to kraftpåvirkninger af lederen, ophæverhinanden. For at få motorakslen til at fortsætte sin rotation, skal strømretningen, og dermed kraft-påvirkningen vendes. For at sikre at strømmen hele tiden løber i den rigtige retning anvendes enkommutator. En kommutator består ofte af to plader, hvor de to ender af den viklede leder harforbindelse til en plade. Forfindelsen imellem pladen og lederen består for det meste af en børste,der bevæger sig hen over pladerne [22, s. 348]. Kommutatorprincippet er illustreret på figur D.3.På denne måde skifter strømmen retning for hver halve rotation, og moteren kan dermed roterefrit.

ii

Børste

Børste

PladePlade

Leder

Figur D.3: Kommutator skifter og styre strømmens retning i lederne. Strømmen løber altidind gennem,på figueren, den røde plade og ud gennem den sorte, Børsterne skalber forbindelseimellem ledere og pladerne, når lederene bevæger sig rundt vil strømmen skifte retning i lederenmen altid være den samme iforhold til magnetfeltet.

Idet lederen i motoren er viklet som en spole, fremkommer en elektromotorisk kraft, efterhåndensamtidig med at motorakslen roterer [22, s.339-340]. Denne elektromotoriske kraft givet ved [23,s. 12]:

d~e = (~v×~B) ·d~ [V] (D.4)

Hvor:~v er hastighedsvektoren [m/s]d~e er en infinitisimal del af den samlede elektromotoriske kraft [V]

D. Motormodel 205 af 250

Page 206: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

D.2 Model for en DC-motor

Ud fra dette udtryk kan den samlede elektromotorsike kraft bestemmes [23, s. 13]:

em = ω · r ·B · ` = K ·ω [V] (D.5)

Hvor:em den samlede elektromotoriske kraft [V]. Idet den grundlæggende funktion af motoren

er bskrevet, og de nødvendige ligninger er opstillet, er det muligt i det følgende at opstille enmodel for DC-motoren.

D.2 Model for en DC-motor

Modellen for en DC -otor består af to dele: en elektrisk del og en mekanisk del. I det følgendegennemgås disse hver for sig.

D.2.1 Elektrisk model

DC-motoren kan, elektronisk set ækvivaleres med kredsløbet på figur D.4 [23, s.8-13].

Figur D.4: Elektrisk model af motor D.4 [23, s. 9].

På figuren er Ra er den ohmske modstand igennem viklingerne, La er viklingernes selvinduktionog em indsættes for at representere den i ligning D.5 beskrevne inducerede, elektromotoriskekraft. Ud fra denne model kan følgende sammenhæng opstilles:

Ua−URa−ULa− em = 0 [V] (D.6)

Ua = Ra · ia +La ·diadt

+K ·ω [V] (D.7)

Hvor:Ua er den påtrykte spænding [v]ia er strømmen igennem motoren [A]

206 af 250 D. Motormodel

Page 207: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

D.3 Bestemmelse af parametere

D.2.2 Mekanisk model

Den mekaniske del af motoren kan illustreres med figur D.5.

Figur D.5: Mekanisk model af motor. Cylinderen illustrerer motorakslens inertimoment.

Hvor:J er motorens initimomen [kg · m2]τf er den samlede friktion på motoren [N · m]τb er det ydre belastningsmoment [n·m]τm er momentet motoren frembringer på grund af strømmen [n·m]

Ud fra figuren kan følgende udtryk opstilles [23, s.8-13]:

Jdω

dt= τm− τb− τf(ω,τm− τb) (D.8)

Hvor τf er en funktion af både motorens vinkelfrekvens ω, samt differensen mellem moto-rens moment og belastningsmomentet (τm− τb). Følgende udtryk for friktionsmomentet anven-des [23, s. 10]:

τf =

bω+ sign(ω)τc ,ω 6= 0

τm− τb ,(ω = 0) og (abs(τm− τb)≤ (τc + τs))

(τs + τc)sign(τm− τb) ,(ω = 0) og (abs(τm− τb) > (τc + τs))

(D.9)

Hvor:τc er coulumbfriktionen (tørfriktion) [N·m]τs er det moment der skal til før motoren begynder sin rotation [N·m]b er friktionen i motoren [N·m/(rad/sek)]

D.3 Bestemmelse af parametere

For at kunne opstille algoritmer der regulerer motorerne på robotten, er det nødvendigt at findeværdierne for de forskellige motorparametre, således at de to gennemgåede modeller kan færdig-gøres. De forskellige parametre findes, som nævnt indledningsvis, igennem en række målinger.Målejournalerne for de forskellige målinger er ikke medtaget i den egentlige rapport, men eristedet vedlagt på bilagscden /maalejournaler.pdf.

D. Motormodel 207 af 250

Page 208: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

D.3 Bestemmelse af parametere

Parametrene der igennem målingerne skal findes en værdi for er:

• Motorens ankermodstand, Ra.

• Moterens selvinduktion, La.

• Motorens momentkonstant, K.

• Motorens inertimoment, J.

• Motorens tørfriktion (culoumbfriktion), τc.

• Motorens interne friktionskoefficient, b.

Flere af parametrene kan bestemmes på flere måder, hvilket gør det muligt at krydsreferere må-lingerne imellem, for herved at sikre validiteten af den fundne værdi. Nedenfor er vist en op-summring af de værdier der efter de forskellige måleserier, er fundet for de anvendte motorer.Motoren der anvendes, er som forklaret i kapitel 5 en gearet, 7,2 V DC motor.

Parameter Målejournal A Målejournal B Målejournal C Målejournal D EnhedRa – 1,76 1,0184 – Ω

La – 2,39 – – mHK 0,1549 – 0,2314 – m·N/Ab – – 0,0008 – N·m/(rad/sek)τc – – 0,0218 – N·mJ – – – 0,00232 kg· m2

Tabel D.1: Resultater fra målinger på motoren. Målejournalerne for motoren findes på bilagsc-den, /maalejournaler.pdf.

Ud fra databladet for motoren [19], kan der findes en referenceværdi for nogle af parametre, mendog ikke alle. Parametrene fundet ud fra databladet er angivet i tabel D.2:

Parameter Målejournal A EnhedRa 2,3818 Ω

La – mHK 0,2359 m·N/Ab −0,0069 N·m/(rad/sek)τc 0,2348 N·mJ – kg· m2

Tabel D.2: Nogle af motorens parametere fundet ud fra databladet. Målejournalerne for motorenfindes på bilagscden, /maalejournaler.pdf.

Ved at sammenholde værdierne fra databladet med værdierne fundet eksperimentielt, ses at derpå visse parametre forekommer en forholdsvis stor afvigelse, eksempelvis Ra som afviger mednæsten en faktor 2. For at bestemme hvilke af de fundne parametre, som bedst beskriver moto-rerne, indsætes værdierne i overføringsfunktionen for motormodelen.

208 af 250 D. Motormodel

Page 209: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

D.3 Bestemmelse af parametere

Overførselsfunktionen for motoren er givet ved [22, s. 350]:

H(s) =ω(s)U(s)

=K

J·La

s2 +(RaLa

+ bJ ) · s+(Ra·b+K2

J·La)

(D.10)

Ved at indsætte de forskellige af de målte værdier i ovenstående overføringsfunktion, kan derfindes frem til hvilke værdier der stemmer bedst overens, med et målt steprespons for motoren.Stepresponset er målt i bilagscdens målejournal A.

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

5

10

15

20

25

30

Tid [Sek]

Has

tigh

ed[r

ad/s

]

Overførsels funktionens Step Response

Malt Step Response

Figur D.6: Sammenligning af step responset for overførselsfunktionen og målingen på motoren.

På figur D.6 er vist den kombination af målte parametere, der giver et stepresponse der stemmerbedst overens med det målte steprespons. På figuren betegner den røde kurve de målte værdier,og den blå kurve er tegnet ud fra ligning D.10, med de bedste værdier indsat. Afvigelse i be-gyndelsesforløbet af de to kurver, kommer fra tachometeret der anvendte til målingen. Det ses attisdkonstanteerne for de to respons med god tilnærmelse er identiske. Den stationære hastighedligger dog lidt højere i modellen end den gør i målingen. Alligevel vurderes det at den anvendteoverføringsfunktion er tilas tæt på de målte værdier, til at den kan anvendes i modelleringen afmotoren. De anvendte parameter værdier i den plottede overførsels funktion er:

Parameter Værdi EnhedRa 1,76 Ω

La 2,39 mHK 0,2314 m · N/Ab 0,0008 N · m/(rad/sek)J 234,24E-5 kg· m2

Tabel D.3: Parametere værdier der anvendes til modelering af robotten

Disse værdier bliver brugt når motoren skal modelleres i forbindelse med reguleringen af densamlede robot.

D. Motormodel 209 af 250

Page 210: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Appendiks EMotordriver dimensionering

I kapitel 7, er kredsløbet til motordriveren analyseret, og der er opstillet en række ligninger hvorudfra dette kan dimensioneres. I dette appendiks gennemgås dimensioneringen og der vil derforløbende blive refereret til disse ligninger. På figur 7.11 side 63, ses kredsløbet for én H-bro. Li-geledes kan det samlede motordriver kredsløb, indeholdende fire H-broer, findes på det samledekredsløbsdiagram i appendiks L. Der tages udgangspunkt i disse diagrammer, gennem dette ap-pendiks. Desuden findes PCB udlæget til kredsløbet, på bilagscden /PCB/motordriver.

Fremgangsmåden for dimensioneringen, er først at vælge MOSFET’s som opfylder de krav somstilles i forbindelse med den valgte motor. Derefter vælges en MOSFET-driver. For at dimensio-nere H-broerne, beregnes først den maksimale strøm som motoren trækker, ud fra ligning 7.1. Forat finde denne strøm, skal motorens mindste ankermodstand findes. Til dette anvendes ligning 7.2.I denne ligning anvendes ankermodstanden ved en given temperatur. Motorens modstand er fun-det til 1,76 Ω ved 20 C, hvilket fremgår af tabel D.1 på side 208, som er resultaterne en rækkemålinger på motoren. Middelspændingen over motoren er maksimal 7,2 V og ankerspolen erviklet af kobber, hvilket har en temperaturkoefficient på 0,00393C−1. Dermed fås:

RA,min = ((5−20) ·3,93E-3+1) ·1,76 = 1,66 Ω (E.1)

Hermed kan det maksimale strømtræk beregnes:

Imax =7,2

1,66= 4,34 A (E.2)

Det vælges derfor at dimensionere H-broens transistorer efter en maksimal strøm på 5 A, forat have en vis sikkerhedsmargin. Motorens spole er målt til 2,39 mH, hvilket ligeledes fremgåraf tabel D.1. Gennem ligning 7.3, findes den mindste tilladte switchfrekvens, for at spolen er ikontinuert ledende tilstand. For at gennemføre denne udregning, skal den største ankermodstandfor spolen kendes, dvs. ankermodstanden ved robotten højeste anvendelses temperatur, hvilkener sat til 40C. Ud fra ligning 7.3 fås dermed:

RA,max = ((40−20) ·3,9E-3+1) ·1,76 Ω = 1,90 Ω (E.3)

210 af 250

Page 211: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Og dermed kan den mindste anvendelige switch frekvens findes:

tswich <2 ·2,39E-3

1,90= 2,52 ms⇔ (E.4)

fswitch >1

2,52E-3= 397 Hz (E.5)

Hermed skal swicthfrekvensen ligge over 397 Hz. Det vælges at køre med en frekvens på 980 Hz,da dette passer med mikrocontrollerens PWM generators opløsning. Samtidigt vil motorens tem-peratur muligvis overskride den maksimale omgivelsestemperatur, og swicthfrekvens skal i dettetilfælde øges lidt, hvilket der dermed er taget højde for.

Før det kan vælges hvilken type MOSFET der anvendes, skal det spændingsområde som disseskal kunne fungere i, findes. Den mindste spænding er, som tidligere beskrevet, 7,2 V og denmaksimale er lig den maksimale batterispænding, idet H-broen er tilkoblet direkte til batteriet.I kapitel 11, vælges batterispændingen hvilken, i henhold til dette kapitel, maksimalt kan blive12,6 V.

De forhold som MOSFET’erne skal kunne fungere under, er dermed fundet. Der anvendes totyper MOSFET’s, nemlig P-kanal og N-kanal. Kontakterne på figur 7.6, implementeres med hhv.P-kanals MOSFET’s som A og B samt N-kanals MOSFET’s som C og D. Denne implementationer taget ud fra kilde [48, s. 65]. Implementeringen ses på kredsløbstegningen, figur 7.11 side 63.Dvs. PWM signalet bruges altid på en PMOS, og PWM bruges på NMOS.Det vælges at anvendeP-kanal MOSFET’s af typen SUP75P03 [42] og N-kanal MOSFET’s af typen SUP85N02 [41]. Idet følgende er oplysningerne om de to typer transistorer taget fra databladene.

Af databladende fremgår det at de opfylder de krav som, mht. til maksimal strøm og spænding,som er fundet ovenfor. Deres maksimale arbejdsfrekvens er ikke direkte oplyst i databladet, menkan derimod beregnes ud fra de oplyste data omkring transistorernes skiftetider. Af disse skif-tetider kan det beregnes at P-kanal transistoren maksimalt kan skifte med 14 kHz, og N-kanaltransistoren maksimalt 30 kHz.

De valgte transistorer er desuden valgt ud fra den lille størrelsen af deres Ron modstand. Detteer gjort for at minimere effekttab når den er tændt, som beskrevet i kapitel 7. For N-kanal tran-sistoren er on-modstanden rDS(on) = 0,006 Ω til rDS(on) = 0,009 Ω alt afhængig af gate-sourcespændingen. For P-kanal transistoren er modstanden rDS(on) = 0,007 Ω til rDS(on) = 0,010 Ω,igen afhængigt af gate-source spændingen.

Ved hjælp af formel 7.9 og 7.10, findes swichttabet for hhv. P- og N-kanal transistorerne. Strøm-men IA er beregnet til 5 A, og spændingen UA er som nævnt på 12,6 V. Skiftetiderne for P-kanaltransistoren er i databladet opgivet til: trise = 360 ns og tfall = 340 ns. Switchtabene kan dermedberegnes:

Pswitch,on =12·12,6 ·5 ·360E-9 = 11,34 µW (E.6)

Pswitch,off =12·12,6 ·5 ·340E-9 = 10,71 µW (E.7)

E. Motordriver dimensionering 211 af 250

Page 212: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Eftersom det switchfrekvensen er bestemt til 980 Hz, kan det samlede switchtab Pswitch, beregnesgennem ligning7.8:

Pswitch = (11,34+10,71)E-6 ·980 = 21,61 mW (E.8)

For at udregne ledetabet i MOSFET’en, skal det bemærkes at effektafsætningen i transistorener størst, når PWM signalet har en duty-cucle lige under 100%. Det vil sige når signalet er højtnæsten hele tiden, hvilken giver stort ledetab, men alligevel får transistorerne til at switche etkort øjeblik, hvilket giver et switchtab. Det antages derfor at transistoren er konstant tændt, vedbestemmelse af det maksimale ledetab. I P-kanal MOSFET’en findes det maksimale ledetab til:

Pleder,max = 0,007 ·52 = 175 mW (E.9)

Den samlede effekt Ptotal som afsættes i P-kanals MOSFET’en, findes med ligning 7.6:

Ptotal = 175+21,61 = 196,61 mW (E.10)

Tilsvarende kan effektafsætningen bestemmes for N-kanal transistoren, idet databladet angiverskiftetiden til trise = 180 ns og tfall = 150 ns. Switchtabet bliver hermed:

Pswitch,on =12·12,6 ·5 ·180E-9 = 5,67 µW (E.11)

Pswitch,off =12·12,6 ·5 ·150E-9 = 4,73 µW (E.12)

Det samlede switchtab bliver:

Pswitch = (5,67+4,73)E-6 ·980 = 10,19 mW (E.13)

Det maksimale ledetabet bliver:

Plede,max = 0,006 ·52 = 150 mW (E.14)

Hvormed det samlede effekttab Ptotal er:

Ptotal = 150+10,19 = 160,19mW (E.15)

De to transistorer er begge normeret til 100 W effektafsætning til luft, i henhold til databladene,så det er på ingen måde nødvendigt med en køleplade.

Det vælges at anvende PEEL-kredse af typen 18CV8 [43] fra producenten ICT. Indgangsni-vauerne for logisk høj skal, for denne, være minimum være 2,0 V og for logisk lav maksimalt0,8 V [43]. Dermed er PEEL-kredsen TTL kompatibel. Det er dermed et krav til mikrocontrol-leren at denne ligeledes er TTL kompatibel, hvis styrekredsløbet til motordriveren og mikrocon-trolleren skal kunne fungere sammen. Den valgte MOSFET-driver er af typen SN75372 [40],hvilken er en dual MOSFET-driver. Denne er, i henhold til eget datablad samt databladet for devalgte MOSFET’s, istand til at op- og aflade den ladning, som lagres på de valgte transistorersgate-ben. Desuden er MOSFET-driveren normeret til samme spænding og frekvens som transi-storerne. Tilmed fungerer driveren ved samme signalniveauer som den valgte PEEL-kreds.

212 af 250 E. Motordriver dimensionering

Page 213: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Appendiks FLiniesensor dimensionering

I dette appendiks gennemgås forskellige forhold omkring udviklingen af liniesensoren, som detikke findes hensigtsmæssigt at have som en del af hovedrapporten. Dette værende dimensione-ringen af alle kredsløbskomponenterne til liniesensoren, samt opstilling af ligningerne til at be-skrive spredningen af IR lyset der udsendes af IR-LED’erne. I forbindelse med dimensioneringen,tages der udgangspunkt i de udtryk der er opstillet i kapitel 8

F.1 Dimensionering og beregning

Dimensioneringen af komponenter foregår, ligesom analysen af kredsløbene, i to omgange, førstmed senderdelen, og dernæst med modtagerdelen. Inden dimensioneringen påbegyndes, ønskesdet at have afklaret hvilken forsyningsspænding kredsløbet konstrueres til, da det som i kapitel 8antydet, ikke er uvæsentligt. Det ønskes overordnet set at have så få forskellige forsyningsspæn-dingsniveauer i hele robotten som muligt, og da der ikke er noget i liniesensoren der kun kanarbejde med én bestemt spænding, er det nemmeste blot at benytte et af de spændingsniveauerder allerede anvendes et andet sted i robotten. Motordriverne kører direkte på batterispændingen,men da denne kan variere, er dette ikke anvendeligt for liniesensoren. Mikroprocessoren kører3,3 V, men dette er for lavt til eksempelvis 555-kredsen [44]. Tilbage er omdrejningsenkoderne,der arbejder med 5 V, hvorfor dette er forsyningsspændingen der anvendes. Som nævnt anvendeskun enkeltsidet forsyning, dvs. der arbejdes med +5 V og stel.

F.1.1 Senderdelen

Senderdelen gennemgås i dette afsnit, ligesom den blev gennemgået i kapitel 8, ved at gennemgåhver enkelt delblok for sig. Det samlede senderkredsløb ses på figur 8.10 side 75, og er desudenvist på det samlede kredsløbsdiagram i appendiks L.

213 af 250

Page 214: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

F.1 Dimensionering og beregning

Oscillator

Først vælges kondensatoren til Cs2 = 10 nF. De to tider t1 og t2 angiver begge halvdelen afden samlede svingningstid, for oscillatorfrekvensen, som tidligere blev fastsat til 70 kHz. Dvs.t1 = t2 = 1/(2 ·70E3) = 7,14 µs. Ud fra ligning 8.1 kan RsA da bestemmes til:

RsA =7,14E-6

0,693 ·10E-9= 1030,3 Ω≈ 1 kΩ (F.1)

(F.2)

For at bestemme RsB laves en itteration af ligning 8.2 side 73, i matlab, for at finde den RsB derpasser til t2 = 7,14 µs. Itterationen kan ses på figur F.1.

0 50 100 150 200 250 300 350 400 450 5000

0.5

1

1.5

2

2.5x 10

−5

X: 437.9Y: 7.221e−006

Rb[Ω]

t 2[s

]

Figur F.1: Matlab genereret graf der viser t2 som funktion af RsB, hvormed en værdi for mod-standen kan findes, ud fra den ønskede tid.

Af figuren fremgår RsB = 437,9 Ω≈ 432 Ω. Det bør bemærkes, at for at kunne justere frekvensenog duty-cyclen helt præcist, implementeres begge de to modstande som trimme potentiometre.

LED-driver

Som bestemt i kapitel 8, skal LED-driveren tilpasses således at der løber 100 mA igennemLED’erne. Transistoren der anvendes i driverkredsløbet er en NMOS IRLI530 MOSFET. Transi-storens datablad er angivet som kilde [31]. Af databladet fremgår det at transistoren er rated til enstrøm der er meget større end den der anvendes her, hvorfor dette ikke vil give problemer. Endvi-dere er transistorens skiftetider tilpas lave, til at den kan åbne og lukke med de ønskede 70 kHz.Af databladet fremgår der flere nødvendige data, som er præsenteret nedenfor. Størrelserne erangivet for drainstrømmen Id = 400 mA.

214 af 250 F. Liniesensor dimensionering

Page 215: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

F.1 Dimensionering og beregning

Størrelse Værdi EnhedrDS 0,10 Ω

tr 53 nstf 26 ns

Her betyder tiderne tf og tr hhv. fall-time og rise-time. Den meget lille rDS betyder at spændings-faldet fra drain til source på transitoren, kan ignoreres.

Som det fremgik af analysen af kredsløbet, i kapitel 8, har transistoren 4 grene, med 3 dioderpå hver. Det er ikke muligt at sætte alle LED’erne i serie på collectoren, da det af databladetfor LED’erne fremgår, at ved en forward current på If = 100 mA, har de et spændingsfald ca.1,3 V [38]. Da forsyningsspændingen er på 5 V, er det dermed ikke muligt at sætte alle tolv di-oder i serie, og lade 100 mA løbe igennem dem. Modstanden på transistorens drainben kan dabestemmes:

Rs3 =5−3 ·1,3

100E-3= 11 Ω≈ 10,7 Ω (F.3)

(F.4)

Der gælder at Rs3 = Rs4 = Rs5 = Rs6 Da der arbejdes med en FET skal der ikke trækkes strøm udaf udgangen på 555’eren, hvormed dette ikke kan give problemer.

F.1.2 Modtagerdelen

Modtagerkredsløbet ses på figur 8.17 side 81, og er desuden vist på det samlede kredsløbsdiagrami appendiks L. Modtagerens blokke gennemgås, ligesom for senderen, også hver for sig.

Strøm-spændings konverter

Modstanden i konverteren skal bestemmes således indgangsspændingen på filteret, får et niveauder er så højt, at der kan arbejdes videre med det i den resterende del af modtageren.

Opampen der anvendes er en TLC08x, hvis datablad er angivet som kilde [16]. Den maksimaleoutputspænding for denne opamp ved en 5 V forsyning, varierer alt efter hvor meget strøm dertrækkes ud af opampen, men den ligger på ca. 3,8 V. Det vil sige photodiodens maksimale strøm,ønskes omdannet til en spænding på 3,8 V. Ved at sætte spænding på en af de valgte photodioder,og teste den sammen med det dimensionerede senderkredsløb over både gulv og tapelinie, er derfundet frem til at en modstand på 100 kΩ er passende, dvs. RM1 = 100 kΩ.

Filter

Som beskrevet i afsnit 8.3.2 på side 76, er de nødvendige ligninger for konstruktion af filte-ret, flyttet til dette appendiks. Konstruktionen af filteret gennemgås således i to omgange. Førstgennemgås hele den teoretiske baggrund for at opstille ligningerne for filteret, og efterfølgendedimensioneres de kredsløbskomponenter som filteret består af.

F. Liniesensor dimensionering 215 af 250

Page 216: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

F.1 Dimensionering og beregning

Opstilling af filter ligninger

Dimensioneringen gennemføres i to dele. Først opstilles en overføringsfunktion for det filter derønskes konstrueret, og efterfølgende udarbejdes der en kredsløbsrealisering af overføringsfunk-tionen. Hele udviklingen af filteret bygger hovedsagligt på kilde [47, s. 15-115] og [45, s. 25-30+ 49-57]

OverføringsfunktionDet kan diskuteres hvilken approximation der skal anvendes under konstruktionen af filteret, idetder findes flere forskellige aproximationer, hver især med forskellige fordele og ulemper. I dettetilfælde vælges det at anvende Butterworth approximationen, under udarbejdelsen af filteret. Forat dimensionere filteret korrekt, skal der først stilles en række krav til filterets frekvenskarakteri-stik, for hermed at anvende disse krav under dimensioneringen. Der skal stilles krav til følgendeelementer for båndpasfilteret:

• Øvre og nedre pasbåndsfrekvens.

• Øvre og nedre stopbåndsfrekvens.

• Dæmpning i stopbånds- og pasbåndsknækfrekvenser.

En illustration af kravene der stilles, og det filter der ønskes udviklet, er bragt på figur F.2.

Figur F.2: Skitse over båndpasfilteret, og de krav der stilles til det.

216 af 250 F. Liniesensor dimensionering

Page 217: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

F.1 Dimensionering og beregning

I princippet er det forkert at lave en filtrering af lyset der modtages, fordi signalet på sendersidener skabt af en firkantbølge fra 555’eren. Dette medfører på modtagersiden, at der vil være etuendeligt antal frekvenser, der alle bærer en del af energien i signalet, hvorfor det principielt erforkert at filtrere signalet. Dog kan det siges at frekvenser omkring selve modulationsfrekvensenvil indeholde langt det meste af den samlede energi for signalet, hvorfor det alligevel vælges atgennemføre filtreringen. Da modulationsfrekvensen for signalet som nævnt er 70 kHz, skal dettevære centerfrekvensen for filteret. Pasbåndet vælges til at være fra 63 kHz til 77 kHz, da detforventes at det meste af energien ligger i dette område. Frekvenserne der markerer stopbåndetvælges til 6,3 kHz og 770 kHz, da dette netop er en dekade over hhv. under pasbåndet. I deto pasbåndsfrekvenser skal signalet forstærkes med -1 dB, og i de to stopbåndsfrekvenser skalsignalet forstærkes -20 dB. Dermed kan kravene opsummeres i følgende tabel.

Størrelse Benævnelse KravNedre pasbåndsfrekvens fpass,1 63 kHzNedre pasbåndsfrekvens (rad) ωpass,1 2π63E3 rad/sØvre pasbåndsfrekvens fpass,2 77 kHzØvre pasbåndsfrekvens (rad) ωpass,2 2π77E3 rad/sNedre stopbåndsfrekvens fstop,1 6,3 kHzNedre stopbåndsfrekvens (rad) ωstop,1 2π6,3E3 rad/sØvre stopbåndsfrekvens fstop,2 770 kHzØvre stopbåndsfrekvens (rad) ωstop,2 2π770E3 rad/sDæmpning i pasbåndsfrekvenser apass -1 dBDæmpning i stopbåndsfrekvenser astop -20 dB

Da kravene er opstillet, kan der udformes en normaliseret prototype af filteret, dvs. et lavpas-filter, med 3 dB knæk i 1 rad/s. For at gøre dette skal ordenen af den normaliserede prototypebestemmes, hvilket kan gøres ud fra [47, s. 20]:

n =log[(

10−0,1·astop−1)/(10−0,1·apass−1

)]2log(Ωr)

[−] (F.5)

Hvor:n er den nødvendige orden [-]astop er dæmpningen i stopbåndsknækkene [dB]apass er dæmpningen i passbåndsknækkene [dB]

Størrelsen Ωr kaldes frekvens forholdet, og er givet ved [47, s. 65]:

Ωr =ωstop2−ωstop1

ωpass2−ωpass1[−] (F.6)

Hvor:ωstop2 og ωpass2 er øvre stop- og pasbånds vinkelfrekvens [-]ωstop1 og ωpass1 er nedre stop- og pasbånds vinkelfrekvens [-]

F. Liniesensor dimensionering 217 af 250

Page 218: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

F.1 Dimensionering og beregning

Dermed opnås frekvensforholdet:

Ωr =2π ·770E3−2π ·6,3E32π ·77E3−2π ·63E3

⇔ [−] (F.7)

Ωr = 54,55 (F.8)

Hvormed ordenen kan bestemmes til:

n =log[(

100,1·20−1)/(100,1·1−1

)]2log(54,55)

⇔ [−] (F.9)

n = 0,74 (F.10)

Da ordenen skal være et heltal, rundes der op således n = 1. Dette betyder blot at filterets dæmp-ning er kraftigere i overgangen fra pasbånd til stopbånd, end hvad der ellers havde været tilfældet.

Da ordenen af prototypen er fundet kan selve prototypen bestemmes ud fra dens poler. Der an-vendes i det følgende et stort ’S’ når der er tale om den normaliserede prototype til filteret, oglille ’s’ når filteret denormaliseres. Polerne i prototypen kan bestemmes ud fra [45, s. 54]:

Sk = e j·[ 2k+12n ·π−

π

2 ] [−] (F.11)

for k = 1,2, ...,2nHvor:

Sk er polen for et given k [-]n er prototypens orden [-]

Dette giver et antal poler jævnt fordelt på den komplekse enhedscirkel. For at få et stabilt fil-ter, konstrueres overføringsfunktionen efter polerne i LHP (left-halfplane). Alt efter prototypensorden, vil der være et lige eller et ulige antal poler. Hvis ordenen er ulige vil der være et antalkompleks-konjugerede polpar, samt en pol på den negative realakse. Hvis ordenen er lige, vil derkun være de komplekskonjugerede polpar. Dette munder ud i en række 2. ordens led, og evt. etførsteordensled, hvor den samlede overføringsfunktion opnås ved at gange alle del-funktionernesammen. Da prototypen kun skal være af første orden, har den kun en enkelt pol. For den udgaveaf Butterworth aproximeringen der anvendes her, ligger alle polerne på den komplekse enheds-cirkel, og da ordenen af prototypen er ulige skal polen deslige ligge i S = -1, som illustreret affigur F.3.

Figur F.3: Polplot over polen for prototypen.

218 af 250 F. Liniesensor dimensionering

Page 219: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

F.1 Dimensionering og beregning

Dette ses også af ligning F.11, for k = 1. Prototypens overføringsfunktion skal have enhedsgainved S = 0, hvormed den samlede overføringsfunktion for prototypen bliver [47, s. 22]:

Hp(S) =1

S +1[−] (F.12)

I ovenforstående ligning angiver subskriptet ’p’ at der er tale om prototypens overføringsfunk-tion. Idet prototypen er bestemt, kan der gennemføres en denormalisering af denne, til den egent-lige overføringsfunktion for båndpasfilteret. Denormaliseringen gennemføres ved at indføre etvariabelskift for prototypen [47, s. 65]:

S =s2 +ω2

0BW · s

[−] (F.13)

Hvor:ω0 er den geometriske centerfrekvens givet ved√ωpass1 ·ωpass2 [rad/s]BW er båndbredden givet ved ωpass2−ωpass1 [rad/s]

Dette vil munde ud i en overføringsfunktion, der ligesom før, kan splittes op i en række 2. ordensled.

Først udregnes de nødvendige størrelser:

ω0 =√

2π ·63E3 ·2π ·77E3 ⇔ [rad/s] (F.14)

ω0 = 437,6E3 rad/s (F.15)

BW = 2π ·77E3−2π ·63E3 ⇔ [rad/s] (F.16)

BW = 87,96E3 rad/s (F.17)

Herefter kan overføringsfunktionen for filteret bestemmes:

Ha(s) =1

s2+ω20

BW ·s +1⇔ [−] (F.18)

Ha(s) =BW · s

s2 +BW · s+ω20⇔ [−] (F.19)

Ha(s) =87,96E3 · s

s2 +87,96E3 · s+437,6E32 (F.20)

I ovenstående udtryk angiver subscriptet ’a’, at der er tale om det approximerede udtryk foroverføringsfunktionen. Der kan tegnes et bodeplot af overføringsfunktionen, for at vise at kraveneder er stillet, er overholdt. Overføringsfunktionens bodeplot ses på figur F.4.

Det ses at overføringsfunktionen i ligning F.20 kan skrives på standardformen:

Ha(s) =a1 · s

s2 +b1 · s+b2(F.21)

Denne måde at skrive overføringen på, skal anvendes i kredsløbsrealiseringen.

F. Liniesensor dimensionering 219 af 250

Page 220: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

F.1 Dimensionering og beregning

103

104

105

106

−60

−40

−20

0

20

Frekvens [Hz]

Am

plit

ude

[dB

]

103

104

105

106

−200

−100

0

100

Frekvens [Hz]

Fase

[]

Figur F.4: Bodeplot af den approximerede overføringsfunktion.

KredsløbsrealiseringTil kredsløbsrealiseringen af filterets overføringsfunktion, kan der vælges imellem en lang rækkefiltertyper. Det vælges at avende aktive filtre af typen ’Sallen-key’. Den generelle båndpasimple-mentationen af et Sallen-key filter er vist på figur F.5.

V.indV.out

R.BR.B

R.AR.A

R.3R.3

C.2C.2

C.1C.1

R.2R.2-

+

-

+3

21

R.1R.1

Figur F.5: Båndpas implementeringen af et Sallen-key filter.

Dette kredsløb har overføringsfunktionen [45, s. 178]:

Hc(s) =K·s

R1C1

s2 +(

1C2R3

+ 1C1R3

+ 1C1R1

+ 1−KC1R2

)· s+ R1+R2

C1C2R1R2R3

[−] (F.22)

220 af 250 F. Liniesensor dimensionering

Page 221: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

F.1 Dimensionering og beregning

Hvor K er forstærkningen i op-ampens tilbagekobling på 1+RA/RB. Funktionen kan simplifice-res ved at sætte C1 = C2 = C og R1 = R2 = R3 = R. Herved bliver overføringsfunktionen:

Hc(s) =K·sRC

s2 +(4−K

CR

)· s+ 2

C2R2

[−] (F.23)

I ovenstående beregning står subscriptet ’c’ for kredsløbsimplementationen (cicuit).

Det fremgår at Sallen-key filtret realiserer et 2. ordens led. Dermed skal der for hvert 2. ordens ledaf filterets approximerede overføringsfunktion der ønskes realiseret, kaskadekobles et tilsvarendeantal Sallen-key kredsløb, som kan tilpasses det enkelte 2. ordens led. Et evt. 1. ordens led ifilterets overføringsfunktion, realiseres med et forudgående almindeligt 1. ordens filter. Gainetfor det samlede filter kan afslutningsvis tilpasses med en spændingsdeling, idet hvert Sallen-keyled vil bidrage med en forstærkning.

Som det fremgår af Sallen-key implementerings overføringsfunktion, kan denne relativt simpeltoversættes til 2.ordens ledende af filterets overføringsfunktion, idet der kan opstilles følgendesammenhænge ud fra standardformen for overføringsfunktionen, i ligning F.23 og ligningen foroverføringsfunktionen på standardform F.21.

b1 =(4−K)

RC⇒ [−] (F.24)

K = 4−

√2 ·b2

1b2⇒ [−] (F.25)

RA =

3−

√2 ·b2

1b2

·RB [Ω] (F.26)

b2 =2

R2C2 ⇒ [−] (F.27)

R =√

2b2C2 [Ω] (F.28)

Dermed kan alle komponenterne bestemmes når blot der er valgt en værdi for C og for RB.

Dimensionering af komponenter

Det er tidligere blevet udledt at overføringsfunktionen for filteret som ønskes konstrueret, ser udsom:

Ha(s) =87,96E3 · s

s2 +87,96E3 · s+437,6E32 (F.29)

Som nævnt er dette udtryk skrevet på standardformen:

Ha(s) =a1 · s

s2 +b1 · s+b2(F.30)

F. Liniesensor dimensionering 221 af 250

Page 222: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

F.1 Dimensionering og beregning

Igennem ligningerne F.26 og F.28 kan komponenterne i filtret bestemmes, idet kondensatorernevælges til CM1 = CM2 = 1 nF og modstanden RMB vælges til RMB = 10 kΩ:

RMA =

3−

√2 ·87,96E32

437,6E32

·10E3 = 27,16E3 Ω≈ 27,4 kΩ (F.31)

RM2 =

√2

437,6E32 ·1E-92 = 3231,7 Ω≈ 3,24 kΩ (F.32)

(F.33)

Der gælder at RM2 = RM3 = RM4 Med de beregnede værdier for RA og RB, viser det sig imidlertidat forstærkningen (K) i opampen, bliver for stor, idet den antager værdien K = 1+27,4E3/10E3 =3,74. Dette medfører at forstærkningen i filteret bliver meget stor ved centerfrekvensen, jvf.figur F.6, der viser et bodeplot for filteret, hvis der anvendes de på nuværende tidspunkt beregne-de værdier.

103

104

105

106

−60

−40

−20

0

20

40 X: 6.98e+004Y: 21.98

Frekvens [Hz]

Am

plit

ude

[dB

]

103

104

105

106

−200

−100

0

100

Frekvens [Hz]

Am

plit

ude

[dB

]

Figur F.6: Bodeplot for filteret, med forstærkning.

Af figur F.6 fremgår det, at ved 70 kHz er forstærkningen ca. 22 dB, eller hvad der svarer til12,6 ganges forstærkning. Opampen der anvendes i filteret, er den samme som i spænding-strømkonverteren, dvs. maksimaloutputtet er 3,8 V ved den anvendte forsyning. Dette betyderat inputtet til filteret ikke være højere end 302 mV, før opampen går i mætning. Dette er særdelesuhensigtsmæssigt, idet det ønskes at have et større input signal, for at minimere indflydelsen frastøj. Derfor er det nødvendigt at omdimensionere filterets RA, således at K bliver mindre. Deneneste indflydelse dette vil have på filteret, er dets godhed, dvs. Q faktoren.

222 af 250 F. Liniesensor dimensionering

Page 223: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

F.1 Dimensionering og beregning

For filteret er Q-faktoren givet ved [45, s. 226]:

Q =√

24−K

[−] (F.34)

Ved at sætte Q = 1/√

2 fås at K = 2 og dermed at RMA = RMB. Dvs. ved at vælge RMA = RMB =10 kΩ, kommer filterets bodeplot til at se ud som på figur F.7. Bodeplottet fra figuren, er detbodeplot der arbejdes videre med, hvorfor at alle filterets komponenter er bestemt.

103

104

105

106

−60

−40

−20

0

20

40

Frekvens [Hz]

Am

plit

ude

[dB

]

103

104

105

106

−200

−100

0

100

Frekvens [Hz]

Am

plit

ude

[dB

]

Figur F.7: Bodeplot for det realiserede filters overføringsfunktion.

Plottes amplitudekarakteristikken for den approximerede overføring, og overføringsfunktionenaf kredsløbet sammen, fås resultatet på figur F.8.

Det ses at centerfrekvensen for de to plot er ens, og at forstærkningen i centerfrekvensen erens. Plottet for kredsløbsrealiseringen forløber dog noget blødere omkring centerfrekvensen, endden approksimerede overføring gør, hvilket hænger naturligt sammen med den justering der blevgennemført af K og dermed også Q for filteret.

Spændingsdelingen til det alternative stelpunkt laves med en fast modstand på RM12 = 3,01 kΩ

og et trimme potentiometer på RM13 = 5 kΩ. Dermed kan spændingen i styres mellem 0 V og3,1 V, hvilket er passende. Ved at finindstille potentiometret, er der dermed dannet et niveau somoutputtet fra filteret vil svinge omkring.

F. Liniesensor dimensionering 223 af 250

Page 224: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

F.1 Dimensionering og beregning

103

104

105

106

−60

−50

−40

−30

−20

−10

0

10

20

30

Frekvens [Hz]

Am

plit

ude

[dB

]

For kredsløbetFor approximationen

Figur F.8: Plot af amplituderesponset for både den aproximerede- og kredsløbets bodeplot.

Ensretning og udglatning

Det vælges at benytte en diode af typen BAT85, til ensretning af signalet. Dennes datablad eranført som kilde [27]. Modstanden og kondensatoren i udglatningen, skal vælges ud fra denknækfrekvens som 1.ordens filteret skal have, som skal være lavere end den bærebølge på 70 kHzsom det infrarøde lys udsendes med.

Hvis komponenterne vælges således at CM3 = 10 nF og RM5 = 5 kΩ, opnås en knækfrekvens på:

f0 =1

2π ·10E-9 ·5E3= 3,18 kHz (F.35)

Denne frekvens findes passende. Modstanden implementeres som et trimmepotentiometer, såle-des at udglatningen kan finindstilles.

Skallering

Som nævnt i kapitel 8, skal det endelige output fra liniesensoren skaleres til et niveau mellem 0 Vog 3,3 V. Komponenterne i differensforstærkeren og referencespændingen i differensforstærker-en skal da bestemmes således at dette overholdes. Først bestemmes referencespændingen.

Det mindste output en photodiode giver, er når hele liniesensoren er over tapelinien. Dette skalskaleres således at det giver et output på 0 V til ADC indgangen på mikrocontrolleren. Spæn-dingen der kommer på indgangen til differensforstærkeren, når liniesensoren er over linien, kanmåles til 1,19 V. Dette er altså spændingen efter spændings konverter, filter og udglatning. Dennespænding er dermed referencen for differensforstærkeren. Spændingsdelingen til referencespæn-

224 af 250 F. Liniesensor dimensionering

Page 225: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

F.2 Krydskobling

dingen, implementeres således at RM10 = 4,99 kΩ og RM11 = 5 kΩ. Sidstnævnte implementeressom et trimmepotentiometer, således at referencen kan finindstilles.

Forstærkningen kan beregenes ved at måle det tilsvarende maksimale input til differensforstærk-eren, når liniesensoren er over gulvet. Dette spændingsniveau måles til 1,3 V. Forskellen mellemreferencen og det maksimale input bliver da på 1,3 V - 1,19 V = 0,11 V. For at dette forstærkesop til de ønskede 3,3 V, skal der altså være en forstærkning på 30 gange i differensforstær-kertrinnet. Dimensioneringen af forstærkeren bliver ud fra ligning 8.12 på side 80, således atRM6 = RM7 = 1 kΩ og RM8 = RM9 = 33,2 kΩ.

Udvælgelse

Afslutningsvis indsættes en multiplexer, som det er valgt ikke at medtage på figur 8.17, og sesdermed kun på det samlede kredsløbsdiagram. Multiplexeren er en 8-bits multiplexer af typen4051, der dels er anvendelig i det output interval som liniesensoren giver, og samtidig kan styresaf to logiske signaler fra mikrocontrolleren.

Den samlede liniesensor kan ses på diagrammet i appendiks L og PCB udlæget findes på bilagsc-den /PCB/liniesensor/.

Det følgende afsnit har som sådan ikke noget med dimensioneringen af liniesensoren at gøre. Deter dog en indledning til, hvorledes det kan beregnes hvor meget lyset spredes fra det udstråles, tildet modtages igen.

F.2 Krydskobling

Som det fremgår af kapitel 8, består liniesensoren af 12 LED’er og 4 photodioder, som illustreretpå figur F.9.

Figur F.9: Placeringen af dioderne i liniesensoren. De firkantede er photodioder, og de runde erLED’er.

LED’erne udstråler deres lys med en vis vinkel, dvs. lyset spredes. Idet det ønskes at kunne be-regnes hvor langt dioderne placeres fra hinanden, bør det undersøges hvor stor krydskobling derer imellem dioderne, dvs. hvor meget lys fra de forskellige LED’er der kan modtages i en givenafstand fra dem. Dette er illustreret på figur F.10, der viser et eksempel hvor to LED/photodiodepar, er placeret ved siden af hinanden med afstanden ∆. På figuren er angivet en udstrålingsvinkelpå 2θ. Denne vinkel angiver der hvor udstrålingsintensiteten fra LED’en, er faldet til 50%. Dvs.

F. Liniesensor dimensionering 225 af 250

Page 226: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

F.2 Krydskobling

i en vinkel θ i forhold til dioden, er lyset kun halvt så kraftigt, som det er lige frem for dioden.Dioderne er placeret en afstand d fra gulvet, hvilket betyder at lyset skal tilbagelægge afstand 2d,for at være reflekteret tilbage på dioderne.

PhotodiodeIR-LED

d22

Figur F.10: Krydskobling af dioderne, ud fra spredning af lyset.

Spredningen af lyset efter det er reflekteret tilbage, kan beregnes ved:

∆ = tan(θ) ·2d [m] (F.36)

Hvor:∆ er spredningen af lyset [m]θ er vinklen lyset spredes til siden []d er afstanden fra dioderne til gulvet [m]

Med ligning F.36 kan afstanden imellem dioderne beregnes ud fra en ønsket tæthed af lyset efterreflektion. Bemærk dog at ligning F.36 reelt set kun er præcis ved reflektion af en glat overflade.Da gulvet robotten skal køre på er en ujævn overflade, vil reflektionen også være ujævn.

226 af 250 F. Liniesensor dimensionering

Page 227: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Appendiks GFysik implementation af mikrocontroller

Som beskrevet i afsnit 10, er det valgt at anvende en mikrocontroller af typen AT32UC3A0512.For at gøre det muligt at koble denne sammen med de resterende kredsløb i robotten, skal derudvikles et print hvorpå mikrocontrolleren kan monteres. Det skal altså bestemmes hvilke ben-forbindelser der skal trækkes ud fra mikrocontrolleren.

Mikrocontrolleren fås som en 144-bens SMD-komponent. For lettest at kunne udføre tests og ud-vikling på mikrocontrolleren, vælges det som sagt at lodde denne op på et board, hvor alle de afcontrollerens ben der ønskes anvendt, er trukket ud fra selve controlleren. Hermed kan der loddesstik på, og de øvrige kredsløb kan tilsluttes. Desuden skal det være muligt at lodde krystaller ogafkoblingskondensatorer på printet for at kunne køre med de ønskede frekvenser.

Ud over at trække de ben ud som det på forhånd vides der skal anvendes, trækkes også en rækkeekstra ben ud, for at gardere printet mod fremtidige behov. I det følgende gennemgås hvilke bender er trukket ud, og hvorledes de er grupperet på printet.

Alle ben der trækkes ud fra SMD-komponenten, deres formål, og placering på mikrocontrolleren,fremgår af tabel G.1.

227 af 250

Page 228: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Ben anvendelse Ekstern kreds Ben nr. Input/OutputForsyning, GND Forsyning 8,18,28,37,52,72 Input

83,94,109,117Forsyning, +3,3 V Forsyning 7,17,36,69,81,82 Input

92,93,108,116+1,8 V Intern 16 Output+1,8 V Intern 29,51,55,84,138 InputClock 16 MHz Intern 124, 125 InputClock 32768 Hz Intern 85,86 InputADC Liniesensor 80 InputGPIO Liniesensor (MUX) 96, 98 OutputUSART Bluetooth modul 39,41,45,47 Input/outputGPIO Bluetooth modul on/off 57 InputReset Reset-knap 23 InputJTAG pins JTAG debugger 128,129,130,131 Input/OutputADC Forsyning 77,78 InputGPIO Forsyning, tænd/sluk 74, 75 OutputSPI (MOSI,MISO,CS,SCK) Enkodere, motordriver 103,105,107,110,112,114 Input/outputPWM Motordriver 143,3,5,6 OutputGPIO Startknap 32 InputNPCS - Decoder Encoder 110,112,114 OutputPWM Ekstra 15,19 OutputGPIO Ekstra 58,60,62,64,118 Input/OutputTWI Ekstra 122,123 Input/OutputEXTINT Ekstra 34,66,73 InputTC Ekstra 25,27,30 Input

Tabel G.1: Tabellen viser de ben som er trukket ud fra mikrocontrolleren

Der trækkes fire faste stik, med 10 ben ud fra mikrocontrolerprintet til de øvrige print for hhv.encodere, forsyning, bluetooth samt til JTAG’en.

Stikket til forsyning indeholder fire ADC-ben, som måler batterigspændingen direkte på batteri-et, 5 V forsyning, 3,3 V forsyning og et ekstra stik. Derudover modtager mikrocontrolerprintetforsyning 3,3 V og GND fra forsyningsprintet.

Stikket til JTAG’en indeholder de fire JTAG ben: TMS, TCK, TDO og TDI der skal bruges til atfå JTAG og mikrocontroler til at kommunikere sammen, samt forsyning til JTAG’en. Koblingenmed JTAG’en gennemgås ikke yderligere.

Stikket til Bluetooth består af de fire USART forbindelser: RXD, TXD, CLK og RTS og et GPIOben (General Purpose Input/Output), der indikere om modulet er monteret på robotten, således atmikrocontrolleren kan se om bluetoothmodulet er tilsluttet.

Stikket til encoderen består dels af alle forbindelserne til encoderkredsløbet samt de forbindelserder skal bruges af H-bro’erne. Disse signaler er følgende: Fire PWM signaler til H-broerne og detre signaler der udgør SPI-bussen: MISO (MasterIn-SlaveOut), MOSI (MasterOut-SlaveIn) og SCK(Slave Clock), der styrer de anvendet SPI-expandere, der henter og sender inputs og outputs. I

228 af 250 G. Fysik implementation af mikrocontroller

Page 229: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

stikket til encoderne er desuden den forbindelse der skal gå fra liniesensorens output, til mikro-controllerens ADC.

Udover de fire stik til de andre print anvendes NPCS (Chip selsct til SPI) ben 110, 112 og 114til at styre chip select til encoderne via en 3-to-8 line decoder/demultiplexer som beskrevet iafsnit 6.4. Desuden bruges og GPIO ben 58 og 60 til at styre MUX’en på liniesensoren. DisseGPIO stik trækkes i metodestik direkte til de respektive print.

Robotten er ligeledes udstyret med en startknap, der kan starte robotten, når den skal begyndeat følge linien. Derudover kan knappen også bruges til at sætte robotten på pause, og starte denigen, hvilket er beskrevet i afsnit 3.3. Startknappen er koblet til GPIO indgang på ben nr. 32, derkan indstilles til at generere et interrupt ved tryk.

Opkoblingen af mikrocontrollerens forsyningsspænding, er udført via ’single power supply’ op-sætningen fra databaldet [4, s. 13], hvor der er koblet 3,3 V på alle mikrocontrollerens 3,3 Vforsyningsben. Mikrocontrollerens kerne skal kun bruge 1,8 V forsyning. Denne spænding dan-ner den selv ved at nedkonvertere spændingen på VDDIN, som sættes til 3,3 V. Mikrocontrollerenafkobls, som anbefalet i databladet [4, s. 14].

Der vælges at benytte en 16 MHz krystal som systemclock samt en 32,768 kHz krystal til ’realtimer clock’. Denne krystal kan benyttes direkte som RTC (real-time-clock), idet denne clock-værdi kan bitshiftes 15 gange til højre, hvorved clocken omregnes til tid i sekunder.

Udover ovennævnte, er der ingen dimensionering, idet der blot er tale om at trække de nødven-dige ben ud og skabe de rigtige forbindelser med de øvrige kredsløb. Af samme årsag er det ikkemuligt at verificere mikrocontrolleren i sig selv, da det som sådan er en enkeltstående enhed, ogverificeringen bliver dermed, ligesom for bluetoothmodulet, igennem anvendelsen af den.

Mikrocontrollerens forbindelser er vist på det samlet kredsløbsdiagram i appendiks L bagerst irapporten, og PCB layoutet til printet der fabrikeres, findes på bilagscden /PCB/mikrocontroller/.

G. Fysik implementation af mikrocontroller 229 af 250

Page 230: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Appendiks HMålejournal - Encoderkredsløb

Formålet med målejournalen er at verificere det konstruerede encoderkredsløbs evne til at målemotorernes omdrejningshastighed.

H.1 Måleprocedure

Opstillingen der anvendes til målingerne fremgår af figur H.1. Målingerne udføres som følger:

1. På motorakslen sættes et lyst stykke tape, der gør at omdrejningshastigheden kan målesmed et optisk tachometer.

2. Tachometrets målinger plottes direkte som en spænding på et oscilloskop.

3. Motoren sættes til at rotere med konstant hastighed.

4. Omdrejningshatigheden måles med et optisk tachometer, for at opnå en reference for ha-stigheden.

5. Gennem microcontrolleren aflæses counterne der er tilsluttet encoderne.

6. Counteren aflæses 256 gange med en frekvens på 128 Hz.

7. De aflæste counterværdier udlæses til en PC via robottens bluetooth modul.

Ovenstående måleprocedure gennemføres for seks forskellige hastigheder på motorerne, ved atændre motorspændingen mellem 2 V til 7,2 V. Bemærk at målingerne udføres på motorakslen,og ikke på hjulakselen, hvorimellem der er en gearing på 30:1.

Counteren aflæses med et stykke testsoftware, der aflæser counterens værdi med den givne fre-kvens samt nulstiller denne efter hver aflæsning. Samtidigt sørger testsoftwaren for at udlæseværdierne til en PC’en. Hvorledes dette gøres, er yderligere beskrevet i softwareafsnittet om en-coderne, i kapitel 15. Bemærk at der samples med 128 Hz, da dette er samplingsfrekvensen itilbagekoblingssløjfen, som beskrevet i afsnit 12.4.

230 af 250

Page 231: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

H.2 Beregninger bag målingerne

H.2 Beregninger bag målingerne

Værdierne der aflæses fra counteren skal omregnes, således de kan sammenlignes med målingenfra tachometeret. Dvs. værdierne skal omregnes til omdrejninger per minut. Dette kan gøres medfølgende formel:

vRPM =Pudlæsning · fs ·K

PPRencoder[RPM] (H.1)

Hvor:vRPM er omdrejningshastigheden [RPM]Pudlæsning er den udlæste værdi fra counteren [-]fs er samplingfrekvensen som counteren aflæses med [Hz]K er omregningsfaktoren fra sekunder til minutter [-]PPRencoder er antallet af pulser encoderen udsender per omdrejning [PPR]

Encoderen udsender 100 PPR og omregningsfaktoren K = 60, hvormed det fås:

vRPM =Pudlæsning ·128 ·60

100[RPM] (H.2)

vRPM = Pudlæsning ·76,8 [RPM] (H.3)

(H.4)

Dvs. den målte omdrejningshastighed på motorakslen, målt med encoderen, stiger 76,8 RPM forhver gang counterens værdi stiger med 1.

H.3 Måleopstilling

Opstilling ses på figur H.1.

Figur H.1

H. Målejournal - Encoderkredsløb 231 af 250

Page 232: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

H.4 Udstyrsliste

H.4 Udstyrsliste

Navn Udstyrstype Producent Model AAU nr.Motor DC-motor Lynxmotion HN-GH7.2-

2414T - 30:1Encoder Omdrejnings- US Digital OEM Optical

encoder EncoderTachometer Optisk Compact Advent 77087

tachometer Instruments Tachoprobe A2108Oscilloskop Oscilloskop Agilent 54624A 33843Spændings- Spændings- Hameg PS3020 43685forsyning forsyning

H.5 Måleresultater

I tabel H.1 ses resultaterne fra målingerne. Behandlingen af disse foretages i afsnit 6.5. I tabellener angivet de omregnede værdier, dvs. omdrejningshastigheden for encoderne, og ikke de udlæsteværdier fra counteren, da disse blot er sammenholdt af omregningsfaktoren på 76,8 som beskre-vet. Det bør bemærkes at alle de 256 udlæste værdier fra counterne, for hver motorhastighed varens, og det har derfor alene været nødvendigt at angive én værdi som resultat.

Motor- Tachometer- Encoder- Encoderspænding [V] måling [RPM] måling [RPM] afvigelse [%]2,0 2330 2304 1,123,0 3550 3533 0,484,5 5350 5222 2,405,5 6540 6374 2,546,5 7850 7603 3,157,2 8610 8371 2,77

Tabel H.1: Tabellen viser måleresultaterne fra verificeringen af encoderkredsløbet

H.6 Måleusikkerhed og fejlkilder

Tachometeret har, ifølge databladet [15], en afvigelse på ±0,5% og en opløsning på 1,5 mV.Tachometeret har desuden to måletilstande 1 og 2, som kan anvendes hhv. i måleområderne 100-6000 RPM og 1000-60000 RPM. Valget af tilstand, har betydning for tachometerets præcisionen,da den udsendte spænding svarer til 1 RPM per mV i måletilstand 1 og 10 RPM per mV i måletil-stand 2. I kraft af opløsningen på 1,5 mV, har tachometeret en måleusikkerhed på±(0,5 + 15 RPM)i måletilstand 2 hvorimod den kun er ±(0,5 + 1,5 RPM) i måletilstand 1. De første tre målingerer foretaget i måletilstand 1 og de sidste tre i måle tilstand 2. Det ses på encodermålingerne at derer størst afvigelse, i forhold til tachometermålingen, når tachometeret er i måletilstand 2, hvilketantyder at en del af fejlen skyldes den øgede afvigelse i tachometeret.

232 af 250 H. Målejournal - Encoderkredsløb

Page 233: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Appendiks IMålejournal - Motordriver

Formålet med målejournalen er, at verificere hvorvidt det konstruerede motordriver kredsløb, eri stand til at drive motorerne som ønsket. Det ønskes dermed at måle om kredsløbet er i stand tilat kunne levere den strøm og spænding som det er dimensioneret til, samt at PWM signalet påudgangen, ikke har ændret sig i forhold til PWM signalet på indgangen af motordriveren. Detønskes desuden at måle om motoren er holdt i kontinuert ledende tilstand

I.1 Måleprocedure

Der udføres to måleserier der udføres som beskrevet nedenfor. Første måleserie skal undersøgeom H-broen kan levere den ønskede strøm, uden at PWM signalet forvrænges. Den anden måle-serie er til for at vise at motoren holdes i kontinuert strøm mode. Måleopstillingen ses på figur I.1.

Måleserie 1:

1. På udgangen af H-broerne tilsluttes en modstand.

2. Modstanden dimensioneres således at H-broerne oplever et strømtræk, tilsvarende til mak-simalt motorstrømtræk.

3. På H-broernes PWM indgang påtrykkes et PWM signal på 980 Hz, som udregnet i kapi-tel 7.

4. Forsyningsspændingen til H-broen sættes til 12,6 V i maksimalværdi, da dette er maksimalbatteri spænding.

5. Strømmem igennem modstanden måles med et tangamperemeter.

6. Strømmen H-broen trækker fra forsyningen, måles med amperemeter.

7. PWM signalet måles både på indgangen af H-broen, og på udgangen, dvs. på modstanden.PWM signalet genereres i mikrocontrolleren.

8. Ovenstående gennemføres med forskellig duty-cycle på PWM signalet fra 0% op til 100%.

233 af 250

Page 234: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

I.2 Beregninger bag målingerne

Måleserie 2:Dette er blot en enkelt måling, med samme måleopstilling, som anvendt i første måleserie. Mod-standen udskiftes denne gang med en af robottens motorer. PWM signalet der påtrykkes, haren duty-cycle på 1,5%. For at undersøge om motoren holdes i kontinuert ledende tilstand, fast-holdes motorens hjulaksel, samtidig med at Strømmen ind i motoren, og PWM signalet måles.Opstillingen til målingerne ses på figur I.1.

I.2 Beregninger bag målingerne

For at kunne verificere at motordriverne kan klare det strømtræk, som den er dimensioneret til,ønskes det at simulere maksimalt strømtræk fra motoren. Modstanden Rload, som ses på figur I.1,skal derfor dimensioneres således motordriverne oplever omtrent samme strømtræk som de 4,34A motoren makismalt kan trække, som udregnet i ligning E.2. Denne strøm vil kun blive trukketnår forsyningsspændingen er 7,2 V det vælges dog som nævnt at teste dette ved 12,6 V , hvilket erden maksimale spænding som motordriven skal kunne fungere ved. Modstandsværdierne findesved hjælp af Ohms lov:

Rload =12,64,34

= 2,9 Ω (I.1)

Det er vigtigt at vælge en modstand, som er i stand til at klare den effekt som afsættes i den. Ikraft af et begrænset udvalg af effektmodstande, konstrueres testmodstanden ved en parallelkob-ling af flere effektmodstande. Modstanden Rload skal kunne klare 12,6 V · 4,34 A = 55 W. Deranvends tre 8,2Ω, som sættes parallelt. Disse giver en modstandsværdi på 2,73Ω, hvilket findesacceptabelt.

For at kunne verificere værdien af den målte, effektive udgangsspænding, beregnes først den te-oretiske udgangsspænding. Dette gøres ud fra formel I.2. Der arbejdes med middelværdier dadette tilsvarer den DC-værdi som motoren påtrykkes.

Uout,avg,calc = Din ·Uin,avg [V ] (I.2)

Hvor:Uout,avg,calc er den effektive, beregnede udgangsspænding [V]Din er duty-cycle på indgangen [-]Uin,avg er forsyningsspændingen [V]

Teorien bag måling 2 er, at ved at holde motorakslen fast, fjernes selvinduktionen i motorensspole, således at der kun ses ind i en modstand og en spole. Dermed kan det undersøges omspolen i motoren holdes i kontinert strøm mode, ved at måle om strømmen holdes over nul.

234 af 250 I. Målejournal - Motordriver

Page 235: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

I.3 Måleopstilling

I.3 Måleopstilling

Opstilling ses på figur I.1. Cirklerne på figuren, angiver hvor der er tisluttet et oscilloskop. Måle-opstillingen er den samme for både måleserie 1 og 2, med eneste forskel af modstanden udskiftesmed en motor.

Figur I.1: Måleopstilling for verificeringen af motodriveren.

På figuren er tangamperemeteret tilsluttet et oscilloskop, idet strømmen skal kunne udlæses.

I.4 Udstyrsliste

Følgende udstyr bruges i måleopstillingen:

Navn Udstyrstype Producent Model AAU nr.Osc1 Oscilloskop Agilent 54624A 33843Osc2 Oscilloskop Agilent 54624A 33843Osc3 Oscilloskop Agilent 54624A 33843Osc4 Oscilloskop Agilent 54624A 33843

Spændingsforsyning Spændingsforsyning Hameg PS3020 43685A Tang-amperemeter Fluke i30s 75464

Rload Effektmodstand 8,2 Ω 2159-01Rload Effektmodstand 8,2 Ω 2159-03Rload Effektmodstand 8,2 Ω 2159-07

Motor Lynxmotion HN-GH35GMB

I. Målejournal - Motordriver 235 af 250

Page 236: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

I.5 Måleresultater

I.5 Måleresultater

De data der er opnået igennem måleserie 1, fremgår af tabel I.1. I tabellen er desuden vist for-skellen i de målte dutycycles (|∆D|), forskellen mellem ind- og udgående strøm (|∆I|), samtforskellen mellem den virkelige, og den beregnede spænding på udgangen (|∆U |). I tabellen erdesuden vist den nøjagtige forsyningsspænding.

Duty cycle [%] Strøm [A] Spænding [U]DPWM DOut |∆D| Iin,avg Iout,avg |∆I| Uin,avg Uout,avg Uout,avg,calc |∆U |

0 0 0 0,035 0 0,035 12,60 0 0 01 1,1 0,1 0,050 0,015 0,035 12,70 0,21 0,126 0,0842 2,1 0,1 0,200 0,040 0,160 12,70 0,35 0,254 0,0965 5,1 0,1 0,240 0,170 0,070 12,70 0,67 0,635 0,03510 10 0 0,400 0,380 0,020 12,45 1,30 1,245 0,00530 29,9 0,1 1,260 1,250 0,010 12,5 3,70 3,75 0,05050 49,9 0,1 2,100 2,100 0,00 12,45 6,20 6,225 0,02570 69,8 0,2 2,970 2,950 0,020 12,40 8,60 8,680 0,08090 89,7 0,3 3,810 3,780 0,030 12,35 11,00 11,115 0,11595 94,6 0,4 4,00 4,00 0,00 12,33 11,60 11,715 0,11598 98,0 0 4,10 4,10 0,00 12,30 11,95 12,054 0,10499 99,0 0 4,32 4,30 0,02 12,30 12,10 12,177 0,077100 99,8 0,2 4,47 4,45 0,02 12,60 12,50 12,60 0.100

Tabel I.1: Målinger af duty cycle på udgangs og indgangs signalet samt gennemsnitlig strøm ogspændingen på ind- og udgangen.

Resultaterne fra anden målig ses på figur I.2. Spændingen på indgangs signalet måles samt strøm-men der løber ud af motoren. Det ses at strømmen der løber udaf motor aldring er nul og derforer motoren i kontinuert ledende tilstand.

236 af 250 I. Målejournal - Motordriver

Page 237: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

I.6 Måleusikkerhed og fejlkilder

0 0.5 1 1.5 2 2.5 3

x 10−3

0

5

10

15

Spæ

ndin

g[V

]

Tid [s]

0 0.5 1 1.5 2 2.5 3

x 10−3

−0.5

0

0.5

1

1.5

2

Tid [s]

Strø

m[A

]

Figur I.2: Skopbillede af spændingen på indgangen af motoren og strøm der løber ud af moto-ren. Den øverste figur viser PWM signalet med en duty-cycle på 1,5%, og nederst ses strømmenud motoren.

I.6 Måleusikkerhed og fejlkilder

Målingerne har en lille usikkerhed, i kraft af at amperemetret har en afvigelse på 2 mA. Desudener det en fejlkilde at der kun har været et amperemeter til rådighed, hvormed det har væretnødvendigt at flytte det fra det ene målepunkt til det andet, dvs. strømmen ind og ud af H-broenhar ikke været målt på nøjagtig samme tid.

I. Målejournal - Motordriver 237 af 250

Page 238: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Appendiks JMålejournal - Liniesensor

Formålet med dette appendiks, er at gennemgå proceduren for verificering af liniesensoren.

J.1 Måleprocedure

Der er overordnet set to sæt målinger der skal gennemføres:

1. Måling af liniesensor output, i forhold afstand til linien.

2. Måling af output, når robotten kører ind i et kryds.

De to måleserier gennemføres som følger.

J.1.1 Måleserie 1

1. Liniesensorens lysbum placeres med rækken af dioder vinkelret på linien, og dioden nær-mest linien skal være 2 cm fra liniens kant.

2. Outputtet fra alle photodioderne måles af mikrocontrolleren, og de digitaliserede værdierudlæses og gemmes.

3. Lysbummen flyttes 1 cm nærmere linien, og der foretages endnu en måling.

4. Lysbummen flyttes i ryk af 1 cm hen over linien, imens der foretages en måling for allephotodioder, for hver cm lysbummen flyttes.

5. Målingerne stoppes når lysbummen er flyttet hele vejen over linien, og dioden nærmestlinien er 2 cm fra liniens kant. Dette giver 25 målinger.

Som det fremgår bruges mikrocontrolleren til at foretage målinger på hver enkelt photodiode. Derskrives altså et lille, simpelt stykke software, der kan opsætte styresignalerne på multiplexeren,og hente en ADC konvertering for outputtet fra liniesensoren, en diode af gangen. Det er erfaretat outputtet fra liniesensoren svinger en smule. Derfor implementeres en midlings algoritme i

238 af 250

Page 239: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

J.1 Måleprocedure

målesoftwaren, der måler værdien fra den samme diode 8 gange i træk og efterfølgende findergennemsnittet mellem den maksimale og minimale ADC-værdi for dioden.

Kodestykket der bruges til at måle på dioderne fungerer således:

1. Sæt multiplexeren op til at lukke den ønskede diodes signal ind på adc’en.

2. Start en adc-konvertering af liniesensoroutputtet.

3. Lav 8 adc målinger, og find gennemsnittet mellem maksimal og minimal værdi.

4. Værdien der regnes på for den aktuelle diode, er det fundne gennemsnit.

5. Gennemgå ovenstående for alle fire dioder.

6. Den målte værdi af alle fire dioder, udskrives via mikrocontrollerens USART, til et termi-nalprogram på en PC.

Mikrocontrolleren sættes op således at dens adc output er på 1 byte, dvs. en måling på hver diodegiver en værdi mellem 0 og 255.

Hele måleserie 1 gennemføres 3 gange, for at opnå større datamængde, og dermed verificere atmålingerne ikke ændrer sig betydeligt fra gang til gang.

J.1.2 Måleserie 2

Da der er tre forskellige slags kryds på banen: Y-kryds, T-kryds og almindelige kryds, er deten mulighed at undersøge liniesensorens opførsel i hver af disse kryds. En simplere løsning erimidlertid at finde en fællesnævner for de tre kryds, hvormed det blot er denne fællesnævner somskal kunne detekteres. Ud fra den oficielle optegning af banen på figur B.1 på side 195, kan detvurderes at alle krydsene på et eller andet tidspunkt vil resultere i at linien i hvert fald har dobbeltbredde af normalt. Det er derfor blot nødvendigt at kunne detektere en dobbelt linie på gulvet,for at kunne detektere en linie.

Målingern udføres som beskrevet nedenfor:

1. Liniesensoren placeres på tværs af en linie med dobbelt bredde, dvs. ca. 8 cm, således atkun de to photodioder i den ene side er over linien, og de to øvrige photodioder er overgulvet.

2. Outputtet fra alle photodioderne måles af mikrocontrolleren, og de digitaliserede værdierudlæses og gemmes.

3. Lysbummen flyttes 1 cm til siden på linien, og der foretages endnu en måling.

4. Lysbummen flyttes i ryk af 1 cm over linien, ligesom i måleserie 1, indtil kun de to dioderi modsatte side er over linien.

Til at gennemføre målingerne, bruges samme stykke målesoftware, som for måleserie 1.

J. Målejournal - Liniesensor 239 af 250

Page 240: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

J.2 Teorien bag målingerne

J.2 Teorien bag målingerne

Der er som sådan ikke nogen teori bag målinger, idet formålet er at finde en sammenhæng mellemde data der opnås, og enten afstanden til linien, eller liniens forløb mht. kryds. Ved at findesammenhængen mellem måledataene og linien, kan der opstilles en algoritme der kan anvendestil at beregne afstand, eller genkende kryds.

J.3 Måleopstilling

Figur J.1: Figuren illustrerer hvorledes målingerne gennemføres.

Figur J.2: Figuren illustrerer hvorledes måleserie 2 gennemføres. Udførelsen er næsten densamme som for måleserie 1. De hvide cirkler symboliserer hvorledes photodioderne er placerertned mod linien.

På figurene er kun tegnet hvorledes selve lysbummen flyttes, dvs. der er ikke tegnet måleinstru-menter, strømforsyning, PC osv. på, idet dette for så vidt er uinteressant for målingerne.

J.4 Resultater

Resultaterne kan findes som tekstfiler på CD’en, via stien:/måledata/verificering_liniesensor

Sammen med resultaterne findes desuden de matlabfiler (m-filer) der anvendes til at behandlesog plotte de målte data, under opstilling af algoritmer.

240 af 250 J. Målejournal - Liniesensor

Page 241: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Appendiks KMålejournal - Forsyningskredsløb

Formålet med målejournalen er at verificere hvorvidt forsyningskredsløbet er i stand til levere despændinger det er designet til, selv ved store pludselige strømtræk.

K.1 Måleprocedure

Inden målingerne oplades batteriet fuldt ud. Forsyningskredsløbet opkobles som vist på figur K.1,og der tændes for kredsløbet. Dernæst sluttes kontakten ’switch’, vist på figur K.1, således der åb-nes for strømmen til modstanden R3. Samtidigt betragtes spændingerne i punkterne Osc1, Osc2,Osc3 på et oscilloskop, som er henholdsvis 3,3 V forsyning, 5,0 V forsyning samt batterispæn-ding. Desudenmåles strømmen gennem modstanden R3, med amperemetret benævnt ’A’. Strøm-trækket plottes på et oscilloskop. Det kan hermed kontrolleres hvorvidt forsyningsspændingerneligger indenfor de ønskede områder, selv ved store pludselige strømtræk, hvilket kan forekommenår motorerne sætter i gang eller hvis hjulene blokeres.

K.2 Beregninger bag målingerne

For at kunne verificere at forsyningen kan klare det strømtræk som den er dimensioneret til,ønskes det at simulere maksimalt strømtræk fra de øvrige kredsløb. Modstandene R1 og R2, somses på figur K.1, skal derfor beregnes således forsyningen oplever omtrent samme strømtræksom listet i tabel 11.1 side 102. Det vil altså sige 80+100 = 180 mA på 3,3 V forsyningen samt250+400+200 = 850 mA på 5,0 V forsyningen. Modstandsværdierne findes ved hjælp af Ohmslov. Bemærk at afrundingerne skyldes at de beregnede modstandsværdier ikke er tilgængelige,og der vælges derfor nærmeste tilgængelige værdi.

R1 =3,30,18

= 18,3 Ω≈ 12,2Ω (K.1)

241 af 250

Page 242: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

K.3 Måleopstilling

R2 =5

0,85= 5,9 Ω≈ 6,7Ω (K.2)

Sidste modstand R3, skal simulere strømtrækket forsaget af H-broerne, hvilket bestemmes af hvormeget strøm motorerne trækker. Motorerne trækker, i henhold til ligning E.2 side 210, maksimalt17,36 A ved 7,2 V. I kraft af at batteriet er ladet helt op, vil batterispændingen, i henhold tilafsnit 6.3, være omkring 12,6 V. For at beregne hvad H-broerne vil trække fra batteriet ved dennespænding, anvendes formel 11.3 på side 103. Der regnes, ligesom i afsnit 11.3.2, med at H-broerne har en effektivitet på 95%. Batteriets strømtræk forsaget af H-broerne, under de givneforhold, vil dermed være:

Ibat =Ikreds ·Vkreds

η ·Vbat[A] (K.3)

Ibat =17,36 ·7,20,95 ·12,6

= 10,4 A (K.4)

Modstanden R3 kan dermed bestemmes:

R3 =12,610,4

= 1,2Ω≈ 1,3Ω (K.5)

Det er vigtigt at vælge modstande som er i stand til at klare den relativ store effekt som afsættesi dem. I kraft af det begrænsede udvalg som har været tilgængeligt i dette projekt, har det væretnødvendigt at lave en parallelkobling af flere effektmodstande for at danne modstanden R3, somskal kunne klare 12,6 V ·10,4 A = 131 W.

K.3 Måleopstilling

Opstilling ses på figur K.1.

Figur K.1: Måleopstilling for forsyningstesten

242 af 250 K. Målejournal - Forsyningskredsløb

Page 243: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

K.4 Udstyrsliste

K.4 Udstyrsliste

Følgende udstyr bruges i måleopstillingen:

Navn Udstyrstype Producent Model AAU nr.Osc1 Oscilloskop Agilent 54624A 33843Osc2 Oscilloskop Agilent 54624A 33843Osc3 Oscilloskop Agilent 54624A 33843Osc4 Oscilloskop Agilent 54624A 33843

A Tang-amperemeter Fluke i30s 75465R1 Effektmodstand 12,2 Ω

R2 Effektmodstand 6,7 Ω

R3 Effektmodstand 1,3 Ω

Batteri LiPo batteri Arrowind 11,1 V, 2200 mAh, 25C

K.5 Måleresultater

Resultaterne fra målingerne ses på figur K.2, K.3 og K.4. Den vertikale stiplede grå streg, påalle figurer, angiver tidspunktet hvor kontaktet sluttes. De horisontale stiplede gule streger, påfigur K.3, angiver det spændingsniveau som forsyningen skal holde sig over, altså 7,2 V, i hen-hold til afsnit 11.1.1. Ligeledes angiver de gule streger på figur K.4, de spændingsniveauer somhenholdvis 3,3 V og 5,0 V forsyningerne, skal holde sig indenfor, som beskrevet i 11.1.1. Det vilaltså sige 3 V til 3,6 V, for 3,3 V forsyningen, og 4,7 V til 5,3 V, for 5,0 V forsyningen.

Som det fremgår stiger strømmen kun til godt 8,1 A, selvom det er beregnet at den skal stige til10,4 A. Dette skyldes imidlertid at batterispændingen falder samtidig med at strømtrækket stiger,således at batterispændingen kun er godt 10,2 V. Den resterende behandling af resultaterne ergennemgået i afsnit 11.5.

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

0

2

4

6

8

10

Tid [s]

Str

øm

[A]

A − strøm gennem R3

Figur K.2

K. Målejournal - Forsyningskredsløb 243 af 250

Page 244: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

K.6 Måleusikkerhed og fejlkilder

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

2

4

6

8

10

12

14

Tid [s]

Spæ

ndin

g [V

]

V3 − batterispænding

Figur K.3

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

1

2

3

4

5

6

Tid [s]

Spæ

ndin

g [V

]

V1 − 3.3V forsyningV2 − 5.0V forsyning

Figur K.4

K.6 Måleusikkerhed og fejlkilder

Den største fejlkilde for disse målinger, ligger ved de anvendte modstande. Udvalget af effekt-modstande i den størrelsesorden der er nødvendig for de gennemgåede målinger, har været megetbegrænset, hvormed de anvendte modstande har ligget langt fra den størrelse det som udganges-punkt var beregnet at de skulle have.

Udover afvigelse på modstandene, er den eneste umiddelbare fejlkilde afvigelsen på de anvendtemåleinstrumenter.

244 af 250 K. Målejournal - Forsyningskredsløb

Page 245: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Appendiks LSamlet diagram

245 af 250

Page 246: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget
Page 247: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Litteratur

[1] AAU. Projektforslag. Hjemmeside. Adresse:http://www.control.aau.dk/semester/E5/sites/e5/projects/Autonom_linierobot.pdf.

[2] A.Mølbach. Teori omkring lithium polymer batterier. Hjemmeside. Adresse:http://www.moelbach.dk/page_lipo_bat.html.

[3] Atmel. At32uc3a0512 datasheet. Datablad.

[4] Atmel. Avr32 32-bit mikrocontroller. Datablad.

[5] Encyclopædia Britannica. Electric generator. Hjemmeside.http://search.eb.com/eb/article-45810.

[6] National Semiconductor Corporation. Lmx9830 bluetooth R© serial port module. Datablad.

[7] Natur-og Sundhedsvidenskabelige Fakulteter Aalborg Universitet De Ingeniør.Studieordning for bacheloruddannelsen i elektronik, elektroteknik og it samt datateknik ogit 3.-6. semester. PDF - Hjemmeside,http://esn.aau.dk/fileadmin/esn/Studieordning/G_BSc_E_D.pdf, marts 2008.

[8] US digital. E4p oem miniature optical kit encoder. Datablad.

[9] Robort W. Erickson. Fundamentals of power electronics. Chapman & Hall, 2nd edition,1997. ISBN: 0412085410.

[10] Alan V. Oppenheim et al. Discrete-Time signal processing. Prentice Hall, 2nd edition,1999. ISBN:.

[11] Gene F. Franklin et al. Feedback control of dynamic systems. Pearson, Prentice hall, 5thedition, 2006. ISBN: 0-13-149930-0.

[12] Stephen Biering-Sørensen et al. Håndbog i strukureret programudvikling. Nyt tekniskforlag, 1988. ISBN: 87-571-1046-8.

[13] et. al Hans Ebert. Elektronik Ståbi. Ingeniøren Bøger, 8th edition, 2003. ISBN:87-571-2451-5.

247 af 250

Page 248: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

LITTERATUR

[14] Microchip Technology Inc. Mpc23008/mpc23s008 8-bit i/o expander with serial bus.Datablad.

[15] Compact Instruments. Advent laser tachometer dataprobes a2108/lsr. Datablad.

[16] Texas Instruments. Tlc080, tlc081, tlc082, tlc083, tlc084, tlc085, tlc08xa family ofwide-bandwidth high-output-drive single supply operational amplifiers. Datablad.

[17] Light Guides c©2008 inter.Light. Light guide: Fluorescent ballasts. Hjemmeside, 2008.Adresse: http://www.lightsearch.com/resources/lightguides/ballasts.html.

[18] Lynxmotion. A4wd1 robot specs. Hjemmeside. Adresse:http://www.lynxmotion.com/Category.aspx?CategoryID=119.

[19] Lynxmotion. Hn-gh35gmb - model: Hn-gh7.2-2414t - 30:1. Datablad.

[20] Lynxmotion. Robot hjul. Hjemmeside.http://www.lynxmotion.com/Product.aspx?productID=108&CategoryID=39.

[21] Robert W. Erickson & Dragan Maksimovic. Fundamentals Of Power Electronics. Kluweracademic publishers, 2th edition, 2001. ISBN: 0-7923-7270-0.

[22] Charles M. Close/ Dean K. Frederick/ Jonathan C. Newell. Modeling and analysis ofdynamic systems. John Wiley & Sons, INC, 3th edition, 2002. ISBN: 0-471-39442-4.

[23] Palle Andersen & Tom S. Pedersen. Modeldannelse. Afdeling for Proceskontrol, Institutfor Elektroniske Systemer, Februar 2007.

[24] Tom Pedersen. Feedback control ii. Note på hjemmeside. Adresse:http://www.control.auc.dk/%7Etom/TilbkobED5/regspec1e.pdf.

[25] Tom Pedersen. Samplingstid. Svar på e-mail, 12 2008. Ses på vedlagt cd under/kilder/Internet kilder/Samplingstid_email.eml.

[26] Philips. 74hc/hct138 3-to-8 line decoder. Datablad.

[27] Philips. Bat85 schottky barrier diode. Datablad.

[28] Yale University Press. Daylight spectrum. Hjemmeside, 2001. Adresse:http://home.twcny.rr.com/geomanagement/ensmingr/spectrum.html.

[29] Egon Rasmussen. Analog teknik. Industriens Forlag, 2th edition, 2001. ISBN:87-600-0354-5.

[30] Jr. Raymond A. Serway & John W. Jewett. Physics for Scientists And Engineers.Thomson * Brooks/Cole, 6 edition, 2004. ISBN: 0-534-40949-0.

[31] International Rectifier. Irli530 power mosfet. Datablad.

[32] DTU Robocup. Robocup. Hjemmeside. Adresse:http://www.dtu.dk/subsites/robocup/konkurrencen.aspx.

248 af 250 LITTERATUR

Page 249: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

LITTERATUR

[33] Henrik Schøler. Realtime systems - fixed priority scheduling. Undervisningsnoter.Adresse: http://www.control.auc.dk/ henrik/undervisning/sandtid/kursus/note4.pdf.

[34] Henrik Schøler. Realtime systems - job scheduling. Undervisningsnoter. Adresse:http://www.control.auc.dk/henrik/undervisning/sandtid/kursus/note3.pdf.

[35] Fairchild Semiconductor. 8-bit bidirectional binary counter with 3-state outputs. Datablad.

[36] National Semiconductor. Lm1575/lm2575/lm2575hv simple switcher R© 1a step-downvoltage regulator. Datablad.

[37] Siemens. Bpw35f silicon pin photodiode daylight filter. Datablad.

[38] Siemens. Ld274 infrared transmitter. Datablad.

[39] Bluetooth SIG. Bluetooth - compare with other technologies. Hjemmeside, 2008.Adresse: http://bluetooth.com/Bluetooth/Technology/Works/Compare/.

[40] Vishay Siliconix. Dual mosfet driver. Datablad.

[41] Vishay Siliconix. N-channel mosfet sup85n02. Datablad.

[42] Vishay Siliconix. P-channel mosfet sup75p03. Datablad.

[43] Vishay Siliconix. Peel 18cv8, cmos programmable electrically erasable logic device.Datablad.

[44] ST. Ne555 sa555 - se555 general purpose single bipolar timers. Datablad, juli 1998.

[45] Kendall Su. Analog Filters. Kluwer Academic Publishers, 2nd edition, 2002.

[46] Andrew S. Tanenbaum. Computer Networks. International Edition. Pearson EducationInternaional, 4. edition, 2003. ISBN: 0-13-038488-7.

[47] Les Thede. Practical analog and digital filter design. Artech House Inc., 2004.

[48] Richard I. Valentine. Motor control electronics. McGraw-Hill, 1th edition, 1998. ISBN:0-07-066810-8.

[49] Wikipedia. Buck converter. Hjemmeside. http://en.wikipedia.org/wiki/Buck_converter.

[50] Wikipedia. Hall effect sensor. Hjemmeside. Adresse:http://en.wikipedia.org/wiki/Hall_effect_sensor.

[51] Wikipedia. Lithium-ion polymer battery. Hjemmeside. Adresse:http://en.wikipedia.org/wiki/Lithium-ion_polymer_battery.

[52] Wikipedia. Robot. Hjemmeside. Adresse: http://en.wikipedia.org/wiki/Robot.

[53] Wikipedia. Rotary encoder. Hjemmeside. Adresse:http://en.wikipedia.org/wiki/Rotary_encoder.

[54] Wikipedia. Skid steer. Hjemmeside. Adresse: http://en.wikipedia.org/wiki/Skid_steer.

[55] AMBER Wireless. Amb2300. Manual 2.0.

LITTERATUR 249 af 250

Page 250: Autonom Linierobot - Aalborg Universitetvbn.aau.dk/files/16350490/final_18122008.pdf · Synopsis: Denne rapport tager ... guided vehicle, eller blot AGV. Med udgangspunkt i projektforeslaget

Indhold af Bilags CD

1. Elektronisk kopi af rapporten/rapport.pdf

2. Motor målejournaler/maalejournaler.pdf

3. Software

a. C/software/RoboCup

b. Abel/software/Abel

4. Accepttest video, billeder og handlingstabeller/accepttest/

5. Måledata/maaledata/

6. Matlabfiler/matlab/

7. Kilder/kilder/

8. Anvendte programmer/programmer/

9. PCB layout/pcb/

250 af 250