• No results found

Metrisk karta

In document Kartering med autonomt fordon (Page 43-60)

4. Kartering

4.1. Metrisk karta

Den metriska kartan är det resultat som är tänkt att kunna användas av andra system i efterhand. Det topologiska nätverket är en intern representation av omvärlden för att systemet skall kunna navigera på ett enkelt sätt under tiden som den metriska kartan skapas. Kartan skapas i en storlek så att en pixel i kartan motsvarar en centimeter i verkligheten. På så sätt blir det enkelt att mäta avstånd och arbeta med kartan. Kartan är även dynamisk och utökas vartefter fordonet tar sig längre från startpunkten. Initialt är kartan inte mycket större än fordonet men utökas så fort något sensorsvar når utanför kartan i någon riktning. Kartan utökas till den nya punkt som sensorsvaret kom ifrån plus en halvmeter till i den riktningen. Detta gör att kartan bara skapas på de ytor som är aktuella oavsett vilket håll systemet väljer att köra åt.

Varje pixel i kartan innehåller ett värde mellan 0 och 255 som ger kartan en gråskala där svart/0 indikerar hinder och vitt/255 indikerar öppna ytor. För att kunna avgöra vilka ytor som utforskats och inte, så initieras kartan som grå/127. Varefter fordonet utforskar ytorna sänks de pixlar där det finns hinder och de pixlar där det är öppet höjs. På detta sätt får man en karta i en gråskala som visar var systemet tror att det är öppet, var det är väggar och var systemet inte har varit. Ju mörkare en punkt är desto säkrare är systemet på att den punkten utgör ett hinder och på motsvarande sätt med ljusa punkter och öppna ytor.

4.2. Sensorhantering

Eftersom sensorerna fungerar så som beskrivits i avsnitt 2.4 så vet man att föremålet som gav ekot finns någonstans utefter lobens front. Hela fronten av loben bör därför markeras som ett möjligt hinder och sänks därför ett fördefinierat antal steg. På samma sätt höjs ytan inom loben för att markera att ytan är fri från hinder. Hur mycket varje sensor skall höja och sänka punkterna definieras för varje enskild sensor med värden för både höjning och sänkning. På detta sätt kan en sensor sättas till att exempelvis enbart höja öppna ytor, sänka ytor med hinder eller både och. Dessa värden kan anpassas efter varje sensor. En sensor som lätt missar hinder kan sättas till att inte markera öppna ytor lika hårt som en sensor som aldrig missar något. Smalare sensorer kan sättas till att markera hinder tydligare än vad en sensor med en bred lob får göra. Den bakre sensorn kan exempelvis vara bra att ställa in så att den inte markerar hinder eftersom det oftast går någon precis bakom fordonet vid testning som annars skulle förstöra kartan.

Figur 22 visar resultatet av alla sensorer i en mätning. Fordonet är riktat till vänster som i Figur 5 och placerat i en korridor med väggar på ovan och undersidan som ger sensorsvar. Framåt och bakåt fås inga ekon vilket gör att de ytorna endast görs ljusare utan någon mörk front. Figuren visar även skillnaderna på viktningen av de olika sensorerna där vissa sensorer ger mycket större påverkan än andra. Figuren är endast ett exempel på hur sensorerna skulle kunna viktas. Tester har visat att tydligast bild fås om de bakre sidosensorerna inte används för att rita den metriska kartan. De bakre sidosensorerna är mer värdefulla för navigeringen än den noggrannare karteringen.

Figur 22 Resultat av sensorsvaren vid en uppdatering.

När fordonet kör framåt passerar sensorerna förbi hinder och väggar och bygger successivt upp en säkrare bild över hinder och öppna ytor. Eftersom hindren byggs upp successivt kommer de delar av lobfronten som egentligen inte innehåller något hinder att tillfälligt markeras felaktigt, men varefter andra delar av loben och även andra sensorer passerar förbi kommer dessa felaktigt sänkta punkter att höjas upp igen. Detta är ett resultat av att lobfronten som sänker punkter är så pass smal jämfört med den inre delen av loben, att punkter som felaktigt sänks av den smala lobfronten lätt höjs upp igen när de träffas flera gånger av den större inre loben. Systemet gör det alltså enkelt att höja felaktigt sänkta punkter och svårt att höja punkter som innehåller ett hinder, eftersom punkter som innehåller hinder orsakar ekon och placerar lobfronten på denna punkt och sänker punkten ytterligare. Ett exempel på hur en korridor kan ritas upp när fordonet kör åt vänster kan ses i Figur 23. Figuren visar hur de främre sensorerna successivt höjer upp ytan framför fordonet samtidigt som sidosensorerna markerar väggen. Längst till vänster ser man hur formen av de främre sidosensorernas lobfronter gör att väggarna lutar inåt i korridoren. Längre tillbaka i korridoren har dessa felaktigheter justerats så att endast spetsen som i detta fall är den korrekta delen av lobfronten finns kvar. Sidorna av lobfronterna har på de flesta platser blivit vita igen, medan de på vissa platser som exempelvis utefter den övre väggen endast har hunnit återgå till en grå färg.

Som nämnts ovan så har bäst resultat uppnåtts när de bakre sidosensorerna inte används för att rita den metriska kartan. Orsaken till detta är att de mittersta sidosensorerna inte orsakar samma felaktiga markeringar som de bredare sensorerna. De mittersta sensorerna är så pass smala att de ger en mycket mindre punktformad markering istället för en bred båge. De mittersta sensorerna raderar därför eventuella fel som sensorerna framför dem orsakar. Detta gör att den främre sensorn mest fungerar som utfyllnad mellan det som de mittersta sensorerna markerar. Om de bakre sidosensorerna används till att rita den metriska kartan så finns det ingen bättre sensor bakom som justerar de fel som de skapar.

Figur 23 Kartering av korridor.

En annan effekt som kan observeras i Figur 23 är de ljusa områdena på sidan av korridoren. Dessa är orsakade av den bakre och de främre sensorerna som har för hög infallsvinkel mot väggen, se avsnitt 2.4, och därför inte får något svar. Sensorerna markerar därför hela den inre delen av loben som öppen även om den som i detta fall delvis borde ha markerat ett hinder.

När sensorerna används för att verifiera hörn så som beskrivs i avsnitt 3.6 används SRF235 sensorerna med 15° utbredningslob, se avsnitt 2.4. Även om detta är en smal lob när det gäller ultraljudssensorer så uppstår ändå ett fel i den position som tas fram för hörnet. Hörnets beräknade position baseras på den sista mätningen som ger ett eko från väggen. Punkten beräknas utefter lobens mittlinje och placeras på väggen. Lobens bredd gör att dess mittlinje kan vara allt från en bit in på väggen till att ha passerat hörnet när punkten tas fram. Sträckan från det verkliga hörnet till den beräknade punkten beror både på avståndet från sensorn till väggen och med hur mycket föregående mätning ”missade” väggen. På grund av att de efterföljande mätningarnas lober överlappar varandra mer ju längre ut från sensorn man jämför, så kommer den beräknade punkten för hörnet alltid att hamna utanför väggen vid stora avstånd och oftast på väggen vid små avstånd.

Figur 24 visar två situationer med en sensor och dess utbredningslob vid två efterföljande mätningar samt hur loben träffar två väggar på olika avstånd. I figuren avses att sensorn/fordonet förflyttas åt vänster så att den vänstra/senaste mätningen missar väggen och den högra/tidigare mätningen blir den som används för att beräkna hörnpunkten. Den vänstra halvan av figuren visar ett fall där den vänstra/senaste mätningen precis missar väggen med så liten marginal som möjligt. Den högra halvan visar motsatsen där den vänstra/senaste mätningen missar väggen med så stor marginal att den tidigare mätningen nästan också missar väggen. Sträckan A i Figur 24 utgör sträckan som fordonet förflyttar sig mellan två mätningar. Om fordonet kör i normalhastigheten på 0,3 m/s och sensorerna mäter fem ggr/s blir sträckan A 6 cm. På 1 m håll kommer den beräknade punkten alltid att hamna utanför väggen. Detta beror på att när hela den senaste ”missande” loben har passerat hörnet så har även mittlinjen från den föregående ”träffande” loben passerat hörnet med cirka 7 cm, detta avstånd syns i den vänstra delen av Figur 24 som avstånd B. Om mätningarna skulle ha skett senare som i den högra delen av figuren så skulle avståndet från hörnet till den beräknade punkten kunna gå upp emot 13 cm, avstånd C i figuren. Detta beror på lobens bredd som gör att mittlinjen kan ha passerat hörnet med ca 13 cm samtidigt som loben fortfarande träffar hörnet.

På nära håll blir det däremot annorlunda eftersom loberna där fortfarande är smala och inte överlappar varandra. Om man tänker sig att väggen är precis intill sensorn så kommer lobbredden inte att spela någon roll, utan när lobens mittlinje har passerat så kommer sensorn att rapportera oändlighet. Detta gör att den beräknade punkten framför föregående mätning alltid kommer att hamna på väggen någonstans mellan hörnet och sträckan D in på väggen. Sträckan D går mot A som är 6 cm när avståndet mellan väggen och sensorn går mot 0. Praktiskt sett blir det aldrig så långt eftersom sensorn har ett minsta mätbart avstånd på 4 cm som ger ett avstånd D på maximalt 5,4 cm. Eftersom sensorns minsta avstånd även ger upphov till en viss lobbredd finns det även en chans att punkten som beräknas utefter lobens mittlinje hamnar utanför väggen innan loben lämnar väggen. Detta avstånd illustreras som E i figuren och börjar vid sensorns minsta mätbara avstånd som 0,6 cm och ökar sedan vartefter avståndet till väggen ökar och når vid 1 m avstånd ca 13 cm, avstånd C i figuren.

Avståndet D in på väggen uppstår bara vid korta avstånd. Redan vid ca 30 cm avstånd till väggen korsar den missande lobens sida den träffande lobens mittlinje. På längre avstånd än 30 cm kommer alltså den beräknade hörnpunkten alltid att hamna utanför väggen. Eftersom de största möjliga felen dock bara ligger mellan +13 och -5,4 cm har detta ansetts som relativt litet i sammanhanget och har därför försummats. Det är möjligt att skapa en modell för att beräkna punkten på ett bättre sätt, men eftersom det ändå skulle bestå ett fel på upp till 6 cm som är avståndet mellan mätningarna så har detta arbete inte prioriterats.

Figur 24 Fel vid positionsbestämning av hörn.

A D B A E C

5. Utvärdering

5.1. Syfte

Utvärderingen är tänkt att fungera som en sammanfattning och redovisning av hur långt arbetet har kommit, vilka delar som fungerar bra och vilka delar som fungerar mindre bra samt visa exempel på olika resultat och brister i systemet. I avsnitt 5.3 redovisas olika resultat från olika testkörningar som sedan diskuteras i avsnitt 5.4.

5.2. Metod

Testkörningarna som ligger till grund för de presenterade resultaten har gjorts i den kontorsmiljö som arbetet har utförts i på Saab Bofors Dynamics i Linköping. Miljön utgörs av korridorer och öppningar som räcker till för att testa de flesta situationer som systemet är tänkt att klara av. Vissa situationer som kräver större öppna ytor som inte finns att tillgå i testmiljön har testats genom att vissa sensorer på plattformen har plockats bort, detta ger effekten av att systemet tror att de bortplockade sensorerna rapporterar oändlighet. På detta sätt var det möjligt att testa alla typer av noder som systemet skall klara av även om de inte kan uppstå naturligt i testmiljön.

Av praktiska skäl har inte miljön anpassats för att förenkla omständigheterna vilket hör att dörrarna i korridorerna inte bara är öppna eller stängda utan kan vara halvstängda. In till varje rum finns det dessutom trösklar som plattformen inte tar sig över. Testarna har därför gjorts enbart i korridorerna. Systemet är heller inte gjort för att hantera möblerade rum med stolsben och inredning vilket gör att tester i rum inte kunnat göras, dock har tester av motsvarande situationer gjorts i en öppen yta i korridoren.

Korridorerna som använts består av två parallella korridorer som är cirka 52 m långa. Mellan dessa gå tre stycken 6 m långa korridorer, varav den mittersta är som ett mindre rum.

Den bärbara datorn som använts under testerna har en 1GHz Intel Pentium® III- m processor och 512MB RAM.

För att kunna rita ut noderna och deras omgivande punkter på den slutliga kartan under testkörningarna och i redovisningssyfte så har klassen Map getts möjlighet att läsa av objekten i klassen Topo. Denna länk skickas till Map endast när kommando har getts för att skapa en png-bild med noder på.

5.3. Experimentella resultat 5.3.1. Sensorer

Tidigare arbeten med plattformen har endast använt ultraljudssensorer av typen SRF10. I detta arbete introducerades två nya typer av sensorer, SRF08 och SRF235. För att dessa skulle kunna användas i systemdesignen behövde de utvärderas innan designarbetet gjordes, men även egenskaperna för SRF10 testades. Den huvudsakliga anledningen att sensorerna testades var för att få praktiska erfarenheter och en uppfattning om hur sensorerna beter sig. De exakta lobbredderna för sensorerna är svåra att mäta eftersom de både beror på sensorernas effektinställningar, avståndet och riktningen till det detekterade föremålet samt dess storlek och egenskaper som ultraljudsreflektor.

I databladen är sensorernas lobbredder angivna till 55° för SRF08, 72° för SRF10 och 15° för SRF235. För att testa hur väl detta stämmer gjordes tester där en 7 cm bred kartong ställdes vinkelrätt mot sensorn på 50 cm avstånd, sträcka d i Figur 25. Kartongen placerades på sensorns mittlinje och flyttades sakta rakt ut från mittlinjen tills dess att sensorn tappade kontakten med den. Vartefter kartongen flyttades längre från mittlinjen så vinklades den om så att den alltid var vinkelrät mot sensorn. Sträckan från mittlinjen till kanten på kartongen när sensorn tappar kontakten mättes sedan, sträcka a i Figur 25. Arctan(a/d)*2 ger den totala lobbredden för sensorn. Förutom testerna med kartongen så gjordes även tester med andra föremål såsom vattenflaskor och pennor. Dessa gav en utökad uppfattning om hur känsliga sensorerna är och hur små föremål de klarar att detektera.

Figur 25 Test av lobbredd.

För SRF10 mättes det maximala avståndet a från mittlinjen till 60 cm vilket motsvarar en total lobbredd på cirka 100°. I det läget var sensorn dock extremt känslig för att kartongen som användes som hinder var vinklad precis vinkelrätt mot sensorn. Att sensorn överhuvudtaget klarade detektera kartongen vid så stor vinkel beror på de sidolober som kan ses i Figur 4. Sidoloberna är en effekt av att sensorns ultraljudspulser inte endast går i den önskade riktning, utan i viss omfattning går i alla riktningar från sensorn. Detta gör att det finns en möjlighet att hinder detekteras utanför det område som normalt anges som sensorns lob. Under optimala förhållanden, på korta avstånd skall det därför vara möjligt att detektera ett hinder bakom sensorn.

d

Lobbredden för SRF10 sensorn visade sig vara svår att bestämma, men exempelvis runda föremål som ett dricksglas kunde detekteras upp till 20 cm från mittlinjen och tyder på en lobbredd på cirka 44°. Generellt har sensorn dock svårt att detektera föremål även nära mittlinjen, speciellt om de har en liten yta som kan reflektera tillbaka pulserna. Sensorn klarade inte detektera föremål som var mindre än cirka 9 cm² på 50 cm avstånd. För att ett föremål skall detekteras måste det ha en slät yta som är näst intill vinkelrätt mot sensorn. Nära mittlinjen klarar sensorn dock att detektera släta ytor även om de är vinklade uppåt 20° från vinkelrätt riktning.

De papperscylindrar som har behållits på två stycken SRF10 sensorer från tidigare arbeten [9] är tänkta att minska lobbredden på sensorerna. Även dessa sensorer testades för att kunna jämföras med sensorerna utan papperscylindrar. De maximala avstånd som mättes upp på 50 cm avstånd med papperscylindrar var 45 cm. Detta ger en lobbredd på 84° och är därmed märkbart smalare än utan cylindrarna. I övrigt fungerar sensorerna likadant som sensorerna utan papperscylindrar, och visar därmed att cylindrarna ger den avsedda effekten med minskade lobbredder utan att märkbart påverka sensorernas övriga egenskaper och förmåga att detektera hinder inom loben.

På de bakre sensorerna SRF10 sensorerna monterades avskärmningar på undersidan för att lyfta loben så att den inte skall träffa trösklar och låga föremål. Även dessa avskärmningar ger önskad effekt och förhindrar helt att sensorerna detekterar något under avskärmningarnas höjd. Genom att vinkla avskärmningarna olika högt så att de täcker sensorn olika mycket, kan de ställas in så att den undre delen av loben begränsas till önskad minimum höjd.

SRF08 sensorn presterade bättre under testerna än SRF10, med mer konsekventa och tydliga resultat. Sensorn klarade att detektera så små saker som en lodrätt placerad penna upp till 28 cm från mittlinjen. Detta motsvarar en lobbredd på cirka 58° vilket inte skiljer mycket från de 55° som anges i databladen. Större föremål såsom kartongen detekterades upp till 52 cm från mittlinjen motsvarande en lobbredd på 92°. Enligt Figur 4 har sensorn en utökad sidolob omkring just 90° vilket stämmer bra överrens med testerna. SRF08 ger alltså ett mer konsekvent resultat än SRF10 och klarar detektera mindre föremål.

Tydligast resultat av alla sensorer som testades gav SRF235 sensorn. Inom 6 cm från mittlinjen detekterades alla föremål som användes, exempelvis den 7 cm breda kartongen och pennor men även ett litet metallbleck på 1 cm² på upp till 120 cm avstånd. Gränsen för när sensorn tappade kontakten var väldigt tydlig och konsekvent på precis 6 cm på båda sidor om mittlinjen på ett avstånd av 45 cm från sensorn. Detta ger en total lobbredd på 15° vilket stämmer med vad databladen anger. Sidoloberna för SRF235 sensorn kunde inte detekteras någonstans.

Utöver testerna för lobbredd testades även för vilka infallsvinklar SRF235 klarar att detektera släta ytor. Testet gjordes på grund av att databladen anger att sensorn endast klarar att detektera föremål om infallsvinkeln är mindre än cirka 9°. En större helt slät kartong placerades därför på mittlinjen 50 cm framför sensorn. Kartongen vreds till precis innan sensorn tappade kontakten, därefter markerades kartongens riktning. Sedan gjordes samma procedur åt andra hållet. Vinkeln mellan dessa maximala riktningar på kartingen mättes därefter upp till 15,9° vilket ger en maximal infallsvinkel på cirka 8° i respektive riktning. Denna infallsvinkel är alltså den maximala infallsvinkeln innan sensorn tappar kontakten, vilket stämmer väldigt bra med databladens vinkel på cirka 9° där sensorn skall tappa kontakten.

Gemensamt för alla sensorer är att de lätt störs av vissa föremål, exempelvis så sitter det u-formade metallister monterade lodrätt på väggarna i testmiljön med drygt en meters mellanrum. Om någon av dessa lister hamnar i mitten av någon sensors lob, så kommer den sensorn att tappa kontakten med väggen och rapportera oändlighet. Detta är ett väldigt oväntat resultat eftersom den större delen av sensorns lob träffar de annars väl reflekterande väggytorna på sidorna av listen. Liknande resultat ges även av olika trälister som sitter monterade runt dörrar och på olika hörn i testmiljön. Dessa lister gör ofta att sensorerna rapporterar felaktiga avstånd, både kortare och längre än det verkliga avståndet. De orsakar alltså inte samma fel som metallisterna utan ger istället mindre felaktigheter i avstånd. Detta gör att enstaka mätningar omkring dörrar och hörn orsakar små fel i kartan. Hörn utan lister fungerar mycket bättre än hörn med lister, och visar därmed att det är listerna som påverkar sensorerna, snarare än att det är sensorerna som inte klarar att detektera hörn.

Den största förlusten som fås av felen vid hörnen är att de punkter som placeras omkring noderna ibland placeras felaktigt. Om det skiljer för mycket mellan dessa punkter när systemet detekterar samma korsning vid ett senare tillfälle (som beskrevs i slutet av avsnitt 3.6), så finns det en risk att systemet inte känner igen utformningen på noden. Det är dock sällsynt att felen blir så stora att systemet inte känner igen noderna, däremot händer det ibland att felen är för stora för att systemet skall kunna använda den tidigare noden för att justera avdrifter i fordonets beräknade position. Om systemet däremot identifierar hörnen runt korsningen på liknande sätt som föregående gång fordonet var i korsningen, så används eventuella skillnader mellan punkternas koordinater för att justera fordonets beräknade

In document Kartering med autonomt fordon (Page 43-60)

Related documents