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) |
|
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_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