Cartographer ist eine Open-Source-Bibliothek von Google zur Erstellung von 2D- und 3D-Karten in Echtzeit. Es verwendet SLAM-Technik die, zusätzlich zur reinen Kartierung, die Positionsbestimmung in einer unbekannten Umgebung ermöglicht. Das bedeutet, dass Umgebungsaktualisierungen verlässlich innerhalb definierter Zeitgrenzen verarbeitet werden, sobald sie von einem Sensor erfasst werden – im Rahmen der Echtzeitanforderungen des Systems [1]. Cartographer verwendet dabei die SLAM-Technik, die zusätzlich zur reinen Kartierung auch die Positionsbestimmung in einer unbekannten Umgebung ermöglicht. Mithilfe von LiDAR-Systemen („light detection and ranging“; deutsch: Lichterfassung und -messung) können gleichzeitig Karten der Umgebung erstellt sowie die globale Position und Ausrichtung der Sensoren bestimmt werden [2].
Die Echtzeitfähigkeit eines Betriebssystems bezieht sich auf dessen Reaktionsfähigkeit, die es dem System ermöglicht, alle anstehenden Aufgaben und Funktionen unter jeglichen Zu- und Umständen zuverlässig innerhalb einer vorgegebenen Zeitspanne erledigen zu können. „In Echtzeit“ ist also eine variable Größe, die sich an jeweiligen Anforderungen orientiert [3].
Anwendungsfelder
SLAM-Algorithmen finden in mobilen Robotersystemen Anwendung, beispielsweise bei Staubsaugerrobotern, da sie diesen ermöglichen, sich autonom in einer veränderlichen Umgebung zu bewegen. Ein weiteres Anwendungsgebiet ist das autonome Fahren, bei dem das Generieren einer Umgebungskarte in Echtzeit genutzt wird. Cartographer findet auch in der Innenraumnavigation Verwendung. Ein konkretes Anwendungsbeispiel findet sich im Deutschen Museum in München. Dort wurde das System genutzt, um einen Gebäudeplan zu erstellen [2].
Lizenz
Cartographer unterliegt der Apache 2.0 Lizenz. Das bedeutet, dass die Software frei genutzt werden kann.
Betriebssysteme und Programmiersprache
Cartographer ist in der Programmiersprache C++ entwickelt und verwendet CMake für den Bau und die Verwaltung des Codes. Einstellungen werden über einfache Skriptsprachen wie Starlark oder Lua vorgenommen. Zudem unterstützt Cartographer das Robot Operation System (ROS), allerdings wird das System nicht mehr aktiv gewartet und auch der ROS-Zweig wird nur noch begrenzt gepflegt [1].
Erforderliche Kenntnisse
Programmierkenntnisse in den unterstützten Programmiersprachen sind ebenso nötig wie Erfahrung im Umgang mit ROS. Außerdem ist ein grundlegendes Verständnis von SLAM und SLAM-Algorithmen sinnvoll. Auch Erfahrung mit Lidar-Sensoren ist von Vorteil.
Vorteile
Präzise Lokalisierung auch ohne Odometrie-Informationen
Nachträgliche Korrektur bei Rückkehr zu bekannten Kartenausschnitten („Loop-Closing“)
Odometrie ist eine Methode der Lageschätzung, also der Schätzung von Position und Orientierung eines mobilen Systems, die mit Hilfe dessen Antriebs. Wissen um Radabstand, Radumfänge und Motorumdrehungen wird genutzt, um die Bewegungsänderung eines Roboters seit der letzten Bewegungsänderung zu berechnen [4].
Nachteile
Komplexe Konfiguration: Initiale Inbetriebnahme und Parametrierung schwierig
Benötigt teure Sensorik (2D/3D LiDAR und IMU)
Sehr ressourcen-intensiv (hoher Rechenaufwand und Speicheranforderungen)
Abweichung in der Höhenschätzung bei 3D-Anwendungen („Z-Drift“)
Referenzen
[1] GitHub: https://github.com/cartographer-project/cartographer
[2] R. Menge-Sonnentag. (2016, Oktober 6). Google veröffentlicht Cartographer zum Erstellen von Karten mit Robotern. [Online]. Verfügbar: https://www.heise.de/news/Google-veroeffentlicht-Cartographer-zum-Erstellen-von-Karten-mit-Robotern-3341743.html. [Abruf Juli 21, 2025].
[3] P. Scholz, „Echtzeit, Echtzeitsysteme, Echtzeitbetriebssysteme“, In: Softwareentwicklung eingebetteter Systeme. Berlin/Heidelberg: Springer Verlag, 2005, S. 39-73. [Online]. Verfügbar: https://link.springer.com/chapter/10.1007/3-540-27522-3_3. [Abruf Juli 21, 2025].
[4] TU Dresden. Odometrie. [Online]. Verfügbar: https://robolab.inf.tu-dresden.de/spring/task/odometry/. [Abruf Juli 21, 2025].

