Labeler Enhancements: 3D line ROI labels for point clouds
The following table describes enhancements for these labeling apps:
Lidar Labeler (Lidar Toolbox)
| Enhancement | Image Labeler | Video Labeler | Ground Truth Labeler | Lidar Labeler |
|---|---|---|---|---|
| Draw, visualize, and export semantic labels in the point cloud. | No | No | No | Yes |
Create training data for object detection in point clouds by using the lidarObjectDetectorTrainingData function. | No | No | No | Yes |
| Import multiframe DICOM images. | Yes | No | No | No |
| Create 3-D line ROI for point cloud data. | No | No | Yes | Yes |
| Create voxel ROI for point cloud data. | No | No | No | Yes |
| Show or hide pixel labels in a labeled image or video. | Yes | Yes | Yes | No |
ADTF File Reader: Read data from Automotive Data and Time-Triggered Framework (ADTF) DAT file
Automated Driving Toolbox™ now supports reading data from files stored in the Automated Data
and Time-Triggered Framework (ADTF), developed by Elektrobit for automated
driving applications. Use the adtfFileReader object to read stream information and inspect the
contents of an ADTF DAT file. To select the messages of a specific sensor from
this file, use the select function. You can then use the read or readNext function to read the messages contained in the file,
and use these messages in automated driving workflows. For an example, see Read Data From ADTF DAT Files.
Reading ADTF DAT files is not supported for Mac platforms.
Ultrasonic Sensor Model: Generate synthetic range measurements from programmatic driving scenarios and Driving Scenario Designer app
Use the ultrasonicDetectionGenerator System object™ to model an ultrasonic
sensor and generate synthetic range data for actors in a drivingScenario object. To visualize the ultrasonic detections on
a bird's-eye plot, create a rangeDetectionPlotter object, and then plot the set of ranges
using the plotRangeDetection function.
In the Driving Scenario Designer (DSD) app, you can now model an ultrasonic
sensor and generate synthetic range data from a driving scenario. The
bird's-eye-plot in the DSD app visualizes the ranges detected by the ultrasonic
sensor as arcs. When you export a scenario containing an ultrasonic sensor to
MATLAB®, the sensor is represented as an
ultrasonicDetectionGenerator System object.
Bird's-Eye Scope Enhancement: Run simulations from previously saved models without finding signals again
When visualizing signals in Simulink® models by using the Bird's-Eye Scope, you can now immediately visualize signals logged from the last time you saved and closed the model. Previously, when reopening a model, you had to click Find Signals to find all signals in the model again before visualizing them. To find and visualize new signals in a reopened model, click Update Signals.
Radar Sensor Performance Enhancement: Simulate driving scenarios with radar sensors faster in MATLAB and Simulink
Radar sensors modeled using drivingRadarDataGenerator system object or Driving Radar Data Generator block now have improved simulation
performance in complex driving scenarios with extended targets. For a driving
scenario containing 7 radar sensors, a 42%
average performance improvement has been observed on Windows 10 platform.
ASAM OpenSCENARIO Export Enhancements: Export road networks, actors, and trajectories to ASAM OpenSCENARIO file version 1.1
You can now export a driving scenario to ASAM OpenSCENARIO® file version 1.1 by using the Driving Scenario Designer app or the export function of the drivingScenario object.
Use the OpenSCENARIOVersion name-value argument of the
export function to specify the version for the file. For
example:
filename = "newfile.xosc"; export(scenario,"OpenSCENARIO",filename,OpenSCENARIOVersion=1.1);
Sharp Curvature Roads: Create or import roads with sharp curvature
You can now create or import roads with sharp curvature using the road function or roadNetwork function, respectively, of the drivingScenario object. Previously, creating or importing sharp
curvature roads was not supported.
You can also interactively create or import roads with sharp curvature using the Driving Scenario Designer app.
This table shows an example of enhanced ASAM OpenDRIVE® road network imported using R2022a compared to the road network imported using R2021b.
| R2021b | R2022a |
|---|---|
|
|
|
Road Group Enhancements: Import heading angle information of road groups into the Driving Scenario Designer app
When you import a drivingScenario object into the Driving Scenario Designer app, you can now import heading angles of
road segments stored within the RoadGroup object. Previously, heading angle information of road
groups was not imported into the app. In addition, you can also export the
heading angle information of road groups to a MATLAB function from the app. This heading angle information enables you
to accurately match the shapes of road groups across programmatic and
interactive workflows as shown in this figure.
Scenario created using drivingScenario
object | Scenario imported in the app using R2021b | Scenario imported in the app using R2022a |
|---|---|---|
|
|
|
|
Ego Localization Example: Correct ego vehicle localization using recorded sensor data
The Improve Ego Vehicle Localization example shows how to correct ego vehicle localization and generate an accurate ego trajectory by fusing global positioning system (GPS) and inertial measurement unit (IMU) sensor data. The example also shows how to compose a virtual driving scenario using a localized ego trajectory and OpenStreetMap® road network.
Simulation 3D Lidar Reflectivity: Model surface reflections in Unreal Engine environment
In the Simulation 3D Lidar block, use the Reflectivity output port to output the reflectivity of surface materials in the Unreal Engine® environment.
OpenCV Radial Distortion in Simulation 3D Camera Block: Simulate cameras with OpenCV supported radial distortion model in Unreal Engine Environment
In the Simulation 3D Camera block, you can now use the OpenCV six-coefficient formula for modeling radial distortion. Specify the formula to the Radial distortion coefficients parameter. This is in addition to the two-coefficient and three-coefficient models already supported by camera calibration tools in Computer Vision Toolbox™. For more information on calibrating a camera using the six-coefficient formula, see Camera Calibration and 3D Reconstruction in the OpenCV documentation.
Simulation 3D Camera Performance Improvements: Run cameras at improved speeds during Unreal Engine simulation
The Simulation 3D Camera block now has improved simulation performance and runs at higher frame rates. This table shows the increase in frames per second (FPS) for each camera in an Unreal Engine simulation.
| Number of Cameras in Simulation | Frame Rate per Camera (R2021b) | Frame Rate per Camera (R2022a) | Percent Improvement per Camera |
|---|---|---|---|
| 1 | 75.85 FPS | 88.45 FPS | 16.6% |
| 4 | 30.51 FPS | 32.80 FPS | 7.5% |
These simulations were timed on a Windows 10, Intel® Xeon® W-2133 CPU @ 3.60 GHz, with 64 GB of RAM and a GPU with 8 GB of on-board RAM.
These improvements enable you to run cameras at real-time speeds, provided that your system meets the requirements specified by the Unreal Engine Simulation Environment Requirements and Limitations.
Simulation 3D Environment Upgrade: Run 3D simulations using Unreal Engine 4.26
The 3D visualization engine that comes installed with Automated Driving Toolbox has been updated to Unreal Engine 4.26. Previously, the toolbox used Unreal Engine 4.25.
For information about using Unreal Engine to create custom scenes, see Customize Unreal Engine Scenes for Automated Driving and Unreal Engine Simulation Environment Requirements and Limitations.
If your Simulink model uses an Unreal Engine executable or project developed using a prior release of the Automated Driving Toolbox Interface for Unreal Engine Projects support package, the simulation may return an error. To migrate the project so that it is compatible with the R2022a version of the support package, see Migrate Projects Developed Using Prior Support Packages.
Functionality being removed or changed
Updated Large Parking Lot scene
Behavior change
Starting from R2022a, the Large Parking Lot scene in the Unreal Engine 3D environment is rendered using RoadRunner. As a result, the locations of scene objects, including cones and parked vehicles, are moved from their pre-R2022a locations.
Simulate RoadRunner scenarios with MATLAB and Simulink
RoadRunner is an editor that enables you to design 3D scenes for simulating and testing automated driving systems. In R2022a, Automated Driving Toolbox provides a cosimulation framework for simulating scenarios in RoadRunner with actors modeled in MATLAB and Simulink.
These are the steps of the simulation workflow:
Author RoadRunner actors in MATLAB and Simulink. For more information, see Simulate RoadRunner Scenarios with Actors Modeled in Simulink and Simulate RoadRunner Scenarios with Actors Modeled in MATLAB.
Associate actor behavior in RoadRunner. For more information, see Overview of Simulating RoadRunner Scenarios with MATLAB and Simulink.
Optionally, publish an actor behavior. For more information, see Publish Actor Behavior as Proto File or Package.
Tune the parameters defined in MATLAB or Simulink for RoadRunner simulations. For more information, see Overview of Simulating RoadRunner Scenarios with MATLAB and Simulink.
Simulate a scenario using the RoadRunner user interface or control simulations programmatically from MATLAB. For more information, see Overview of Simulating RoadRunner Scenarios with MATLAB and Simulink.
Inspect simulation results using data logging. For more information, see Overview of Simulating RoadRunner Scenarios with MATLAB and Simulink.

Use these new objects to view and control the attributes of a RoadRunner scenario simulation and its associated actors through MATLAB:
ScenarioSimulation — Create, access, and control
scenario simulation
ActorSimulation — Access and modify run-time
specifications of actor
ActorModel — View static specifications of actor
ScenarioLog — View diagnostic information of scenario
simulation
You can use these objects and functions in MATLAB System Objects to create custom RoadRunner actor behaviors.
Use these new blocks to create a model to define custom behaviors for your actors in RoadRunner using Simulink:
RoadRunner Scenario — Establish the model interface with a scenario
RoadRunner Scenario Reader — Read the world state, including actor pose, velocity, color, and supervisory actions
RoadRunner Scenario Writer — Write an actor state to the scenario and report errors and warnings
Explore these examples that demonstrate speed action follower, trajectory follower, and highway lane change planner workflows with RoadRunner Scenario cosimulation:
The Speed Action Follower with RoadRunner Scenario example shows how to design speed action following behavior using MATLAB. You assign this behavior to the ego vehicle in the RoadRunner scenario and control the speed of the ego vehicle to avoid collision with a lead car. The example also shows how to visualize RoadRunner Scenario simulation data using MATLAB.
The Trajectory Follower with RoadRunner Scenario example shows how to control the motion of the ego vehicle in RoadRunner Scenario using Simulink to follow the specified trajectory. The example uses the Stanley controller and 3DOF vehicle dynamics to control the motion of the ego vehicle. The example also shows how to visualize RoadRunner Scenario simulation data using MATLAB.
The Highway Lane Change Planner with RoadRunner Scenario example shows how to simulate a lane change behavior for the ego vehicle in a RoadRunner scenario by using Simulink. The example uses a highway lane change planner Simulink model that finds an optimal collision-free trajectory to navigate the ego vehicle.
These examples require licenses for RoadRunner and RoadRunner Scenario.
MATLAB Functions for RoadRunner Scenes and Scenarios: Import and export RoadRunner scenes and scenarios programmatically
Using the roadrunner object and its associated MATLAB functions, you can control the RoadRunner application programmatically. Common programmatic tasks that you
can perform include:
Open and close the RoadRunner application.
Open, close, and save scenes and projects.
Import and export scenes.
These MATLAB functions require an Automated Driving Toolbox license. For details on using these functions, see MATLAB Functions for Scenes (RoadRunner) and MATLAB Functions for Scenarios (RoadRunner Scenario).
YOLO v4 Object Detection: Detect objects in monocular camera images using you only look once version 4 (YOLO v4) deep learning network
The configureDetectorMonoCamera function can now configure a
monocular camera to use the YOLO v4 object detector, returning an yolov4ObjectDetectorMonoCamera object.
Bird's-Eye View Example Update: Generate code for algorithm to create 360° bird's-eye-view image around a vehicle
The Create 360°
Bird's-Eye-View Image Around a Vehicle example now shows how to
generate code for algorithm to create 360° bird's-eye-view image around a
vehicle for use in a surround-view monitoring system. It also shows how to
verify the generated code before deployment.
PIL Verification of JPDA Tracker Example: Generate embedded code and perform processor-in-loop (PIL) verification of JPDA tracker in highway scenarios
The Processor-in-the-Loop Verification of JPDA Tracker for Automotive Applications example shows how to generate embedded code for a joint probabilistic data association (JPDA) tracker configured to process detections from a camera and radar sensor mounted on the front of the ego vehicle in highway scenarios. It also shows how to verify the generated code using processor-in-loop (PIL) simulation on an STM32 Nucleo board using simulated detections.
Functionality being removed or changed
Bug fixes and behavior changes of trackingKF
object
Behavior change
As of R2022a the trackingKF filter object has these behavior changes:
If you set the MotionModel property to a
predefined state transition model, such as "1D Constant
Velocity", you can no longer specify the control
model for the filter. To use a control model, specify
the MotionModel property
as "Custom".
You must now specify the control model of the filter when creating the filter. You can no longer specify it after creating the filter.
You can now specify the process noise for a
trackingKF object using the
ProcessNoise property for a predefined
motion model. The dimension of the process noise matrix set
through the ProcessNoise property now
differentiates between a predefined motion model and a
customized motion model. Specifically,
If the specified motion model is a predefined
motion model, specify
the ProcessNoise property as
a D-by-D matrix, where D is the dimension of the motion. For
example, D = 2
for "2D Constant
Velocity" motion model.
If the specified motion model is a customized
motion model, specify
the ProcessNoise property as
an N-by-N matrix, where N is the dimension of the state. For
example, N = 4 if
you customize a 2-D motion model in which the state
is (x, vx, y, vy).
The orientation of the filter state now matches the state vector that you specify when creating the filter. For example, if you set the initial state in the filter as a row vector, the filter displays the filter state as a row vector. Previously, the filter displayed the filter state as a column vector regardless of initial state.
You can generate efficient C/C++ code without dynamic memory
allocation for trackingKF.
Parking Spot Detection Example: Detect empty parking spots in a parking lot using semantic segmentation
The Perception-Based Parking Spot Detection Using Unreal Engine Simulation example shows how to detect lane markings and obstacles in a parking lot using semantically segmented camera images, incrementally update detections in the bird’s-eye view, reconstruct parking spots from lane markings, and build a map of parking spots for decision making in an Unreal Engine simulation environment.
LOAM Example: Build map and localize using Lidar Odometry and Mapping (LOAM)
The Build a Map with Lidar Odometry and Mapping (LOAM) Using Unreal Engine Simulation example shows how to build a map with lidar data and localize the position of a vehicle on the map using Lidar Odometry and Mapping (LOAM), an algorithm that uses edge and surface points in the point cloud for registration and mapping.
Point Cloud Localization Example Update: Localize with a prebuilt map using NDT algorithm
The Lidar Localization with Unreal Engine Simulation example now shows how to localize the position of a vehicle on a prebuilt map using the Normal Distributions Transform (NDT) algorithm.
Visual SLAM Example Update: Reconstruct a parking lot from stereo images using visual SLAM
The Develop Visual SLAM Algorithm Using Unreal Engine Simulation example now shows how to perform dense reconstruction using stereo images of a parking lot scene in an Unreal Engine simulation environment.
Intersection Navigation Examples: Use V2V and V2X communication technologies to build applications for safe navigation through intersections
The Intersection Movement Assist Using Vehicle-to-Vehicle Communication example shows how to design and test an intersection movement assist (IMA) application by modeling vehicle-to-vehicle (V2V) communication. In this example, you also study the effect of channel impairments on the IMA application.
The Traffic Light Negotiation Using Vehicle-to-Everything Communication example shows how to design and test decision logic using vehicle-to-everything (V2X) communication to negotiate a traffic light to prevent collisions at intersections. This example uses the vehicle-to-vehicle (V2V) and vehicle-to-infrastructure (V2I) modes of V2X communication.
Autonomous Emergency Braking Examples: Integrate high fidelity vehicle dynamics model with autonomous emergency braking (AEB) system and automate testing of AEB system
The Autonomous Emergency Braking with Vehicle Variants example enables you to integrate either 3DOF or 14DOF vehicle models with AEB system in a closed-loop environment. Using this example, you can study interactions between an AEB controller and vehicle dynamics model, and analyze the impact of high-fidelity vehicle dynamics on AEB applications.
The Autonomous Emergency Braking with Sensor Fusion example has been updated to calculate the steering angle required for an ego vehicle to follow the reference path. This capability enables you to test and validate an AEB system using complex Euro NCAP® test scenarios that contain intersections.
The Automate Testing for Autonomous Emergency Braking example shows how to automate testing of the components of an AEB system and verify the generated code using Simulink Test™ software. You can automate testing of the sensor fusion and tracking, decision logic, and controller components.
Real-Time Testing Example: Deploy and test forward vehicle sensor fusion component in real-time
The Automate Real-Time Testing for Forward Vehicle Sensor Fusion example shows how to deploy a forward vehicle sensor fusion component of a highway lane following system to a Speedgoat® real-time machine and automate the regression testing of the deployed application.
Highway Lane Change Example Update: Integrate surround vehicle sensor fusion with highway lane change system
The Highway Lane Change example now integrates a surround vehicle sensor fusion component that provides a 360-degree view for detecting target vehicles surrounding the ego vehicle, enabling it to perform a lane change maneuver. Before R2022a, the example instead used the ground truth information of target vehicles to perform a lane change maneuver for the ego vehicle, as shown in the Highway Lane Change Planner and Controller example.