install git lfs for large files
sudo apt-get -y install git-lfs
Note: if you did not install git-lfs before cloning the repo, you can use:
git lfs fetch
git lfs get
This will update the lfs tagged files
initialize git submodules
git submodule update --init
To get started you can chose to run "RunEvaluationManual_staticOcclusion.m" in Matlab. This will automatically start the simulation on a small dataset.
In the script you can adjust several parameters such as:
- Field of View of the automated vehicles
- AV percentage
- enable visualization
- enable further visualization for debugging
The same applies for the dynamic simulation. If you want to run several simulation at once, you can use the "RunEvaluationParallel*.mat." It is configured to run the several evaluations on serveral CPUs. To check the current status of the evaluation, type "job" in the command window and check your cpu load to see if it is running.
An occlusion evaluation software using Matlab was developed to evaluate possible dynamic occlusions. The input for this software uses simulation data generated by Aimsun Next. The methodology comprises three main steps: Running the Aimsun simulation, Evaluating the occlusions, and Generating the resulting heat map.
- Evaluating Occlusion Based on Generated Data: The collected vehicle positions from an Aimsun simultion are used to evaluate occlusion generated by moving objects. The occlusion evaluation approach is illustrated in the figure below, showing a top-down view of an intersection with cars and buildings. The occlusion of one specific timestep is shown, based on all cars and buildings in the road network at that time.
Small black boxes represent manually driven cars without environment-observing sensors, generating dynamic occlusion for connected automated vehicles (CAVs). Small red boxes highlight the CAVs currently in the road network. A circle around each CAV indicates the occlusion it is subjected to by non-CAVs, represented by green and red circles.
The next figure shows an illustration of the ray traycing approach.
Buildings in the image are downloaded from Open Street Maps OpenStreetMap - Published under referring to "Produced Work" ODbL
- Generating an Occlusion Heat Map: A resulting heat map is generated based on an occupancy grid map with a one-meter resolution. Every time one or more CAVs observe a bin of this grid map during a timestep, the bin counter is increased by one. After the entire simulation run, a heat map is generated, showing which locations of the road network are dynamically occluded.
From the heat map, this approach can reveal dynamic occlusions in a road network and adjust the penetration rate of connected automated vehicles (CAVs) in a mixed-traffic scenario. The red arrow indicates where a dynamically occluded spot in the road network was observed. In summary, this methodology enables the evaluation of static and dynamic occlusions in urban intersections by running an Aimsun simulation of a road network, evaluating occlusion based on generated data, and generating an occlusion heat map.
The software requires the following dependencies:
- MATLAB (tested using 2023a)
- Automated Driving Toolbox
- Mapping Toolbox
- Parallel Computing Toolbox
The algorithm runs quite slow. Do not expect realtime capabilities. The "ray-tracing" approach in this repository is utilized using basic mathematical equations wihtout advanced acceleration techniques. A small increase in performance was introdced using the Intersections algortihm from Douglas M. Schwarz.
This software is released under the MIT License.


