På grunn av presisjonen som kreves på forskjellige felt, som landbruk, arkeologi og transport, lasere brukes ofte til formål som å unngå hindringer, kartkonstruksjon eller til og med autonome navigasjon.
La oss se på LiDAR-er, hvordan de fungerer og hvordan du kan bruke dem til å lage et 2D-kart over rommet ditt.
Ting du trenger for å skanne rommet ditt
Følgende er forutsetningene for å lage et 2D-kart over rommet ditt:
- En bærbar PC eller PC som kjører Ubuntu Server
- ROS installasjon
- En LiDAR
Hva er LiDAR?
LiDAR, eller Light Detection and Ranging, kan også finnes under et annet navn, LADAR (Laser Detection og Ranging) en aktiv fjernmålingsteknologi som måler avstand ved hjelp av lys i form av en pulsert laser. Teknologien fungerer ved å skinne en optisk puls mot et mål og måle egenskapene til det reflekterte retursignalet.
Systemet måler tiden det tar før strålen kommer tilbake. Generelt er det en avstandsmåler. Den optiske pulsens bredde kan variere fra noen få nanosekunder til flere mikrosekunder, og den kan målrette mot en rekke materialer.
Systemtilkobling og laserdatainnsamling
RPLIDAR A1, en rimelig LiDAR-sensor egnet for innendørs robotapplikasjoner, vil bli brukt i dette tilfellet. Den har et 360-graders skannefelt, en 5,5hz/10hz roterende frekvens og en rangeravstand på 8 meter. LiDAR har et rekkeviddeskannersystem, et motorsystem samt et kommunikasjonsgrensesnitt (seriell port/USB).
Systemet måler avstandsdata med mer enn 2000 ganger per sekund og med høyoppløselig avstandsutgang. Følgelig krever det bruk av flere verktøy for å behandle og visualisere dataene. Du kan for eksempel bruke SlamTech RoboStudio-verktøyet eller ROS-pakken.
Hvorfor ROS?
ROS (Robot Operating System) er programvare som brukes av et globalt åpen kildekodefellesskap av robotikkamatører som er dedikert til å forbedre og gjøre roboter tilgjengelige for alle. Den ble opprinnelig utviklet av Eric Berger og Keenan Wyrobek ved Stanford University. ROS lar deg også visualisere sensordata, lage grensesnitt og bruke verktøy som Rviz og Gazebo-simuleringsmotoren.
Med ROS vil du enkelt kunne separere koden din i pakker som inneholder små programmer, kalt noder. Disse nodene er koblet sammen via emner som de sender og mottar meldinger over.
I dette prosjektet skal du bruke rplidar_ros, en ROS-pakke som er spesielt utviklet for LiDAR-datainnsamling. Hector_slam-pakken vil bli brukt senere for å lage kart.
Trinn 1: ROS-installasjon
Etter installere Ubuntu Server, åpne terminalen og kjør følgende kommando for å sikre at Debian-pakkeindeksen din er oppdatert. Forskjellen mellom oppdatering og oppgradering er allerede dekket.
sudo apt Oppdater
Følgende trinn er å installere ROS.
sudo apt installere ros-noetic-desktop-full
Du kan teste ROS ved å kjøre roscore, som vil tjene som bevis på riktig installasjon.
roscore
Trinn 2: Få din første skanning
Kjør først følgende kommando for å installere rplidar_ros pakke:
sudo apt-få installer ros-noetic-rplidar-ros
De rplidar_ros pakken inkluderer skriptene og lanseringsfilene som kreves for å skaffe og visualisere LiDAR-skannedata.
Når du har fullført programvaren, kobler du LiDAR til PC-en via USB-porten. LiDAR vil begynne å rotere, men den vil ikke sende ut noen laser med mindre du kjører følgende kommando som kaller en ROS-startfil.
roslaunchrplidar_rosrplidar.lansering
Ved å kjøre denne kommandoen kan du se de reflekterte avstandene som er publisert i et emne kalt /scan.
rostopisk ekko /scan
Du bør se en representasjon av de ubehandlede laserskanningsdataene i terminalen din:
For å visualisere disse dataene, åpne en annen terminal, pass på at du ikke lukker den andre kjørende terminalen som henter data fra laserskanneren, og start Rviz, visualiseringsverktøyet.
rosrun rviz rviz
Endre Fast ramme til Laser, og klikk deretter på legge til knappen nederst til venstre i vinduet og velg LaserScan. Til slutt setter du LaserScan-emnet til /scan, og du vil kunne se LiDAR-skanningen i sanntid.
Hvis du har problemer med å få den første skanningen, kan det være fordi enheten din ikke er autorisert til å kommunisere data via seriell. For å fikse dette, kjør følgende kommando og fortsett med de forrige trinnene.
sudo chmod 777 /dev/ttyUSB0
Trinn 3: Start Mapping
Etter at du har testet LiDAR og bekreftet at den fungerer som den skal, er neste trinn å begynne å skanne området du er interessert i. For dette trenger du en tilleggspakke kalt Hector Slam (der "Slam" står for "Simultaneous localization and mapping").
Som før, utfør følgende kommando for å installere den pakken:
sudo apt-få installer ros-noetic-hector-slam
Før du kjører skanningen, endre noen parametere som vist nedenfor. Søk etter tutorial.launch i hector_slam-pakken ved å bruke roscd kommando.
roscd hector_slam_launch
Kommandoen nano lar deg åpne filen og redigere den.
nanoopplæringen.lansering
Du kan støte på en Linux-filtillatelse feil som kan løses med denne kommandoen:
sudochmod 777 opplæringen.lansering
Her er et eksempel på utførelsen:
Det neste trinnet er å endre linjene som vist nedenfor:
Det siste trinnet er å utføre denne linjen.
roslaunchhector_slamopplæringen.lansering
Begynn å flytte LiDAR sakte rundt i rommet ditt for de beste resultatene fordi å lage kart er mest effektivt når du beveger deg sakte. Du kan slå på banen og eksperimentere med laserskanningsinnstillingene.
Du kan bruke innendørs SLAM for å skanne hele huset ved hjelp av en bærbar PC og en LiDAR som vist i videoen nedenfor. Resultatene kan forbedres ved å integrere flere sensorer, og deretter kombinere dataene fra begge kildene.
Trinn 4: Lagre og redigere kartet ditt
Kjør følgende kommando når du er ferdig med skanningen for å lagre kartet:
rostopic pub syscommand std_msgs/String "savegeotiff"
I dette scenariet, imagemagick kan brukes til å konvertere kartet til en PNG-bildefil, kjør begge disse kommandoene for å fullføre installasjonen og konverteringen.
sudo apt-få installer imagemagick
konvertereskannet kart.pgmMyPngMap.png
Få mer bruk fra LiDAR
Ved å bruke en LiDAR og en PC kunne du utføre en 2D-skanning. Du kan forbedre skanningen ved å legge til et dybdekamera, for eksempel Kinect, og integrere de to typene data som samles inn.
Den samme teknologien kan finnes i noen avanserte iPhone- og iPad-modeller, der LiDAR er integrert i kameraet modul på enhetens bakside, som muliggjør utvikling av 3D-kart, avstandsmåling og utvidet virkelighet applikasjoner.