ETHx: Self-Driving Cars with Duckietown

ETHx: Self-Driving Cars with Duckietown

by ETH Zurich

Self-driving cars with Duckietown

An exciting and innovative course on vehicle autonomy

Course Description

"Self-driving cars with Duckietown" is an exciting and innovative course that offers a practical introduction to vehicle autonomy. This hands-on learning experience takes you on a journey from assembling a box of parts to creating a fully functional scaled self-driving car capable of autonomous navigation in your living room. The course explores real-world solutions to theoretical challenges in autonomy, translating concepts into algorithms and deploying them in both simulation and hardware environments.

What students will learn

  • Program Duckiebots to navigate safely in road lanes of a model city
  • Recognize essential robot subsystems and their functions
  • Implement user-specified driving paths for Duckiebots
  • Understand robot goal-reaching algorithms
  • Apply traditional and modern approaches to autonomous driving decisions
  • Process image streams for computer vision-based techniques
  • Set up efficient robotics software environments using Docker, ROS, and Python
  • Program Duckiebots to recognize and avoid obstacles
  • Participate in public challenges to test skills against peers
  • Experience real-world implementation challenges and rewards (hardware track)

Pre-requisites

  • Basic Linux knowledge (terminal commands like cd, ls, mkdir)
  • Python programming skills
  • Git version control basics
  • Elements of linear algebra, probability, and calculus
  • Computer with native Ubuntu 22.04 installation
  • Minimum hardware requirements: Quad-core 1.8GHz CPU, 4GB RAM, 60GB hard drive, OpenGL 2.1+ compatible GPU
  • Broadband internet connection

Course Content

  • Introduction to self-driving cars and levels of autonomy
  • Robot architecture and sensorimotor systems
  • Modeling and control systems (PID control)
  • Robot vision and image processing
  • Object detection using neural networks
  • State estimation and localization techniques
  • Path planning and collision avoidance
  • Reinforcement learning for robotics tasks

Who this course is for

This course is ideal for students, hobbyists, and professionals interested in robotics, artificial intelligence, and autonomous systems. It caters to those who want to gain practical experience in building and programming self-driving vehicles, as well as individuals curious about the inner workings of autonomous cars.

Real-world applications

  • Pursue careers in the autonomous vehicle industry
  • Develop robotics projects for various applications
  • Contribute to open-source robotics initiatives
  • Apply computer vision and machine learning techniques to other fields
  • Enhance problem-solving skills for complex engineering challenges
  • Gain a competitive edge in the tech job market
  • Collaborate on interdisciplinary projects involving AI and robotics

Syllabus

Module 0: Welcome to the course
Module 1: Introduction to self-driving cars
Module 2: Towards autonomy
Module 3: Modeling and Control
Module 4: Robot Vision
Module 5: Object Detection
Module 6: State Estimation and Localization
Module 7: Planning I
Module 8: Planning II
Module 9: Learning by Reinforcement

Each module includes theoretical concepts, practical applications, and hands-on activities to reinforce learning and skill development.

Similar Courses
Course Page   ETHx: Self-Driving Cars with Duckietown