Getting Started
Prerequisites
- Lichtblick (desktop or web)
- An MCAP file with an OpenDRIVE map channel (for example from OMEGA PRIME)
- Node.js 20+ and npm 10+ (for building from source)
- Emscripten SDK (for building the WASM module)
Installation
From Source
# Clone with submodules (includes libOpenDRIVE C++ library)
git clone --recurse-submodules https://github.com/lichtblick-suite/asam-opendrive-converter.git
cd asam-opendrive-converter
npm install
# Build WASM module (one-time, cached unless libOpenDRIVE changes)
npm run build:wasm
# Build the extension and install to local Lichtblick
npm run build
npm run local-install
Note:
npm run build:wasmrequiresemcmakein PATH. See Emscripten setup.
From Release
Download the .foxe file from the Releases page and install it via Lichtblick's extension manager.
Usage
- Open Lichtblick
- Load an MCAP file containing an OpenDRIVE map channel
- The channel schema must be
osi3.MapAsamOpenDrive
- The channel schema must be
- Add a 3D (Scene) panel to your layout
- The road network map renders automatically as a static overlay
Supported Data Sources
| Source | Format | Channel |
|---|---|---|
| OMEGA PRIME | MCAP + protobuf | map channel carrying osi3.MapAsamOpenDrive |
| Custom | MCAP + protobuf | Any channel decoded as osi3.MapAsamOpenDrive |
What Gets Rendered
The converter produces SceneUpdate messages with:
- Lane surfaces: triangle meshes colored by
e_laneType - Lane boundaries: line primitives at lane edges
- Road markings: filled polygon meshes with natural dash/gap patterns from libOpenDRIVE
- Road objects: triangle meshes for OpenDRIVE road objects
- Road signals: triangle meshes for OpenDRIVE signals
All entities use frame_id="global" (OpenDRIVE inertial frame = Foxglove world frame).