På grund af den præcision, der kræves inden for forskellige områder, såsom landbrug, arkæologi og transport, lasere bruges ofte til formål såsom undgåelse af forhindringer, kortkonstruktion eller endda autonome navigation.
Lad os se på LiDAR'er, hvordan de virker, og hvordan du kan bruge dem til at skabe et 2D-kort over dit rum.
Ting du skal bruge for at scanne dit værelse
Følgende er forudsætningerne for at oprette et 2D-kort over dit værelse:
- En bærbar eller pc, der kører Ubuntu Server
- ROS installation
- En LiDAR
Hvad er LiDAR?
LiDAR, eller Light Detection and Ranging, kan også findes under et andet navn, LADAR (Laser Detection og Ranging) en aktiv fjernmålingsteknologi, der måler afstand ved hjælp af lys i form af en pulseret laser. Teknologien virker ved at afgive en optisk puls mod et mål og måle egenskaberne af det reflekterede retursignal.
Systemet måler den tid, det tager strålen at vende tilbage. Generelt er det en afstandsmåler. Den optiske pulsbredde kan variere fra nogle få nanosekunder til flere mikrosekunder, og den kan målrette mod en række forskellige materialer.
Systemforbindelse og laserdataindsamling
RPLIDAR A1, en lavpris LiDAR-sensor, der er egnet til indendørs robotapplikationer, vil blive brugt i dette tilfælde. Den har et 360-graders scanningsfelt, en roterende frekvens på 5,5 Hz/10 Hz og en rangerafstand på 8 meter. LiDAR har et rækkeviddescannersystem, et motorsystem samt et kommunikationsinterface (seriel port/USB).
Systemet måler afstandsdata med mere end 2000 gange i sekundet og med høj opløsningsafstandsoutput. Det kræver derfor brug af flere værktøjer til at behandle og visualisere dataene. For eksempel kan du bruge SlamTech RoboStudio-værktøjet eller den medfølgende ROS-pakke.
Hvorfor ROS?
ROS (Robot Operating System) er software, der bruges af et globalt open source-fællesskab af robothobbyister, dedikeret til at forbedre og gøre robotter tilgængelige for alle. Det blev oprindeligt udviklet af Eric Berger og Keenan Wyrobek ved Stanford University. ROS lader dig også visualisere sensordata, skabe grænseflader og bruge værktøjer som Rviz og Gazebo-simuleringsmotoren.
Med ROS vil du nemt kunne adskille din kode i pakker, der indeholder små programmer, kaldet noder. Disse noder er forbundet via emner, som de sender og modtager beskeder over.
I dette projekt vil du bruge rplidar_ros, en ROS-pakke, der er specielt designet til LiDAR-dataindsamling. Hector_slam-pakken vil blive brugt senere til kortoprettelse.
Trin 1: ROS-installation
Efter installation af Ubuntu Server, åbn din terminal og kør følgende kommando for at sikre, at dit Debian-pakkeindeks er opdateret. Forskellen mellem opdatering og opgradering er allerede dækket.
sudo apt opdatering
Det følgende trin er at installere ROS.
sudo apt installere ros-noetic-desktop-fuld
Du kan teste ROS ved at køre roscore, som vil tjene som bevis for korrekt installation.
roscore
Trin 2: Få din første scanning
Kør først følgende kommando for at installere rplidar_ros pakke:
sudo apt-få installer ros-noetic-rplidar-ros
Det rplidar_ros pakken inkluderer de scripts og startfiler, der kræves for at opnå og visualisere LiDAR-scanningsdata.
Når du har færdiggjort din software, skal du tilslutte din LiDAR til din pc via USB-porten. LiDAR vil begynde at rotere, men den vil ikke udsende nogen laser, medmindre du kører følgende kommando, som kalder en ROS-startfil.
roslaunchrplidar_rosrplidar.start
Ved at køre denne kommando kan du se de reflekterede afstande, der er publiceret i et emne kaldet /scan.
rostopisk ekko /scan
Du bør se en repræsentation af de ubehandlede laserscanningsdata i din terminal:
For at visualisere disse data skal du åbne en anden terminal, sørg for ikke at lukke den anden kørende terminal, der henter data fra laserscanneren, og start Rviz, visualiseringsværktøjet.
rosrun rviz rviz
Skift Fast ramme til Laser, og klik derefter på tilføje knappen i nederste venstre hjørne af vinduet og vælg LaserScan. Indstil endelig LaserScan-emnet til /scan, og du vil være i stand til at se din LiDAR-scanning i realtid.
Hvis du har problemer med at få din første scanning, kan det skyldes, at din enhed ikke er autoriseret til at kommunikere data via seriel. For at løse dette skal du køre følgende kommando og derefter fortsætte med de foregående trin.
sudo chmod 777 /dev/ttyUSB0
Trin 3: Start Mapping
Når du har testet din LiDAR og bekræftet, at den fungerer korrekt, er næste trin at begynde at scanne dit område af interesse. Til dette skal du bruge en ekstra pakke kaldet Hector Slam (hvor "Slam" står for "Simultaneous localization and mapping").
Som før skal du udføre følgende kommando for at installere den pakke:
sudo apt-få installer ros-noetic-hector-slam
Før du kører scanningen, skal du ændre nogle få parametre som vist nedenfor. Søg efter tutorial.launch i hector_slam-pakken ved at bruge roscd kommando.
roscd hector_slam_launch
Kommandoen nano vil lade dig åbne din fil og redigere den.
nanotutorial.start
Du kan støde på en Linux-filtilladelse fejl, som kan løses med denne kommando:
sudochmod 777 tutorial.start
Her er et eksempel på udførelsen:
Det næste trin er at ændre linjerne som vist nedenfor:
Det sidste trin er at udføre denne linje.
roslaunchhector_slamtutorial.start
Begynd at flytte din LiDAR langsomt rundt i dit værelse for at få de bedste resultater, fordi det er mest effektivt at lave kort, når du bevæger dig langsomt. Du kan slå din bane til og eksperimentere med laserscanningsindstillingerne.
Du kan bruge indendørs SLAM til at scanne hele huset ved hjælp af en bærbar computer og en LiDAR som vist i videoen nedenfor. Resultaterne kan forbedres ved at integrere yderligere sensorer og derefter kombinere data fra begge kilder.
Trin 4: Gem og redigering af dit kort
Kør følgende kommando, når du er færdig med din scanning for at gemme kortet:
rostopic pub syscommand std_msgs/String "savegeotiff"
I dette scenarie, imagemagi kan bruges til at konvertere kortet til en PNG-billedfil, kør begge disse kommandoer for at fuldføre installationen og konverteringen.
sudo apt-få installere imagemagick
konverterescannet kort.pgmMyPngMap.png
Få mere brug af LiDAR
Ved at bruge en LiDAR og en pc var du i stand til at udføre en 2D-scanning. Du kan forbedre din scanning ved at tilføje et dybdekamera, såsom Kinect, og integrere de to typer indsamlede data.
Den samme teknologi kan findes i nogle avancerede iPhone- og iPad-modeller, hvor LiDAR er integreret i kameraet modul på enhedens bagside, der giver mulighed for udvikling af 3D-kort, afstandsmåling og augmented reality applikationer.