Table of Contents

Self-driving Vehicle

Self-driving vehicles can fall into many different categories and levels of automation as described in previous chapters. One of the higher-level self-driving vehicles available nowadays is a Level 4 self-driving robot bus or Automated Vehicle (AV shuttle), also called a last-mile autonomous vehicle. The following describes an AV shuttle designed and developed in Tallinn University of Technology in cooperation with industrial partners in Estonia.

Vehicle Description

The iseAuto project was a cooperation project between industry and university which has a range of objectives from both sides as well as a very practical outcome. The project started in June 2017, when TalTech and Silberauto Estonia agreed to jointly develop a self-driving bus that had its public demonstration in September 2018. The purpose from the company’s side was to get involved with self-driving technology to be aware of the future of the automotive industry and also get experience in manufacturing a special purpose car body, as that is one of the main activities of one of the branches of the company.

Vehicle specifications

Sensors:

The iseAuto 3D model and its Lidar sensors are illustrated in the above figure. Two Velodyne VLP-16 and VLP-32 are installed at the top back and front of the vehicle respectively. Furthermore, two Robosense Bpearl are installed at the sides left and right of the vehicle. Finally, one Robosence LiDAR-16 is installed at the front bottom of the vehicle to cover the front blind zone. This Lidar configuration can create a good point cloud coverage around the vehicle for perception purposes.

Software:

Simulating the Self-driving Vehicle

TalTech iseAuto has a simulation model which can be simulated in the Gazebo environment by utilizing its physics and sensors. Nevertheless, Gazebo lacks modern game engine features like Unreal and Unity which gives the power to create a complex virtual environment and realistic rendering.

Gazebo simulation for iseAuto

On the other hand, CARLA and SVL are modern open-source simulators based on the game engines, Unreal and Unity respectively, which also have good compatibility with our AV stack Autoware. Although, comparing these two is beyond our discussion but we selected the SVL as our simulator because of its compatibility with our terrain generator which is Unity. You can find detailed information on the SVL simulator and how to install the latest version here: https://www.svlsimulator.com/.

The above figure shows a full map of the simulation workflow and the relation between Autoware and the simulator. Vehicle 3D models and the virtual environment, which are created inside Unity, are imported to the simulator. The simulator allows customizing the environment to create different scenarios such as adding/removing other road users, putting traffic systems, and adjusting the time of day and the weather of the scene. Then, virtual sensors provide information for the perception of the environment. This information is transferred via a ROS bridge to the control software platform to use in perception algorithms for localization and detection. Perception results are used in the Autoware planning section which makes the control commands for the vehicle. These control commands are sent back to the simulator via the ROS bridge to navigate the vehicle inside the simulator.

The 3D mesh model of the vehicle should be imported to Unity to define physics components like collider and wheel actuation, in addition, to assign other features like lights and materials for appearance. Finally, the built vehicle exported from Unity is used in the simulator. Later, all the sensor configurations are defined via a JSON file inside the simulator.

Virtual Environment Creation

In order to create a virtual environment as a testbed for simulating the autonomous vehicle, the aerial mapping approach to map the desired environment is needed. In this way, a drone is used to capture images from the real environment, then multiple software techniques are utilized to convert them to a Unity terrain. The images are captured at a grid-based flight path, see the image below. This ensures that the captured images contain different sides of a subject.

Taking aerial photos is one of the most important steps in the mapping process as it will significantly affect the outcome of the process and the amount of work to be done to process those images. The images taken are georeferenced by the drone. The onboard IMU provides the pictures with the orientation so that later they can be stitched together and used for photogrammetric processing. Third-party software aligns and creates the dense point cloud from the pictures that were captured. Once the dense point cloud is created, the segmentation and classification of the points are needed in order to separate unwanted objects and vegetation from the point cloud data. The below figure shows the three main steps to generate the Unity train from geospatial data.

Now it is ready to load the final map that is built by Unity for the SVL simulator.

Run the Simulation

Now, by using a high-fidelity simulator we can simulate different scenarios close to the real to evaluate the control algorithm performance and safety. In terms of defining these scenarios, the SVL simulator provides a python API for spawning different objects like NPC (Non-player character) cars and pedestrians inside the virtual environment with different motion plans.

The above-left figure shows the vehicle inside the simulator that is stopped behind an NPC car, while, at the same time the right figure shows the point cloud of all Lidars that is derived from the current scene in the environment.

Summary

Simulation is a more and more important aspect of developing robots and intelligent vehicles like self-driving cars. The importance is rising in parallel with the complexity of control algorithms and the integration of mechatronic systems in the vehicle. Simulation helps to reduce drastically the development cost and increase the general safety of the end result. It is clear that early prototypes may easily cause accidents if the testing is done on real traffic but if thousands of miles are conducted on the simulations and most of the software bugs and electromechanical incompatibilities are eliminated it is safer to start open road tests. Therefore simulations during the self-driving vehicle development are almost must be today's engineering process.