Nav2 ist der Nachfolger des ROS Navigation Stack und wurde basierend auf der Technologie autonomer Fahrzeuge für mobile Roboter optimiert. Es ermöglicht Robotern, sich durch komplexe Umgebungen zu bewegen und dabei vorgegebene Aufgaben zu erfüllen. Roboter können dabei nicht nur von Punkt A nach Punkt B navigieren, sondern auch Zwischenstationen anfahren und andere Aufgaben ausführen, wie z.B. Objekte verfolgen oder eine Fläche komplett abdecken [1].
Neben Funktionen wie Wahrnehmung, Planung, Steuerung, Lokalisierung und Visualisierung bietet Nav2 individuelles und intelligentes Navigationsverhalten durch die Verwendung von Behavior Trees [2].
Behavior Trees sind eine Methode zur Modellierung und Implementierung von Entscheidungslogik in autonomen Systemen, Robotern und Spielen. Komplexe Verhaltensweisen können damit strukturiert, gesteuert und koordiniert werden.
Anwendungsfelder
Nav2 eignet sich für die Nutzung von autonomen mobilen Robotern in der Logistik und Inspektion. Zudem kann es auch für Navigationsaufgaben genutzt werden, die für Haushaltsroboter oder andere autonom agierende Roboter benötigt werden, weshalb Nav2 für die Alltagsrobotik relevant ist.
Lizenz
Nav2 unterliegt der Apache 2.0-Lizenz und ist somit ohne Einschränkungen nutzbar.
Programmiersprachen und Betriebssystem
Nav2 unterstützt mehrere Programmiersprachen, darunter C++ und Python, und baut auf ROS 2 auf.
Erforderliche Kenntnisse
Für die Anwendung von Nav2 sind grundlegende bis fortgeschrittene Programmierkenntnisse nötig. Außerdem sollte der Umgang mit ROS 2 sowie allgemeine Kenntnisse zu Navigationssoftware und Behavior Trees vorhanden sein.
Vorteile
ROS 2 Architektur
Behavior Trees
Große Community
Große Modularität und Flexibilität
Nachteile
Neuplanen führt oft zu Problemen
aufwendiges Fine-Tuning
Referenzen
[1] Nav2 Dokumentation: https://docs.nav2.org/
[2] Nav2 Seite: https://nav2.org/
[3] Nav2 auf GitHub: https://github.com/ros-navigation/navigation2?tab=License-1-ov-file#readme