5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this...

154
Gruppe 504 Kamerastyret robot 5. SEMESTER DECEMBER 2002 Institut for Elektroniske Systemer Aalborg Universitet

Transcript of 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this...

Page 1: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

Gruppe 504

Kamerastyret robot

5. SEMESTERDECEMBER 2002

Institut for Elektroniske SystemerAalborg Universitet

Page 2: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is
Page 3: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

Det Teknisk-Naturvidenskabelige FakultetAalborg Universitet

Institut for elektroniske systemer

TITEL:Kamerastyret robot

PROJEKTPERIODE:5. semester5. september -19. december, 2002

PROJEKTGRUPPE:504 - 2002 E5

GRUPPEMEDLEMMER:Christian Rostgaard AndersenRasmus AbildgrenLisbet AndersenEmil Feldborg BuskgaardRikke OttesenMikkel Sandberg AndersenJakob Birkedal Nielsen

VEJLEDER:Henning Nielsen

OPLAG : 10

ANTAL SIDER RAPPORT: 110

ANTAL SIDER APPENDIKS: 30

ANTAL SIDER TOTAL: 154

SYNOPSIS:

Denne rapport tager udgangspunkt i udviklingen ogkonstruktionen af en autonom kamerastyret robot,der kan indsamle plastikkrus på en bane. På ba-nen befinder sig desuden forhindringer og en an-den autonom robot med samme formål. Systemetbestår af tre grundelementer: En billedanalysedel, enruteplanlægning- og korrigeringsdel og en robot.Billedanalysen skal analysere en bane for hvide rek-tangulære forhindringer, hvide plastikkrus og to ro-botter udstyret med unikke kendemærker og udlederelevante data for disse objekter. I analysen klassifi-ceres elementer ud fra kompakthed, og hjørner de-tekteres for forhindringer. Denne behandling fore-går på en SGI, hvorfra dataene sendes via TCP/IP tilen pc, hvor ruteplanlægning- og korrigeringsdelenimplementeres. Denne del beregner, med hensyn-tagen til forhindringer, ruter til indsamling af krusog udvælger den korteste rute. Til dette anvendesDijkstras Shortest Path algoritme. Ud fra ruternestyres en robot vha. radiokommunikation. Robottener konstrueret af LEGO og kontrolleres af udviklethardware baseret på en PIC16F877 microcontroller.Der anvendes objektorienteret analyse og design, ogi implementering af software anvendes C og C++.Det konkluderes, at der ud fra billedanalysens datakan planlægges ruter til indsamling af krus, og at ro-botten kan styres her ud fra. Systemets præcision erutilstrækkeligt til, at krusene kan indsamles.Det vurderes, at den utilstrækkelige præcision skyl-des, at der ikke tages hensyn til robottens bremse-længde, og at dataene fra billedanalysen ikke benyt-tes ofte nok. Det vurderes, at afhjælpning af disse toproblemer kan sætte systemet i stand til at indsamlekrusene.

Page 4: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is
Page 5: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

Faculty of Engineering and ScienceAalborg University

Institute of electronic systems

TITLE:Camera guided robot

TIMEPERIOD:5th semesterSeptember 5th to December 19th,2002

GROUP:504 - 2002 E5

GROUP MEMBERS:Christian Rostgaard AndersenRasmus AbildgrenLisbet AndersenEmil Feldborg BuskgaardRikke OttesenMikkel Sandberg AndersenJakob Birkedal Nielsen

SUPERVISOR:Henning Nielsen

COPIES: 10

NO. OF PAGES IN MAIN REPORT:110

NO. OF PAGES IN APPENDICES:30

NO. OF PAGES IN TOTAL: 154

SYNOPSIS:

The purpose of this report is the development andimplementation of an autonomous camera guidedrobot able to collect plastic cups on a court. Alsopresent on the court are obstacles and another auto-nomous robot with the same purpose.The system is comprised of three basic elements, di-gital image processing, pathfinding and correctionand a robot.The digital image processing unit purpose is to findwhite rectangular obstacles, white plastic cups, andtwo robots fitted with a unique symbol and deriverelevant data. The unit classifies elements based oncompactness and detects obstacle corners. The digi-tal image processing is based on a SGI from wherethe data is transmitted via TCP/IP to a PC wherethe pathfinding and correction unit is implemented.This unit calculates paths for collecting cups basedon the obstacles and chooses the shortest path. Forthis purpose the Dijkstra Shortest Path algorithm isused. Based on the paths a robot is controlled via aradio link. The robot is constructed of LEGO andcontrolled by a developed piece of hardware basedaround a PIC16F877 microcontroller.The conclusion is that a path can be planned basedon the data fron the digital image processing unitand that the robot can be controlled using that. Theprecision of the system is inadequate to actually col-lecting the cups.The theory is that the inadequate precision is cau-sed by not taking into account the breaking lengthof the robot and that the data from the digital imageprocessing is not used as often as it is available. Bycorrecting these two problems the systems is thoughtto be able to perform the task of collecting cups.

Page 6: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is
Page 7: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

ForordDenne rapport er skrevet i efterårsemesteret år 2002 på Aalborg Universitet, In-stitut for Elektroniske Systemer, under Studienævnet for Elektronik og Informa-tionsteknologi. Rapporten omhandler et 5. semesters projekt, om konstruktion afen kamerastyret robot. Målgruppen er 5. semesters studerende fra samme studie-retning.

Til kildeangivelse bruges Harvard-metoden, dvs. [forfatter, årstal, evt sidetal].Vedlagt er en cdrom i UNIX-format med kildekode og bilag. Der henvises påfølgende måde: “bibliotek/filnavn”. Bagerst i rapporten er komponentliste, fysiskdiagram og el-diagram placeret.

Som notation for aktiv lav er det valgt at benytte en overstregning, eksempelvis���. For tal i hexadecimal bruges 0x, eksempelvis 0x6F. Når der refereres til en

klasse i teksten, skrives klassens navn med fed, eksempelvis Rute. Er det derimodet objekt, anvendes fed formatering og understregning, som i Fikspunkter.

Funktioner angives på følgende måde:returværdi funktionsnavn(type variabel),eksempelvis void findKortesteRute(int startint maal).I figur 1 ses en signaturforklaring for den anvendte UML-notation.

vii

Page 8: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

Aalborg, d. 19. december 2002

Rasmus Abildgren Christian Rostgaard Andersen

Lisbet Andersen Emil Feldborg Buskgaard

Mikkel Sandberg Andersen Jakob Birkedal Nielsen

Rikke Ottesen

viii

Page 9: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

Usecase diagrammer

aktør

usecase

startpunkt

slutpunkt

valg

proces

modtag signal

send signal

processkift

Klasse

Aggregering

Genneralisation

afhængihed

Genneralisation

Aktivitetsdiagram Klassediagrammer

Deplyment diagram

programkomponet

Processor

Figur 1: Signaturforklaring for UML-diagrammer

ix

Page 10: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

Indhold

1 Kravspecifikation 21.1 Systembeskrivelse . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Systemets funktion . . . . . . . . . . . . . . . . . . . . . . . . . 31.3 Systemets begrænsninger . . . . . . . . . . . . . . . . . . . . . . 31.4 Krav til udviklingsforløbet . . . . . . . . . . . . . . . . . . . . . 41.5 Forudsætninger . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.6 Specifikke krav . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.7 Grænseflader . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.8 Systemets ydeevne . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Accepttest specifikation 72.1 Test for stillede krav . . . . . . . . . . . . . . . . . . . . . . . . 72.2 Test af robot på bane . . . . . . . . . . . . . . . . . . . . . . . . 8

I Analyse 11

3 Analyse af problemdomænet 133.1 Radiokommunikation . . . . . . . . . . . . . . . . . . . . . . . . 133.2 Robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.3 Billedanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.4 Planlægning og korrigering af rute . . . . . . . . . . . . . . . . . 16

4 Systemfunktioner 194.1 Ruteplanlægning og korrigering . . . . . . . . . . . . . . . . . . 194.2 Billedanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204.3 Brugerflade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204.4 Robotstyring . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

5 Klasser og tilhørsforhold 255.1 Systemets klasser . . . . . . . . . . . . . . . . . . . . . . . . . . 265.2 Systemets fysiske opbygning . . . . . . . . . . . . . . . . . . . . 27

x

Page 11: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

INDHOLD

6 Klassernes funktioner 326.1 Metoder og attributter i ruteplanlægning og korrigering . . . . . . 326.2 Metoder og attributter i brugerinteraktion . . . . . . . . . . . . . 376.3 Billedanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.4 Robotfunktioner . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

II Design 44

7 Billedanalyse 467.1 Statisk analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . 467.2 Dynamisk analyse . . . . . . . . . . . . . . . . . . . . . . . . . . 52

8 Pc-software 548.1 Kerne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548.2 Ruteplanlægning og korrigering . . . . . . . . . . . . . . . . . . 558.3 Brugerinteraktionen . . . . . . . . . . . . . . . . . . . . . . . . . 69

9 Robotten 719.1 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719.2 Indledende overvejelser . . . . . . . . . . . . . . . . . . . . . . . 719.3 Opbygning af robothardware . . . . . . . . . . . . . . . . . . . . 729.4 Design af basestation . . . . . . . . . . . . . . . . . . . . . . . . 789.5 Kerne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 799.6 Regulering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

10 Kommunikation 8110.1 Open Systems Interconnection(OSI) referencemodellen . . . . . . 8110.2 Radiokommunikation . . . . . . . . . . . . . . . . . . . . . . . . 8110.3 Netværkskommunikation . . . . . . . . . . . . . . . . . . . . . . 87

III Implementering 90

11 Implementering 9211.1 Implementering af systemet på SGI’en . . . . . . . . . . . . . . . 9211.2 Implementering af systemet på pc’en . . . . . . . . . . . . . . . . 9211.3 Implementering af systemet på robotten . . . . . . . . . . . . . . 9311.4 Implementering af kommunikation . . . . . . . . . . . . . . . . . 9311.5 Status for det samlede system . . . . . . . . . . . . . . . . . . . . 93

xi

Page 12: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

IV Test 95

12 Accepttest 9712.1 Test for stillede krav . . . . . . . . . . . . . . . . . . . . . . . . 9712.2 Test af robot på bane . . . . . . . . . . . . . . . . . . . . . . . . 9812.3 Delkonklusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

V Sammenfatning 100

13 Konklusion 10213.1 Problemstilling . . . . . . . . . . . . . . . . . . . . . . . . . . . 10213.2 Løsning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10313.3 Resultater . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10413.4 Perspektivering . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

Litteraturliste 105

VI Appendiks 108

A Regelsæt for konkurrence 110

B Mekanisk opbygning af robotten 112

C Kalibrering af kamera 114C.1 Fremgangsmåde . . . . . . . . . . . . . . . . . . . . . . . . . . . 114C.2 Kameraets parametre . . . . . . . . . . . . . . . . . . . . . . . . 115C.3 Kalibreringsresultater . . . . . . . . . . . . . . . . . . . . . . . . 118C.4 Omregning mellem kamerakoordinater og banekoordinater . . . . 118

D Protokoller 121D.1 Radiokommunikation . . . . . . . . . . . . . . . . . . . . . . . . 121D.2 Netværk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

E Målejournaler fra accepttest 124E.1 Test af præcision for kørsel af liniestykke . . . . . . . . . . . . . 124E.2 Test af præcision for rotation . . . . . . . . . . . . . . . . . . . . 128E.3 Test af billedanalysens præcision . . . . . . . . . . . . . . . . . . 130E.4 Test af ydelseskrav for billedanalyse . . . . . . . . . . . . . . . . 133

Page 13: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

INDHOLD

F El-diagram og printudlæg 136F.1 Komponentliste . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

xiii

Page 14: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

INDHOLD

xiv

Page 15: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

IndledningI produktionsvirksomheder er det ofte ønsket at kunne sortere varer ud fra deresudseende. Dette kan f.eks. være i form af frasortering af plettede æbler hos enfrugtdistributør. Ved hjælp af kameraovervågning af et samlebånd, kan emnernemed fejl, ud fra en elektronisk billedanalyse, identificeres, og herefter fjernes au-tomatisk. På samme måde kan man overvåge et område, så en autonom robot kanstyre uden om forhindringer. Det kunne f.eks. være robotter, der kører med va-rer på et lager. Dette kan gøres ved hjælp af billedanalyse og en styring af detautonome system, ud fra de informationer billedanalysen leverer.

I dette projekt fokuseres ikke på, hvordan teknologierne kan bruges kommerci-elt, men på afprøvning af teknikkerne.

Projektet tager udgangspunkt i konstruktion af en autonom robot, der kan ind-samle objekter på en afgrænset bane. En computer overvåger banen ved hjælpaf et kamera og styrer robotten ud fra analyse af de billeder, kameraet leverer.På banen er desuden en række forhindringer og en konkurrerende robot, der skalstyres udenom. De to robotter konkurrerer om, hvem der kan indsamle flest en-gangsplastikkrus og aflevere dem i et defineret område på banen. Den anden robotkonstrueres af en anden gruppe studerende på Aalborg Universitet (5. semester).

Således er projektets initierende problem formuleret:Hvorledes kan et system konstrueres, så en kamerastyret robot kan indsamle

objekter på en afgrænset bane?Rapporten er bygget op af seks dele: Analyse, design, implementering, test,

sammenfatning og appendiks. Herudover er der før analysen lavet en kravspecifi-kation efter SPU-modellen. Formålet med kravspecifikationen er at fastsatte vissegivne og valgte krav til systemet på en struktureret måde. Testen af systemet erforetaget på baggrund af de stillede krav. Analysen er objekt orienteret, og star-ter med at analysere problemdomænet. Derefter beskrives systemfunktionerne ogdisse inddeles i klasser. Analysen afsluttes af en beskrivelse af klassernes metoderog attributter.

1

Page 16: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

1KravspecifikationI kravspecifikationen udarbejdes en beskrivelse af systemet, der systematisk gørrede for de stillede krav. Disse krav er baseret på projektforslaget, studieordnin-gen for E5 og gruppens ønsker. Kravspecifikationen er opbygget efter SPU mo-dellen. [Biering-Sørensen et al., 1988]

1.1 Systembeskrivelse

Det overordnede system består af en ruteplanlægning- og korrigeringsenhed, derved hjælp af et kamera styrer en mobil robot, der fremover kaldes AskeBot. Sy-stemets opgave er at detektere og klassificere genstande på en afgrænset bane. Udfra disse oplysninger skal systemet via robotten indsamle plastikkrus på banen ogplacere dem på et givet sted.

Systemet skal endvidere tage højde for, at der på banen kan være en modstan-derrobot, der fremover kaldes Elvis, og som har samme formål. Der er, i sam-arbejde med konstruktørerne af modstanderrobotten, udarbejdet et regelsæt, somkan ses i appendiks A.

Et rigt billede af systemet kan ses på figur 1.1

��� ��� � �

Robot

Stationær

del

Figur 1.1: Rigt billede af det samlede system.

2

Page 17: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 1. KRAVSPECIFIKATION

1.2 Systemets funktion

Ud fra systembeskrivelsen opstilles de use-cases, som fremgår af figur 1.2.� ��� ���

Bruger

Bruger-

interaktion

Ruteplan-

lægning og

korrektion

Robot

styring

Billed-

analyse

Elvis

Forhindringer

AskeBot

Krus

Figur 1.2: Use-cases for problemdomænet.

Disse use-cases har følgende funktioner:

Analyse af billede Denne use-case skal bruge billeder fra et kamera, som affoto-graferer banen, og ud fra dem give øjebliksinformation om hvilke objektty-per, der befinder sig på banen, samt deres koordinater.

Planlægning og korrigering af rute Denne use-case benytter sig af de data, somfremkommer fra billedanalysen, og ud fra disse beregnes den optimale rutetil indsamling af krusene. Der skal tages hensyn til forhindringer samt Elvis.Desuden skal ruten løbende korrigeres.

Interaktion med bruger Denne use-case skal give brugeren mulighed for at ind-hente informationer fra systemet, samt at påvirke det, ved manuel styring.

Styring af robot Denne use-case skal sørge for, at robotten udfører de ruter, somruteplanlægningen og korrigeringen udregner.

1.3 Systemets begrænsninger

Systemet er et prototypesystem, og derfor vil der blive fokuseret på følgende:

Billedanalyse: Objekterne, som systemet skal være i stand til at genkende, erhvide plastikkrus, rektangulære hvide forhindringer samt to robotter, medforskellige hvide grafiske kendetegn på sort baggrund. For robotterne skalorienteringen endvidere findes.

3

Page 18: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

1.4. KRAV TIL UDVIKLINGSFORLØBET

Ruteplanlægning og korrigering: Systemet skal kunne håndtere ruteplanlæg-ning for robotten med hensyntagen til, at een ekstra robot kan være på ba-nen.

Brugerinteraktion: Brugeren skal kunne styre robotten manuelt ved hjælp afpiletasterne på et keyboard. Der skal være adgang til oplysninger om objek-ternes placering på banen, batteristand på robotten samt tider for, hvor langtid det har taget at hente krusene.

Robot: Da hovedvægten i projektet ikke ligger på konstruktionen af det mekani-ske system, vælges det at konstruere robottens mekaniske dele i LEGO.

I henhold til regelsættet konstrueres robotten og dermed også systemet til kunat kunne indsamle eet krus ad gangen. Se desuden regelsættet i appendiks A.

1.4 Krav til udviklingsforløbet

Udviklingen af systemet foretages i henhold til studieordningen for E-sektorens 5.semester [Studienævn for Elektronik og Informationsteknologi, 2002]. Dette med-fører, at det er hensigtsmæssigt at anvende objektorienteret analyse og design(OOAD), samt at dele af programmellet udvikles i et objektorienteret program-meringssprog.

1.5 Forudsætninger

Det er på forhånd givet, at billedanalysen skal finde sted på en Silicon Grap-hics(SGI) med AUC-nr 43283. Det anvendte kamera er et S/H PAL-kamera aftypen CCD Video Camera, CV-M50 med AUC-nr. 33595 og et TV-Lens f1,9 8mm objektiv.

1.6 Specifikke krav

Der stilles følgende specifikke krav til systemet:

Billedanalyse: Udvikles til en SGI arbejdsstation udstyret med et tv-kort.

Ruteplanlægning og korrigering: Udvikles til en Linuxbaseret pc med radio-link tilkoblet på en COM-port.

4

Page 19: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 1. KRAVSPECIFIKATION

Radiolink: Det forudsættes at kommunikationen mellem styringen og robottenforegår vha. radiobølger. Radiolinket skal benytte det licensfrie 433 Mhzbånd.

Robot: Denne skal være batteridrevet. Desuden skal hele det mekaniske systemkonstrueres fra de udleverede LEGO dele i henhold til regelsættet, se ap-pendiks A. Den mekaniske konstruktion beskrives i appendiks B

1.7 Grænseflader

1.7.1 Hardwaregrænseflader

Fysisk fordeles systemet, som det ses på figur 1.3, i tre delsystemer: SGI, pc ogrobotenhed. Grænsefladekravene for disse ses i nedenstående opstilling.

RobotPC (LINUX)SGI (IRIX)TCP/IP

Figur 1.3: Oversigt over systemets fysiske elementer samt grænseflader for disse.

SGIInput: S/H PAL billede via composite udgang, 802.3 Ethernet kompatibel.Output: 802.3 Ethernet kompatibel.PCInput: 802.3 Ethernet kompatibel, Radiosignal, 433 Mhz båndOutput: Radiosignal, 433 Mhz bånd, 802.3 Ethernet kompatibel.RobotInput: Radiosignal, 433 Mhz bånd.Output: Radiosignal, 433 Mhz bånd. Mekanisk bevægelse.

1.7.2 Kommunikationsgrænseflader

Kommunikation mellem SGI og pc skal foregå via TCP/IP protokollen. Den tråd-løse kommunikation mellem pc og robot skal foregå via en protokol, der skalspecialudvikles hertil.

1.7.3 Brugergrænseflade

Brugergrænsefladen skal indeholde følgende:

5

Page 20: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

1.8. SYSTEMETS YDEEVNE

Kontrolpanel Fra kontrolpanelet skal det være muligt at styre robotten i manuelstyringstilstand, og kunne starte og stoppe den automatiske styring.

Kort Kortet skal vise alle elementer på banen, der er opdaget af systemet.

Statistik Statistikken indeholder antal indsamlede krus, tid for sidste krus, samletkøretid, batteritilstand, antal detekterede krus og antal sendte og modtagededatapakker via radiokommunikation..

1.8 Systemets ydeevne

Der er opsat følgende krav ud fra en vurdering af hvilke aspekter, der har en afgø-rende betydning for systemets effektivitet.

Billeder pr. sekund Det er givet på forhånd, at der skal bruges et kamera, somoptager i PAL-opløsning, og dermed leverer 25 billeder pr. sekund i 720x576pixels. Billedbehandlingen skal være hurtig nok til at kunne analysere alledisse billeder i sandtid.

Præcision Bestemmelsen af forhindringers hjørner må maksimalt afvige 1,5 cmfra dens reelle placering. Orienteringen må maksimalt afvige 6 � .

Tid for krus Tiden, det tager at opsamle et krus, som står diagonalt modsat påbanen, må maksimalt være 10 sekunder, under forudsætning af at der ikkeer nogle forhindringer på banen.

Rutetid Tiden, det tager, fra systemet analyserer banen, til der er lagt en rute, måhøjst være 5 sekunder.

6

Page 21: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

2Accepttestspecifikation

I dette kapitel specificeres en række test, som tilsammen skal danne grundlag foren evaluering af, om systemet kan opfylde dets mål. Først vil det blive testet omkravene fra kravspecifikationen er opfyldt. Derefter vil systemet blive testet i vissespecifikke situationer på banen for at finde dets grænser.

2.1 Test for stillede krav

Der vil i dette afsnit blive fokuseret på kravene stillet til systemets ydelse i afsnitE.4. Kravene til systemet ydeevne ønskes testet på følgende måde:

Billeder pr. sekund For at teste, om billedanalysen når at behandle alle billeder,skal der indbygges en overvågningsfunktion i billedanalysatoren.

Præcision Først testes billedanalysens præcision ved at placere en forhindringmed kendte mål på banen og derefter finde koordinater for dens hjørner.Disse sammenlignes med forhindringens hjørners faktiske placering.

Derefter testes robottens præcision ved at stille robotten ved et kendt mærkeog give den en rute, og derefter måle afvigelsen fra robottens slutpositionog vinkel til den ønskede slutposition og vinkel.

Tid for krus Tiden for opsamling af et krus, som står diagonalt modsat robottenpå banen, defineres som den tid det tager at lægge en rute, køre hen til kruset,opsamle dette og køre tilbage til det hjørne, hvor robotten startede.

Rutetid Ved hjælp af en indbygget timer måles tiden, fra systemet ser banen, tilen rute er lagt. Banen, som skal analyseres, kan ses på figur 2.2.

7

Page 22: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

2.2. TEST AF ROBOT PÅ BANE

2.2 Test af robot på bane

For at kunne udføre disse test, er det nødvendigt at opstille en testbane. Banen eropstillet på gulvet og har grundmål som vist på figur 2.1. Udfaldet af disse testskal give et billede af systemets ydelse og skal derfor simulere situationer, somkan forekomme under konkurrencen, samt grænsetilfælde for at finde grænsen forsystemets kunnen.

Derfor opstilles tre forskellige scenarier, som er beskrevet herunder.

2,5 m

2m

Figur 2.1: Kort over den grundlæggende bane, hvor basen er markeret med et kryds.

2.2.1 Testbane 1

Dette er et let forsimplet eksempel på en konkurrencebane, som skal teste systemeti en situation, der simulerer konkurrencen. Selve banen, som kan ses på figur 2.2,indeholder tre plastikkrus, som er placeret i hver deres hjørne. Ved to af kruseneer der placeret forhindringer, der skal styres udenom.

Testen er bestået, hvis robotten kan indsamle alle kopper uden at ramme for-hindringer.

2.2.2 Testbane 2

Denne bane skal teste grænsen for kompleksitet i billedanalysen, ruteplanlægnin-gen samt præcisionen for korrigeringen og robotstyringen. Banen er, som det sespå figur 2.3, udformet som en spiral med et krus i midten.

8

Page 23: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 2. ACCEPTTEST SPECIFIKATION

Figur 2.2: Placering af kopper og forhindringer på testbane 1

Figur 2.3: Placering af krus og forhindringer på testbane 2

9

Page 24: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

2.2. TEST AF ROBOT PÅ BANE

Til testen opbygges først en simpel spiral, som udbygges, indtil en af delene isystemet fejler, eller der er opnået en spiral med 6 retvinklede knæk. Testen bestås,hvis der kan indsamles et krus i en spiral med 6 retvinklede knæk.

2.2.3 Testbane 3

Denne bane skal teste robottens manøvreevner og billedanalysens præcision. Ro-botten skal igennem en passage mellem to forhindringer, som kun er 2 cm bredereend robotten. Dette kan ses på figur 2.4.

Figur 2.4: Placering af forhindringer på testbane 3

For at bestå denne test skal robotten være i stand til at køre igennem passagenuden at støde ind i forhindringerne indenfor 20 sek.

10

Page 25: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

Del I

Analyse

11

Page 26: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is
Page 27: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

3Analyse afproblemdomænet

Dette kapitel omhandler en række problemer, der har betydning for udvikling afsystemet. Problemerne omhandler radiokommunikation, robot, planlægningen ogkorrigering af rute samt billedanalyse. I afsnittet træffes en række valg uden videreanalyse. Dette gøres for at begrænse projektets omfang. Disse valg træffes i detteafsnit, da de har indvirkning på en række af de områder, der analyseres.

3.1 Radiokommunikation

Opbygningen og funktionen af radiokommunikationen mellem pc og robot af-hænger af hvilke data, der kan sendes via radiokommunikationen, og hvor sikkerkommunikationskanalen er.

Til radiokommunikationen vælges det at bruge 2 RadioMetrix "BIM2-433-64"moduler til sending og modtagelse af digitale signaler. Dette modul senderdata på et licensfrit bånd ( ������������� - �������! �"�� MHz). For dette bånd gælder det, aten enhed må have bærebølgen tændt, og dermed sende, i maksimalt 10 # af tiden.[Radiogræn.. 00032, 2002] [ERC Rec 70-03, 2002]

Da båndet er licensfrit, skal der ligeledes tages højde for, at andre enhederkan forstyrre sendingen. Dette kan f.eks. være modstandergruppen på banen, derbenytter samme type radiomoduler. I værste tilfælde kan modstanderen sende etsignal til deres robot hver gang, der er blevet analyseret et billede. Det vil sige 25gange i sekundet. Derfor skal der laves en protokol, der sørger for den sendte be-sked kan identificeres. Desuden skal protokollen indeholde fejldetektion og sørgefor, at der ikke er trafik på radiobåndet (hvis der er en bærebølge) inden der sendesen besked afsted i henhold til reglerne i appendiks A.

13

Page 28: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

3.2. ROBOT

3.2 Robot

I robotten skal der udføres en række processer. Robotten skal løbende korrigeres,så den ønskede rute følges, robotten skal kommunikere med pc’en og robotten skaludføre en ny opgave, når den forrige er udført. Derfor skal det overvejes hvordankernen i robotten skal opbygges. Dette kan gøres, så de enkelte processer udføresen efter en, eller det kan vælges, at lade de mest tidskritiske processer blive styretaf interrupts.

Når der sendes data til robotten via radiokommunikation, er det nødvendigt, atrobotten behandler disse data momentant. For at undgå tab af data vælges det atgøre radiokommunikationen interruptstyret.

3.2.1 Tilbagekobling i robotten

Det vælges at placere rotationsmålere på robottens drivhjul. Dette gøres blandtandet for at opnå en hurtig korrigering og herved en præcis styring af robotten,og desuden for at mindske radiokommunikation, da denne foregår i et støjfyldtfrekvensområde.

Ved anvendelse af rotationsmålerne kan der opbygges en tilbagekobling af ro-bottens hjul, således at disse ikke kommer ud af kurs. Derudover kan robottenstilbagelagte vej, hjulenes hastighed og position måles. Tilbagekoblingen for ro-botten kan ses på figur 3.1.

Figur 3.1: Tilbagekoblingsdiagram for robot.

3.3 Billedanalyse

I billedanalysen skal banens elementer, så som krus, robotter og forhindringer,detekteres og disses egenskaber skal bestemmes.

3.3.1 Detektion

Formålet med detektion er at finde elementer på banen. Dette kan gøres ved atopdele billedet i forgrund og baggrund, hvor baggrunden er banen (gulvet), og

14

Page 29: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 3. ANALYSE AF PROBLEMDOMÆNET

forgrunden er elementerne. Således dannes et binært billede, da billedets pixelkun kan antage to værdier. En mulighed for at udføre detektionen er punktvisdetektion, der beskrives nedenfor.

Punktvis detektion

Ved punktvis detektion bestemmes det for hver pixel, om pixlen betragtes somværende forgrund eller baggrund. Dette kan i praksis foregå ved, at der vælgesen tærskelværdi for hvilke pixel, der ønskes klassificeret som forgrund. Hvis denpixel, der ses på, har større intensitet end tærskelværdien, vil den blive detekteretsom forgrund; er pixlens intensitet mindre end tærskelværdien, vil denne blivebetragtet som baggrund.

3.3.2 Typegenkendelse

Når billedet er opdelt i forgrund og baggrund skal hvert område af sammenhæn-gende pixel defineres som et element. Dette kaldes segmentering, da billedet delesop i flere seperate elementer.

Herefter skal typen for hvert enkelt element bestemmes. De fundne elemen-ter sammenlignes med de typer, billedet gennemsøges for, eksempelvis krus ogforhindringer. De ukendte elementer vil herefter hver især blive klassificeret, somværende identisk med et af de allerede kendte elementer.

En metode til genkendelse af elementer er at undersøge deres geometriskeegenskaber, så som areal og omkreds.

3.3.3 Hjørnedetektion

I forbindelse med detektionen af forhindringerne er det nødvendigt at bestemmehjørnerne i hver enkelt forhindring. Hjørnerne anvendes i forbindelse med rute-planlægningen som beskrives i afsnit 3.4.1.

Der findes forskellige muligheder til bestemmelse af hjørner. I det følgendegennemgås to metoder.

Signatur

En metode til bestemmelse af hjørnedetektion kaldes signatur-metoden. Dennemetode ser på distancen, $ , fra massemidtpunktet for forhindringen til forhindrin-gens kant som funktion af vinklen, % , se figur 3.2, hvor metoden anvendes på etkvadrat.

Ved at steppe rundt langs kanten af forhindringen, vil der i hvert hjørne bliveet maksimum.

15

Page 30: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

3.4. PLANLÆGNING OG KORRIGERING AF RUTE

Anvendes denne funktion på et krus, vil kurven blive en horisontal linje, daradius i forhold til vinklen ikke ændrer sig.

Ulempen ved denne metode er, at den ikke kan anvendes til detektion af hjør-ner i en forhindring, hvor massemidtpunktet ligger udenfor denne, som f.eks. i enforhindring med form som et ’L’.

φ

r

a) b)

0 π/2 π 3π/2 2π

r

φ

Figur 3.2: Princip for hjørnedetektion ved signaturmetoden. a) Afstand, & fra mas-semidtpunkt til kant bestemmes som funktion af vinklen, ' . b) Afstanden, & , somfunktion af vinklen, ' . Maksimaene på kurven er der, hvor et hjørne er detekteret.[Awcock and Thomas, 1996]

Hit-miss

Hit-miss-metoden er en folding mellem billedet og et såkaldt struktureringsele-ment, se figur 3.3. I et binært billede skal for- og baggrundspixel i strukturerings-elementet passe med billedets for- og baggrundspixel. Foldingen udføres ved enlogisk AND-operation. Struktureringselementet skal foldes med hele billedet, oghver position, hvor operationen er sand, vil den midterste pixel for strukturerings-elementet angive hjørnepunktet. På den måde vil hvert hjørne for elementet kunnefindes. Denne metode kræver, at der for hver hjørnetype og for hver måde hjørnetkan vende på er et tilhørende struktureringselementet. Dette gør metoden bereg-ningskrævende, da forhindringerne kan vende på alle tænkelige måder i forholdtil banens to-dimensionelle koordinatsystem. På figur 3.3 er kun vist een foldingfor en type struktureringelement.

3.4 Planlægning og korrigering af rute

3.4.1 Ruteplanlægning

Ruteplanlægningen skal sørge for, at der ud fra dataene fra billedanalysen kangeneres en rute fra robottens position til det nærmeste krus. Da der på banen erforhindringer, kan robotten ikke altid køre i en lige strækning fra sin position ogud til kruset.

16

Page 31: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 3. ANALYSE AF PROBLEMDOMÆNET

( ) * +-, ) +-* ./*ingselemen

)10 2or 354 6 ) .-* 7 4 8 ./9 ./*/* . : .-* ./; < .

Ba =-= * +/; 61> 7 4 8 el

O* 4 = ina9 .?: @1* = * +-; 61> 7 4 8 el

F@1* = * +/; 61> 7 4 8 .-9

Hjø* ; ./7 4 8 ./9

a) b) c)

Figur 3.3: Princip for hjørnedetektion ved hit-miss-metoden. a) Forhindringen der under-søges. b) Det anvendte struktureringselement; en 3x3 matrice, som skal foldes med detoriginale billede. c) Resultatet af folding mellem a) og b), hvor et hjørne er detekteret.[Awcock and Thomas, 1996]

Der er flere forskellige strategier, der kan følges, når ruten skal lægges. Denkorteste rute, er ikke nødvendigvis den hurtigste. Dette skyldes, at skarpe svingkan kræve, at robotten stopper helt op og roterer på stedet, inden den accelerereop i fart igen.

A�BDCot

Fo E FHG I�JKE G I�LKortest rute

Figur 3.4: Den kortest rute vil altid gå i mellem hjørner på forhindringer, hvis der ikke eren direkte rute mellem robot og krus.

Med mindre der er en direkte vej fra robot til krus, vil de punkter i ruten, hvorder skiftes retning, altid være hjørner i forhindringerne, se figur 3.4. Derfor skalplanlægningen af den korteste rute tage udgangspunkt i de strækninger, der går frahjørne til hjørne.

3.4.2 Korrigering af rute

For at undgå at robotten kommer ud af kurs, bør der løbende ske en korrektion afrobottens kurs ud fra kamerabilledet. En måde er at sende en korrektion, hver gang

17

Page 32: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

3.4. PLANLÆGNING OG KORRIGERING AF RUTE

der kommer et kamerabillede. Det vælges at korrigere væsentligt færre gange udfra to betraktninger. Dels vurderes det, at der vil være en forsinkelse i billedanaly-sens angivelse af robottens position, hvilket har større betydning jo oftere denneposition anvendes. Desuden ønskes det som før nævnt at begrænse radiokommu-nikationen.

Tilbagekobling via billedanalyse

Det kan forekomme, at robotten ikke kører den planlagte rute, for eksempel hvishjulene skrider. En situation kunne være, at robotten skal køre en lige strækningpå 30 cm, men at den ved starten ikke har noget vejgreb, og derfor vil hjuleneskride rundt. Dermed vil robotten ikke have nået den ønskede position, når den erfærdig med at udføre kommandoen.

Da det skal være muligt for robotten at køre små strækninger, som følge afrotationsensorerne, kan den planlagte rute opdeles i små delruter. Derfor vælgesdet at konstruere en korrektion, der kan korrigere på delruter.

Det vælges at opbygge hele ruten af fikspunkter, som indeholder en positionen hastighed og en vinkel. En delrute ligger således mellem to fikspunkter, ogudregnes øjeblikket før den skal bruges. Dette giver muligheden for at korrigereudgangpunktet for delruten, hvis robotten har kørt forkert.

Et givet sted på en delrute, umiddelbart inden robotten når slutningen af denne,sendes en besked til pc’en. Den forventede position for tilbagemeldingen og po-sitionen fra billedanalysen sammenlignes. Ud fra dette kan en estimeret positionpå enden af delruten udregnes. Fra denne nye slutposition udregnes en ny delrute,som korrigerer for den fejlposition, som robotten har fået. Princippet ses på figur3.5.

Fikspunkt

Retningsvektor

Korrigeret ruteKørt rute

Planlagt rute

42

1

2

2'

3

Tilbagemelding

(kan ses fra kamera)

Forventet

tilbagemelding

Figur 3.5: Princip for delrute korrigering. Der bliver kørt fra fikspunkt 1 til 3 via punkt 2.Der sker en fejl mellem punkt 1 og 2, det forventede tilbagemeldingspunkt sammenlignesmed positionen fra kamerabilledet og en korrigeret rute udregnes.

18

Page 33: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

4SystemfunktionerI dette afsnit bestemmes virkemåden af systemet, ved hjælp use-case-diagrammer.Der tages udgangspunkt i use-case-diagrammet fra afsnit 1.2, de fundne krav ikravspecifikation og løsningsmodeller fundet i analyse af problemdomænet, se ka-pitel 3

Som det fremgår af use-case diagrammet, se figur 1.2, indeholder systemet enruteplanlægning- og korrigeringsenhed, en billedanalyse, en brugergrænseflade ogen robotstyring.

4.1 Ruteplanlægning og korrigering

Hovedformålet for denne use-case er at tilrettelægge den optimale rute ud fra dedata, der kommer fra billedanalysen. Da det ikke antages, at robottens styring erideel skal der ske en løbende korrigering af den planlagte rute, hvilket leder fremtil de use-cases, der ses på figur 4.1.

MONQP RTSVU WTXVUæ Y X�Z X Y�[�Y]\ [T^1^ R \ P-Z [ X

FindR ^ NQP R K [T^1^ Z Y R ^ R

PU WTXVU

æ Y�Y R d RKU ^ NQP RBilledanalyse

AskeBot

B ^ N Y R ^ Z X�P R ^ W \ P1Z [ XFigur 4.1: Use-case-diagram for ruteplanlægning og korrigering.

19

Page 34: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

4.2. BILLEDANALYSE

4.1.1 Find rute

Der skal i denne use-case planlægges en rute, som robotten skal følge. Hele banenanalyseres, hvor robottens startvektor1 udgår fra basen, og målet er et af krusene.Processen gentages for alle de synlige krus, og det beregnes hvilket krus, der harden korteste rute. Den planlagte rute består af fikspunkter.

4.1.2 Planlæg delrute

Mellem hvert par fikspunkter skal der planlægges en delrute, som består af stræk-ninger, som robotten kan udføre (linje, cirkelbue og roter på stedet).

4.1.3 Korriger

Korrigerer delruten ud fra billedanalysen og tilbagemelding fra robot. Dette skeri forbindelse med løbende korrektion. Her tegnes en ny korrigeret delrute, såledesat robotten styres ind mod den oprindelige delrute.

4.1.4 Aktivitet for ruteplanlægning og korrigering

Aktiviteten for ruteplanlægning og korrigering kan ses på aktivitetsdiagrammet påfigur 4.2.

4.2 Billedanalyse

Formålet med billedanalysen er at behandle de indkomne billeder fra kameraet ogopstille koordinater for massemidtpunkt for henholdsvis AskeBot, krus og Elvis,for AskeBot findes desuden orienteringen. For forhindringer findes koordinaterfor hjørnerne.

4.3 Brugerflade

4.3.1 Brugergrænseflader

Under almindelig drift skal systemet kunne styre robotten uden menneskelig in-teraktion. Det er dog hensigtsmæssigt at kunne kontrollere robotten manuelt, ogderfor skal der opbygges en brugergrænseflade, baseret på den use-case, der sespå figur 4.3.

Brugergrænsefladen indeholder derfor følgende funktionaliteter:1Position, retning og hastighed

20

Page 35: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 4. SYSTEMFUNKTIONER

_�` acbedfaegihkje til

alle krus og vælg

den korteste.

BeregalbOd�m gihnj�d

til

næste fikspunkt

Tilbagemdfm bf` a

g fra AskeBot

Sd�aobebpdfm gihkj

e til AskeBot

Beregaegihkj�dqji` m

bage

til base

Beregn mål på igang-

væg�dfacbOdebpdfm gihkj

e

Luk gribearm

Åben gribearm

(ikke flere krus)(fm dfg�d

krus)

(rute til base kørt)

(rute til krus kørt)(ikke flere fikspunkter)

(fm d�g�d

fikspunkter)

Figur 4.2: Aktivitetsdiagrammet for ruteplanlægning og korrigering

21

Page 36: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

4.3. BRUGERFLADE

rOs�tvuKwnsVis kort og rute

Manuel styring

rOs�tVuKwnsinteraktion Kontrollér automatisk

styring

Figur 4.3: Udvidelse af use-casen for brugerfladen.

Kort- og rutevisning Til overvågning af robotten skal der på en computerskærmindtegnes et kort med robotter, krus og forhindringer. Disse skal have for-skellige signaturer, så det er muligt at adskille dem. På kortet skal rutenindtegnes, så det kan ses, om robotten kører korrekt. Kortet skal opdateres,hver gang der kommer nye informationer. Ruten skal opdateres, hver gangder bliver udregnet en ny rute, og krusene skal forsvinde fra kortet, når deer opsamlet.

Kontrol af automatisk styring På den grafiske brugerflade skal der være et pa-nel, hvor det er muligt at aktivere og deaktivere manuel styring. Når denmanuelle styring aktiveres, skal den automatiske slåes fra. Når den deakti-veres, skal den automatiske styring overtage og lægge en ny rute.

Manuel styring Til styring af robotten skal piletasterne på tastaturet kunne bru-ges. Piletasterne styrer ud fra AskeBots retning, det vil sige, at pil op og nedkører AskeBot frem og tilbage, og pil højre og venstre drejer AskeBot.

Udlæsning af data Til kontrol af robotten skal der vises følgende data på skær-men:

x Antal indsamlede krusx Tid for sidste krus(Tiden fra begyndelse af rutelægning til kruset er ibasen).x Samlet køretidx Batteritilstandx Antal detekterede krus.x Antal sendte og modtagede datapakker via radiokommunikation.

22

Page 37: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 4. SYSTEMFUNKTIONER

4.4 Robotstyring

Udfør

delrute

Udfør

nødstop

Bevæg

gribearm

Aflæs

batteri-

tilstand

Robotstyring

Ruteplan-

lægning og

korrerktion

Figur 4.4: Use-case-diagram for robotdriver

Som det ses af use-case-diagrammet på figur 4.4 skal robotstyringen udføreen række use-cases initieret af ruteplanlægning og korrigering. Disse use-casesrelaterer sig til manøvrering af robotten, indsamling af krus samt batteritilstand.Robotten skal desuden kunne sende en tilbagemelding til computeren, når dennæsten har kørt en delrute. Use-casene er som følger:

Delrute Robotten udfører de opgaver, delruten indeholder. Det kan være et ønskeom tilbagemelding, en stopkommando eller en strækning, robotten skal køre(linje, kurve eller roter). På figur 4.5 ses et aktivitetsdiagramet for use-casendelrute.

Nødstop Robotten stopper alle motorer og renser bufferen med opgaver.

Gribearm Styring af robottens gribearm. Der sendes besked til robotten, når gri-bearmen skal åbnes eller lukkes. Dette sendes som to forskellige opgaver.

Batteritilstand Måler batterispænding og returnerer denne.

23

Page 38: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

4.4. ROBOTSTYRING

Fortolk næste

besked i

delrute

Kør og

regulér

Send tilbagemelding til ruteplanlægning og korrektion

Modtag delrute

(tilbagemelding)

(strækning)

(ingen)

besked er

Figur 4.5: Aktivitetsdiagram for use-casen linie.

24

Page 39: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

5Klasser ogtilhørsforhold

I dette afsnit defineres klasserne og deres indbyrdes relationer. Klasserne er fundetud fra use-case diagrammerne og en efterfølgende brainstorm.

For at forstå hvad en klasse er, kigges der på 3-lags abstraktionssystemet, sefigur 5.1.

Interface Funktion Model

Figur 5.1: 3-lags abstraktionssystemet.

Modellaget indeholder modeller af objekter, som er aktive i problemdomænet.Funktionslaget indeholder funktioner til at manipulere modellerne af objekternei modellaget. Interfacelaget er grænsen mellem systemet og det omgivende do-mæne. Modellerne i modellaget er statiske og indeholder ingen funktioner. Dissekaldes objekter. For at overføre objekterne i problemdomænet til modellaget, skalobjekterne klassificeres, og dermed opstår klasserne. Klasserne er beskrivelser afobjekterne i modellaget, der bruges til at specificere, hvordan objekterne opførersig, og hvilke egenskaber de har. Ud fra klasserne kan der i systemet oprettes ob-jekter i modellaget. I dette kapitel vil objekterne i problemdomænet blive fundet,og de klasser, der skal bruges i systemet, findes. Klassernes metoder og attributtervil først blive fundet i næste kapitel. I dette kapitel vil der først blive kigget på,hvilke objekter der findes i hele systemet og derefter dele dem op på de fysiskesystemer. [Kursushjemmeside til OOAD, 2002]

25

Page 40: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

5.1. SYSTEMETS KLASSER

5.1 Systemets klasser

Til at finde objekter bruges use-casene fra kapitel 4. Ud fra disse kan de objekter,der manipuleres med, findes. En måde at finde objekter på kan være at kiggeefter bestemte stereotyper1 af objekter. De klasser, der manipuleres, er Boundary,Control og Entity.

Boundary er en systemgrænseflade, og er objekter der ligger tæt på grænsen afsystemet.

Control er objekter, der kontrollerer samspillet mellem en gruppe af andre ob-jekter. Det er ofte sådan et objekt, der styrer en use-case.

Entity er objekter, der er inde i systemet. Ofte er disse objekter passive og initie-rer ikke noget af sig selv.

[Eriksson and Penker, 1998, s. 61]

5.1.1 Boundary

I dette system findes der mange objekter i systemgrænsefladen. På den ene sideaf systemet er der en systemgrænseflade ud mod banen, og på den anden findesbrugerfladen, der kommunikerer med brugeren.

På selve banen kan der være robotter, forhindringer og krus. Alle disse erobjekter, som skal optræde som modeller inde i systemet. Af robotter vil der al-tid være mindst 1, der er systemet AskeBot. På denne er der tilkoblet styretøj,batterimåler og gribearm, som er objekter, der skal fremtræde inde i systemet.

På den anden side af systemet findes brugerfladen. På brugerfladen er der etkort over banen, et kontrolpanel til manuel styring og et kontrolpanel for den au-tomatiske styringsproces af robotten.

Desuden kommer der et billede fra kameraet, som også kan betragtes som etboundary-objekt.

5.1.2 Entity

Inde i systemet er der behov for objekter. Hvis der kigges på kontrol og ana-lyse use-casen, kan der findes objekter som rute og delrute. I robot use-case’enbruges der et strækningsobjekt, og i billedanalysen bruges objekterne billede ogbilledElement, som indeholder information om hvert baneelement, som skal bru-ges til billedanalyse.

1Et adfærdsmønster en klasse kan tillægge sig.

26

Page 41: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 5. KLASSER OG TILHØRSFORHOLD

5.1.3 Control

Til at kontrollere hver use-case er der behov for kontrolobjekter. I systemet skalbruges følgende kontrolklasser: Ruteplanlægning og korrigering, RobotKon-trol, Billedanalyse og Brugerinteraktion.

5.1.4 Klassediagram

For alle objekter kan der laves klasser. Disse klasser vil blive beskrevet i næstekapitel, men de indbyrdes relationer vises i klassediagrammet, som kan ses påfigur 5.2.

5.2 Systemets fysiske opbygning

I det forrige afsnit(5.1) er der ikke taget højde, hvor de forskellige processer bliverplaceret. Det er fra kravspecifikationen valgt at placere processerne som på figur5.3. I det følgende vil klasserne blive delt ud på disse fysiske enheder.

5.2.1 SGI

På SGI’en analyseres billederne, der modtages fra kameraet. Derfor skal alle klas-ser, der vedrører billedanalysen ligge på SGI’en. Klassediagrammet kan ses i figur5.4. Alle billedelementer findes ud fra kamerabilledet, og oprettes som objekter afklassen BilledElement. Ud fra billedelementerne kan figurernes egenskaber be-stemmes, og der kan oprettes objekter i objektet af typen Bane. I bane er der ob-jekter af klasserne Krus, Robot og Forhindring. Oplysningerne om elementernepå banen sendes løbende til pc’en via objektet kommunikation, som er indsat forat synkronisere Bane med et tilsvarende objekt på pc’en. Hele processen styres afet objekt af kontrolklassen BilledAnalyse.

5.2.2 Pc

Relationerne mellem klasserne for pc-programmet kan ses i figur 5.5. I pc-programmetfindes følgende objekter, fordelt på ruteplanlægning og korrigering samt bruger-interaktion:

Ruteplanlægning og korrigering

netKommunikation er af klassen NetKommunikation, og varetager kommu-nikationen med SGI’en.

27

Page 42: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

5.2. SYSTEMETS FYSISKE OPBYGNING

yzyn{V|z}K~V�K�ry>>

KameraBillede

yzyn{V|z}K~V�ary>>

Bane

yzyn{V|n}D~V�ary>>

Forhindring

yzyn{V|n}D~V�ary>>

Robot

yzyn{V|n}D~V�ary>>

Krus

<<entity>>

Rute

yzyn{V|n}K~V�ary>>

Styretoej

ynyn{v|n}K~V�ary>>

Batteri

yzyn{V|n}D~V�ary>>

Gribearm

<<entity>>

Billede

<<control>>

BilledAnalyse

<<entity>>

Delrute

<<control>>

Styring

<<control>>

RobotAdfaerd

<<entity>>

BilledE � � �n��� nt

Figur 5.2: Statisk klassediagram over systemet, med klasser og relationer

28

Page 43: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 5. KLASSER OG TILHØRSFORHOLD

SGI�p� � � �D�D�z�v�z� �Q�Q�

Linux PC

Korrektion via

b� � � �D�D�z�v�

lyse

Ruteplanlægning

Brugerf� �D�D�AskeBot

Styring af Askebot

Basestation

Kamera

RF 433MHZ

RS232

TCP/IP

Composite video

Figur 5.3: Deploymentdiagram, et billede af hvor de forskellige processer i systemet erplaceret.

�K�T�Q�K�D�����ry>>

Krus

�K�T�Q�K�D�Q���ry>>

Robot

�K�T�Q�K�D�Q���ry>>

Forhindring

�K�T�Q�K�D�Q�ary>>

Kommunikation

�K�T�Q�K�D�Q�ary>>

KameraBillede

<<control>>

BilledAnalyse

<<entity>>

Billede

�K�T�Q�K�D�Q�ary>>

Bane

<<entity>>

BilledElement

Figur 5.4: Klassediagram for SGI’en

29

Page 44: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

5.2. SYSTEMETS FYSISKE OPBYGNING

bane er af klassen Bane. Objektet bliver løbende synkroniseret med et objekt afsamme type på SGI’en ved hjælp af netKommunikation. På bane findesobjekter af klasserne Krus, Robot og Forhindring.

styring er af klassen Styring, objektet er et kontrolobjekt, der varetager denoverordnede styring af ruteplanlægning og korrigering.

rute er af klassen Rute, objektet opretter en rute udfra oplysningerne i bane.

delrute er af klassen Delrute, objektet beregner en delrute af objekter af typenStaekning.

radioKommunikation er af klassen Radiokommunikation, objektet varetagerkommunikationen med AskeBot. radioKommunikation indeholder alle defunktioner AskeBot kan udføre.

brugerflade er et objekt af klassen Brugerflade, objektet indeholder objek-ter af typen Kort, Kontrolpanel og Statistik. brugerflade er desuden af-hængig af desuden bane og rute til at kunne vise kort. Til statistik skalbrugerflade interagere med rute, radioKommunikation og styring. kontrolpanelhar en tæt binding til styring.

1

�z�z�v�T�D�v�ary>>

Bane

�T�z�v�z���v�ary>>

Radiokommunikation

<<entity>>

Delrute

<<control>>

Styring

<<entity>>

Rute

�T�z�v�z�D�v�D�ry>>

NetKommunikation

Figur 5.5: Klassediagram for pc’en

5.2.3 Robot

På robotten er der et kontrolobjekt robotAdfaerd, robotAdfaerd styrer de meka-niske dele af robotten (styretøj, batteri og gribearm) Boundaryobjektet pcKommunikation

30

Page 45: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 5. KLASSER OG TILHØRSFORHOLD

behandler data fra pc’en, som modtages via radioKommunikation og videresen-der opgaver til robotAdfaerd via buffer. Derudover sender pcKommunikationbatteristatus og tilbagemeldinger fra robotAdfaerd tilbage til pc’en ved hjælpaf radiokommunikation. Udfra denne beskrivelse kan relationerne mellem klas-serne for objekterne ses på figur 5.6.

�T�z�V�z�D�v ary>>

Styretoej

�T�n�v�z�D�V ary>>

Batteri

�z�z�v�n�D�v D¡ry>>

Gribearm

<<control>>

RobotAdfaerd

�T�n�v�z�D�V ary>>

PcKommunikation

�T�n�v�z�D�V ary>>

Radiokommunikation

Figur 5.6: Klassediagram for robotten

31

Page 46: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

6Klassernesfunktioner

I dette kapitel beskrives metoderne til klasserne fundet i kapitel 5. Det er valgt,at programmere pc-programmet i C++, og at programmere SGI-programmet ogrobot-programmet i C. I analysen bliver alle tre programmer behandlet objekto-rienteret. Herefter er det kun pc-programmet der designes og programmeres ob-jektorienteret.

6.1 Metoder og attributter i ruteplanlægning og kor-rigering

I dette afsnit vil funktionerne i klasserne til ruteplanlægning og korrigering blivebeskrevet. Det er kun public metoder og attributter, der skal kunne tilgås fra andreobjekter der vil blive beskrevet.

6.1.1 NetKommunikation

Klassen indeholder metoder til at oprette forbindelse og kommunikere over etTCP/IP-netværk.

+ int opretForbindelse(char adresse¢ �, int iPort); Denne funktion opretter forbindelse til den adresse ogport, den kaldes med.

+ int undersoegForbindelse(); Denne funktion undersøger om forbin-delsen stadig er aktiv.

+ int sendData(char Message £ �32

Page 47: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 6. KLASSERNES FUNKTIONER

); Denne funktion sender data fra det array, den kaldes med til SGI’en.

+ int hentData(char *szInBuffer, unsigned int buffersize);Denne funktion modtager data fra SGI’en.

+ int lukForbindelse(); Denne funktion lukker forbindelsen til SGI’en.

6.1.2 Bane

Der findes et objekt af klassen Bane. Objektet indeholder alle objekter der be-finder sig på banen. Objektet bane er et boundaryobjekt, som bliver opdateret afbilledanalysen i SGI’en, der løbende sender data. Bane objektet består hovedsa-geligt af attributter, som indeholder objekterne på banen, som andre objekter kanlæse.

+ Bane(); Denne funktion opretter baneobjektet og forbinder sig til SGI ma-skinen.

Objekterne på banen ligger som følgende:

+ robotter : std::vector<Robot>1; Dette array indeholder alle ro-botter på banen.

+ krus : std::vector <Krus>; Dette array indeholder alle krus på ba-nen.

+ forhindringer : std::vector<Forhindring>; Dette array inde-holder alle forhindringer på banen.

De objekter, der befinder sig på banen, er repræsenteret på følgende måde.

Robot

Objekter af denne type repræsenterer en robot, enten AskeBot eller Elvis. Klas-sens attributter er følgende:

+ x, y: int; Koordinat for robotten.

+ vinkel : float; Robottens vinkel i radianer

+ AskeBot : bool; Angiver om robotten er AskeBot

1En std::vector er et dynamisk array, som ikke har en forudbestemt størrelse

33

Page 48: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

6.1. METODER OG ATTRIBUTTER I RUTEPLANLÆGNING OGKORRIGERING

Krus

Objekter af typen Krus har følgende attributter:

+ x, y: int; Koordinat på kruset

+ taget : bool; Angiver, om kruset er blevet taget. Sandt hvis det er taget.

+ id : int; Indeholder en id i form af et identifikationsnummer på kruset.

Forhindring

Forhindringsobjekter er udformet som et array af de hjørner, som er på forhin-dringen. Klassen Forhindring er en nedarvning af std::vector, som indeholderHjoerne.

+ id : int; Indeholder en id i form af et identifikationsnummer på forhin-dringen.

Hjoerne

hjoerne indeholder koordinater og type for hjørnet og er en del af forhindring.

+ x,y : int ; Koordinater på hjørnet.

+ htype : int; Angiver hvilken hjørnetype (udadvendt eller indadvendt).

6.1.3 Styring

Styring er kontrolobjektet i ruteplanlægning og korrigering use-casen.styring kan være i 2 forskellige tilstande: automatisk og manuel. Hvis objektet

befinder sig i manuel tilstand, bliver der ikke foretaget noget automatisk, og deter muligt at styre robotten manuelt. Når objektet sættes i automatisk tilstand, vilobjektet styre robotten til at samle krus på banen, og returnere dem til basen.Opsamlingen af krus vil foregå, indtil der ikke er flere krus på banen. Derefter vilobjektet gå tilbage i manuel tilstand.

Metoder knyttet til automatisk styring

+ void saetIgang(); Denne funktion sætter objektet i automatisk tilstand;

+ void behandlingAfTilbagemaelding(); Denne funktion bliver kørt,når der kommer en tilbagemelding fra robotten, og behandler tilbagemel-dingen og sender en ny delrute, hvis der er flere fikspunkter på ruten.

34

Page 49: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 6. KLASSERNES FUNKTIONER

+ void pause(); Denne funktioner stopper den automatiske styring midlerti-digt.

+ void stop(); Denne funktion stopper robotten og sætter styringsobjektet imanuel tilstand.

Metoder til manuel styring

.

+ void koerFrem(); Denne funktion sender en forlæns lige linje til AskeBot

+ void koerTilage(); Denne funktion sender en baglæns lige linje til Aske-Bot

+ void drejTilHoejre(); Denne funktion sender en roter til højre stræk-ning.

+ void drejTilVenstre(); Denne funktion sender en roter til venstre stræk-ning.

+ void lukGribearm(); Denne funktion sender besked om at lukke gribear-men

+ void aabenGribearm(); Denne funktion sender besked om at åbner gri-bearmen

6.1.4 Rute

rute indeholder og kan generere en rute fra et punkt til et andet.

+ Rute(Bane *banePtr,int robotNr, int krusNr); Opretter etruteobjekt og en rute der på, som går fra robotNr og til krusNr, hvor Nrer det nummer som robotten eller kruset har på baneobjektet.

+ int laengde(); Returnere længden af ruten.

+ fikspunkter std::vector<Fikspunkt>; Et array af de fikspunker,ruten består af.

35

Page 50: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

6.1. METODER OG ATTRIBUTTER I RUTEPLANLÆGNING OGKORRIGERING

6.1.5 Fikspunkt

Objekter af klassen Fikspunkt angiver et punkt på banen, hvor robotten skal køre.Ud over koordinatet indeholder det en hastighed og en vinkel, som robotten skalpassere punktet med. Objekterne har følgende attributter:

+ x, y: int; Koordinaterne på fikspunktet;

+ fart: int; Hastigheden ¤i¥¦¥§©¨ , som robotten skal have i fikspunktet;

+ float: vinkel; Vinklen ¤ $�ª¬« ¨ , som robotten skal have i fikspunktet;

6.1.6 Radiokommunikation

Indeholder alle metoder, som objekterne på pc’en skal bruge til at kommunikeremed AskeBot

+ Radiokommunikation(); Opretter objektet og starter radiokommunika-tionen op.

+ void sendDelrute(Delrute *delrute); Sender en hel delrute til ro-botten.

+ void batteriStatus();

+ void noedstop(); Sender et nødstop til robotten.

+ void koerStraekning(Straekning straekning); Sender en en-kelt strækning til robotten. Bruges til manuel styring.

+ void aabenGribearm(); Sender åbengribearm til robotten.

+ void lukGribearm(); Sender lukgribearm til robotten.

6.1.7 Delrute

En delrute er et objekt, som indeholder en rute fra et fikspunkt til et andet, sombestår af strækninger.

+ Delrute(Fikspunkt punktFra, Fikspunkt punktTil); Opret-ter og genererer en delrute mellem punktFra og punktTil.

+ Fikspunkt beregnNytSlutPunkt(Fikspunkt maaltTilbagema-eldingsPunkt ); Beregner et korrigeret slutfikspunkt ud fra det måltepunkt, robotten er i, ved tilbagemeldingen.

+ delrute std::vector<Strekning>; Hele delruten, som består af stræk-ninger.

36

Page 51: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 6. KLASSERNES FUNKTIONER

6.1.8 Strækning

Et strækningsobjekt kan indeholde en strækning, som kan være: en rotation, enlige linje, en cirkelbue eller en tilbagemelding. En strækning kan oprettes på føl-gende måder:

+ Straekning(int type); Tilbagemelding

+ Straekning(int type,int kom0); Lige linje kom0 er længde i mm

+ Straekning(int type, float kom0); Rotation kom0, er rotations-vinkel i radianer;

+ Straekning(int type, int kom0, int kom1); Kan bruges til bådebuet linje, og lige linje. Ved lige linje er kom0 længde og kom1 er hastighe-den i mm/s. Ved buet linje er kom0 længde og kom1 er krumning.

+ Straekning(int type,int kom0,int kom1, int kom2); Bru-ges til buet linje hvor kom0 er længden, kom1: radius på buen og kom2 erhastigheden.

Når en strækning er oprettet, kan data hentes med følgende funktioner:

+ hentType(); Denne funktion henter hvilken type strækning, det drejer sigom.

+ int hentLaengde(); Denne funktion returnerer længden på strækningen.

+ int hentHastighed(); Denne funktion returnerer hastigheden i stræknin-gen.

+ int hentKrumning(); Denne funktion returnerer radius på krumningen.

+ float hentVinkel(); Denne funktion returnerer vinklen, der skal drejespå strækningen. Den kan både returnere for rotation og cirkelbue.

6.2 Metoder og attributter i brugerinteraktion

På brugerfladen skal der være 4 klasser: Kort, Kontrolpanel, Statistik og entilLog.

37

Page 52: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

6.2. METODER OG ATTRIBUTTER I BRUGERINTERAKTION

Kort

Dette objekts opgave er at vise et kort over, hvor på banen de detekterede elemen-ter er placeret, og hvilken rute robotten kører efter. Kortet skal opdateres 25 gangei sekundet . Klassen indeholder følgende funktion:

+ void opdater() Denne funktion opdaterer billedet på brugerfladen og ind-læser alle objekterne fra bane samt ruten og udskriver dem på banen.

Kontrolpanel

Dette objekts funktion er at styre de forskellige processer samt at kunne aktivereog deaktivere den manuelle styring. Hvis den manuelle styring er aktiv, skal denneaflæse piletasterne og sende kommandoerne styring. Dette skal ske 2 gange persek.

Hvis den er pasiv, skal den kunne starte, stoppe og pause robot og ruteplan-lægning.

Under den manuelle styring kan brugeren få robotten til at køre frem/tilbage,køre til venstre/højre, gribe/slippe krus.

Statistik

Et objekt af denne klasse skal tage sig af statistikken. Dette skal indeholde funk-tioner til at opdatere indholdet, herunder batteristand, score, kvalitet af radiokom-munikation og total tid samt tid brugt på opsamling af sidst indsamlede krus.

Funktionerne fordeler sig derfor således:

+ void nulstilTid(); Denne funktion nulstiller tiden

+ void nulstilTidForKrus(); Denne funktion nulstiller timeren for tidenper krus, der er ved at blive samlet op.

+ void opdaterTotaltid(); Denne funktion opdaterer tiderne på skær-men.

+ void opdaterBatteritilstand(int batteristand); Denne funk-tion opdaterer batteribjælken med den modtagede værdi.

+ void krusOpsamlet(int addVaerdiOs, int addVaerdiFjen-den); Denne funktion lægger værdier til scoren og opdaterer resultatet påskærmen. Funktionen bliver kørt, hver gang der bliver opsamlet et krus, en-ten af AskeBot eller Elvis.

+ void nulstilScoren() Denne funktion nulstiller scoren.

38

Page 53: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 6. KLASSERNES FUNKTIONER

+ void pakkeSendt(int antalforsøg) Denne funktion opdaterer sta-tistikken på radiokomminikationen og værdierne på skærmen. Denne funk-tion vil blive kørt, hver gang der er nået en datapakke frem.

+ void nulstilRadiokommunikation() Denne funktion nulstiller antal-let af pakker fra radiokommunikationen.

6.2.1 Log

På brugerfladen skal der være en tekstboks, som indeholder en log, hvor det skalvære muligt at følge med i udførslen af programmet. Dette objekt skal indeholdeen rutine, som skal kaldes, hvis der skal tilføjes en linje til loggen.

+ tilfoejTekstStreng(string printtextm, int type); Dennefunktion skriver i loggen, og parametret type angiver hvilken type besked,teksten er; 0=info, 1=fejl, 2=debug og 3=advarsel. Teksten forsynes endvi-dere med et tidsstempel.

6.3 Billedanalyse

Billedanalysen indeholder klasserne: Bane, Krus, Forhindring, Robotter, Bil-lede, BilledElement og Kommunikation. Klassernes funktioner er beskrevet her-under.

6.3.1 BilledElement

Et objekt af typen BilledElement indeholder billeddata for et element på banen.Attributterne for BilledElement er følgende:

xmin, xmax, ymin, ymax : int Definerer området omkring elemen-tet.

massemidtpunkt : koord Definerer et koordinatsæt for massemidtpunk-tet.

kompakthed : float Definerer kompaktheden for elementet.

6.3.2 Bane

I klassen Bane bliver beskrevet de funktioner, som har noget at gøre med elemen-terne på banen. Nogle funktioner er inkluderet i alle elementer, mens andre kuntilhører en type af elementer.

39

Page 54: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

6.3. BILLEDANALYSE

void getObjectData(unsigned char label, unsigned char *la-belImagePtr, struct BilledElement *billedElement,intxsize, int ysize, unsigned char interlaced); Denne funk-tion bestemmer massemidtpunk for alle elementer. Endvidere findes arealog omkreds, så kompaktheden til typegenkendelse kan findes.

Krus

Krus er en aggregeret klasse af Bane, som indeholder en funktion, der er specifikfor krusene på banen.

int tjekKopper(unsigned char *refImagePtr, unsigned char*videoPtr, struct billedElement *billedElement,int thres-hold); Der gåes ud fra at krusene står fast på banen, indtil de fjernes afen robot. Denne funktion tjekker løbende for at bekræfte tilstedeværelsenaf dem. Hvis et krus er registreret i regionen, vil der returneres 0 og 1 hvisikke.

Robot

Robot er en underklasse af klassen Bane.Der er to funktioner, som kun er tilhø-rende disse. Den ene er er kun for egen robot, mens den anden funktionen indgåri begge robotter.

void getRobotOrient(unsigned char *labelImagePtr, unsig-ned char interlaced, struct BilledElement *billedEle-ment); Retningen for AskeBot findes her. Der er bestemt at forenden afrobotten er i spidsen af A’et. Denne funktion giver et koordinat til AskeBot.

Forhindring

Forhindring er også en underklasse til Bane.

void findHjoerner(unsigned char *labelimage, struct FOR-HINDRING *forhindring, struct BilledElement *billed-Element); For at robotten ikke kører ind i forhindringerne, skal forhin-dringerne hjørner markeres. Denne funktion bestemmer dette.

6.3.3 Billede

Klassen Billede indeholder kun de funktioner, der direkte har noget med gen-nemgang af billedet, så som referencebillede, aktuelt billede, differensbillede ogindeksering.

40

Page 55: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 6. KLASSERNES FUNKTIONER

void Referencebillede(unsigned char *videoPtr, unsignedchar *refPtr); Referencebilledet, som er et billede af banen undenelementer, gemmes i et array. Denne funktion køres normalt ved program-mets opstart.

unsigned char *videoPtr Aktuelt billede(void); Denne funk-tion tager et billede af banen med elementer, og der returneres en pointer tilbilledet.

int labellingROI(unsigned char *refImagePtr, unsiged char*videoPtr,unsiged char pixelskip, struct ROI *roi, intthreshold); Denne funktion finder differensbilledet, som er det aktu-elle billede trukket fra referencebilledet. Dette billede indeholder kun ele-menterne på banen. Samtidig med dette indekseres hvert element i billedet.Disse får en unik værdi.

6.3.4 Kommunikation

Klassen kommunikation indeholder fire funktioner, der relaterer sig til netværks-kommunikation via TCP/IP.

int netOpretForbindelse(int port); Denne funktion opretter en port,hvorpå den lytter efter en forbindelse fra en klient. Funktionen returnerer 0,hvis operationen lykkedes, og 1 hvis ikke.

int netModtag(unsigned char *buffer, int size); Denne funk-tion venter på modtagelse af data via netværk, og tager en pointer til enbuffer samt størrelsen på denne. Funktionen returnerer 0, hvis operationenlykkedes, og 1 hvis ikke.

int netSend(unsigned char *buffer, int size); Denne funk-tion sender data via netværk, og tager en pointer til en buffer og antal bytes,der skal sendes. Funktionen returnerer 0, hvis operationen lykkedes, og 1hvis ikke.

void netLukForbindelse(void); Denne funktion lukker netforbindel-sen for billedserveren.

6.4 Robotfunktioner

I robottens programmel er en række klasser.

41

Page 56: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

6.4. ROBOTFUNKTIONER

6.4.1 buffer

Objekter af typen Buffer indeholder en ringbuffer af chars. Klassen indeholderfunktioner, der kan læse og skrive i bufferne.

int skrivByte(char input, BUFFER *buffer) Denne funktion skri-ver en byte i den buffer, den blev kaldt med.

char laesByte(BUFFER *buffer) Denne funktion læser en byte fra denbuffer den blev kaldt med.

int laesInt(BUFFER *buffer) Denne funktion læser en integer fra denbuffer den blev kaldt med.

6.4.2 robotAdfaerd

Objektet robotAdfærd sørger for at robotten udfører de kommandoer, den mod-tager fra pc’en og korrigerer robotten.

void korriger() Denne funktion korrigerer robotten, så den følger den øn-skede strækning.

void udfoerNyKommando() Denne funktion sætter robotten til at udføreden næste kommando, der ligger i beskedBufferen.

void linje() Denne funktion henter parametre fra beskedbuffer og kører enret linje efter disse.

void kurve() Denne funktion kører en buet kurve efter de medfølgende pa-rametre i beskedbuffer.

void roter() Denne funktion roterer om sig selv efter parametre i besked-buffer.

void stop() Denne funktion stopper robotten.

void noedstop() Denne funktion stopper alt.

void tilbagemelding() Denne funktion sender en tilbagemelding til pc’en.

6.4.3 Styretøj

Klassen Styretøj indeholder metoder til styring af motor og aflæsning af sensorer.

void koer() Denne funktion sætter robotten til at køre.

char laesRotation8bit(char adc_kanal) Denne funktion aflæserrotationssensoren i den side, den kaldes med.

42

Page 57: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 6. KLASSERNES FUNKTIONER

6.4.4 Gribearm

Denne klasse indeholder funktioner, der kan åbne og lukke gribearmen.

void kloUd() Denne funktion åbner gribearmen.

void kloInd() Denne funktion lukker gribearmen.

6.4.5 Batteri

Klassen indeholder funktionen, der kan aflæse batteristatus.

char batteri() Denne funktion aflæser batteristatus og sender denne tilpc’en.

6.4.6 PCkommunikation

PCkommunikation varetager den overordnede kommunikation med pc’en.

void behandlNyBesked() Denne funktion behandler de beskeder, der lig-ger i beskedBuffer.

void svar(char kommando, char batteristatus) Denne funktionlægger svar til pc’en i svarBuffer.

6.4.7 Radiokommunikation

Radiokommunikation varetager kommunikationen med radiomodulet. Denne in-deholder to funktioner, der tager sig af hhv. at sende og at modtage.

char sendSvar(void) Denne funktion sender den besked, der ligger i svar-Buffer.

char modtagBesked(void) Denne funktion odtager en besked og gemmerden i beskedBuffer. Der Returneres 0, hvis det gik godt. Ellers returneres enfejlkode.

43

Page 58: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

Del II

Design

44

Page 59: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is
Page 60: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

7BilledanalyseFor at robotten skal kunne finde rundt på banen med forhindringer, undgå mod-standerrobotten og samtidig indsamle krus, er det nødvendigt at kende placerin-gen af disse. Til indsamling af disse informationer anvendes billeder af banen,som herefter analyseres. De første billeder bruges til den statiske analyse, hvorplacering for krus, forhindringer og robotter bestemmes. De efterfølgende bille-der bliver brugt i den dynamiske analyse, som kontrollere at krusene stadig er påderes oprindelige placering samt finder robotternes nye placering.

7.1 Statisk analyse

7.1.1 Referencebillede af gulv

For at indsamle de nødvendige informationer er det først nødvendigt at bestemme,hvor på banen et muligt element befinder sig.

Dette kan gøres ved at tage et billede af banen uden nogen elementer, kaldetet referencebilledet, figur 7.1, og derefter tages et billede, hvor forhindringer, krusog robotter er placeret på banen, figur 7.2. Differensen mellem de to billeder ervist på figur 7.3.

Figur 7.1: Billede af banen uden elementer, også kaldet referencebilledet.

46

Page 61: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 7. BILLEDANALYSE

Figur 7.2: Billede af banen med elementer.

Figur 7.3: Differensbilledet mellem figur 7.2 og figur 7.1. De støjpixel der ses på billedetstammer hovedsageligt fra lysændringer.

47

Page 62: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

7.1. STATISK ANALYSE

7.1.2 Binarisering af billede

I forbindelse med at der tages billeder af banen, kan der ske ændringer i lys-forholdene, dette vil vise sig i form af pletter på differensbilledet. For at disseikke skal forveksles med elementerne på banen, elimineres de ved at indføre entærskelværdi. Tærskelværdien definere hvor lyse pixelene skal være for at kunnebetragtes som et forgrundselement på banen. Pixel, der overstiger denne tærskel,sættes alle til at være helt forgrund, de andre sættes til baggrund. Dette medfører,at billedet nu er binært (to niveauer).

7.1.3 Indeksering

For at kunne se om et element stadig er på banen, indekseres hvert sammenhæn-gende hvidt pixelområde med en unik værdi. For at gøre dette skal det binariseredebillede gennemløbes. Når en forgrundspixel mødes, kaldes en rekursiv algoritme,der først søger i vest-retningen fra denne, for at se om den er forgrund og ikke-indekseret, så i syd, nord og til sidst i østretningen. Hvis det er tilfældet, at en pixelbåde er forgrund og ikke-indekseret i én af retningerne, vil algoritmen kalde sigselv med denne pixels koordinater og pixlen blive indekseret i den retning, og så-ledes vil algoritmen udfylde hele det sammenhængende forgrundsområde med enindeksværdi. Når indekseringen af eet sammenhængende område er fuldført, for-sætter funktionen derefter med at gennemløbe billedet for hvide ikke-indekseredepixel, så de resterende elementer findes.

7.1.4 Objektanalyse

Bestemmelse af massemidtpunkt

I forbindelse med analyse er det nødvendigt at kende et koordinat for krus ogrobot. Et oplagt punkt vil være massemidtpunktet, som kan findes ved hjælp afligning 7.1.

­ ª�®¯®p°p±³²�«�´¶µ¸·]¹»º�´o¼�½¾�T¿�ÀqÁ  ½ÄÃTÅvÅ�Æ�ÇVÈÊÉOËvÌ�ÍHÆvÉpÍÎ $�°¯ª¬Ï �  ¿�ÃzÅQÅ�Æ�ÇVÈ�ÉpËvÌÐÍHÆQÉOÍÎ $�°¯ª¬Ï (7.1)

I ligningen ses det, at arealet og koordinater for alle de pixel, der indgår ielement, indgår. Koordinaterne kendes fra indekseringen, og arealet bestemmessom antallet af pixel i elementet.

Klassificering ved hjælp af kompakthed

Det skal være muligt at kende forskel på de forskellige elementerne på banen.Klassificereringen af dem inddeles i de tre kategorier: Forhindringer, krus og ro-

48

Page 63: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 7. BILLEDANALYSE

bot. Dette gøres ud fra elementernes kompakthed, som er forskellige, alt efterhvilken form de har. Definitionen for kompakthed er:

ÑÓÒ ±Ôµ]ª¬º�´TÕ]°¯«ÖÁ Î $�°¯ª¬Ï× ±©º¬$�°¯«Ø®oÙ (7.2)

En cirkel er den form, der har den største kompakthed. Denne er altid ÚÛKÜ . Foren firkant vil den altid være mindre end ÚÚ¶Ý . Omkredsen findes ved at tælle antalletaf pixel op for et element, som har en nabopixel fra referencebilledet.

Arealet er allerede fundet tidligere i forbindelse med bestemmelse af mas-semidtpunktet, mens omkredsen findes ved at tælle antallet af kantpixel for detgivende element op. Kantpixel er de pixel, som har en nabopixel, der tilhører re-ferencebilledet.

7.1.5 Hjørnedetektion

I reglerne defineret i appendiks A er det bestemt, at robotterne ikke må røre vedforhindringerne. Derfor er det nødvendigt at kunne detektere alle hjørner for alleforhindringer.

Dette kan gøres ved hjælp af massemidtpunktet for forhindringen, hvor derher ud fra søges efter en kantpixel i x-retningen, se figur 7.4. Herefter søges efteren anden kantpixel ved hjælp af et kvadrat på 7x7 pixel, der har den først fundnekantpixel som centrum, se figur 7.5. Vinklen for vektoren mellem de to kantpixelberegnes og gemmes. Denne proces gentages med den anden kantpixel som cen-trum for kvadratet og så fremdeles til hele forhindringens kant er gennemløbet.Herved haves en liste af vinkler, der groft skitserer forhindringen.

Ved anvendelsen af kvadratet til bestemmelse af næste kantpixel, skal der tageshensyn til, at kvadratet skærer forhindringen i to punkter. Størrelsen af kvadratet(i dette tilfælde 7x7), bestemmes ud fra to overvejelser: Størrelsen må ikke værefor stort, da præcisionen af hjørnes placering derved vil mindskes; størrelsen måikke være for lille, da støj herved kan detekeres som hjørner.

Udfra de gemte vinkler kan forhindringens hjørner detekteres, som de stederhvor vinklen ændrer sig radikalt, se figur 7.6.a.

Da der kan forekomme omliggende støj, når funktionen søger langs kanten, eret medianfilter1 en nødvendighed under implementeringen, så kurvens angivelsebliver mere nøjagtig. For at få koordinaterne for hvert enkelt hjørne i forhindrin-gen, differentieres kurven, så ekstremer findes, se figur 7.6.

1Et filter der for hver sample finder den mellemste værdi(medianen) i et vindue med en fast længde omkring samplen.[Bob Fisher and Simon Perkins and Ashley Walker and Erik Wolfart, 2002]

49

Page 64: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

7.1. STATISK ANALYSE

Þ�ß�àiá â�ã ä1å�æMassemidtpunkt

ÞißÊà!á â�ã ä-å�æ der bliver analyseret

Figur 7.4: Hjørnedetektion for en forhindring, hvor der søges i nord, vest, syd og øst. Dersøges rundt i kanten med et spring på 3 pixel.

ç1è?é�ê ëÐì íÊî¶ïç1è?é�ê ëÐì í�î¶ï

der bliver analyseret

Pì í�î�ï

uden for forhindringen

Analyse rute

Figur 7.5: For at finde hjørnet findes vinklen fra startpunktet til næste punkt i en radiusaf 3 pixel. Hvis kanten går i nordlig retning vil algoritmen starte med at afsøge østsidenaf radius.

50

Page 65: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 7. BILLEDANALYSE

0 50 100−3

−2

−1

0

1

2

3

4

(a)

Vin

kel i

rad

iane

r

0 50 100−2

−1

0

1

2

3

4

(b)

Vin

kel i

rad

iane

r

0 50 100−2

−1

0

1

2

3

4

5

(c)

Figur 7.6: På figur (a) ses kurven med vinkelforholdene uden filtrering. Figur (b) med detmedianfiltrerede og figur (c) med den differentierede kurve for vinkelændringerne.

7.1.6 Orientering af robot

Efter indekseringen, fundne massemidtpunkter, typegenkendelse for alle elemen-ter og hjørnedetektion af forhindringer, gemmes disse data til videre behandling.Der gås her ud fra, at forhindringerne forbliver på deres plads, så disse ikke be-høver at blive indekseret på ny. Udover angivelse af ovenstående informationer,bliver orienteringen af egen robot fundet, så det er muligt at se, hvilken vej robot-ten kører.

For at være i stand til at genkende robotten under analysen udstyres den medet kendemærke. Dette kendemærke har form som et stort A. Valget af dette ken-demærke er truffet på baggrund af følgende faktorer: Stor afstand mellem mas-semidtpunkt og spids og en stor omkreds i forhold til areal, således figuren ergenkendelig ved udregning af kompakthed.

Orientering af egen robot bestemmes som retningen for linjen mellem masse-midtpunktet og kantpixelen længst væk fra massemidtpunktet (spidsen af A’et),se figur 7.7. I billedanalysen bestemmes kun disse to punkter, bestemmelse aforienteringen foregår på pc-siden.

7.1.7 Konvertering fra billede- til gulvkoordinater

Når objektanalysen er kørt, konverteres billedkoordinaterne til gulvkoordinaterfor henholdsvis massemidtpunkt, hjørner og retning på robot. Når koordinaterne

51

Page 66: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

7.2. DYNAMISK ANALYSE

L max

x

y

x

yL

Pixelområde

Massemidtpunkt

Spidsens koo ð ñKò nat

Figur 7.7: Bestemmelse af orientering for Askebot ud fra dennes kendemærke.

til forhindringer, krus og robotter er fundet, er de opgivet i koordianter på CCD’eni kameraet. Disse koordinater skal omregnes til koordinater på gulvet. Dette skerved at finde koordinatet til punktet på CCD’en samt koordinatet til origo af lin-sen. Ved hjælp af to punkter i rummet, og et punkt i planen, kan det beregneshvor linjen skærer planen, og det er dette sted, der er det egentlige koordinat. Iappendiks C beskrives hvordan de to punkter findes, og hvordan der omregnes tilkoordinater på gulvet. Da robotternes kendemærker er placeret i en vis højde overbanen, er gulvplanet i beregningerne for disse rykket op, så det svarer til toppenaf robotterne.

7.2 Dynamisk analyse

Under den dynamiske analyse funktioner fra den statiske analyse blive genbrugt.For eksempel vil der under den dynamiske løkke altid ske en opdatering af kru-sene, for at være sikker på, at de ikkr er blevet taget af en af robotterne. Regio-nerne omkring robotterne vil altid blive indekseret, og orienteringen for Askebotvil også blive bestemt. Som tidligere nævnt, gås der ud fra, at forhindringer liggerfast på banen, og derfor ses kun på krusene og robotterne.

7.2.1 Interlacing og opdatering

En ting der skal tages højde for, når der køres i sandtid, er den forskydning,der vilvære imellem de lige og ulige pixellinier (interlacing). Når billedet gennemløbes,

52

Page 67: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 7. BILLEDANALYSE

er det de lige linier der gennemløbes først, og derefter de ulige. Derfor kan for-men af elementer på banen blive ændret. Dette tages der højde for ved kun at sepå hver anden linie i billedet. En anden vigtig ting er udnyttelse af processorkraft.Indekseringen af hele billedet under den dynamiske løkke kan gøre at opdaterin-gen bliver meget langsom. For at begrænse dette ses kun på de regioner, hvor krusog robotter er fundet under første gennemløb af hele billedet.

7.2.2 Opdatering af krus

Ved hvert billede kontrolleres koordinatsættet for massemidtpunktet for hvert krus,samt fire nabopixel i en radius af 10 pixel fra dette. Hvis en af de fire omliggendepixel ikke har en lysitensitet over den satte tærskelværdi, vil der, når der sker enopdatering, ikke være noget krus i det givende massemidtpunkt, og der vil blivesendt en besked til pc’en, om at dette krus er blevet taget.

7.2.3 Opdatering af robotter

For at optimere hastigheden af billedanalysen under drift skal der efter 1. indek-sering af hele billedområdet kun indekseres i et afgrænset område omkring robot-terne. Regionen, der søges i, skal være så stor, at robotten ikke er i stand til at køreudenfor området indenfor 1/25 s. Efter endt indeksering slettes indekset ligeledeskun i interesseområdet.

53

Page 68: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

8Pc-softwareI dette kapitel beskrives designovervejelser vedrørende opbygning af pc-softwaren.Først gennemgås den grundlæggende struktur i pc-programmets kerne, herefterdesignes ruteplanlægning og korrigering samt brugerinteraktion. Kommunikationmed SGI og robot beskrives særskilt i kapitel 10.

8.1 Kerne

Når programmet på pc’en kører, skal det sørge for at opdatere skærmen, hente op-lysninger fra billedanalysen via netværk, samt hente og opdatere videobillederne,desuden skal ruteplanlægning og korrigering køres.

For at sørge for at alle disse processer, kan forløbe på samme tid, er det for-delagtigt at oprette en tråd til hver af processerne. Disse kan ses på figur 8.1

Figur 8.1: Trådene der oprettes i systemet starts for de flestes vedkommende fra main.

54

Page 69: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 8. PC-SOFTWARE

8.2 Ruteplanlægning og korrigering

8.2.1 Oprettelse af knudepunkter

Ruten modtager parametre (koordinater m.m.) for banens forhindringer, krus ogde to robotter. Her ud fra skal der oprettes knudepunkter, som er de punkter Aske-bot skal køre imellem, når der er oprettet en rute. Der oprettes et knudepunkt forbasestationen, et for AskeBot, et for hvert krus og et for hvert forhindringhjørne.Når knudepunkterne er fundet, bestemmes hvilke knudepunkter, der kan køresimellem uden at komme for tæt på forhindringerne. Desuden bestemmes afstan-den mellem hvert af disse knudepunkter. I det følgende bruges udtrykket, at toknudepunkter er i hinandens synsfelt, hvis der kan køres imellem dem uden atkomme for tæt på forhindringerne.

Bestemmelse af knudepunkter udfra forhindringer

Da robotten vil køre over forhindringen, hvis ruten planlægges direkte ud fra for-hindringens hjørner, rykkes hjørnerne væk fra forhindringen, så der opstår en mar-gin, hvor robotten kan køre. Hjørnernes position ændres ved at fremstille simplemarginforhindringer udfra banens oprindelige forhindringer. En simpel marginfremstilles ved at parallelforskyde forhindringens sider en fast margin væk fraforhindringen og finde skæringspunkter mellem disse sider som vist på figur 8.2.Hvert skæringspunkt gemmes som et hjørne med information om hjørnets type(udad eller indad). Typen fås fra den oprindelige forhindring. En marginforhin-dring består således af en liste med hjørner ligesom en forhindring.

Figur 8.2: Bestemmelse af en simpel marginforhindring udfra en forhindring. Prikkernemarkerer marginforhindringens hjørner.

Hvert hjørne fra de simple marginforhindringer kan direkte anvendes som knu-depunkt, medmindre hjørnet ligger indenfor en anden marginforhindring. I så fald

55

Page 70: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

8.2. RUTEPLANLÆGNING OG KORRIGERING

skal de to marginforhindringer, hvor der er overlap, korrigeres. Der korrigeres fortre typer overlap: Trekantoverlap, firkantoverlap1 og firkantoverlap2, se figur 8.3.

B A B A

B A

a) c) b)

Figur 8.3: Overlapningstyper mellem marginforhindringer. a) Trekantoverlap: Et af mar-ginforhindring A’s hjørner ligger inden for marginforhindring B. b) Firkantoverlap1: Enside i marginforhindring B overlappes af to af marginforhindring A’s hjørner. c) Firkan-toverlap2: Et af marginforhindring A’s hjørner ligger inden for marginforhindring B ogomvendt.

Ved korrigeringen indføres tre nye hjørnetyper, der ses i tabel 8.1 sammen medde to eksisterende hjørnetyper. Hjørnetyperne anvendes, når det skal bestemmes,hvilke knudepunkter, der er i hinandens synsfelt.

Hjørnetype BeskrivelseHjørne-udad Et ukorrigeret hjørne, der peger væk fra marginfor-

hindringen.Hjørne-indad Et ukorrigeret hjørne, der peger ind mod marginfor-

hindringen.Hjørne-marginskæring Et korrigeret hjørne, bestemt ud fra skærringspunkt

mellem to marginforhindringer.Hjørne-skjult Et korrigeret hjørne, der kun har dets to nabohjørner i

sit synsfelt.Hjørne-erstatning Et korrigeret hjørne, der erstatter et hjørne, som op-

rindeligt har været af typen Hjørne-udad eller Hjørne-indad. Hjørnet har kun dets to nabohjørner i sit syns-felt.

Tabel 8.1: Hjørnetyper for marginforhindringerne.

For alle korrigeringstyper indsættes de to skæringspunkter mellem marginfor-hindringerne som nye hjørner i hver af de to marginforhindringer. Hjørnerne til-

56

Page 71: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 8. PC-SOFTWARE

deles typen Hjørne-marginskæring. Nedenfor beskrives de hjørner, der indsættesspecifikt for de tre overlapningstyper.

Korrigering ved trekanttoverlap Ved trekantoverlap bestemmes et korrigerings-punkt midt i mellem det hjørne i den oprindelige forhindring A, der forår-sager overlapningen og linien over for dette hjørne i den oprindelige for-hindring B, se figur 8.4.a. Dette punkt indsættes som et hjørne med typenHjørne-erstatning i marginforhindring A i stedet for det hjørne, der over-lapper marginforhindring B. I marginforhindring B indsættes punktet somet nyt hjørne med typen Hjørne-skjult mellem de to hjørner, hvor margin-forhindringerne skærer hinanden. De korrigerede marginforhindringer ses ifigur 8.4.b.

B A

b)

B A

a)

Figur 8.4: Korrigering ved trekantoverlap. a) Bestemmelse af korrigeringspunkt. b) Kor-rigerede marginforhindringer.

Korrigering ved firkanttoverlap1 Ved firkantoverlap1 bestemmes to korrigerings-punkter på samme måde som ved trekantoverlap, se figur 8.5.a. Punkterneindsættes som hjørner af typen Hjørne-erstatning i marginforhindring Aistedet for de to hjørner, der overlapper. Punkterne indsættes som hjørneraf typen Hjørne-skjult i marginforhindring B mellem de to hjørner, hvormarginforhindringerne skærer hinanden. I figur 8.5.b ses de to korrigeredemarginforhindringer.

Korrigering ved firkanttoverlap2 Ved firkantoverlap2 bestemmes to korrigerings-punkter som ved trekantoverlap og firkantoverlap1, se figur 8.6.a. Hvert afpunkterne bliver til et hjørne af typen Hjørne-erstatning i den ene margin-forhindring og et hjørne af typen Hjørne-skjult i den anden. I hver af deto marginforhindringer skal de to tilhørende korrigerede hjørner indsættesmellem de to hjørner, hvor marginforhindringerne skærer hinanden. De kor-rigerede marginforhindringer ses i figur 8.6.b.

57

Page 72: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

8.2. RUTEPLANLÆGNING OG KORRIGERING

B A

a)

B A

b)

Figur 8.5: Korrigering ved firkantoverlap1. a) Bestemmelse af korrigeringspunkter. b)Korrigerede marginforhindringer.

B

A

a)

B

A

b)

Figur 8.6: Korrigering ved firkantoverlap2. a) Bestemmelse af korrigeringspunkter. b)Korrigerede marginforhindringer.

58

Page 73: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 8. PC-SOFTWARE

Bestemmelse af knudepunkter for krus indenfor en marginforhindring

Hvis et krus står indenfor en marginforhindring (imellem en forhindring og den til-hørende marginforhindring), er det nødvendigt at udregne mindst et knudepunkt,hvor kruset kan tilgås fra. Situationen er vist på figur 8.7, hvor der desuden er visthensigtsmæssige knudepunkter, hvor kruset kan tilgås fra.

Hertil er det nødvendigt at kunne detektere, hvornår et krus står indenfor enmarginforhindring. For et givent krus og en given forhindring kan dette undersø-ges ved først at finde det punkt på forhindringen, hvor der er den korteste afstandmellem krus og forhindring. Hvis liniestykket mellem dette punkt og kruset skæ-rer nogle af marginforhindringens sider, står kruset udenfor marginforhindringen.

Figur 8.7: Et krus indenfor en marginforhindring med knudepunkter, hvor kruset skaltilgås fra.

Bestemmelse af knudepunkter i synsfelt samt afstande

Når knudepunkterne er bestemt, skal det beregnes, hvilke punkter, der er i hinan-dens synsfelt og afstanden mellem disse punkter. Dette gøres først internt i hvermarginforhindring.

Internt i en marginforhindring kan følgende betingelser opstilles:

x Et hvert hjørne har sine to nabohjørner i sit synsfelt.

x Et hjørne med et nabohjørne af typen Hjørne-indad i urets retning kan se deefterfølgende hjørner i urets retning til og med det første hjørne der ikke hartypen Hjørne-indad.

x Tilsvarende gælder, at et hjørne med et nabohjørne af typen Hjørne-indadmod urets retning kan se de efterfølgende hjørner mod urets retning til ogmed det første hjørne der ikke har typen Hjørne-indad.

59

Page 74: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

8.2. RUTEPLANLÆGNING OG KORRIGERING

Figur 8.8: En marginforhindring hvor det er markeret, hvilke hjørner, der er hinandenssynsfelt.

I figur 8.8 er illustreret, hvilke hjørner der er i hinandens synsfelt, i en udvalgtmarginforhindring.

Efter bestemmelse af hvilke hjørner der er i hinandens synsfelt internt i hvermarginforhindring, bestemmes hvilke hjørner fra de andre marginforhindringer,et givent hjørne har i sit synsfelt. Dette gøres for hjørner af typen Hjørne-indad,Hjørne-udad og Hjørne-marginskæring. De to resterende hjørne-typer undlades,da de som nævnt, kun har deres nabohjørner i synsfeltet, og disse nabohjørner erbestemt udfra analysen internt i marginforhindringerne.

Hvorvidt et hjørne har et hjørne fra en anden marginforhindring i sit synsfelt,bestemmes ved at trække en linie mellem de to hjørner og undersøge, om linienskærer nogle af siderne i marginforhindringerne. Hvis dette er tilfældet, er de tohjørner ikke i hinandens synsfelt.

På tilsvarende vis findes der knudepunkter i synsfeltet for basestationen og dekrus, der ligger uden for marginforhindringerne.

Afstanden mellem to knudepunkter, der er i hinandens synsfelt, findes udfrafølgende formel, hvor Ï betegner afstanden og ¼�½ Ú �T¿ Ú À og ¼�½ Ù �T¿ Ù À koordinaternefor de to punkter:

ϾÁôó ¼�½ Úöõ ½ Ù ÀVÙl÷ø¼�¿ Ú¦õ ¿ Ù ÀVÙ (8.1)

8.2.2 Den korteste rute

Ud fra de fundne knudepunkter, og afstanden i mellem dem, er det muligt at læggeen rute. I den forbindelse er der flere problemstillinger, der skal løses:

1 til 1 Denne problemstilling optræder, når robotten skal fra dens placering og udtil et krus, og når robotten med krus skal tilbage til base stationen, for ataflevere kruset. Her skal der anvendes en 1 til 1 algoritme.

1 til mange Denne problemstilling anvendes i det tilfælde hvor der skal vælges

60

Page 75: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 8. PC-SOFTWARE

hvilket krus der står tættes på, og som der dermed skal køres efter. Her vilder med fordel kunne anvendes en 1 til mange algoritme.

Den sidste problemstilling kan også løses på en mere tids og resurse krævendemåde, nemlig ved at bruge 1 til 1 algoritmen på hvert krus og derefter sammen-ligne længderne.

Til at finde de korteste ruter er der valgt at bruge Dijkstras Shortest Path algo-ritme. Denne algoritme kan løse begge problematikker, hvis den gennemløber demulige strækninger [Waldura, 2002].

For at forklare hvordan Dijkstras algoritme fungerer, tages der udgangspunkt iet lille eksempel. Det ser ud som i figur 8.9, hvor A, B, C, D og E er knudepunkter,og tallene imellem dem er længden af den strækning, der skal tilbagelægges for atkomme imellem punkterne.

A

B

C

E

D

4

2

1

7

4

2

3

Figur 8.9: A, B, C, D og E er knudepunkterne i dette eksempel som forklarer, hvorledesDijkstras shortest path algoritme fungerer. Tallene mellem punkterne er den afstand derskal tilbagelægges for at komme imellem dem.

Algoritmen opererer med tre forskellige typer knudepunkter: besøgt (sort),synligt og ubesøgt (gråt) og usynligt(hvidt). Til at starte med er alle punkter usyn-lige, på nær startpunktet (A), som er besøgt. Når algoritmen gennemløbes under-søges hvilke punkter, det synlige punkt (A) kan se (B og C), og hvor langt densamlede længde, fra start til disse punkter, er. Disse punkter markeres nu somsynlige, og der oprettes en faderliste. Faderlisten indeholder for hvert punkt infor-mation om hvilket synligt punkt, der ligger tættest på start. Det hele ses illustreretpå figur 8.10.

Derefter undersøges det hvilke af de synlige punkter, der har den korteste af-stand til start, i dette eksempel er det C. Dette bliver nu det nye udgangspunkt, ogdette markeres nu besøgt. Proceduren gentager sig igen, dette ses på figur 8.11. Iforbindelse med at punkt B undersøges, opdages det at strækningen AC og CB erkortere end den allerede kendte, AB, og B’s fader sættes til at være C. Desudenbetragtes B som værende besøgt, da B er det ubesøgte punkt, med den kortesteafstand til A.

61

Page 76: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

8.2. RUTEPLANLÆGNING OG KORRIGERING

Figur 8.10: Dijkstars algoritme starter ud fra punkt A. Fra A er det muligt at komme tilB ved at tilbagelægge en strækning på 4 og til C ved en strækning på 2. Disse punkter (Bog C) er markeret som synlige.

Figur 8.11: Den kortest strækning fra A er nu valgt, og C er blevet det nye analyseknu-depunkt. Det ses endvidere at der nu forefindes en kortere rute til B end den alleredeeksisterende og dette opdateres.

62

Page 77: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 8. PC-SOFTWARE

Fra B kommer der endnu en ny strækning til syne, B til E af længden 7. Detteer illustreret på figur 8.12

Figur 8.12: B er det nye analyse punkt, da den korteste afstand til et synligt ubesøgt punktvar AC CB.

Den korteste afstand fra start til et af de synlige punkter er nu AC og CD,derfor bliver D nu analyseknudepunktet. Dette se på figur 8.13.

Den korteste rute til et af de synlige punkter er nu AC og CE. Målet er nået,med ruten A til C og C til E. Hvis algoritmen skulle have løst 1 til mange proble-matikken skulle den have fortsat indtil alle knudepunkter var besøgt.

Figur 8.13: Den korteste strækning fra A til E er gennem C. Målet er nu nået.

8.2.3 Delruteplanlægning

Fra Rute kommer en række fikspunkter. Ruten mellem to fikspunkter skal be-regnes løbende for at kunne korrigere robotten, som beskrevet i afsnit 3.4.2 omtilbagekobling gennem systemet.

Delruten skal passe til robottens manøvremuligheder, derfor skal den delesop i delstrækninger som robotten kan køre efter. Robotten kan køre 3 forskelligetyper af strækninger: rotere omkring sig selv, køre i en lige linje og køre i en

63

Page 78: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

8.2. RUTEPLANLÆGNING OG KORRIGERING

cirkelbue. I strækningen kan der ligeledes ligges en ønsket hastighed, for eksempelskal robotten kunne køre langsomt, hvis der køres tæt på en forhindring.

Til de forskellige strækningstyper er knyttet forskellige parametre. Til ligestrækninger angives hastigheden og længden. Til rotation angives rotationshastig-heden, og den vinkel robotten skal rotere. Robotten roterer om sit rotationspunkt,som er punktet midt imellem hjulene. En cirkelbuestrækning er angivet med enradius, en hastighed og en længde. Radius er afstanden mellem robottens omdrej-ningspunkt og cirklens centrum.

Der findes mange kombinationsmuligheder af strækningerne, der kan forbindeto fikspunkter. Den korteste vej mellem to fikspunkter er en lige linje, men detkræver at robotten stopper op og roterer i hvert fikspunkt. Derfor kan det være enfordel at køre i cirkelbuer, når der skal drejes, således at robotten undgår at stoppe.Det er valgt at designe to måder at generere delruter på: en lige linje mellem deto fikspunkter og en hvor der køres i cirkelbuer, når der drejes. Fikspunkterne erdesignet til metoden, hvor der køres gennem fikspunkterne i cirkelbuer.

Fikspunkter

Til hvert fikspunkt skal der opgives den vinkel robotten skal have i punktet.

Fikspunkt

Retningsvektor

Delrutes udsende

Rutens udsende

42

1

2 3

1

32

A) B)

Figur 8.14: A) Orienteringen i fikspunktet er lig retningen på den næste strækning. Dettegør, at robotten skal lave et kraftigt sving inden rutens slutning, for at komme til fikspunk-tet med denne orrientering. B) Her er samme situation, men den ønskede orrientering ifikspunktet er nu halvdelen af forskellen mellem orrienteringen på den tidligere stræk-ning og den fremtidigestrækning.

Den orientering som robotten skal have i fikspunkterne skal helst være så tætpå den næste stræknings vinkel som muligt. Samtidig er det også ønskeligt denligger tæt på den tidligere strækning, således at robotten f.eks. ikke skal lave etkraftigt sving, for at komme ind på den rette orientering, hvis ruten laver et "�� � sknæk, se figur 8.14.A. Orienteringen vælges derfor til at være halvdelen af for-skellen mellem retningen på strækningen inden fikspunktet og efter fikspunktet,som det ses på figur 8.14.B.

64

Page 79: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 8. PC-SOFTWARE

Dette beregnes lettes ved at finde hældningen på strækningerne, ved at brugekoordinaterne på fikspunktet og det forrige fikspunkt, og ligeså for strækningenmellem fikspunktet og det næste fikpunkt, addere dem og dividere med 2

I grænsetilfældene, det vil sige start og stop punkt, er der henholdsvis ikkenoget før- og efter-fikspunkt. Ved start, vælges det at robotten skal rotere indtilden har en orientering som passer med det linjestykke den først skal udføre. Vedslut, skal den blot beholde orienteringen som den havde på den linje den kørte.

Vinken tilskrives derefter til fikspunktet.

Lige linje

I denne metode starter hver delrute med at robotten roteres, så den har retningmod det næste fikspunkt. Herefter kører robotten til det næste fikspunkt hvor denroterer, til den har den vinkel fikspunktet angiver.

Vinklen på linjen, Ï , mellem de to fikspunkter, kan beregnes med denne lig-ning:

ù ϾÁûú�üTýcþcú�ÿ�� ¿ Ù õ ¿ Ú½ Ù õ ½ Ú�� (8.2)

Hvor ½ Ú og ¿ Ú er koordinaterne for startfikspunktet og ½ Ù og ¿ Ù er koordinater forslutfikspunktet.

Længden kan beregnes med Pythagoras’ læresætning:� Ï � Áôó ¼�½ Ù õ ½ Ú À Ù ÷ø¼�¿ Ù õ ¿ Ú À Ù (8.3)

(8.4)

Den vinkel, � § Ì�ËVÆQÌ!Æ�ŶÌ�ËvÌ!È!Å�É , robotten skal rotere inden linjestykket køres, kan be-regnes med følgende formel:

� § Ì�Ë�ÆQÌ!Æ�ÅHÌ�ËVÌ!È?Å�É Á ù Ï õ ���nÈ?à §�� ÉOÃ�Ì Ú (8.5)

Tilsvarende beregnes vinklen, � § Ì�ËVÆQÌ!Æ�ŶÌ�ËvÌ!È!Å¶É , robotten skal rotere efter linjestyk-ket er kørt, med følgende formel:

� § �� Ì!Æ�ŶÌ�ËvÌ!È!Å¶É Á ù Ï õ ���zÈ!à §�� ÉOÃ�Ì Ù (8.6)

65

Page 80: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

8.2. RUTEPLANLÆGNING OG KORRIGERING

Cirkelbuer

Ved at lade robotten køre i cirkelbuer, undgår robotten at stoppe for at dreje, mentil gengæld køres en længere strækning. Ved hvert fikspunkt placeres en cirkel.Cirklerne skal placeres således, at de tangerer hver deres fikspunkt med en tan-gent, der har samme vinkel som robotten vil have i punktet. På denne måde kanrobotten følge cirkelbuen og derpå dreje, indtil den har den rigtige vinkel til næ-ste fikspunkts cirkel. Cirklen skal placeres på den side af robotten, som den skaldreje til. Mellem de to cirkler kører robotten en lige strækning der tangerer beggecirkler. Princippet er vist på figur 8.15.

v2

lc

l

r2

v1

l

lc

lcl

v1

r1

r1

r1

r2

2

vc2

vc1

θ

Figur 8.15: Principtegninger af delrute med cirkelbue. Til venstre et eksempel hvor robot-ten kører forskellig vej i de to cirkler, og til højre et eksempel hvor robotten kører sammevej i de to cirkler.

Radius for de to cirkelbuer sættes i programmet til samme radius, men i de føl-gende formler anvendes to forskellige radiuser, så et mere generelt udtryk opnås.

De parametre, der ønskes bestemt, er længden af de to cirkeludsnit, der skalkøres ved hvert fikspunkt, ��� og ��� , og desuden længden af det lige linjestykke,Ï .

Udregningerne er forskellige afhængigt af, om robotten passerer cirklerne isamme eller modsatte retning, som det kan ses på figur 8.15.

Når robotten passerer cirklerne i forskellig retning, beregnes først vinklen afÏ . Dette gøres ved at parallelforskyde linjen, så det ene endepunkt er centrum foren af cirklerne, i dette tilfælde ved ��� . Herved opstår en retvinklet trekant, hvor

66

Page 81: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 8. PC-SOFTWARE

længden af 1. katete er summen af cirklernes radiusser og længden af hypotenu-sen, Ï�� , er afstanden mellem cirklernes centrum. Udfra disse beregnes længden af2. katete, som svarer til længden af det lige linjestykke, Ï . Følgende formel anven-des: � Ï � Á ó � Ï � � Ù õ ¼�$ Ú ÷ $ Ù À Ù (8.7)

Ligeledes kan vinklen, � , mellem hypotenusen og 2. katete beregnes:

� ÁûúfüTý����iÿ � $ Ú ÷ $ Ù� Ï � � � (8.8)

Herefter beregnes vinklen for Ï � , hvor centrum i cirklerne betegnes ¼vª Ú ��� Ú À og¼vª Ù ��� Ù À :ù Ï � Á ú�üTýcþcú�ÿ � � Ù õ � Úª Ù õ ª Ú�� (8.9)

I tilfældet på figuren kan vinklen for Ï beregnes ud fra de to ovennævnte vink-ler:

ù ϾÁ ù Ï � õ � (8.10)

Nu kan vinklerne, � � Ú og � � Ù , for de to cirkeludsnit bestemmes, vha. vinklerne,���nÈ?à §�� ÉOÃ�Ì Ú og ���nÈ?à §�� ÉOÃ�Ì Ù , der betegner vinklerne for vektorerne i fikspunkterne:

� � Ú Á ù Ï õ ���zÈ!à §�� ÉOÃ�Ì Ú (8.11)� � Ù Á����nÈ!à §�� ÉpÃ�Ì Ù õ ù Ï (8.12)

Længderne, Ï � È�ÆVÃTÍ �� Ç § É È�Ì Ú og Ï � ÈÊÆ�ÃTÍ � Ç § ÉoÈÊÌ Ù , for de to cirkeludsnit er da:

Ï�� È�Æ�ÃTÍ �� Ç § É È�Ì Ú Á � ��� Ú"! $ Ú �(8.13)Ï�� È�Æ�ÃTÍ �� Ç § É È�Ì Ù Á � ��� Ù ! $ Ù �(8.14)

På lignende vis kan længderne for cirkeludsnittene og den lige linje beregnes,når cirklerne gennemkøres i samme retning.

67

Page 82: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

8.2. RUTEPLANLÆGNING OG KORRIGERING

8.2.4 Tilbagemelding

Placering at tilbagemelding

For at der kan korrigeres ud fra billedanalysen skal robotten melde tilbage pået tidspunkt lige før den har udført delruten. Dette punkt indsættes sammen medstrækningerne i delruten. Tilbagemeldingspunktet indsættes efter at strækningernei delruten er beregnet, og indsættes ud fra tilbagemeldingstiden. Tilbagemelding-stiden er den tid det antages at robotten er om at svare tilbage til pc’en, sam-menlagt med den tid det tager for pc’en at beregne en ny delrute. Tiden det tagerat køre delstrækning kan beregnes ud fra den ønskede hastighed og længden påstrækningen. Ved at sammenligne disse tider kan tilbagemeldingspunktet findes.Den strækning der indeholder tilbagemeldingspunktet deles op i to strækninger,mellem de to strækninger er tilbagemeldingspunktet placeret.

Korrigering ud fra tilbagemelding

Når pc’en modtager en tilbagemelding skal der ske en sammenligning, mellemdet forventede tilbagemeldingspunkt og det målte punkt fra billedanalysen. Ud fradenne sammenligning skal et korrigeret slutpunkt beregnes, således at den næstedelrute kan starte i dette punkt, som beskrevet i afsnit 3.4.2.

Det antages at risikoen, for at robotten kører i den forkerte retning, sker istarten af delruten. Det antages endvidere at fejl, i den længde robotten kører, erjævnt fordelt over hele delruten.

Ud fra disse antagelser udregnes endepunktet, ved at betragte punkterne somvektorer med startpunkt i startfikspunktet. De tre punkter er det forventede ende-punkt, det forventede tilbagemeldingspunkt og det målte tilbagemeldingspunkt.Udfra disse vektorer kan en korrigeret delrute beregnes.

8.2.5 Marginkontrol

Styringen af robotten er designet, således at korrigeringen kun foregår når robottenmelder tilbage, i tilbagemeldingenspunkterne. I tilfælde af, at der er sket en fejlet sted i systemet, og robotten dermed har fået en forkert rute at køre efter, erdet nødvendigt at indføre en løbende kontrol af, at den ikke kører ind i nogle afforhindringerne. I tilfælde af at den kommer på afveje, skal der sendes et nødstoptil robotten.

Til at håndtere dette skal der oprettes et kort. Dette kort skal have en præcisionpå en millimeter, og skal indeholde oplysninger om hvilke koordinater forhindrin-gerne og en ønsket sikkerhedmargin omkring dem, fylder. Det illustreres lettestved et binaertbillede, hvor hver pixel repræsenterer et område på 1x1 mm. Der

68

Page 83: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 8. PC-SOFTWARE

hvor forhindringer og sikkerhedsmarginerne er, er pixelværdien høj og ellers erden lav.

Når billedanalysen opdaterer koordinatorne for Askebot, skal koordinaternekontroleres af marginkontrollen. I tilfælde af at massemidtpunktet for Askebotbefinder sig inden for sikkerhedsmarginen eller forhindringen sendes der et nød-stop til robotten, og systemet skal nu beregne en ny rute.

8.3 Brugerinteraktionen

Interaktionen mellem brugerfladen og brugeren kan deles op i forskellige typer.Præsentation af data, og interaktion med systemet. Præsentationen af data ind-holder kortet, statistikken samt loggen. I interaktionen findes den manuelle ogautomatiske styring.

Selv placeringen af de enkelte dele er blevet designet i Glade og kan ses i figur8.16

Figur 8.16: Designet af brugerfladen.

8.3.1 Kortindtegning

Kortindtegningen er en af de primære funktioner i brugerflade. Denne giver etgodt værktøj i forbindelse med debugging, desuden giver det brugeren mulighedfor at kontrollere at robotten følger den planlagte rute.

Kortindtegningen designes, således at den selv sørger for at hente oplysningerfra objekterne: bane, muligeStraekninger og rute. Endvidere skal der skaleresmellem de koordinater som elementerne har i virkeligheden, og dem de har påkortet. Dette forhold afhænger af størrelsen på kortindtegningsområdet.

69

Page 84: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

8.3. BRUGERINTERAKTIONEN

8.3.2 Manuel og automatisk styring

Det skal fra styringen være muligt at styre robotten manuelt. Der skal derfor pla-ceres taster på brugerfladen til at håndtere at robotten kører frem, tilbage, drejertil venstre og højre. Disse taster skal forbindes til funktioner der sørger for at deønskede ordrer bliver udført.

8.3.3 Statistik

Denne tråd skal sørge for at hente omlysninger fra radiokommunikationen omhvor mange pakker der er blevet sendt, modtaget og gensendt. Dette vises på bru-gerfladen som antal sendte og modtagede pakker. Antallet af pakker der er blevetgensendt vises som antal og som en procentsats af antallet af sendte pakker.

Der skal også sendes en forespørgsel engang hvert 10. minut til robotten for atse bateristatus. Denne vises i som en bjælke hvor 9 Volt er �O����# og 5 Volt er ��# .

Endvidere skal banen undersøges for hvor mange krus der er taget. Desudengemmes hvormange krus Askebot har indsamlet, og ud fra de to oplysninger kandet beregnes hvad scoren er.

Når der trykkes på start, og når starten af en rute sendes til robottens, skalstatistikken have det oplyst. Derefter startes en timer, som holder styr på hvornårder sendes en ny rute til robotten, derudfra kan det beregnes hvor lang tid det hartaget at indsamle krus, samt hvor lang tid hele systemet har kørt.

Tråde, der påvirker statistikken kalder tilhørende funktioner i brugerfladensom opdaterer statistikken.

8.3.4 Log

I loggen, skal der designes en funktion, som kan benyttes overalt i programmet tilat skrive tekst i logfeltet.

70

Page 85: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

9RobottenI dette kapitel beskrives hvordan robottens hardware og kerne er opbygget. Desu-den beskrives hvordan reguleringen i robotten fungerer.

9.1 Hardware

I dette afsnit beskrives opbygningen af hardwaren implementeret i robotten ogbasestationen tilkoblet pc’en. Først analyseres kravene til hardwaren og herefterudføres det endelige hardware-design.

9.2 Indledende overvejelser

Robottens hardware har til formål at styre de tre motorer, der sørger for robottensfremdrift og styrer gribearmen samt at aflæse batteritilstanden. Hardwaren skalgive mulighed for, at der kan sendes informationer mellem robotten og basesta-tionen v.h.a. radiobølger.

9.2.1 Motorkontrol

For at opfylde kravene til robottens manøvrering, i henhold til afsnit B, er detnødvendigt, at hastigheden på de to fremdriftsmotorer kan styres uafhængig afhinanden.

For at kontrollere en DC-motors hastighed vil en variabel spændingsforsyningsædvanligvis være nødvendig. Ved variering af spændingsforsyningen opstår pro-blemet, at motorens moment svækkes ved lave spændinger, og at reguleringenderfor ikke kan klare lave omdrejningstal.

Derfor anvendes pulsbreddemodulering (PWM) til regulering af motorhastig-heden. PWM fungerer ved at generere et firkantsignal med variabelt ON-OFFforhold, hvor den gennemsnitlige ON-tid kan reguleres fra 0-100%, se figur 9.1.Hovedfordelene ved PWM-regulering i forhold til en variabel spændingsforsy-ning ved resistive belastninger er, at virkningsgraden er betydeligt højere samtmomentet er højere ved lave hastigheder.

71

Page 86: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

9.3. OPBYGNING AF ROBOTHARDWARE

tDUTY

tPERIODE

VCC

0

VCC

0

tDUTY

tPERIODE

Figur 9.1: Diagrammer over PWM med forskellige duty-cycles

For at modvirke fysiske ulineariteter, som f.eks. ulige belastning af hjul, skalder, for at opnå en præcis regulering af fremdriftsmotorerne, foretages målingeraf disses omdrejningshastighed.

Desuden skal det være muligt at detektere hvornår gribearmen er i en af yder-positionerne (helt åben eller helt lukket).

9.2.2 Radiokommunikation

Radiokommunikationen mellem robot og pc skal foregå i det licensfrie frekvens-bånd på 433 MHz. Da der skal implementeres tovejskommunikation skal båderobot og basestation være i stand til at sende og modtage signaler. Basestationenskal tilkobles pc’ens 9-benede serielport.

9.3 Opbygning af robothardware

I det følgende beskrives de enkelte dele af robothardwaren. Et blokdiagram overopbygningen kan ses på figur 9.2.

9.3.1 Microcontroller

Det vælges at opbygge robothardwaren med en PIC16F877 microcontroller somden centrale processor. Dette er en 40-bens microcontroller med indbygget RAM

72

Page 87: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 9. ROBOTTEN

MikrodatamatPIC16F877

H-bro L293D

2

Styresignaler tilvenstre motor

2

Styresignaler tilhøjre motor

Venstre motorVenstre

rotations-sensor

Højre motor2 Højre

rotations-sensor

H-bro L293D

2

Styresignaler tilgribearmsmoto

r

Gribearmsmotor

RadiomodulBiM2-433

3

TX ogstyresignaler

2

RX ogCarrierDetect

Spændings-konverterMAX232

Anvendes tiloverførsel af

programmel frapc til PIC

2

2

Stik til pc

Figur 9.2: Blokdiagram over opbygningen af robottens hardware.

PIC16F877

VCC

MAX232A

RS.232Pc-stik

TX

RX

MCLR

XTAL1

XTAL2

C5

R1

Q1

C3

C4

Figur 9.3: Principdiagram over minimumsopkoblingen af microcontroller med bootloa-der.

73

Page 88: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

9.3. OPBYGNING AF ROBOTHARDWARE

og FLASH-programhukommelse. Via 33 af kredsens ben, som hver kan initialise-res som ind- eller udgange, kan der interfaces til diverse periferikomponenter. Enrække af disse ben har desuden specielle funktioner, herunder kan 8 ben anvendessom A/D-konvertere, 2 ben kan fungere som pulsbreddemodulerede udgange og2 ben har forbindelse til en intern USART (Universal Synchronous AsynchronousReceiver Transmitter).

PIC’en opkobles med et 20 MHz krystal, hvilket giver en instruktionsfre-kvens på 5 MHz. Desuden kobles PIC’ens reset-pin,

­$#&%e�('�) µ�µ med en pull-up-modstand, en kondensator og et ringetryk som vist på figur 9.3. Ringetrykketgør det muligt at resette PIC’en manulet. Kondensatoren sikrer at PIC’en holdesi reset-tilstand, indtil spændingsforsyningen er stabil. En sådan funktion er ind-bygget i PIC’en, men ifølge diverse applikationsnoter er denne funktion ikke altidstabil.

I PIC’en brændes et bootloader-program, der gør det muligt at overføre pro-grammer fra en PC’s seriel port til PIC’en via dennes indbyggede USART. PIC’enopkobles med en MAX232-kreds, der konverterer PIC’ens spændingsniveauer (0V lav, 5 V høj) til serielportens (10 V lav, -10 V høj) [PIC micro and C, 2002].

9.3.2 Motorkontrol

I henhold til regelsættet, se appendiks A, er de anvendte motorer standard LEGO9 volts motorer. Disse styres af PIC’en via H-broer af typen L293D, se figur 9.4.H-broerne anvendes, da PIC’ens spændingsniveauer er på 0 og 5 V og motorerneskal drives af 9 V. Desuden kan PIC’en ikke levere den mængde strøm, som mo-torerne skal bruge. Et principdiagram for en H-bro ses på figur 9.5. Vha. af deTTL-kompatible indgange, indgang 1 og 2, kan de to kontakter styres således, atmotoren kan drives i begge retninger (indgangene har forskelligt logisk niveau) ogbremses (indgangene har samme logiske niveau). De anvendte H-bro-kredse harto H-broer indbygget.

De to fremdriftsmotorer styres vha. PIC’ens to pulsbreddemodulerede ud-gange, således at motorernes hastighed kan reguleres.

Til hver af fremdriftsmotorernes aksler kobles en LEGO-rotationssensor, såomdrejningshastigheden kan måles. En sådan sensor aflæses ved først at tilføresensoren en spænding på 8 volt i 3 ms. Herefter tilføres 5 V gennem en 10 k * mod-stand hvorved en spændingen over sensoren angiver sensorens vinkelposition. Enomgang er inddelt i 16 vinkler, der angives vha. fire spændinger på henholdsvis 1,8V, 2,6 V, 3,8 V og 5,1 V som vist på figur 9.6 [MindStorms RCX Sensor Input Page, 2002].Eksperimentielt er det fundet at spændingen på 8 V kan erstattes af en spænding på5 V, hvorved de forskellen mellem de angivede spændingsniveauer formindskes.Sensorerne aflæses med opkoblingen vist på figur 9.4. Først anvendes benet somen udgang, der sættes logisk høj i 3 ms, hvorved en spænding på 5 V tilføres sen-

74

Page 89: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 9. ROBOTTEN

PIC16F877

L293D

1A2A3A4A

1Y2Y

3Y4Y

RC0CCP1CCP2

RC3

L293D

1A2A 1Y

2Y

RC4RC5

AN0AN1

H

V

G

VCC

R2 R3

AN7

R4

Figur 9.4: Principdiagram over opkoblingen af mikrodatamaten med H-broer og rota-tionssensorer.

Kontakt

Indgang 1 Udgang 1

Kontakt

Indgang 2Udgang 2

Motor

0 V

9 V

Figur 9.5: Principdiagram for en H-bro tilkoblet en motor.

75

Page 90: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

9.3. OPBYGNING AF ROBOTHARDWARE

soren. Herefter anvendes benet som højimpedant indgang med A/D-konvertering,hvorved sensoren tilføjes 5 V gennem modstanden, og spændingen over sensorenkan aflæses vha. A/D-konverteren.

1

2

3

4

5

Volt

90 180 270 360 450

Grader

én rotation

Figur 9.6: Graf over de spændingsniveauer der kan måles på en LEGO-rotationssensorved forskellige vinkler [MindStorms RCX Sensor Input Page, 2002].

Da det skal være muligt at detektere, hvornår gribearmen er i en af ydrepo-sitionerne, placeres en 5 * modstand i serie med 9 V forsyningen til H-broen,der driver gribearmens motor. Ved at måle spændingen over denne modstand meden af PIC’ens A/D-konvertere, kan det måles, hvor meget strøm motoren brugerog herved, hvor belastet motoren er. Motoren bremses, når gribearmen er i en afydrepositionerne og herved belastes den mere, end når armen bevæger sig frit. Pådenne måde kan det detekteres, hvornår gribearmen er i en af yderpositionerne.

9.3.3 Radiokommunikation

PIC16F877

BIM2 - 433

RXSELECTTXSELECTTXDRXDCD

RB4RB3RB2RB1RB0

ANT

Figur 9.7: Principdiagram over opkoblingen af mikrodatamaten med radiomodulet.

Til radiokommunikationen anvendes et Radiometrix BiM2-433 transceiver-modul. BiM2-433 er et tovejs transciever-modul, der anvender FM (Frekvens Mo-

76

Page 91: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 9. ROBOTTEN

dulation) i det licensfrie bånd på 433 MHz. Modulet har en rækkevidde på 50 me-ter indendørs og 200 meter udendørs og kan sende med hastigheder op til 64 kbps.To indgange, + � ®p°¯Ï¶°�,K´ og

��� ®p°¯ÏH°�,T´ , styrer modulets funktion i henhold til ta-bel 9.3.3. Data sendes vha. indgangen + �.-

og modtages vha. udgangen���.-

.BiM2 er desuden forsynet med udgangen Carrier Detect,

#/-, der trækkes lav, når

modulet detekterer en bærebølge.+ � ®p°¯ÏH°�,T´ � � ®p°¯ÏH°�,T´ Funktion1 1 Power down1 0 Modtager anvendes0 1 Sender anvendes0 0 Testtilstand

Tabel 9.1: Funktioner for BiM2-radiomodulet.

I robotten tilkobles + � ®p°¯ÏH°�,K´ , � � ®p°¯ÏH°�,T´ , + �.-og

���.-til fire af PIC’ens

digitale ben, se figur 9.7.#&-

tilkobles PIC’ens pin�&0 � '�132 + , der fungerer som

en interruptpin. Herved kan der genereres et interrupt, når radiomodulet modtageren bærebølge fra basestationens radiomodul.

9.3.4 Spændingsforsyning

GND

VIN VOUT

7805

+9V C2 C1 D1 D3

R6

+5V

AN7

R5

R8

(b)(a)

+9V

Figur 9.8: Principdiagram over opkoblingen af robottens strømforsyning.

Spændingsforsyningen til robotten opbygges af seks 1,5 V AA batterier, derkobles i serie, så der opnås en forsyning på 9 V, som kobles til H-broerne, der dri-ver motorerne. De anvendte batterier har en kapacitet på 2.3 mAh [Varta batterier, 2002].Der anvendes en spændingsregulator af typen 7805, som ud fra 9 volts forsynin-gen genererer en spænding på 5 V til de resterende kredse, se figur 9.8.a. Dioden

77

Page 92: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

9.4. DESIGN AF BASESTATION

sikrer, at en forkert polarisering ikke får indvirkning på de tilkoblede kredse, oglysdioden visualiserer, om robotten er tændt. Udover de viste afkoblingskondensa-torer er der placeret en 100 nF afkoblingskondensator ved hver kreds og en 100 4 Ftil 9 V forsyningen ved hver af H-broerne, så pulsbreddemodulations indvirkningpå spændingsforsyningen mindskes.

Fra stel til 9 V kobles en spændingsdeling bestående af to modstande. Spæn-dingen over den ene af modstandene måles vha. en af PIC’ens A/D-konvertere, ogherved kan batterispændingen beregnes. Spændingsdelingen ses på figur 9.8.

9.4 Design af basestation

MAX238

BIM2 - 433

CD

RXD

TXD

RXSELECT

TXSELECT

Receive Data

Transmit Data

Data Terminal Ready

Request To Send

ANT

Pc-stik

Figur 9.9: Principdiagram over opkoblingen af basestationen.

I basestationen anvendes som i robotten et Radiometrix BiM2-433 transceiver-modul. Tilkoblingen mellem BiM2-modulet og PC’ens serielport foregår via enMAX232-kreds, der konverterer BiM2-modulets spændingsniveauer (0 V lav, 5 Vhøj) til serielportens (10 V lav, -10 V høj), se figur 9.9. + � ®p°¯Ï¶°�,K´ og

��� ®p°¯ÏH°�,T´tilkobles henholdsvis til serielportens Data Terminal Ready og Request To Send,der begge er udgange, som kan styres vha. programmel fra PC’en. + �.-

tilkoblesserielportens Transmit Data, der anvendes til at sende data.

Serielportens Receive Data skal i følge RS232-standarden trækkes høj, når derikke sendes data til porten. Dette gøres ved at koble tre signaler til en OR-gate.Det ene er

� � ®p°¯Ï¶°�,K´ , som pc’en sætter høj, når der ikke skal modtages data, detandet er

#&-, der er aktiv, når der detekteres en bærebølge og det tredje signal

er selve datasignalet fra� �5-

. Når der detekteres en bærebølge samtidig medat pc’en har sat

��� ®p°¯Ï¶°�,K´ lav, og der modtages et lavt signal på� �.-

trækkesserielportens Receive Data lav. Når der sendes et højt signal trækkes serielportensReceive Data høj. Er der ingen bærebølge, eller pc’en har sat

� � ®p°¯ÏH°�,K´ høj, vilder ligeledes modtages et højt signal.

Til spændingsforsyningen benyttes en spændingsregulator af typen 7805, såbasestationen kan forsynes med en ekstern jævnstrøms strømforsyning på 5-35 V.Opkoblingen er som vist på figur 9.8.b.

78

Page 93: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 9. ROBOTTEN

9.5 Kerne

I robottens kerne indgår en række funktioner, der skal prioriteres efter hvor tids-kritiske de er. De forskellige funktioner er i prioriteret rækkefølge:

modtagBesked Når der modtages en bærebølge, detekteres denne af radiomodu-let, hvilket får CD-benet(carrier detect) til at gå lavt.

aflaesSensorer Hjulsensorerne skal aflæses tit nok, til at der kan bestemmes enhastighed.

korriger Regulerer hjulenes hastighed så de passer sammen. Jo oftere der bliverreguleret, des mere præcis bliver korrigeringen.

behandlBesked Når der er modtaget en beskedpakke fra pc’en skal det kontrol-leres, om den blev modtaget korrekt.

udfoerKommando Køres når der skal udføres en ny kommando, hvis den køresfor sjældent vil robotten køre for langt eller stå stille for længe.

sendSvar Når der er modtaget en korrekt besked skal der sendes en svarBeskedtil pc’en. Der er også brug for at andre beskeder kan sendes til pc’en, f.eks.batteristatus.

Robottens kerne er bygget op, så de mest tidskritiske funktioner er interrupt-styret, mens de mindre tidskritiske kører i en main-løkke, hvor de enkelte funktio-ner har forskellig prioritet.

Det er valgt at interruptrutinen indeholder modtagBesked og aflaesHjulSenso-rer, mens main løkken indeholder korriger, behandlBesked, udfoerKommando ogsendSvar.

9.6 Regulering

Da robotten skal kunne køre længere delruter uden kontakt til pc’en er det vigtigtat den udfører de givne ruter med en vis præcision. Derfor bruges de monteredehjulsensorer til at regulere robotten efter. Der skal laves en regulering, der bremserdet ene hjul, hvis dette er ved at komme foran.

Robotten får tilsendt en rute, som består af en længde og en ønsket hastighedjvf. protokollen, appendiks D. Ud fra disse parametre dannes en maksimal duty-cycle,

) É § ÃTÍ5Ì , og en længde, ÏiÆ�Í § Ì , for hvert hjul. Ved at tælle længden ned hvergang der sker et skift på hjulsensorerne kan det kontrolleres hvornår delruten er

79

Page 94: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

9.6. REGULERING

færdigkørt. Desuden kan det afgøres om hjulene følges ad ved at udregne en tid,´ Æ�Í § Ì , for hvornår hjulene når enden af ruten.

´VÆ�Í § Ì Á ÏiÆVÍ § Ì) É § ÃTÍ5Ì (9.1)

Denne tid vil være identisk, hvis hjulene følges ad. Ellers multipliceres for-skellen med en konstant faktor, hvilket gør at der reguleres mere hvis forskellener stor. Dette princip minder om en P-regulator.

80

Page 95: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

10KommunikationI dette kapitel beskrives designet af de protokoller, der bruges til kommunikationmellem de fysiske enheder. Mellem SGi’en og pc’en er der kommunikation overethernet med TCP/IP, og mellem robotten og pc’en kommunikeres over en radio-kanal. I afsnittet er ikke indsat talværdier for startbytes og lignende, disse kan sesi appendiks D. Afsnittet er opbygget, så det følger OSI(The Open Systems Inter-connect) modellen for opbygning af netværk. I kapitlet er [Tannenbaum, 1996] og[Ray, 1999] brugt som generelle kilder.

10.1 Open Systems Interconnection(OSI) reference-modellen

OSI-modellen er en referencemodel for, hvorledes data bør sendes mellem topunkter i et kommunikationsnetværk. Referencemodellen definerer 7 lag i en net-værksprotokol. Det kan ses opstillet grafisk på figur 10.1.

Til hvert lag er knyttet en protokol, der gør, at de to enheder kan kommunikeremed hinanden på det samme lag. Dette giver et større overblik, da der kan kiggespå de enkelte lag seperat. På hver side af kommunikationskanalen implementereskommunikationen mellem lagene, og dette skal ikke nødvendigvis implementerespå samme måde, hvis bare protokollen på de enkelte lag er ens

10.2 Radiokommunikation

10.2.1 Applikations-laget

Til robotten kan sendes en række kommandoer med tilhørende parametre. Dissekommandoer kan være strækningtyper, kommandoer til gribearmen, ønske omtilbagemelding eller ønske om batteristatus. I tabel 10.1 kan de forskellige kom-mandoer ses med deres tilhørende parametre.

Robotten sender batteristatus som et ’B’, efterfulgt af værdien, og en tilbage-melding som ’t’.

81

Page 96: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

10.2. RADIOKOMMUNIKATION

Figur 10.1: OSI-modellens lag.

Kommando Parametre Betydning’L’ Hastighed, distance Kør lige linje.

Hastighed på højrehjul, hastighed på’K’ venstre hjul, længste distance Kør buet kurve.’R’ hastighed, distance Roter.’S’ Ingen parametre Stop.’N’ Ingen parametre Nødstop.’U’ Ingen parametre Gribearm ud.’I’ Ingen parametre Gribearm ind.’B’ Ingen parametre Send batteristatus.’T’ Ingen parametre Send tilbagemelding.

Tabel 10.1: Kommandoer, der kan sendes til robotten fra pc’en.

82

Page 97: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 10. KOMMUNIKATION

10.2.2 Præsentations-laget

Præsentations-laget bruges til at repræsentere data, på den måde applikations-laget forventer at modtage dem. I applikations-laget på pc’en opgives distancerog hastigheder på en måde, og i robotten opgives disse data på en anden måde.Det vælges at sende alle data på den måde, som de er opgivet i robotten.

Lige linje

Parametrene til en lige linje er en hastighed og en distance. I pc’en er hastighedenopgivet i mm/s, og hvis hjulet skal køre baglæns er hastigheden negativ. I robottener hastigheden opgivet i den værdi, pulsbreddemodulatoren skal have. Mellem deto enheder sendes hastigheden, som en værdi mellem -127 og 128. -127 er denhurtigste hastighed, hvor hjulet kører baglæns, og 128 er den hurtigste, når hjuletkører hurtigst fremad. Distancen er, i pc’en, opgivet som mm, og i robotten somantal trin på rotationssensoren.

Roter

I roter opgives en hastighed og en distance. I pc’en opgives kun hvilken vej, derskal roteres. I præsentations-laget tilføjes en standardhastighed, inden hastighedensendes til robotten. Robotten tolker hastigheden som hastigheden for højre hjul,og venstre hjul får så samme hastighed, men med den modsatte retning. I pc’enopgives distancen i radianer for den vinkel, der skal roteres. Dette ændres til trinpå rotationssensoren og sendes til robotten.

Kurve

I pc’en opgives en kurve som en hastighed for det hurtigste hjul i mm/s, en radiusi mm for den cirkelbue robotten skal følge og en distance i mm. I præsentations-laget omregnes disse værdier, så robotten ved en kurve vil modtage en hastighedfor hvert hjul og distancen for det hurtigste hjul.

10.2.3 Sessions-laget

Sessions-laget giver brugere, på forskellige maskiner, mulighed for at oprette ses-sioner mellem sig. Sessions-laget sørger for at flere forskellige brugere kan loggesig ind på en pc’en, med f.eks. ftp eller ssh. I protokollen mellem pc’en og robot-ten er der ikke et sessionslag, da der ikke er nogen egentlig session.

83

Page 98: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

10.2. RADIOKOMMUNIKATION

10.2.4 Transport-laget

Systemet er bygget op, så pc’en sender kommandoer i beskedpakker til robotten,og robotten besvarer kommandoerne i en svarpakke. Når pc’en har sendt en be-skedpakke afsted, venter den på svarpakken, der bekræfter, at beskedpakken ermodtaget korrekt. Er svarpakken ikke modtaget korrekt efter et vist stykke tid,sendes beskedpakken ud igen. Hvis pc’en ikke modtager den svarpakke robottenhar sendt, og derfor sender beskeden igen, vil robotten modtage samme besked togange. Derfor forsynes beskeder og svar med et løbenummer. Når robotten mod-tager en besked undersøger den om løbenummeret er nyt. Hvis løbenummeret erkorrekt, sender robotten svar tilbage med det samme løbenummer og udfører kom-mandoen. Hvis robotten modtager den samme besked to gange, sender den beskedtilbage med det samme løbenummer, men udfører kun opgaven en gang. Da derkun er brug for at vide, om det er samme besked eller en ny besked, er det nokat bruge en bit på løbenummeret [Tannenbaum, 1996, s.200]. Princippet er vist ifigur 10.2.

Computer AskebotBesked (0)

Svar (0)

Besked (1)

TimeoutBesked (1)

Svar (1)

Besked (0)

Svar (0)

Besked (0)

Svar (0)

Timeout

Tid Tid

Figur 10.2: Pc’en sender beskeder, og robotten sender svar tilbage. Hvis beskeder ellersvar ikke når frem, sender pc’en beskeden igen.

Beskedpakkerne indeholder en række kommandoer med tilhørende parametre.

84

Page 99: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 10. KOMMUNIKATION

Som første bit i den første kommando sendes løbenummeret, der enten er 0 eller 1.Svaret er den første kommandobyte med løbenummeret. Hvis robotten modtagerden samme besked to gange, udfører den kun kommandoen en gang, men senderto svar med det samme løbenummer. Når pc’en beder robotten om tilbagemeldingeller batteristatus, sendes disse tre gange med samme løbenummer, og det antagesat pc’en vil modtage svaret korrekt en af gangene. Modtages beskeden flere gange,vil pc’en i transport-laget kun sende det ene svar videre pga. løbenummeret. Hvissvaret ikke modtages, kan pc’en spørge igen.

10.2.5 Netværks-laget

Netværks-laget varetager addressering af modtageren. Dette gøres ved at sende enstartsekvens, en synkroniseringssekvens og en startbyte inden beskeden sendes,og en stopbyte og en CRC-checksum efter beskeden.

Startsekvensen bruges til at initialisere radiomodulerne. Synkroniseringsse-kvensen bruges til at synkronisere modtageren, så ikke starter med at læse et vil-kåligt sted i byten, men læser bytene rigtigt. Startbyten bruges til adressering, ogstopbyten angiver, at der ikke er flere data. CRC-resten bruges som fejlkontrol.

CRC-kodning

For at kunne detektere, om den sendte besked blev modtaget korrekt, brugesCRC(cyclic redundancy code), der er en fejldetekterende kodning. Der er mangeforskellige måder at lave fejldetektion på, CRC-kodning har den fordel at to fejlikke kan ophæve hinanden, sådan som det er tilfældet hvis der kun kigges på pa-ritet.

Ved CRC tages den besked, der skal sendes og divideres med en binær værdi,som ved polynomiers division. Bitkombinationen betragtes som polynomier. F.eks.giver 10011 CRC-polynomiet � ! ½ Û ÷ � ! ½76�÷ � ! ½ Ù ÷8� ! ½ Ú ÷9� ! ½;: . For at divisionenkan udføres bitvist, erstattes minusoperationen af XOR, som vist i eksempel 10.1og 10.2. �O�<� =>�p���ÖÁ?���]$�°f®k´���O������<� (10.1)

�O��� =>�p�@� Á?���]$�°f®k´���O�<����<� (10.2)

85

Page 100: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

10.2. RADIOKOMMUNIKATION

Inden divisionen tilføjes beskeden et antal 0’er, som svarer til den højeste po-tens i det CRC-polynomium, der divideres med. 11001:101 vil give divisionen1100100:101, se beregningseksemplet i ligning 10.2.5. Af divisionen fås et resul-tat med en rest. Denne rest kaldes CRC-resten. CRC-resten har samme længdesom den højeste potens af polynomiet og som antallet af 0’er, der blev indsat.

CRC-division

11001:101

1100100:1011010110

1010111

10101001010010

000010

Når beskeden modtages, divideres den indkomne besked og CRC-resten meddet samme CRC-polynomium. Hvis beskeden er modtaget korrekt, vil resten fraden nye division være 0.

10.2.6 Datalink-laget

Datalink niveauet sørger for at gøre modtagne bytes tilgængelige for netværks-laget og sende bytes fra netværks-laget ved hjælp af det fysiske lag. Datalink-laget deler beskeden op i bytes ved afsendelse, og for hver modtaget byte udføresen simpel fejlkontrol (test af startbit og stopbit). Den serielle kommunikation ersat op som 1 startbit(0), 8 databit, 1 stopbit(1) og ingen paritetsbit. For at radio-modulerne bedre kan dekode signalet korrekt, manchesterkodes databytene indende sendes. Manchesterkodningen sørger for at der er en ligevægt mellem 0’er og1’er, så der altid sendes lige mange. Manchesterkodningen betyder at, et 0 sendessom en høj bit efterfulgt af en lav bit, og et 1 sendes som en lav bit efterfulgt af enhøj bit. Der skal altså sendes to bit, for at sende en databit. Dette betyder, at hverdatabyte deles op i to nibbles(4 bit), der manchesterkodes og sendes som to bytes.I figur 10.3 kan det ses, hvordan en databyte sendes.

86

Page 101: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 10. KOMMUNIKATION

Figur 10.3: Her ses hvordan en databyte sendes.

Mediumaccess-sublaget

På kanaler med flere sendere er mediumaccess sublaget tilføjet datalink-laget.Når der er flere, der sender på samme kanal, kan der opstå kollisioner, og detteskal der tages højde. Dette gøres i en Carrier Sense Multiple Access Protocol[Tannenbaum, 1996, s.250]. I denne protokole skal den enhed, der skal til at sende,undersøge om der allerede sendes et signal (ved at undersøge om der er en bæ-rebølge).

10.2.7 Det fysiske lag

I protokollen for det fysiske lag beskrives, hvordan signalerne sendes rent fysisk.Pc og robot kommunikere gennem en radiokanal, der oprettes ved hjælp af toradiomoduler(BIM2). Radiosignalerne er frekvensmoduleret med en bærebølgepå 433 MHz. Radiomodulerne kører med TTL-spændingsniveau. . Pc’en er koblettil radiomodulet gennem serielporten, der kører med RS-232-spændingsniveau, ogderfor foretages en spændingskonvertering, se afsnit 9.1. Det er valgt at køre meden baud-hastighed på 19200 baud.

10.3 Netværkskommunikation

10.3.1 Applikationslaget

Til dataoverførslen designes en simpel protokol til indkapsling af billeddata.

KRUS indeholder typebetegnelse, koordinat samt label på et enkelt krus

ROBOT indeholder typebetegnelse, hvilken robot, koordinat for massemidpunktog koordinat for robottens retning.

87

Page 102: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

10.3. NETVÆRKSKOMMUNIKATION

HJORNE indeholder typebetegnelse, hjørnetype, label samt koordinat for et en-kelt hjørne. Hjørner i et objekt sendes i rækkefølge mod uret.

CLEAR nulstiller netforbindelsen.

LUK lukker netforbindelsen.

10.3.2 Præsentationslaget

I SGI’en gemmes integers som big endian1, på pc’en gemmes integers som littleendian2. For at der kan overføres data mellem de to enheder, skal der vælges enfælles standard for rækkefølgen af byte. Det vælges at bruge Standard NetworkOrder, der big endian. Præsentations-laget på pc’en skal derfor konvertere integersmellem big endian og little endian, så applikations-laget modtager little endian, ogsession-laget modtager big endian.

10.3.3 Sessions-laget

10.3.4 Transport-laget

I systemet agerer billedanalysen server og styringen klient. Serveren initierer alkommunikation. Denne opbygning er valgt, da billedanalysen er den mest tids-kritiske proces. I dette projekt vælges TCP (Transmission Control Protocol) forat sikre en tilstrækkelig datasikkerhed i overførslem mellem SGI og PC. TCP eren forbindelses-orienteret protokol, hvilket betyder, at en forbindelse mellem toendepunkter holdes åbent indtil endepunkterne lukker dem. TCP sørger desudenogså for retransmission af tabte pakker.

10.3.5 Netværks-laget

Internet Protokollen (IP) er en protokol, der beskriver, hvordan data sendes fraeen computer til en anden. Hver computer på netværket har en unik adressse, deridentificerer den blandt computerne på nettet. IP er en ikke-forbindelsesorientereprotokol. Hver pakke, der sendes, opfattes derfor som en individuel dataenhed,uden relation til andre dataenheder.

1Mest betydende byte gemmes i det dataregister med den laveste adresse.2Mindst betydende byte gemmes i det dataregister med den laveste adresse.

88

Page 103: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 10. KOMMUNIKATION

10.3.6 Datalink-laget

Til kommunikation på datalink-laget er valgt ethernet, der er en af de mest brugteprotokoller i TCP/IP-LAN3. [Ray, 1999, s.24]. Her opdeles data i pakker, dersendes med en header, databytes og CRC-checksum. I headeren indgår destina-tionen, kilden og datatypen. De enkelte enheder i datalink-laget kendes ved de-res MAC-adresse (Medium Access Control adresser), der bruges til addresseringpå det lokale netværk. Der kan være op til 1500 databytes i hver pakke. CRC-checksummen bruges til fejlkontrol på datalink niveauet. Sker der fejl i transmis-sionen af en pakke, sendes pakken igen.

Mediumaccess sublaget

I ethernet protokollen er der flere enheder, der sender på samme kanal. I pakkerneer inkluderet en destination og en kilde, disse opgives som MAC-adresser(MediumAccess Control adresser). Når der skal sendes data i ethernet protokollen, testesførst, om der allerede er en datapakke, der er ved at blive transmitteret. Når kana-len er ledig sendes datapakken afsted. Hvis to enheder venter på at kunne sendedatapakker afsted, mens en tredje enhed er i gang med at sende, vil de beggesende deres pakke afsted når kanalen bliver ledig. Dette resulterer i at pakkernekolliderer. Herefter venter begge enheder et tilfældigt stykke tid, og prøver så igen,på denne måde vil datapakkerne sendes på forskellige tidspunkter, og vil dermedkunne transmitteres uden kollision.

10.3.7 Det fysiske lag

På det fysiske lag er pc’en og SGI’en forbundet med UTP-kabel til et switchet100Mb netværk.

3Local area network

89

Page 104: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

Del III

Implementering

90

Page 105: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is
Page 106: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

11ImplementeringI forbindelse med dette projekt har der ikke været ressourcer til at få implementeretalle dele af systemet. I dette kapitel vil der kort blive gennemgået hvilke forskelle,der er mellem det designede system og det endelige system. Til slut gennemgåsstatus for det samlede system.

11.1 Implementering af systemet på SGI’en

Region of interest Funktionen, der skal indskrænke områderne, der skal analy-seres, til kun at være omkring de to robotter og krusene, er ikke implemen-teret. I stedet leder billedanalysen hele billedet igennem hver gang robotter-nes position skal opdateres. Dette gør systemet langsomt, hvis der er mangeelementer på banen.

Billedtransmission Funktioner til transmission af billeder til pc’ens brugerfladeer ikke implementeret.

Koden, som er skrevet til SGI’en, kan findes på cd-rom’en i direktoriet “kode/SGI/”

11.2 Implementering af systemet på pc’en

I forbindelse med implementeringen er det valgt at benytte en case-dreven mo-del, hvilket vil sig, at dele af designet implementeres og testes. Når det virker,implementeres endnu en del af designet.

Følgende dele mangler at blive integreret og testet:

Statistik Funktioner til udlæsning af statistik på brugerfladen er skrevet, men an-vendes ikke i det samlede system.

Log Denne funktion er programmeret, men giver fejl under integrationen medresten af systemet.

Styring med piletaster Der ikke implementeret manuel styring med piletaster,men i stedet anvendes fire knapper på brugerfladen. Et screen-shot af dennuværende brugerflade kan ses på figur 11.1.

92

Page 107: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 11. IMPLEMENTERING

Oprettelse af knudepunkter Hvis et krus står indenfor en marginforhindring,oprettes der ikke punkter, hvorfra kruset kan tilgås. Dette kan resultere i,at robotten vil køre direkte over forhindringen for at hente kruset.

Bestemmelse af den korteste rute Dette gøres ved at benytte Dijkstras 1:1 algo-ritme for hvert krus og derefter vælge den korteste rute. Der er således ikkeimplementeret en 1 til mange algoritme.

Cirkelbuer I funktionen, som konverterer ruter mellem fikspunkter til linier, buerog rotationer, er konverteringen til cirkelbuer programmeret, men ikke fuldtfunktionsdygtig. Derfor anvendes i øjeblikket kun linier og rotationer tilmanøvrering af robotten

Marginkontrol Marginkontrollen er ikke implementeret i systemet.

Koden, som er skrevet til pc’en, kan findes på cd-rom’en i direktoriet “kode/pc/”

11.3 Implementering af systemet på robotten

På robotten er alle dele, som er omtalt i designafsnittet, implementeret.Koden, som er skrevet til robotten, kan findes på cd-rom’en i direktoriet “kode/robot/”

11.4 Implementering af kommunikation

Kommunikationen mellem pc og robot er implementeret som beskrevet bortset fraCRC-tjek, som ikke er implementeret.

11.5 Status for det samlede system

Det er lykkedes at få billedanalysen til at detektere elementer, klassificere disseog videresende de specificerede data til pc’en. Pc’en kan ud fra disse finde ru-ter til alle knudepunkter og udvælge en rute til det nærmeste krus. Ud fra rutengenereres delstrækninger, der videresendes til robotten. Robotten kan sende tilba-gemeldinger til pc’en, når en besked er modtaget, og når den bliver bedt om detmed tilbagemeldingskommandoen. Robotten kører de tilsendte strækninger, menden samlede præcision i systemet er ikke stor nok til, at krusene på banen kanindsamles. Det er observeret, at robottens styring er upræcis under accelerationog nedbremsning, hvilket anslås at være en hovedårsag til, at krusene ikke kanindsamles.

93

Page 108: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

11.5. STATUS FOR DET SAMLEDE SYSTEM

Figur 11.1: Screen-shot af den nuværende brugerflade.

94

Page 109: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

Del IV

Test

95

Page 110: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is
Page 111: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

12AccepttestI det følgende beskrives udførsel og resultater fra accepttesten, der er udført i hen-hold til accepttestspecifikationen beskrevet i kapitel 2. Der henvises til appendiksE, hvor mere detaljerede testbeskrivelser giver indblik i systemets ydeevne.

12.1 Test for stillede krav

I dette afsnit beskrives, hvorvidt kravene til systemets ydelse, fastsat i kravspeci-fikationen afsnit E.4, kan opfyldes.

Billeder pr. sekund Det vurderes, ud fra afsnit E.4, at billedanalysen ikke over-holder de opstillede krav i kravspecifikationen, på behandling af 25 billederper sekund. Som det ses af testen, er systemet ved et realistisk driftscenariei stand til at behandle 7,1 billede per sekund.

Præcision Ud fra afsnit E.3, kan det anslåes, at præcisionen af hjørnedetektio-nen er tilstrækkelig høj. Det ses af måleresultaterne, at afvigelserne variererover gulvfladen, også tæt på kameraet, og det kan således konkluderes, atafvigelserne skyldes hjørnedetektionens usikkerhed.

Test af præcision for kørsel af linje, afsnit E.1, og rotation, afsnit E.2, visteaf robotten ikke er præcis nok til kørsel af længere stykker uden korrigeringvia billedanalyse. Især ved rotation er der problemer med at opnå en præcisnok vinkel. Generelt bliver robotten ustabil ved for lave hastigheder, og dabremselængden stiger ved høje hastigheder, køres der her for langt.

Tid for krus Der er stillet krav om, at tiden, for at hente et krus i det diago-nalt modsatte hjørne på banen uden forhindringer, maksimalt må være 10sekunder. Da systemet ved projektets afslutning ikke var i stand til at ind-samle krus på banen, har det ikke været muligt at udføre denne test. Kraveter derfor ikke opfyldt.

Rutetid Der er stillet krav om, at tiden, fra systemet ser banen, til en rute erlagt, maksimalt må være 5 sekunder. Ved at indsætte instruktioner i pc-programmet der udskriver tiden før og efter ruteanalysen, er det beregnet,

97

Page 112: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

12.2. TEST AF ROBOT PÅ BANE

at det tager 56 ms for at bestemme alle ruter til de tre krus i testbane 1,figur 2.2. Tiden, det tager billedanalysen at bestemme positioner for forhin-dringer, krus og robot og videresende dem til pc’en, er på tilsvarende visberegnet til 140 ms. Kravet er hermed opfyldt.

12.2 Test af robot på bane

Da systemet ved projektets afslutning ikke var i stand til at indsamle krus på ba-nen, er testene på testbanerne ikke fuldført. I stedet er det testet, at billedanalysenkan detektere elementerne på banen, og at ruteanalysen herudfra er i stand til atberegne afstandene mellem alle knudepunkter, der kan se hinanden, og derefterudvælge den korteste rute. Ved begge testbaner er dette opfyldt. Sceenshots af detanalyserede kort fra brugerinterfacet ved testbane 2 kan ses i figur 12.1.

Der er ikke udført test på testbane 3.

Figur 12.1: Screenshot af brugerinterface med indtegnet rute for testbane 2.

98

Page 113: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 12. ACCEPTTEST

12.3 Delkonklusion

Samlet set kan det konkluderes, at accepttesten ikke er bestået. Dette skyldes dels,at robottens styring ikke er præcis nok til at køre lange delstrækninger uden kor-rigering fra billedanalysen, som der var lagt op til i den valgte løsning. Dettekan forbedres ved at sænke hastigheden af robotten gradvist i stedet for hårdeopbremsninger. Desuden bør der indsættes flere fikspunkter, hvor data fra billed-analysen anvendes til en løbende regulering.

Testen viste dog at billedanalysen kunne finde hjørner i komplicerede forhin-dringer, samt at dens præcision fuldt opfyldte de stillede krav. Ruteanalysatorenkunne ud fra disse billeder finde alle forbindelser mellem kopper, robotter og for-hindringernes hjørner, og der ud fra beregne den korteste rute til det nærmestekrus. Tiden for både billedanalyse og rutelægning var langt kortere end de stilledekrav.

99

Page 114: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

Del V

Sammenfatning

100

Page 115: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is
Page 116: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

13KonklusionDette projekt er udarbejdet af en 5. semester gruppe på Institut for ElektroniskeSystemer på Aalborg Universitet i perioden september 2002 til december 2002.Det omhandler styring af en mobil og trådløs robot ved hjælp af billedanalyse. Derblev i samme periode konstrueret et tilsvarende system af en anden projektgruppe,og en konkurrence skal finde sted i januar 2003.

13.1 Problemstilling

I projektet skulle der udvikles et system bestående af en robot, bygget i LEGO,som skulle indsamle plastikkrus på en bane med forhindringer. Over banen varmonteret et kamera, som var forbundet til en SGI1. På SGI’en skulle der udviklesprogrammel til analyse af de indkomne billeder, hvor ud fra det var ønsket at findekoordinater for robotten, plastikkrus og forhindringer. Disse informationer skullederefter sendes via TCP/IP til en pc, som ud fra disse oplysninger genererer rutertil indsamligning af krusene og styre robotten her ud fra. På denne pc skulle derkonstrueres en brugerflade, hvorpå det skulle være muligt at overvåge systemet,samt selv at overtage kontrollen med robotten. Styringssignaler til robotten skullesendes trådløst.

For at opstille parametre for godkendelse af systemet, blev krav til systemetopstillet, og en accepttest blev specificeret. Accepttesten indeholdt test af følgendekrav:

x Systemet skal kunne analysere 25 billeder pr. sekund.

x Bestemmelsen af hjørnerne for forhindringerne må højst afvige 1,5 cm, ogbestemmelsen af robottens orientering må højst afvige

¢ � .x Systemet skal være i stand til at indsamle et krus på en bane uden forhin-

dringer, hvor robot og krus står diagonalt modsat, på under 10 sekunder.

x Tiden, det tager at analysere en given testbane, må ikke overstige 5 sekun-der.

1Silicon Graphics Inc. O A workstation

102

Page 117: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 13. KONKLUSION

Derudover indeholdt accepttesten en række tests på forskellige testbaner.

13.2 Løsning

Den endelige løsning blev følgende:

13.2.1 SGI

Programmellet på SGI’en benytter sig af de billeder, der modtages fra kameraetover banen. Disse billeder er af tre typer: En tom bane, en bane med forhindringerog en bane med forhindringer, robotter og krus.

For at finde de ønskede informationer analyseres billedet på flere måder.Først laves et differensbillede mellem billedet af den tomme bane og bille-

det med forhindringer. På dette billede indsættes en tærskelværdi, så pixel, der ermørkere end denne, betragtes som baggrund, og pixel, der er lysere end tærskel-værdien betragtes som forgrund. Sammenhængende områder af forgrundspixelklassificeres som forhindringer, og massemidtpunktet for disse findes. Hjørnernepå forhindringernen findes ved at analysere kanten rundt langs figuren og findemaksimaene i vinkelændringerne.

Ud fra billedet med forhindringer og billedet med robotter, forhindringer ogkrus, genereres et differensbillede. I dette billede bestemmes, som ovenfor, for-grund og baggrund i billedet, og ud fra en kompakthedsanalyse af sammenhæn-gende forgrundspixels klassificeres elementerne som robotter eller krus. Derefterbestemmes massemidtpunkterne for disse.

Robottens kendemærke er et A. Derfor findes dens orienteringen ved at søgeefter den pixel i figuren, som har den længste afstand fra massemidtpunktet. Dennepixel vil være toppen af A’et, og en linje mellem massemidtpunktet og denne pixelvil vise robottens orrientering.

Analysen af robotter og krus foretages løbende.De fundne koordinater konverteres til det koordinatsystem, der anvendes på

gulvet.De opsamlede data sendes via ethernet og TCP/IP til pc’en

13.2.2 Pc

Pc’en behandler de data, som modtages fra SGI’en. Denne behandling består i atindsætte sikkerhedsmarginer omkring forhindringerne, så det undgås, at robottenkommer til at køre ind i dem. Endvidere beregnes alle de mulige strækninger,mellem robot, hjørnerne på forhindringernes marginer og krusene, således at den

103

Page 118: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

13.3. RESULTATER

korteste rute til hvert krus kan findes. Ruten findes ved hjælp af Dijkstras ShortestPath algoritme, som køres for hvert krus, hvorefter den korteste rute udvælges.

Ruten opsplittes i delruter, som konverteres til strækningstyper som robottenkan køre. Disse sendes til robotten i overenstemmelse med en dertil udviklet pro-tokol, som er beskrevet ud fra OSI-modellen. Protokollen er designet til at kom-munikere i et støjfyldt miljø, hvor risikoen for pakketab er stor. Derfor skal robot-ten bekræfte, at den har modtaget pakken, ellers vil den blive gensendt. Signaletoverføres til robotten ved hjælp af en til formålet designet basestation, som tilkob-les til pc’en via RS232.

13.2.3 Robot

I robotten gemmes ordrerne fra pc’en i en buffer, indtil de bliver udført. På robot-ten er der monteret rotationssensorer, som anvendes i en tilbagekoblingsløkke tilkorrigering af hjulene. Ud fra denne reguleres hjulenes indbyrdes hastighed, så demodtagne strækninger følges. Robotten kan sende en tilbagemelding til pc’en, nåren bestemt destination er nået.

Robottens mekaniske opbygning er foretaget i LEGO og til fremdrift, samtåbning og lukning af gribearmen benyttes LEGO motorer. Til styring af dissesamt kommunikationen med pc’en er der designet og konstrueret et styringskortpå basis af en PIC16F877 microcontroller.

13.3 Resultater

Ved projektperiodens afslutning kunne systemets tre hoveddele kommunikere medhinanden som specificeret i protokollerne.

SGI’en kunne finde og klassificere robotter, krus og forhindringer på banen.Dog blev der ikke implementeret en funktion, så der kun blev kigget på et mindreområde omkring robotten (region of interest), og dette gør billedanalysen lang-som, jvf. acceptest kapitel 12.

Ud fra oplysningerne fra SGI’en kunne pc’en finde mulige strækninger mel-lem robot og krus og udvælge den korteste rute til nærmeste krus. På brugerfladenkunne der optegnes et kort med forhindringer, krus og robotter samt mulige stræk-ninger og den valgte rute. Dog blev der ikke implementeret visning af statistik oglog på brugerfladen, ligesom manuel styring blev lavet med knapper på skærmeni stedet for piletaster.

Der kunne sendes instruktioner fra pc’en til robotten, som kunne udføre disse.Der blev udført en accepttest på systemet, som indeholdt to deltest.Første del var test af specifikke krav, hvor fra det kunne uddrages at antallet

af billeder, der kunne analyseres pr. sekund, ikke opfyldte kravet på 25. Under

104

Page 119: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

KAPITEL 13. KONKLUSION

almindelig drift analyseredes 7,1 billeder pr. sekund. Ved test af præcisionen vistedet sig at billedanalysens præcision var højere end det stillede krav, men at præ-cisionen af robottens styring var for dårlig på grund af bremselængden ved højehastigheder og ustabilitet ved lave hastigheder. Kravet til tiden for indsamling af etkrus kunne ikke testes, da robotten på testtidspunktet ikke kunne indsamle krus frabanen. Tiden for ruteplanlægning viste sig at være langt mindre end den krævede,så denne test blev bestået.

Anden del af testen var en række test på forskellige testbaner. Disse test blevikke fuldført, da systemet på testtidspunktet ikke var i stand til at udføre disse.Disse test er derfor ikke bestået.

13.4 Perspektivering

Da det ikke var muligt at udføre hele accepttesten, har produktet ikke bestået destillede krav. Med den valgte løsning, hvor der både korrigeres på robotten ogvia billedanalysen, vurderes det, at kravet om analyse af 25 billeder i sekundetikke behøves at blive opfyldt for at systemet kan fungere. Dette krav kan derforlæmpes. Det vurderes, at hastigheden af billedanalysen kan forøges ved imple-mentation af region of interest.

De vigtigste årsager til, at systemet ikke kunne testes, menes at være den util-strækkelige præcision i robottens styring, samt at data fra billedanalysen ikke an-vendes ofte nok til korrigering af robotten.

Dette kan forbedres ved at implementere en langsommere nedbremsning in-den en delrute bliver afsluttet, samt at lange delruter splittes op, så der hurtigerebliver grebet ind, hvis robotten kører skævt i forhold til den ønskede retning. Detvurderes, at systemet vil kunne gennemføre acceptesten, hvis disse forbedringerimplementeres.

105

Page 120: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

Litteratur[Awcock and Thomas, 1996] Awcock, G. W. and Thomas, R. (1996). Applied

Image Processing. McGraw-Hill, 1 edition. ISBN 0-07-001470-1.

[Biering-Sørensen et al., 1988] Biering-Sørensen, S., Hansen, F. O., Klim, S., andMadsen, P. T. (1988). Håndbog i Struktureret Program-Udvikling. Ingeniø-ren|bøger, 1 edition. ISBN 87-571-1046-8.

[Bob Fisher and Simon Perkins and Ashley Walker and Erik Wolfart, 2002] BobFisher and Simon Perkins and Ashley Walker and Erik Wolfart (dec 2002).http://www.cee.hw.ac.uk/hipr/html/median.html.

[Camera Calibration Toolbox for Matlab, 2002] Camera Calibration Toolbox forMatlab (sep 2002). http://www.vision.caltech.edu/brouguetj/calib_doc/.

[ERC Rec 70-03, 2002] ERC Rec 70-03 (sep 2002). ERC Recommendation 70-03. ERC. Relathing to the ues of short range devices (SRD).

[Eriksson and Penker, 1998] Eriksson, H.-E. and Penker, M. (1998). UMLToolkit. John Wiley & Sons. ISBN 0-471-19161-2.

[Kursushjemmeside til OOAD, 2002] Kursushjemmeside til OOAD (sep 2002).http://www.itorg.auc.dk/borch/web_oos2001.E5/index.htm.

[MindStorms RCX Sensor Input Page, 2002] MindStorms RCX Sensor InputPage (sep 2002). http://www.plazaearth.com/usr/gasperi/rotate.htm.

[PIC micro and C, 2002] PIC micro and C (sep 2002). http://www.microchipc.com/PIC16bootload.

[Radiogræn.. 00032, 2002] Radiogræn.. 00032 (sep 2002). Radiogrænseflade nr.00 032. Telestyrelsen. Bekentgørelse om laveffekts radioanlæg med integrereteller dedikeret antenne beregnet til telemetri, fjernstyringsformål, alarmering,tale og dataoverførsel i visse frekvensbånd mellem 6 MHz og 5875 MHz.

106

Page 121: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

LITTERATUR

[Ray, 1999] Ray, J. (1999). Using TCP/IP. Que. ISBN 0-7897-1897-9.

[Studienævn for Elektronik og Informationsteknologi, 2002] Studienævnfor Elektronik og Informationsteknologi (sep 2002). Studieord-ning for 3. - 5. semester ved elektronik- og elektrotekniksektoren.http://www.esn.auc.dk/ordnære_studier/el-ing-3-5sem/el-ing-homepage.htm%l.

[Tannenbaum, 1996] Tannenbaum, A. S. (1996). Computer Networks. PrenticeHall, 3 edition. ISBN 0-13-394248-1.

[Varta batterier, 2002] Varta batterier (sep 2002). http://www.pss.dk/varta/Varta.pdf.

[Waldura, 2002] Waldura, R. (dec 2002). Implementing dijkstra’s shortestpath algorithm in java. http://renaud.waldura.com/doc/java/dijkstra.shtml.

107

Page 122: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

Del VI

Appendiks

108

Page 123: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is
Page 124: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

ARegelsæt forkonkurrence

Formålet med konkurrencen er at fastslå hvilken robot, der kan samle flest plastik-krus på en afgrænset bane. Robotterne afleverer opsamlede krus i hver deres basepå banen.

Robotopbygning

Mekanik Til den mekaniske konstruktion af robotten må der kun bruges kompo-nenter fra det udleverede LEGO-mindstorm sæt.

Radiokommunikation De to robotter kommunikerer med hver deres computerved hjælp af radiokommunikation i frekvensbåndet 433 MHz. Derfor måhver gruppe kun sende 10% af tiden [Radiogræn.. 00032, 2002]. De 10%er for hvert sekund. For at undgå pakkekolision må der kun sendes, når derikke kan detekteres en bærebølge.

Opstilling af bane

Bane Banen er 2 x 2 m, og markeret med farvet tape på gråt gulv.

Forhindringer Alle forhindringer består af hvide stykker paipr med målene 297x105mm( ÚÙ stykke A4-papir). En forhindring må maksimalt bestå af 3 stykker papir.Der skal være mindst 20 cm mellem forhindringerne. Der må maksimaltbruges 15 stykker papir til forhindringer.

Opsamlings objekter Opsamlingsobjekterne er hvide plastic eengangskrus, meden bunddiameter på 7 cm, topdiameter på 4,5 cm og højden 8,5 cm. Én-gangskrus skal være placeret mindst 30 cm, fra andre eengangskrus, ogmindst 10 cm fra forhindringerne.

110

Page 125: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

APPENDIKS A. REGELSÆT FOR KONKURRENCE

Under konkurrencen

Start Robotterne placeres i hvert deres hjørne og starter samtidigt.

Opsamling For hvert eengaqngskrus robotten afleverer ved basen, gives 1 point.Væltes et krus, fratrækkes 1 point. Når et krus er afleveret, fjernes det afgruppen. Der må kun opsamles et krus ad gangen.

Forhindringerne Forhindringerne må ikke berøres af robotten. Sker dette, fra-trækkes 1 point.

111

Page 126: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

BMekaniskopbygning

af robottenRobotten er, i henhold til regelsættet, appendiks A, opbygget af LEGO. Den harto trækkende forhjul og to passivt medstyrende baghjul. Forrest er monteret et sætgribearme, som skal bruges til at opsamle krus. Robottens fysiske dimensioner erbetinget af, at den skal kunne bære tre motorer, en batteripakke med seks AA-batterier og et styringskort. Robotten har følgende mål:

x Højde uden antenne : 11 cm

x Længde uden gribearm : 22 cm

x Længde med gribearm : 30 cm

x Bredde uden hjul : 10 cm

x Bredde med hjul : 14 cm

x Hjuldiameter : 8,5 cm

Robotten kan ses på figur B.1.Styringsprincippet gør robotten meget manøvredygtig, da den kan rotere om

en akse mellem forhjulene. Ligeledes er denne styring meget nem at opbygge, ogden kræver kun to motorer. En ulempe ved denne styreform er, at baghjulene erskrøbelige og derfor ikke kan belastes så meget. Derfor er robotten opbygget medtyngdepunktet liggende langt fremme mod forhjulene.

Gribearmene er lavet ekstra lange, da det gør det lettere at indfange krus ogderved gør robottens placering i forhold til kruset mindre kritisk. De er ligeledesdesignet, så de kan løfte krusene. Gribearmene trækkes af een motor, som ogsåtrækker løftemekanismen.

112

Page 127: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

APPENDIKS B. MEKANISK OPBYGNING AF ROBOTTEN

Figur B.1: Her ses robottens mål.

113

Page 128: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

CKalibreringaf kamera

I dette appendiks beskrives en kalibrering af kameraet, hvor de interne(intrinsiske)og eksterne(ekstrinsiske) parametre for kameraet beregnes.I dette afsnit er [Camera Calibration Toolbox for Matlab, 2002]brugt som generel kilde.

Ved hjælp af billedanalyse findes koordinater for de forskellige elementer påbanen. Da kameraet ikke er opstillet lodret over banen, men i en vinkel i for-hold til banen opstår en perspektivisk forvrængning. Derfor skal billedkoordina-terne transformeres om til banekoordinater på gulvet. Internt i kameraet er derdesuden nogle fejlkilder, der skal korigeres for. Dette gøres ved hjælp af kamera-kalibrering. Med en kalibrering af kameraet kan forvrængningerne udlignes, ogder kan transformeres mellem de to koordinatsystemer.

C.1 Fremgangsmåde

Til kalibrering af kameraet, hvis specifikationer kan ses i tabel C.1, tages en rækkebilleder af en skakternet plade. På billederne af skakbrættet holdes brættet i for-skellige vinkler. Hele brættet skal kunne ses på alle billederne. Billeder blev tagetved hjælp af programmet capture. Der blev i alt taget 28 billeder på dennemåde. I bilag “kamerakalibrering/intrinsic/” kan de 28 billeder, der blev taget,ses. I figur C.1 ses et af disse billeder. Der blev desuden taget et billede af et størreskakbræt, der lå på gulvet, på det sted, hvor banen skal opstilles. Dette billede kanses i bilag “kamerakalibrering/ekstrinsisk/gulv.tif ”.

Billederne blev gemt i RGB-format og konverteret til TIF-format, inden deblev behandlet yderligere. Ved hjælp af MATLAB blev kameraets forskellige pa-rametre beregnet. Til dette blev MATLAB toolboxen Camera Callibration Tool-box [Camera Calibration Toolbox for Matlab, 2002] brugt. For at aktivere tool-boxen bruges kommandoen calib. Først hentes de 28 billeder ind i MATLABved at trykke image names, og skrive filnavn og format. Herefter angives hjørne-koordinater for skakbrættet. Dette gøres ved at bruge extract grid corners, somses på toolboxen. Der kan nu klikkes på hjørnerne for hvert enkelt billede, se figur

114

Page 129: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

APPENDIKS C. KALIBRERING AF KAMERA

Figur C.1: Et af de billeder, der blev brugt til kalibreringen.

C.1. Herefter indtastes størrelsen på ternene i mm, og MATLAB kan nu beregnede interne parametre i kameraet. Herefter skal de eksterne parametre beregnes,så der kan omregnes mellem koordinaterne på billedplanet og koordinaterne påbaneplanet. Dette gøres ved at trykke på comp. extrinsic. Her klikkes på hjørnekoordinaterne af billedet af det store skakbræt, der ligger på gulvet. Origo på gul-vet er altid det første hjørne, der klikkes på. Størrelsen på ternene i mm indtastes,og herefter beregnes hvilken vinkel kameraet har i forhold til gulvet.

Instrument Type AAU-nummerS/H PAL-kamera CCD Video Camera CV-M50 33595

Linse TV-Lens f1,9 (8 mm)

Tabel C.1: Specifikationer på kameraet og linsen.

C.2 Kameraets parametre

I kalibreringen findes en række parametre. Disse kan deles op i to dele; interne-og eksterne parametre.

C.2.1 Interne parametre

De interne parametre, også kaldet de intrinsiske parametre er listet nedenfor:

115

Page 130: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

C.2. KAMERAETS PARAMETRE

Figur C.2: Kameraets opbygning, med focalpunkt og principalpunkt.

Focallængde (focal lenght) er distancen mellem linsen i kameraet og overfladenaf kameraets CCD(Charge Coupled Device), se figur C.2. Midten af linsenkaldes det focale punkt. Længden opgives i mm, og omregnes derefter tilpixel. Da størrelsen på en pixel ikke er den samme i x-retning som i y-retningen, er der opgivet to værdier, en for x-retningen og en for y-retning.Den focale længde i pixel gemmes som en 2-dimensional vektor, som kaldesfc.

Principalpunkt (principal point) er det punkt på CCD’en, der ligger direkte bagdet focale punkt i linsen, og som rammes at lys, der kommer ind vinkelretpå linsen, se figur C.2. Efter bestemmelse af det principale punkt og focallængden, kan en udregning af radial og tangentiel forvrængning blive fore-taget i forhold til principal punktet. Det principale punkt gemmes som en2-dimensional vektor( cc).

Figur C.3: Hvis CCD’en er skæv, vil vinklen gemmes som alpha_c.

Skævkoefficient (skew cooficient) fortæller om selve CCD’en er skæv, se figurC.3. Er den skæv angives vinklen for den. Normalt er denne vinkel så lille,at den kan sættes til 0. Koefficienten gemmes som alpha.

116

Page 131: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

APPENDIKS C. KALIBRERING AF KAMERA

Figur C.4: Korrektion for den radiale og den tangentiale forvrængning.

Forvrængning (distortion) kan deles op i en radial forvrængning og en tangen-tiel forvrængning. Forvrængningen opgives som en 5-dimensionel vektor(kc), der har 5 paramtre, hvor tre bruges til at korrigere for radial forvræng-ning, og to for tangentiel forvrængning. Den radiale forvrængning skyldes,at linsen ikke giver et lineært billede, så koordinaterne er aflæst i et buet ko-ordinatsystem, og derfor skal der korrigeres for den afvigelse, der kommer,når det bliver overført til et lineært koordinatsystem, se figur C.4. Dette skerved at forlænge radius til punktet med: º@,�¤B� ¨ ! $ Ù ÷ûº@,�¤ � ¨ ! $ Û ÷øº@,�¤ � ¨ ! $ Ý .Linsen er opbygget af flere linser, og da disse ikke altid har centrum præcispå samme akse, opstår en tangentiel forvrængning. Korrektionen for denneforvrængning sker tangentielt til en cirkel, der går gennem punktet med cen-trum i 0,0, se figur C.4. Den tangentielle forvrængning angives af parameter3 og 4, men da den kun giver en ganske lille fejl, ses der som regel bort fraden tangentielle forvrængning, og der korrigeres derfor ikke for den.

C.2.2 Eksterne parametre

Rotation er en 3x3 rotationsmatrix (R), der angiver hvor meget billedkoordinat-systemet er roteret i forhold til banekoordinatsystemet.

Translation er en 3-dimensionel vektor (T), som angiver afstanden og retningenmellem billedkoordinatsystemets origo og banekoordinatsystemets origo.

117

Page 132: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

C.3. KALIBRERINGSRESULTATER

C.3 Kalibreringsresultater

C.3.1 Interne parametreCED Á F "� f�������¬ "� ��¬�! ¢ ��GD3D Á F � £ �����@�o� � £ �¬� ¢ ����GH�D Á F õ �¬�Ê�� �� £�£ �¬�I�¯ f�� ¯� õ ���������f�¬ õ �¬������� ¢ � �¬����������� Gª¬Ïʵ]ÕĪ Á �¬�����������

C.3.2 Eksterne parametre

J Á KL õ �M�<� �Ø� £�£õ £�£ "�� £ �� ¢�£�£ ��"��

NO� Á KL õ �¬���P�@�p� ����"f�Q�R� õ �������� f��¬�Ê"�"�" £ �����R�P��� õ ���������� �¬�Ê��� ¢�£ õ �������� ¯� õ ����"f�Q�O� NO

C.4 Omregning mellem kamerakoordinater og ba-nekoordinater

Når elementerne på banen findes, er deres koordinater opgivet i pixel på det bil-lede, der er taget af kameraet, med en x-koordinat og en y-koordinat, dette punktkaldes SUTWVYX�Z\[ . De koordinater, der skal bruges, er de virkelige koordinater pågulvet. Derfor skal der omregnes fra kamerakoordinater opgivet i pixel til bane-koordinater opgivet i mm, se figur C.5. Først skal der korrigeres for de interneparametre i kameraet. Dette sker ved først at normalisere billedkoordinaterne vedhjælp af koordinaterne til principalpunktet og focallængden.

SU] Á S�TWVYX�Z\[ õ D^DCED (C.1)

Herefter beregnes billedkoordinatet ( S"_³Á ¼�½ÄÇo�z¿fǯÀ ), hvor der er taget hensyntil radial forvrængningen. º@,�¤B� ¨ , º@,�¤ � ¨ og º@,�¤ � ¨ er for den radiale forvrængning,mens º@,�¤ � ¨ og º@,�¤ � ¨ tilhører den tangentielle forvrængning, men da denne er megetlille, ses der bort fra den.

118

Page 133: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

APPENDIKS C. KALIBRERING AF KAMERA

` acb `

Figur C.5: Opstillingen af kameraet over banen. På figuren kan ses de to koordinatsyste-mer.

119

Page 134: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

C.4. OMREGNING MELLEM KAMERAKOORDINATER OGBANEKOORDINATER

$ Á ½ ÙÉ ÷ ¿ ÙÉ (C.2)$pÇ Á � ÷ º@,�¤W� ¨ ! $ ÷ º@,�¤ � ¨ ! $ Ù ÷ º<,�¤ � ¨ (C.3)S�_ Á SU]$pÇ (C.4)

Kameraets origoDRd�e T�Z d Á ¼v���k���k��À og billedpunktet S"f³Á ¼�½ � �z¿ � �M�¯À omreg-

nes fra billedkoordinater til banekoordinater ved at rotere mellem koordinatsyste-merne med den inverse rotationsmatrice, og forskyde fra origo i det ene koordi-natsystem til origo i det andet koordinatsystem med translationsvektoren:g7h�ikj;g Á � l Ú ! ¼ DPd�e T�Z d õ J À (C.5)S _ Á � l Ú ! ¼ S _ õ J À (C.6)

Der opstilles nu en ligning for et tilfældigt punkt (P) på gulvplanet, ved atopstille en ligning for planet, med normalvektoren

2 Á ¤ ���k���M� ¨ og det tilfældigepunkt m Á ¼��¯ ����O"��k��À :

� Á n ! ¼Eo õqp À (C.7)r(C.8)n ! o Á n ! p (C.9)

Ligeledes opstilles en ligning for et tilfældigt punkt(P) på den linje de to punk-ter ( g;h�ikj7g og S _ ) danner:o Á g7h�ikj;g ÷ · ! ¼ S�_ õ g7h�ikj;g À (C.10)

Ligningen omskrives:n ! o Á n ! ¼ g;h�isj;g ÷ · ! ¼ S _ õ g;h�ikj7g ÀTÀ (C.11)

Hvis udtrykkene for n ! o sættes lig hinanden findes skæringpunktet mellemlinjen og planet.n ! ¼ g7h�ikj;g ÷ · ! ¼ S�_ õ g7h�ikj;g ÀTÀ Á n ! p (C.12)r

· Á n ! ¼ pôõ g7h�ikj;g Àn ! ¼ SU_ õ g7h�ikj;g À (C.13)

Når u er beregnet for linjen, kan punktet P findes, og dette punkt er så koordi-naten til punktet i gulvkoordinater.

120

Page 135: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

DProtokoller

I dette appendiks beskrives de to protokoller, der bruges i projektet. Protokollerneer designet i kapitel 10.

D.1 Radiokommunikation

Protokollen foreskriver at hver databit manchesterkodes. Databitten 0 sendes som10, og 1 sendes som 01. Den mest betydende manchester byte sendes først.

Når data sendes, deles beskeden op i bytes, der sendes med 1 startbit, 8 databit,ingen paritetsbit og 1 stopbit.

De enkelte bytes sendes med LSB(mindst betydende bit) først.

Hver besked, der skal sendes til robotten kan indeholde en række opgaver, medforskellige kommandoer og tilhørende parametre.

Hver besked omkranses af en startbyte og en stopbyte. Startbyten er 0x64,og stopbyten er 0xE5. Før startbyten sendes, sendes en startsekvens og en syn-kronisering. Startsekvensen er fire bytes med værdien 0xFF. Synkroniseringen erforskellige alt efter om der sendes til robotten eller til pc’en. Når der sendes tilpc’en, består synkroniseringen af 9 høje bits, der ikke manchesterkodes, og når dersendes til robotten sendes 0x55. Efter stopbyten sendes en CRC-rest på 2 bytes.CRC-divisionen udføres med CRC-16 polynomiet[Tannenbaum, 1996, s.190].

Hver besked må maksimalt indeholde 29 bytes, foruden startbyte, stopbyte ogCRC-rest.

Til robotten kan sendes en række kommandoer, som robotten kan udføre. Tilkommandoerne kan der knyttes forskellige parametre. Disse er beskrevet i tabelD.1

121

Page 136: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

D.2. NETVÆRK

Kommando Parametre Betydning

Hastighed’L’ Distance Kør lige linje.

Hastighed på højre hjulHastighed på venste hjul

’K’ distance for hurtigste hjul Kør buet kurve.Hastighed

’R’ Distance Roter.’S’ Ingen parametre Stop.’N’ Ingen parametre Nødstop.’U’ Ingen parametre Gribearm ud.’I’ Ingen parametre Gribearm ind.’B’ Ingen parametre Send batteristatus.’T’ Ingen parametre Send tilbagemelding.

Tabel D.1: Kommandoer, der kan sendes til robotten..

Hastigheden sendes som en byte med værdier mellem -127 og 128. Skal ro-botten køre fremad er hastigheden positiv, og en negativ hastighed får robotten tilat bakke. Distancen sendes som to bytes en værdi mellem 0 og 65536, med denmest betydende byte først.

D.2 Netværk

I protokollen mellem SGI og pc, sendes beskrivelser af elementer til banen.

Robot Først et ’R’, efterfulgt af hvilken robot det er, der sendes som ’e’ for Elvisog ’a’ for AskeBot, herefter sendes koordinaten for massemidtpunktet. Hvisrobotten er AskeBot, sendes koordinaten for spidsen af AskeBot.

Krus Først sendes et ’K’ efterfulgt af en label, og koordinaten for massemidt-punktet.

Hjoerne Indeholder et ’H’, en label, hjørnets koordinater, og hjørnetsretning,hvor ’U’ er et udadvendt hjørne, og ’I’ er et indadvendt hjørne. Hjørner sen-des som et array af datastrukturen hjoerne. Hjørnerne sendes i rækkefølgemod uret.

Clear Når netværksforbindelsen skal genstartes sendes et ’C’.

Luk Når netværksforbindelsen skal lukkes sendes et ’L’.

122

Page 137: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

APPENDIKS D. PROTOKOLLER

Koordinater sendes som en x-værdi og en y-værdi, begge værdier sendes som4 bytes. Bogstaverne og labels sendes hver som 1 byte.

123

Page 138: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

EMålejournalerfra accepttest

Dette appendiks indeholder målejournaler lavet i forbindelse med accepttesten.Der er herunder udført test af robottens præcision ved kørsel af lige linje og vedrotation samt test af billedanalysens præcision mht. placering af objekter, vinkelaf robot og hjørnedetektion.

I tabel E.1 er vist det apparatur, der er benyttet under målingerne.

Instrument Type AAU-nummer

Strømforsyning B&O Power supply SN16A 08480

Tabel E.1: Specifikationer på kameraet og linsen.

E.1 Test af præcision for kørsel af liniestykke

E.1.1 Formål

Denne test skal vise, hvor præcist robotten kan følge en linjekommando fra pc’en.Dette tester robotdriveren på pc’en samt reguleringen på robotten. Der testes bådefor hastighedens og rutelængdens indflydelse på nøjagtigheden.

E.1.2 Hypotese

Det forventes, at robotten vil køre langs en lige linje, men at der vil være proble-mer ved start og stop, og at bremselængden vil blive forlænget hvis robotten kørerhurtigt.

E.1.3 Beskrivelse af test

Denne test er udført ved at montere en markør foran og bag på robotten. Markø-ren placeres tæt over gulvet så der kan sættes præcise afmærkninger på gulvet.

124

Page 139: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

APPENDIKS E. MÅLEJOURNALER FRA ACCEPTTEST

Den bageste afmærkning placeres på en startlinje på gulvet. Derefter bliver dersendt en linjekommando, som robotten skal køre, og differencen mellem ønsketslutplacering og reel slutplacering måles. Der er lavet to måleserier ud fra dennefremgangsmåde.

Varierende længde

I denne måleserie sættes moterens duty-cycle til 94,1%, og afstanden af linjenvarierer. Distancen fra startpunkt til stoppunkt måles med en tommestok.

Under forsøget blev robotten forsynet af seks AA-batterier. Ved start var spæn-dingen 9V, hvorefter den faldt til 8,2V i løbet af forsøget.

Varierende hastighed

Afmærkningerne på robotten placeres på en ret linje med bageste punkt på etstartpunkt. Derefter sendes en linjekommando på en meter til robotten. Den kørtedistance og afstanden fra stoppunkt til den rette linje måles med en tommestok.Herudfra beregnes afvigelsen fra den sendte rute i grader.

Under forsøget blev robotten forsynet fra en strømforsyning E.1, med en spæn-ding på 7,72V.

E.1.4 Måleresultater

Varierende længde

Ønsket Målt distance i cmdistance i cm Forlæns Baglæns

10 13,0 14,220 22,5 24,140 42,7 44,060 62,0 63,8

100 102,0 103,0140 141,0 142,9200 201,0 202,8300 298,7 301,5

Herudfra kan graferne på figur E.1 laves.Data for den lineære tilnærmelse:

x Forlæns kørsel

– Hældning: -0,0134

125

Page 140: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

E.1. TEST AF PRÆCISION FOR KØRSEL AF LINIESTYKKE

0 50 100 150 200 250 3001.5

1

0.5

0

0.5

1

1.5

2

2.5

3

3.5

Ønsket længde/cm

Afvig

els

e/c

mForlæns kørsel med konstant hastighed

Målt distance

Lineær tilnærmelse

0 50 100 150 200 250 3001.5

2

2.5

3

3.5

4

4.5

Ønsket længde/cm

Afv

igel

se/c

m

Baglæns kørsel med konstant hastighed

MåledataLineær tilnærmelse

Figur E.1: Grafer for måling af længdemæssig afvigelse ved varierende længde samtlineære tilnærmelser til graferne.

– Skæring med y-aksen: 3,0662

x Baglæns kørsel

– Hældning: -0,0089

– Skæring med y-aksen: 4,2600

Varierende hastighed

Duty-cycle Målt distance i cm Afvigelse i graderi % Forlæns Baglæns Forlæns Baglæns

31,4 99,1 100,2 13,8h 12,7v39,2 99,4 100,5 8,1h 0,1v47,1 100,2 100,4 4,0h 1,4v51,0 100,2 —- 1,4h —54,9 100,5 101,1 0,1h 1,7h62,7 101,0 101,0 1.1h 2,0h70,6 101,6 101,8 0,0 1,1h78,4 101,5 102,0 2,5h 1,6h86,3 100,6 102,3 0,2v 1,2h94,1 101,3 103,0 1,7h 1,1h

Graferne fra disse målinger ses på figur E.2 og E.3.

E.1.5 Fejlkilder og måleusikkerheder

Ved placering af robotten og indstilling af hjulene var der store fejlkilder.

126

Page 141: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

APPENDIKS E. MÅLEJOURNALER FRA ACCEPTTEST

40 50 60 70 80 90 100 110 1201

0.5

0

0.5

1

1.5

2

Dutycycle i %

Afv

ige

lse

i grad

er

Forlæns kørsel med konstant længde

0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

2

4

6

8

10

12

14

Duty−cycle i %

Afv

igel

se i

grad

er

Baglæns kørsel med konstant længde

Figur E.2: Grafer for måling af længde ved varierende hastighed.

0.3 0.4 0.5 0.6 0.7 0.8 0.9 11

0.5

0

0.5

1

1.5

2

Dutycycle i %

Afv

ige

lse

i cm

Forlæns kørsel med konstant længde

0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.5

1

1.5

2

2.5

3

Duty−cycle i %

Afv

igel

se i

cm

Baglæns kørsel med konstant længde

Figur E.3: Grafer for måling af vinkel ved varierende hastighed.

127

Page 142: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

E.2. TEST AF PRÆCISION FOR ROTATION

E.1.6 Vurdering af resultater

Ud fra resultaterne kan det vurderes, at robottens regulering giver visse usikkerhe-der. Ved varierende længde viser de tilnærmede linjers skæring med y-aksen denkonstante fejl i længden, som stammer fra robottens bremselængde, denne var 3,1cm fremad og 4,3 cm bagud. Det kan ses på længdemålingerne ved varierendehastighed at fejlen på grund af bremselængden stiger i takt med hastigheden.

Det kan ligeledes vurderes at robotdriverens omregning fra cm til skift på ro-tationssensorerne er tilstrækkelig præcis. Dette ses af hældningen på de lineæretilnærmelser til graferne for varierende længde, som er hhv. 0,0139 for forlæns og-0,0089 for baglæns, hvilket svarer til en fejl på 1%.

Ud fra graferne for afvigelse i vinkel kan det vurderes, at robotten bliver upræ-cis ved lave hastigheder. Ved forlæns kørsel stabiliseres retningen ved cirka 55 %duty-cycle. Ved baglæns kørsel stabiliseres ved ca 40 %.

E.2 Test af præcision for rotation

E.2.1 Formål

Denne test skal vise, hvor præcist robotten kan udføre en roterkommando frapc’en. Dette tester robotdriveren på pc’en samt reguleringen på robotten. Der te-stes både for hastighedens og vinkelstørrelsens indflydelse på nøjagtigheden.

E.2.2 Hypotese

Det forventes, der vil være problemer ved start og stop, hvis robotten kører hurtigt,og at nedbremsningen i så fald vil forøge den roterede vinkel.

E.2.3 Beskrivelse af test

Denne test er udført ved at placere robotten på en linje på et stykke papir. Derefterer der fra pc’en sendt en roterkommando, som robotten skal udføre. Herefter erder ud fra to faste punkter på midten af robotten i for- og bagende markeret totilhørende punkter på papiret. Imellem disse punkter er der tegnet en linje, og udfra vinklen mellem denne linje og den første linje er vinkelafvigelsen aflæst meden vinkelmåler.

Varierende vinkelstørrelse

I denne måleserie sættes motorens duty-cycle til 70%, og vinkelstørrelsen varie-res.

128

Page 143: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

APPENDIKS E. MÅLEJOURNALER FRA ACCEPTTEST

Under forsøget blev robotten forsynet af en strømforsyning, se tabel E.1. Spæn-dingen blev målt til 8,2V.

Varierende hastighed

I denne måleserie sættes vinkelstørrelsen til � ¢ � � , og hastigheden varieres.Under forsøget blev robotten forsynet af en strømforsyning, se tabel E.1. Spæn-

dingen blev målt til 8,2V.

E.2.4 Måleresultater

Varierende vinkelstørrelse

Varierende vinkelstørrelse Varierende hastighedØnsket Målt vinkel Duty-cycle Målt vinkelvinkel Mod uret Med uret i % Mod uret Med uret"�� � �p��� � "�" � �<�f�T� ����� � ����� �� £ � � � £ " � � £ " � �����n" ����" � ����� �� ¢ � � � ¢�¢ � � ¢ � � £ �T� � ¢ � � � ¢ � � ���� � 3�R� � f�� �

E.2.5 Fejlkilder og måleusikkerheder

Ved placering af robotten og indstilling af hjulene var der store fejlkilder.

E.2.6 Vurdering af resultater

Ud fra resultaterne, kan det vurderes at robottens regulering giver visse usikker-heder.

Ved varierende vinkelstørrelse ses det, at robotten roterer for kort ved lavehastigheder og for langt ved høje hastigheder. Det vurderes, at dette dels skyldes,at afstanden mellem hjulene er sat for højt i robotdriveren. Da robotten roterer forlangt ved høje hastigheder, vurderes det, at robottens opbremsning ikke er kraftignok.

Ved varierende længde ses det, at robotten roterer for langt ved små vinklerog for kort ved store vinkler. Dette kan forklares med argumenterne ovenfor vedvarierende vinkelstørrelse.

Desuden ses det, at robotten generelt roterer længere, når der roteres mod uretend med uret. Det antages, at dette skyldes unøjagtigheder i motorerne.

129

Page 144: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

E.3. TEST AF BILLEDANALYSENS PRÆCISION

E.3 Test af billedanalysens præcision

E.3.1 Formål

Denne test har til formål, at teste præcisionen af billedanalysen. Testen indebærerafprøvning af følgende modulers nøjagtighed: Hjørnedetektion, robotdetektion ogkoordinatkonvertering.

E.3.2 Hypotese

Det forventes, at der på grund af kameraets forvrængning, samt hjørnedetektio-nens måleusikkerhed på +- 2 pixel vil være en vis varians i målingerne. Afvigelsenforventes størst længst væk fra kameraet, da pixelopløsningen her er lavest.

E.3.3 Beskrivelse af test

Del 1

Et rektangulært hvid papir med kendte mål (A0-størrelse 911 mm x 1155 mm)placeres under 5 målinger på pladserne optegnet på figur E.4. Papirets størrelseudregnes vha. hjørnekoordinaterne, billedanalysen returnerer.

Bane

1 2

43

5

Kamera

Figur E.4: Måleopstilling for test af hjørnedetektionens præcision.

130

Page 145: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

APPENDIKS E. MÅLEJOURNALER FRA ACCEPTTEST

Del 2

Askebot placeres på de 4 pladser optegnet på figur E.5,og der laves en måling påhver plads i vinkel 0 � og 90 � , begge i forhold til x-aksen.

Bane

Kamera

A

A

A

A

AAAA

Bane

A

A

AA

AAAA

Kam

era

Figur E.5: Testopstilling for præcision af robotdetektion.

E.3.4 Måleresultater

Del 1

Case 1

Målte størrelser %-vis afvigelse2145-1250 = 895 mm 1,6%2136-1238 = 898 mm 1,4%1158-11 = 1147 mm 0,7%1177-39 = 1138 mm 1,5%

131

Page 146: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

E.3. TEST AF BILLEDANALYSENS PRÆCISION

Case 2

Målte størrelser %-vis afvigelse925-25 = 900 mm 1,2%931-24 = 907 mm 0,4%1181-39 = 1142 mm 1,1%1181-30 = 1151 mm 0,3%

Case 3

Målte størrelser %-vis afvigelse945-39 = 906 mm 0,5%933-42 = 891 mm 2,2%2497-1365 = 1132 mm 2.0%2517-1373 = 1144 mm 0,1%

Case 4

Målte størrelser %-vis afvigelse2105-1200 = 905 mm 0,7%2075-1183 = 892 mm 2,1%2522-1386 = 1136 mm 1,6%2523-1397 = 1126 mm 2,5%

Case 5

Målte størrelser %-vis afvigelse1522-612 = 910 mm 0,1%1520-613 = 907 mm 0,4%1835-686 = 1149 mm 0,5%1836-686 = 1150 mm 0,4%

E.3.5 Fejlkilder og måleusikkerheder

I del2 er det vanskeligt at opstille robotten i en præcis vinkel i forhold til banen.

Del 2

Hjørne Ønsket Massemidtpunkt Retning Afvigelsevinkel (mm) (mm) ( � )

Øverste 0 � (257,338) (388,340) 0,87Venstre 90 � (156,207) (170,93) 7,00Øverste 0 � (2231,300) (2355,304) 1,85Højre 90 � (2327,169) (2315,64) 7,06

Nederste 0 � (2223,1888) (2352,1891) 1,33Højre 90 � (2245,1789) (2244,1668) 0,47

Nederste 0 � (195,1778) (329,1784) 2,56Venstre 90 � (153,1814) (161,1692) 3,75

132

Page 147: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

APPENDIKS E. MÅLEJOURNALER FRA ACCEPTTEST

E.3.6 Vurdering af resultater

Det vurderes, at præcisionen af hjørnedetektionen i 16 ud af 20 tilfælde opfyl-der de stillede krav. Det ses af måleresultaterne, at afvigelserne varierer over helegulvfladen, og det kan således konkluderes, at afvigelserne skyldes hjørnedetek-tionens usikkerhed.

Det vurderes, at retningsbestemmelsen af robotten opfylder kravene opstilleti kravspecifikationen, se kapitel 1. Afvigelserne i vinklen kan have to årsager.Forkert placering af robotten i forhold til kamera kan medføre en stor afvigelse.Desuden bestemmes robottens position ud fra det interlacede videobillede, hvorder reelt er halv vertikal opløsning. Dette vil medføre en afvigelse på op til 2 pixeli positiv og negativ y-retning.

E.4 Test af ydelseskrav for billedanalyse

E.4.1 Formål

Testen har til formål at klargøre, om kravene til billedanalysens ydeevne er op-fyldt.

E.4.2 Beskrivelse af test

Eksekveringstiden af to centrale elementer i billedanalysen testes ved hjælp afstandard ANSI C funktionen gettimeofday(), der findes i sys/time.h. Denne funk-tion returnerer tid, i sekunder og mikrosekunder, siden 1. januar 1970.

Første test kontrollerer tiden det tager, at analyse spiralformen, der ses på figur2.3 side 9. Figuren har en omkreds på 7,9 m og et areal på 0,45 m Ù .

Anden test, kontrollerer tiden for analyse af 100 frames i hele baneområdet iden dynamiske analyseløkke. Antallet af objekter varieres i testene. Tiden målesbåde med og uden grafisk visning. Den første måling er foretaget på et tomt billede(uden elementer), og billedet er derfor ikke vist.

E.4.3 Måleresultater

Måling af tid for hjørnedetektion af spiralform gav 72 ms.Målingerne er udført på opstillingerne vist på figur E.7.I de nedenstående 7 målinger er den første værdi tiden med grafisk visning

slået til, og anden værdi er uden.

133

Page 148: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

E.4. TEST AF YDELSESKRAV FOR BILLEDANALYSE

Figur E.6: Figuren, der bruges til at teste hjornedetekteringen

(a) (b) (c)

(d) (e) (f)

Figur E.7: Måleopstillinger til billedanalysens ydeevne. A-figuren er AskeBots kende-mærke og den kantede U-form er Elvis’ kendemærke.

134

Page 149: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

APPENDIKS E. MÅLEJOURNALER FRA ACCEPTTEST

Tid Frame-rate Tid Frame-ratefor 100 frames [billeder/sek] for 100 frames [billeder/sek]

Tomt billede Figur E.7.a5 s 429657 4 s 18,4 7 s 304910 4 s 13,74 s 536250 4 s 22,0 6 s 100719 4 s 16,4

Figur E.7.b Figur E.7.c15 s 209406 4 s 6,6 7 s 594308 4 s 13,210 s 765385 4 s 9,3 6 s 172248 4 s 16,2

Figur E.7.d Figur E.7.e8 s 72861 4 s 12,4 17 s 348785 4 s 5,8

6 s 730574 4 s 14,9 12 s 181227 4 s 8,2

Figur E.7.f20 s 257770 4 s 4,914 s 166515 4 s 7,1

E.4.4 Vurdering af resultater

Det vurderes, at billedanalysen ikke overholder de opstillede krav i kravspecifika-tionen på behandling af 25 billeder per sekund. Som det ses af den sidste test, ersystemet ved et realistisk drifscenarie i stand til at behandle 7,1 billede per sekund.

135

Page 150: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

FEl-diagram ogprintudlæg

F.1 Komponentliste

F.1.1 Robotcontroller

Komponent VærdiHalvledereD3 3mm LEDD4 BAT85IC1 PIC16F877IC2,IC3 L293DIC4 SP232AU5 7805DiverseU9 BIM2-64Q1 20MHz xtalJ1 ModularstikModstandeR1 845RR2,R3 10kR4 5RR5 4k99R6 470RR8 6k04KondensatorerC1,C6,C8,C14,C15,C16 100nFC2 120nFC3,C4 22pC7,C9 100uFC10,C11,C12,C17 1uF

136

Page 151: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

APPENDIKS F. EL-DIAGRAM OG PRINTUDLÆG

5 5

4 4

3 3

2 2

1 1

DD

CC

BB

AA

1<

Rev

Cod

e>

Bas

esta

tion

A

11

Thu

rsda

y, D

ecem

ber

19, 2

002

Titl

e

Siz

eD

ocum

ent N

umbe

rR

ev

Dat

e:S

heet

of

+5V

+9V

+5V

+5V

+5V

C25

1uF

D5

BA

T85

U10

BIM

2-64

1 2 3 4 5 6 7 8 9101112131415161718

GN

DA

NT

EN

NA

RF

GN

DN

CG

ND

NC

NC

NC

GN

DG

ND

CD

*R

XDAF

TX

DT

X S

ELE

CT

*R

X S

ELE

CT

*V

CC

GN

D

U14

A

74H

C40

75

1 29

8

U15

MA

X23

8

7323165181921101213141115

642217212420

R1I

NR

2IN

R3I

NR

4IN

T1I

NT

2IN

T3I

NT

4IN

C1+C1-

C2+C2-V+V-

R1O

UT

R2O

UT

R3O

UT

R4O

UT

T1O

UT

T2O

UT

T3O

UT

T4O

UT

C13

100n

FC

110

0nF

C22

100n

F

J2A

1A2A3A4A5A6A7A8A9A

C26

1uF

R6

C23

1uF

C24

1uF

D3

C5

100u

F

IC5

7805

31

INO

UT

Figur F.1: El-diagram over basestation.

137

Page 152: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

F.1. KOMPONENTLISTE

5 5

4 4

3 3

2 2

1 1

DD

CC

BB

AA

<D

oc>

1.1

Con

trol

ler

for

LEG

O-r

obot

A3

11

Thu

rsda

y, D

ecem

ber

19, 2

002

Titl

e

Siz

eD

ocum

ent N

umbe

rR

ev

Dat

e:S

heet

of

Rot

atio

nBR

otat

ionA

AN

_EX

P0

AN

_EX

P1

DIG

_EX

P2

DIG

_EX

P1

DIG

_EX

P0

+9V

+9V

+5V

+5V

+5V

+5V

+5V

+5V

+5V

+9V

+9V

+5V

+5V

+9V

D3

C12

1uF

Q1

C14

100n

F

C17

1uF

C16

100n

F

IC4

SP

232A

1 3 4 5 2 6

12 9

11 1013 8

14 7

C1+

C1-

C2+

C2-

V+

V-

R1O

UT

R2O

UT

T1I

NT

2IN

R1I

NR

2IN

T1O

UT

T2O

UT

C10

1uF

C3

22p

R1

845R

MG

1

MO

TO

RH

12

MG

1

MO

TO

RV

12

BT

1

1 2

C4

22p

J1A

1A2A3A4A5A6A7A8A9A

IC3

L293

D

2 7 10 15 1 9

3 6 11 14

8

1A 2A 3A 4A 1,2E

N3,

4EN

1Y 2Y 3Y 4Y

VCC2

C2

470u

F

R2

10k

U5

7805

/TO

92

31

INO

UT

R6

470R

C7

100u

F

MG

1

MO

TO

RG

12

R8

6k04

C2

120n

F

C1

100n

F

R4

5R

IC1

PIC

16F

877

1

2 3 4 5 6 7 8 9 10

11

12

1314 1516171819202122 2324252627282930

31

32

33 34 35 36 37 38 39 40

MC

LR*/

VP

P

RA

0/A

N0

RA

1/A

N1

RA

2/A

N2/

VR

EF

-R

A3/

AN

3/V

RE

F+

RA

4/T

0CK

IR

A5/

AN

4/S

S*

RE

0/R

D*/

AN

5R

E1/

WR

*/A

N6

RE

2/C

S*/

AN

7

VDD

VSS

OS

C1/

CLK

INO

SC

2/C

LKO

UT

RC

0/T

1OS

O/T

1CK

IR

C1/

T1O

SI/C

CP

2R

C2/

CC

P1

RC

3/S

CK

/SC

L

RD

0/P

SP

0R

D1/

PS

P1

RD

2/P

SP

2R

D3/

PS

P3

RC

4/S

DI/S

DA

RC

5/S

DO

RC

6/T

X/C

KR

C7/

RX

/DT

RD

4/P

SP

4R

D5/

PS

P5

RD

6/P

SP

6R

D7/

PS

P7

VSS

VDD

RB

0/IN

TR

B1

RB

2R

B3/

PG

MR

B4

RB

5R

B6/

PG

CR

B7/

PG

D

D4

BA

T85

R5

4k99

R3

10k

C6

100n

FC

810

0nF

C9

100u

F

IC2

L293

D

2 7 10 15 1 9

3 6 11 14

812

1A 2A 3A 4A 1,2E

N3,

4EN

1Y 2Y 3Y 4Y

VCC2GND

C11

1uF

C15

100n

F

BIM

2-64

1 2 3 4 5 6 7 8 9101112131415161718

GN

DA

NT

EN

NA

RF

GN

DN

CG

ND

NC

NC

NC

GN

DG

ND

CD

*R

XDAF

TX

DT

X S

ELE

CT

*R

X S

ELE

CT

*V

CC

GN

DFigur F.2: El-diagram over basestation.

138

Page 153: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

APPENDIKS F. EL-DIAGRAM OG PRINTUDLÆG

F.1.2 BasestationKomponent VærdiHalvledereU14 74HC4075U15 MAX238IC5 7805D5 BAT85KondensatorerC5 100uFC13,C22 100nFC23,C24,C25,C26 1uFDiverseU10 BIM2-64J2 CONN ASY DSU

Figur F.3: Komponentplacering

139

Page 154: 5. SEMESTER DECEMBER 2002 - Aalborg Universitetkom.aau.dk/group/02gr504/PDF/rapport.pdf · this purpose the Dijkstra Shortest Path algorithm is used. Based on the paths a robot is

F.1. KOMPONENTLISTE

Figur F.4: Print top layer

Figur F.5: Print bottom layer

140