Map support for Automated Driving

License GitHub tag (latest SemVer) Build Status Code Coverage

Table of contents

  1. Introduction
  2. License
  3. Releases
  4. Getting Started
    1. Supported Systems
  5. Building the libraries
  6. Contributing

Introduction

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

License

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.

Documentation

Visit the project's Documentation page to access the online version of the full documentation of this library.

Releases

General release notes and changes can be found in the Changelog

Release 2.0.0

Improved route and especially connected route handling.

Release 1.1.0

Added python bindings.

Release 1.0.0

The initial release of the map C++ software libraries.

Getting started

Installation of dependencies

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

Get the library

To download the library, you may run:

 user$> git clone https://github.com/carla-simulator/map.git
 user$> cd map

Supported systems

Development systems are Ubuntu 18.04 and Ubuntu 20.04. The use of Ubuntu 16.04 is no longer recommended, and support will end with the next release. Following compiler combinations are tested continously:

Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Clang 5.0 deprecated
Clang 6.0 deprecated
Clang 7 x
Clang 8 x
GCC 5 deprecated
GCC 6 deprecated
GCC 7 x
GCC 8 x
GCC 9 x x

Important: cmake is required to be at least version 3.5!

Building the library

See the detailed Build instructions.

Contributing

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.