• No results found

Extrahering av arbetsområde med 2D lidar och riktmärken

N/A
N/A
Protected

Academic year: 2021

Share "Extrahering av arbetsområde med 2D lidar och riktmärken"

Copied!
35
0
0

Loading.... (view fulltext now)

Full text

(1)

Örebro universitet Örebro University

Institutionen för School of Science and Technology naturvetenskap och teknik SE-701 82 Örebro, Sweden

701 82 Örebro

Datateknik C, Examensarbete, 15 högskolepoäng

EXTRAHERING AV ARBETSOMRÅDE MED

2D LIDAR OCH RIKTMÄRKEN

Kjell Engelhjelm

Dataingenjörsprogrammet, 180 högskolepoäng Örebro terminen 2021

Examinator: Federico Pecora

(2)

Bilaga B

Sammanfattning

Om en robot ska verka i en del av ett område, så måste den delen av området på ett eller annat sätt avgränsas ifrånd övriga området, antingen med fysiska gränser, som exempelvis kan utgöras av väggar, eller med virtuella gränser, som exempelvis kan utgöras av linjer mellan olika punkter i rummet. En robot som tolkar sin omgivning, kan programmeras att känna igen objekt med särskillda egenskaper ur omgivningen och utifrån det skapa virtuella gränser mellan objekten i rummet. I den här rapporten undersöks konceptet att med en 2D LiDAR-sensor monterad på en robot och fyra riktmärken placerade i ett rum, kunna identifiera hörnpunkter för ett rektangulärt område. Genom att bygga upp en kartrepresentation av omgivningen och med stöd av algoritmer identifiera riktmärken samt lagra information om riktmärkenas positioner, får roboten den informationen som behövs för att kunna skapa virtuella gränser i rummet.

(3)

Förord

Tack till Retenua AB som bistått mig med allt material och stöd under det här arbetet. Tack till Henrik Andreasson för allt stöd under examensarbetet, både vad gäller att utbyta tankar om vilka metoder som ska tillämpas samt för att ha skaffat fram material för de praktiska bitarna av examensarbetet.

Tack till Johan Henriksson för att skapat drivrutiner till lasersensorn som kan hantera information om reflektionens intensitet samt bollat idéer om hur systemet kan byggas upp.

Tack till Rafael Mosberger för att ha kommit med åsikter och synpunkter på riktmärkets utformning.

(4)

Innehållsförteckning

1 INLEDNING ... 4 1.1 BAKGRUND ... 4 1.2 PROJEKT ... 4 1.3 KRAV ... 4 2 BAKGRUND ... 5

2.1.1 LiDAR (Light Detection and Ranging) ... 5

2.1.2 SLAM (Simultaneous Localisation And Mapping) ... 6

2.1.3 Riktmärken (Object Detection) ... 7

2.1.4 Omvandling och tranformering av lokala koordinater ... 8

2.1.5 Probabilistisk karta ... 9

2.1.6 ROS (Robot Operating System)... 9

2.1.7 Tidigare studier ... 10

2.2 SYSTEMARKITEKTUR ... 10

3 METODER OCH VERKTYG ... 12

3.1 METODER ... 12

3.1.1 Agil utvecklingsmetod ... 12

3.2 MJUKVARUVERKTYG ... 12

3.2.1 ROS ... 12

3.2.2 Visual Studio Code ... 13

3.2.3 Git ... 13 3.2.4 Ubuntu 20.04 ... 13 3.3 HÅRDVARA ... 13 3.4 ÖVRIGA RESURSER ... 13 4 GENOMFÖRANDE ... 14 4.1 MODELLERING AV RIKTMÄRKEN ... 14 4.2 DATAINSAMLING 1 ... 14 4.3 DATA-ANALYS ... 16 4.4 ALGORITMUTVECKLING ... 16 4.4.1 Intensitetströskel ... 16

4.4.2 Hantera kluster av träffar på potentiella riktmärken ... 17

4.4.3 Generering av centrumpunkt för riktmärke ... 17

4.5 INTEGRERING AV REDAN BEFINTLIGA NODER... 17

4.6 NODER SKAPADE I PROJEKTET ... 18

4.6.1 Filtreringsnod ... 18 4.6.2 Transformeringsnod ... 18 4.6.3 Kartnod ... 18 4.7 DATAINSAMLING 2 ... 19 5 RESULTAT ... 20 5.1 ANALYS AV DATAINSAMLING 1 ... 20

5.2 ALGORITM FÖR FILTRERING AV RIKTMÄRKEN ... 23

5.3 RESULTAT FRÅN KOMPLETT SYSTEM ... 26

6 DISKUSSION ... 31

6.1 UPPFYLLANDE AV PROJEKTETS KRAV ... 31

6.2 SOCIALA OCH EKONOMISKA IMPLIKATIONER ... 31

6.3 PROJEKTETS UTVECKLINGSPOTENTIAL ... 31

7 REFLEKTION KRING EGET LÄRANDE ... 33

(5)

1 Inledning

1.1 Bakgrund

Företaget Retenua AB utvecklar system som kommunicerar med omgivningen genom olika sensorer, bland annat genom kamera, radar och lidar.

Retenua AB har i ett tidigare projekt, i samarbete med en kund, utvecklat ett system för att automatisera en manuellt manövrerad maskin med hjälp av ett system som är uppbyggt av en kamera på ett stativ som övervakar ett arbetsområde och lokaliserar slipmaskinen inom ett uppmärkt område. Detta system innebär begränsningar i arbetsområdets yta, och med det här arbetet har vi utvärderat om det är lämpligt att använda ett system med en 2D LiDAR-sensor monterad på maskinen och utplacerade riktmärken, för att öka arean på arbetsområdet. Projektet var riktat mot att undersöka konceptet för en specifik modul inom den

automatiserade maskinen och täcker inte hela systemet, men modulen i sig är generell och kan appliceras på andra system.

1.2 Projekt

Syftet med arbetsprojektet var att ta fram ett riktmärke som lätt kan särskiljas från omgivningen vid scanning med en LiDAR-sensor, riktmärket behövde vara någorlunda lätt att hantera då det används fyra riktmärken för att definiera hörnen i ett rektangulärt

arbetsområde, riktmärkena behövde därmed placeras ut och eventuellt flyttas manuellt av en person. Utöver detta så undersöktes avstånd från LiDAR-sensorn till riktmärket och hur väl det gick att filtrera ut det från omgivningen. Den tilltänkta omgivningen var en typisk industrilokal, vilket innebar att förutom väggar så skulle det finnas fönster, arbetsbänkar och ställage etcetera.

Modulen utvecklades med antaganden om att golvytan inom det rektangulära området var fritt från hinder. och att golvet var ett hyffsat jämnt plan.

En anledning till att detta arbete genomfördes var att det fanns tydliga begränsningar för arbetsområdets area inom det tidigare systemet, därför ville Retenua AB utreda om det vore ett rimligt nästa steg att montera en LiDAR-sensor på roboten och undersöka vad som krävdes för att det skulle fungera tillfredsställande. Tekniken passade dessutom in i det område som företaget arbetar med att utveckla och det är ett system som kan appliceras på robotar med olika arbetsuppgifter.

1.3 Krav

• Ska kunna lokalisera fyra riktmärken (positionerade i hörnen av ett rektangulärt område som utgör arbetsområdet).

• Ska känna igen riktmärken från olika vinklar. • Ska kunna särskilja ett riktmärke från omgivningen.

• Systemet ska generera positionsdata som är bra över hela området.

Positionsskattningarna kommer användas i ett reglersystem och det är viktigt att man försöker ha nere fördröjningarna så mycket som möjligt så man inte behöver styra på "gammalt" data utan så korrekt och uppdaterat som möjligt.

(6)

2 Bakgrund

En autonom mobil robot behöver kunna bygga upp en modell av omgivningen den befinner sig i för att kunna navigera inuti den. Detta kan utföras med hjälp av att definiera punkter i rummet, ju fler och tätare punkter innebär en bättre representation av omgivningen. En punkt kan definieras genom att mäta avståndet mellan roboten och den yta i omgivningen som punkten ska representera.

En vanlig teknik som används för att mäta avstånd är så kallat ”Time of Flight” (ToF). ToF innebär att en sensor sänder ut en signal som sedan reflekteras från en yta i omgivningen och återvänder till sensorn, tidsåtgången för signalen mäts och sedan beräknas avståndet beroende av vilken sorts signal man använt. Vanliga tillämpningar är RADAR, som sänder ut radiovågor, LiDAR som sänder ut ljusvågor och Ultraljudssensorer som sänder ut ljudvågor.

2.1.1 LiDAR (Light Detection and Ranging)

Light detection and ranging (LiDAR) är en optisk avståndsmätningsmetod med hög noggrannhet, baserad på laserteknik. Vanligtvis används en laser tillsammans med en

oscillerande spegel som tillåter att laserstrålar sprids i ett tvådimensionellt plan. man kan även uppnå tredimensionell laserspridning med samma teknik genom att använda ytterligare en axel. Den vanligaste metoden för att mäta avståndet är baserad på ”Time of Flight” –

principen (ToF) [1]. ToF principen går ut på att man mäter tidsåtgången för en given puls från sensorns laser för att nå objektet och reflekteras tillbaka till sensorns fotodetektor, sedan beräknar man distansen baserat på ljusets hastighet. Det är en teknik som utvecklats och använts sedan 1970-talet [2]. När en position har uppmätts så oscillerar enheten vidare till nästa position och utför en ny mätning. Processen upprepas till dess att sensorns kapacitet för ett 2D mätnings-svep har uppnåtts (se Figur 2–1). LiDAR–enheter kan uppnå ett 360˚

horisontellt fält.

SICK LMS200 är en 2D LiDAR med maximalt 180˚ perspektiv, variabel upplösning med 0.25˚, 0.5˚ och 1.0˚ samt har stöd för att registrera ljusintensitet. Upplösningen är det avstånd (skillnad) i grader mätt mellan varje laserpuls som sänds ut från enheten. vid 1˚ upplösning så skickas maximalt 181 laserpulser ut varje varv. Ett meddelande ifrån scannern innehåller då maximalt 181 punkter. En konsekvens som följer av upplösningen är att

avståndet mellan två närliggande punkter ökar linjärt i förhållande till avståndet ifrån laser-sensorn, med lägre upplösning så blir koefficienten brantare (se Figur 2–2). Det glappet minskar dock lite tack vare att LMS200 har den egenskapen att diametern på laserpulsen inte är så koncentrerad, laserpulsens diameter blir snabbt större ju längre den färdas (också i ett linjärt förhållande, se helgrå linje i Figur 2–2). Laserpulsens låga koncentration medför dock att noggrannheten för avståndsmätningar blir mer begränsad vid större avstånd. Högsta frekvens är 75 Hz innebär att spegeln roterar 75 varv per sekund [3].

(7)

Figur 2-1: Ett svep med SICK LMS200 - 180 graders perspektiv [3].

Figur 2-2: Förhållandet mellan laserpulsernas spridning och laserpulsens diameter relativt avstånd ifrån laser-sensorn [3].

En autonom robot behöver, utöver punkter i omgivningen, ha en uppfattning om sin position och riktning i förhållande till omgivningen för att bygga upp en modell av

omgivningen. En karta över omgivningen behövs för att roboten ska kunna lokalisera sig, alternativt så behövs en position för att bygga upp en kartrepresentation av omgivningen. När en robot placeras ut i en okänd omgivning så uppstår ett problem, då roboten varken har en karta att jämföra punkter med, eller en position att bygga en karta utifrån. Det problemet kallas inom robotiken för Simultaneous Localisation And Mapping (SLAM) [4].

2.1.2 SLAM (Simultaneous Localisation And Mapping)

SLAM är ett vida känt problem inom robotiken. Det handlar om att bygga upp en representation av en karta av omgivningen samtidigt som en skattning av positionen görs utifrån den kartan som byggs upp. Svårigheten består i att, för att bygga en karta så måste man ha en position att utgå ifrån, för att kunna hitta positionen så behöver man ha en karta att utgå ifrån.

(8)

Det finns många färdiga system som kan integreras i övriga systemet för att lösa problemet med lokal positionering och kartering, bland dessa så finns Gmapping, Hector SLAM och Google Cartographer. De färdiga SLAM-systemen behöver ha olika data för att kunna användas tillsammans med en robot, Gmapping behöver ha odometri-data och LiDAR-data för att fungera, medan det räcker med LiDAR-LiDAR-data för Google Cartographer och Hector-SLAM.

Google Cartographer och Hector SLAM använder en scan-matching process för att linjera laserskanningar med varandra eller tillsammans med en existerande karta. Scan-matchning innebär att punkter ifrån två efterföljande skanningar jämförs med varandra, punkter ifrån respektive scan matchas ihop och utifrån förändringen i dess positioner beräknas hur roboten förflyttat sig. Detta möjliggör kartering med enbart en LiDAR-sensor, till skillnad från Gmapping som även kräver odometri-information. Man kan även använda odometri-data tillsammans med Hector SLAM i stället för enbart laserskanningar, för att förbättra scan-matchningen med gissningar om vilka punkter som hör ihop utifrån hur hjulen har rört sig, vilket gör Hector SLAM till ett flexibelt system som passar många olika robotar [5] [6].

Hector SLAM bygger upp en ”Occupancy Grid Map” (OGM), som är en 2D

kartrepresentation av omgivningen. En OGM består av ett rutnät av celler, där varje cell kan anta ett av följande tre tillstånd: upptagen, fri och okänt tillstånd [7].

Att med enbart en LiDAR-sensor definiera ett arbetsområde i den omgivning som roboten befinner sig i, innebär att roboten måste kunna se objekt som kan användas för att identifiera gränserna för arbetsområdet. Detta kan uppnås genom att placera ut riktmärken, med speciella egenskaper som roboten kan identifiera som hörnpunkter för arbetsområdet, på positioner i rummet som bildar en rektangel.

2.1.3 Riktmärken (Object Detection)

Ifrån en laserscan får man vanligtvis en vektor bestående av information om alla ”träffar”, man får träffens position relativt laserskannern i polär form och om stöd finns för det så får man också intensitetsinformation. Vid analys av vektorn kan man, om man på förhand vet hur ett riktmärke ser ut, bestämma kandidater till riktmärken. Ett välkänt problem inom robotik är att hitta geometriska figurer baserat på ett mönster av träffar i en LiDAR scan. Om vi för enkelhetens och tillgänglighetens skull fokuserar på att titta närmare på cirkelns form så finns det flera tekniker för att känna igen en cirkel ur ett två-dimensionellt punktmoln. Utöver det så ser en cirkel likadan ut ifrån alla möjliga vinklar i det två-dimensionella planet [8].

Med avseende på att antalet träffar på riktmärket avtar i samband med ökat avstånd mellan LiDAR-sensor och riktmärket och att det finns begränsningar i hur stort riktmärket kan vara, så är det lämpligt att utöver hantering av geometriska figurer också använda

intensitetsinformationen som ett verktyg för att känna igen ett riktmärke på längre distans [9].

När ett eller flera riktmärken identifieras ur ett svep med LiDAR-sensorn så anges riktmärkenas koordinater, på polär form (r, θ) med vinkel och avstånd, lokalt ur LiDAR-sensorns perspektiv. När roboten identifierar samma riktmärken från andra positioner i

(9)

rummet så kommer de därför att ha helt andra positioner, såvida de inte transformeras till globala koordinater. För att underlätta arbetet med transformationerna så behöver de först omvandlas till koordinater på kartesisk form (x, y).

2.1.4 Omvandling och tranformering av lokala koordinater

Omvandlingarna av koordinaterna från polär form till kartesisk form fås genom x = r * cos(θ), y = r * sin(θ)

Då r är avståndet från LiDAR-sensorn till punkten och θ är laserpulsens vinkel relativt LiDAR-sensorns noll-punkt, se Figur 2-3.

Figur 2-3: Förklaring av variabler.

Ur SLAM-algoritmen kan vi ta del av information om LiDAR-sensorns position och riktning i rummet (planet) för att kunna göra något med det. Ett vedertaget sätt att gå till väga för att ge lokala punkter globala koordinater är att ange koordinaterna som en kolumnvektor v och multiplicera den med en rotationsmatris R (från höger, se Formel 2).

Formel 1: Rotationsmatris i 2 dimensioner, roterar moturs genom vinkeln θ med avseende på X-axeln, runt Origo.

Formel 2: Ekvation för transformation av lokala tvådimensionella positioner till globala positioner.

Eftersom den omgivande miljön som maskinen arbetar i kommer innehålla objekt som kan misstas för att vara ett riktmärke, så antas att vissa registreringar kommer vara av annan typ än riktmärken. Därutöver så kommer centrumpunkten för riktmärket inte heller vara på samma position vid varje träff på grund utav att centrumpunkten måste beräknas och det finns en viss osäkerhetsfaktor i uträkningen. Därför räcker det inte med filtreringen av punkter, det måste också göras ett urval av punkter bland alla registrerade punkter. Punkterna som

registreras måste med andra ord lagras i någon form av struktur som kan hålla och uppdatera information om varje punkt som registreras. Att lagra positioner kan man göra i många olika datastrukturer, såväl simpla som exempelvis Länkad Lista, Array och Träd, men också i mer komplexa varianter som Grafer och Kartrepresentationer. I projektet lagras information om punkter i en probabilistisk karta, för att med hjälp av statistik kunna ta fram de potentiella

(10)

riktmärken som ska exporteras vidare till nästa modul.

2.1.5 Probabilistisk karta

Metoden som använts i det här arbetet för att lagra informationen om punkterna är att lagra dem i en lätt modifierad så kallad NDT-Map (Normal Distribution Transform-Map), eller normalfördelningstranformationskarta. En NDT-karta är ett rutnät av celler, cellerna har en fixerad storlek och tillsammans bygger de upp en representation av en karta. Varje cell innehåller en normalfördelning [10][11]. När punkter ska läggas till i en cell i

kartrepresentationen, så beräknas först normalfördelningen för samtliga punkter som ska föras in i cellen vid varje svep, sedan kastas punkterna. Informationen om antalet punkter som tillförts till varje respektive cell sparas. Om det inte finns tillräckligt många punkter för att kunna beräkna normalfördelningen vid ett svep, så ignoreras de punkterna helt och hållet. Den modifikationen som gjorts är att i stället för att ignorera punkter som det inte går att beräkna normalfördelningar för, behålls dessa punkter tills det finns tillräckligt många punkter för att kunna beräkna standardavvikelsen, informationen lagras sedan som om de hade tillhört samma svep, därefter slängs punkterna. Utifrån tillhörande metoder för denna datastruktur så kan man få ut en mängd statistik om cellerna i kartan.

För att underlätta utvecklingen och hantera all kommunikation inom systemet så har ramverket Robot Operating System (ROS) använts i projektet.

2.1.6 ROS (Robot Operating System)

ROS är ett flexibelt ramverk framtaget för att stödja utvecklingen av system inom robotik och dess applikationer. Det består av samlingar av verktyg, bibliotek och konventioner vars mål är att förenkla arbetet med att utveckla komplexa och robusta system. ROS Används för att etablera kontakt mellan olika noder i ett system genom en ”Publisher-Subscriber” – arkitektur, där en publisher kan skapa ett ”ämne” som den sedan kan publicera information på, En subscriber kan välja att ”prenumerera” på ett ”ämne” och varje gång ny information

publiceras på det ämnet så tar subscribern del av den informationen. Det finns även stöd för synkrona ”Remote Procedure Calls” genom att använda ROS-services. Kommunikationen upprättas och styrs av en ROS-master. ROS är open source och öppet för alla att bidra med och dela egenutvecklade bibliotek och verktyg eller förbättra andras verk [12].

I ROS finns det möjlighet att spara information som skickas i .bag-filer. Dessa filer kan användas för att återskapa scenariot som man spelat in, genom att spela upp dem. Det finns möjlighet att välja vilka signaler som ska spelas in och spelas upp.

Signaler, eller meddelanden publiceras på specifika ämnen. En nod som publicerar meddelanden måste specifiera vilket eller vilka ämnen som den ska publicera meddelanden på, en nod kan alltså publicera meddelanden på flera olika ämnen. En nod som prenumererar på ett ämne kan ta del av alla meddelanden som publiceras på det ämnet, noder kan

prenumerera på flera ämnen. All kommunikation hanteras av en ROS-master som upprättar anslutningar.

(11)

som ingår i programvaran, däribland finns Rviz, ett verktyg för 3D visualisering. I Rviz kan man i en 3d modell visualisera hur en robot uppfattar omvärlden och hur den agerar i den genom att prenumerera på ämnen och skriva ut informationen i ett separat fönster. Idet här projektet har Rviz använts för att visualisera resultatet av riktmärkesfiltreringen och även de fyra riktmärken som fås av den probabilistiska kartan.

All data som skickas mellan noderna som berör modifierade LiDAR-skanningar omvandlas till punktmoln, eller den mer allmänna engelska termen Point Cloud. Ett

punktmoln är en vektor som kan bestå av olika slags punkter, generellt så innehåller punkter information om en punkts koordinater (x, y, z), men kan även innehålla information om punktens intensitetsstyrkan hos reflektionen eller olika värden för olika färgskalor som

punkten består av. De flesta punktmoln som hanteras i det här projektet lagrar information om intensitet utöver koordinater, men de som slutligen skickas till probabilistiska kartan består enbart av information om koordinater.

2.1.7 Tidigare studier

Det var svårt att hitta artiklar på liknande arbete där man undersökt möjligheter för att avgränsa ett område med hjälp av samma teknik, i en liknande miljö. Däremot kan en

sammansättning av olika tekniker som beskrivits tidigare i stycket ha tillämpats för

exempelvis Neatos autonoma dammsugare där man med hjälp av en LiDAR-sensor monterad på dammsugaren och ett grafiskt interface (applikation) får möjlighet att avgränsa områden genom att måla upp linjer på en karta som byggts upp av data ifrån dammsugarens LiDAR-sensor, de kallar linjerna för ”NO-GO lines” eller ”Virtual Barriers”.

2.2 Systemarkitektur

Inom ramverket ROS som använder en publisher / subscriber-arkitektur för

kommunikationen mellan noder i systemet så tas rådata upp av en LiDAR-sensor. Rådatan publiceras på ämnet /scan. En SLAM nod som hämtats ifrån github, Hector SLAM [13], integrerades i projektet. Hector SLAM-noden prenumererar på ämnet /scan och publicerar meddelanden på flera ämnen, men framför allt på ämnet slam_out_pose. En nod som skapats i projektet för filtrering av punkter och detektering av riktmärken prenumererar också på meddelanden från ämnet /scan och publicerar meddelanden i form av punktmoln på ämnet /landmarks. En nod skapades i projektet för att transformera de filtrerade punkternas positioner till globala positioner, noden prenumererar på meddelanden på ämnet slam_out_pose samt ämnet /landmarks och publicerar meddelanden på ämnet /landmark_position. En sista nod i systemet som skapats i projektet innehåller en probabilistisk karta och tillhörande funktioner för att identifiera arbetsåmrådets fyra hörnpunkter. Noden prenumererar på meddelanden ifrån ämnet /landmark_position och publicerar meddelanden på ämnet /workspace_corners.

(12)

Figur 2-4 Visar noder och dess förbindelser i systemet.

(13)

3 Metoder och verktyg

LiDAR-sensor av modellen SICK LMS200, en robot under arbetsnamnet ”Snövit”.

3.1 Metoder

Projektets utveckling baserades på en agil utvecklingsmetod, med inkrementella steg som byggde vidare på det som utvecklades i det tidigare steget.

3.1.1 Agil utvecklingsmetod

En agil uvecklingsmetod kännetecknas av att intressenter får ta del av utvecklingens framsteg fortlöpande och får möjlighet att påverka den fortsatta utvecklingens mål och

prioriteringar genom att återkoppla med åsikter och synpunkter på det som visats. Framför allt är det följande fem principer som följs vid agil utveckling:

1. Involvera kunden

Kunden bör vara en del av utvecklingen under hela processen för att på så vis kunna utveckla en produkt som bäst möter kundens behov, kundens synpunkter är viktiga för uttvecklingens mål och prioriteringar.

2. Välkomna förändringar

Kraven på systemet kommer att ändras, det bör tas i beaktning vid designen av systemet.

3. Inkrementell leverans

Systemet ska utvecklas i inkrementella steg, kunden ska kopplas in vid varje steg och påverka kraven på nästa steg.

4. Undvik onödig komplexitet 5. Individer, inte processer

Dessa principer har tillämpats i så stor utsträckning som möjligt under utvecklingsprocessen, det föll sig naturligt att följa dessa då varje steg var inkrementellt och innebar en ny utmaning som krävde nya metoder och en diskussion kring möjliga lösningar [14].

Analys av riktmärkets attribut (geometri/ information om ljusintensitet) vid olika avstånd och information om ljusintensitet vid skanningar. Utvärdering av hur man kan filtrera punkter som verkar vara ett riktmärke. (Geometri/intensitetsvärden/träffar relativt distans). Utnyttjande av intensitet p.g.a. att objektets form var svårt att känna igen när objektet var långt bort (endast 2 punkter på 5 meters avstånd med 1˚ upplösning på laserscannern), utrustningens begränsningar.

3.2 Mjukvaruverktyg

C++, XML markup language för launch-filer och CMake filer har både skapats och modifierats i projektet, antingen i en IDE med vissa hjälpmedel, eller någon enklare text-editor.

3.2.1 ROS

I projektet användes ramverket ROS NOetic. Paket i ROS byggs av cmake och

paketbeskrivning skrivs i en package-fil. CMakeLists-filer definieras i CMake Language och Extensible Markup Language (XML) används för att skriva launch-filer och package-filer. Följande programbibliotek inkluderades:

(14)

3.2.1.1 pcl

Ett bibliotek som bland annat består av olika typer av punkter och punktmoln.

3.2.1.2 pcl_conversions

För att hantera omvandlingar av data.

3.2.1.3 sensor_msgs

För att hantera meddelanden mellan noder.

3.2.1.4 geometry_msgs

För att hantera meddelanden mellan noder.

3.2.1.5 eigen3

För att hantera matrisberäkningar och transformationer.

3.2.1.6 map_representation

Ett bibliotek som Retenua utvecklat som innehåller probabilistiska kartor och celler.

3.2.2 Visual Studio Code

Utvecklingen av systemet gjordes i Visual Studio Code som är en integrerad

utvecklingsmiljö från Microsoft. Tillägget C/C++ användes för att underlätta utvecklingen av systemet, som skrevs i C++ för att lätt kunna arbeta med klasser och använda företagets egenutvecklade produkter.

3.2.3 Git

Retenua AB skapade en användare på deras git-server, där jag fick ta del av deras relaterade material och bibliotek samt dela med mig av koden som skrivits i projektet.

3.2.4 Ubuntu 20.04

En förutsättning för att smidigt kunna arbeta med projektet och få hjälp var att

använda samma operativsystem som företaget använder vid utveckling, därför uppmuntrades jag till att använda Ubuntu 20.04 som operativsystem på datorn.

3.3 Hårdvara LiDAR-sensor

SICK LMS200 LiDAR-sensor kopplad seriellt via USB-port kommunicerade över RS422 protokoll. LiDAR-sensorn var inställd på 1˚ upplösning, 180˚ perspektiv,

intensitetsinformation och meddelandefrekvens på 75/2 Hz.

Robot (Snövit)

Snövit är en mobil robot som använts vid tidigare studier och projekt hos Örebro Universitet. drivs med 24 V, tre hjul varav ett styrhjul som är det drivande hjulet, tillhörande manöverdon finns kopplat.

3.4 Övriga resurser

Drivrutiner för LiDAR-sensor. Gjutrör för att modellera riktmärken. Högreflekterande reflextejp för att lättare urskilja rikmärken med LiDAR-sensorn.

(15)

4 Genomförande

4.1 Modellering av riktmärken

Figur 4-1: Modell av riktmärke.

Initialt så behövdes en modell av ett riktmärke för att kunna göra en datainsamling. En cylindermodell med högreflektivt område i höjd med robotens laserscanner och närliggande yta blev den modellen som användes i projektet. Cylinder är en lämplig form då den ur en laserscanners perspektiv ser likadan ut ifrån alla vinklar i planet och det högreflektiva området för att maximera intensitetsvärdet vid alla träffar med laserskannern. Storleken på cylindern är en kompromiss där den manuella hanteringen medför att den inte får vara för stor samtidigt som laserskannerns upplösning på 1˚ medför att den inte kan vara för liten heller, cylinderns höjd styrs av laserskannerns position på roboten.

4.2 Datainsamling 1

Datainsamling gjordes genom att placera modeller av riktmärken på bestämda avstånd ifrån laserscannern och spela in .bag-filer. Avstånd från 1m upp till 14m, vilket var det längsta möjliga avstånd som kunde uppnås i verkstadslokalen. Syftet med datainsamlingen var att analysera riktmärkets egenskaper och utveckla en algoritm för att filtrera bort punkter som inte verkar vara riktmärken, samt att försöka estimera riktmärkets centrumpunkt.

(16)

Figur 4-2: Uppställning för datainsamling 1.

Med utgångspunkt i laserskannerns centrum så uppmättes och markerades avstånd med 1 m mellanrum från och med 1 meter upp till och med 14 m som var det största avståndet som kunde uppnås inom lokalens väggar. Modellen av riktmärket placerades med centrum på de uppmärkta avstånden i stigande ordning och vid varje utplacering så spelades en .bag-fil in.

(17)

4.3 Data-analys

Figur 4-3: Visar en obehandlad laserscan där de vita punkterna har höga intensitetsvärden och de bruna punkterna har låg intensitetsvärden, där axlarna möts är LiDAR-sensorns position i rummet, den röda axeln visar LiDAR-sensorns riktning.

I data-analysen undersöktes ett stickprov på 10 meddelanden från laserskannern per .bag-fil. Utifrån datat i stickprovet så undersöktes:

• Förhållandet: antal träffar på riktmärket relativt avstånd från laserskannern till riktmärket, med syftet att undersöka på hur stora avstånd man kan känna igen den geometriska formen på riktmärket samt att skapa ett underlag för filtreringsalgoritmen och för att kunna generera en centrumpunkt för riktmärket.

• Förhållandet: avstånd mellan två närliggande träffar på riktmärket relativt avstånd från laserskannern till riktmärket, med syftet att uppskatta om storleken på

riktmärkesmodellen är rimligt samt skapa underlag för filtreringsalgoritmen.

• Förhållandet: intensitetsstyrka vid träff på riktmärket relativt avståndet, med syftet att skapa underlag för filtreringsalgoritmen.

4.4 Algoritmutveckling

Resultaten ifrån dataanalysen presenteras i första stycket av Resultat-delen, i det här stycket så hänvisas till resultat under varje punkt.

4.4.1 Intensitetströskel

En intensitetströskel utvecklades med motivationen att en träff med lågt intensitetsvärde rimligtvis inte är ett riktmärke då det yttre lagret av riktmärket är högreflektivt. Med hjälp av denna metod kan ett stort antal punkter filtreras bort. Utifrån dataanalysen så fick vi en regressionslinje och en tillhörande funktion som användes för att skapa en flexibel

(18)

intensitetströskel som kan hantera potentiella riktmärken på längre distanser och lägre

intensitetsvärden på träffarna. Funktionen från det ofiltrerade datat hade ett ganska lågt R2-tal (~0.55) men om man filtrerar bort ”outliers” så kan man få en flackare koefficient och högre R2-tal som kan användas om önskad effekt inte uppnås.

4.4.2 Hantera kluster av träffar på potentiella riktmärken

Efter filtrering av punkter ifrån en laserskan så återstår då att undersöka de

kvarvarande punkterna och undersöka om de kan vara potentiella riktmärken. Med detta i åtanke så har antalet träffar på riktmärket relativt avstånd från LiDAR-sensorn samt

riktmärkets storlek och avståndet mellan närliggande punkter på olika avstånd ifrån LiDAR-sensorn analyserats för att kunna avgöra hur många punkter det borde finnas på ett potentiellt riktmärke på det avstånd från LiDAR-sensorn som riktmärket befinner sig på. Därefter filtreras kluster med närliggande träffar som inte överensstämmer med den förväntade storleken bort och kastas, kluster som är av förväntad storlek sparas i ett nytt pointcloud.

4.4.3 Generering av centrumpunkt för riktmärke

Utifrån det pointcloud med filtrerade kluster så analyseras varje kluster individuellt. centrumpunkten genereras på ett simpelt vis genom att ta medelvärden för koordinaterna på alla punkter i klustret, sedan omvandlas de nya koordinaterna till polär form och sedan adderas riktmärkets radie till avståndet och sedan omvandlas punkten tillbaka till kartesisk koordinatform igen och spara i ett nytt punktmoln.

4.5 Integrering av redan befintliga noder

Implementering av Hector Slam genomfördes, robotens position bestäms av LiDAR-sensorns position i planet. för kartering och exportera robotens position och riktning i planet. Syftet för implementeringen av Hector SLAM är att kunna konvertera riktmärkenas lokala positioner till globala positioner och därefter kunna exportera dem till en probabilistisk karta där alla potentiella riktmärkens positioner sparas.

(19)

Figur 4-4: Resultatet av en kartering av verkstadslokalen med Hector SLAM implementeringen, röd pil representerar robotens position och riktning.

4.6 Noder skapade i projektet 4.6.1 Filtreringsnod

Filtreringsnod skapades för att filtrera ut vilka punkter som kan vara potentiella riktmärken utifrån ett ”svep” ifrån LiDAR-sensorn. Filtreringen görs utifrån karaktäristiska drag hos riktmärket som hittades vid analys av den insamlade datan (intensitetströskel, klusterstorlek).

4.6.2 Transformeringsnod

Transformeringsnod skapades för att ge de identifierade potentiella riktmärkena en global position utifrån information om robotens position och riktning.

4.6.3 Kartnod

Kartnod skapades för att spara alla potentiella riktmärken i en probabilistisk karta och välja vilka fyra kluster av träffar som är riktmärken. Kartan består av kubformade celler som är 1m * 1m *1m. Eftersom en 2d LiDAR-sensor använts i projektet så har alla punkter i kartan samma värde i Z-led (0) Metoden som används för detta är ta de celler i den

probabilistiska kartan som innehåller flest träffar. De fyra punkter som exporteras från den probabilistiska kartans respektive fyra celler med flest antal träffar har koordinater som

(20)

representerar medelvärdet för alla koordinater som sparats i den cellen.

4.7 Datainsamling 2

Datainsamling gjordes genom att placera ut fyra riktmärken på positioner på golvet så att deras placering utformade hörnen i ett rektangulärt område. En en bag-fil skapades genom att roboten manövrerades runt i verkstadslokalen, både inuti och utanför området som

riktmärkena utformade, i ett obestämt mönster. Detta förfarande upprepades för att möjliggöra testning av rektanglar med olika former och olika manövreringsmönster för roboten.

(21)

5 Resultat

5.1 Analys av datainsamling 1

Med riktmärken sekventiellt utplacerade på avstånd mellan 1 meter och 14 meter ifrån sensorn så samlades en mängd data in med sensorn. Data ifrån LiDAR-sensorn skrevs till en textfil som granskades manuellt för att urskilja faktiska träffar på riktmärket. Ur datamängden togs ett stickprov av träffar på det utplacerade riktmärket från 10 svep med LiDAR-sensorn för varje avstånd, och medelvärdet för varje avstånd presenteras i Tabell 6-1 samt Tabell 6-2. Tabell 6-1 inkluderar ”dåliga” träffar, det vill säga träffar som bara reflekterat en del av ljuspulsen som träffat riktmärket, tillbaka till LiDAR-sensorn, medan Tabell 6-2 exkluderar de dåliga punkterna. Maximala värdet som intensiteten kan anta är 255.

Ur Tabell 6-1 kan vi se, som förväntat, att intensitetsvärdet och antal punkter verkar avta relativt ökat avstånd, medan avståndet mellan träffarna på riktmärket ökar relativt ökat avståndet.

Distans (m) X Y Intensitet Avstånd (m) Antal träffar

Avstånd mellan träffar 1 0,220 0,911 211,682 0,939 11 0,029 2 0,238 1,924 213,167 1,940 6 0,041 3 0,324 2,922 174,400 2,943 5 0,121 4 0,276 3,925 206,688 3,938 3,2 0,119 5 0,216 4,932 171,333 4,938 3 0,091 6 0,311 5,912 255 5,920 2 0,104 7 0,366 6,947 169,2 6,957 2 0,143 8 0,347 7,910 255 7,918 1 N/A 9 0,313 8,932 129,5 8,938 2 0,161 10 0,350 9,969 134,45 9,975 2 0,175 11 0,288 10,925 102 10,929 1 N/A 12 0,421 12,005 129,45 12,013 2 0,212 13 0,448 12,934 55,5789474 12,943 1,9 0,232 14 0,367 13,925 102 13,930 1 N/A

(22)

I Figur 5-1 så ser vi att intensiteten verkar avta någorlunda linjärt i förhållande till ökat avstånd mellan LiDAR-sensor och riktmärke.Korrelationen mellan dessa är dock lämplig att ifrågasätta då det finns många värden som ligger långt ifrån trendlinjen.

Figur 5-1: Genomsnittspunkter för avstånd relativt intensitet med trendlinje inkl. trendlinjens ekvation och R2-tal.

I Figur 5-2 ser vi att antalet punkter på riktmärket avtar snabbt inledningsvis, men blir mer linjär vid längre avstånd mellan LiDAR-sensor och riktmärket.

(23)

Distans (m) X Y Intensitet Avstånd Antal träffar Avstånd mellan träffar 1 0,217 0,897 255 0,924 9 0,020 2 0,254 1,917 255 1,934 5 0,039 3 0,231 2,921 255 2,930 3 0,055 4 0,275 3,908 255 3,918 2 0,071 5 0,260 4,922 255 4,929 2 0,088 6 0,312 5,912 255 5,920 2 0,104 7 0,304 6,913 255 6,920 1 N/A 8 0,347 7,910 255 7,918 1 N/A 9 0,391 8,911 255 8,920 1 N/A 10 0,437 9,962 159,9 9,972 1 N/A 11 0,288 10,926 102 10,930 1 N/A 12 0,316 12,018 247 12,022 1 N/A 13 0,340 12,9120 102 12,924 1 N/A 14 0,367 13,925 102 13,930 1 N/A

Tabell 5-2: Genomsnittliga värden för 10 träffar på riktmärket vid varje mätning, träffar med lågt intensitetsvärde bortfiltrerade

Figur 5-3: Genomsnittligt antal träffar på riktmärket relativt avstånd mellan sensor och riktmärke. Filtrerade data.

(24)

Figur 5-4: Genomsnittlig spridning av träffar på riktmärket relativt avstånd mellan sensor och riktmärke. Filtrerade data.

5.2 Algoritm för filtrering av riktmärken

Resultatet av filtreringsnodens förmåga att särskilja ett riktmärke ifrån omgivningen presenteras genom att jämföra bilder parvis samt en närbild av identifierade riktmärken. Den ena bilden inkluderar samtliga punkter som LiDAR-sensorn registrerat från omgivningen (obehandlad data), samtliga punkter som identifierats som ett potentiellt riktmärke samt de punkter som exporteras från filtreringsnoden, medan den andra bilden innehåller samtliga punkter som identifierats som riktmärken samt de punkter som exporteras från

filtreringsnoden. Punkterna i gråskala på bilderna är obehandlad data ifrån LiDAR-sensorn, de orangea punkterna på bilderna är punkter som identifierats som punkter på ett riktmärke och de gröna punkterna på bilderna är punkter som exporteras från filtreringsnoden. I Figur 5-5, Figur 5-6 och Figur 5-7 ser vi en jämförelse mellan ofiltrerad och filtrerad data, med ett riktmärke placerat med ett avstånd på två meter ifrån LiDAR-sensorn. I Figur 5-8, Figur 5-9 och Figur 5-10 ser vi en jämförelse mellan ofiltrerad och filtrerad data, med ett riktmärke placerat med ett avstånd på tio meter ifrån LiDAR-sensorn.

(25)

Figur 5-5: riktmärke på 2 meters avstånd i obehandlad laserscan, de orangea punkterna är filtrerade träffar på riktmärket, den gröna pricken är den estimerade centrumpunkten. 1 x 1 m rutnät.

(26)

filtrerade träffar på riktmärket, den gröna pricken är den estimerade centrumpunkten. 1 x 1 m rutnät.

Figur 5-7: riktmärke på 2 meters avstånd efter behandlad laserscan, de orangea punkterna är filtrerade träffar på riktmärket, den gröna pricken är den estimerade centrumpunkten. 10 x 10 cm rutnät.

Exempel 2:

Figur 5-8: riktmärke på 8 meters avstånd från en obehandlad laserscan, den orangea punkten är en träff på riktmärket, den gröna pricken är den estimerade centrumpunkten. 1 x 1 m rutnät.

(27)

Figur 5-9: riktmärke på 8 meters avstånd efter behandlad laserscan, den orangea punkten är en träff på riktmärket, den gröna pricken är den estimerade centrumpunkten. 1 x 1 m rutnät.

Figur 5-10: riktmärke på 8 meters avstånd efter behandlad laserscan, den orangea punkten är en träff på riktmärket, den gröna pricken är den estimerade centrumpunkten. 10 x 10 cm rutnät.

5.3 Resultat från komplett system

Resultaten av det kompletta systemet presenteras genom att jämföra bilder parvis som visar den kartrepresentation som Hector SLAM-noden byggt upp efter att roboten åkt runt i lokalen, som beskrivet i Datainsamling 2, med riktmärken utplacerade i ett rektangulärt mönster. Skillnaden i bilderna är att den ena bilden enbart är en bild på kartrepresentationen, medan det i den andra bilden finns punkterna som exporterats ifrån systemet, som ska representera hörnen av arbetsområdet, placerade ovanpå kartrepresentationen.

(28)

Figur 5-11: figuren till vänster visar en kartrepresentation av det minsta arbetsområdet, genererad av Hector SLAM noden, figuren till höger visar samma kartrepresentation men med det extraherade arbetsområdets hörnpunkter överlagrade.

(29)

Figur 5-12: figuren till vänster visar en kartrepresentation av ett något större arbetsområdet, genererad av Hector SLAM noden, figuren till höger visar samma kartrepresentation men med det extraherade arbetsområdets hörnpunkter överlagrade.

(30)

Figur 5-13: figuren till vänster visar en kartrepresentation av ett större arbetsområde, genererad av Hector SLAM noden, figuren till höger visar samma kartrepresentation men med det extraherade arbetsområdets hörnpunkter överlagrade.

(31)

Hector SLAM noden, figuren till höger visar samma kartrepresentation men med det extraherade arbetsområdets hörnpunkter överlagrade.

Figur 5-15: figuren till vänster visar en kartrepresentation av ett större arbetsområde, genererad av Hector SLAM noden, figuren till höger visar samma kartrepresentation men med det extraherade arbetsområdets hörnpunkter överlagrade, varav en punkt är felaktig.

(32)

6 Diskussion

6.1 Uppfyllande av projektets krav

Om vi tittar tillbaka på kraven som ställdes på systemet tidigare i dokumentet så får vi dessa frågeställningar:

• Kan systemet lokalisera fyra riktmärken?

o I de flesta av fallen som granskats, så lyckas systemet att identifiera de

riktmärken som utplacerats, men inte alltid. Det finns utrymme för förbättring. • Kan systemet känna igen riktmärken från olika vinklar?

o Ja. Eftersom riktmärket ser likadant ut ifrån alla vinklar som det är tänkt att observeras ifrån, så har vinkeln ingen betydelse.

• Kan systemet särskilja ett riktmärke från omgivningen?

o Ja. I stor utsträckning så klarar systemet av att filtrera bort punkter som inte är tillhör ett riktmärke, men det kommer alltid att finnas objekt i omgivningen som kan misstas för att vara riktmärken. Vi såg i Figur 5-15 att en av de fyra punkterna som exporterats ifrån systemet inte tillhörde ett riktmärke, utan en punkt på något annat föremål i lokalen.

• Kan systemet generera positionsdata som är bra över hela området?

o Ja, I den miljön som systemet testats så har positionsdatan varit tillräckligt bra för att kunna exportera de önskade punkterna.

6.2 Sociala och ekonomiska implikationer

Projektet ska ses som ett ”proof of concept” resultatet kan användas som koncept för att implementeras tillsammans med mobila robotar som ska arbeta inom ett specifikt

arbetsområde. Produkten som det här projektet resulterade i ska ses som en vägledning till hur ett system kan byggas och är långt ifrån färdig för att användas utan vidare utveckling.

Maskiner som manövreras av människor brukar vara en källa till vibrationer.

Vibrationer har en tendens att spridas genom maskinen och vidare till personen som hanterar maskinen. Vibrationer fortplantar sig till framför allt leder i armar och axlar och kan

potentiellt vara skadliga i det långa loppet på grund av nötningseffekter. Det skulle potentiellt kunna minska vårdkostnader för den typen av skador.

Produkten som tagits fram i det här projektet är ämnat att ersätta en specifik modul i ett komplett system. Ett system som den slutgiltiga produkten för det här projektet ingår i kan inte ersätta en människas arbete, även om det finns ett komplett system som den här

produkten är integrerad i så behöver riktmärken placeras ut för att det ska gå att använda, därför ska systemet ses som ett hjälpmedel till en människa som utför den tänkta

arbetsuppgiften och inte en ersättning av en människa.

6.3 Projektets utvecklingspotential

Det finns många möjligheter att förfina arbetet, hårdvarumässigt finns det

förbättringsmöjligheter genom att öka upplösningen och perspektivet för LiDAR-sensorn, dessutom så skulle en 3D-LiDAR öppna upp nya möjligheter för utveckling av mjukvaran.

(33)

Mjukvarumässigt så finns det många, mer sofistikerade, sätt att känna igen olika geometriska figurer som skulle kunna användas om man vill designa olika riktmärken som passar för olika omgivningar, dessa skulle även kunna användas för att inte bli lika beroende av ljusintensiteten för att känna igen ett riktmärke. Algoritmerna som användes för att skapa den här produkten är alla väldigt simpla och det finns många delar man kan fördjupa sig på för att göra systemet mer robust.

Det finns andra system som med hög precision och till låg kostnad kan åstadkomma samma arbete utifrån liknande metoder, men å andra sidan så finns det goda anledningar att välja en lite dyrare teknik om systemet är tänkt att verka i en miljö där människor eller djur vistas, eftersom en LiDAR-sensor har hög frekvens så kan systemet snabbt upptäcka om det finns risk för att någon eller något kan komma till skada i god tid. De egenskaperna kan och borde utnyttjas för att på något vis agera och eliminera riskerna som uppstår.

Avgränsningar kan utföras på annat vis än att definiera ett rektangulärt område. Det skulle vara möjligt att skapa ett grafiskt användargränssnitt i vilket man kan rita upp

avgränsningar för arbetsområdet. Det skulle förmodligen innebära en minskad noggrannhet men ökad flexibilitet.

(34)

7 Reflektion kring eget lärande

Det för mig tidigare outforskade fältet robotik som var det övergripande område jag fördjupat mig i under examensarbetet, är ett stort fält med många fördjupningsmöjligheter. I mitt arbete har jag tittat närmare på problem och möjliga lösningar relaterade till att tolka omgivningen, mer specifikt, tolka omgivningen ur en LiDAR-sensors perspektiv, och försöka behandla tolkningarna av omgivningen så att jag bara ser det jag vill se.

Jag har studerat mycket artiklar om ”environment perception” och insett att det finns en mängd olika tekniker som kan tillämpas för att lösa samma problem, där alla tekniker har olika egenskaper och att det inte finns någon ”gyllene väg” som fungerar för alla problem.

Kunskap och förståelse

Jag har fått en bättre uppfattning om komplexiteten inom robotiken. En grundläggande svårighet inom robotiken är att upprätta och underhålla kommunikationen mellan alla

komponenter som används av roboten. ROS är ett fantastiskt ramverk som har hjälpt mig i stor utsträckning att uppnå det jag åstadkommit. Det finns även andra faktorer som ökar komplexiteten inom robotiken, bland annat har jag studerat en del komplexa datastrukturer som används för att lagra information, i projektet har exempelvis två olika

kartrepresentationer använts, Occupancy Grid Map och Normal Distribution Transform Map, för att bygga olika modeller av omgivningen. Jag har även fördjupat mig i problematik

relaterat till lokalisering av en robot, lokalisering av en robot i en okänd omgivning och varför det är så svårt, transformering av data och kommit till insikt om varför det måste utföras. Utöver komplexiteten inom robotiken så inser jag att man bör vara försiktig med vilka antaganden som görs på omgivningen för att tekniken man utvecklar ska fungera som det är tänkt, och tydligt definiera dem.

Önskad fördjupning

Det skulle vara intressant att fördjupa sig i andra områden av ”environment

perception” för att kunna ställa problemen jag haft med en 2D-LiDAR-sensor i relation till hur svåra de skulle vara att lösa med andra tekniker, och hur det skulle vara att lösa problem genom användning av sensorfusion.

Ett annat spår som jag tycker skulle vara intressant att fördjupa mig i är att undersöka hur man, med det system som byggts upp under projektet, kan upptäcka risker för

(35)

8 Referenser

1. Joseph Hirschi- Advances in Productive, Safe, and Responsible Coal Mining. 2018. Kap.7.3.7 – LIDAR. S.105

2. H.R. Everett, Sensors for Mobile Robots – Theory And Application, Kap.5.2, S.150 Uppl. 10. 1999

3. Technical Description LMS200/211/221/291 Laser Measurement Systems –

Measurably More Cost-Effective. 2006. SICK AG Waldkirch Nimburger Strasse 11, 79276 Reute Germany

4. Probabilistic Robotics. Thrun, Sebastian. Burgard, Wolfram. Fox, Dieter. Kap.10 Simultaneous Localization snd Mapping The MIT Press, Cambridge, Massachusetts. London, England. 2006

5. A Flexible and Scalable SLAM System with Full 3D Motion Estimation. Kohlbrecher, Stefan. von Stryk, Oskar. Meyer, Johannes. Klingauf, Uwe. Technische Universität Darmstadt. Darmstadt, Germany 2013

6. Real-Time Loop Closure in 2D LIDAR SLAM. Hess, Wolfgang. Kohler, Damon. Rapp, Holger. Andor, Daniel. 2016 IEEE International Conference on Robotics and Automation (ICRA). Stockholm, Sweden, May 16-21, 2016

7. Probabilistic Robotics. Thrun, Sebastian. Burgard, Wolfram. Fox, Dieter. Kap.9. Occupancy Grid Mapping. The MIT Press, Cambridge, Massachusetts. London, England. 2006

8. Segmentation and Geometric Primitives Extraction from 2D Laser Range Data for Mobile Robot Applications. Premebida, Cristiano. June, 2005. Departamento de Engenharia Electrotécnica e de Computadores, Pólo II – Universidade de Coimbra, 3030-290 Coimbra - PORTUGAL

9. LASER INTENSITY USED IN CLASSIFICATION OF LIDAR POINT CLOUD DATA. Li Hui et al. School of Remote Sensing and Information Engineering, Wuhan University, Luoyu Road 129. IGARSS 2008 - 2008 IEEE International Geoscience and Remote Sensing Symposium, 2008-07, Vol.2 (1), p.II-1140-II-1143

10. The Normal Distributions Transform: A New Approach to Laser Scan Matching. Biber, Peter. Strasser, Wolfgang. University of Tübingen, Sand 14, 72070 Tubingen, Germany. Proceedings of the 2003 IEEVRSJ, InU. Conference on Intelligent Robots and Systems, Las Vegas. Nevada October 2003

11. Scan Registration for Autonomous Mining Vehicles Using 3D-NDT. Magnusson, Martin. Lilienthal, Achim. Duckett, Tom. AASS, Department of Technology. Örebro University SE-701 82 Örebro, Sweden. Department of Computing and Informatics, University of Lincoln, Brayford Pool, Lincoln LN6 7TS UK. Journal of Field

Robotics 24(10), 803–827 (2007) © 2007 Wiley Periodicals, Inc. Published online in Wiley InterScience (www.interscience.wiley.com). DOI: 10.1002/rob.20204

12. ROS.org (hämtat: 2021-05-15)

13. https://github.com/tu-darmstadt-ros-pkg/hector_slam. (hämtat: 2021-05-10) 14. Sommerville, Ian. Software Engineering 10th edition. Kap.3 – Agile software

development. S.76. Pearson Education Limited. Edinburgh Gate, Harlow, Essex CM20 2JE, England

References

Related documents

Istället för att beräkna alla nukleotider som skiljer sig från varandra delar man upp dem i två grupper, transitions och transversions skillnader... För att kunna räkna

Titel: Trygghet i samband med vård vid hjärtinfarkt Författare: Pia Eriksson, Gunilla Friberg, Christina Molin.. Sektion: Sektionen för Hälsa

Inom denna studie blir det viktigt att de debattartiklarna som används ger studien en hög validitet genom att de håller sig till ämnet som studien handlar om, de skall därmed inte ta

Studien avser därför visa på möjliga vägar tillbaka och på så sätt bidra till en utbildningsmässig framtidstro primärt för elever med problematisk skolfrånvaro, men även

Aim: The aim of the thesis is to increase the knowledge of problematic school absenteeism by focusing on factors and processes contributing to this phenomenon

I vår artikel i förra numret av Ekonomisk Debatt (Blind m fl 2016) är resultaten i två av kolumnerna i tabell 4 framtagna med fel mått på avståndsvariabeln.. Ett programmeringsfel

I Sainaghis (2010 b ) studie förväntades fler antal anställda påverka RevPAR positivt och resultatet visade sig även stämma med denna uppfattning.. Sainaghi (2010 b )

I ovanstående bakgrundsdiskussion belyses att internationella företag har ett behov av uppföljning och kontroll då informationsassymetri mellan huvudkontor och