GridMap [1] ist eine C++-Bibliothek, die ursprünglich an der ETH Zürich entwickelt wurde. Sie dient der Verwaltung zweidimensionaler Rasterkarten mit mehreren Datenebenen und wurde zur Kartierung mit mobilen Robotern entwickelt. Dabei können Daten wie Höhe, Varianz, Farbe, Reibungskoeffizienz, Trittsicherheit, Oberflächennormale, Befahrbarkeit, usw. gespeichert werden. GridMap ist für die Navigation in unwegsamem Gelände geeignet und bietet insbesondere für mobile Roboter große Vorteile. Sensordaten können durch integrierte Filterketten schnell verarbeitet werden, sodass die Umgebung auch während der Bewegung zuverlässig erfasst bleibt. Die Karte passt sich dabei dynamisch an: Neue Bereiche werden nahtlos eingetragen, während alte Regionen vergessen werden, ohne dass umfangreiche Datenkopien nötig sind. In Kombination mit den zahlreichen Schnittstellen und Konvertierungsmöglichkeiten macht dies GridMap zu einem zentralen Werkzeug für die Echtzeit-Navigation und Wahrnehmung in der Robotik.
Die Arbeit an GridMap wird im Rahmen einer Forschung mit dem vierbeinigen Laufroboter ANYmal durchgeführt [2].
ROS-Schnittstelle
GridMap-Karten können direkt aus ROS-Nachrichtentypen wie PointCloud2, OccupancyGrid, GridCells sowie einer benutzerdefinierten GridMap-Nachricht konvertiert werden. Konvertierungspakete bieten Kompatibilität mit costmap_2d und OctoMap Datentypen.
OpenCV
Rasterkarten können nahtlos von und in OpenCV-Bildtypen konvertiert werden, um die von OpenCV bereitgestellten Werkzeuge zu nutzen.
Anwendungsfelder
Mobile Bodenroboter sind in der Regel für die autonome Bewegung in einem ebenen Gelände entwickelt. Ihre Algorithmen zur Kartierung, Planung und Steuerung erfolgen deshalb meist zweidimensional. Für die Navigation in einem unwegsamen Gelände ist eine Erweiterung dieser Algorithmen auf alle drei Dimensionen notwendig. Ein häufig genutzter Ansatz ist hierfür das Erstellen einer Höhenkarte der Umgebung. Diese Höhenkarten werden der Einfachheit halber meist als Gitterkarten gespeichert und damit in eine 2,5-dimensionale Darstellung überführt [3]. Navigationssoftware wie GridMap kann dies leisten und ist damit für die autonome Bewegung eines mobilen Roboters in einer veränderlichen Umgebung wichtig.
Lizenz
Der Quellcode von GridMap unterliegt der BSD 3-clause Lizenz.
Betriebssysteme und Programmiersprachen
GridMap nutzt überwiegend C++ und das Robot Operating System (ROS).
Erforderliche Kenntnisse
Die Anwendung von GridMap setzt Kenntnisse in der Programmiersprache C++ sowie dem Robot Operating System (ROS) voraus.
Vorteile:
2,5D-Höhen-Informationen über Umgebung erlaubt
Einsatz außerhalb strukturierter Umgebungen
Bietet verschiedene Filteroptionen wie z.B. Befahrbarkeit und Kanten
Nachteile:
Teure 3D LiDAR Sensorik notwendig
Nur 2,5D – somit keine Brücken modellierbar
Referenzen
[1] GridMap auf GitHub: https://github.com/ANYbotics/grid_map
[2] Zur Forschung mit ANYmal und GridMap: https://www.anymal-research.org/
[3] P. Fankhauser and M. Hutter. (2016, Januar). A Universal Grid Map Library: Implementation and Use Case for Rough Terrain Navigation. [Online]. Verfügbar: https://www.researchgate.net/publication/284415855_A_Universal_Grid_Map_Library_Implementation_and_Use_Case_for_Rough_Terrain_Navigation. (September 4, 2025).

