Varseblivning i realtid - SLAM

Relevanta dokument
3 augusti (G) Programmering: Lego

NpMa2b vt Kravgränser

TANA17 Matematiska beräkningar med Matlab

LABORATION 1 AVBILDNING OCH FÖRSTORING

Linjär Algebra, Föreläsning 2

Robotarm och algebra

Mer information om laserscanner

MMA127 Differential och integralkalkyl II

Bruksanvisning i original Speglar för ljusbommar Orion Mirror Kxxx

Bruksanvisning i original Skyddsstativ för Orion Light Guards Orion Stand xxx

Dubbelintegraler och volymberäkning

OBS: Alla mätningar och beräknade värden ska anges i SI-enheter med korrekt antal värdesiffror. Felanalys behövs endast om det anges i texten.

Bruksanvisning i original Speglar för ljusridåer Orion1 Mirror xxx

Ansiktsigenkänning med MATLAB

16. VOLLEY Volley är tillåtet dock inte på serven.

Tentamen Mekanik F del 2 (FFM520)

Laboration 1 Mekanik baskurs

Högskoleprovet Kvantitativ del

Aquafloat 7x50 WP Compass

ROCKJET GRUPP A (GY) FRITT FALL

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten.

AUTOMATISK LASERNIVÅ. Modell: ALL-100

Andra EP-laborationen

Kapitel 7 Skorsten, trappa och inredning... 3

Tentamen i Fotonik , kl

Ljusets polarisation

Optisk bänk En Virtuell Applet Laboration

Uppdrag för LEGO projektet Hitta en vattensamling på Mars

c d Z = och W = b a d c för några reella tal a, b, c och d. Vi har att a + c (b + d) b + d a + c ac bd ( ad bc)

Global Positioning System GPS i funktion

Högskoleprovet Kvantitativ del

Resledaren Användarguide iphone Innehåll

Edutainmentdag på Gröna Lund, Grupp A (Gy)

Vågrörelselära & Kvantfysik, FK november 2011

Appendix E Rekommenderade Handsignaler och Utrop. 1. Näste servare 2. Bryt. 3. Poäng. Version

Lösningsförslag Inlämningsuppgift 1 elstatikens grunder

TAIU07 Matematiska beräkningar med Matlab

Studieanvisning i Optik, Fysik A enligt boken Quanta A

LEKTION PÅ GRÖNA LUND GRUPP A (GY)

Installations- och bruksanvisning

F3C HELIKOPTER SPORT PROGRAM (Ny manöver 2 ersätter tidigare, fr.o.m. 2001)

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Polarisation laboration Vågor och optik

Prov Fysik 2 Mekanik

Högskoleprovet Kvantitativ del

5 Relationer mellan individens utvecklingsnivå, olika verktyg och användning av olika produkter

Sammanfattning. Max vikt: 800 kg. Hytten skall vara dämpad. 360 synfält. Det skall vara möjligt att värma och kyla mat.

Beräkning med ord. -hur en dator hanterar perception. Linköpings universitet Artificiell intelligens Erik Claesson

Övning 4 Polarisation

MMA127 Differential och integralkalkyl II

KART OCH GIS-DAGEN 2017 KIRSTEN RASSMUS-GRÖHN, CHARLOTTE MAGNUSSON

Kartuppdatering. Manual för 3 års fri kartuppdatering av din Kenwood enhet 3 års fri kartuppdatering

Uppgifter till praktiska tentan, del A. (7 / 27)

CDS-012-P GEODYNAMIK. GPS-option för CDS CDS-012-P /S, 0401

NU NÄR DU BEKANTAT DIG MED RAMARNAS EGENSKAPER OCH VET. hur man markerar och ändrar dem, är det dags att titta lite närmare på

Tentamen Mekanik F del 2 (FFM520)

4 augusti (G) Programmering: Lego

Högskoleprovet Kvantitativ del

Tentamen Mekanik F del 2 (FFM521 och 520)

Parabeln och vad man kan ha den till

Om ellipsen och hyperbelns optiska egenskaper

Hjälpmedel: Typgodkänd räknare, Physics Handbook, Mathematics Handbook.

Instrumentoptik, anteckningar för föreläsning 4 och 5 (CVO kap. 17 sid , ) Retinoskopet

Uppgifter till KRAFTER

exempel på krafter i idealiserade situationer, som till exempel i Slänggungan / Kättingflygaren eller Himmelskibet.

Namn Klass Personnummer (ej fyra sista)

Biomekanik, 5 poäng Jämviktslära

Belastningsanalys, 5 poäng Balkteori Deformationer och spänningar

Mekanik F, del 2 (FFM521)

Tillämpad biomekanik, 5 poäng Övningsuppgifter

Laboration 2: Konstruktion av asynkronmotor

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

E-II. Diffraktion på grund av ytspänningsvågor på vatten

Karta över Jorden - viktigt exempel. Sfär i (x, y, z) koordinater Funktionen som beskriver detta ser ut till att vara

Grundläggande 1 övningar i kombinatorik

(d) Mängden av alla x som uppfyller x = s u + t v + (1, 0, 0), där s, t R. (e) Mängden av alla x som uppfyller x = s u där s är ickenegativ, s 0.

Resledaren Användarguide Android Innehåll

!!!!!!!! Googles'självkörande'bil!

Numerisk lösning till den tidsberoende Schrödingerekvationen.

Anvisningar steg för steg Bygg en trädkoja

Mekanik Föreläsning 8


Mätning av fokallängd hos okänd lins

Lutande torn och kluriga konster!

Laboration 2 Mekanik baskurs

2301 OBS! x används som beteckning för både vinkeln x och som x-koordinat

3. Välj den sprajt (bild) ni vill ha som fallande objekt, t ex en tårta, Cake. Klicka därefter på OK.

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

Final i Wallenbergs Fysikpris

Tentamen Mekanik F del 2 (FFM520)

Kartuppdatering. Manual för 3 års fri kartuppdatering av din Kenwood enhet. 3 års fri kartuppdatering

Vi har väl alla stått på en matta på golvet och sedan hastigt försökt förflytta

PRODUKTUTVECKLING 3. CAD & 3D-ritning. Erik Almers

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A

Tentamen Mekanik F del 2 (FFM520)

FYSIKUM STOCKHOLMS UNIVERSITET Tentamensskrivning i Vågrörelselära och optik, 10,5 högskolepoäng, FK4009 Tisdagen den 17 juni 2008 kl 9-15

Roboten. Sida 1 av 11

Tecken som stöd för tal, TSS

WALLENBERGS FYSIKPRIS 2019

Datorkocken gör entré

Transkript:

LINKÖPINGS UNIVERSITY Varseblivning i realtid - SLAM Anton Romell 2012-09-16

Innehåll Bakgrund...1 Inledning...2 Varseblivning...3 2D-scanning...3 3D-scanning...4 Behandling av information...6 3D-information...6 Obstacle map...6 Structure map...7 Uppdatera information...8 Sammanfattning...9 Referenser... 10 Artiklar... 10 Hemsidor... 10 Bilder... 10

Bakgrund När IBMs superdator Deep Blue, i maj år 1997, slog den då obesegrade världsmästaren i chack, Garry Kasparov, kunde man redan då se detta år som en slags vändpunkt för forskningen inom artificiell intelligens och robotteknologi. Men det var också detta år som ett annat stort evenemang, som än idag står för en stor del av utvecklingen och forskningen inom just detta område, anordnades för första gången. Det vill säga; den första officiella Robocup anordnades i Nagoya, Japan. Robocup är en tävling som bygger på främjandet av intelligenta robotar och utvecklingen inom artificiell intelligens. Den huvudsakliga tävlingen är robotfotboll, med en ambition att år 2050 ha tagit fram ett robotlag som ska kunna slå de mänskliga världsmästarna i fotboll. Idag har dock tävlingen utvecklats och det finns hela fyra olika tävlingsområden inom Robocup; Soccer, Junior, Rescue och @Home och det är de två sistnämnda av dessa områden som jag kommer att gå lite djupare i och i denna rapport försöka beskriva en av delkunskaperna som de tävlande robotarna inom dessa kategorier måste besitta, nämligen att kunna varsebli sig om sin omgivning i realtid. 1

Inledning Robocup @Home är en tävling och konferens som handlar om att utveckla intelligenta robotar som skall kunna hjälpa till och utföra olika hushållsnära tjänster i vardagliga miljöer. Tjänster som till exempel att kunna få hjälp med att städa, handla eller rent av att laga mat. Eller varför inte dra det ännu längre och ha robotar som guider i olika sammanhang eller robotar som t.ex. kan assistera gamla eller handikappade människor i deras vardagsliv. Det finns alltså väldigt många delar av var mans vardagssysslor som skulle kunna assisteras, eller rent av tas över helt, av intelligenta robotar. För att kunna agera i dessa omgivningar står dock dessa robotar inför många olika slags uppgifter och problem som måste kunna hanteras för att roboten ska klara av att agera självstyrande. Vad som är ett av de mest krävande problemen för dessa robotar är det faktum att dessa miljöer och omgivningar allt som oftast är under ständig förändring och också innefattar människor, djur och andra objekt som påverkar världen i realtid. För att kunna tackla dessa förändringar och undvika att kollidera med människor och hinder krävs det därmed att roboten kan uppdatera den informationen allt eftersom att den agerar med världen och då skapa en egen modell som beskriver omgivningen så att roboten förstår informationen den varseblir. För att beskriva detta problem används ofta förkortningen SLAM som står för Simultaneous Localization and Mapping. Vidare i denna rapport är det en viss del av just detta problem, SLAM, som jag tänker ägna mig åt. Jag kommer att beskriva det första stegen som krävs för att en robot skall kunna hantera dessa problem, vilket innebär robotens förmåga att kunna varsebli sin omgivning och också hur man kan gå till väga för att den skall klara av att hantera och agera på egen hand i en omgivning som påverkas och förändras i realtid. För att få hela lösningen på problemet krävs även en förklaring för alla algoritmer som används för att tolka de data som presenteras. Detta kommer jag dock inte att ta upp i denna rapport, utan jag kommer endast skriva om hur roboten tar till sig information och hur den presenterar informationen för att sen kunna förstå den. 2

2D-scanning Varseblivning För att lösa de problem som SLAM innefattar är en av lösningarna att man använder sig av en så kallad 2D laser-scanner. Denna scanner är en form av sensor som gör beräkningar med ett så kallat TOF-system. TOF står för Time-Of-Flight och i figuren nedanför kan vi se att med detta menas att scannern skickar ut en infraröd stråle som sedan reflekteras mot ytan av det objekt som kommer i dess väg för att på så sätt skickas tillbaka till mottagaren i scannern som då gör en beräkning av avståndet med hjälp av tiden mellan strålens sändning och att den tas emot igen. Dessa sensorer mäter med väldigt hög frekvens och tillförlitlighet men trots detta är det inte en helt optimal lösning för våra självstyrande robotar. Figur 1. När det handlar om 2D-laser gör scannern sina beräkningar horisontellt sett ur robotens perspektiv för att på så sätt vara parallellt med golvet. Dess beräkningar kan ses som ett set S av tupler, där varje tupel består av två värden (di, θi), där di står för avståndet(distance) och θi står för vinkeln till den aktuella beräkningen pi i form av polära koordinater som står för just den givna punkten som laserstrålen reflekterades mot på ett objekt i omgivningen. S = {(di, θi) i [1, Ns]} Nackdelen med detta sätt att jobba när det gäller SLAM är det faktum att roboten då endast varseblir de objekt som ligger på just den horisontella nivån där roboten scannar av, därav det faktum att vi har ett noll-värde på z-axeln som då syftar till den vertikala nivån i omgivningen. I och med detta, funkar bara detta sätt att läsa av omgivningen om världen och objekten i den är formade på så sätt att de alltid finns på den horisontella nivå som scannas, vilket oftast inte stämmer i de flesta fall när det gäller det världar som vår robot skall kunna agera i. För att förtydliga detta kan vi ta nästa bild som exempel: 3

Figur 2. Här ser vi alltså en exempelvärld till höger i bilden, som en robot skall kunna agera i, medans till vänster i bilden ser vi hur en robot som scannar av sin omgivning med 2D-laser faktiskt skulle se samma exempelvärld. Notera till exempel det runda soffbordet i exempelvärden; i och med att bordet inte är på den horisontella nivån som roboten scannar av så upptäcks detta objekt inte och roboten har därmed missat ett väsentligt hinder som den nu kan komma att kollidera med om den planerar att ta den vägen. I detta fall är scannern monterad för högt på roboten för att den skall kunna registrera hindret, men faktum är att vissa objekt som till exempel stol och bords-ben kan vara svåra att upptäcka med 2D-lasern även om de är på samma horisontella nivå som scannern. Detta för att laserstrålen kan ha problem med att reflekteras på ett ordentligt sätt på vissa former och material. För att kunna lösa dessa problem så att roboten kan varsebli världen fullt ut räcker det alltså inte med 2D-information, utan här blir den avgörande faktorn att roboten kan skapa en modell av världen i 3D istället. 3D-scanning Det finns ett antal olika tillvägagångssätt för att skapa 3D-information och de kan skilja sig både i typ, form och antal när det gäller sensorer. Valet av tillvägagångssätt beror både på robotens design, storlek, vikt och hur mycket kraft som behövs för att driva den men kanske framförallt vilken budget man har att lägga på utrustningen. Jag kommer att inrikta mig på den lösningen som användes till roboten Kurt3D som tävlade i Robocup år 2004. För att kunna varsebli sin omgivning i 3D använde sig denna robot av en IAIS 3DLS som är en 2Dscanner som är monterad horisontellt men som också roterar runt sin y-axel för att kunna skapa information i just 3D. Rotationen kan ses som att roboten håller på med ett kontinuerligt nickande upp och ner, för att på så sätt få tillgång till den information som behövs. Scannern har en öppningsvinkel på totalt 120 grader som den jobbar runt på y-axeln 4

vilket medför att scannern även kommer att fånga upp information som inte är relevant för roboten. Exempel på detta är området som roboten har ovanför sig själv upp till taket eller precis nedanför sig på golvet. I och med detta skapar man ett maxvärde samt ett minvärde för scannerns vinkelvärden för att på så sätt skapa ett AOI (Area Of Interest) för roboten. AOI är helt enkelt ett begränsat område som roboten scannar av enligt en övre gräns (θpitch, max) och en undre gräns (θpitch, min). Figur 3. På bilden ovan kan vi se hur roboten scannar av omgivningen till följd av ett visst AOI. I just detta fall kan vi se att det begränsade området är satt till att vara samma som robotens faktiska storlek. Detta område kallas för den virtuella korridoren och innefattar då den omgivning och hinder som faktiskt är i vägen för roboten. Till skillnad från en scanning i 2D så kommer nu en specifik punkt i världen beskrivas genom en tupel som består av tre värden istället för två. Denna tupel kommer kunna skrivas som (di, θyaw,i, θpitch), där de nya värdena θyaw,i står för en specifik vinkel precis som när vi behandlade 2D-information, medans θpitch står för den lutning som scannern är i vid en specifik scanning vilket kan liknas med bilden till höger om vi förutsätter att vår robot skulle vara ett flygplan och att Center of Gravity är robotens scanner. Figur 4. 5

Behandling av information 3D-information När en robot ska kunna behandla och förstå den informationen den varseblir blir det snabbt stora mängder data när det handlar om 3D och framför allt just när det handlar om varseblivning i realtid. Även när det gäller algoritmerna som behandlar informationen så blir det komplikationer med 3D, då dessa normalt är anpassade för just 2D. Därför är en bra lösning på detta att man återgår ett steg genom att bryta ner den informationen som man har varseblivit till 2D, men som fortfarande innehåller all den viktiga informationen som har uppnåtts i 3D. När vi gör denna omvandling av information kan roboten sen istället bygga upp sin omgivning i så kallade virtuella 2D-kartor, eller mer exakt en Obstacle map och en Structure map. För att kunna göra denna omvandling representeras informationen lite mer utökat i form av en vektor av avståndsmätningen di sett till riktningen θyaw,i. I och med att den är utökad, är punkten ett element av alla möjliga riktningar runt sig själv, det vill säga Θ [0,, 360 ] vilket leder till en vektor N = Θ / θyaw,i som då beskriver en viss punkt i given riktning sett till hur den är tagen från robotens perspektiv. Genom att göra på detta sätt blir scanningen som representeras i de virtuella kartorna hela tiden egocentrisk till roboten i realtid. Detta kan ses i Figur 5 som då markerar, de för Figur 5. tillfället, närmaste hindrena i världen. Obstacle map Som jag skrev tidigare så delas informationen upp i två olika virtuella kartor. Den första, obstacle map, är precis som det låter nämligen robotens virtuella karta över de närmaste hindrena i omgivningen. Här tas alltså den punkt som har det minsta avståndet från scannern i varje riktning (θyaw,i) och sätts in på kartan oavsett i vilken lutning (θpitch) det är som 6

punkten finns på, se Figur 6. Däremot tas bara de punkter med som befinner sig inom robotens gränser, det vill säga inom den virtuella korridoren, med på kartan. De punkter som befinner sig utanför den virtuella korridoren är inte relevanta just för den här kartan på grund av att de inte kommer vara i vägen för roboten. För att den även skall undvika oframkomliga vägar som till exempel kan bero på hål i marken eller en nedåtgående trappa, skapar den egna konstgjorda hinder som sätts ut på kartan när den upptäcker punkter som överstiger avståndet till golvet vid en viss lutning och kan på så sätt även undvika dessa faror. Figur 6. Structure map Den andra virtuella 2D-kartan som roboten använder sig av går under benämningen structure map och denna karta kan nästan ses som en motsats till obstacle map. Istället för att ta fasta på de punkter som har det minsta avståndet från scannern använder sig roboten istället av de punkter som är längst bort från scannern i en viss riktning. När den söker efter dessa punkter kommer structure map att bortse från alla objekt och hinder som inte är de yttre gränserna i robotens AOI. Detta gör den genom att ersätta ett satt högsta värde med ett nytt om den finner ett ännu högre på en annan nivå i samma riktning. Därav kommer structure map endast innefatta de punkter i omgivningen som med största sannolikhet är de yttersta gränserna för den tillgängliga världen. Anledningen till att man använder två kartor är just skillnaden i hur de används. En obstacle map är oerhört bra anpassad för att undvika kollisioner och att anpassa sig snabbt i realtid. En structure map däremot behövs för att roboten ska kunna ha en större förståelse för världen som den befinner sig i och även för att kunna planera sitt agerande längre fram i större utsträckning, vilket den inte hade klarat av att göra endast med hjälp av en obstacle map. 7

Uppdatera information Uppdateringen av robotens virtuella kartor i sker i realtid i tre olika steg för varje unik scanning. Först görs en omvandling av kartan för att göra den egocentrisk sett till roboten. Robotens agerande, det vill säga dess handling, mellan den aktuella scanningen och den föregående scanningen används då för att uppdatera kartorna med ny information som fortfarande överensstämmer med robotens perspektiv. Det andra steget är att ta bort de punkter i de nya kartorna som endast är temporära hinder. I och med att varje punkt som hittas i varje scanning sparas i kartorna som beskriver omgivningen för roboten så medför det att alla hinder finns kvar i kartorna. Men i den värld vår typ av robot agerar i finns det som sagt även temporära hinder i form av människor, djur och andra tillfälliga hinder som kan tas upp av scannern när de till exempel passerar roboten, men som sen inte längre är ett hinder efter som att den passerade och alltså inte är kvar på samma plats. Därför sätter man en gräns för hur länge en punkt sparas. I just detta fall är gränsen satt till 500 omvandlingar och när en satt punkt passerar denna gräns kommer den punkten att tas bort från kartorna. På detta sätt kommer dessa temporära hinder att kunna vara just temporära. Punkter som faktiskt tillhör statiska hinder och som borde vara kvar på kartan kommer även dem att tas bort efter den satta gränsen. Detta är dock inget problem då dessa punkter upptäcks direkt igen av en ny scanning så fort de har tagits bort, om de fortfarande befinner sig inom den virtuella korridoren. Det sista steget i uppdateringsfasen handlar om själva förnyandet av redan sparade punkter. Här byts helt enkelt en viss punkt pi, i en obstacle map, ut med en ny punkt si som kommer från den aktuella scanningen S. För att bytet skall göras krävs dock att de nya riktningarna sθ överensstämmer med de riktningarna som pekade mot samma punkt innan omvandlingen pθ (för att på så sätt veta att det är rätt punkt som uppdateras, sett till robotens nya position) samt att det uppmätta avståndet sd är mindre eller lika stort som pd. För structure maps gäller samma sak frånsätt att avståndet sd skall vara större eller lika stort som pd för att punkten skall bytas ut. 8

Sammanfattning Simultaneous Localization and Mapping, SLAM, är alltså ett krävande problem som innefattar många steg innan man har nått en lösning. I denna rapport har jag försökt beskriva hur man kan gå tillväga för att ta några av dessa steg och därmed komma en bra bit på vägen till att förstå hur en robot kan klara av att skapa en egen uppfattning om världar och omgivningar som den inte har någon tidigare information om. Rapporten beskriver bland annat skillnaden i att varsebli världen i 2D jämfört med 3D och vilka för och nackdelar som finns med dessa olika sätt. Det förklaras också hur världen delas upp i olika kartor som skiljer hinder i världen med världens sannolika yttre gränser samt hur roboten uppdaterar informationen allt eftersom den rör sig och agerar i den. Efter att ha skrivit denna rapport har jag fått en större förståelse för hur robotar kan klara av att skapa just en egen världsbild, och också fått upp ögonen för hur mycket det faktiskt krävs bara för att lösa en så liten del av problematiken, som SLAM står för, hos en självlärande robot. 9

Referenser Artiklar [1.] Holz, D., Droeschel, D., Behnke, S., May, S. & Surmann, H. 2010, "Fast 3D Perception for Collision Avoidance and SLAM in Domestic Environments", Mobile Robots Navigation,, pp. 53-84. [2.] Holz, D., Lörken, C. & Surmann, H. 2008, Continuous 3D sensing for navigation and SLAM in cluttered and dynamic environments, Cologne, Germany. [3.] C. Ye and J. Borenstein, Characterization of a 2-d laser scanner for mobile robot obstacle negotiation, in Proc. IEEE Int. Conf. on Robotics and Automation, Washington D.C., May 11-15 2002, pp. 2512 2518. Hemsidor - http://www.ai.rug.nl/robocupathome/ - http://wiki.robocup.org/wiki/main_page - http://robocup.rwth-aachen.de/athomewiki/index.php/publications Bilder - Figur 1 tillhör artikel [3.] - Figur 2,3,5,6 tillhör artikel [1.] - Figur 4 tillhör hemsida: http://www.grc.nasa.gov/www/k12/airplane/rotations.html 10