A Virtual LiDAR Component

Created in Unreal Engine with C++ 

I completed a 6-month internship at a company called AnteMotion, where I implement a virtual LIDAR sensor in Unreal Engine for automotive ADAS driving simulation. AnteMotion is a simulation company that deals with Automotive ADAS/AV virtual testing (Training & Validation), and it is located in Rovereto, Italy. The topic of my master's thesis was also relevant to my internship.

Given the importance of LiDAR data in autonomous vehicle applications, there needs to be a safe and cost-efficient way to create and collect these data. The purpose of this project is to implement a virtual LiDAR sensor in a virtual environment. It will produce results as close as possible to a real-life sensor, and will be customizable in order to cover a wide range of different models. This component can be used in a game engine called Unreal Engine 4 in the form of a plugin. This will provide researchers with an efficient simulation tool for generating LiDAR data and thus testing their algorithms on a wider range of scenarios and not limiting them to existing data sets.

Using a LiDAR system to scan a 3d environment which contains objects that light passes through. In this scenario multiple returns and the angle of the hit have been taken into consideration.

LiDAR point cloud view with different angles. 10 degrees, 30 degrees, 50 degrees.

Several spheres that represent different materials: glass, wood and metal. The percentage of the reflectivity value has been set to 0.2, 0.5, and 0.8 respectively.

Left side is generated by using the simulator, and the right side is the KITTI data.

left side is generated by the simulator, and the right side is generated by a real sensor.

Left side is generated by the simulator, and the right side is generated by CARLA.

The left picture is generated by the sensor. The right is a 3D rendering of the Stanford Bunny, which is available from the Stanford 3D Scanning Repository.