Maliput Backends
maliput API is designed to be backend-agnostic. This means that per sei it does not provide a road format. Instead, it provides a set of interfaces that a backend must implement, so the backend’s underlying format is hidden from the user.
The following backends are currently available:
Maliput Backend |
Underlying Road Format |
|---|---|
OpenDRIVE |
|
Lanelet2 (OSM-based) |
|
GeoPackage (Custom maliput schema) |
|
Custom |
|
Custom |
maliput_malidrive
maliput_malidrive is a backend that implements the maliput API for road networks which are described by the OpenDRIVE specification. The package provides several OpenDRIVE maps (maliput_malidrive/resources) as example, however any other OpenDRIVE map can be used.
The XODR parser is a standalone library that is used by maliput_malidrive to parse OpenDRIVE maps. For more information about the XODR parser, see the XODR parser README.
- Some characteristics:
Supports a large subset of the OpenDRIVE(v1.5) specification.
- Lane Geometry can compose:
- Ground geometry: line and constant curvature arc.
Supports piecewise defined geometries.
Lane width: cubic polynomials.
Elevations: cubic polynomials.
Superelevations: cubic polynomials.
Used map: Town07.xodr
Note
See Gallery section for more videos.
maliput_geopackage
maliput_geopackage is a backend that implements the maliput API for road networks stored in GeoPackage files. GeoPackage is an OGC standard format that uses SQLite as its container, providing spatial indexing, schema enforcement, and compatibility with GIS tools (QGIS, GDAL, etc.).
This backend relies on maliput_sparse for building the road geometry from sampled lane boundaries.
- Some characteristics:
Road data is stored in a single
.gpkgfile following a custom maliput schema.Lanes are described by boundary polylines that are linearly interpolated.
Compatible with standard GIS tooling for map creation and inspection.
maliput_osm
maliput_osm is a backend that implements the maliput API for the Lanelet2 specification. This format is also based on OpenStreetMap (OSM) data. The package provides several OSM maps (maliput_osm/resources) as example, however any other OSM map can be used.
- Some characteristics:
Supports a large subset of the OSM specification.
Lanes are described by a collection of polylines that are linearly interpolated.
maliput_multilane
maliput_multilane is a backend that implements the maliput API on top of a custom road format using YAML files. This backend is used for testing purposes only and it is an example of how to implement a backend with a really good support for a vast number of road geometries where the lane width remains constant.
- Some characteristics:
Custom YAML specification for defining roads.
- Lane Geometry can compose:
Ground geometry: line and constant curvature arc.
Lane width: constant.
Elevations: cubic polynomials.
Superelevations: cubic polynomials.
maliput_dragway
maliput_dragway is a backend that implements the maliput API with the most simple geometry: a flat straight surface on the ground. It is used for testing purposes only and it is an example of how to implement a backend.
- Some characteristics:
- Geometries:
Straight roads with N lanes
Cannot handle intersections