3D-Karten Meißen
Stand: 11.11.2026

Diese Maßnahme wird mitfinanziert mit Steuermitteln auf Grundlage des vom Sächsischen Landtag beschlossenen Haushaltes.

3D-Karten Meißen

Eine mögliche Pipeline zur Erstellung einer Referenzkarte für die autonome Fahrzeuglokalisierung

VortragFranziskus Mendt
Format11 Abschnitte · 15 Minuten
KontextHTW Dresden / Mechlab
Stand11.11.2026

Öffentliche Informationsfassung. Erläuternde Grafiken wurden mit KI-Unterstützung erstellt und sind entsprechend gekennzeichnet.

Ziel und Ausgangspunkt

Von LiDAR-Messdaten zur Referenzkarte

01 / 11

Von lokalen LiDAR-Messdaten zur georeferenzierten Referenzkarte für die autonome Fahrzeuglokalisierung – am Beispiel von Meißen.

Ausschnitt der Gebäudestrukturen aus Geodaten des Land Sachsen
Ausschnitt der Gebäudestrukturen aus Geodaten des Land SachsenDatengrundlage: GeoSN, dl-de/by-2-0, Datenquelle. Bearbeitet und visualisiert durch Mechlab.

Quelle: GeoSN – Digitale 3D-Stadtmodelle

Ergbnis - Ausschnitt der georeferenzierten 3D Punktwolkenkarte
Ergbnis - Ausschnitt der georeferenzierten 3D PunktwolkenkarteDatengrundlage: GeoSN, dl-de/by-2-0, Datenquelle. Bearbeitet und visualisiert durch Mechlab; mit eigenen LiDAR-Daten zusammengeführt.

Quelle: Mechlab

Vorplanung einer Beispielroute

Vorplanung der Route

02 / 11

Eine beispielhafte Route in Meißen, auf der später ein autonomes Fahrzeug selbstständig navigieren soll.

Animation der Vorplanung · Route 1 · ca. 20 Sekunden. Der Verlauf zeigt die geplante Strecke.
Animation der Vorplanung · Route 1 · ca. 20 Sekunden. Der Verlauf zeigt die geplante Strecke.Kartengrundlage: © OpenStreetMap-Mitwirkende, ODbL. Animation: Projektmaterial; MP4 in GIF umgewandelt.

Messgrundlagen

Ausgangspunkt: ein LiDAR und das Ouster-SDK

03 / 11

Warum ein einzelner LiDAR?

Der Ouster OS1-64 rev7 erfasst die Zielumgebung schnell als 3D-Punktwolken.
Das Ouster-SDK bietet einen unkompliziert nutzbaren SLAM-Algorithmus zum Aufbau einer zusammenhängenden Karte.

Was liefert dieser Messaufbau?

LiDAR-Messdaten im lokalen Koordinatensystem.
Keine synchronisierten Kamerabilder und keine direkt zugeordneten Geokoordinaten.

Scanner und verwendeter Messmodus

Ouster OS1-64 Rev7 · Eigene Abbildung
Ouster OS1-64 Rev7 · Eigene AbbildungProjektabbildung / Bildschirmaufnahme: Mechlab; Veröffentlichung durch den Urheber freigegeben.

Ouster OS1-64 Rev7

Eigenschaft Herstellerangabe laut Datenblatt
Wellenlänge 865nm
Reichweite bei 80% lambertsche Reflexion 170 m bei >90 % Detektionswahrscheinlichkeit und 100 klx Sonnenlicht; Modus 1024 × 10 Hz
Reichweite bei 10% lambertsche Reflexion 90 m unter denselben Bedingungen
Mindestreichweite 0,0 m; (optional 0,3 m, Standardeinstellung 0,5 m)
Vertikale Auflösung 64 Kanäle
Horizontale Auflösung 512, 1024 oder 2048 Spalten, konfigurierbar
Rotationsrate 10 oder 20 Hz, konfigurierbar
Punkte/s ~2.6 Mio
Sichtfeld Horizontal 360°; vertikal 42,4° ± 1,0° (nominal −21,2° bis +21,2°)
Winkelabtastgenauigkeit Vertikal ±0,01°; horizontal ±0,01°
Entfernungsauflösung 0,1 cm; im Low-Data-Rate-Profil 0,8 cm
Rückläufe pro Messung Bis zu 2
Reihenfolge der Rückläufe Stärkster bis schwächster; fernster bis nächster; nächster bis fernster

Quelle: Ouster OS1 Rev7 – Datenblatt, Stand 02/2025, „Optical Performance“.

Verwendeter Messmodus: mechanisch rotierender OS1-64 Rev7 mit 64 Kanälen, 2048 Spalten, 10 Hz und Single Return (2048x10). Das entspricht 131.072 Messplätzen pro Scan beziehungsweise ca. 1,31 Mio./s. Der horizontale Winkelabstand beträgt ca. 0,176°. Die Reichweitenangaben der Tabelle gelten für den spezifizierten 10-Hz-Testmodus.

Winkelabtastgenauigkeit und Entfernungsauflösung beschreiben nicht den Strahlabstand oder die absolute Messgenauigkeit. Die konkreten Strahlabstände ergeben sich aus der Sensorkalibrierung und dem Betriebsmodus.

Ergänzende Orientierung: Eine separat mit dem iPhone 17 Pro aufgezeichnete GPX-Spur dient als grobe räumliche Referenz.

Einordnung: Eine gezielte Optimierung des SDK-SLAM auf Ouster-Sensoren wird vermutet; sie ist hier nicht nachgewiesen.

Einblick in den PCAP-Datensatz · Fahrt B

Visualisierung des Ouster-PCAP-Datensatzes · Fahrt B · Quelle: MechlabProjektabbildung / Bildschirmaufnahme: Mechlab; Veröffentlichung durch den Urheber freigegeben.
2D-Verlauf der iPhone-GPX vom 28.08.2026 · beide Messabschnitte · Quelle: Mechlab
2D-Verlauf der iPhone-GPX vom 28.08.2026 · beide Messabschnitte · Quelle: MechlabMit KI-Unterstützung (OpenAI Codex) programmiert und mit Python/Matplotlib gezeichnet; keine KI-Bildsynthese. Diagramm aus GPX-Messdaten; Koordinaten nicht durch KI erfunden.
Begleitaufnahme der Messfahrt B · Ausschnitt 00:10–01:15 · Personen und Fahrzeuge mit YOLO11n erkannt und weichgezeichnet · Quelle: MechlabProjektabbildung / Bildschirmaufnahme: Mechlab; Veröffentlichung durch den Urheber freigegeben.
Pipeline

Von der Messung zur Referenzkarte

04 / 11

Wie wird aus der lokalen LiDAR-Messung eine Referenzkarte zur Navigation?

  1. Ouster-SDK-SLAMLiDAR-Messdaten zur lokalen Karte verarbeiten; Abschnitte begrenzen den Drift
  2. Registrierung an ALSAbschnitte räumlich ausrichten und georeferenzieren
  3. KartenaufbereitungHöhenbezug anpassen und Karte kacheln
  4. Koordinaten und ExportLage und Höhe für ROS bereitstellen
  5. LokalisierungsversuchLiDAR-Scans gegen die Referenzkarte registrieren
  6. Ergebnis prüfenFahrspur ausgeben und Lauf bewerten
Pipeline · Ouster-SDK-SLAM

Ouster-SLAM: von Messdaten zur lokalen Punktwolkenkarte

05 / 11

Das Ouster-SDK schätzt die Sensorbewegung und fügt die LiDAR-Scans zu einer lokalen Punktwolkenkarte zusammen.

Aus den Ouster-Messdaten der Fahrt B berechnete SLAM-Punktwolke vor der Registrierung an der ALS-Referenz · Quelle: Mechlab
Aus den Ouster-Messdaten der Fahrt B berechnete SLAM-Punktwolke vor der Registrierung an der ALS-Referenz · Quelle: MechlabProjektabbildung / Bildschirmaufnahme: Mechlab; Veröffentlichung durch den Urheber freigegeben.

Wichtige SLAM- und Exportparameter

Basis: export_slam_map_meissen.yaml und der abschnittsweise Exportaufruf. Die Filter des Exportskripts sind von den Parametern der SLAM-Engine zu unterscheiden.

Parameter Wert Funktion Wirkung / Abwägung
--split-chunks + --chunk-duration aktiviert + 1m Berechnet aufeinanderfolgende 1-Minuten-Abschnitte jeweils mit neuer SLAM-Engine. Begrenzt den über eine ganze Fahrt auflaufenden Drift; die Abschnitte müssen anschließend räumlich zusammengeführt werden.
voxel_size 1.0 m Voxelgröße der internen SLAM-Karte. Steuert Detailgrad und Rechenaufwand des Trackings; legt nicht die endgültige Exportpunktdichte fest.
deskew_method imu_deskew IMU-basierte Bewegungskompensation innerhalb eines Scans. Reduziert Bewegungsverzerrungen, beispielsweise an Fassaden während der Fahrt.
deadzone_radius 2.3 m Exportfilter für Punkte im Nahbereich um den Sensor. Entfernt etwa Fahrzeug- oder Dachpunkte; nahe Umgebungsstrukturen gehen ebenfalls verloren.
min_z −1.5 m Untere Höhenschwelle im lokalen SLAM-Kartenkoordinatensystem. Schneidet tiefere Punkte aus dem Export; ist keine Bodenklassifikation und keine globale Höhenangabe.
static_voxel_size 0.4 m Rastergröße der Persistenzfilter beim Export. Größere Zellen sammeln leichter genug Beobachtungen, können aber benachbarte Strukturen vermischen.
min_observations 40 Mindestens 40 Kartenpunkte je Persistenzvoxel. Entfernt schwach belegte Bereiche; kann auch dünne feste Strukturen ausdünnen. Gemeint sind Punkte, nicht Scans.
min_scan_observations 3 Ein Persistenzvoxel muss in mindestens drei unterschiedlichen Scans vorkommen. Unterdrückt einmalige Beobachtungen; eine vollständige Entfernung bewegter Objekte ist damit nicht garantiert.

Ergebnis: erste zwei Teilabschnitte (0–2 Minuten)

Punktwolke manuell bereinigt um:

  • Ausreißer
  • stehende und fahrende Fahrzeuge
  • Passanten
Bearbeitete Punktwolke der ersten beiden 1-Minuten-Teilabschnitte von Fahrt B · ohne Passanten sowie ohne fahrende oder parkende Fahrzeuge · Quelle: Mechlab
Bearbeitete Punktwolke der ersten beiden 1-Minuten-Teilabschnitte von Fahrt B · ohne Passanten sowie ohne fahrende oder parkende Fahrzeuge · Quelle: MechlabProjektabbildung / Bildschirmaufnahme: Mechlab; Veröffentlichung durch den Urheber freigegeben.

Quellen: lokale Exportkonfiguration und export_slam_map.py; Ouster-SDK – Mapping-API.

Pipeline · Georeferenzierung

Registrierung an ALS

06 / 11

Als globale Referenz verwenden wir die georeferenzierten ALS-Punktwolken des GeoSN aus dem sächsischen Geodatenportal. ALS steht für Airborne Laser Scanning: Die Umgebung wurde aus der Luft mit einem Laserscanner erfasst.

Die lokal berechneten Ouster-SLAM-Abschnitte werden in CloudCompare an gemeinsamen Gelände- und Gebäudestrukturen der ALS-Referenz ausgerichtet. Dadurch erhalten die Sensorpunktwolken einen globalen Lage- und Höhenbezug.

Ausgangspunkt: georeferenzierte ALS-Referenz

ALS-Punktwolke als Ausgangsreferenz für die Registrierung · Datengrundlage: GeoSN · Darstellung: Mechlab
ALS-Punktwolke als Ausgangsreferenz für die Registrierung · Datengrundlage: GeoSN · Darstellung: MechlabDatengrundlage: GeoSN, dl-de/by-2-0, Datenquelle. Bearbeitet und visualisiert durch Mechlab.

Ergebnis: registrierte Ouster-Punktwolke

Ergebnis der Registrierung: Ouster-SLAM-Ausschnitt der Fahrt B, 0–2 Minuten, überlagert mit der ALS-Referenz · Ergebnisdarstellung: Mechlab · ALS-Datengrundlage: GeoSN
Ergebnis der Registrierung: Ouster-SLAM-Ausschnitt der Fahrt B, 0–2 Minuten, überlagert mit der ALS-Referenz · Ergebnisdarstellung: Mechlab · ALS-Datengrundlage: GeoSNDatengrundlage: GeoSN, dl-de/by-2-0, Datenquelle. Bearbeitet und visualisiert durch Mechlab; mit eigenen LiDAR-Daten zusammengeführt.

Wie genau ist die ALS-Referenz?

Eigenschaft Angabe / Einordnung
Lagegenauigkeit der ALS-Punkte Laut GeoSN bis zu ±0,30 m
Höhengenauigkeit der ALS-Punkte Laut GeoSN bis zu ±0,15 m
Statistische Einordnung Beide Genauigkeitsangaben bei 95 % Sicherheitswahrscheinlichkeit (2 σ)
Lagebezug ETRS89 / UTM Zone 33N · EPSG:25833
Höhenbezug DHHN2016 · Normalhöhen · EPSG:7837
Aktualität der lokalen ALS-Kacheln 27.11.2024 laut mitgelieferten Aktualitätsdateien

Damit liegt die amtliche Referenz im Dezimeterbereich. Die Genauigkeit der registrierten Ouster-Karte muss zusätzlich geprüft werden: Registrierungsfehler und verbleibender SLAM-Drift kommen hinzu.

Quellen: GeoSN – Fachliche Details zu Laserscandaten, Offene Geodaten Sachsen – Downloadbereich und lokale Kachelmetadaten unter ALS_maps.

Kartenaufbereitung

Lage und Höhe müssen zusammenpassen

07 / 11

Quelle

ETRS89 / UTM 33N · EPSG:25833
DHHN2016-Höhen · EPSG:7837

Ziel

MGRS 33UUS · lokale XY-Werte
Absolute ellipsoidische Höhen (WGS84)

Normalhöhe und ellipsoidische Höhe

Zusammenhang zwischen Normalhöhe H, ellipsoidischer Höhe h und Höhenanomalie ζ · lokal vereinfachte eigene Skizze
Zusammenhang zwischen Normalhöhe H, ellipsoidischer Höhe h und Höhenanomalie ζ · lokal vereinfachte eigene SkizzeMit KI-Unterstützung (OpenAI Codex) programmiert und mit Python/Matplotlib gezeichnet; keine KI-Bildsynthese. Schematische Darstellung mit synthetischen Daten.
Umrechnung eines Beispielpunkts: h = H + ζ · angenommene Normalhöhe 110,0 m · eigene Skizze
Umrechnung eines Beispielpunkts: h = H + ζ · angenommene Normalhöhe 110,0 m · eigene SkizzeMit KI-Unterstützung (OpenAI Codex) programmiert und mit Python/Matplotlib gezeichnet; keine KI-Bildsynthese. Schematische Darstellung mit synthetischen Daten.

Die Normalhöhe H bezieht sich auf DHHN2016. Die ellipsoidische Höhe h verwendet das Referenzellipsoid. GCG2016 liefert die ortsabhängige Höhenanomalie ζ für die Umrechnung: h = H + ζ.

Was bringt die Umrechnung?

  • X und Y werden kleiner: Ein fester Kartenursprung wird abgezogen. Das verringert Rundungsfehler bei der Verarbeitung mit Float32.
  • Der globale Bezug bleibt erhalten: Über den bekannten Ursprung können die ursprünglichen UTM-Koordinaten zurückgerechnet werden.
  • Z bekommt den passenden Höhenbezug: DHHN2016-Normalhöhen werden mithilfe von GCG2016 in ellipsoidische Höhen umgerechnet, damit Karte und GNSS vergleichbar sind.
+43,198 mMittlere Höhenkorrektur der aktuellen Karte durch GCG2016.
Datensatzbezogen; kein pauschaler Korrekturoffset.

Horizontaler Ursprung: E 300000 m / N 5600000 m. Von Z wird kein lokaler Ursprung abgezogen.

Ergebnisse und Lokalisierung

Die aktuelle Karte ist exportiert und gekachelt

08 / 11

13,2 Mio. Punkte

Aktueller Kartenexport vom 06.11.2026.
Punktzahl bei Konvertierung erhalten.

114 Kacheln

100 m Kantenlänge.
Kachelindex für die lokale Kartenwahl.

300 m Radius

Dokumentierter Loader-Standard.
Aktualisierung nach 50 m Bewegung.

Vorhanden: PCD, Projektionsdatei, Prüfbericht, Pipeline und Kachelindex.

Im Routenlauf zu prüfen: Kartenwechsel, Rechenzeit und Speicherbedarf.

Ergebnisse und Lokalisierung

NDT-Lokalisierung

09 / 11

Die aufgezeichneten LiDAR-Scans werden gegen die Referenzkarte lokalisiert.

Wie funktioniert NDT?

NDT = Normal Distributions Transform. Das Verfahren sucht die Position und Orientierung, bei der ein LiDAR-Scan zur Referenzkarte passt:

  1. Die Karte wird in räumliche Zellen (Voxel) unterteilt.
  2. In ausreichend besetzten Zellen beschreiben Mittelwert und Kovarianz die lokale Punktverteilung.
  3. Der gesamte Scan wird gemeinsam verschoben und gedreht, bis seine Punkte möglichst gut zu diesen Verteilungen passen.
Klassischer Punkt-zu-Punkt-ICP: Zuordnung zu benachbarten Kartenpunkten · eigene schematische 2D-Grafik
Klassischer Punkt-zu-Punkt-ICP: Zuordnung zu benachbarten Kartenpunkten · eigene schematische 2D-GrafikMit KI-Unterstützung (OpenAI Codex) programmiert und mit Python/Matplotlib gezeichnet; keine KI-Bildsynthese. Schematische Darstellung mit synthetischen Daten.
NDT: Scanpunkte werden gegen lokale Gauß-Verteilungen bewertet · eigene schematische 2D-Grafik
NDT: Scanpunkte werden gegen lokale Gauß-Verteilungen bewertet · eigene schematische 2D-GrafikMit KI-Unterstützung (OpenAI Codex) programmiert und mit Python/Matplotlib gezeichnet; keine KI-Bildsynthese. Schematische Darstellung mit synthetischen Daten.

Unterschied zu ICP und Vorteile

Klassischer Punkt-zu-Punkt-ICP Hier verwendetes NDT
Kartenrepräsentation Einzelne Punkte Lokale Gauß-Verteilungen in Voxeln
Optimierung Abstände zu zugeordneten Nachbarpunkten verkleinern Scanpunkte anhand der lokalen Verteilungen bewerten und Pose verbessern
Maßgeblicher Parameter Auswahl und Filterung der Punktpaare Unter anderem Größe der NDT-Voxel

Vorteile von NDT: vorberechenbare Kartenstatistik, Berücksichtigung lokaler Streuung und Flächenorientierung sowie analytische Ableitungen für die numerische Optimierung. NDT_OMP parallelisiert die Berechnung auf der CPU.

Für beide wichtig: Eine passende Startpose, genügend gemeinsame Struktur und geeignete Parameter. NDT ist nicht grundsätzlich schneller oder genauer als jedes ICP-Verfahren; beispielsweise verwendet Punkt-zu-Ebene-ICP ein anderes Fehlermaß als der hier gezeigte Punkt-zu-Punkt-ICP.

Grundlagen: PCL – NDT, PCL – ICP. Die Grafiken verwenden synthetische Daten und veranschaulichen das Prinzip; sie zeigen keinen gemessenen Vergleich.

Anwendung: Lokalisierung in Meißen

NDT-Lokalisierung · Route B · Bag-Rate 1,0 · Quelle: MechlabProjektabbildung / Bildschirmaufnahme: Mechlab; Veröffentlichung durch den Urheber freigegeben.
  • Verfahren: 3D-NDT in der Variante NDT_OMP, CPU / OpenMP; im aktuellen Parametersatz mit vier Threads und 2 m NDT-Voxelgröße.
  • Beobachtung: Laufende Positionsschätzung über einen längeren Fahrtabschnitt.
  • Nächste Auswertung: Positionsabweichungen, Ausfälle und Rechenzeiten quantifizieren.

Softwarequellen: ROS2-Lokalisierungsknoten · verwendete ROS2-NDT-Portierung · ursprüngliche Implementierung von Koide.

Ergebnisse und Lokalisierung

Eine NDT-Fahrspur liegt als GPX vor

10 / 11
NDT-Spur vom 10.11.2026 mit gepunkteter iPhone-Referenz darüber; ohne zeitliche Synchronisation, Achsen in lokaler metrischer Näherung
NDT-Spur vom 10.11.2026 mit gepunkteter iPhone-Referenz darüber; ohne zeitliche Synchronisation, Achsen in lokaler metrischer NäherungMit KI-Unterstützung (OpenAI Codex) programmiert und mit Python/Matplotlib gezeichnet; keine KI-Bildsynthese. Diagramm aus GPX-Messdaten; Koordinaten nicht durch KI erfunden.

NDT → WGS84 → GPX

Eine exportierte NDT-Trajektorie vom 10.11.2026 liegt vor.

Vergleichsbasis

Die iPhone-Spur enthält beide Messfahrten vom 28.08.2026 und liegt gepunktet über der durchgezogenen NDT-Spur.

Für die Auswertung erforderlich

Passende Zeitbasis, Sensorposition und Höhenbezug.

Interaktiver Vergleich der Ergebnisse

Kartenvergleich in einem eigenen Fenster öffnen

Die Spuren werden räumlich überlagert. Eine zeitliche Synchronisation oder quantitative Genauigkeitsbewertung erfolgt hier nicht.

Bewertung und nächste Schritte

Was ist bereits belegt – was noch offen?

11 / 11
Baustein Nachweis / Status
Georeferenzierter PCD-Export Vorhanden Dateien und Prüfbericht
Kachelaufteilung Vorhanden Index und Kacheldateien
NDT über längere Abschnitte Beobachtet Projektbeobachtung bei Bag-Rate 1,0
Globale Positionsgenauigkeit Offen Quantitative, unabhängige Auswertung
Quantitativer Gesamtroutentest Offen Ausfälle und Verarbeitungszeiten auswerten