jackiecx / liblanelet

Lanelet maps have been introduced in the context of the autonomous completion of the Bertha-Benz-Memorial-Route in 2013

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Lanelet maps: libLanelet

Author: Philipp Bender <pbender@fzi.de>, Julius Ziegler <ziegler@fzi.de>
Date: April 16, 2014

img/lanelet.png

Lanelet maps [1] have been introduced in the context of the autonomous completion of the Bertha-Benz-Memorial-Route in 2013 [2].

The lanelet concept includes a map specification as well as an editing tool chain. The lanelet maps are built on top of

  • libLanelet (provided here)
  • the OpenStreetMap (OSM) file format [3]
  • JOSM, the Java OSM editor [4]
  • The RAILS port, which provides the OSM server [5]
  • osmosis to retrieve bigger portions of the map from the database [6]

All components are open source and users profit from lanelet maps immediately.

libLanelet

libLanelet is a library which

  • parses OSM XML files
  • builds the lanelet map
  • provides access to the attributes of lanelets and regulatory elements
  • allows routing through the graph
  • is released under the terms of the GNU General Public License version 3 or later [7].

Quickstart

  • Download libLanelet
  • Follow the install instructions given in the README file (especially about the depedencies) and this video:
  • Make a map and parse it with libLanelet (there is a video as well)
  • Use libLanelet in your software. A good point to start is demo.cpp as well as the test cases in lanelet_tests.cpp.

Configuring JOSM

Additionally, the archive contains a JOSM style file as well as the corresponding icons. To activate the style,

  • press F12 to get into the configuration dialog
  • in the third tab (titled settings for the map projection), go to Map Paint Styles and press the + to add the style sheet. In the area below, append the icon directory to the list.
img/josm-1.png

The dialog to activate the style sheet.

img/josm-0.png

A screenshot of JOSM. The coloring scheme of the bounds is consistent with the paper: red for left bounds, green for right bounds.

Common pitfalls

The thing with the OSM-IDs
JOSM does not know about global IDs. So when you create new elements, they will have a negative ID which indicates that the element is not known to the OSM server. As soon as this element is uploaded, the server will assign a globally unique ID which is stable at least during the element's life. Until then, JOSM displays 0 as ID unless you hange osm-primitives.showid.new-primitives to true in Preferences / [x] Expert mode / Advanced Preferences.
The thing with the node identity
Points (or better nodes) are considered identical if they have the same ID. It is not sufficient to place two different points near each other. Usually this causes trouble with lanelet adjacency.

Contributors

  1. Bender, J. Ziegler, D. Nienhüser, E. Ward

References

[1]
  1. Bender, J. Ziegler and C. Stiller: Lanelets: Efficient Map Representation for Autonomous Driving, submitted to IEEE Intelligent Vehicles Symposium (IV), 2014.
[2]http://www.kit.edu/besuchen/pi_2013_13901.php
[3]http://wiki.openstreetmap.org/wiki/OSM_XML
[4]https://josm.openstreetmap.de/
[5]https://wiki.openstreetmap.org/wiki/The_Rails_Port
[6]http://wiki.openstreetmap.org/wiki/Osmosis
[7]http://gplv3.fsf.org/

About

Lanelet maps have been introduced in the context of the autonomous completion of the Bertha-Benz-Memorial-Route in 2013

License:GNU General Public License v3.0


Languages

Language:C++ 90.2%Language:Python 9.2%Language:Shell 0.4%Language:C 0.1%Language:Makefile 0.1%Language:CSS 0.1%