Designspecifikation. LiTH Autonom styrning av mobil robot 2007-05-22. Martin Elfstadius. Version 1.0. Status. TSRT71 Reglerteknisk projektkurs



Relevanta dokument
LiTH Autonom styrning av mobil robot Testplan Version 1.0 TSRT71-Reglertekniskt projektkurs Anders Lindgren L IPs

LiTH Autonom styrning av mobil robot Projektplan. Martin Elfstadius & Fredrik Danielsson. Version 1.0

Kravspecifikation. Oskar Törnqvist Version 1.0. Status. Granskad. Godkänd

Efterstudie. LIPs. LiTH Autonom styrning av mobil robot Martin Elfstadius. Version 1.0. Status. TSRT71-Reglertekniskt projektkurs

HARALD. Systemskiss. Version 0.3 Redaktör: Patrik Johansson Datum: 20 februari Status

LiTH. WalkCAM 2007/05/15. Testrapport. Mitun Dey Version 1.0. Status. Granskad. Godkänd. Reglerteknisk projektkurs WalkCAM LIPs

Systemskiss. Självetablerande sensornätverk med 3G och GPS. Version 0.2. Christian Östman Datum: 15 maj 2008

TSRT09 Reglerteori. Sammanfattning av Föreläsning 3. Sammanfattning av Föreläsning 3, forts. Sammanfattning av Föreläsning 3, forts.

Reglerteori, TSRT09. Föreläsning 4: Kalmanfiltret & det slutna systemet. Torkel Glad. Reglerteknik, ISY, Linköpings Universitet

Kurvlängd och geometri på en sfärisk yta

Mekanik III, 1FA103. 1juni2015. Lisa Freyhult

LiTH, Reglerteknik Saab Dynamics. Testplan Collision avoidance för autonomt fordon Version 1.0

REGLERTEKNIK KTH. REGLERTEKNIK AK EL1000/EL1110/EL1120 Kortfattade lösningsförslag till tentamen , kl

Systemskiss. LiTH. Autopositioneringssystem för utlagda undervattenssensorer Erik Andersson Version 1.0. Status

Systemskiss. Status. David Sandberg, Tobias Lundqvist, Rasmus Dewoon, Marcus Wirebrand Version 1.0. Granskad Godkänd

Vektorer. 1. Vektorer - definition och räkneoperationer F H

Reglerteknik M3. Inlämningsuppgift 3. Lp II, Namn:... Personnr:... Namn:... Personnr:...

Testprotokoll. Redaktör: Sofie Dam Version 0.1. Status. Planering och sensorfusion för autonom truck Granskad Dokumentansvarig - Godkänd

3. Körvägsalternativ. 3.1 Identifierade körvägar

Partiklars rörelser i elektromagnetiska fält

Testplan. Redaktör: Sofie Dam Version 0.1. Status. Planering och sensorfusion för autonom truck Granskad Dokumentansvarig - Godkänd

LIPs Fredrik Ljungberg ChrKr Projektdirektiv18_ROV.doc CKr

Omtentamen i DV & TDV

Självkoll: Ser du att de två uttrycken är ekvivalenta?

Tentamen Mekanik F del 2 (FFM520)

AB2.1: Grundläggande begrepp av vektoranalys

En ideal op-förstärkare har oändlig inimedans, noll utimpedans och oändlig förstärkning.

LiTH. WalkCAM 2007/05/15. Testplan. Mitun Dey Version 1.0. Status. Granskad. Godkänd. Reglerteknisk projektkurs WalkCAM LIPs

Den golfspelande roboten

Inlämningsuppgift 4 NUM131

Systemskiss. Joachim Lundh TSRT10 - SEGWAY 6 december 2010 Version 1.0. Status:

Kravspecifikation. LiTH Segmentering av MR-bilder med ITK Anders Eklund Version 1.0. Status

TENTAMENSUPPGIFTER I ELEKTROTEKNIK

Systemskiss. Redaktör: Anders Toverland Version 1.0. Status. LiTH Fordonssimulator. Granskad Godkänd. TSRT71 Anders Toverland

MODELLERING AV DYNAMISKA SYSTEM OCH INLUPP 2

Laboration i Maskinelement

Svar och arbeta vidare med Student 2008

x 2 + px = ( x + p 2 x 2 2x = ( x + 2

Distriktsfinal. Del 1: 7 uppgifter Tid: 60 min Maxpoäng: 21 (3p/uppgift)

TENTAMEN I REALTIDSPROCESSER OCH REGLERING TTIT62

Systemskiss. LiTH AMASE Accurate Multipoint Acquisition from Stereovision Equipment. Jon Månsson Version 1.0

Övningar för finalister i Wallenbergs fysikpris

Systemskiss. LiTH Autonom bandvagn med stereokamera Gustav Hanning Version 1.0. Status. TSRT10 8Yare LIPs. Granskad

Matematik för sjöingenjörsprogrammet

Fingerprint Matching

SLALOMINGÅNGAR hur svårt kan det vara?

formler Centralt innehåll

Enda tillåtna hjälpmedel är papper, penna, linjal och suddgummi. Skrivtid 4 h. OBS: uppgifterna skall inlämnas på separata papper.

HARALD Testprotokoll

LABORATIONSINSTRUKTION DIGITAL REGLERTEKNIK. Lab nr. 3 DIGITAL PI-REGLERING AV FÖRSTA ORDNINGENS PROCESS

Installationsguide. För att installera mjukvara och hårdvara, följ nedanstående anvisningar.

Programmering av stegmotorer ett miniprojekt i samarbete med Svensk Maskinprovning

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Tentamen i SK1111 Elektricitets- och vågrörelselära för K, Bio fr den 13 jan 2012 kl 9-14

KRAVSPECIFIKATION. Pontus Brånäs Wojtek Thorn Version 1.1. Status

Mätmetoder för ljudnivåskillnad för fasad och ljudnivå inomhus

LiTH Autonom bandvagn med stereokamera Användarhandledning. Gustav Hanning Version 0.1. Status. Granskad. Godkänd.

Om Pythagoras hade varit taxichaufför

Linnéuniversitetet. Naturvetenskapligt basår. Laborationsinstruktion 1 Kaströrelse och rörelsemängd

ORTONORMERADE BASER I PLAN (2D) OCH RUMMET (3D) ORTONORMERAT KOORDINAT SYSTEM

Grafer. 1 Grafer. Grunder i matematik och logik (2015) 1.1 Oriktade grafer. Marco Kuhlmann

FÖRKORTA DIN VÄG PÅ BANAN

LiTH Golfspelande industrirobot Designspecifikation. Designansvarig: Mikaela Waller Version 1.0. Status. Granskad Martin

METALL/STRÖM DETEKTOR

Laboration i Fourieroptik

Signalanalys med snabb Fouriertransform

MATEMATIK 5 veckotimmar

6.2 Partikelns kinetik - Tillämpningar Ledningar

Föreläsning 11. Giriga algoritmer

Kompletterande lösningsförslag och ledningar, Matematik 3000 kurs B, kapitel 4

Föreläsningsanteckningar i linjär algebra

Senaste revideringen av kapitlet gjordes , efter att ett fel upptäckts.

Observationer rörande omvandling av digitala yttäckande vektordata till rasterformat.

K3 Om andra ordningens predikatlogik

Att använda bildhanteringsprogram, del 2

1 Cirkulation och vorticitet

2011 Studsvik AB PANORAMA-BILDTAGNING. Tony Björkman

REPETITION (OCH LITE NYTT) AV REGLERTEKNIKEN

Matematik och modeller Övningsuppgifter

Testplan. Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil. Version 1.1 Fredrik Karlsson 26 november Granskad JL, FK 26 november 2012

Enklare uppgifter, avsedda för skolstadiet.

geoliner 480 / 482 Fyrhjulsmätinstrument för personbilar, med CCD-teknik & Windows

Kravspecifikation Remotely Operated Underwater Vehicle

LEGO Robot programmering och felsökning Hur svårt ska det vara att följa den svarta linjen?

FOURIERANALYS En kort introduktion

Var försiktig med elektricitet, laserstrålar, kemikalier osv. Ytterkläder får av säkerhetsskäl inte förvaras vid laborationsuppställningarna.

D/A- och A/D-omvandlarmodul MOD687-31

Reglerteknik Z2. Kurskod: SSY 050 och ERE080. Tentamen

Konstruktioner. 1 Att dela en sträcka i två lika delar. I Euklidisk geometri. Johan Wild Sträcka AB skall delas i två lika delar.

TENTAMEN I DYNAMISKA SYSTEM OCH REGLERING

Matematik E (MA1205)

Processidentifiering och Polplacerad Reglering

Reglerteknik M3, 5p. Tentamen

Information om ämnet Militärteknik med diagnostiskt självtest av förkunskaper till blivande studerande på Stabsutbildningen (SU)

No Oscillations Corporation. Efterstudie. Optimal Styrning av Autonom Racerbil. Version 0.1 Författare: Sofia Johnsen Datum: 20 december 2013

Trafikledning - System R

LIPs Isak Nielsen ChrKr Projektdirektiv13_ROV.doc CKr

Öppna bilden C:\Photoshop5-kurs\Bananer 96ppi.psd. Aktivera verktyget Färgpyts i verktygslådan.

Transkript:

Designspecifikation Version 1.0 Granskad Godkänd Status

PROJEKTIDENTITET Autonom strning av mobil robot Vårterminen 2007 Linköpings Tekniska Högskola, ISY Namn Ansvar Telefon E-post (ME) Projektledare/Designansvarig 070-2679995 martinelfstadius@gmail.com Oskar Törnqvist (OT) Dokumentansvarig 070-5125991 oskto043@student.liu.se Håkan Warnquist (HW) Regleransvarig 0702-474792 hakwa760@student.liu.se Thomas Gustafsson (TG) Implementationsansvarig 070-5850518 thogu137@student.liu.se Anders Andersson (AA) Webbansvarig 0738-254834 andan785@student.liu.se Fredrik Danielsson (FD) Signalbehandlingsansvarig 073-8340894 freda473@student.liu.se Anders Lindgren (AL) Testansvarig 070-5493157 andli665@student.liu.se Kund: Åke Wernersson, 0705-91 19 85, ake.wernersson@foi.se Jonas Ngårds, 013-37 82 16, jonas.ngards@foi.se Kursansvarig: Anders Hansson, 013-28 16 81, hansson@is.liu.se Beställare: Johan Sjöberg, 013-28 28 03, johans@is.liu.se Handledare: Daniel Petersson, 013-28 40 42, petersson@is.liu.se 2

Innehåll 1 Inledning... 5 1.1 Parter... 5 1.2 Mål... 5 1.3 Bakgrundsinformation... 5 1.4 Definitioner... 5 2 Översikt av sstemet... 5 2.1 Grov beskrivning av produkten... 5 2.2 Ingående delsstem...5 2.3 Designfilosofi... 6 3 Hårdvara... 6 3.1 Dator... 6 3.2 Gränssnitt... 6 3.3 Sensorer... 7 3.3.1 Laser... 7 3.3.2 Ultraljud... 7 3.3.3 Hjul... 7 4 Signalbehandlingsmodul... 7 4.1 Övergripande modulbeskrivning... 7 4.2 Association... 7 4.2.1 Punktpar... 7 4.2.2 Väggar... 8 4.2.3 Cirklar... 9 4.3 Kalmanfilter... 9 4.3.1 Skatta position... 10 4.3.2 Flödesschema för Kalmanfiltret... 10 4.4 Behandling av data... 11 4.4.1 Passager... 11 4.5 Flödesschema för modulen... 12 4.6 Lokala gränssnitt... 12 4.6.1 Mot BM... 12 5 Beslutsmodul... 13 5.1 Övergripande modulbeskrivning... 13 5.1.1 Arbetsordning... 13 5.1.2 Grov idébeskrivning... 14 5.2 Prioritetsmall... 14 5.2.1 BlindWalk... 14 5.2.2 Prioritering av funna passager... 14 5.3 Färdvägsevaluerande algoritmen... 14 6 Reglermodul (RM)... 16 6.1 Övergripande modulbeskrivning... 16 6.2 Signaler... 16 6.2.1 Strsignaler... 16 6.2.2 Reglerstorheter och referenssignaler... 17 6.2.3 Mätsignaler... 18 6.3 Regulatorn... 18 6.4 Modellen... 18 7 Referenser... 19 3

Dokumenthistorik version Datum Utförda förändringar utförda av granskad 0.1 2007-02-26 Första utkastet ME OT, ME 0.2 2007-02-27 Andra utkastet ME, OT ME 0.3 2007-02-28 Tredje utkastet ME Alla 0.4 2007-03-02 Ändringar efter kommentarer ME JN,Alla 0.5 2007-03-21 N BM, N RM ME,HW OT 0.6 2007-03-24 N SM, språkkorrigeringar OT ME 0.7 2007-05-03 NBM ME OT 1.0 2007-05-22 N SM FD OT 4

1 Inledning Sftet med projektet är att ta fram modeller och algoritmer med hjälp av Matlab för att stra en mobil robot på ojämnt underlag och genom trånga passager. Med hjälp av återkoppling från en skannande laser ska roboten ta sig fram då karta saknas eller då verklighet och karta inte stämmer överens. Via lasern ska roboten hitta farbara vägar och den ska passera hinder på ett säkert sätt. 1.1 Parter Kund är Åke Wernersson IKP/FOI samt Jonas Ngårds IKP/FOI och beställare är Johan Sjöberg vid avdelningen för reglerteknik, Linköpings tekniska Högskola. Projektet utförs av en projektgrupp med sju studenter från kursen Reglerteknisk projektkurs, TSRT71. 1.2 Mål Målet med projektet är att öka förståelsen hur man ska stra en robot autonomt i en okänd miljö, då mätningarna kommer från en laser. 1.3 Bakgrundsinformation Detta projekt är en del av ett större projekt prerunners som är ett samarbete mellan Mobile Robotics Sweden AB, Danaher Motion Särö AB, IKP/Mekaniska sstem, ISY/Bildkodning, FOI Linköping och Luleå TU. Detta dokument bgger på projektdirektivet Autonom strning av mobil robot som levererades av beställaren Johan Sjöberg 2007-01-23. 1.4 Definitioner Hinder: Ett hinder är något som stoppar robotens framkomlighet. Passage: En passage är en öppning mellan två objekt såsom hinder eller väggar. 2 Översikt av sstemet I det här kapitlet ges en översikt av sstemet. 2.1 Grov beskrivning av produkten Roboten kommer att bestå av tre moduler: En signalbehandlingsmodul, en beslutsmodul och en reglermodul. Modulerna kommer att implementeras och testas i en robot med ett färdigtbggt chassi. Programmeringen av modulerna kommer till största delen att ske i Matlab. Ur matlabkoden genereras C++-kod som kan implementeras på robotens dator. 2.2 Ingående delsstem Signalbehandlingsmodul (SM) Beslutsmodul (BM) Reglermodul (RM) 5

Figur 2-1: Schematisk skiss över de tre modulerna. 2.3 Designfilosofi Robotens sstem ska vara moduluppbggt så att det ska vara enkelt att bta ut signalbehandlingsmodulen, beslutsmodulen eller reglermodulen. Dessutom ger det möjlighet att testa modulerna var för sig. 3 Hårdvara Roboten är av modellen Pioneer 2 och har en inbggd dator samt en skannande laser som etra tillbehör, se Figur 3-1. Roboten har två drivande hjul och ett stödhjul vars mahastighet är 1,6 m/s. Figur 3-1: Roboten av modell Pioneer 2. 3.1 Dator Roboten har en inbggd PC som kör operativsstemet Windows 2000. På datorn finns ARIA installerat vilket är den mjukvara som används för att alla robotens funktioner. Här finns till eempel färdiga funktioner för att stra robotens hjul och hämtning av mätdata från sensorer. 3.2 Gränssnitt För att kommunicera med robotens dator används en bärbar dator samt mjukvaran NetMeeting så att man kan ansluta till roboten via WLAN. 6

3.3 Sensorer LiTH 3.3.1 Laser Roboten är utrustad med en skannande laser som sveper 180 horisontellt och gör en avståndsmätning för varje halv grad. På avstånd från 0,2 m till 8 m är mätfelet ±15mm. Uppdateringshastigheten är 10 Hz men på grund av den seriella anslutningen blir denna i praktiken ca 5 Hz. 3.3.2 Ultraljud Roboten är utrustad med 8 ultraljudssensorer för avståndsmätning. Sensorerna sitter i en halvcirkel på robotens front och täcker därmed ett område på 180. Sensorerna kan mäta i ett intervall från 0,1-5 m. Uppdateringshastigheten är ca 3 Hz. 3.3.3 Hjul Hjulen är utrustade med pulsgivare som kan användas för att mäta hjulens hastighet. Man kan mäta 500st pulser för varje varv som ett hjul roterar. 4 Signalbehandlingsmodul 4.1 Övergripande modulbeskrivning Signalbehandlingsmodulen har till uppgift att ta fram väggar, cirklar, och passager ur mätdata från lasern. Föremålens position skattas med hjälp av ett Kalmanfilter för att kunna identifiera na och gamla föremål. Data Association Kalman Beräkning av skärningspunkter för väggar och rektanglar. Relevanta passager 4.2 Association Associationsdelen har till uppgift att associera olika objekt till mätdata från lasern. 4.2.1 Punktpar Då mätdata från lasern kommer in i ordning från -90 grader till +90 grader går det att dela upp mätdata i olika par. Paren bestäms genom att stega igenom mätdata och se när avståndet mellan två närliggande punkter blir större än en viss längd. Med hjälp av de olika paren kan vi sedan beräkna fram väggar och cirklar. Nedan visas en figur där de olika punktparen tagits fram. 7

Figur 4.1 Generering av punktpar 4.2.2 Väggar Väggar beräknas fram med hjälp av punktparen som definierades ovan. Man börjar med att skicka in ett par och beräknar väggens position. Väggens position beräknas genom att man skapar en tom matris C där raderna anger avståndet från roboten och kolumnerna anger vinkeln från robotens -ael. För varje punkt beräknar vi avståndet till alla väggar som den kan tänkas tillhöra enligt följande. Punktens och koordinat projiceras ner på en linje med vinkel α i och vi lagrar det avstånd d i vi får för den vinkeln. Denna punkt kan då tillhöra en vägg som har vinkeln α i och avståndet d i från roboten. Detta görs för alla vinklar från -180 till 180 med upplösning på 2 grader. Efter att avståndet beräknats för alla vinklar löper man igenom dessa och tilldelar C(d i,α i ) = C(d i,α i )+1 för alla punkter. Genom att sedan lokalisera ma värdet för C matrisen får vi ut d och α för väggen. Efter att väggen beräknats använder vi kalmanskattning, se 4.3 för att skatta fram d och α för väggen. När detta har genomförts lägger vi ett fönster kring väggen och tar bort de punkter som tillhör väggen. Den första och sista punkten som tillhör väggen projiceras ner på väggen och anger väggens start och slutpunkt, P start och P slut. De punkter som blir kvar efter det att vi tagit bort de punkter som tillhörde den förra väggen används för att beräkna nästa vägg i punktparet. 8

Figur 4.2 Projicering av punkt på linje 4.2.3 Cirklar När vi beräknar cirklarna gör vi vissa antaganden om att vi alltid ser halva cirkeln. Detta ledar till att vi kan använda ändpunkterna på punktparet för att bestämma radien på cirkeln. Radien på cirkeln, r cirkel, fås som avståndet mellan punkterna delat på två. Vinkeln α i bestäms som medelvärdet av vinklarna på ändpunkterna från robotens -ael och avståndet d i beräknas som minsta avståndet till någon av punkterna hörande till punktparet + r cirkel. För att sedan kontrollera om vi hittat en cirkel eller om punktparet istället skall tolkas som en vägg eller väggar, kontrollerar vi så att alla punkter hörande till punktparet ligger inom ett fönster kring den tänkta cirkeln bågen. Figur 4.3 Detektering av cirkel Efter att cirkeln beräknats fram lagrar vi den enligt följande. d d cirkelfkn( mätdata) r r... mittpunkt 1 mittpunkt 2 = cirkel 1 cirkel 2 α1 α 2 4.3 Kalmanfilter Tillståndsmodellen för skattningen av världens rörelse runt roboten är beroende på hur eakta signalerna för robotens hastighet är, så blir tillståndsmodellen enligt: 9

Modell 1 &( = A( + Bu( + Ge( där ( = (,, θ ) ( = Ct ( + e( där u ( = ( v, ω) och e( är mätbrus. LiTH Om u( är opålitlig kan hastigheterna betraktas som tillstånd och därmed skattas fram enligt: Modell 2 &( = A( + Ge( ( = (,, θ, v,, & v θ ) ( = Ct ( + e( där e( är mätbrus. 4.3.1 Skatta position Från associationsfunktioner har vi beräknade d m, α m, P start, P slut för väggar och r cirkel,ϕ m, dmittpunkt för cirklar. Med hastigheten och vinkelhastigheten beräknar vi objektens förflttning baserat på föregående skattade värden. För varje tidpunkt får vi in mätvärden, (. Med hjälp av det skattar vi först fram ˆ ( t = ˆ( t t 1) + L( ( ( Ct ˆ( t t 1)) där L( är Kalmanförstärkningen och ˆ( t betder värdet i tidpunkten t med information från tidpunkten t. Om de återkopplade hastigheterna, u(, är väldigt bra tar vi fram det framtida värdet ˆ( t + 1 genom ˆ ( t + 1 = At ˆ( t + Btu( Om u( är väldigt opålitlig så skattas hastigheten för roboten genom att införa tterligare tillstånd. Då fås ˆ( t + 1 genom ˆ ( t + 1 = At ˆ( t där u( är inbakad i ( Då vi har ˆ( t + 1 kan man i tidpunkten t+1 jämföra värdena med de uppmätta värdena (t+1) och på så sätt avgöra om de är na eller gamla objekt. Då man vet det kan den na positionen för roboten gentemot världen avgöras. Det skattade ˆ( t används för beräkningarna då väggar och hinder tas fram eftersom den har tagit hänsn till mätbruset som finns i (. Efter genomförd skattning ges de gamla objekten samma ID-tag som tidigare och na objekt tilldelas en n ID-tag. 4.3.2 Flödesschema för Kalmanfiltret t-1 t t+1 t+2 10

Vid tidpunkt t sker: 1. ( mäts. 2. (t -1) jämförs med ( för att bestämma om objekt är na eller gamla. Objekten ID-taggas. 3. M h a ( och (t t-1) skattas (t. 4. Väggar, hinder mm beräknas ur (t t-1). 5. (t+1 beräknas m h a (t. 4.4 Behandling av data Här kommer vi att med hjälp av de skattade värdena beräkna passager för att sedan skicka dem vidare till BM. 4.4.1 Passager Med hjälp av de skattade ändpunkterna till väggarna och de skattade cirklarna beräknar vi fram passagerna. Först beräknar vi det minsta avståndet från väggens ändpunkter till de andra väggarna/cirklarna som inte kommer från samma punktpar. Om det minsta avståndet ligger inom intervallet 445 till 1500 mm anser vi detta vara en passage och lagrar passagens ändpunkter enligt följande. p1 p3 p5 passagefkn( mätdata) =... p2 p4 p6 När detta genomförts för alla väggar och cirklar lagrar vi data enligt nedan för att skickas till BM. p1 p1 p2 p1 p2 radie Posskatt(p, v, c) = p2 p3... ; p2 p3... ;... ; vinkel 1 2 1 2 1 där p = passager, v = väggar, c = cirklar. 11

4.5 Flödesschema för modulen LiTH Figur 4.4 Flödesschema för signalmodulen 4.6 Lokala gränssnitt 4.6.1 Mot BM Det skickas en struct med tre element: passager, väggar och cirklar. Passager består av en vektor med punktpar i varje kolumn samt på nedersta raden en ID-tagg om det är en n passage eller gammal. Man får enkelt ut hur många passager det finns genom att ta längden av vektorn. Väggar består av en vektor med punktpar i varje kolumn samt på nedersta raden en ID-tagg. Man får enkelt ut hur många väggar det finns genom att ta längden av vektorn. Cirklar består av en vektor där varje kolumn representerar en cirkel. Överst i kolumnen är cirkelns mittpunkt, sen kommer radien, sen vinkeln relativt roboten och till sist taggen. In till signalmodulen kommer hastigheten representerat som en 21matris med den radiella hastigheten och vinkelhastigheten för roboten. 12

5 Beslutsmodul Insignal är en vektorvärd skildring av omvärlden levererad av SM. Baserat på denna genereras en önskad färdväg. Utsignaler är en referenspunkt, en referensvinkel och två färdvägsbegränsande vinklar. 5.1 Övergripande modulbeskrivning 5.1.1 Arbetsordning Modulen väljer enligt stcke 5.2 ett önskat mål. Möjligheterna att nå detta mål utvärderas med hjälp av en färdvägsalgoritm, se stcke 5.3. En färdväg skickas till RM. Denna procedur upprepas kontinuerligt. Se figur 5.1 Finns det någon passage? Mätdata Ja Nej Prioriteringsordning av passager. Ja Fler passager? Nej BlindWalk Är passagen godkänd? Nej Ja Är färdvägen godkänd? Nej Ja Leverera färdväg. Figur 5.1 Flödesschema för beslutsmodulen 13

5.1.2 Grov idébeskrivning Lägena för väggar, hinder och passager definieras i ett koordinatsstem där lasern alltid kommer att befinna sig i origo. Detta är robotens koordinatsstem (KR). RM förses kontinuerligt med na mål från BM. Målen definieras av en punkt i KR. Denna punkt är origo i ett ntt fit koordinatsstem för målet (KM). KM kan alltså ses som ett slutmål för KR. Målet är nått då de båda koordinatsstemen sammanfaller. Roboten kommer på detta vis att leta efter hinder och passager autonomt. I figur 5.3 illustreras hur KR och KM relaterar till varandra. 5.2 Prioritetsmall Här beskrivs slutmålen och hur BM prioriterar mellan dessa. 5.2.1 BlindWalk Grundfallet är att man befinner sig i ett tomt rum, inga passager har lokaliserats eller de som finns har redan blivit underkända. Då kommer funktionen BlindWalk diktatoriskt besluta om färdväg. BlindWalk jobbar direkt med laserns mätdata som insignal. Uppgiften är att se till att roboten håller sig rörandes på ett slumpmässigt vis utan att kollidera med de väggar och hinder som finns. Så fort SM finner en passage tack vare BlindWalks förflttning kommer den vanliga passagealgoritmen att skicka mål till RM. Hamnar roboten i en återvändsgränd ges order om en helomvändning. 5.2.2 Prioritering av funna passager När flera passager hittas prioriteras passagerna genom att sortera dem efter avståndet från roboten till mitten av passagen. Lokaliseras två passager på samma avstånd väljs inte någon passage efter någon speciell algoritm utan den passage som har hittats först blir den passage som får högst prioritet. Om en passage har valts som mål men en n passage detekteras på ett kortare avstånd innan målet är nått förkastas den gamla passagen till fördel för den na närmre passagen. 5.3 Färdvägsevaluerande algoritmen Oberoende av målets natur, passage eller öppen ta, kommer det att definieras av KM. Då målet är en passage kommer KM att omslutas av ett rektangulärt område kallat passagerektangeln (PR). Att denna ta måste vara fri från hinder är ett grundkrav för att roboten ska kunna passera en passage riskfritt. Se figur 5.3: 14

Figur 5.3 Då en passage kan anses vara säker har det markerade området också säkrats från hinder Först säkras själva passagen. För att kunna göra det måste sikten till PR vara fri från hinder. Detta görs genom att skapa två trianglar (se Figur 5.3) och sedan kontrollera alla väggar och hinder så att de inte skär triangelns väggar eller befinner sig i någon av trianglarna. När båda trianglarna är fria från hinder är passagen säkrad. En ta säkras enligt figur 5.3. Nu måste BM säkra en färdvägsta för RM att stra roboten över. Två vektorer används för detta. De ansätts i KM:s origo och slutar i KR:s origo. Alltså är de till att börja med två kopior av målvektorn med motsatt riktning. De båda vektorerna vrids nu cirkulärt runt KM tills de stöter på ett hinder eller en vägg. På så sätt definieras de båda begränsningsvinklarna φ 1 och φ 2 i förhållande till KM:s förlängda -ael. Se figur 5.5 och 5.6. φ 1 φ 2 Figur 5.5 Vektorerna spänner upp en säker ta Figur 5.6 Inga hinder => φ 1 = φ 2 = ±90 grader Nu har en färdta definierats. Passagen anses vara ett giltigt mål om den smalaste midjan av den säkrade färdtan i sig passerbar. Se figur 5.7 och 5.8 15

d Figur 5.7 Godkänd färdta Figur 5.8 Icke godkänd färdta Skulle begränsningsvinklarna vara sådana att RM inte kommer att kunna falla in mot KM:s förlängda -ael så kommer RM att stra in mot den begränsande vektorn tills hindret är passerat eller passagerektangeln är nådd. Utsignalen blir alltså en referenspunkt för målet, en referensvinkel som berättar hur KM är orienterat i förhållande till KR och de båda färdvägsbegränsande vinklarna. Dessa storheter sammanfattas till q rel = [ rel, rel, θ rel, φ 1, φ 2 ]. 6 Reglermodul (RM) 6.1 Övergripande modulbeskrivning RM har till uppgift att reglera in roboten mot ett mål som är givet av BM utan att åka utanför det område som är av BM garanterat fritt från hinder. 6.2 Signaler 6.2.1 Strsignaler Roboten har två drivande hjul med tillhörande elmotorer. Roboten svänger genom att hjulen drivs framåt olika fort. Redan implementerat i roboten finns ett inre reglersstem som str hjulen så att en viss hastighet, v, och en viss rotationshastighet, & θ hålls. Detta betder att de strsignaler som RM arbetar med är referenssignalerna v ref och & θ ref. För att roboten ska åka i jämn fart låter RM hastigheten vara konstant. Vid snäva svängar då den önskade rotationshastigheten & θ ref sätts alltför stort kan dock v ref behöva sänkas. 16

6.2.2 Reglerstorheter och referenssignaler Insignalen från BM, q rel = [ rel, rel, θ rel, φ 1, φ 2 ] beskriver målets position, orientering relativt roboten samt begränsningar rörande färdvägen. I RM räknas d ut som är det ortogonala avståndet till förlängningen av den linje som roboten ska följa när den passerar målet. RM arbetar för att få d och θ rel till noll och på så sätt få roboten att färdas till målet och anlända där i rätt vinkel. Figur 6.1 visar hur signalerna i q rel och d är definierade i förhållande till robotens koordinatsstem. θ rel passage θ & robot v rel rel d Figur 6-1 definitioner av q rel och d. 17

6.2.3 Mätsignaler Mätsignalerna i q rel levereras av BM. Utöver dessa finns givare inbggda i roboten för v och θ & som kan komma till ntta vid regleringen. I figur 6.2 kan man se hur alla signaler är sammankopplade med RM. RM vref, & θ ref Robot v,θ & Roboten förflttar sig i rummet BM q rel Figur 6-2: Koppling mellan reglermodul och beslutsmodul. 6.3 Regulatorn För att kunna konstruera en bra regulator krävs givetvis en modell av hur strsignalerna påverkar förändringen av q rel. Denna modell är starkt olinjär vilket betder att en linjärisering måste göras. Detta görs enklast genom att linjärisera kring den punkt roboten befinner sig i. Med hjälp av den linjära modellen tas en diskret LQ-regulator fram. Na matriser tas fram i varje sampling. För att tvinga roboten att ligga eakt rätt vid passering bör d regleras hårdare då avståndet till passagen minskar. 6.4 Modellen Den olinjära modellen för q rel tas lätt fram med hjälp av ekvationer för relativ rörelse. & & rel = v + θrel & = & rel θrel (1) & θ = & θ rel Tillståndsekvationen för d fås ut genom att derivera värden från (1). d& = vsinθ (2) rel d= rel sin θ + cosθ och sätta in rel rel rel LQ-regulatorn för att reglera θ rel och d mot noll behöver inte tillstånden rel och rel så den blir enklare: & θ rel = & θ (3) d& = vsinθ rel 18

7 Referenser LiTH Autonom strning av robot, Sstemskiss version 1.0, Anders Lindgren Mobile Robot Navigation Johan Forsberg, Ulf Larsson, Åke Wernersson Laser Guided Vehicle Bengt Gunnarsson 19