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 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_multilane package from maliput_multilane repo


Package Summary

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

Repository Summary

Checkout URI
VCS Type git
VCS Version main
Last Updated 2023-12-06
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 Multilane.

Additional Links

No additional links.


  • Daniel Stonier


No additional authors.




maliput_multilane is an implementation of Maliput's API that allows users to instantiate a road network with the following relevant characteristics:

  • Multiple Lanes are allowed per Segment.
  • Constant width Lanes.
  • Segments with lateral asphalt extensions, aka shoulders.
  • Line and Arc base geometries, composed with cubic elevation and superelevation polynomials.
  • Semantic Builder API.
  • YAML based map description.
  • Adjustable linear tolerance.

The number of lanes and their lengths, widths, and shoulder widths are all user specifiable.

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


maliput_multilane provides several map resources at maliput_multilane/resources. These resources are YAML files that contains a description for the road geometry creation. Some of them, also describe maliput's road network information like: 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: MULTILANE_RESOURCE_ROOT.

API Documentation

Refer to Maliput Multilane'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_multilane

**Note**: To build documentation a `-BUILD_DOCS` cmake flag is required:
    colcon build --packages-select maliput_multilane --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_multilane

0.1.5 (2023-04-13)

  • RoadGeometry::FindRoadPositions: Uses maliput-provided base method. (#101)
  • Provides plugins for both builders and improves params configuration. (#99)
  • Contributors: Franco Cipollone

0.1.4 (2022-12-12)

  • Implements interface for providing default parameters via plugin. (#98)
  • Updates triage workflow. (#96)
  • Contributors: Franco Cipollone

0.1.3 (2022-09-14)

  • Matches with changes in Maliput: Lane::ToLanePosition. (#95)
  • Contributors: Franco Cipollone

0.1.2 (2022-07-29)

  • Fixes test utilities (#93)
  • Adds triage workflow. (#92)
  • Improves README. (#91)
  • Contributors: Franco Cipollone

0.1.1 (2022-07-01)

  • Fixes environment hooks. (#90)
  • Fixes dependency on environment variables. (#89)
  • Contributors: Franco Cipollone

0.1.0 (2022-06-16)

  • Updates package.xml.
  • Suppresses old-rule-api-related warnings. (#88)
  • Fixes include folder installation. (#87)
  • Relies on compile definitions for testing instead of env vars. (#86)
  • Updates license. (#85)
  • Uses ament_export_targets. (#84)
  • Removes dashing support. (#83)
  • Updates IntersectionBook construction points to include the RoadGeometry pointer. (#82)
  • Adds BUILD_DOCS flag as opt-in flag (#81)
  • Matches with change in maliput\'s phase ring book loader. (#80)
  • Adds workflow_dispatch to other workflows. (#79)
  • Adds CI badges (#78)
  • Replaces push by workflow_dispatch event in gcc build. (#77)
  • Extends RoadNetworkLoader plugin to include yaml descriptions and OnrampMerge implementation. (#76)
  • Fixes MALIPUT_PLUGIN_PATH new path. (#75)
  • Change install path of the maliput plugin. (#74)
  • Use maliput drake (#73)
  • Makes multilane to link privately against drake (#72)
  • Remove eigen_compare_matrices.h (#71)
  • Use maliput math instead of drake (#70)
  • Hide drake types part 2 (#69)
  • Hide drake types part 1 (#68)
  • Enable doxygen verification. (#66)
  • Removes ament_target_dependencies macro. (#64)
  • Set up linker properly when using clang in CI. (#63)
  • Remove references to GnuInstallDir vars. (#62)
  • rosdep update --include-eol-distros (#61)
  • Enable CI for 20.04 (#60)
  • Foxy style fix part 2: reorder includes (#59)
  • pybind11 is not needed in CI (#58)
  • Foxy include style part 1: use <> for maliput, drake headers (#57)
  • CI: Removes prereqs install for drake. (#56)
  • Upgrade to ros-tooling v0.2.1 (#55)
  • Use maliput_documentation instead of maliput-documentation. (#54)
  • Use maliput_multilane instead of maliput-multilane (#53)
  • Switch ament_cmake_doxygen to main branch (#52)
  • Optimizes scan-build run in CI. (#51)
  • Add changelog template (#50)
  • Points to maliput_infrastructure instead of dsim-repos-index (#49)
  • Trigger PR clang builds on do-clang-test label (#48)
  • Restores scan-build workflow on label (#47)
  • Stub implementation of RoadGeometry::do_inertial_to_backend_frame_translation (#46)
  • Moves disabled workflows to a different folder. (#44)
  • Refer to a specific clang version and use lld linker. (#43)
  • Matches with plugin extern c methods refactor. (#42)
  • Update ros-tooling version in CI. (#41)
  • Fixes ubsan behavior in CI. (#39)
  • Fixes plugin test failure when running ubsan. (#40)
  • Removes Jenkins configuration. (#37)
  • Append library dirs to plugin test. (#36)
  • Adds tests for RoadNetworkLoader multilane plugin. (#35)
  • Implements a maliput RoadNetworkLoader plugin. (#34)
  • Replaced GeoPosition by InertialPosition (#33)
  • Unifies cmake install paths. (#32)
  • Uses namespaces for the targets (#31)
  • Use maliput::test_utilities and try same branch name in actions (#30)
  • Eliminate a few warnings induced by switch statements. (#29)
  • Adds scan_build job to Github Actions. (#27)
  • Adds clang8, asan, ubsan and tsan to Github Actions. (#26)
  • Adds a template changelog. (#24)
  • Updates the package.xml (#25)
  • Fixes sanitizers variable. (#22)
  • Use GitHub Actions CI to build and test with gcc (#21)
  • Migrates drake types because of deprecations. (#20)
  • Adds scan-build to jenkins configuration. (#19)
  • Parallelizes CI.
  • Static Analyzer: Adds exclusion file.
  • Adds Undefined Behavior Sanitizer.
  • Adds Address Sanitizer.
  • agalbachicar/#278 migrate docs to doxygen part 6 (#13)
  • Pairs clang flags. (#5)
  • Updates compilation flags for gcc and clang (#4)
  • Merge pull request #1 from ToyotaResearchInstitute/francocipollone/move_multilane_to_a_repo
  • Updates package version.
  • Updates README
  • Updates the LICENSE to include Toyota Research Institute.
  • Adapts files to maliput_multilane package.
  • Adds missing files to the repository.
  • Adds fmt as dependency. (#283)
  • Implements Quaternion. (#264)
  • Implements logger to replace spd_log. (#236)
  • Move eigen_matrix_compare.h file. (One step of #260)
  • Matrix library implementation. (#237)
  • Replaces calls to drake::Quaternion<T> by maliput::math::Quaternion (#256)
  • Vector library implementation. (#237)
  • Replaces drake::VectorN<double> by maliput::math::VectorN. (#251)
  • Migrates drake_copyable.h. (#240)
  • Migrates drake::unused(). (#241)
  • Adjust to a new drake version.
  • Upgrade to c++17.
  • Group segments within 2x2_intersection (#217)
  • Build documentation by default. (#206)
  • Use ament_cmake_doxygen to generate C++ documentation. (#165)
  • Modifies return value of Lane::ToLanePosition() (#163)
  • Modifies ToRoadPosition to return a RoadPositionResult. (#160)
  • Moves Lane::driveable_bounds() to Lane::segment_bounds(). (#154)
  • Add cmake clang format (#113)
  • Add auto clang formatting check to colcon test (#98)
  • Reformat to obey TRI style (#87)
  • Logger support in maliput (#89)
  • Add gmock to tests requiring gmock
  • Adds to RightOfWayRule a map of TrafficLight Ids --> BulbGroup Ids (#79)
  • Replaces DRAKE_-aborts by MALIPUT_ (#73)
  • Adapt packages to withstand tarball installation (#61)
  • Adds RoadGeometry::FindRoadPositions() (#58)
  • Removed redundant maliput dir
  • Create maliput ament packages
  • Adds TrafficLightBook loader
  • Adds Maliput Phase Ring Book Loader (#11021)
  • Generalizes RightOfWayRules Loader (#10977)
  • Adds Maliput RightOfWayRule Loader (#10949)
  • Adds unit test to (#10891)
  • Adds a unit test for 2x2_intersection.yaml (#10841)
  • Cleans up maliput/multilane/BUILD.bazel (#10876)
  • Adds 2x2_intersection.yaml to Maliput multilane (#10834)
  • Fixes grammar in maliput/multilane/loader.h (#10815)
  • Deprecate and remove all uses of DRAKE_ABORT_MSG (#10781)
  • Deprecate and remove all uses of DRAKE_ABORT (#10545)
  • In lane_data.h, quaternion.toRotationMatrix() to new RotationMatrix constructor.
  • Improves explicit theta_dot treatment in Multilane\'s Builder.
  • Miscellaneous documentation fixes
  • Documentation fixes
  • Make various lists in Doxygen both Markdown and reST friendly
  • Clean up exception specification in doxygen
  • Add some missing note doxygen tags
  • Express characteristic scale length concept in api::RoadGeometry (#9306)
  • [multilane] Fixes ToRoadPosition to correctly use [r]{.title-ref} coordinate (#9464)
  • Fixes broken Multilane loader tests.
  • Adds multi-lane road tests to Multilane Loader test suite (#9302)
  • [multilane] Group-related interfaces to allow loader testing (#9278)
  • Fix tolerance usage in Endpoint comparisons.
  • Adds [multilane]{.title-ref} YAML format documentation. (#9208)
  • Renames RoadCurve\'s p_scale to l_max. (#9332)
  • Merge pull request #9155 from ekumenlabs/Issue/Multilane_Optimized_RoadCurve_Computations
  • Disable multilane_loader_test under ubsan and the use of sanitizer blacklists in general
  • Issue/#8530 replace string concat by fmt (#9093)
  • [Multilane] Loader to support lane-to-lane connections. (#9090)
  • Adds lane-to-lane Builder::Connect methods. (#8973)
  • [Multilane] Adds continuity constraints into the loader (#8676)
  • Continue deprecating rpy2rotmat in favor of existing and newly created methods in RollPitchYaw class (#8969).
  • Add an IdIndex interface to maliput::api::RoadGeometry.
  • Propagates computational settings from Loader to RoadCurve.
  • Add num_shards=10 for multilane_lanes_test
  • Use shards for multilane_road_curve_accuracy_test.
  • Added arc length approximation support to Multilane\'s RoadCurve class.
  • [Maliput] Utility OBJ Parser (#8679)
  • Multilane\'s Builder API refactor in favor of fluent API (#8302)
  • Add RotationMatrix constructor that takes RollPitchYaw argument and change #include roll_pitch_yaw.h to #include rotation_matrix.h
  • Re-apply \"Add drake_cc_package_library and library_lint\"
  • Remove test size when it matches default of small
  • Blacklist bits/stl_tree.h for UBSan
  • Revert \"Add drake_cc_package_library and library_lint\"
  • Add drake_cc_package_library and library_lint
  • Multilane restore loader gmock tests (#8565)
  • Revert \"Modifies multilane\'s Loader tests using gmock. (#8071)\"
  • Modifies multilane\'s Loader tests using gmock. (#8071)
  • Fix Wshadow warnings from GCC
  • Add some const hints to improve readability
  • Fixes multilane\'s ToRoadPosition #8045 (#8212)
  • Add drake_py_unittest helper
  • Fix //drake label names in automotive/maliput/multilane/test_utilities
  • Fix //drake label names in automotive/maliput/multilane
  • Unifies unnamed namespaces for rndf and multilane tests.
  • Multilane\'s Loader, part I.
  • Run tools/dev/6996-move
  • Initial commit
  • Contributors: Agustin Alba Chicar, Andr

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_multilane 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.