Creation Review

Type
Creation
State
Successful
End Date of the Review Period

Reviews run for a minimum of one week. The outcome of the review is decided on this date. This is the last day to make comments or ask questions about this review.

Proposal

Eclipse Automated Driving Open Research (ADORe)

Monday, January 6, 2020 - 05:45 by Daniel Heß
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Created
Background

The  Automated Driving Open Research (ADORe) project is a modular software library and toolkit for decision making, planning, control and simulation of automated vehicles.  Up until its open source publication as an Eclipse project, it has been solely developed at German Aerospace Center (DLR). Loosely based on a precursor project started in 2005, ADORe has been initiated in 2017 in order to satisfy wide-ranging requirements for different types of vehicle automation systems in multiple  national and european research projects.

According to its intended purpose as a library and toolkit, it has been applied to facilitate creation of prototypes and evaluation of different prototypical automation systems with SAE automation levels 2 to 4, from shared control to full autonomy in complex traffic situations, cooperation with the human driver, other traffic participants, other automated vehicles, traffic lights and other infrastructure units and backend servers, as well as application in simulation, hardware in the loop rigs, on proving grounds and with full-scale automated vehicles in life traffic.

The open source project contains a sub-set of the original modules, which are publishable under Eclipse Public License. We have added an interface to the popular Robot Operating System (ROS) and a set of simulation examples in order to make Eclipse ADORe accessible to the public.

Scope

Eclipse ADORe provides a modular software library and toolkit for decision making, planning, control and simulation of automated vehicles.

The project is focused on decision making, planning and control for automated vehicles.

In scope:

  • Algorithms and data models  applied in real automated driving system for motion planning and control
  • Mechanisms for safe interaction with other CAVs, infrastructure, traffic management, interactions with human-driven vehicles, bicyclists, pedestrians
  • Evaluation in context of overall traffic system
  • Software quality, reliability and TRL as required for research projects and prototypes

Concrete features :

  • High-definition road-map representation and loading from OpenDrive file
  • Planning modules for smooth "in-lane" driving, (cooperative) lane changes, emergency maneuvers, parking, navigation
  • Trajectory tracking module for stabilization of vehicle
  • Data models for automation-internal scene understanding, environment models
  • Data abstraction views for decoupling of planning algorithms and environment models
  • Vehicle model for simulation
  • Object detection model (in simulation it replaces the sensor-data fusion pipeline, which is not covered by this project)
  • V2X communication model for simulation, (high level, based on look-up tables, no detailed network simulation)
  • Interface for co-simulation with Eclipse SUMO: Simulation of traffic and infrastructure around automated vehicle
  • Interface to ROS (Robot Operating System)  and possibly other middle-ware interfaces
  • Modularity and system independence

Out of scope, not considered:

  • Sensor data fusion algorithms for automated driving are currently not covered. The main focus is decision making, not perception. The provided decision making and control algorithms can be evaluated together with sensor/perception models in simulation.
  • The project cannot and will not promise creation of highly reliable code, which could be applied in products. The focus is rather on flexible code useful for prototyping and research.
  • Non-road-based autonomous systems are not considered.
Description

Eclipse ADORe core components are:

  • libadore/env: Library for environment models used for automated driving
  • libadore/view: Interface library for abstraction from environment models, which allows to supply representation-independet and task specific information to vehicle automation planning and control modules
  • libadore/fun: Library of motion planning and control modules for automated vehicles
  • libadore/sim: Library containing necessary simulation modules for vehicle motion, perception and communication
  • libadore/apps: Library with exemplary, system-independent automated driving applications, composed from above modules
  • adore_if_ros: Interface to ROS: ROS-specific realization of libadore/apps. Includes a set of ROS launch-file simulation examples.
  • adore_if_ros_msg: Set of ROS-messages for automated driving and simulation thereof
  • sumo_if_ros: A bridge between Eclipse SUMO and ROS, which allows coupling of adore_if_ros with SUMO for co-simulation of automated vehicles in urban traffic.
  • Plotlabserver and plotlablib: 3d data visualization with Matlab and Python-matplotlib export

Eclipse ADORe core functionality is developed in system-independent c++. It is provided with a build chain for gcc, cmake and catkin (ROS kinetic specific) as well as matching library dependencies and instructions for Ubuntu (18.04).

Why Here?
  • ADORe is meant to work hand-in-hand with Eclipse SUMO, in order to evaluate automated driving methods in realistic traffic simulations and to evaluate the impact of automated driving on traffic
  • Using an open source development platform such as Eclipse allows multiple research organizations to contribute new planning and decision making methods for automated driving. Their performance can be directly compared and the compatibility of interaction of different types of automated vehicle systems may be evaluated. Evaluation of compatibility is especially important for methods for cooperative systems.
  • Through a highly visible Eclipse open source project, researchers are provided with a lower entrance barrier to the topic of automated driving. If a researcher wants to evaluate a certain planning method, many modules for environment representation, low level control, perception model and vehicle model, as well as the simulation setup are provided and may be easily re-used. Therefore methods can be more easily evaluated closed-loop, under realistic simulation conditions and in complex traffic situations.
  • As a toolbox for prototyping of automated driving systems, ADORe may be useful for Eclipse groups such as OpenADx. Standardization of interfaces may be supported and discussed openly on the example of a freely available and flexible non-production code-base.
Future Work

We intend to add features and examples until June 2020, which allow to simulated SAE level 4 automated driving in urban environments and on high-ways.

Future developments will include interfaces to ROS2, CARLA simulator, OpenScenario (possibly via Eclipse SUMO) and/or CommonRoad.

In order to increase visibility of the project, we are planning to host an automated driving hackaton in Braunschweig and Berlin. Participants will be challenged to create an automation system for yet to be determined requirements. The winning team will get a chance to test their solution on one of our automated vehicles on a proving ground.

Furthermore, we have started work on a journal publication, which will showcase and analyse features of the ADORe project in order to create visibility and to allow proper citation. The submission of the publication to a Gold-Open-Access journal is planned for summer 2020.

We hope to collaborate with and contribute to Eclipse groups OpenMobility and OpenADx.

As we are currently and in the forseeable future involved in national and multi-national research projects on automated driving, we also intend to advertise usage of and collaboration based on ADORe.

Project Scheduling

An initial contribution with a certain, limited scope and working examples is ready as of now and can be published after acceptance as Eclipse project.

Our plan is to transfer capabilities from the closed source project and to add new features with future releases in a three month release-cycle.

Most of our prototypes are developed and tested in internal projects on an internal feature branch.

After evaluation of a prototype or method inside such a project, it will be reviewed, possible re-implemented and then integrated into the github master branch.

 

Project Leads
Committers
Matthias Nichting (This committer does not have an Eclipse Account)
Initial Contribution

The project already exists in a closed-source state. For the initial contribution, the components listed under Description will be published together with the following set of demonstrable features:

  • Demo 001: Load and visualize an OpenDrive map
  • Demo 002: Compute and visualize navigation function for a loaded OpenDrive map
  • Demo 003: Simulation of an automation system, which performs lane-following and speed control on an empty road-map.
  • Demo 004: Simulation of three automation systems, which perform lane-following, speed control and distance keeping on simple ring-road
  • Demo 005: Co-simulation of several SUMO vehicles and an automation system, which performs lane-following, speed control and distance keeping on simple ring-road

Dependencies on third-party libraries and associated licenses:

  • libadore
    • catch2, Boost v1.0
    • dlib, Boost v1.0
    • qpOASES, LGPL v2.1
    • xodr, Apache 2.0
    • xsd, license GPL v2 with FLOSS exception
    • xerces-c, Apache 2.0
    • OpenBLAS, BSD
    • LAPACK, modified BSD
  • adore_if_ros, adore_if_ros_msg
    • ROS, BSD 3
  • sumo_if_ros
    • Eclipse SUMO, EPLv2
  • plotlabserver, plotlablib
    • stb_image, MIT, public domain
    • OpenGL, (Mesa 3D: MIT)
    • FreeGLUT, X-consortium license
    • CURL, MIT/X related
    • pthreads, MIT
    • ZeroMQ, libzmq, LGPL v3
Source Repository Type