Autonome mobile Roboter (AMR) werden immer beliebter, auch dank des zunehmenden Funktionsumfangs, weil insbesondere Hersteller wie Analog Devices immer intelligentere Sensoren und Steuerungssysteme zur Verbesserung der Navigation entwickeln. In diesem Artikel erfahren Sie mehr über die Verwendung von ROS2-Paket, ADI-ToF-Sensor, ADI-Trägheitsmesser und NVIDIA Jetson AGX Orin-Entwicklerkit für die AMR-Navigation von Robotern, die mit ROS2 ausgestattet sind.
Über
- Diese Site richtet sich an Entwickler von Roboterlösungen, die mithilfe der ROS2-Pakete, des ToF-Sensors EVAL-ADTF3175D-NXZ, des Trägheitsmessers ADIS16470 und des Entwicklerkits NVIDIA Jetson AGX Orin die autonome mobile Roboternavigation für ROS2-fähige Roboter implementieren möchten.
- Sie stellt Informationen zu Hardware- und Softwareanforderungen, Einrichtungsanleitungen für individuelle Komponenten, Anleitungen zur Anbindung von Sensoren mit dem AGX Orin-Kit sowie Tutorials zur Roboternavigation mit RTAB-Map und Sensorfusion bereit.
Inhaltsverzeichnis
- Unter Systemüberblick für AMR wird das Systemblockdiagramm in aller Kürze vorgestellt. Dort wird gezeigt, wie die verschiedenen Komponenten miteinander verbunden sind.
- Bevor die gesamte Navigationspipeline ausgeführt wird, müssen die Voraussetzungen für AGX Orin-Kit, das Modul EVAL-ADTF3175D-NXZ und die IMU ADIS16470 geschaffen werden. Informationen zum ROS2-Setup und zu den erforderlichen abhängigen Softwarepaketen sind unter Software requirements zu finden.
- Damit Fehler wegen Softwareabhängigkeiten auch künftig vermieden werden, ist der folgende Schritt sorgfältig umzusetzen. Setup for ToF beschreibt das Standardverfahren zum Flashen eines Images für EVAL-ADTF3175D-NXZ.
- Zum Verbinden des Trägheitsmessers ADIS16470 über USB in AGX Orin wird eine zusätzliche Verbindung benötigt. Setup for IMU enthält die spezifischen Setupanleitungen für den ADIS16470.
- Damit die Anleitung unter Interfacing Tof With AGX Orin befolgt werden kann, muss in AGX Orin auf IR- und Tiefenbilderdaten des EVAL-ADTF3175D-NXZ zugegriffen werden können. Um die Integration in ROS2-Softwarestacks zu vereinfachen, werden diese Daten als ROS2-Topics dargestellt.
- Entsprechend kann durch Befolgung der Anleitungen unter Interfacing Imu with AGX Orin in ROS2-Topics auf die IMU-Daten des ADIS16470 zugegriffen werden.
- Die Erstellung einer Karte der Umgebung ist für die autonome Navigation von AMR von entscheidender Bedeutung. In unserem Fall haben wir den bekannten RTAB-Map-Algorithmus verwendet, um aus den Daten des ToF-Sensors eine Karte zu erstellen. Die RTAB-Map-Bibliothek ist in Form von ROS2-Paketen verfügbar. Mit den Anleitungen unter Interfacing TOF With RTABMAP kann festgestellt werden, ob RTAB-Map nur mit dem Sensor EVAL-ADTF3175D-NXZ funktioniert.
- Navigation with TOF Tutorial on AMR und Sensor Fusion and Navigation with TOF Tutorial on AMR enthalten jeweils ein umfassendes Tutorial zur autonomen Navigation mit von EIC entwickelten AMR. Dieser AMR wird von AGX Orin gesteuert. Dabei waren die externen Sensoren EVAL-ADTF3175D-NXZ und ADIS16470 verbunden.
- Kunden mit selbstentwickelten AMR können den speziellen Leitfaden unter Working with NON-EIC AMR zur Integration ihres AMR mit dem in diesem Leitfaden erläuterten System verwenden. In diesem Abschnitt werden zudem Softwareänderungen erläutert, mit denen dieses System an die jeweiligen Anforderungen angepasst werden kann.
Systemüberblick
- Abbildung 1 zeigt ein High-Level-Systemblockdiagramm eines auf ToF basierenden AMR-Navigationssystems. Der gesamte Softwarestack wurde mit Robot Operating System (ROS) entwickelt. In unserem AMR diente das AGX Orin-Kit als Kernprozessor, auf dem alle ROS2 Humble-Knoten über Docker ausgeführt wurden Die Bewegung des AMR erfolgte gesteuert. Als externe Sensoren wurden EVAL-ADTF3175D-NXZ und ADIS16470 mit AGX Orin verbunden. Der EVAL-ADTF3175D-NXZ ist mit einer I.MX8-Karte ausgestattet, die Sensortreiber und ROS-Knotenpakete umfasst. Der Sensor ist über USB mit AGX Orin verbunden und veröffentlicht alle Topics im ROS1-Format.

Blockdiagramm des AMR-Navigationssystems
- Da das System in ROS2 entwickelt wurde, haben wir das Paket ros1 bridge in AGX Orin verwendet, um die ROS1-Topics von ToF nach ROS2 zu portieren. Weitere, für die Navigation verwendete ROS2 Humble-Knoten sind der RTAB-Map-Knoten, der ROBOT LOCALIZATION-Knoten, der NAV2-Knoten und der IMU-Treiberknoten, die im ROS2 Humble Docker-Container ausgeführt werden (siehe Abbildung oben).
- Bei von EIC entwickelten AMR wurde die grundlegende Motorsteuerung und Radodometrie über einen micro-ROS-Agenten abgewickelt. Auf Jetson AGX Orin wurde ein micro-ROS-Agent ausgeführt, der über die serielle Schnittstelle mit einem Mikrocontroller kommunizierte. Der Mikrocontroller sendet zudem das von Jetson stammende Steuersignal an den Motortreiber und das Feedback des Radencoders an Jetson. Dieses Setup ist nur für von EIC entwickelte AMR gültig. Bei jedem benutzerdefinierten AMR kann ein anderes Setup für die grundlegende Motorsteuerung und das Feedback des Radencoders erforderlich sein. Details enthält der betreffende Blog: Klicken Sie hier.
Hinweis: RTAB-Map verwendet externe Odometrie als Eingabedaten für den SLAM(Simultaneous Localization and Mapping)-Algorithmus. Bei von EIC entwickelten AMR wurde die Radodometrie als externe Odometriequelle genutzt. Wir haben die Sensorfusion eingesetzt, um die Odometrie zu verbessern, indem IMU-Daten unter Verwendung des ROBOT_LOCALIZATION (EKF)-Pakets mit Radodometrie kombiniert wurden.