In the last years, Tier ones and OEMs are prototyping and testing self-driving capabilities on top of embedded MPSoCs (Multiprocessor System on Chip), these architectures are commonly composed of more than general purpose processors, a complex memory hierarchy and high-performance accelerators.
Consequently, many car and tech makers are implementing multiple applications with different functionalities and criticality levels in the same Electronic Control Unit (ECU).
Nonetheless, by doing so, the scheduling and the management of shared resources become a very convoluted problem, especially on architectures with complex memory hierarchies.
Unfortunately, a non-proper software integration can lead to a situation in which high critical tasks may be affected by less critical tasks.
In this sense, many open-source projects rely on ROS (the most used framework in robotics) and consequently Linux for implementing self-driving cars, for instance Apollo or Autoware. However, ROS and general-purpose Linux distributions are far from being safe enough for the development and integration of safety critical applications.
Thanks to the HERCULES framework, we developed and integrate a real autonomous driving system that partitions safety critical tasks from the non-critical ones as required in the ISO 26262.
Our solution does not require a dedicated Real-Time platform, reducing in this way design and production costs because everything is integrated on a small low power embedded board i.e. NVIDIA Jetson TX2.
3. Francesco Gatti
San Francisco - 15 May 2019
Autonomous driving needs Real-Time
All executed task must finish before a predefined deadline
- reliable software
- Real-Time OS
- certified hardware
3
5. Francesco Gatti
San Francisco - 15 May 2019
Solution
- Not every task needs Real-Time
Task separation between
Best-Effort and Critical task
5
6. Francesco Gatti
San Francisco - 15 May 2019
What you need for Driving
Localization
Obstacle detection and tracking
Global Planner
Local Planner
Actuation
6
7. Francesco Gatti
San Francisco - 15 May 2019
Localization
- Feature matching with maps
- High frequency reliable output
7
Localization
8. Francesco Gatti
San Francisco - 15 May 2019
Best-Effort OS Real-Time OS
Localization decomposition
8
Localization Position Filter
~ 10 Hz 20 Hz
9. Francesco Gatti
San Francisco - 15 May 2019
Best-Effort OS Real-Time OS
Localization decomposition
9
Localization Position Filter
~ 10 Hz 20 Hz
ROBUST TO
FAILURES AND
DELAYS
10. Francesco Gatti
San Francisco - 15 May 2019
Obstacle detection and tracking
- Camera detection
- Laser sensors detection
- Object tracking
- Object trajectory prediction
10
Obstacle Detection and
Tracking
11. Francesco Gatti
San Francisco - 15 May 2019
Best-Effort OS Real-Time OS
Obstacle detection and tracking decomposition
11
Detection Tracking
~ 10 Hz 20 Hz
13. Francesco Gatti
San Francisco - 15 May 2019
Local Planner
13
Local Planner
- Dynamically update
path to follow
- Avoid obstacles
- Follow path
14. Francesco Gatti
San Francisco - 15 May 2019
Local Planner decomposition
14
Trajectory Sampling Path follow
Collision check
15. Francesco Gatti
San Francisco - 15 May 2019
Best-Effort OS Real-Time OS
Local Planner decomposition
15
Trajectory sampling Path Follow
~ 20 Hz 20 Hz
Collision check
16. Francesco Gatti
San Francisco - 15 May 2019
Actuation
16
~ 100 Hz
Actuation
- Simple low level control
- Send steer and throttle
commands to the car
17. Francesco Gatti
San Francisco - 15 May 2019
Putting all together
17
Localize
Position
Filter
Path Follow
Global
Planner
Actuation
Object
Detection
Object
Tracker
Trajectory
Sampling
22. Francesco Gatti
San Francisco - 15 May 2019
All packed in a NVIDIA Jetson tx2
22
- Small
- Cheap
- High performance
embedded board
- Low power consumption