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 Backends

Maliput Backend

Underlying Road Format

maliput_malidrive

OpenDRIVE

maliput_osm

Lanelet2 (OSM-based)

maliput_multilane

Custom

maliput_dragway

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