IMPORTANT NOTE This repository is part of the Behavior-Semantic Scenery Description (BSSD) framework. Check out our BSSD documentation and overview repository in your git of choice:
![]()
CapBasedRouting is a capability-based route planer based on BSSD and the popular framework Lanelet2. The key approach is a matching process between route-based driving requirements and an AV’s certified driving capabilities. This process is integrated into a conventional route planner, allowing it to compute only feasible routes for a specific AV. Moreover, this library can not only be used to determine drivable routes for a given AV, but also to derive driving requirements from a given ODD.
This library is based directly on the work of Lippert and Winner: Capability-Based Routes for Development, Testing and Operation of Safe Automated Vehicles. Therefore we only provide few information about the theoretical background and the approach within this repository. Check out and understand this work and with the additional information given in this repository you will be good to go!
For a deep dive in the overall appraoch and even more details, please check out the following dissertation of M. Lippert: Capability-Based Routes for Autonomous Vehicles
To install this libraray please follow the next subsections. For usage check out the Example section which also shows how to build your software containing our library.
Note: when using CMAKE to build this library the following dependencies are fetched automatically using FetchContent, therefore there is no need to install the dependencies beforehand.
To integrate our project via CMake, clone and add the repository as a submodule to your project. For example if you cloned the repository into the folder MyProject/libs/CapBasedRouting add the following lines to your top level CMakeLists.txt:
add_subdirectory(libs/CapBasedRouting)
target_link_libraries(<your_project_target> PUBLIC CapBasedRouting)
target_include_directories(<your_project_target> PUBLIC libs/CapBasedRouting/include)
An example CMakeLists.txt for your project could look like this:
cmake_minimum_required(VERSION 3.10)
project(MyProjectName LANGUAGES CXX)
add_executable(MyProjectName main.cpp)
target_compile_features(MyProjectName PUBLIC cxx_std_20)
add_subdirectory(libs/CapBasedRouting)
target_link_libraries(MyProjectName PUBLIC CapBasedRouting)
target_include_directories(MyProjectName PUBLIC libs/CapBasedRouting/include)
As an example of the usage of this library you can build and run the executable capability-based-routing-example
. Make sure to check out the detailed description here.
M. Lippert, and H. Winner, “Capability-based routes for development testing and operation of safe automated vehicles”, 27th International Technical Conference on the Enhanced Safety of Vehicles (ESV), 2023
If you find our work useful in your research, please consider citing:
@inproceedings{lippert2023a,
booktitle = {Conference Proceedings of the 27th International Technical Conference on the Enhanced Safety of Vehicles (ESV)},
eventdate = {03.04.2023-06.04.2023},
title = {Capability-Based Routes for Development, Testing and Operation of Safe Automated Vehicles},
language = {en},
year = {2023},
note = {Paper Number 23-0121
Veranstaltungstitel: 27th International Technical Conference on the Enhanced Safety of Vehicles (ESV)},
author = {Moritz Lippert and Hermann Winner},
location = {Yokohama, Japan},
url = {https://index.mirasmart.com/27esv/PDFfiles/27ESV-000121.pdf}
}
M. Lippert, “Capability-Based Routes for Autonomous Vehicles”, Dissertation, 2023
If you find our work useful in your research, please consider citing:
@phdthesis{lippert2023b,
pages = {XIV, 174 pages},
address = {Darmstadt},
year = {2023},
language = {en},
author = {Moritz Lippert},
school = {Technische Universit{\"a}t Darmstadt},
title = {Capability-Based Routes for Autonomous Vehicles},
doi = {https://doi.org/10.26083/tuprints-00023777},
url = {http://tuprints.ulb.tu-darmstadt.de/23777/}
}