This repository provides a set of libraries and tools to support the handling of maps for Automated Driving. This includes the following:
- C++ library for automated driving physics data types (ad_physics)
- C++ library for reading OpenDRIVE XML data (ad_map_opendrive_reader)
- C++ library for accessing automated driving maps (ad_map_access)
- MapMaker tools for basic offline conversion from OpenStreetMap data into the internal ad_map_access binary format.
- A a plugin for the free QGIS tool to visualize and inspect the ad map data
This software library is provided under the MIT open-source license: https://opensource.org/licenses/MIT.
In addition, the terms in the following apply: RELEASE NOTES AND DISCLAIMERS.
Visit the project's Documentation page to access the online version of the full documentation of this library.
General release notes and changes can be found in the Changelog
Improved route and especially connected route handling.
Added python bindings.
The initial release of the map C++ software libraries.
Currently, the focused operating system is Ubuntu 20.04. Nevertheless, the library should work in a similar way for any other Linux OS. To install the dependencies for Ubuntu 20.04 execute the following command:
user$> sudo apt-get install git build-essential cmake
If you want to use doxygen for API documentation, please also install:
user$> sudo apt-get install doxygen graphviz
To download the library, you may run:
user$> git clone https://github.com/carla-simulator/map.git
user$> cd map
Development systems are Ubuntu 18.04 and Ubuntu 20.04. Following compiler combinations are tested continously:
Ubuntu 18.04 | Ubuntu 20.04 | |
---|---|---|
Clang 7 | x | |
Clang 8 | x | |
GCC 7 | x | |
GCC 8 | x | |
GCC 9 | x | x |
Important: cmake is required to be at least version 3.5!
See the detailed Build instructions.
Contibutions are very welcome!
Before submitting a pull request, please ensure that your code compiles successfully and that the tests run successfully. Please also check that your code formatting complies to the provided clang style. To do so, you can run:
map$> sudo apt-get install clang-format-10
map$> find -iname *.cpp -o -iname *.hpp | xargs clang-format-10 -style=file -i
This command will automatically update the code formatting to be compliant with our style.
In addition, please perform a static code analysis, if possible.
map$> sudo apt-get install clang-tidy
map$> cmake -DBUILD_STATIC_ANALYSIS=ON
map$> make clang-tidy
This may provide a list of possible improvements that you would like to consider in your pull request.