Authored by Tony Feng
Created on Oct 29th, 2022
Last Modified on Oct 30th, 2022
Intro
This sereis of posts contains notes from the course Self-Driving Fundamentals: Featuring Apollo published by Udacity & Baidu Apollo. This course aims to deliver key parts of self-driving cars, including HD Map, localization, perception, prediction, planning and control. I posted these “notes” (what I’ve learnt) for study and review only.
What is Self-Driving?
Why Self-Driving Cars?
Human | Self-Driving Car |
---|---|
High Traffic Accident Rate | More Reliable Driving |
Learn to Drive From Scratch | Learnable Driving Sys |
Parking Trouble | No Parking Trouble |
Levels of AD
- Level 1 (Driver Assistance)
- Driver fully engaged
- Level 2 (Partial Automation)
- Auto cruise control
- Auto lane keeping
- Level 3 (Conditional Automation)
- Human take over whenever necessary
- Level 4 (No Human Interference)
- Without sterring wheel, throttle or brake
- Restricted in geofence (certain areas)
- Level 5 (Full Automation)
- Better than human in all scenarios
How Self-Driving Cars Work?
Key Components
- Computer Vision
- How the car sees the world
- e.g. bounding boxes, contour, etc.
- Sensor Fusion
- How the car understands the around situtaions
- e.g. distance, relative velocity, etc.
- Localization
- How the car learns where it is
- Path Planning
- How the car figures out where to go
- Control
- How the car follows the path or reacts to various situations
Apollo Structure
Apollo’s system centers around HD Maps and Localization. The other components of the system revolve around Perception, Prediction, Planning and Control.
Hardware
- Controller Area Network (CAN)
- Vehicle’s internal communication network
- Signal transmission for acceleration, braking and steering, etc.
- Global Positioning System (GPS)
- Location
- Inertial Measurement Unit (IMU)
- Speed, acceleration and other factors
- LiDAR is an array of pulse lasers,
- The reflection of this laser beams builds the point cloud for enviroment understanding.
- Camera
- Visual data capturing
- Radar
- Obstacle detection
- Low resolution but economical and robust to different wheather/lighting conditions
- Speed measuring of other vehicles
Open Software Stack
- Real-time Operating Sys (ROTS)
- It can produce timely calculations, analysis and execute decisions in a short time.
- Runtime Framework
- A customized version of Robot Operating System (ROS)
- Modules are independent.
- Shared memory for decentralization and data comparability (Protobuf)
- Application modules
- MAP engine
- Localization, Perception, Planning, Control,
- End-to-end driving
- Human-machine interface (HMI)
Cloud Service
- Data Storage
- Multiple Tools
- HD map
- Simulation
- Data platform
- Security
- Over-the-air software updates (OTA)
- Intelligent voice system (DuerOS)