Home - ika-rwth-aachen/acdc GitHub Wiki

Automated and Connected Driving Challenges - Wiki

Our course provides students the possibility to develop and test automated driving functions step by step. We provide insights into the prototypical development of an automated vehicle. The software modules are implemented in the so-called Robot Operating System (ROS). Students learn how automated vehicles process sensor data, how they compute an environment model and how they plan and follow trajectories.

Contents

Communication

If you have questions regarding the theory presented in the course, feel free to open a new topic in the edX forum. You can access the forum via a sidebar in each unit. You may also try to help others who have questions regarding the theory. Again, we are happy for any collaboration happening between students.

If you find errors in our code, or you have suggestions for code improvement, and you have created a GitHub account, feel free to create an issue in our repositories, depending on whether your problem concerns the notebooks or the ROS code.

Feel free to take a look at other participants' issues and try to help them. We are happy for any collaboration happening between students.

Installations

If you have not yet set up your coding environment, please go to Setup OS first.

Additional pages

ACDC Notebook Exercises

The notebook exercises are provided in the repository https://github.com/ika-rwth-aachen/acdc-notebooks. Please make sure to read the instructions how to setup the JupyterLab Coding Environment.

Section 1: Introduction & Robot Operating System

  • Introduction to Jupyter Notebooks
  • Introduction to Python, NumPy and Vectorization
  • Introduction to ROS1
  • ROS1 Message Visualization
  • ROS1 Sensor Data Visualization
  • ROS1 Unified Robot Description Format

Section 2: Sensor Data Processing

  • Semantic Image Segmentation
  • Boosting Semantic Image Segmentation
  • Semantic Point Cloud Segmentation
  • Boosting Point Cloud Segmentation
  • Object Detection
  • Point Cloud Occupancy Grid Mapping
  • Camera-based Semantic Grid Mapping
  • Localization

Section 3: Object Fusion and Tracking

  • No notebook exercises for this section

Section 4: Vehicle Guidance

  • Route Planning using Lanelet2

Section 5: Connected Driving

  • No notebook exercises for this section

ACDC ROS Exercises

As ROS1 reaches End-Of-Life (EOL) within the next two years, we are slowly migrating our codebase to ROS2. We use the following badges to mark our tutorials if they use ROS1 or ROS2.

Section 1: Introduction & Robot Operating System

Section 2: Sensor Data Processing

Section 3: Object Fusion and Tracking

Section 4: Vehicle Guidance

Section 5: Connected Driving

Exercise Solutions

Solutions for the ROS exercises and for the notebook exercises are provided in edX if you have taken the verified track.

FAQ

Have a look at this page which is collection of common questions.

References

Used software packages in the acdc repository and their license

  • BLASFEO - BLAS For Embedded Optimization

    BLASFEO -- BLAS For Embedded Optimization.
    Copyright (C) 2019 by Gianluca Frison.
    Developed at IMTEK (University of Freiburg) under the supervision of Moritz Diehl.
    All rights reserved.
    
    The 2-Clause BSD License
    
  • CppAD: A Package for Differentiation of C++ Algorithms

    CppAD: C++ Algorithmic Differentiation: Copyright (C) 2003-18 Bradley M. Bell
    
    CppAD is distributed under the terms of the Eclipse Public License Version 2.0.
    
    This Source Code may also be made available under the following
    Secondary License when the conditions for such availability set forth
    in the Eclipse Public License, Version 2.0 are satisfied:
    GNU General Public License, Version 2.0 or later.
    
  • CppADCodeGen

    CppADCodeGen: C++ Algorithmic Differentiation with Source Code Generation:
      Copyright (C) 2018 Joao Leal
      Copyright (C) 2012 Ciengis
    
    CppADCodeGen is distributed under multiple licenses:
    
     - Eclipse Public License Version 1.0 (EPL1), and
     - GNU General Public License Version 3 (GPL3).
    
    EPL1 terms and conditions can be found in the file epl-v10.txt, while
    terms and conditions for the GPL3 can be found in the file gpl3.txt.
    
  • Flatland

    BSD 3-Clause License
    Copyright (c) 2017, Avidbots Corp.
    All rights reserved.
    
    Flatland uses a number of open source libraries that it includes in its source tree:
    
        ThreadPool Copyright (c) 2012 Jakob Progsch, Václav Zeman (zlib license)
        Tweeny Copyright (c) 2016 Leonardo Guilherme de Freitas (MIT license)
        Box2d Copyright (c) 2006-2017 Erin Catto http://www.box2d.org (zlib license)
    
  • High-performance interior-point-method QP solvers

    HPIPM -- High-Performance Interior Point Method.
    Copyright (C) 2019 by Gianluca Frison.
    Developed at IMTEK (University of Freiburg) under the supervision of Moritz Diehl.
    All rights reserved.
    
    The 2-Clause BSD License
    
  • KISS-ICP

    MIT License
    
    Copyright (c) 2022 Ignacio Vizzo, Tiziano Guadagnino, Benedikt Mersch, Cyrill Stachniss.
    
  • ROS

    BSD 3-Clause License
    All rights reserved.