Automated driving systems use vision, radar, ultrasound, and combinations of sensor technologies to automate dynamic driving tasks. These tasks include steering, braking, and acceleration. Automated driving spans a wide range of automation levels - from advanced driver assistance systems (ADAS) to fully autonomous driving.
Automotive companies use MATLAB® and Simulink® to design automated driving system functionality including computer vision algorithm development and sensor fusion and controls development.
Teams select MATLAB and Simulink because the platforms provide an integrated environment that allows engineers to:
Have Questions About ADAS?
Implementing an Adaptive Cruise Controller with Simulink
ADAS Code Examples
Vision, Radar, and Perception Algorithm Development
MATLAB provides a comprehensive suite of computer vision algorithms that use data from camera sensors to detect and track objects of interest such as lanes, vehicles, and pedestrians.
MATLAB and Simulink provide a framework to help you model long and short range ADAS radars – this framework includes algorithms ranging from RF and antenna to signal processing and detection. You can also build end-to-end models, which include environmental and scenario generation.
Sensor Fusion and Control Algorithm Development
The complexity of automated driving tasks makes it necessary for the system to use information from multiple sensors - such as cameras, radar, and LiDAR - that can perceive the environment around the vehicle. MATLAB provides sensor fusion and tracking algorithm components that enable you to combine information from different sensors, adding robustness to the perception system outputs.
Engineers use Simulink and Stateflow® to develop control algorithms and decision logic based on fused sensor output.
Ground-Truth Labeling and Re-Simulation
Automated driving teams record large amounts of sensor data from test vehicles including video, radar returns, and other information on the state of the vehicle. Engineers use a process called ground-truth labeling to annotate recorded sensor data with the expected state of the automated driving system. They can then perform open-loop testing of the automated driving features by processing recorded sensor data and comparing the system output to the human-verified ground truth.
Traffic Sign Recognition for Driver Assistance Systems: Continental Case Study
System Modeling and Simulation
Engineers build system models that include vehicle dynamics, sensors, driver behavior, road courses, traffic situations, and environmental conditions. These multidomain models enable engineers to test the interaction between perception, sensor fusion, and control algorithms against a wide range of environmental conditions. The models are also used to verify system behavior for conditions too time consuming or risky to test on the road.
Meet ISO 26262 Requirements
Engineers developing electronic controls systems that must meet safety standards can use Simulink and Model-Based Design. Engineers can use production code generation to develop embedded systems that meet ISO 26262 and its derivative functional safety standards.
IEC Certification Kit includes certificates and reports from certification authority TÜV SÜD that are based on documented, application-specific verification workflows to help you use Embedded Coder® or Polyspace® code verification products for projects based on the ISO 26262 standard.
For safety-critical applications such as ADAS systems, you need to satisfy higher ASIL requirements. You can leverage the formal methods-based semantic analysis to meet these objectives using Polyspace code verification products. Polyspace products help you meet the certification requirements while reducing the time you spend on code reviews and unit testing. They provide detailed run-time behavior, and they prove the absence of critical run-time errors (2:15) in source code, without requiring program execution, code instrumentation, or test cases.
You can measure and improve the quality of the ADAS application code in C/C++ (both in existing code and in new code), whether it was written by software developers or generated from Simulink models. You can measure code metrics and enforce coding guidelines for safety and security, such as MISRA and CERT C. Most importantly, you can detect software defects early in development and prove the absence of critical run-time errors in C/C++ source code, whether handwritten, model-generated, or a combination of the two.