Repo symbol

ad_with_lanelet2 repository

Repo symbol

ad_with_lanelet2 repository

Repo symbol

ad_with_lanelet2 repository

Repo symbol

ad_with_lanelet2 repository

Repository Summary

Description sample of ad system to use lanelet2 framework
Checkout URI https://github.com/abanglzu/ad_with_lanelet2.git
VCS Type git
VCS Version master
Last Updated 2021-03-04
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

Lanelet2

Travis CI Gitlab CI Coverage
build coverage

Overview

Lanelet2 is a C++ library for handling map data in the context of automated driving. It is designed to utilize high-definition map data in order to efficiently handle the challenges posed to a vehicle in complex traffic scenarios. Flexibility and extensibility are some of the core principles to handle the upcoming challenges of future maps.

Features:

  • 2D and 3D support
  • Consistent modification: if one point is modified, all owning objects see the change
  • Supports lane changes, routing through areas, etc.
  • Separated routing for pedestrians, vehicles, bikes, etc.
  • Many customization points to add new traffic rules, routing costs, parsers, etc.
  • Simple convenience functions for common tasks when handling maps
  • Accurate Projection between the lat/lon geographic world and local metric coordinates
  • IO Interface for reading and writing e.g. osm data formats (this does not mean it can deal with osm maps)
  • Python bindings for the whole C++ interface
  • Boost Geometry support for all thinkable kinds of geometry calculations on map primitives
  • Released under the BSD 3-Clause license

Lanelet2 is the successor of the old liblanelet that was developed in 2013. If you know Lanelet1, you might be interested in reading this.

Documentation

You can find more documentation in the individual packages and in doxygen comments. Here is an overview on the most important topics:

  • Here is more information on the basic primitives that make up a Lanelet2 map.
  • Read here for a primer on the software architecture of lanelet2.
  • There is also some documentation on the geometry calculations you can do with lanelet2 primitives.
  • If you are interested in Lanelet2’s projections, you will find more here.
  • To get more information on how to create valid maps, see here.

Installation

Using Docker

There is a Docker container from which you can test things out:

docker build -t lanelet2 .                    # builds a docker image named "lanelet2"
docker run -it --rm lanelet2:latest /bin/bash # starts the docker image
python -c "import lanelet2"                   # quick check to see everything is fine

The docker image contains a link to your local lanelet2, so you can work and see changes (almost) at the same time. Work with two screens, one local and one on docker. Make your code changes locally, then run again catkin build on docker to recompile the code (update python modules).

Manual installation

In case you want to build it in your own way (without the above Docker image) use these instructions.

Lanelet2 uses Catkin for building and is targeted towards Linux.

At least C++14 is required.

Dependencies

Besides Catkin, the dependencies are

  • Boost (from 1.58)
  • eigen3
  • mrt_cmake_modules, a CMake helper library
  • pugixml (for lanelet2_io)
  • boost-python, python2 or python3 (for lanelet2_python)
  • geographiclib (for lanelet2_projection)
  • rosbash (for lanelet2_examples)

For Ubuntu, the steps are the following:

  • Set up ROS, and install at least rospack, catkin and mrt_cmake_modules (e.g. ros-melodic-rospack, ros-melodic-catkin, ros-melodic-mrt-cmake-modules):
sudo apt-get install ros-melodic-rospack ros-melodic-catkin ros-melodic-mrt-cmake-modules ros-melodic-unique-id

  • Install the dependencies above:
sudo apt-get install libboost-dev libeigen3-dev libgeographic-dev libpugixml-dev libpython-dev libboost-python-dev python-catkin-tools

On 16.04 and below, mrt_cmake_modules is not available in ROS and you have to clone it into your workspace (git clone https://github.com/KIT-MRT/mrt_cmake_modules.git).

Building

As usual with Catkin, after you have sourced the ros installation, you have to create a workspace and clone all required packages there. Then you can build.

source /opt/ros/$ROS_DISTRO/setup.bash
mkdir catkin_ws && cd catkin_ws && mkdir src
catkin init
catkin config --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo # build in release mode (or whatever you prefer)
cd src
git clone https://github.com/fzi-forschungszentrum-informatik/lanelet2.git
cd ..
catkin build

If unsure, see the Dockerfile or the travis build log. It shows the the full installation process, with subsequent build and test based on a docker image with a clean ubuntu installation.

Manual, experimental installation using conan

For non-catkin users, we also offer a conan based install proces. Its experimental and might not work on all platforms, expecially Windows. Since conan handles installing all the dependencies, all you need is a cloned repository and conan itself:

```bash

File truncated at 100 lines see the full file

Repo symbol

ad_with_lanelet2 repository

Repo symbol

ad_with_lanelet2 repository

Repo symbol

ad_with_lanelet2 repository

Repo symbol

ad_with_lanelet2 repository