Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för...

71
Positionering och kartuppbyggnad med avståndsmätande laser Examensarbete utfört i Reglerteknik vid Tekniska Högskolan i Linköping av Jonas Kjellander LiTH-ISY-EX-3388-2003 Linköping 2003

Transcript of Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för...

Page 1: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Positionering och kartuppbyggnad med avståndsmätande laser

Examensarbete utfört i Reglerteknik vid Tekniska Högskolan i Linköping

av

Jonas Kjellander

LiTH-ISY-EX-3388-2003

Linköping 2003

Page 2: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Positionering och kartuppbyggnad med avståndsmätande laser

Examensarbete utfört i Reglerteknik vid Tekniska Högskolan i Linköping

av

Jonas Kjellander

LiTH-ISY-EX-3388-2003

Handledare: Tekn. Dr. Jonas Nygårds, FOI

Prof. Åke Wernersson, FOI Lic. Rickard Karlsson, ISY

Examinator:

Tekn. Dr. Mikael Norrlöf, ISY

Page 3: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Avdelning, Institution Division, Department

Institutionen för Systemteknik 581 83 LINKÖPING

Datum Date 2003-05-16

Språk Language

Rapporttyp Report category

ISBN

X Svenska/Swedish Engelska/English

Licentiatavhandling X Examensarbete

ISRN LITH-ISY-EX-3388-2003

C-uppsats D-uppsats

Serietitel och serienummer Title of series, numbering

ISSN

Övrig rapport ____

URL för elektronisk version http://www.ep.liu.se/exjobb/isy/2003/3388/

Titel Title

Positionering och kartuppbyggnad med avståndsmätande laser Positioning and Mapping using Range Finding Laser

Författare Author

Jonas Kjellander

Sammanfattning Abstract This master thesis includes a description of how a number of sensors are put together in a sensor platform. It also gives a description of how localization and mapping has been performed with data collected from the sensor platform. Localization is a prerequisite for most of the tasks that can be requested from an autonomous mobile robot. In many situations the GPS signal is not available and hence an additional localization system is required. One approach is to apply localization based on landmarks extracted from the robots surrounding. Using e.g. a scanning range finding laser landmarks can be extracted from the robots surrounding. Localization and mapping is performed with an extended kalman filter where the robots and the landmarks positions are represented as states. The positioning algorithm is finally tested in indoor environment using lines and line segments as landmarks. The landmarks are extracted from measurement data from the scanning range finding laser. This master thesis is a part of a larger project which purpose is to investigate the benefit of cooperation between several mobile robots.

Nyckelord Keyword positionering, kartuppbyggnad, avståndsmätande laser, extended kalmanfilter, kalmanfilter

Page 4: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Sammanfattning I detta examensarbete beskrivs hur ett antal sensorer sätts samman till en sensorplattform, därefter beskrivs hur positionering och kartuppbyggnad utförs med data insamlad från sensorplattformen. Positionering är en förutsättning för de flesta uppgifter som rörliga autonoma robotar kan tänkas utföra. I många situationer är GPS signaler inte tillgängliga och ett kompletterande positioneringssystem är nödvändigt. Ett sätt att utföra positionering utan GPS är att relatera robotens position till landmärken i dess omgivning. Med hjälp av t.ex. en svepande avståndsmätande laser kan landmärken extraheras ur mätningar gjorda på omgivningen. Positioneringen och kartuppbyggnaden utförs genom att robotens och landmärkenas positioner införs som tillstånd i ett extended kalmanfilter. Positioneringsmetoden testas slutligen i inomhusmiljö genom att linjer och linjesegment används som landmärken. Landmärkena är extraherade ur mätdata från en svepande avstånsmätande laser. Detta examensarbete ingår i ett större projekt vars syfte är att undersöka fördelar med flera samverkande robotar.

Page 5: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

1 Introduktion .................................................................................................1

1.1 Bakgrund till examensarbetet.............................................................1 1.2 Principer för positionering .................................................................1 1.3 Syfte ...................................................................................................2 1.4 Begränsningar ....................................................................................2 1.5 Rapportens disposition.......................................................................2 1.6 Förkortningar .....................................................................................4 1.7 Beteckningar ......................................................................................4

2 Sensorplattformen........................................................................................6 2.1 Farkosten............................................................................................6 2.2 Beräkning av farkostens förflyttning .................................................7 2.3 Sensorer .............................................................................................9

2.3.1 Avståndsmätande laser..................................................................9 2.3.2 GPS mottagaren ..........................................................................11 2.3.3 Vinkelförändringsgivare..............................................................11

2.4 Dator och operativsystem.................................................................11 2.5 Dataöverföring mellan sensorplattformar ........................................12 2.6 Sensorplattformens programstruktur................................................12

2.6.1 Sensorprogram ............................................................................13 2.6.2 Datalagringsprogram...................................................................14 2.6.3 Nätverksprogram.........................................................................14

3 Teori för kalmanfilter och associering.......................................................16 3.1 Kalmanfilter .....................................................................................16 3.2 Extended kalmanfilter ......................................................................16 3.3 Associering ......................................................................................17

4 Positionering..............................................................................................19 4.1 Simulerad positionering ...................................................................19

4.1.1 Systemuppdatering ......................................................................22 4.1.2 Processbrus..................................................................................25 4.1.3 Mätmodellen ...............................................................................27

4.2 Positionering med verklig data.........................................................28 4.2.1 Systemuppdatering ......................................................................30 4.2.2 Processbrus..................................................................................30 4.2.3 Mätmodellen ...............................................................................32 4.2.4 Associering av objekt ..................................................................35 4.2.5 Lägga till nya objekt....................................................................37

5 Extraktion av objekt ur laserdata ...............................................................40 5.1 Linjesegmentsobjekt ........................................................................40

5.1.1 Extraktion av linjesegment ur laserdata ......................................40 5.1.2 Behandling av linjesegmentskandidater ......................................41 5.1.3 Kovariansmatrisen för linjesegmentobjekt..................................43

5.2 Linjeobjekt .......................................................................................46 5.2.1 Extraktion av linjeobjekt ur laserdata..........................................48 5.2.2 Houghtransformen.......................................................................48 5.2.3 Inställning av Houghtransformen................................................49

Page 6: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

5.2.4 Kovariansmatrisen för linjeobjekt ...............................................50 5.2.5 Segmentering av linjeobjekt........................................................52

6 Experiment ................................................................................................53 6.1 Positionering med linjesegmentsobjekt............................................53 6.2 Positionering med linjeobjekt ..........................................................58

7 Slutsatser och fortsatt arbete......................................................................61 7.1 Slutsatser ..........................................................................................61 7.2 Förslag till fortsatt arbete .................................................................61

8 Referenser..................................................................................................63

Page 7: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Introduktion . .

1

1 Introduktion Detta examensarbete är utfört åt Institutionen för Data & Sensorfusion som tillhör avdelningen ledningssystem vid Totalförsvarets Forskningsinstitut (FOI) i Linköping. En del av institutionens forskning kring autonoma robotar utförs i samarbete med Institutionen för Konstruktions och Produktionsteknik (IKP) vid Linköpings universitet.

1.1 Bakgrund till examensarbetet Detta examensarbete är en del av ett större projekt som undersöker egenskaper och möjliga tillämpningar för autonoma mobila robotar i militära applikationer. Intressanta tillämpningar är

Semiautonoma förelöpare till ett större fordon. Förelöparna ska vara offringsbara och förväntas utföra exempelvis rekognosering.

Självständiga övervakningsrobotar som arbetar i riskabla miljöer. Oavsätt tillämpning behöver en autonom robot en robust positioneringsmetod. Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2]. Några faktorer är gemensamma för alla metoder, framförallt valet av sensorer och det faktum att möjligheten till samarbete mellan flera robotar ger stora fördelar. Den vanligaste sensorkombinationen är vinkelförändringsgivare monterade på hjulen, avståndsmätande sensorer och GPS-mottagare. Det här examensarbetet är framförallt inriktat på att utföra positionering då GPS signaler inte är tillgängliga. Tillfällen då GPS signaler inte är tillgängliga förekommer relativt ofta t.ex. i närheten av stora byggnader eller i inomhusmiljö. Som utgångspunkt för positioneringsalgoritmen används ett extended kalmanfilter, vilket används i forskningsarbete vid IKP för att simulera positionering med flera robotar och objekt [3]. Examensarbetet är utfört i nära samarbete med ett annat examensarbete [4]. Samarbetet har till största delen rört positioneringsalgoritmer och positioneringsexperiment med en robot. Ett område som endast beskrivs i detta examensarbete är uppbyggnaden av de program som används för att kommunicera med sensorerna. Områden som endast berörs i [4] är upptäckt av förändring och positioneringsexperiment med två robotar.

1.2 Principer för positionering Robust positionering är en grundförutsättning för de flesta uppgifter som rörliga autonoma robotar kan tänkas utföra. Ett enkelt sätt att utföra positionering av en robot är att beräkna robotens position utgående från hjulens vinkelförändring, så kallad dödräkning. Att på detta sätt beräkna robotens position innebär att eventuella fel ackumuleras vilket i sin tur gör att osäkerheten om robotens position ökar desto längre sträcka den färdas. För att undvika att osäkerheten om robotens position ökar måste robotens position kunna relateras till omgivningen.

Page 8: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Introduktion . .

2

Sensorer som är fästa på roboten och gör mätningar på robotens omgivning innebär att robotens position kan relateras till omgivningen. Från sensorerna kan roboten extrahera mätningar på landmärken. Genom att associera mätningarna med kända landmärken i en karta kan en uppdatering av robotens position göras. I vissa tillämpningar kan förhandsinformation om omgivningen vara tillgänglig, i andra kan förhandsinformation helt saknas. I fall då förhandsinformation helt saknas måste roboten samtidigt som den bygger en karta uppdatera sin position med densamma. Detta problem brukar kallas simultaneous localization and mapping (SLAM). Utgående från en startposition extraherar roboten landmärken från mätningar på omgivningen och sparar deras position. Så länge alla landmärken är synliga kan roboten i teorin bestämma sin position med samma säkerhet som första gången den gjorde mätningar på landmärkena. Genom att lägga till nya landmärken i kartan samtidigt som den gör mätningar på gamla landmärken kan roboten utvidga sin karta med fortsatt god uppfattning om den egna positionen.

1.3 Syfte Syftet med examensarbetet är att sätta samman ett antal sensorer till en fungerande sensorplattform, vilken ska vara anpassad för att monteras på bandvagnen som visas i figur 2-1. Data från sensorerna ska via ett trådlöst nätverk kunna hämtas av andra liknande sensorplattformar eller av andra datorer som är anslutna till samma nätverk som sensorplattformen. Möjlighet skall även finnas att spara data från sensorerna i en fil. Då sensorplattformen fungerar ska existerande algoritmer för simulering av positionering och kartuppbyggnad modifieras så att positionering och kartuppbyggnad kan utföras utgående från verklig data. Dessa algoritmer ska sedan testas med data insamlad från sensorplattformen.

1.4 Begränsningar Vid positioneringen har vissa förenklingar gjorts. En förenkling är att objekten och roboten antas befinna sig i samma plan dvs. positioneringsalgoritmen arbetar i två dimensioner. En annan förenkling är att positioneringen utförts på insamlade mätningar och inte i realtid. Ytterligare en förenkling är att antalet objekt som används vid positionering antas vara så få att beräkningstiden inte blir för stor.

1.5 Rapportens disposition Arbetet och resultaten i denna rapport är presenterade på följande sätt: Kapitel 1 I detta kapitel beskrivs bakgrunden till examensarbetet följt av en

introduktion till positionering och kartuppbyggnad.

Page 9: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Introduktion . .

3

Kapitel 2 Beskrivning av sensorplattformen och de dataprogram som används för att kommunicera med sensorerna.

Kapitel 3 Introduktion till teorin för kalmanfilter och associering. Detta

kapitel kan hoppas över av den läsare som är bekant med teorin för kalmanfilter och extended kalmanfilter.

Kapitel 4 I detta kapitel beskrivs först de algoritmer för simulering och

kartuppbyggnad med flera samverkande robotar som används som utgångspunkt för positionering och kartuppbyggnad. Sedan följer en beskrivning av de ändringar och tillägg som utförts för att verkliga mätningar från en avståndsmätande laser ska kunna införas i algoritmerna.

Kapitel 5 I detta kapitel beskrivs hur två typer av landmärken extraherats

från mätningar utförda av den svepande avståndsmätande lasern. De landmärken som extraherats är linjesegmentsobjekt och linjeobjekt.

Kapitel 6 Beskrivning av resultat från test av algoritmerna för positionering

och kartuppbyggnad utförd i inomhusmiljö. Kapitel 7 Förslag till fortsatt arbete samt slutsatser dragna från bakgrunden

till examensarbetet och resultaten från experimenten utförda i kapitel 6.

Page 10: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Introduktion . .

4

1.6 Förkortningar EKF Extended kalmanfilter. FOI Totalförsvarets forskningsinstitut. GPS Global positioning system. IKP Institutionen för konstruktions och produktionsteknik. IMU Inertial measurement unit. LiTH Linköpings tekniska högskola. NNSF Nearest neighbor standard filter. SLAM Simultaneous localization and mapping. W-LAN Wireless local area network.

1.7 Beteckningar a Hough parameter som beskriver stegvidden. C Houghtransformens värden. d2 Mahalanobisavståndet. D Matris innehållande mahalanobisavstånd. δs Förflyttad sträcka för farkostens axelcentrum. δx, δy Relativ förflyttning av farkostens x respektive y position. δϕ Vinkelförändring av farkostens position. ∆d Hough avståndssteg. ∆ϕ Hough vinkelsteg. eφ Funktion som beräknar farkostens vridning med hjälp av

hjulens vinkelförändring och farkostens geometri. es Funktion som beräknar farkostens förflyttning med hjälp av

hjulens vinkelförändring och farkostens geometri. f Systemfunktion för EKF. F Systemmatris för det linjära kalmanfiltret g Funktion som transformerar en mätning från ett robotrelativt

koordinatsystem till det jordfasta koordinatsystemet. gh Viktfunktion för Houghtransformen. G Matris som påverkar styrsignalerna till det linjära

kalmanfiltret. Gx Jacobian av g med avseende på x för EKF. Gz Jacobian av g med avseende på z för EKF. γ Hough vinkel. h Mätfunktion för EKF. H Mätmatris för det linjära kalmanfiltret och jacobianen av h med avseende på x för EKF. I Identitetsmatrisen. k Tidsindex i EKF. K Kalmanförstärkningen. Ld Det kortaste avståndet mellan farkostens nuvarande

axelcentrum och axelcentrum vid föregående tidpunkt. Lrc Radie från farkostens rotationscentrum till axelcentrum.

Page 11: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Introduktion . .

5

Lrh Radie från farkostens rotationscentrum till höger hjul. Lrv Radie från farkostens rotationscentrum till vänster hjul. Lh Längd i Houghtransformen. M Rotationsmatris. η Avståndet mellan en mätpunkt och punkten som representerar

ett objekt. P Kovariansmatrisen för skattningsfelet i EKF. Q Processbrusets kovariansmatris. R Mätbrusets kovariansmatris. ρ Ortogonala avståndet till en Houghlinje. sh Förflyttad distans för höger hjul. sv Förflyttad distans för vänster hjul. S Kovariansen för innovationen i EKF. σϕ Standardavvikelse för mätningar av riktningen på linjer och

linjesegment. σl Standardavvikelse för mätningar på linjer och linjesegment i

deras längdriktning. σr Standardavvikelse för mätningar på linjer och linjesegment i

deras normalriktning. u Insignaler till kalmanfiltret. ua Avståndet mellan höger och vänster hjul. uθh Vinkelförändring för höger hjul. uθv Vinkelförändring för vänster hjul. urv Vänster hjulradie. urh Höger hjulradie. us Styrsignal till robot, önskad förflyttning. uφ Styrsignal till robot, önskad vridning. v Mätbrus. V Jacobian av h med avseende på v. w Systembrus för kalmanfilter och EKF. wh Fönsterfunktion för houghtransformen. W Jacobian av f med avseende på systembruset w. x, x Tillståndsvektorn och estimerat tillstånd i process och

mätmodellen. z, z Mätningar och förväntade mätningar.

Page 12: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Sensorplattformen . .

6

2 Sensorplattformen Då examensarbetet påbörjades var intentionen att en sensorplattform skulle sättas samman genom att bandvagnen i figur 2-1 utrustades med ett antal sensorer. Denna bandvagn saknar dock ett fungerande styrsystem. Ett annat examensarbete som utförs vid IKP syftar dock till att utveckla ett sådant [5].

Figur 2-1: Bandvagnen som ska bära sensorplattformen. Eftersom bandvagnen inte kunde användas som sensorbärare brukades istället en vagn till detta. Denna vagn utrustad med ett antal sensorer kommer i fortsättningen hänvisas till som farkosten.

2.1 Farkosten Farkosten består av en fyrhjulig vagn utrustad med en dator och ett antal sensorer. De sensorer som farkosten är utrustad med är en svepande avståndsmätande laser, två vinkelmätande sensorer monterade på vardera bakhjulet och en GPS-mottagare. Den avståndsmätande svepande lasern är placerad på vagnen så att avståndsmätningarna utgår från en position rakt ovanför bakaxelns centrum. Farkosten styrs med hjälp av de båda framhjulen medan bakhjulen är passiva, oberoende och rullar fritt. Farkosten är två meter lång, en meter bred och har luftfyllda gummihjul, som ger bra friktion vid låga hastigheter. Farkosten saknar egen drivning och måste förflyttas för hand eller dras av ett annat fordon. Ett foto av vagnen utrustad med den avståndsmätande lasern och de vinkelförändringsmätande sensorerna visas i figur 2-2.

Page 13: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Sensorplattformen . .

7

Figur 2-2: Vagnen på bilden har utrustats med vinkelmätande sensorer på vardera bakhjulet och en avståndsmätande svepande laser är placerad mitt ovanför centrum av bakaxeln.

2.2 Beräkning av farkostens förflyttning I detta avsnitt beräknas den förflyttning farkosten utfört mellan två avläsningar av vinkelförändringsgivarna. Den förflyttning som söks är den sträcka som axelcentrum, där lasern är placerad, har färdats samt vinkelförändringen av bakaxeln. Den sökta sträckan benämns δφ och den sökta vinkelförändringen benämns δφ. Då farkostens förflyttning beräknas görs antagandet att farkostens rörelse, under ett samplingsintervall, går att beskriva som en rörelse längs en cirkelbåge [6]. De variabler som används vid beräkning av farkostens förflyttning är vinkelförändringen för höger bakhjul under ett sampelintervall (uθh), vinkelförändringen för vänster bakhjul under ett sampelintervall (uθv), radien för höger bakhjul (urh), radien för vänster bakhjul (urv) och avståndet mellan de båda bakhjulen (ua). I figur 2-3 visas förflyttningen som farkosten utfört under ett samplingsintervall genom att farkostens bakhjul och bakaxel visas vid tidpunkterna k-1 och k.

Page 14: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Sensorplattformen . .

8

Figur 2-3 : I figuren visas bakaxeln till farkosten vid två på varandra efterföljande tidpunkter. Nedan definieras de variabler som används i figur 2-3 δφ Ändring av vagnens riktning. δs Förflyttad distans för axelcentrum. sh Förflyttad distans för höger hjul sv Förflyttad distans för vänster hjul. urh Höger hjulradie. urv Vänster hjulradie. ua Avståndet mellan höger och vänster hjul. uθh Vinkelförändring för höger hjul. uθv Vinkelförändring för vänster hjul. Lrc Radie från rotationscentrum till axelcentrum. Lrh Radie från rotationscentrum till höger hjul. Lrv Radie från rotationscentrum till vänster hjul. es Funktion som beräknar farkostens förflyttning med hjälp av

hjulens vinkelförändring och farkostens geometri. eφ Funktion som beräknar farkostens vinkelförändring med hjälp

av hjulens vinkelförändring och farkostens geometri. Tabell 2-1: Variabler som används för att beräkna farkostens relativa förflyttning. Nedan beräknas δφ och den sträcka δs som farkosten färdats under ett sampelintervall dvs. mellan tidpunkterna k och k-1. Utgående från farkostens geometri och vinkelförändringen för de båda bakhjulen på farkosten beräknas funktionen

Page 15: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Sensorplattformen . .

9

=

),,,,(),,,,(

arvrhvh

arvrhvhs

uuuuueuuuuues

θθϕ

θθ

δϕδ

. ( 2-1)

Några grundläggande samband ges av ekvationerna nedan.

δϕθ rvvrvv Luus == ( 2-2) δϕθ rhhrhh Luus == ( 2-3)

δϕδ rcLs = ( 2-4)

arhrv uLL =− ( 2-5)

2rvrh

rcLL

L+

= . ( 2-6)

Ekvation (2-2), (2-3) och (2-5) ger

( )hrhvrva

uuuuu θθδϕ −=1 , ( 2-7)

och (2-2)- (2-5) och (2-7) ger

( ) ( )hrhvrvrhrv uuuuLLs θθδϕδϕδ +=+=21

21 . ( 2-8)

Funktionen som beräknar farkostens vinkelförändring och den sträcka som farkosten färdats blir följaktligen

( )

( )

+=

=

hrhvrva

hrhvrv

arvrhvh

arvrhvhs

uuuuu

uuuu

uuuuueuuuuues

θθ

θθ

θθϕ

θθ

δϕδ

121

),,,,(),,,,(

. ( 2-9)

2.3 Sensorer De sensorer som är inkopplade till sensorplattformen är en svepande avståndsmätande laser, en GPS-mottagare och två sensorer som mäter vinkelförändring.

2.3.1 Avståndsmätande laser Den svepande avståndsmätande lasern kommer från tillverkaren SICK [7]. Den kan maximalt svepa över en sektor på 180 grader och göra två avståndsmätningar per grad. Lasern kan även göra fyra mätningar per grad, den sektor som avsöks är då 100 grader. Om lasern är ansluten till en RS422 serieport, som har en överföringshastighet på 500 kbaud, uppdateras varje mätpunkt i ett lasersvep var 13 ms om en avståndsmätning görs per grad, var 26 ms om två avståndsmätningar görs per grad och var 53 ms om fyra avståndsmätningar görs per grad. Lasern är dock ansluten till datorn på sensorplattformen via en RS232 serieport som har en maximal överföringshastighet på 38.4 kbaud. Denna överföringshastighet gör att lasersvep kan överföras till datorn med ca 3 Hz då lasern sveper 180 grader och tar två mätningar per grad.

Page 16: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Sensorplattformen . .

10

Figur 2-4: Typiskt lasersvep från inomhusmiljö.

Figur 2-5: Sensorplattformen i den position där lasersvepet i figur2-4 är taget. I figur 2-4 visas ett lasersvep från inomhusmiljö. Lasern befinner sig i origo, den är inställd att svepa 180 grader och göra två avståndsmätningar per grad. Sensorplattformen befinner sig i ett stort rum och lasern är riktad mot en dörröppning. Ett foto av sensorplattformen då den befinner sig på den plats där lasersvepet i figur 2-4 är taget visas i figur 2-5.

Page 17: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Sensorplattformen . .

11

2.3.2 GPS mottagaren GPS-mottagaren är av märket Allstar från tillverkaren Bae Systems Canada inc. Den levererar data med en hastighet av 1 Hz. Denna sensor har anslutits till sensorplattformen men data från den används ej i detta examensarbete.

2.3.3 Vinkelförändringsgivare Då experiment utförs monteras sensorplattformen på en vagn utrustad med sensorer som mäter bakhjulens vinkelförändring. Sensorerna är från tillverkaren FAULHABER och har tre kanaler vardera. Figur 2-6 visar de tre kanalerna från en av sensorerna. På kanalerna A och B levererar sensorn 500 pulser per varv och på kanal I levereras en puls per varv. Kanal A och B är förskjutna en halv pulslängd i förhållande till varandra. Om pulsen på kanal A kommer före pulsen på kanal B så vrids sensorn medurs vilket är fallet i figur 2-6. Genom att räkna både positiv och negativ flank på både kanal A och kanal B fås en upplösning som är 2000 steg per varv.

Figur 2-6: A , B och I är utsignaler från en sensor. Tiden mellan två positiva flanker på A eller B motsvarar den tid det tagit för sensorn att vridas en femhundradels varv. Om A blir hög då B fortfarande är låg vrids sensorn medurs. Signalen I blir hög en gång per varv.

2.4 Dator och operativsystem Den enhet som sköter kommunikationen med sensorerna är en PC-104 med QNX som operativsystem. För att tillåta dataöverföring mellan flera samverkande sensorplattformar är även ett trådlöst nätverk anslutet till datorn. Det trådlösa nätverket är ett W-LAN från tillverkaren D-Link. En PC-104 är i princip en vanlig PC som anpassats för inbyggda och mobila system. Den är liten, strömsnål, stöttålig och drivs med batterier. QNX är ett realtidsoperativsystem som till sin uppbyggnad är ganska likt operativsystemen UNIX och LINUX. Enligt [8] finns det i QNX ett speciellt stöd för att skriva drivrutiner för externa

Page 18: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Sensorplattformen . .

12

enheter, t ex sensorer. Drivrutiner som skrivs med hjälp av detta stöd kallas resurshanterare. En resurshanterare är ett program som skapar ett gränssnitt mot sökvägsrymden genom operativsystemets standard I/O-funktioner. Till operativsystemet QNX finns ett program som heter Phindos. Detta program ger möjlighet att logga in på datorn via ett nätverk, vilket är smidigt eftersom man slipper att ha skärm och tangentbord kopplat till datorn på sensorplattformen då experiment utförs.

2.5 Dataöverföring mellan sensorplattformar Samverkan mellan flera robotar förutsätter att dessa har tillgång till data från varandras sensorer. För att uppnå detta måste de kommunicera med varandra på något sätt. I detta examensarbete förutsätts att robotarna kommunicerar via ett trådlöst nätverk. För att göra data från en sensor tillgänglig för andra datorer som är anslutna till nätverket används fyra typer av datorprogram. Varje sensor ansluten till sensorplattformen har ett sensorprogram, ett datalagringsprogram och ett nätverksprogram. Sensorprogrammet sköter all kommunikation med sensorn. Detta program anropas i sin tur av datalagringsprogrammet som lagrar information från sensorn på en fil, eller av nätverksprogrammet som skickar information från sensorn vidare till en annan dator. Ett scenario där två sensorer är inkopplade till sensorplattformen visas i figur 2-7.

Figur 2-7: Exempel på hur programstrukturen och dataflödet kan se ut då två sensorer är inkopplade till sensorplattformen och två externa datorer hämtar data från sensor 1 via nätverket.

2.6 Sensorplattformens programstruktur Till varje sensor ansluten till sensorplattformen behövs tre typer av program för att göra data från sensorn tillgänglig för andra datorer via nätverket. Ett scenario

Page 19: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Sensorplattformen . .

13

där två sensorer är inkopplade till sensorplattformen och två externa datorer hämtar data från en sensor vi nätverket visas i figur 2-7. Som en del i detta examensarbete har sensorprogram, datalagringsprogram och nätverksprogram skrivits för den svepande avståndsmätande lasern och för GPS-mottagaren. Samtliga dataprogram som används av sensorplattformen är skrivna i programmeringsspråket C++. Eftersom vagnen är en temporär lösning, i väntan på ett fungerande styrsystem till bandvagnen i figur 2-1, har inga program skrivits för vinkelförändringsgivarna. Då experiment utförts med vagnen har programmen till lasern modifierats så att även data från vinkelförändringsgivarna lagrats med dessa.

2.6.1 Sensorprogram För varje sensor finns ett sensorprogram som sköter all kommunikation med sensorn. Sensorprogrammet anropas av andra program som handhar information från sensorn. Sensorprogrammen är skrivna som resurshanterare. En resurshanterare är ett program som skapar ett gränssnitt mot sökvägsrymden genom operativsystemets I/O-funktioner som används för att kommunicera med t.ex. serieporten, diskettstationen, etc. Då ett sensorprogram skrivits har en tom resurshanterare använts som utgångspunkt. En tom resurshanterare kan anropas med alla standard I/O-funktioner i operativsystemet men ingen av funktionerna utför något. Den tomma resurshanterare som använts som utgångspunkt då sensorprogrammen skrivits är hämtad från [8]. Då en resurshanterare startas hamnar dess namn i den allmänna sökvägsrymden och den kan anropas av operativsystemets standard I/O-funktioner. De av operativsystemets standard I/O-funktioner som är överlagrade så att något utförs när de anropas är:

Open Då funktionen Open anropas skickas meddelade till sensorn om att data ska börja sändas. Därefter startas en tråd som med ett visst tidsintervall hämtar data från serieporten. Denna tråd är skyddad av ett lås som gör att det inte startas flera trådar om det är flera klienter som begär data från resurshanteraren samtidigt. Då tråden upptäcker att ett nytt datapaket börjar överföras från sensorn avläses datorns interna klocka och tiden vid avläsningen adderas till datapaketet från sensorn. Valet av hur stort tidssteget ska vara mellan varje avläsning av serieporten avgörs av två saker. Dels hur noga tidsmärkningen ska vara, dels hur mycket resurshanteraren får belasta processorn. För en noggrann tidsmärkning av datapaketet krävs täta avläsningar av serieporten, men att hämta många små datamängder från en serieport är mer resurskrävande än att hämta några stora datamängder. Då ett nytt datapaket är helt överfört från sensorn meddelar tråden funktionerna IOnotify och Select att ett datapaket levererats från sensorn.

Close

Då funktionen Close anropas av en klient avslutas tråden som läser av serieporten, förutsatt att ingen annan klient också har öppnat resurshanteraren.

Page 20: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Sensorplattformen . .

14

Read Då funktionen Read anropas av en klient returneras det antal bytes klienten har begärt att få. Om antalet byte som klienten läser är färre än det antal byte som datapaketet innehåller får klienten följaktligen inte hela datapaketet. Om antalet byte som klienten läser är fler än det antal byte datapaketet innehåller returneras meddelandet fil slut i de överflödiga bytena.

IOnotify Med funktionen IOnotify kan en klient begära att bli meddelad då ett nytt datapaket har överförts från sensorn och är klart för att hämtas med funktionen read.

Select Funktionen Select fungerar på samma sätt som IOnotify.

Funktionerna som används för att kommunicera med den svepande avståndsmätande lasern från tillverkaren SICK bygger på koden till robotservern Player [9]. Player är skriven för operativsystem LINUX och hanterar ett antal olika sensorer. Funktionerna som sköter kommunikationen med lasern har lyfts ut ur programmet och anpassats för operativsystemet QNX. Funktioner för kommunikation med GPS-mottagaren erhölls från Sven Rönnbäck som är doktorand vid Luleå Universitet även dessa funktioner var skrivna för operativsystemet LINUX och fick följaktligen anpassas till operativsystemet QNX.

2.6.2 Datalagringsprogram För varje sensorprogram finns ett datainsamlingsprogram som lagrar data från sensorn på en fil. Då datalagringsprogrammet startas anges hur många datapaket som skall lagras på filen. Om lagringen önskas avbrytas innan det antal mätningar som angavs då programmet startades har lagrats görs detta genom ett tryck på någon av bokstavstangenterna följt av inmatningstangenten. När datalagringsprogrammet startas öppnas sensorprogrammet med funktionen Open. Funktionen Select används av datalagringsprogrammet för att få meddelande om när det finns ett nytt datapaket att hämta i sensorprogrammet. Datapaketet hämtas från sensorprogrammet med funktionen read. Då ett datapaket är hämtat från sensorprogrammet lagras det på filen. Då önskat antal datapaket lagrats på filen stängs sensorprogrammet med funktionen Close och sedan avslutas datalagringsprogrammet.

2.6.3 Nätverksprogram Till varje resurshanterare finns ett nätverksprogram som gör data från sensorn tillgänglig på ett nätverk. Då nätverksprogrammet startas anges numret på den port som data ska överföras via. För att ta emot data på den angivna porten behövs ytterligare ett nätverksprogram. När data hämtats från sensorplattformen via det trådlösa nätverket används en toolbox till MATLAB [10]. Då två nätverksdatorer hämtar data från samma sensor måste två nätverksprogram

Page 21: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Sensorplattformen . .

15

startas. I nätverksprogrammet lagras de senaste datapaketen hämtade från sensorprogrammet. Antalet datapaket som lagras i ett nätverksprogram har valts till 100. Då 100 datapaket finns lagrade i nätverksprogrammet och ytterligare ett datapaket hämtats ersätts det äldsta datapaketet med det nya. Den dator som hämtar data från nätverksprogrammet kan begära data på ett antal olika sätt. Nedan följer en beskrivning av de olika sätt en nätverksdator kan hämta datapaket från nätverksprogrammet på:

Senaste datapaketen. Då en nätverksdator begär de senaste datapaketen skickas det antal datapaket som nätverksdatorn begärt. Det äldsta skickas först och det senaste datapaket som senast skickas sist. Om nätverksdatorn begär fler datapaket än vad som finns lagrade i nätverksprogrammets skickas datapaketen som finns lagrade.

Nästa inkommande datapaket. Om en nätverksdator begär att få nästa inkommande datapaket väntar nätverksprogrammet tills ett nytt datapaket hämtats från sensorprogrammet. Detta datapaket skickas sedan till nätverksdatorn.

De datapaket som inkommit sedan det senaste datapaketet skickades. När en nätverksdator gör denna begäran skickas de datapaket som hämtats från sensorprogrammet sedan det senaste datapaketet skickades. Om det har inkommit fler datapaket än vad som finns lagrade i nätverksprogrammet skickas de som finns lagrade.

Då ett nätverksprogram startas måste tillhörande sensorprogram redan vara startat. Det första som görs är att en Socket-server sätts upp på den angivna porten i nätverket. Koden för att sätta upp en Socket-server är hämtad ur ett program skrivet i ett teknologprojekt benämnt Marwin som utförts vid IKP. Då en Socket-server satts upp öppnas sensorprogrammet med funktionen Open. Därefter startas en tråd som hämtar data från sensorprogrammet. Tråden använder funktionen Select för att bli meddelad att sensorprogrammet mottagit ett nytt datapaket från sensorn. Då tråden meddelats att sensorprogrammet mottagit ett nytt datapaket hämtas detta med funktionen read. Det hämtade datapaketet lagras i nätverksprogrammet. Om det redan finns 100 datapaket lagrade ersätts det äldsta datapaketet.

Page 22: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Teori för kalmanfilter och associering . .

16

3 Teori för kalmanfilter och associering I detta kapitel ges en introduktion till teorin för kalmanfilter och extended kalmanfilter. Kalmanfiltret introducerades av R. E. Kalman år 1960 [11] och har sedan dess använts i många olika typer av applikationer. Den beskrivning av kalmanfilter och EKF som ges i detta kapitel är en sammanställning av en beskrivning som görs i [12], i den beskrivningen refereras till [11], [13], [14], [15], [16], [17] och [18]. Ett normalt kalmanfilter förutsätter att modellen som beskriver systemet är linjär. Många verkliga system är dock inte linjära. En metod att hantera olinjära system är extended kalmanfilter (EKF).

3.1 Kalmanfilter Under vissa förutsättningar ger ett kalmanfilter den bästa möjliga skattningen av tillstånden x givet ett antal mätningar z. Förutsättningarna är att modellen är linjär och att processbruset är vitt och gaussiskt. En linjär modell där xk representerar de sanna tillstånden vid tidssteg k och uk representerar insignalerna kan skrivas som

111 −−− ++= kkkk wGuFxx ( 3-1)

kkk vHxz += . ( 3-2) Där matrisen G anger hur insignalerna påverkar tillstånden. H är mätmatrisen och F är systemmatrisen. Processbruset som betecknas ),0(~ kk QNw och mätbruset som betecknas ),0(~ kk RNv antas vara oberoende av varandra. För en sådan modell ges tidsuppdateringen i kalmanfiltret av

1111 ˆˆ −−−− += kkkkk GuxFx ( 3-3)

1111 −−−− += kT

kkkk QFFPP . ( 3-4)

Där P är kovariansmatrisen för skattningsfelet. Mätuppdateringen i filtret ges av

kT

kkk RHHPS += −1| ( 3-5) 1

1|−

−= kT

kkk SHPK ( 3-6)

]ˆ[ˆˆ 1|1|| −− −+= kkkkkkkk xHzKxx ( 3-7)

1|| ][ −−= kkkkk PHKIP . ( 3-8) I ekvationerna ovan representerar Sk kovariansen för innovationen, I enhetsmatrisen och Kk kalmanförstärkningen.

3.2 Extended kalmanfilter Många verkliga system är olinjära. Extended kalmanfilter är ett sätt att hantera olinjära system, dock är det en suboptimal metod. I ett EKF linjariseras modellen kring det aktuella estimatet. Det finns inga garantier för att ett EKF fungerar utan det som avgör hur bra ett EKF fungerar är hur väl systemet approximeras av

Page 23: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Teori för kalmanfilter och associering . .

17

linjariseringen. En olinjär modell där xk representerar de sanna tillstånden vid tidssteg k och uk representerar insignalerna kan skrivas som

),,( 111 −−−= kkkk wuxfx ( 3-9) ),( kkk vxhz = . ( 3-10)

Tidsuppdateringen för ett EKF ges av )0,,ˆ(ˆ 11|11| −−−− = kkkkk uxfx ( 3-11)

Tkkk

Tkkkkkk WQWFPFP 11|11| −−−− += . ( 3-12)

Där

0,,ˆ 11 −−∂∂

=kkk uxk

k wfW ( 3-13)

och

0,,ˆ 11 −−∂∂

=kkk uxk

k xfF . ( 3-14)

Mätuppdateringen för ett EKF ges av Tkkk

Tkkkkk VRVHPHS += −1| ( 3-15)

11|

−−= k

Tkkkk SHPK ( 3-16)

)]0,ˆ([ˆˆ 1|1|| −− −+= kkkkkkkk xhzKxx ( 3-17)

1|1|| −− −= kkkkkkkk PHKPP . ( 3-18) Där

0,ˆ 1−∂∂

=kkxk

k xhH ( 3-19)

och

0,ˆ 1−∂∂

=kkxk

k vhV . ( 3-20)

3.3 Associering I detta avsnitt beskrivs en lösning till associeringsproblemet. En generell beskrivning av associeringsproblemet är att para ihop ett antal mätningar med ett antal objekt. I det generella fallet kan det finnas falska mätningar, flera mätningar på samma objekt, mätningar på okända objekt och objekt som ej blivit inmätta. Ett antal olika sätt att hantera associationsproblemet finns beskrivet i litteratur som handlar om estimering och målföljning. En av de enklaste metoderna att hantera associeringsproblemet är enligt [19] the nearest-neighbor standard filter (NNSF) [20]. I ett NNSF används den viktade normen för innovationen som avståndsmått.

Page 24: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Teori för kalmanfilter och associering . .

18

Detta avstånd kallas även mahalanobisavståndet och ges av [ ] [ ]kkk

Tkk zzSzzzd |11

1|1

2 ˆˆ)( ++−

+ −−= . ( 3-21) I ekvationen ovan representerar S kovariansmatrisen för innovationen i mätningen. Om det finns n objekt som kan ha genererat en mätning och m mätningar har erhållits ges alla möjliga mahalanobisavstånd av elementen i

=)ˆ,()ˆ,(

)ˆ,()ˆ,(),(

21

2

12

112

nmm

n

zzdzzd

zzdzzdnmD . ( 3-22)

När mahalanobisavståndet beräknats för alla objekt och alla mätningar ska de objekt och de mätningar som minimerar det totala mahalanobisavståndet associeras. För att minimera det totala mahalanobisavståndet jämförs summan av alla möjliga kombinationer av objekt och mätningar. Att minimera det totala mahalanobisavståndet är ett beräkningskrävande optimeringsproblem. För att minska komplexiteten och beräkningstiden bör de orimliga värdena i (3-22) sorteras bort. Detta kan göras på statistisk väg med hjälp ett tröskelvärde för mahalanobisavståndet. Utifall inga falska mätningar eller inga mätningar på okända objekt erhålls är mahalanobisavståndet chi-kvadrat fördelat. Genom att studera en tabell för chi-kvadratfördelningar ges en uppfattning om vilken storleksordning tröskelvärdet för mahalanobisavståndet ska vara.

Page 25: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Positionering . .

19

4 Positionering Robust positionering är en grundförutsättning för de flesta uppgifter som rörliga autonoma robotar kan tänkas utföra. Ett enkelt sätt att utföra positionering av en robot är att beräkna robotens position utgående från hjulens vinkelförändring, så kallad dödräkning. Att på detta sätt beräkna robotens position innebär att eventuella fel ackumuleras vilket i sin tur gör att osäkerheten om robotens position ökar desto längre den färdas. För att undvika att osäkerheten om robotens position ökar måste robotens position kunna relateras till omgivningen. Sensorer som är fästa på roboten och gör mätningar på robotens omgivning gör att robotens position kan relateras till omgivningen. Från sensorerna kan roboten extrahera mätningar på landmärken. Den metod som används i detta examensarbete för att relatera robotens position till omgivningen, är att robotens och landmärkenas positioner införs som tillstånd i ett extended kalmanfilter. Den sensor som används för att extrahera landmärken ur robotens omgivning är den svepande avståndsmätande lasern. De extraherade objekten representeras av en punkt och en riktning. Då positioneringsalgoritmerna tagits fram har algoritmer för simulering av positionering och kartuppbyggnad med flera samverkande robotar använts som utgångspunkt. Dessa algoritmer används vid IKP i forskning kring fördelar med flera samverkande mobila robotar [3].

4.1 Simulerad positionering Som tidigare nämnts används i detta examensarbete tillgängliga algoritmer för simulering av positionering och kartuppbyggnad med flera samverkande robotar, som utgångspunkt för positionering och kartuppbyggnad med verkliga data. Nedan följer en beskrivning av de positioneringsalgoritmer som används vid simuleringen. Positioneringsalgoritmen är ett extended kalmanfilter där alla robotar och objekts positioner är införda som tillstånd. Varje robot och objekt representeras med tre tillstånd xx, xy och xφ, där xx och xy representerar positionen i ett jordfast koordinatsystem och xϕ representerar en vinkel i det jordfasta koordinatsystemet. Det kan påpekas att xϕ är vinkeln mellan en robots eller ett objekts riktning och den positiva x-axeln i det jordfasta koordinatsystemet. Vinkeln är inte begränsad till något intervall utan xϕ antas vara samma vinkel som xϕ+n2π. Om det i kalmanfiltret finns m antal robotar och n antal objekt får tillståndsvektorn x i (3-9) följande utseende

Tonony

onx

ojojy

ojx

ooy

ox

rmrmy

rmx

ririy

rix

rry

rx

xxxxxxxxx

xxxxxxxxxx

),,,,,,,,,

,,,,,,,,,,,()()()()()()()1()1()1(

)()()()()()()1()1()1(

ϕϕϕ

ϕϕϕ=.

Index r och o är införda för underlätta läsningen r indikerar att variabeln tillhör en robot och o indikerar att variabeln tillhör ett objekt. Det enda som skiljer robotar från objekt i kalmanfiltret är att robotar kan förflyttas och objekt antas stå stilla. I figur 4-1 visas ett scenario med tre objekt och två robotar.

Page 26: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Positionering . .

20

Figur 4-1: Tre objekts och två robotars positioner i det jordfasta koordinatsystemet. Vid simulering av positionering och kartuppbyggnad med flera samverkande robotar införs alla robotar och objekt som tillstånd i kalmanfiltret då simuleringen startas. En kartuppbyggnadseffekt erhålls dock genom att osäkerheten om objektens position och vinkel sätts till ett stort värde. Då tidsuppdateringar och mätuppdateringar görs i kalmanfiltret sker detta för en robot respektive en mätning åt gången. Detta gör att flera tidsuppdateringar och mätuppdateringar görs vid varje tidssteg i kalmanfiltret. Det skulle naturligtvis gå lika bra att endast utföra en tidsuppdatering och en mätuppdatering. I figur 4-2 visas ett flödesschema över hur positioneringsalgoritmen arbetar.

Page 27: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Positionering . .

21

Figur 4-2: Flödesschema för positioneringsalgoritmen som används för simulering av positionering och kartbyggnad med flera samverkande robotar.

Page 28: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Positionering . .

22

4.1.1 Systemuppdatering Vid simulering beräknas en robots förflyttning mellan två tidssteg i kalmanfiltret utgående från styrsignalerna önskad förflyttning (us) och önskad vinkelförändring (uφ). Detta kallas tidsuppdatering av tillstånden i kalmanfiltret och den funktion som utför detta kallas systemfunktionen f i (3-9). Om det i kalmanfiltret finns m antal robotar och n antal objekt får modellen som beskriver robotarnas förflyttning följande utseende

)(1

)(

)(1

)(

)1(1

)1(

)(1

)(1

)(1

)()(

)(1

)(1

)(1

)()(

)1(1

)1(1

)1(1

)1()1(

),,(

),,(

),,(

onk

onk

ojk

ojk

ok

ok

rmk

rmk

rmk

rmrmk

rik

rik

rik

ririk

rk

rk

rk

rrk

xx

xx

xx

wuxfx

wuxfx

wuxfx

−−−

−−−

−−−

=

=

=

=

=

=

=

=

=

=

. ( 4-1)

Eftersom objekten antas vara stilla är deras positioner oförändrade vid tidpunkt k och k-1. Systemfunktionen beräknar med hjälp av styrsignaler robotarnas nya estimerade positioner. En delfunktion till systemfunktionen för robot ri har följande utseende

== −−−−− ),ˆ(ˆ 1111)()(

1 kkkkriri

kk uxfx

( ) ( )( ) ( ) =

+=

−−

−−

−−

−−−−

−−−−

−−)(

11

)(11

)(11

)(11

)(11

)(11

)(11

)(11

1000ˆcosˆsin

0ˆsinˆcos

ˆri

kk

rikk

rikk

rikk

rikk

rikk

rikk

rikk y

x

xx

xx

x

δϕ

δ

δ

ϕϕ

ϕϕ

−+

=

−−

−−−−

−−

−−−−

−−

−−

−−

−−

−−

11,

11,11,

11

11,11,

11

)(11

)(11

)(11

)(11

)sin(2

)sin(,

)ˆ(

ˆ

ˆ

ˆ

kk

kkkk

kks

kkkk

kks

rikk

rikk

rikky

rikkx

u

uu

u

uu

u

xM

x

x

x

ϕ

ϕϕ

ϕϕ

ϕ

ϕ δ

(4-2)

där

Page 29: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Positionering . .

23

( ) ( )( ) ( )

1000cossin0sincos

)(

−= aa

aaaM . ( 4-3)

Funktionen (4-2) överför den önskade förflyttningen till en förflyttning i det jordfasta koordinatsystemet. Detta görs genom att robotens relativa förflyttning, δx, δy och δφ, roteras till det jordfasta koordinatsystemet och adderas med robotens position i det jordfasta koordinatsystemet. Den relativa förflyttningen beräknas med hjälp av geometrin som visas i figur 4-3

Figur 4-3: En robots relativa förflyttning utgående från styrsignalerna. Den punkt som representerar roboten är fäst på axelcentrum. För att kunna beräkna den relativa förflyttningen beräknas först det kortaste avståndet mellan robotens nya och gamla position

)2

sin(2)2

sin(2 ϕ

ϕ

ϕ uuuu

LL srcd == . (4-4)

Geometrin som visas i figur 2-3 och ekvation (4-4) ger

)sin()2

cos()2

sin(2)2

cos( ϕϕ

ϕϕ

ϕ

ϕδ uuuuu

uuu

Lx ssd === ( 4-5)

och

)2

(sin2)2

sin( 2 ϕ

ϕ

ϕδu

uuu

Ly sd == . ( 4-6)

Page 30: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Positionering . .

24

Den total relativa förflyttningen ges av

=

ϕ

ϕ

ϕ

ϕϕ

δϕδδ

u

uuu

uuu

yx

s

s

)2

(sin2

)sin(

2 . ( 4-7)

Om vagnen rör sig på en rät linje kan numeriska problem uppstå eftersom uφ = 0 ger division med noll. Genom att använda gränsvärdet

0sin då 1sin→→ a

aa , ( 4-8)

som beskrivs i [22], erhålls

0. då 00 →

ϕ

δϕδδ

uu

yx s

( 4-9)

För att utföra prediktion av tillståndens kovariansmatris P behövs Fk som är en linjarisering av fk. d.v.s.

=∂∂

=−− 0,,ˆ 11 kkk uxk

kk x

fF

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

=

)(

)(

)(

)(

)1(

)(

)(

)(

)(

)(

)1(

)(

)(

)(

)(

)(

)1(

)(

)(

)(

)(

)(

)1(

)(

)(

)1(

)(

)1(

)1(

)1(

)(

)1(

)(

)1(

)1(

)1(

)(

)(

)(

)(

)1(

)(

)(

)(

)(

)(

)1(

)(

)(

)(

)(

)(

)1(

)(

)(

)(

)(

)(

)1(

)(

)(

)1(

)(

)1(

)1(

)1(

)(

)1(

)(

)1(

)1(

)1(

on

onk

oj

onk

o

onk

rm

onk

ri

onk

r

onk

on

ojk

oj

ojk

o

ojk

rm

ojk

ri

ojk

r

ojk

on

ok

oj

ok

o

ok

rm

ok

ri

ok

r

ok

on

rmk

oj

rmk

o

rmk

rm

rmk

ri

rmk

r

rmk

on

rik

oj

rik

o

rik

rm

rik

ri

rik

r

rik

on

rk

oj

rk

o

rk

rm

rk

ri

rk

r

rk

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

xf

eftersom en robots position uppdateras åt gången, se flödesschema figur 4-2, blir

Page 31: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Positionering . .

25

∂=

1000

10

010

001

)(

)()(

ri

rikri

kx

fF . ( 4-10)

Betraktar den partiella derivatan

=

=∂

)(

)(

)(

)(

)(

)(

)(

)(

)(

)(

)(

)(

)(

)(

)(

)(

)(

)(

)(

)(

ri

ri

riy

ri

rix

ri

ri

riy

riy

riy

rix

riy

ri

rix

riy

rix

rix

rix

ri

rik

x

f

x

f

x

fx

f

x

f

x

fxf

xf

xf

x

f

ϕ

ϕϕϕ

ϕ

ϕ

100

ˆsinˆcos10

ˆcosˆsin01

)(11

)(11

)(11

)(11

)(11

)(11

)(11

)(11

=−−−−−−−−

−−−−−−−−

rikk

rikk

rikk

rikk

rikk

rikk

rikk

rikk

xyxx

xyxx

ϕϕ

ϕϕ

δ

δδ

. (4-11)

)(rikF erhålls sedan genom att sätta in ekvation (4-11) i ekvation (4-10).

4.1.2 Processbrus Processbruset modellerar osäkerheten för robotarnas förflyttning. Vid simulering införs processbruset som brus på styrsignalerna till robotarna. Bruset på styrsignal uφ betecknas wφ och bruset på styrsignal us betecknas ws. Variansen för bruset adderat till styrsignal uφ betecknas 2

ϕσ och variansen för bruset adderat till

styrsignal us betecknas 2sσ . Eftersom de båda brusen antas vara oberoende får

kovariansmatrisen för processbruset till robot ri följande utseende

= 2

2)(

00

ϕσσ sri

kQ . ( 4-12)

Då tidsuppdateringen i kalmanfiltret utförs för robot ri står de andra robotarna stilla. Detta gör att den totala kovariansmatrisen,

[ ]Tonk

ojk

ok

rmk

rik

rkk QQQQQQQ )()()1()()()1(= ,

för processbruset kan skrivas som

Page 32: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Positionering . .

26

[ ]Trikk QQ 0000 )(= ( 4-13)

då tidsuppdateringen görs för robot ri i kalmanfiltret. För att utföra tiduppdateringen för robot ri i kalmanfiltret behövs linjariseringen av f kring de två brusvariablerna

=∂∂

=−− 0,,ˆ 11 kkk uxk

kk w

fW

=

∂∂

=

)(

)(

)(

)(

)1(

)(

)(

)(

)(

)(

)1(

)(

)(

)(

)(

)(

)1(

)(

)(

)(

)(

)(

)1(

)(

)(

)1(

)(

)1(

)1(

)1(

)(

)1(

)(

)1(

)1(

)1(

)(

)(

)(

)(

)1(

)(

)(

)(

)(

)(

)1(

)(

)(

)(

)(

)(

)1(

)(

)(

)(

)(

)(

)1(

)(

)(

)1(

)(

)1(

)1(

)1(

)(

)1(

)(

)1(

)1(

)1(

on

onk

oj

onk

o

onk

rm

onk

ri

onk

r

onk

on

ojk

oj

ojk

o

ojk

rm

ojk

ri

ojk

r

ojk

on

ok

oj

ok

o

ok

rm

ok

ri

ok

r

ok

on

rmk

oj

rmk

o

rmk

rm

rmk

ri

rmk

r

rmk

on

rik

oj

rik

o

rik

rm

rik

ri

rik

r

rik

on

rk

oj

rk

o

rk

rm

rk

ri

rk

r

rk

w

f

w

f

w

f

w

f

w

f

w

f

w

f

w

f

w

f

w

f

w

f

w

f

w

f

w

f

w

f

w

f

w

f

w

fw

f

w

f

w

f

w

f

w

f

w

f

w

f

w

f

w

f

w

f

w

f

w

f

w

f

w

f

w

f

w

f

w

f

w

f

∂=

0000

00

000

000

)(

)(

ri

rik

w

f , ( 4-14)

där

( ) ).())(( )(1,

)(1

)(1

)(1,

)(1)(

1)(1

)(rik

rik

rik

rik

rikri

kri

k

rixMwuxMx

wwf

−−−−−−−

=++∂

∂=

∂ϕϕ

Page 33: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Positionering . .

27

4.1.3 Mätmodellen Vid simulering av mätningar gör en robot en mätning på ett objekt åt gången, på detta sätt undviks associeringsproblemet helt vid simulering. I positioneringsalgoritmen uppdateras filtret med en mätning åt gången. Då en mätuppdatering ska göras med en mätning på objekt oj utförd av robot ri kan (3-10) skrivas på följande sätt

),(),,( ),()()()( vxhzzz ojriTojojx

ojx =ϕ . ( 4-15)

Vid simulering genereras mätningarna i det jordfasta koordinatsystemet vilket ger att

)()(),( ˆˆ)ˆ( riojojri xxxh −= ( 4-16) och

=∂

∂=

∂∂

=−− 0,ˆ

),(

0,ˆ

),(

,11 kxkk xk

ojri

xk

ojrik x

hxhH

=

∂=

)(

),(

)(

),(

)1(

),(

)(

),(

)(

),(

)1(

),(

on

ojri

oj

ojri

o

ojri

rm

ojri

ri

ojri

r

ojri

xh

xh

xh

xh

xh

xh

∂= 000000

)(

),(

)(

),(

oj

ojri

ri

ojri

xh

xh ( 4-17)

där

=

∂∂

∂∂

=∂

100010001

)()()(

)()()(

)()()(

)(

),(

riojy

ojx

ojy

ojy

yoj

x

y

ojx

ojy

xoj

x

x

oj

ojri

x

h

x

h

x

hx

h

x

h

x

hxh

xh

xh

xh

ϕ

ϕϕϕ

ϕ

ϕ

( 4-18)

och

−−

−=

∂∂

∂∂

=∂

100010001

)()()(

)()()(

)()()(

)(

),(

ririy

rix

riy

riy

yri

x

y

rix

riy

xri

x

x

ri

ojri

x

h

x

h

x

hx

h

x

h

x

hxh

xh

xh

xh

ϕ

ϕϕϕ

ϕ

ϕ

. ( 4-19)

Page 34: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Positionering . .

28

Linjariseringen av h erhålls genom insättning av (4-18) och (4-19) i (4-17).

4.2 Positionering med verklig data För att verklig data från den svepande lasern ska kunna införas i positioneringsalgoritmerna för simulerad positionering måste en del ändringar och tillägg göras. Följande saker behövdes ändras eller läggas till:

Systemfunktionen Systemfunktionen för de simulerade robotarna passar inte den tillgängliga farkosten. Systemfunktionen för de simulerade robotarna förutsätter att man har tillgång till styrsignalerna för robotarna. Då farkosten saknar styrsignaler används farkostens beräknade förflyttning som ersättning för styrsignalerna.

Processbrus I processbrusmodellen för de simulerade robotarna antas bruset på styrsignalerna vara konstant. För att detta ska vara en bra brusmodell bör robotarna röra sig med konstant hastighet. Eftersom hastigheten varierar under datainsamlingen införs en ny brusmodell.

Mätmodellen Den mätmodell som används för de simulerade mätningarna passar inte de mätningar som erhålls från den svepande lasern. Vid simulering anges en mätning som avståndet mellan roboten och objektet utryckt i det jordfasta koordinatsystemet. De mätningar som erhålls från lasern är avståndet mellan farkosten och objektet uttryckt i ett koordinatsystem som är fäst på farkosten och roterat med samma vinkel som farkosten är roterad med i förhållande till det jordfasta koordinatsystemet.

Lägga till nya objekt De mätningar som inte går att associera med något befintligt objekt är antingen falska mätningar eller en mätning på ett objekt som inte är inlagt i filtret. Vid simulering läggs alla befintliga objekt in i filtret när simuleringen startas. Eftersom de verkliga objektens position är okänd på förhand används en funktion som lägger till ett nytt objekt första gången en mätning erhålls på det.

Associering Vid simulering försöker en robot göra en mätning på ett objekt och vissa kriterier avgör om den lyckas eller ej. I verkligheten extraheras mätningar ur laserdata, dessa mätningar måste sedan associeras med de objekt som finns i filtret.

Extraktion av objekt från laserdata Slutligen behövs metoder för att extrahera objekt ur mätdata. De objekt som extraheras ur laserdata är linjesegment och linjer.

I figur 4-4 visas ett flödesschema för den modifierade positioneringsalgoritm som används för positionering av farkosten med hjälp av verklig data.

Page 35: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Positionering . .

29

Figur 4-4 : Flödesschema för positioneringsalgoritm som används för kartbyggnad och positionering med objekt extraherade ur laserdata.

Page 36: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Positionering . .

30

4.2.1 Systemuppdatering Systemfunktionen för de simulerade robotarna passar inte den tillgängliga farkosten. Systemfunktionen för de simulerade robotarna förutsätter att man har tillgång till styrsignalerna för robotarna. Då farkosten saknar styrsignaler används farkostens beräknade förflyttning som ersättning för styrsignalerna. Då styrsignalerna i (4-2) ersätts med den beräknade förflyttningen från (2-9) får systemfunktionen för robot ri får följande utseende

=−− )),,,,(,ˆ( 11)(

arvrhvhkkri uuuuuexf θθ

−+

= −−

−−

−−

−−

δϕ

δϕδϕδ

δϕδϕδ

ϕ

ϕ

)sin(2

)sin(

)ˆ(

ˆ

ˆ

ˆ)(

11)(

11

)(11

)(11

s

s

xM

x

x

xri

kkri

kk

rikky

rikkx

, (4-20)

och =−− )),,,,(,ˆ( 11

)(arvrhvhkk

ri uuuuuexf θθ

−+

= −−

−−

−−

−−

00 )ˆ(

ˆ

ˆ

ˆ)(

11)(

11

)(11

)(11 s

xM

x

x

xri

kkri

kk

rikky

rikkx δ

ϕ

ϕ

(4-21)

om δφ=0.

4.2.2 Processbrus I processbrusmodellen för de simulerade robotarna antas bruset på styrsignalerna vara konstant. För att detta ska vara en bra brusmodell bör robotarna röra sig med konstant hastighet. Eftersom hastigheten varierar under datainsamlingen införs en ny brusmodell. Denna brusmodell är hämtad ur [12]. Brusmodellen lägger till brus på tillryggalagd sträcka (δs) och brus på vinkelförändringen (δφ). De designparametrar som går att variera i brusmodellen är kDs, kDφ1och kDφ2. I denna brusmodell är T

TOT WQWQ = och storleken på varianserna för w antas bero av den sträcka farkosten förflyttats och farkostens vinkelförändring. Varianserna till systembruset w är enligt modellen

Page 37: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Positionering . .

31

sk Dss δσ =2 ( 4-22) och

δϕδδδ

δϕδ

δδϕδσ

ϕϕϕϕ

ϕϕϕϕ

)()(

}{

)()(

)()(2

rksrkk

srksk

DDs

D

Ds

D

=+=

===+=. ( 4-23)

Eftersom w är en funktion av δs och δφ så kommer TOTQ att vara en funktion av δs och δφ. Detta hanteras i [12] så att intervaller k-1 till k delas in N steg och

iri

TOTQ )( beräknas för varje steg. TOTQ fås sedan genom att låta N gå mot

oändligheten och summera ∑=

N

ii

riTOTQ

1

)( . Resultatet av dessa beräkningar är

enligt [12]

)))ˆ2sin()ˆ2)(sin(ˆcos(2)ˆ(cos)(()(

)2

)ˆ2sin()ˆ2sin()(())((

21

)()(1

)(1

)(1

22

)()(12)(

11,,

rik

rik

rik

rikD

rik

rik

DDsri

kTOT

xxxxsignrk

xxsignskrkQ

ϕϕϕϕϕ

ϕϕϕ

δϕδϕδ

δϕδϕδϕδ

δ

−−+

−++=

+++

+

))ˆˆcos()ˆ2cos()ˆ2sin(2

)(()(

)2

)ˆ2cos()ˆ2cos()(())((

41

)(1

)()(1

)(1

2

)()(12)(

12,,

rik

rik

rik

rikD

rik

rik

DDsri

kTOT

xxxxsignrk

xxsignrkrkQ

+++

+

+−++

−++−=

ϕϕϕϕϕ

ϕϕϕ

δϕδϕδ

δϕδϕδδ

))ˆsin()ˆsin()ˆcos(( )()(1

)(1

)(13,,

rik

rik

rikD

rikTOT xxxrkQ ϕϕϕϕ δϕδ +−=

++

)))ˆcos()ˆ)(cos(ˆsin(2)ˆ(sin)(()(

)2

)ˆ2sin()ˆ2sin()(())((

21

)()(1

)(1

)(1

22

)()(12)(

22,,

rik

rik

rik

rikD

rik

rik

DDsri

kTOT

xxxxsignrk

xxsignrkrkQ

ϕϕϕϕϕ

ϕϕϕ

δϕδϕδ

δϕδϕδδ

−++

−−+=

+++

+

))cos()ˆcos()ˆsin(( )(1

)(1

)(23,, δϕδϕδ ϕϕϕ −+=

++ri

kri

kDri

kTOT xxrkQ ( )

, ,33ri

TOT k DQ k ϕ δϕ= .

Om δφ=0 ger ovanstående ekvationer numeriska problem )(riTOTQ ges då istället av

))ˆ(sin31)ˆcos(( )(22)()()(

11,,ri

ks

Dri

kDsri

kTOT xskxksQ ϕϕϕ δδ +=

)ˆ2sin()31(

21 )(2)()(

12,,ri

ks

DDsri

kTOT xskksQ ϕϕδδ +=

)ˆcos(21 )()()(

13,,ri

ks

Dri

kTOT xsksQ ϕϕδδ−=

Page 38: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Positionering . .

32

))ˆ(cos31)ˆsin(( )(22)()()(

22,,ri

ks

Dri

kDsri

kTOT xskxksQ ϕϕϕ δδ +=

)ˆcos(21 )()()(

23,,ri

ks

Dri

kTOT xsksQ ϕϕδδ=

)()(33,,

sD

rikTOT ksQ ϕδ= .

Brusmodellen införs i kalmanfiltret genom att

∂=

0000

00

000

000

)(

)()(

)(

)()()()(

ri

rikri

ri

rikririri

w

fQ

w

fWQW ( 4-24)

i den simulerade tidsuppdateringen ersätts med

=

0000

00

000

000

)()()()( riTOT

ririri QWQW . ( 4-25)

4.2.3 Mätmodellen De mätningar som erhålls från lasern är avståndet mellan farkosten och objektet uttryckt i ett koordinatsystem som är fäst på farkosten och roterat med samma vinkel som farkosten är roterad med i förhållande till det jordfasta koordinatsystemet. Mätfunktionen h i (3-10) är en funktion som transformerar objektets skattade position i det jordfasta koordinatsystemet till det koordinatsystem i vilket mätningen genererats. En förväntad mätning av objekt oj gjord av robot ri uttryckt i det koordinatsystem som är fäst på robot ri betecknas Tojriojri

yojri

x zzz )ˆ,ˆ,ˆ( ),(),(),(ϕ .

Page 39: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Positionering . .

33

Figur 4-5: Illustration av förväntad mätning på objekt oj gjord av robot ri i det jordfasta koordinatsystemet.

Figur 4-6: Illustration av förväntad mätning på objekt oj gjord av robot ri i det koordinatsystem som är fäst på robot ri. Transformationen av tillstånden för objekt oj till koordinatsystemet som är fäst på robot ri utförs av

−+−−

−+−

=

)()(

)()()()()()(

)()()()()()(

),(

),(

),(

)cos()()sin()()sin()()cos()(

rioj

ririy

ojy

ririx

ojx

ririy

ojy

ririx

ojx

ojri

ojriy

ojrix

xxxxxxxx

xxxxxx

hhh

ϕϕ

ϕϕ

ϕϕ

ϕ

. ( 4-26)

Page 40: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Positionering . .

34

Mätekvationen (4-26) subtraherar först robotens tillstånd från objektets efter detta görs en rotation till koordinatsystemet som är fäst på roboten. Mätekvationen är följaktligen

))(()(ˆ )()()(),(),( riojriojriojri xxxMxhz −== ϕ . Nedan följer beräkningen av Hk till (4-26) som används vid mätuppdateringen.

=∂

∂=

∂∂

=

−− 0,ˆ

),(

0,ˆ

),(

,11 kxkk xk

ojri

xk

ojrik x

hxhH

=

∂=

)(

),(

)(

),(

)1(

),(

)(

),(

)(

),(

)1(

),(

on

ojri

oj

ojri

o

ojri

rm

ojri

ri

ojri

r

ojri

xh

xh

xh

xh

xh

xh

∂= 000000

)(

),(

)(

),(

oj

ojri

ri

ojri

xh

xh . ( 4-27)

Betraktar den partiella derivatan med avseende på robot ri

( )=−∂

∂=

∂ )()()()()(

),()( riojri

riri

ojrixxxM

xxh

ϕ

=

∂∂

∂∂

=

)()()(

)()()(

)()()(

ririy

rix

riy

riy

yri

x

y

rix

riy

xri

x

x

x

h

x

h

x

hx

h

x

h

x

hxh

xh

xh

ϕ

ϕϕϕ

ϕ

ϕ

=

−−−−−−

−+−−−−

=100

)sin()()cos()()cos()sin()cos()()sin()()sin()cos(

)()()()()()()()(

)()()()()()()()(

ririy

ojy

ririx

ojx

riri

ririy

ojy

ririx

ojx

riri

xxxxxxxxxxxxxxxx

ϕϕϕϕ

ϕϕϕϕ

−−

+−=000

)(00)(00

)()( )()(

)()(

)()( rix

ojx

riy

ojy

riri xxxx

xMxM ϕϕ . ( 4-28)

Betraktar den partiella derivatan med avseende på objekt oj

Page 41: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Positionering . .

35

)( )(

)()()(

)()()(

)()()(

)(

),(ri

ojojy

ojx

ojy

ojy

yoj

x

y

ojx

ojy

xoj

x

x

oj

ojrixM

xh

xh

xh

xh

xh

xh

xh

xh

xh

xh

ϕ

ϕ

ϕϕϕ

ϕ

ϕ

=

∂∂

∂∂∂

∂∂

∂∂

=∂∂ . ( 4-29)

Ekvation (4-27) - (4-29) ger att

.000000

)(000000

000)(00

)(00)()(

000000

)()()(

)()(

)()(

),(

−−

+−=

=

ririx

ojx

riy

ojy

riri

ojrik

xMxxxx

xMxM

H

ϕϕϕ

4.2.4 Associering av objekt I detta examensarbete används en variant av ett NNSF [20] för att associera mätningar med objekt. I ett NNSF används den viktade normen för innovationen som avståndsmått. Detta avstånd kallas även mahalanobisavståndet och ges av

[ ] [ ]kkkT

kk zzSzzzd |111

|12 ˆˆ)( ++

−+ −−= . ( 4-30)

Om det finns n objekt som kan ha genererat en mätning och m mätningar har erhållits ges alla möjliga mahalanobisavstånd av elementen i

=)ˆ,()ˆ,(

)ˆ,()ˆ,(),(

21

2

12

112

nmm

n

zzdzzd

zzdzzdnmD . ( 4-31)

I ett NNSF utförs associering mellan de mätningar och de objekt som minimerar det totala mahalanobisavståndet. Att finna det totala mahalanobisavståndet är ett beräkningskrävande optimeringsproblem. Komplexiteten på optimeringsproblemet kan minskas genom att de osannolika mahalanobisavstånden sorteras bort på statistisk väg. I detta examensarbete minskas komplexiteten genom att en mätning associeras åt gången. Då en mätning associeras åt gången reduceras matrisen i (4-31) till en vektor

[ ])ˆ,()ˆ,()( 21

2niii zzdzzdnD = . ( 4-32)

Innan mahalanobisavståndet beräknas sorteras de objekt som ligger så långt från mätningen att de ej kan ha genererat den bort. Detta görs genom jämförelsen

max21

2),(2),( ))ˆ()ˆ(( rzzzz ojriyy

ojrixx <−+− . ( 4-33)

Att på detta sätt sortera bort orimliga mätningar har stor fördel då de objekt som ska associeras är linjer. Eftersom inga associationer av objekt, som ligger på ett större avstånd än rmax från mätningen sker, kommer linjer att segmenteras med

Page 42: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Positionering . .

36

längden rmax. Följaktligen kan rmax användas som designparameter för längden av linjeobjekt. Den skattade mätningen beräknas med mätekvationen

)0,ˆ(ˆˆˆ

),(

),(

),(

),(

kojri

ojri

ojriy

ojrix

xhzzz

=

ϕ

. ( 4-34)

Om villkoret ovan är uppfyllt kontrolleras att vinkelskillnaden mellan mätningen och den skattade mätningen är mindre än π. Om vinkelskillnaden är större än π korrigeras mätningens vinkel med en multipel av 2π så att vinkelskillnaden blir mindre än π. Detta görs genom

]2

[2)(

ππ ϕϕ

ϕϕ

ojzzzz

−+= . ( 4-35)

Hakparenteserna i funktionen ovan representerar heltalsfunktionen som avrundar sitt argument till närmaste heltalsvärd. Efter att mätningens vinkel korrigerats beräknas

kT

kk RHHPS += −1| , ( 4-36) där

0,ˆ

),(

1−∂

∂=

kkxk

ojri

xhH . ( 4-37)

Vidare beräknas mahalanobisavståndet mellan mätningen och den skattade mätningen på objekt oj gjord av robot ri, detta görs genom

−−−

−−−

= −

),(

),(

),(

1

),(

),(

),(

2

ˆˆˆ

ˆˆˆ

ojri

ojriy

ojrix

y

xT

ojri

ojriy

ojrix

y

x

j

zzz

zzz

Szzz

zzz

d

ϕϕϕϕ

. ( 4-38)

Mahalanobisavståndet beräknas för alla objekt som uppfyllde villkoret i (4-33) och de objekt som inte uppfyller villkoret tilldelas ett stort mahalanobisavstånd. Mätningen associeras sedan med det objekt som ger upphov till det lägsta mahalanobisavståndet. Vinkeln korrigeras ytterligare en gång eftersom den kan ändras då mahalanobisavståndet beräknas för de andra objekten. Att associera en mätning åt gången är snabbare och enklare än en metod som minimerar det totala mahalanobisavståndet för alla mätningar på en gång. Dock erhålls en del felassociationer som kan undvikas om alla mätningar associerades samtidigt. I figur (4-7) visas ett exempel när associering av en mätning åt gången ger upphov till en felassociering som skulle ha undvikits om båda mätningarna hade associerats samtidigt. Då en mätning åt gången associeras kommer både mätning ett och mätning två att associeras med objekt 2. Medan mätning ett hade associerats med objekt ett och mätning två hade associerats med objekt två, om associeringen av de båda mätningarna hade utförts samtidigt.

Page 43: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Positionering . .

37

Figur 4-7: Då en mätning associeras åt gången kommer både mätning ett och mätning två att associeras med objekt 2. Medan mätning ett hade associerats med objekt ett och mätning två hade associerats med objekt två om associeringen av de båda mätningarna hade utförts samtidigt Eftersom det kan förekomma mätningar på objekt som inte finns i filtret ska inte alltid associering göras med det objekt som har lägst mahalanobisavstånd. För att avgöra om det associeringsförslag som NNSF ger verkligen ska utföras granskas storleken av mahalanobisavståndet. Genom att sätta ett maxvärde för storleken på mahalanobisavståndet kan utrensning ske av de mätningar som inte ska associeras. I fall falska mätningar aldrig erhålls är mahalanobisavståndet chi-kvadrat fördelat. Genom att studera en tabell för chi-kvadratfördelningar ges en uppfattning om vilken storleksordning gränsvärdet för mahalanobisavståndet ska vara för att rätt associering ska göras med en viss procents säkerhet. Den associeringsmetod som används i detta fall har fördelarna att den är enkel och snabb men den kan göra felassociationer i vissa situationer.

4.2.5 Lägga till nya objekt Då det inte går att associera en mätning med något objekt i filtret är det antingen en mätning på ett nytt objekt eller en felaktig mätning. Om det är en mätning på ett nytt objekt ska det nya objektet införas i filtret medan en felaktig mätning ska kasseras. För att upptäcka felaktiga mätningar antas att de falska mätningarna är dåliga mätningar på redan existerande objekt. Genom att höja gränsvärdet för mahalanobisavståndet i associeringsalgoritmen upptäcks dåliga mätningar på redan existerande objekt. De mätningar som finns kvar efter denna kontroll antas vara mätningar på nya objekt. Ett nytt objekt införs i filtret dels genom att dess position och vinkel införs i tillståndsvektorn x och dels genom att

Page 44: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Positionering . .

38

kovariansmatrisen P utökas med objektets osäkerhet och dess korskorrelation med osäkerheten för de redan existerande objekten och robotarna. En mätning är given i ett koordinatsystem som är fäst på den mätande roboten. Eftersom ett objekts position och vinkel lagras i ett jordfast koordinatsystem måste mätningen transformeras från koordinatsystemet som är fäst på roboten till det jordfasta koordinatsystemet. Detta utförs av funktionen

=

−−−

−−

+

=

=+

+

+

+

+

+

+

)1(

)1(

)1(

)()(

)()(

)(

)(

)(

)1,(

)1,(

)1,(

)1,(

1000)cos()sin(0)sin()cos(

),(oj

ojy

ojx

riri

riri

ri

riy

rix

ojri

ojriy

ojrix

onri

zzz

xxxx

xxx

ggg

zxg

ϕ

ϕϕ

ϕϕ

ϕϕ

+

++

−+

=+

++

++

)1()(

)()1()()1()(

)()1()()1()(

)cos()sin()sin()cos(

onri

riony

rionx

riy

riony

rionx

rix

zxxzxzxxzxzx

ϕϕ

ϕϕ

ϕϕ

( 4-39)

som först roterar mätningen och sedan adderar position och vinkel för den mätande roboten. Det nya objektets position och vinkel ges av

)1()()()1()1( )(),( +++ −+== onririonon zxMxzxgx ϕ . ( 4-40) För att illustrera proceduren föreställer vi oss en situation där systemet består av m robotar och n objekt. Innan ett nytt objekt lagts till har tillståndsvektorn följande utseende

Tonon

yon

xojoj

yoj

xoo

yo

x

rmrmy

rmx

ririy

rix

rry

rx

xxxxxxxxx

xxxxxxxxxx

),,,,,,,,,

,,,,,,,,,,,()()()()()()()1()1()1(

)()()()()()()1()1()1(

ϕϕϕ

ϕϕϕ=.

Efter det att det nya objektets tillstånd lagts till i tillståndsvektor har den följande utseende

Tonony

onx

onony

onx

ojojy

ojx

ooy

ox

rmrmy

rmx

ririy

rix

rry

rx

xxxxxxxxxxxx

xxxxxxxxxx

).,,,,,,,,,,,,

,,,,,,,,,,,()1()1()1()()()()()()()1()1()1(

)()()()()()()1()1()1(

+++

=

ϕϕϕϕ

ϕϕϕ

Eftersom objekten är extraherade från mätningar som är gjorda av en robot kommer det nya objektets osäkerhet att vara korrelerat med osäkerheten för roboten och osäkerheten för objekt som roboten gjort mätningar på. Korrelationen till roboten är uppenbar eftersom det nya objektets position i jordfasta koordinater är en funktion av robotens position och mätningen. Korrelationen med andra objekt är mer indirekt men följer från att robotens position delvis har bestämts genom mätningar på existerande objekt. Enligt [21] erhålls den expanderade kovariansmarisen Pexp av

=

ABBPP

Told

exp , ( 4-41)

där

Page 45: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Positionering . .

39

oldx PGB = ( 4-42) och

Tzz

Txoldx RGGGPGA += . ( 4-43)

Gx är jacobianen till g med avseende på tillståndet x och Gz är jacobianen till g med avseende på tillståndet z. Nedan följer beräkningen av Gx.

=∂

∂=

+

xgG

onri

x

)1,(

=

∂=

++++++

)(

)1,(

)(

)1,(

)1(

)1,(

)(

)1,(

)(

)1,(

)1(

)1,(

on

onri

oj

onri

o

onri

rm

onri

ri

onri

r

onri

xg

xg

xg

xg

xg

xg

∂=

+

0000)(

)1,(

ri

ojri

xg

. ( 4-44)

Betraktar den partiella derivatan

=

=∂

+++

+++

+++

+

)(

)1,(

)(

)1,(

)(

)1,(

)(

)1,(

)(

)1,(

)(

)1,(

)(

)1,(

)(

)1,(

)(

)1,(

)(

)1,(

ri

onri

riy

onri

rix

onri

ri

onriy

riy

onriy

rix

onriy

ri

onrix

riy

onrix

rix

onrix

ri

onri

x

g

x

g

x

gx

g

x

g

x

gx

gx

gx

g

xg

ϕ

ϕϕϕ

ϕ

ϕ

+

−−

= ++

++

100)sin()cos(10)cos()sin(01

)()1()()1(

)()1()()1(

riojy

riojx

riojy

riojx

xzxzxzxz

ϕϕ

ϕϕ

. ( 4-45)

Gx erhålls slutligen genom insättning av ekvation (4-45) i ekvation (4-44). Nedan följer beräkningen av Gz.

)( )(

)1(

)1,(

)1(

)1,(

)1(

)1,(

)1(

)1,(

)1(

)1,(

)1(

)1,(

)1(

)1,(

)1(

)1,(

)1(

)1,(

)1(

)1,(ri

on

onri

ony

onri

onx

onri

on

onriy

ony

onriy

onx

onriy

on

onrix

ony

onrix

onx

onrix

on

onri

z xM

z

g

z

g

z

gz

g

z

g

z

gz

gz

gz

g

zgG ϕ

ϕ

ϕϕϕ

ϕ

ϕ

−=

=∂

∂=

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

. ( 4-46)

Page 46: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Extraktion av objekt ur laserdata . .

40

5 Extraktion av objekt ur laserdata De objekt som extraherats ur laserdata är linjesegmentsobjekt och linjeobjekt. Skillnaden mellan linjeobjekt och linjesegmentsobjekt är att linjesegmentsobjekt har en mätbar längd medan linjeobjekt har en odefinierad längd.

5.1 Linjesegmentsobjekt Ett linjesegment representeras som en position och en riktning i det jordfasta koordinatsystemet. Positionen representerar mittpunkten på linjesegmentet och riktningen representerar normalen till linjesegmentet. För att en serie mätpunkter i ett lasersvep ska klassas som en mätning på ett linjesegment får varken början eller slutet av linjesegmentet vara skymd.

5.1.1 Extraktion av linjesegment ur laserdata Då linjesegmentobjekt extraheras ur laserdata är det första steget att hitta de punkter i laserdata som utgör möjliga linjesegmentobjekt. Genom att använda den rekursiva algoritm som beskrivs nedan erhålls möjliga linjesegmentobjekt.

1. Skapa ett linjesegment av den första och den sista mätpunkten i lasermätningen.

2. Identifiera den mätning som avviker mest från linjen. 3. Om avvikelsen är mindre än den maximalt tillåtna avvikelsen är ett

linjesegment funnet. Om avvikelsen för mätningen avviker mer än den maximalt tillåtna avvikelsen så delas lasermätningen, vid den mätpunkt som avviker mest från linjen, i två nya delmätningar.

4. Funktionen anropar sig själv med de delmätningar som innehåller fler mätpunkter än tröskelvärdet.

Denna algoritm är hämtad från [23] och ger ett antal möjliga linjesegment. I figur 5-1 visas linjesegmentskandidater framtagna med den rekursiva algoritm som beskrivs ovan.

Page 47: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Extraktion av objekt ur laserdata . .

41

Figur 5-1 : Möjliga linjesegmentobjekt framtagna med en rekursiv algoritm.

Figur 5-2: Omgivningen från vilken de möjliga linjesegmentobjekten i figur 5-1 är extraherade.

5.1.2 Behandling av linjesegmentskandidater Denna algoritm för att ta fram linjesegmentskandidater översegmenterar ibland data, vilket kan bero på att någon mätpunkt är felaktig. De översegmenterade linjesegmenten slås samman om variansen för det sammanslagna linjesegmentet inte överstiger ett förutbestämt gränsvärde. När linjesegment erhålls från

Page 48: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Extraktion av objekt ur laserdata . .

42

linjesegmentsalgoritmen representeras de av första och sista mätningen i linjesegmentet. Denna beskrivning av linjesegment är inte optimal eftersom den ej använder alla mätningar som erhållits. För en bättre beskrivning av linjesegmentet beräknas med minsta kvadratmetoden en position och en riktning. Linjesegmentet representeras nu av en längd, en vinkel och en punkt som är fäst mitt på linjesegmentet.

Figur 5-3: Anpassning av linjesegmentet med minsta kvadratmetoden. Nästa steg är att avgöra huruvida ett linjesegment är giltigt. För att ett linjesegment ska vara giltigt måste både startpunkt och slutpunkt vara synliga. Det finns två anledningar till att inte hela linjesegmentet ses, dels att något i omgivningen skymmer delar av linjesegmentet, dels att någon del av linjesegmentet ligger utanför den sektor som lasern avsöker.

Page 49: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Extraktion av objekt ur laserdata . .

43

Figur 5-4: Giltiga, skymda och översegmenterade linjesegment.

5.1.3 Kovariansmatrisen för linjesegmentobjekt För att uppskatta osäkerheten för en mätning på ett linjesegment används osäkerheten för lasermätningarna som utgångspunkt. Tillverkaren av lasern delar in mätbruset i två delar [7]. Den ena delen är ett oberoende brus med väntevärdet noll. Den andra delen är ett brus som varierar beroende på vilket material objektet består av och vilket avstånd det befinner sig på. Detta brus kan följaktligen ha ett väntevärde som är skilt från noll, förutsatt att mätningarna utförs på samma objekt och på samma avstånd från lasern. Standardavvikelsen för bruset med väntevärde noll betecknas σf1 och standardavvikelsen för det andra bruset betecknas σf2. Först beräknas hur bruset med standardavvikelsen σf1 påverkar osäkerheten för linjesegmentsobjektet. Osäkerheten för linjesegmentsobjektets position i dess normalriktning och osäkerheten för linjesegmentsobjektets vinkelosäkerhet är beroende av varandra. Kovariansmatrisen för en mätning kan erhållas genom att invertera mätningens informationsmatris. Informationsmatrisen för de båda osäkerheterna ges enligt [24] av

Page 50: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Extraktion av objekt ur laserdata . .

44

=≈

∑∑=

21

2

21

21

21

21

122

1

11

f

i

f

ff

if

N

i ii

i

if N

NN

constσ

η

σ

η

σ

η

σ

σηηη

σ. ( 5-1)

Där ηi beskriver avståndet från punkten som representerar linjesegmentet till en mätpunkt projicerad på linjen, se figur 5-5 . Matrisen som ges av (5-1) är informationsmatrisen för linjesegmentsobjektets osäkerheter. Element (1,1) beskriver informationsmängden i mätningen om linjens position i dess normalriktning. Element (2,2) beskriver informationsmängden om linjens riktning. Övriga termer beskriver korrelationen mellan informationen om vinkeln och informationen om linjens läge i dess normalriktning. För att erhålla kovariansmatrisen inverteras informationsmatrisen.

Figur 5-5 : Variabler som används för att beräkna osäkerheten för en mätning på ett linjeobjekt, η markerar den punkt som representerar linjesegmentobjektet. Eftersom linjen representeras av en punkt är inte information om linjens position i normalriktningen nog, det behövs även information om punktens osäkerhet i linjens längdriktning. Om man antar att den verkliga slutpunkten är likformigt fördelad på två intervall som har längden 12 ηη − och 1−− NN ηη så är enligt [25] variansen för linjesegmentets startpunkt

12)( 2

122 ηησ

−=lb ( 5-2)

och variansen för dess slutpunkt

Page 51: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Extraktion av objekt ur laserdata . .

45

12)( 2

12 −−= NN

lbηη

σ . ( 5-3)

Den totala variansen i linjesegmentets längdriktning för punkten som representerar linjen är följaktligen

12)(

12)( 2

12

122 −−+

−= NN

lηηηη

σ . ( 5-4)

Alla tänkbara linjesegmentobjekt har inte skarpa kanter i ändarna, därför kan det vara befogat att lägga till en extra term på variansen i linjesegmentets längdriktning. Informationen om linjesegmentets läge i längdriktningen erhålls genom att invertera variansen för läget i längdriktningen. Informationsmatrisen för mätningen erhålls genom att matrisen i (5-1) utvidgas med informationen om linjesegmentets läge i längdriktningen. Kovariansmatrisen för linjesegment som en funktion av σf1 ges slutligen av

)(

0

010

01

)()(

21

21

21

2

21

21

21 γγ

σ

η

σ

η

σ

σ

η

σ

σ zM

N

N

invzMR

ff

l

ff

Tf

=

∑ ( 5-5)

där ( ) ( )( ) ( )

1000cossin0sincos

)(

−= aa

aaaM . ( 5-6)

Nedan beräknas hur bruset med standardavvikelsen σf2 påverkar osäkerheten för linjesegmentsobjektet. Eftersom σf2 är standardavvikelsen för ett brus som beror på vilket material linjesegmentet består av och på vilket avstånd från lasern det befinner sig förbättras inte mätningen av antalet mätpunkter. För att inte överskatta informationen om linjens riktning används bara en mätpunkt för att beräkna informationen om linjens riktning dock väljs den mätpunkt som innehåller mest information. För att inte överskatta korskorrelationen väljs den mätpunkt som ger upphov till lägst korskorrelation, denna mätpunkt betecknas ηmin. Kovariansmatrisen för mätbruset med standardavvikelsen σf2 ges av

)(

)max(0

010

01

)()(

22

221

22

min

2

22

min2

2

22 γγ

σ

ηη

σ

ησ

σ

η

σ

σ zMinvzMR

f

n

f

l

ff

Tf

= . ( 5-7)

Page 52: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Extraktion av objekt ur laserdata . .

46

Det kan påpekas att eftersom de flesta linjesegmentsobjekt består av samma material och befinner sig på ungefär samma avstånd från lasern är det i de flesta fall onödigt pessimistiskt att sätta informationen om linjens riktning till

22

221 ),,max(

f

n

σ

ηη

och korskorrelationerna till

22

min

η.

Kovariansmatrisen för mätbruset som används i kalmanfiltret har följande utseende

)(

00

010

001

)(

22

2

2

22

γ

γ

γ

σ

σ

σ

zM

Lkk

invzMR

f

Ll

f

T

+= , ( 5-8)

där kγ och kL är designparametrar. Bidraget från σf1 har försummats eftersom 22

2 ff σσ >> , enligt [7]. Korstermerna har också försummats eftersom väntevärdet 0≈η . En extraterm som ses som en designparameter har adderas till variansen i linjesegmentsobjektets längdriktning σl och informationen om linjesegmentsobjektets riktning sätts till

22

2

f

Lk

σγ .

L representerar linjesegmentets längd och kγ är en designparameter som bör väljas så att informationen om linjeobjektets riktning ligger inom intervallet

21

2

22

2

22

221 )max(

f

i

ff

n Lk

σ

η

σσ

ηη γ ∑<< . ( 5-9)

Det kan påpekas att denna brusmodell förutsätter att linjesegmentsobjekten är släta.

5.2 Linjeobjekt I mätdata från lasern finns det många linjer vars början eller slutpunkt är skymd, dessa linjer är inte giltiga linjesegmentsobjekt. För att utnyttja informationen i dessa vid positionering införs linjeobjekt. Ett linjeobjekt representeras med en punkt på linjen och riktningen på linjens normal. Anledningen till att linjer representeras med en punkt och en riktning i det jordfasta koordinatsystemet är att den framtagna mätekvationen ska gå att använda. Ett alternativt sätt att

Page 53: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Extraktion av objekt ur laserdata . .

47

representera linjeobjekt är att införa det vinkelräta avståndet mellan farkosten och linjen, benämnt ρ, och riktning för detta avstånd, benämnd γ, som tillstånd i kalmanfiltret. Mätekvationen skulle då få följande utseende

=

=

)ˆ()ˆ(

ˆˆ

ˆxhxh

zz

ρ

γ

ρ . ( 5-10)

Den punkt som har valts för att representerar en mätning på ett linjeobjekt är skärningspunkten mellan normalen till linjeobjektet och linjen som blidas av mätpunkterna. I figur 5-6 representerar z ett linjeobjekt transformerat till det robotrelativa koordinatsystemet och z representerar en mätning på detta linjeobjekt.

Figur 5-6 : Ett exempel då punkten som representerar mätningen på linjeobjektet ligger utanför linjesegmentet som bildas av mätpunkterna. Där ρz representerar det vinkelräta avståndet mellan robotens position och linjen

och γz representerar vinkeln mellan linjens normal och den positiva x-axeln för ett koordinatsystem som är fäst på roboten. Anledningen till att metoden som flyttar mätningen till objektet valdes är att med den metoden kan samma mätekvation användas för både linjeobjekt och linjesegmentsobjekt.

Page 54: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Extraktion av objekt ur laserdata . .

48

5.2.1 Extraktion av linjeobjekt ur laserdata Linjeobjekt kan extraheras på samma sätt som linjesegmentsobjekt. Ytterligare en metod att extrahera linjeobjekt har också använts. Denna metod kallas Houghtransformen.

5.2.2 Houghtransformen Med hjälp av Houghtransformen kan linjer extraheras ur data från en avståndsmätande laser. Enlig [26] är Houghtransformen för avståndsdata pålitligare än en Houghtransform utförd på en vanlig bild. Anledningen till att transformen är pålitligare för avståndsdata är att det sällan finns parallella linjer som ligger nära varandra i avståndsdata. I Houghrymden representeras en linje av det vinkelräta avståndet ρ från linjen till origo där lasern är placerad och vinkel γ som är vinkeln mellan laserns riktning och ρ, se figur 5-7. Avståndsdata från lasern representeras som ett antal punkter givna i polära koordinater (ri, φi).

Figur 5-7: En robot och en linje representerad med avståndet ρ och vinkeln γ. Den viktade versionen av Houghtransformen ges av

∑ −−=i

iiiih rgrwC ),,())cos((),( γϕργϕγρ . ( 5-11)

En mätning genomsöks efter linjer genom att beräkna (5-11) där alla ρ mellan 0 och ρmax med stegintervallet ∆ρ beräknas och alla γ från 0 till 2π med vinkelsteget ∆γ . Dessa värden lagras i en matris

.

)2,(),()0,(

)2,(),()0,()2,0(),0()0,0(

maxmaxmax

∆−∆

∆−∆∆∆∆∆−∆

=

γπργρρ

γπργρργπγ

CCC

CCCCCC

Cmatris (5-12)

Page 55: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Extraktion av objekt ur laserdata . .

49

I (5-11) är w en fönsterfunktion och g en viktfunktion. Argumentet i fönsterfunktionen är det kortaste avståndet mellan linjen (ρ, γ) och punkten (ri, φi). För att få en effektiv implementering används en rektangulär fönsterfunktion wh(x) med bredden 2a.

>≤

=axax

xwh ,0,1

)( ( 5-13)

Den viktfunktion som förespråkas i [26] är iiih rrg =),,( γϕ . ( 5-14)

En linje erhålls genom identifiering av det största värdet i Houghtransformen som ges av (5-12). Därefter tas de mätningar som är associerade med denna bort. Sedan körs Houghtransformen på de kvarvarande punkterna. Denna procedur upprepas tills alla värden större än ett förutbestämt minsta värde har identifierats. Linjerna från Houghtransformen förbättras sedan genom att en robust minstakvadratmetod används på de punkter som är associerade med en linje.

5.2.3 Inställning av Houghtransformen Då antalet vinkelsteg i Houghtransformen minskas är det större chans att missa en sökt vägg. Sträckan Lh i figur 5-8 är den sträcka som garanterat erhålls av en vägg då vinkelsteget är ∆γ, avståndsupplösningen är ∆ρ och ett rektangulärt fönster med vidden

2ρ∆

=a ( 5-15)

använts.

Figur 5-8: Lh är den längsta sträcka av en linje som garanterat upptäcks med Houghtransformen då avståndet mellan två linjer är ∆ρ, vinkelsteget mellan två linjer är ∆γ och ett rektangulärt fönster med bredden ∆ρ används. Genom geometriska samband kan denna längd beräknas

)2

sin( γ∆∆

=dLh . ( 5-16)

För små vinklar kan sin(∆γ/2) approximeras med ∆γ/2, detta ger att om ∆γ fördubblas så måste ∆ρ också fördubblas om Lh inte skall minska. Det minsta antalet vinkelsteg i Houghtransformen beror följaktligen på två saker, dels det

Page 56: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Extraktion av objekt ur laserdata . .

50

största värde som kan accepteras på ∆ρ, dels det minsta värde som kan accepteras på Lh . Då Houghtransformen använts i [26] har en vinkelupplösning på 120 steg använts och avståndsupplösningen har varit 2.5 cm. I [26] påpekas att beräkningstiden för Houghtransformen är proportionell mot antalet mätningar och antalet vinkelsteg, medan avståndsupplösningen inte påverkar beräkningstiden nämnvärt.

5.2.4 Kovariansmatrisen för linjeobjekt För att uppskatta osäkerheten för en mätning på ett linjeobjekt görs i princip på samma sätt som då osäkerheten för linjesegmentsobjekt beräknas. Om punkten som representerar mätningen ligger någonstans mellan första och sista mätpunkten på linjen används samma brusmodell som för linjesegment, enda skillnaden är att kL sätts till ett stort värde. Den enda gång då kL inte sätts till ett stort värde är då ett nytt linjeobjekt införs i kalmanfiltret. Detta görs för att undvika att punkten som representerar linjen glider längs linjen då mätuppdateringar i kalmanfiltret utförs. Kovariansmatrisen för mätbruset då punkten som representerar mätningen ligger bland mätningarna ges av

)(

00

010

001

)(

22

2

2

22

γ

γ

γ

σ

σ

σ

zM

Lkk

invzMR

f

Ll

f

T

+= . ( 5-17)

Om punkten som representerar mätningen ligger utanför linjesegmentet som bildas av mätpunkterna, se figur 5-6 , är inte korskorrelationerna noll i

)(

)max(0

010

01

)()(

22

221

22

min

2

22

min2

2

22 γγ

σηη

ση

σ

ση

σ

σ zMinvzMR

f

n

f

l

ff

Tf

= ( 5-18)

som fallet var för linjesegment. Kovariansmatrisen för mätbruset som används då punkten som representerar mätningen ligger utanför mätningarna ges av

Page 57: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Extraktion av objekt ur laserdata . .

51

)(

)(0

010

01

)()(

22

2

23

2

23

23

22 γ

γ

γ

σσ

σ

σσ

σ zM

LLkLk

L

invIzMR

f

c

f

c

Ll

f

c

f

Tf

+−

+

= , ( 5-19)

där kL och kγ är designparametrar. Genom geometriska samband som visas i figur 5-9 erhålls

2

)2

(23 L

LLc

ff

+= σσ , ( 5-20)

2221 )()max( cn LL +=ηη ( 5-21)

och cL=minη . ( 5-22)

Sträckan Lc är definierad så att den är positiv om punkten som representerar mätningen på linjeobjektet befinner sig till vänster om linjesegmentet och negativ om punkten befinner sig till höger om linjesegmentet som bildas av mätpunkterna. Lc är noll om punkten som definierar linjeobjektet befinner sig inom linjesegmentet som bildas av mätpunkterna.

Figur 5-9: Illustration av hur osäkerhet i linjens normalriktning ökar om punkten som representerar mätningen på linjen ligger utanför linjesegmentet som bildas av mätpunkterna.

Page 58: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Extraktion av objekt ur laserdata . .

52

5.2.5 Segmentering av linjeobjekt Ett sätt att segmenterat linjeobjekt är att enbart försöka associera mätningar på linjeobjekt med de objekt som finns inom en given radie rmax från mätningen. På detta sätt segmenteras linjer med längden rmax eftersom mätningar som inte associeras läggs in som nya objekt. Denna radie blir följaktligen en designparameter för längden på linjeobjekt.

Page 59: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Experiment . .

53

6 Experiment I detta avsnitt presenteras testresultat från positionering med både linjeobjekt och linjesegmentobjekt. Testerna har utförts i inomhusmiljö och mätningar har utförts med en samplingshastighet på ca 3 Hz. Positioneringstesten är ej utförda i realtid utan har utförts i efterhand på de insamlade mätningarna.

6.1 Positionering med linjesegmentsobjekt Testet av linjesegmentobjekt är utfört i en stor lokal där många typer av föremål är uppställda. I figur 6-1 visas ett foto av den miljö där positionering med linjesegmentsobjekt har testats. Eftersom miljön innehåller många plana ytor är den väl lämpad att användas som testmiljö för test av positionering med linjesegmentsobjekt.

Figur 6-1: Miljön där experiment av positionering med linjesegmentsobjekt utförs. Vid testet rör sig farkosten en sträcka av totalt ca 20m. Den väg farkosten färdas under experimentet visas i figur 6-2. Farkosten börjar med att färdas framåt ett stycke därefter backar den tillbaka en bit denna procedur upprepas några gånger. Därefter backar farkosten till sin slutliga position.

Page 60: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Experiment . .

54

Figur 6-2: Farkostens färdväg under experimentet. Då positioneringen startas saknas förhandsinformation om omgivningen och dess landmärken. Algoritmen för att extrahera linjesegmentsobjekt används på data från den svepande avståndsmätande lasern för att extrahera landmärken. Då nya landmärken upptäcks läggs de in som tillstånd i kalmanfiltret. Efterföljande mätningar på samma landmärke används för att uppdatera farkostens position. Det här är ett exempel på SLAM eftersom ingen förhandsinformation om omgivningen erhålls på förhand. I figur 6-3 visas alla lasermätningar utlagda med hjälp av farkostens position då den beräknas med positioneringsalgoritmen. Som en jämförelse har samma mätningar lagts ut enbart med hjälp av farkostens dödräkning. Detta visas i figur 6-4.

Page 61: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Experiment . .

55

Figur 6-3: Lasermätningar utplacerade med farkostens position uträknad av positioneringsalgoritmen. Linjen visar farkostens färdväg.

Figur 6-4: Lasermätningar utplacerade med hjälp av farkostens dödräkning. Linjen visar den väg farkosten färdats.

Page 62: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Experiment . .

56

Vid jämförelse mellan figur 6-3 och figur 6-4 ses en tydlig förändring i form av att lasermätningarna är mer samlade kring objekt i figur 6-3. Detta beror på att farkosten kunnat utföra en bättre positionering. För att tydliggöra förbättringen förstoras ett område innefattande ett hörn. Ett hörn är ett bra område eftersom det bekräftar att farkosten haft god kännedom om sin position i alla riktningar. Hörnet med position x=-6 och y=-0.5 är synligt under största delen av datainsamlingen. En förstoring av nämnda hörn visas i figur 6-5 och figur 6-6

Figur 6-5: Lasermätningar utplacerade med hjälp av dödräkning.

Page 63: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Experiment . .

57

Figur 6-6: Lasermätningar utplacerade med hjälp av kalmanfiltret. Det kan påpekas att en stor skiva var lutad mot den ena väggen då experimentet utfördes. Om figur 6-5 studeras ses att spridningen på mätningarna är ca 20 cm då data är utplacerat med hjälp av dödräkning. Från figur 6-6 erhålls att spridningen är ca 5 cm. Detta bör betraktas som ett bra positioneringsresultat med tanke på att standardavvikelsen för lasermätningarna är i storleksordningen centimeter. I figur 6-7 visas de extraherade och använda landmärkena tillsammans med några lasersvep gjorda i labbet.

Page 64: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Experiment . .

58

Figur 6-7: Linjesegmentsobjekten som använts för positionering. Om figur 6-7 betraktas ses att positioneringsalgoritmen har extraherat verkliga plana ytor som är helt synliga och inte skymda av några andra objekt.

6.2 Positionering med linjeobjekt Testet av linjeobjekt utförs genom att farkosten som bär sensorplattformen färdas 60 meter i en korridor, svänger in i en sidokorridor, vänder och färdas samma väg tillbaka. Att börja och starta på samma position är en bra test av positioneringsalgoritmen eftersom det är lätt att se om estimerad startpunkt och slutpunkt sammanfaller. För att sätta kalmanfiltret på prov adderas ett fel på två procent till den ena hjulradien. Då positioneringen startas saknas förhandsinformation om omgivningen och dess landmärken. Algoritmen för att extrahera linjeobjekt används på data från den svepande avståndsmätande lasern för att extrahera landmärken. Då nya landmärken upptäcks läggs de in som tillstånd i kalmanfiltret. Efterföljande mätningar på samma landmärke används för att uppdatera farkostens position. Det här är ett exempel på SLAM eftersom ingen förhandsinformation om omgivningen erhålls på förhand. I figur 6-8 visas laserdata utplacerade med hjälp av farkostens dödräkning och i figur 6-9 visas laserdata utplacerad med positioneringsalgoritmen.

Page 65: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Experiment . .

59

Figur 6-8: Laserdata utplacerade med hjälp av dödräkning. Ett fel på två procent är adderat till den ena hjulradien. Farkosten startar i origo och i verkligheten slutar färden också i origo men på grund av det adderade felet hamnar slutpunkten ca 100 m fel.

Figur 6-9 : Laserdata utplacerade med hjälp av kalmanfiltret. Ett fel på två procent är adderat till den ena hjulradien. Linjeobjekten segmenteras då de överstiger 15 m.

Page 66: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Experiment . .

60

Om figur 6-8 studeras ses att det adderade felet gör att slutpunkten som i verkligheten sammanfaller med startpunkten hamnar ca hundra meter från startpunkten. I figur 6-9 ses att startpunkten sammanfaller med slutpunkten, samt att kalmanfiltret lyckats göra korridorens väggar räta. Att startpunkt och slutpunkt sammanfaller då positioneringsalgoritmen används visar att den är kapabel att utföra robust positionering.

Page 67: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Slutsatser och fortsatt arbete . .

61

7 Slutsatser och fortsatt arbete I detta kapitel presenteras konklusioner och förslag till fortsatt arbete. Slutsatserna är dragna utifrån tänkbara tillämpningar och de utförda experimenten.

7.1 Slutsatser Syftet med detta examensarbete var att driftsätta en sensorplattform och utföra positionering med verklig data. Positioneringen är framförallt tänkt att kunna användas då GPS-signaler ej är tillgängliga. Tillfällen då GPS signaler inte är tillgängliga är t.ex. i närheten av stora byggnader eller i inomhusmiljö. Dessa miljöer innehåller många plana ytor som skulle gå att använda som linjeobjekt eller linjesegmentsobjekt. Utförda experiment visar att positioneringsalgoritmerna kan utföra positionering med god säkerhet i sådana miljöer. Det finns andra miljöer där GPS signalerna kan vara skymda, t.ex. i närheten av stora träd. En sådan miljö saknar helt plana ytor, följaktligen skulle inga landmärken kunna extraheras av de algoritmer som används. Positioneringen skulle i en sådan miljö endast utföras av dödräkningen. Experimenten visar att positionsfelet snabbt ökar vid en förändring av hjulradien, om positioneringen endast utförs med hjälp av dödräkning. En förändring av en hjulradie kan i verkligheten tänkas ske genom att lufttrycket ändras i ett av hjulen eller av att stenar eller snö fastnar på ett av hjulen. Om underlaget är ojämnt eller har låg friktion skulle positionering utförd endast med hjälp av dödräkning antagligen snabbt bli felaktig eftersom hjulen antagligen skulle glida istället för att rulla i vissa situationer. För att utföra robust positionering i miljöer som saknar plana ytor skulle nya typer av objekt behöva införas t.ex. cirkar. Ett annat sätt att utföra positionering i miljöer där bra landmärken saknas vore att flera robotar samarbetade och övervakade varandras rörelser.

7.2 Förslag till fortsatt arbete Under arbetets gång har flera områden som skulle vara intressanta att undersöka ytterligare påträffats. Nedan ges förslag på några av de områden som skulle vara intressant att undersöka vidare. Nya typer av objekt. De objekt som används för positionering är linjer och linjesegment. Andra typer av objekt som också kan extraheras ur laserdata är t ex cirklar. Om flera robotar samverkar så att de tillsammans ser alla sidor på ett objekt skulle det vara möjligt utföra positionering med objekt av godtycklig form. Införa flera robotar i filtret. Filtret är förberett för att hantera flera robotar. Ett problem som kvarstår är att hantera att de olika robotarnas mätningar sker vid olika tidpunkter. I [4] har detta problem behandlats och två robotar införts i kalmanfiltret.

Page 68: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

Slutsatser och fortsatt arbete . .

62

Skatta de parametrar som kalibrerats. I rörelsemodellen för roboten ingår hjulradierna och axelavståndet som parametrar. Dessa parametrar kan ge upphov till systematiska fel om de inte kalibrerats ordentligt eller om de ändras efter kalibreringen. En hjulradie kan t.ex. ändras om roboten lastas tyngre eller om en sten fastnar på ett hjul. För att undvika systematiska fel skulle hjulradierna och axelavståndet kunna införas som tillstånd i kalmanfiltret. Vidare är lasern placerad mitt över hjulaxel om denna placering inte är exakt uppstår också systematiska fel. För att undvika dessa och tillåta en annan placering av lasern kan laserns placering på roboten införas som ett tillstånd i kalmanfiltret. Ny brusmodell för roboten. I den brusmodell som används saknas möjligheten att modellera att roboten glider i sidled. Brusmodellen är också ganska komplicerad vilket inte ger en bra intuition om vad som händer då en av parametrarna ändras. En enklare brusmodell som ger möjlighet att modellera glidning i sidled vore en önskvärd förbättring. I [4] används en annan brusmodell som inte är lika komplicerad. Bättre associeringsalgoritm. Associeringen är en viktig faktor för hur bra kalmanfiltret fungerar eftersom en felassociering kan leda till stora fel i positioneringen. Den associeringsalgoritm som används är väldigt enkel. En förbättring vore att införa en mer avancerad associeringsalgoritm. Reducera antalet objekt i kalmanfiltret. Om roboten rör sig fritt blir antalet objekt förr eller senare så stort att beräkningarna inte kan utföras inom önskad tidsram. För att reducera antalet objekt i kalmanfiltret är en lösning att bara uppdatera objekt som befinner sig nära roboten. En annan lösning kan vara att ha olika kalmanfilter för olika områden. Någon metod att reducera antalet objekt är antagligen nödvändig för de flesta verkliga applikationer. Nya typer av sensorer. Förslag på sensorer som sensorplattformen kan utökas med är en sonar, en IMU (Inertial measurement unit) och en kompass.

Page 69: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

.

63

8 Referenser

[1] I. S. Roumeliotis, A. B. Bekey, A distributed Kalman filter approach to localization of groups of mobile robots, IEEE conference on Robotics & Automation in San Francisco, 2000

[2] I. Rekleitis, R. Sim, G. Dudek, E. Milios, Collaborative exploration for the construction of visual maps, IEEE/RSJ conference on Intelligent Robots and Systems, 2001

[3] L. Andersson, J. Nygårds, On Sensor Fusion Between a Pair of Heterogeneous Robots, to be presented at FUSION, 2003

[4] P. Holmberg, Sensor Fusion with Coordinated Mobile Robots, Master Thesis to be presented, LiTH-ISY-EX-3387-2003

[5] J.Göransson. Examensarbete utfört åt Robotik/Autonoma Mekaniska System vid IKP LiTH. Master Thesis to be presented.

[6] U. Larsson, On Robot Control with Feedback from Optronic Sensors, Doctoral thesis, LuTH, 1999

[7] TECHNICAL DESCRIPTION LMS 200 / LMS 211 /LMS 220 / LMS 221 / LMS 291 Laser Measurement Systems. 8 008 970/01-2002 . WU/SM. Printed in Germany (01-02). PreE3305c

[8] R. Krten, Getting Started with QNX Neutrino 2 A Guide for Realtime Programmers, 2001 PARSE Software Devices, ISBN 0-9682501-1-4

[9] B. P. Gerkey, R. T. Vaughan, A. Howard. Player version 1.2.3 User Manual. USC Robotics Laboratory University of Southern California, USA, http://playerstage.sourceforge.net

[10] P. Rydesäter TCP/UDP/IP Toolbox 2.0.2. http://www.mathworks.com

[11] R. Kalman, (1960),’A new approach to linear filtering and prediction Problems’, Transactions of the ASMS 82, 35-45

[12] P. Jensfelt, Approaches to Mobile Robot Localization in Indoor Environments.TRITA-S3-REG-0102,ISSN 1404-2150, ISBN 91-7283-135-9

[13] B. D. O. Anderson, & J. B. Moor, (1979), Optimal Filtering, Prentice-Hall, Englewood Cliffs, N. J.

[14] A. H. Jazwinski, (1970), Stochastic Processes and Filtering Theory, Vol. 64 of Mathematics in Science and Engineering, Academic Press.

[15] J. L Crowley, (1995), Mathematical foundations of navigation and perception for an autonomous mobile robot’. Workshop on Reasoning with Uncertainty in Robotics.

[16] H. Durrant-Whyte, (1994), ’Where am I’, Industrial Robot 21,11-16 [17] T. Kailath, A. Sayed, &B. Hassibi, (2000), Linear Estimation, Prentice

Hall. ISBN: 0-13-022464-2 [18] Welch, G. & Bishop,G. (2001), An introduction to the kalman filter,

Technical Report TR 95-041, Department of Computer Science, University of North Carolina at Chapel Hill, Chapel Hill, NC 27599-3175.

Page 70: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

.

64

[19] R. Karlsson. Simulation Based Methods for Target Tracking.

LiU-Tek-LIC-2002:03, Printed by UniTryck, Linköping, Sweden 2002, ISBN 91-7373-267-2

[20] Y. Bar-Shalom, and T. Fortman, (1988). Tracking and Data Association, volume 179 of Mathematics in Science and Engineering. Academic Press.

[21] I. J. Cox, G.T. Wilfong, Autonomous Robot Vehicles, 1990 Springer Verlag,

[22] A. Persson L. Böiers. Analys i en variabel. Studentlitteratur 1990. ISBN 91-44-31341-1

[23] L. Zhang and B. K. Ghosh. Line Segment Based Map Building and Localization Using 2D Laser Rangefinder. Proceedings of the 2000 IEEE International Conference on Robotics & Automation San Francisco, CA April 2000.

[24] J. Nygårds, Å. Wernersson, On Covariances for Fusing Laser Rangers and Vision with Sensors Onboard a Moving Robot, Proceedings IEEE/RSJ conference on Intelligent Robots and Systems, 1998

[25] G. Blom. Sannolikhetsteori och statistikteori med tillämpningar. Studentlitteratur, Lund, Sverige, fjärde upplagan, 2000, ISBN 91-44-03594-2

[26] J. Forsberg, U.Larsson and Åke Wernersson. Mobile Robot Navigation Using the Range-Weighted Hough Transform. IEEE Robotics & Automation Magazine special issue on Mobile Robots, pp. 18-26,March 1995.

Page 71: Positionering och kartuppbyggnad med …19081/FULLTEXT01.pdf · Det finns flera olika metoder för att lösa denna typ av problem, t.ex. kalmanfilter och partikelfilter, [1], [2].

65

På svenska Detta dokument hålls tillgängligt på Internet – eller dess framtida ersättare – under en längre tid från publiceringsdatum under förutsättning att inga extra-ordinära omständigheter uppstår.

Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner, skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat för ickekommersiell forskning och för undervisning. Överföring av upphovsrätten vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan användning av dokumentet kräver upphovsmannens medgivande. För att garantera äktheten, säkerheten och tillgängligheten finns det lösningar av teknisk och administrativ art.

Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsman i den omfattning som god sed kräver vid användning av dokumentet på ovan beskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan form eller i sådant sammanhang som är kränkande för upphovsmannens litterära eller konstnärliga anseende eller egenart.

För ytterligare information om Linköping University Electronic Press se förlagets hemsida http://www.ep.liu.se/ In English The publishers will keep this document online on the Internet - or its possible replacement - for a considerable time from the date of publication barring exceptional circumstances.

The online availability of the document implies a permanent permission for anyone to read, to download, to print out single copies for your own use and to use it unchanged for any non-commercial research and educational purpose. Subsequent transfers of copyright cannot revoke this permission. All other uses of the document are conditional on the consent of the copyright owner. The publisher has taken technical and administrative measures to assure authenticity, security and accessibility.

According to intellectual property law the author has the right to be mentioned when his/her work is accessed as described above and to be protected against infringement.

For additional information about the Linköping University Electronic Press and its procedures for publication and for assurance of document integrity, please refer to its WWW home page: http://www.ep.liu.se/ © [Jonas Kjellander]