Aufgrund der Präzision, die in verschiedenen Bereichen wie Landwirtschaft, Archäologie und Transport erforderlich ist, Laser werden häufig für Zwecke wie Hindernisvermeidung, Kartenerstellung oder sogar autonom eingesetzt Navigation.
Schauen wir uns LiDARs an, wie sie funktionieren und wie Sie sie verwenden können, um eine 2D-Karte Ihres Raums zu erstellen.
Dinge, die Sie brauchen, um Ihr Zimmer zu scannen
Im Folgenden sind die Voraussetzungen aufgeführt, um eine 2D-Karte Ihres Raums zu erstellen:
- Ein Laptop oder PC mit Ubuntu Server
- ROS-Installation
- Ein LiDAR
Was ist LiDAR?
LiDAR oder Light Detection and Ranging, Es kann auch unter einem anderen Namen gefunden werden, LADAR (Laser Detection and Ranging) eine aktive Fernerkundungstechnologie, die Entfernungen mit gepulstem Licht misst Laser. Die Technologie funktioniert, indem ein optischer Impuls auf ein Ziel gerichtet wird und die Eigenschaften des reflektierten Rücksignals gemessen werden.
Das System misst die Zeit, die der Strahl benötigt, um zurückzukehren. Im Allgemeinen ist es ein Entfernungsmesser. Die Breite des optischen Impulses kann von wenigen Nanosekunden bis zu mehreren Mikrosekunden reichen und auf eine Vielzahl von Materialien abzielen.
Systemverbindung und Laserdatenerfassung
In diesem Fall wird RPLIDAR A1 verwendet, ein kostengünstiger LiDAR-Sensor, der für Roboteranwendungen im Innenbereich geeignet ist. Es hat ein 360-Grad-Scanfeld, eine Rotationsfrequenz von 5,5 Hz/10 Hz und eine Reichweite von 8 Metern. Das LiDAR verfügt über ein Range-Scanner-System, ein Motorsystem sowie eine Kommunikationsschnittstelle (serielle Schnittstelle/USB).
Das System misst Entfernungsdaten mehr als 2000 Mal pro Sekunde und mit hochauflösender Entfernungsausgabe. Folglich erfordert es die Verwendung mehrerer Tools, um die Daten zu verarbeiten und zu visualisieren. Sie können beispielsweise das SlamTech RoboStudio-Tool oder das von ROS bereitgestellte Paket verwenden.
Warum ROS?
ROS (Robot Operating System) ist eine Software, die von einer globalen Open-Source-Community von Robotik-Hobbyisten verwendet wird, die sich der Verbesserung und Bereitstellung von Robotern für alle verschrieben haben. Es wurde ursprünglich von Eric Berger und Keenan Wyrobek an der Stanford University entwickelt. Mit ROS können Sie auch Sensordaten visualisieren, Schnittstellen erstellen und Tools wie Rviz und die Gazebo-Simulations-Engine verwenden.
Mit ROS können Sie Ihren Code einfach in Pakete aufteilen, die kleine Programme enthalten, die als Knoten bezeichnet werden. Diese Knoten sind über Topics verbunden, über die sie Nachrichten senden und empfangen.
In diesem Projekt verwenden Sie rplidar_ros, ein ROS-Paket, das speziell für die LiDAR-Datenerfassung entwickelt wurde. Das Paket hector_slam wird später für die Kartenerstellung verwendet.
Schritt 1: ROS-Installation
Nach Ubuntu-Server installieren, öffnen Sie Ihr Terminal und führen Sie den folgenden Befehl aus, um sicherzustellen, dass Ihr Debian-Paketindex auf dem neuesten Stand ist. Der Unterschied zwischen Update und Upgrade wurde bereits abgedeckt.
sudo apt aktualisieren
Der folgende Schritt ist die Installation von ROS.
sudo apt Installieren ros-noetic-desktop-voll
Sie können ROS testen, indem Sie die Roscore, die als Nachweis für die ordnungsgemäße Installation dienen.
Roscore
Schritt 2: Erhalten Sie Ihren ersten Scan
Führen Sie zunächst den folgenden Befehl aus, um die rplidar_ros Paket:
sudo apt-erhalten installiere ros-noetic-rplidar-ros
Das rplidar_ros Das Paket enthält die Skripte und Startdateien, die zum Abrufen und Visualisieren von LiDAR-Scandaten erforderlich sind.
Wenn Sie Ihre Software fertiggestellt haben, verbinden Sie Ihr LiDAR über den USB-Anschluss mit Ihrem PC. Das LiDAR beginnt sich zu drehen, gibt jedoch keinen Laser ab, es sei denn, Sie führen den folgenden Befehl aus, der eine ROS-Startdatei aufruft.
Roslaunchrplidar_rosrplidar.Start
Durch Ausführen dieses Befehls können Sie die reflektierten Entfernungen sehen, die in einem Thema namens /scan veröffentlicht werden.
rostopisch Echo /scan
Sie sollten eine Darstellung der unverarbeiteten Laserscandaten in Ihrem Terminal sehen:
Um diese Daten zu visualisieren, öffnen Sie ein anderes Terminal, achten Sie darauf, das andere laufende Terminal, das Daten vom Laserscanner abruft, nicht zu schließen, und starten Sie es Rviz, das Visualisierungstool.
rosrun rviz rviz
Ändere das Fester Rahmen zu Laser, klicken Sie dann auf hinzufügen Schaltfläche in der unteren linken Ecke des Fensters und wählen Sie aus LaserScan. Setzen Sie schließlich das LaserScan-Thema auf /scan, und Sie können Ihren Echtzeit-LiDAR-Scan sehen.
Wenn Sie Probleme haben, Ihren ersten Scan zu erhalten, kann dies daran liegen, dass Ihr Gerät nicht autorisiert ist, Daten über die serielle Schnittstelle zu übertragen. Um dies zu beheben, führen Sie den folgenden Befehl aus und fahren Sie dann mit den vorherigen Schritten fort.
sudo chmod 777 /dev/ttyUSB0
Schritt 3: Starten Sie die Zuordnung
Nachdem Sie Ihr LiDAR getestet und bestätigt haben, dass es ordnungsgemäß funktioniert, besteht der nächste Schritt darin, mit dem Scannen Ihres Interessenbereichs zu beginnen. Dazu benötigen Sie ein Zusatzpaket namens Hector Slam (wobei „Slam“ für „Simultaneous localization and mapping“ steht).
Führen Sie wie zuvor den folgenden Befehl aus, um dieses Paket zu installieren:
sudo apt-erhalten installiere ros-noetic-hector-slam
Ändern Sie vor dem Ausführen des Scans einige Parameter wie unten gezeigt. Suchen Sie im hector_slam-Paket nach tutorial.launch, indem Sie die roscd Befehl.
roscd hector_slam_launch
Der Befehl nano lässt Sie Ihre Datei öffnen und bearbeiten.
nanoLernprogramm.Start
Sie könnten begegnen eine Linux-Dateiberechtigung Fehler, der durch diesen Befehl behoben werden kann:
sudochmod 777 Lernprogramm.Start
Hier ein Beispiel der Ausführung:
Der nächste Schritt besteht darin, die Zeilen wie unten gezeigt zu ändern:
Der letzte Schritt besteht darin, diese Zeile auszuführen.
Roslaunchhector_slamLernprogramm.Start
Beginnen Sie damit, Ihr LiDAR langsam durch Ihren Raum zu bewegen, um die besten Ergebnisse zu erzielen, da das Erstellen von Karten am effektivsten ist, wenn Sie sich langsam bewegen. Sie können Ihre Trajektorie einschalten und mit den Laserscan-Einstellungen experimentieren.
Sie können Indoor-SLAM verwenden, um das gesamte Haus mit einem Laptop und einem LiDAR zu scannen, wie im Video unten gezeigt. Die Ergebnisse können verbessert werden, indem zusätzliche Sensoren integriert und dann die Daten aus beiden Quellen kombiniert werden.
Schritt 4: Speichern und Bearbeiten Ihrer Karte
Führen Sie den folgenden Befehl aus, wenn Sie mit dem Scannen fertig sind, um die Karte zu speichern:
rostopic pub syscommand std_msgs/String "savegeotiff"
In diesem Szenario, Bildmagie verwendet werden kann, um die Karte in eine PNG-Bilddatei zu konvertieren, führen Sie diese beiden Befehle aus, um die Installation und die Konvertierung abzuschließen.
sudo apt-erhalten imagemagick installieren
Konvertierengescannte Karte.pgmMyPngMap.png
Holen Sie mehr Nutzen aus LiDAR
Mit einem LiDAR und einem PC konnten Sie einen 2D-Scan durchführen. Sie können Ihren Scan verbessern, indem Sie eine Tiefenkamera wie Kinect hinzufügen und die beiden erfassten Datentypen integrieren.
Die gleiche Technologie findet sich möglicherweise in einigen High-End-iPhone- und iPad-Modellen, bei denen das LiDAR in die Kamera integriert ist Modul auf der Rückseite des Geräts, das die Entwicklung von 3D-Karten, Entfernungsmessung und Augmented Reality ermöglicht Anwendungen.