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.
- Setup OS
- Setup JupyterLab Coding Environment on Ubuntu
- Setup JupyterLab Coding Environment with Google Colab
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 or .
Section 1: Introduction & Robot Operating System
- Exercise - ROS Setup
- Exercise - ROS Foundations
- Exercise - ROS GUI Tools
- Exercise - ROS Nodes in C++
- Exercise - ROS Bags
- Exercise - ROS Application
- Exercise - ROS2 Outlook
- Exercise - ROS2 Tutorial in C++
- Challenge - Lap Time
Section 2: Sensor Data Processing
- Exercise - Semantic Image Segmentation
- Exercise - Point Cloud Segmentation
- Exercise - Object Detection
- Exercise - Geometric Point Cloud Occupancy Grid Mapping
- Exercise - Deep Learning-based Point Cloud Occupancy Grid Mapping
- Exercise - Camera-based Semantic Grid Mapping
- Exercise - Localization
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: 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.
-
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
-
MIT License Copyright (c) 2022 Ignacio Vizzo, Tiziano Guadagnino, Benedikt Mersch, Cyrill Stachniss.
-
BSD 3-Clause License All rights reserved.