Welcome to Introduction to Self-Driving Cars, the first course in University of Toronto’s Self-Driving Cars Specialization.
This course will introduce you to the terminology, design considerations and safety assessment of self-driving cars. By the end of this course, you will be able to:
- Understand commonly used hardware used for self-driving cars
- Identify the main components of the self-driving software stack
- Program vehicle modelling and control
- Analyze the safety frameworks and current industry practices for vehicle development
For the final project in this course, you will develop control code to navigate a self-driving car around a racetrack in the CARLA simulation environment. You will construct longitudinal and lateral dynamic models for a vehicle and create controllers that regulate speed and path tracking performance using Python. You’ll test the limits of your control design and learn the challenges inherent in driving at the limit of vehicle performance.
This is an advanced course, intended for learners with a background in mechanical engineering, computer and electrical engineering, or robotics. To succeed in this course, you should have programming experience in Python 3.0, familiarity with Linear Algebra (matrices, vectors, matrix multiplication, rank, Eigenvalues and vectors and inverses), Statistics (Gaussian probability distributions), Calculus and Physics (forces, moments, inertia, Newton's Laws).
You will also need certain hardware and software specifications in order to effectively run the CARLA simulator: Windows 7 64-bit (or later) or Ubuntu 16.04 (or later), Quad-core Intel or AMD processor (2.5 GHz or faster), NVIDIA GeForce 470 GTX or AMD Radeon 6870 HD series card or higher, 8 GB RAM, and OpenGL 3 or greater (for Linux computers).

AP

The best course to amass knowledge on the basics of self-driving cars.\n\nWould recommend it for everyone who meets the pre-requisites of this course.

KK

Jun 02, 2019

Filled StarFilled StarFilled StarFilled StarFilled Star

Exceptional Advanced Course that also provides the subtle basic nudges for everyone to comprehend as well. Really Delighted on taking this Course.

レッスンから

Module 7: Putting it all together

For the last week of the course, now you will get hands on with a simulation of an autonomous vehicle that requires longitudinal and lateral vehicle control design to track a predefined path along a racetrack with a given speed profile. You are encouraged to modify the speed profile and/or path to improve their lap time, without any requirement to do so. Work and play!

講師

Steven Waslander

Associate Professor

Jonathan Kelly

Assistant Professor

字幕

You've now seen some of the capabilities of Carla and hopefully you've had a chance to download the simulator and start experimenting with it yourself. Now that we have a working simulation environment, you're ready to start implementing and testing the concepts that you've learned throughout this course. Let's take a look at the final projects you'll work on for course one of this specialization. In this project, you'll implement a simple controller in Python and use it to drive a car around a track in Carla. The track is a loop shown in this figure. You will be given a sorted list of waypoints which are equally spaced on this track. The waypoints include their positions as well as the speed the vehicles should attain. As a result, the waypoints become the reference signal for your controller and navigating to all the waypoints effectively completes the full track. Since the controller reference contains both position and speed, you will need to implement both longitudinal and lateral control. You may want to refer back to the modules on longitudinal control and lateral control before starting the project. The output of your controller will be the vehicle throttle, brake, and steering angle commands. The throttle and brake will come from your longitudinal speed control and the steering will come from your lateral control. Make sure to start with a simple controller design as possible and only add complexity if your vehicle does not track the path as expected. Of course, once you've got a working controller, don't hesitate to push its limits and see what it can really do on the race track. So, how are you going to want to structure your code for this project? We've prepared a starting script for you so that you don't need to worry about any of the Carla implementation details and you can just focus on programming the controller itself. If you open the simulator directory and navigate to the Course one final project folder, you'll see a file named controller2d.py. This is what you'll use as the starting point for the course project. When you open this file, you'll see the vehicle controller implemented as a Python class. This class contains all the information relevant to implementing the controller. The vehicle state, desired waypoint, desired speed, and controller outputs are stored in variables ready to be used. The class also contains functions which will interface with Carla directly. These functions will continually update the vehicle state and send the controller outputs to Carla, allowing you to focus your efforts purely on the controller implementation. Now, you might be wondering how your code is going to be evaluated and how you'll earn a grade for this project. After running your controller, a text file will be generated logging the entire trajectory of the vehicle. This file is called trajectory.txt and it is located in the controller output sub-folder. The performance of your controller will be graded based on this trajectory. There's a greater script that the Coursera platform we'll use to check your code. It will plot your waypoints, vehicle trajectory, and vehicle speeds compared to the desired speeds. Each waypoint has a distance and a speed threshold which are shown in green. A waypoint is considered successfully reached if the vehicle trajectory is within both thresholds. The grading script will tell you how many way points you have successfully reached and if you reach more than half, you'll pass the assessment. Once your trajectory passes the grading script, you can upload the trajectory text file onto Coursera for official completion. You now have everything you need in order to implement your very first controller and test it in simulation. This is a big step towards developing self-driving cars and a fundamental scenario that you'll see in the field. If you have any questions that I didn't answer in this video, there are further instructions in the readings for this module and you can always ask in the discussion forums as well. I hope you have fun with this final project and I'll see you again once that's completed to close out the course. Good luck.