Skip to main content

ASAM OpenDRIVE Converter

A Lichtblick extension that converts ASAM OpenDRIVE road network maps into Foxglove SceneUpdate messages for 3D visualization.

Overview

This extension enables visualization of OpenDRIVE road networks stored in OMEGA PRIME MCAP recordings. It renders:

  • Lane surfaces — colored by lane type (driving, sidewalk, shoulder, etc.)
  • Lane boundaries — polyline edges between lanes
  • Road markings — colored center/edge lines with standard color mapping
  • Road objects — barriers, poles, buildings, vegetation [ODR §13]
  • Road signals — traffic signs and signals [ODR §14]

Geometry computation is handled by libOpenDRIVE (fork of pageldev/libOpenDRIVE), compiled to WebAssembly for in-browser execution.

Key Features

FeatureDescription
Full geometry supportLine, arc, spiral (clothoid), poly3, paramPoly3
Elevation profilesCubic polynomial elevation along reference line
Lane modelMulti-section lanes with cubic width polynomials
Road markingsType-filtered with standard color mapping
Road objectsBarriers, poles, buildings, vegetation
Road signalsTraffic signs and signals
WASM geometrylibOpenDRIVE compiled to WebAssembly
CachingIdentical maps are computed once and reused
Standards-basedCode comments reference ASAM OpenDRIVE V1.8.1 sections; geometry engine targets V1.4

Quick Start

# Install from source (requires emsdk for WASM build)
git clone --recurse-submodules https://github.com/lichtblick-suite/asam-opendrive-converter.git
cd asam-opendrive-converter
npm install
npm run build:wasm # compile C++ → WASM (one-time)
npm run build # bundle extension
npm run local-install

Then open Lichtblick, load an OMEGA PRIME MCAP file, and add a 3D panel. The OpenDRIVE map channel will be automatically converted and rendered.

Standards

This extension implements portions of: