No version for distro humble. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro jazzy. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.
No version for distro noetic. Known supported distros are highlighted in the buttons above.
No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.

maliput_malidrive package from maliput_malidrive repo


Package Summary

Tags No category tags.
Version 0.3.0
License BSD Clause 3
Build type AMENT_CMAKE

Repository Summary

Checkout URI
VCS Type git
VCS Version main
Last Updated 2024-05-14
CI status No Continuous Integration
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

maliput_malidrive backend

Additional Links

No additional links.


  • Andrew Best


No additional authors.

gcc Wheel Generation



maliput_malidrive package is a Maliput backend implementation. Its underlying format specification is based on OpenDRIVE format. Allowing the users to load a road network out of a XODR file description.

Please go to XODR Parser capabilities for further information about OpenDRIVE's parser.

Note: For full information about Maliput please visit Maliput Documentation.


maliput_malidrive provides several map resources at maliput_malidrive/resources. These resources are: - XODR files for describing different road networks using OpenDRIVE format specification. - YAML files for describing maliput's road network information of type: Range Value Rules, Discrete Value Rules, Traffic Lights, Phase Rings, Intersections, etc.

Resources are installed natively, so the users are able to use them for their own interest. In order to get the installation path check the environment variable: MALIPUT_MALIDRIVE_RESOURCE_ROOT.

API Documentation

Refer to Maliput Malidrive's Online API Documentation.


Getting Started page is a good place for starting to see Maliput's capabilities and how to use a Maliput backend for getting a road network.


Supported platforms

Ubuntu Focal Fossa 20.04 LTS.

Binary Installation on Ubuntu

See Installation Docs.

Source Installation on Ubuntu


sudo apt install python3-rosdep python3-colcon-common-extensions


  1. Create colcon workspace if you don't have one yet.
    mkdir colcon_ws/src -p

  1. Clone this repository in the src folder
    cd colcon_ws/src
    git clone

  1. Install package dependencies via rosdep
    export ROS_DISTRO=foxy

    rosdep update
    rosdep install -i -y --rosdistro $ROS_DISTRO --from-paths src

  1. Build the package
    colcon build --packages-up-to maliput_malidrive

**Note**: To build documentation a `-BUILD_DOCS` cmake flag is required:
    colcon build --packages-select maliput_malidrive --cmake-args " -DBUILD_DOCS=On"

More info at [Building Documentation](

For further info refer to Source Installation on Ubuntu

For development

It is recommended to follow the guidelines for setting up a development workspace as described here.


Please see CONTRIBUTING page.




Changelog for package maliput_malidrive

0.3.0 (2024-04-29)

  • Flags spiral support. (#279)
  • Spiral Lane integration (#277)
  • Adds bazel version information to presubmit.yml file. (#275)
  • Add curbs to the builder. (#274)

  • Contributors: Agustin Alba Chicar, Franco Cipollone

0.2.1 (2024-02-02)

  • [bazel] Guarantee shared library creation for the plugin (#269)
  • Enables regression testing in bazel. (#246)

0.2.0 (2024-01-05)

  • [xodr] SmallTownRoads.xodr (#266)
  • [applications] xodr_to_obj (#259)
  • [infra] commented instructions for development with local maliput/registries (#263)
  • [infra] use the REAL bazel central registry (#264)
  • Adds spiral geometry parsing capabilities (#261)
  • Updates ros-tooling version to avoid error with dependency. (#256)
  • Replaces drake API by maliput new API. (#244)
  • Uses try_vcs_checkout for the branching scheme in bazel build. (#253)
  • Adds vcstool and pip to bazel-zen docker image. (#254)
  • Adds try_vcs_checkout to wheel_generation workflow. (#252)
  • Adds -O2 flag to bazel build. (#255)
  • Adds periodic wheel generation.(once a week) (#251)
  • Fixes bazel version not being correctly set. (#249)
  • Adds workflow for manylinux wheel creation. (#248)
  • Use compare methods instead of test_utilities\' . (#243)
  • Removes maliput_drake dependency (#240)
  • Decompose bazel superlibrary (#241)
  • Bazel integration and utility tests (#238)
  • Removes fmt dependency (#239)
  • Bazel module (#237)
  • Containers for local devcontainer and CI workflows (#235)
  • Matches with change in logger format. (#232)
  • Adds missing gflags dependency to package. (#233)
  • Contributors: Agustin Alba Chicar, Daniel Stonier, Franco Cipollone

0.1.4 (2022-12-13)

  • Provides default parameters for the RoadNetworkLoader. (#231)
  • Uses default ManualPhaseProvider implementation. (#230)
  • Removes OpenRangeValidator and use maliput\'s instead. (#229)
  • Updates triage workflow. (#228)
  • Contributors: Franco Cipollone

0.1.3 (2022-09-14)

  • Matches with changes in Maliput: Lane::ToLanePosition. (#227)
  • Adds triage workflow. (#225)
  • Improves README. (#224)
  • Contributors: Franco Cipollone

0.1.2 (2022-07-01)

  • Fixes environment hooks. (#223)
  • Contributors: Franco Cipollone

0.1.1 (2022-06-16)

  • Standardizes CFlags configuration. (#222)
  • Suppresses old-rule-api-related deprecation warnings.
  • Fixes include folder installation.
  • Contributors: Franco Cipollone

0.1.0 (2022-06-13)

  • Use <doc_depend> for ament_cmake_doxygen dependency (#217)
  • Uses ros-action-ci in build.yaml workflow. (#218)
  • Moves package to root (#216)
  • Updates license. (#215)
  • Uses ament_export_targets. (#214)
  • Removes dashing support. (#213)
  • Adds the RoadGeometry to the IntersectionBook construction points. (#211)
  • Modifies library dependancies from utilities to utility (#210)
  • Renames PhaseBasedRightOfWayDiscreteValueRuleStateProvider class (#209)
  • Merge pull request #208 from maliput/voldivh/value_range_method_to_state Changed values() and ranges() method from Rules to states()
  • [FEAT]: Changed values() and ranges() method from Rules to states()
  • Adds LoopRoadPedestrianCrosswalk xodr and yaml. (#207)
  • Fixes RoWR zone in SingleRoadPedestrianCrosswalk.yaml file. (#206)
  • Adds missing SingleRoadPedestrianCrosswalk.yaml. (#205)
  • Adds XODR and YAML to describe crosswalk intersection (#203)
  • Creates PhaseProviderBuilder functor. (#202)
  • Adds BUILD_DOCS flag as opt-in flag. (#204)
  • Uses PhaseRingBook loader for new rule api. (#200)
  • Supports loading rules via RuleRegistry + new RoadRulebook format. (#198)
  • Fixes typo in README (#197)
  • Adds workflow_dispatch option to scan_build and clan runs. (#196)
  • Adds CI badges (#195)
  • Improves the README adding info about OpenDRIVE specs coverage. (#194)
  • Replaces push by workflow_dispatch event in gcc build. (#192)
  • Improves standard_strictness_policy flag\'s documentation. (#189)
  • Exposes RoadNetwork configuration builder keys. (#188)
  • Pairs with maliput::plugin::RoadNetworkLoader functor change. (#186)
  • Adds max_linear_tolerance parameter: linear tolerance as a range (#182)
  • Improves use of maliput plugin architecture. (#181)
  • Removes RoadNetworkConfiguration-based load method. (#177)
  • Use maliput drake (#178)
  • Fixes help message for the xodr apps. (#180)
  • Adds ToRoadPosition query test. (#175)
  • Fixes bug at ToRoadPosition query. (#174)
  • Solves CMP0076 cmake warning related to log_level_flag target. (#167)
  • Reduces integrator\'s maximum_step_size to half of scale_length. (#172)
  • Documents maliput_malidrive xodr apps. (#170)
  • Fixes doxygen format at docstring. (#171)
  • Reduce epsilon value in lane\'s s_range_validation. (#169)
  • Enable doxygen verification. (#168)
  • Removes RoadGeometryBuilderBase in favor of less (unnecessary) abstraction. (#166)
  • Improves ToRoadPosition query. (#165)
  • Unify RoadNetworkBuilderBase with its implementation. (#164)
  • Remove InertialToLaneMappingConfig. (#163)
  • Removes from the installation files that (#162) should not be installed anymore. Installed header files for maliput_malidrive consumers, like malidrive was, are no longer needed.
  • xodr_extract app: Generates XODR file from another XODR\'s roads. (#154)
  • Improves throw message: Print range of tolerances evaluated (#157)
  • Adjusts integrators accuracy. (#152)
  • xodr_query app: Adds GetGeometries command. (#151)
  • Relax G1 contiguity for non drivable lanes (#149)
  • Includes Town01-07 maps. (#145)
  • RoadNetwork configuration as string-to-string map (#143)
  • Supports lane-width description with negative value (#140)
  • Tolerance selection: Improve logging and fix bug. (#138)
  • Set up linker properly when using clang in CI. (#127)
  • Disables extensive tests on tsan builds. (#134)
  • Solves warnings while clang build. (#129)
  • Improves cmake coding for testing. (#132)
  • Removes repeated cmake flags settings (#131)
  • Fixes throw when p value from integrator is negative (#124)
  • Fix some warnings related to unnecessary std::move() calls. (#126)
  • Increases kMaxToleranceSelectionRounds to 24. (#125) Updates kMaxToleranceSelectionRounds constant from 20 to 24 to guarantee a tolerance between 0.05 and 0.50 when automatic tolerance selection is enabled.
  • Discards tiny geometries (#121)
  • Discards function descriptions smaller than constants::kStrictTolerance. (#118)
  • Removes ament_target_dependencies from libraries. (#122)
  • Allows functions with NaN values only when they are discardable. (#116)
  • Piecwise GroundCurve: Use epsilon instead of tolerance at range validation. (#119)
  • Fixes bugs when creating LaneOffset and LaneWidth. (#115)
  • Functions starting at the very end of the road are discarded. (#114)
  • Enable foxy (#113)
  • Relaxes epsilon when building piece-wise-defined functions. (#112)
  • Parser: Allows function descriptions sharing same start point. (#111)
  • Allows lane links inconsistency when semantic errors are allowed. (#102)
  • Improves some throw messages. (#103)
  • Avoids error when logging an XML node that has curly braces. (#101)
  • Fixes body test style in road_geometry_builder_test (#99)
  • non-drivable lanes are always built but hidden if needed(#97)
  • Use --include-eol-distros with rosdep update (#98)
  • OpenRangeValidator: relative epsilon. (#92)
  • Improve some RoadGeometryBuilder log messages (#91)
  • Fix include style part 3: reorder headers (#84)
  • Fixes format.
  • Require OpenDRIVE file in RoadGeometryConfiguration
  • pybind11 is not needed in CI (#86)
  • Use python3 for check_test_ran script (#85)
  • Include XODR file name in error message (#87) Include the XODR file name, if possible, when no workable tolerance is found. Useful for debugging purposes.
  • Omit non driveable lanes (#79)
  • Improve the loader by opting for the automatic tolerance selection by default (#77)
  • Fix include style part 2: <> for drake, add/remove newlines (#81)
  • Fix include style part 1: use <> for maliput/ includes (#80)
  • CI: Removes prereqs install for drake. (#76)
  • Fixes segment bounds computation. (#73)
  • Upgrade ros-tooling to v0.2.1 (#75)
  • Use maliput_integration instead of maliput-integration. (#74)
  • Uses maliput_documentation instead of maliput-documentation. (#72)
  • Pairs hbound value with odrm implementation. (#71)
  • Differentiate between schema and semantic errors when using strictness policy (#68)
  • Improves the error message to explain which are the roads involved in... (#67)
  • Adds verbose error exceptions (#66)
  • Lets disconnected Roads within a Junction to exist (#64)
  • Allows selecting the flexibility of the xodr parser. (#62)
  • Creates ParserConfiguration struct. (#61)
  • Polish road_geometry_configuration.h (#63)
  • Adds parameter to RoadGeometryConfiguration to set xodr parsing strictness (#59)
  • Parser: Improves log message when missing \'connection\' in a junction. (#60)
  • Switch ament_cmake_doxygen to main. (#58)
  • Optimizes scan-build run in CI. (#52)
  • Add changelog template (#48)
  • Point to maliput_infrastructure instead of dsim-repos-index (#47)
  • Trigger PR clang builds on do-clang-test label (#46)
  • Restores scan-build workflow on label (#45)
  • Implements Inertial to Backend Frame translation (#44)
  • Moves disabled workflows to a different folder. (#42)
  • Adds tsan sanitizer workflow in CI (#39)
  • Parallel build policy set in integration tests. (#40)
  • Parallelizes the road geometry building process. (#37)
  • Refer to a specific clang version and use lld linker. (#36)
  • Matches with plugin extern c methods refactor. (#35)
  • Update ros-tooling version in CI. (#34)
  • Fixes ubsan behavior in CI. (#32)
  • Fixes plugin test failure when running ubsan. (#33)
  • Fix typo in GetRoadGeometryConfigurationFor() (#27)
  • Fixes CI\'s wrong main branch. (#29)
  • Removes Jenkins configuration. (#28)
  • Append library dirs to plugin test. (#26)
  • Restores integration tests and provides a dictionary with per xodr map configurations. (#23)
  • Removes constraint of [p]{.title-ref} being in range of lane_offset\'s domain. (#25)
  • Builds non-driveable lanes. (#22)
  • Adds tests for RoadNetworkLoader maliput_malidrive plugin. (#21)
  • Implements a maliput RoadNetworkLoader plugin. (#19)
  • Uses phase based discrete value rule provider (#20)
  • Merge pull request #18 from maliput/agalbachicar/#361rename_to_geo_position Renames GeoPosition to InertialPosition.
  • Merge branch \'main\' into agalbachicar/#361rename_to_geo_position
  • Removes already completed TODO comment.. (#17)
  • Renames GeoPosition to InertialPosition.
  • Updates README file. (#3)
  • Merge pull request #2 from maliput/francocipollone/migrate_maliput_malidrive Migrates maliput_malidrive
  • Adds GitHub Actions CI and Jenkins configs.
  • Fixes header files in include folder for malidrive (#734)
  • Fixes xodr_file path in yaml files in resources folder. (#733)
  • Adds integration tests in maliput_malidrive package (#727)
  • Move header files in maliput_malidrive (#730)
  • Duplicates maps into malidrive (#729)
  • Use maliput::test_utilities and try same branch name in actions (#728)
  • Remove tests using Town0X maps in (#726)
  • Build shared libs in maliput_malidrive. (#725)
  • Adds interface library.
  • Moves xodr apps to maliput_malidrive package.
  • Moves loader to maliput_malidrive package (#716)
  • Removes proj4 (#715)
  • Remove extra malidrive prefix in files and classes. (#714)
  • Moves builder folder to maliput_malidrive package (#711)
  • Moves base folder to maliput_malidrive (#710)
  • Moves id_providers to maliput_malidrive package (#709)
  • Moves xodr folder to maliput_malidrive package (#707)
  • Moves malidrive_road_curve.h/cc to road_curve.h/cc (#705)
  • Moves utility folder to maliput_malidrive package. (#706)
  • Adapts constants namespace (#702)
  • Moves malidrive2 files of road_curve to maliput_malidrive (#697)
  • Improve error logging when parsing. (#693)
  • Splitts malidrive/constants.h (#684)
  • Use ament_add_gtest_executable for xodr tests, remove libgtest (#689)
  • Enable maliput_malidrive in Github Actions (#683)
  • Moves to maliput_malidrive package (#673)
  • Improves logging (#675)
  • Moves test_utilities folder to maliput_malidrive package (#674)
  • Move macros.h folder to maliput_malidrive (#670)
  • Renaming maliput-malidrive to maliput_malidrive (#672)
  • first commit
  • Contributors: Agustin Alba Chicar, Chien-Liang Fok, Franco Cipollone, Geoffrey Biggs, Liang Fok, Steve Peters, Voldivh

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found


No message files found.


No service files found


No plugins found.

Recent questions tagged maliput_malidrive at Robotics Stack Exchange

No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.