Your favorite map handling framework for automated driving, now standalone and with cross-platform support.
Project description
Lanelet2x
Lanelet2x is a fork of lanelet2 library with all dependencies on ROS1, ROS2 or Catkin removed to create a standalone and cross-platform library.
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
- Support Windows, Linux and MacOS
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
PyPI
Lanelet2x can be installed from PyPI.
pip install lanelet2x
Using Docker
- TODO: We are currently working on the Docker container
Manual installation
At least C++14 is required.
Dependencies
Boost
(from 1.58)eigen3
pugixml
(for lanelet2_io)boost-python, python2 or python3
(for lanelet2_python)geographiclib
(for lanelet2_projection)
Building
We use Conan 2.0 to manage all C++ dependencies, first clone the project:
git clone https://github.com/wu-vincent/lanelet2x.git
cd lanelet2x
Install conan from PyPI and create a profile:
pip install -r requirements.txt
conan profile detect
Now we are ready to build
conan create . --build=missing
Examples
Examples and common use cases in both C++ and Python can be found here.
Packages
- lanelet2 is the meta-package for the whole lanelet2 framework
- lanelet2_core implements the basic library with all the primitives, geometry calculations and the LanletMap object
- lanelet2_io is responsible for reading and writing lanelet maps
- lanelet2_traffic_rules provides support to interpret the traffic rules encoded in a map
- lanelet2_projection for projecting maps from WGS84 (lat/lon) to local metric coordinates
- lanelet2_routing implements the routing graph for routing or reachable set or queries as well as collision checking
- lanelet2_maps provides example maps and functionality to visualize and modify them easily in JOSM
- lanelet2_matching provides functions to determine in which lanelet an object is/could be currently located
- lanelet2_python implements the python interface for lanelet2
- lanelet2_validation provides checks to ensure a valid lanelet2 map
- lanelet2_examples contains tutorials for working with Lanelet2 in C++ and Python
Citation
If you are using Lanelet2 for scientific research, we would be pleased if you would cite our publication:
@inproceedings{poggenhans2018lanelet2,
title = {Lanelet2: A High-Definition Map Framework for the Future of Automated Driving},
author = {Poggenhans, Fabian and Pauls, Jan-Hendrik and Janosovits, Johannes and Orf, Stefan and Naumann, Maximilian and Kuhnt, Florian and Mayr, Matthias},
booktitle = {Proc.\ IEEE Intell.\ Trans.\ Syst.\ Conf.},
year = {2018},
address = {Hawaii, USA},
owner = {poggenhans},
month = {November},
Url={http://www.mrt.kit.edu/z/publ/download/2018/Poggenhans2018Lanelet2.pdf}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for lanelet2x-1.2.1-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 204df7ae591d0df176ca10b7746ceca2fc07ebb847a744e89030cf3f1ff13b60 |
|
MD5 | c4189800007dc521c1c1fd7c4afff0c7 |
|
BLAKE2b-256 | bd4cf68dd23127725c5c7993cbc780e92cd8edea1555d1793b4dc042c67e6fe7 |
Hashes for lanelet2x-1.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 990b154650874a3765cf41919962db9915f71e174295d66d6d3e50bf3c3fc910 |
|
MD5 | 994c3b05f13e1735c17442872e8bd8cc |
|
BLAKE2b-256 | c4b7fc077f1a9a09bf4892633d23aeac10dc42a041313769abac59b7c372d9b3 |
Hashes for lanelet2x-1.2.1-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08d219ecbc439efac10aa6edf6f0ddf252f599d668c04e9617ee5b450277ec85 |
|
MD5 | bf46eabc3200eff6280db6f547dd86ed |
|
BLAKE2b-256 | 482973866996d4542354ce35dc1d80b998417571f4fdc94fc4d2ad9d4b3f0f0a |
Hashes for lanelet2x-1.2.1-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 254ac294e4cd5a6cbe75360b0ac978ac288ddeb118f17ada16166d27f6501574 |
|
MD5 | 1ce2b05535546efa3ca70d461975f8c2 |
|
BLAKE2b-256 | cf2a23f94803c9e740db6d89fc9c96f5a567b8faf1fcd84effc112350f6b54df |
Hashes for lanelet2x-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a83ab6228ff57b1d406cbc627b9152fe01d067a9440872f37559fcbc8f9fcc5e |
|
MD5 | 2870b2d065310789f54e162d28cc6107 |
|
BLAKE2b-256 | a762b1d5e0f9e0c3de56fb052c6fd3b4ad005f6248df3774da9bb45853cd3ee8 |
Hashes for lanelet2x-1.2.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d26c4c8c57fd2eaae501ffd0b22de0e8c94dbaed80fd0c2e988c56668f409b1 |
|
MD5 | 101375f35788c179b043364ddb548791 |
|
BLAKE2b-256 | 462827c29771d2ca0b3622cbc5a4b1810fefbd9fc0c2eae5828bedd786d46851 |
Hashes for lanelet2x-1.2.1-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1500d5f54c66f7b04bfc2947c8b7f65e6a9397d2169d6f4f19582f4de3180b66 |
|
MD5 | 1d0709961139e41636acc84f0d403667 |
|
BLAKE2b-256 | 6e0be03ec95d6dec1ff3377fec669550e0e0e40eb0d9ad677da57b5748c6eabb |
Hashes for lanelet2x-1.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3200b6215ea63c99574f74ef5f5ec9073bb6a8af64bc316f18cf1ae638d40a4 |
|
MD5 | cf91ddaa7cc4884534d373d1c47e2f7f |
|
BLAKE2b-256 | 783c0fa93391e59920a5cbdc3b312614776ae1eea0a40e230273585332d68330 |
Hashes for lanelet2x-1.2.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a7365739302f8dc1efa893ef41fb9ffbb5313fff654a74b24d00a7c8a77f3c7b |
|
MD5 | 837a4ef55e298c217711368f7b15c912 |
|
BLAKE2b-256 | 8c8b93744794de1dfbcbff0930ab4c4f2b80ced0f9eac3a614050736e0362226 |
Hashes for lanelet2x-1.2.1-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0bfc495c1d66e2158827c2adb0301a1d46203d2510c9720d145dc9c50b58b4fa |
|
MD5 | 1ce9798c0a84ad6ba1d0cc44cfc8eec8 |
|
BLAKE2b-256 | 9760911ac047e2af645127114a752849d9487c641af64690e7a57abd5765e976 |
Hashes for lanelet2x-1.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9cf6c63d41e8e6413b0dae9f34565b9a467fe65bc59432ed4b2a5a5316919f94 |
|
MD5 | 38ae54684f6f93e935ca9130c714919e |
|
BLAKE2b-256 | 8e07210f8907e7516da417624db705d32d5100e342a63e39e2e627eedc052ef3 |
Hashes for lanelet2x-1.2.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3dadcd9373a0139c91a97d083a482cd52fba1ab884f97b233fe61eb95085093d |
|
MD5 | 9ab703841cbb2022477850de329c6771 |
|
BLAKE2b-256 | 9547b43ee341a89585c92f22a58accc84b16d742dc8bf06dd71ff21a3f0052fc |