Code Monkey home page Code Monkey logo

liblanelet's Introduction

Lanelet maps: libLanelet

Author: Philipp Bender <[email protected]>, Julius Ziegler <[email protected]>
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 so that users can profit from lanelet maps immediately.

Warning: Although the infractructure of OSM plays a key role in this toolchain, lanelet maps are not and will never be part of the OSM data base. So please do not upload your maps to the official OSM data base - instead, use the RAILS port and set up your own server where you can host your maps.

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.

Don't forget to configure JOSM to use your OSM server instead of the official one.

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 (your 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.
Why not use the OSM server?
OSM refers to two things: the collected data and the agreement of the community on how to map and what to map, and the infrastructure part, which is the file format, the tile structure, editing software and the database. Lanelet maps build on top of the infrastructure part. They are meaningless to OSM mappers and uploading your maps to official OSM servers will cause trouble.

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/

liblanelet's People

Contributors

phbender avatar earthwings avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.