AWSIM is an open-source simulator made with Unity for autonomous driving research and development. It is developed for self-driving software like Autoware. This simulator aims to bridge the gap between the virtual and real worlds, enabling users to train and evaluate their autonomous systems in a safe and controlled environment before deploying them on real vehicles. It provides a realistic virtual environment for training, testing, and evaluating various aspects of autonomous driving systems.
AWSIM simulates a variety of real-world scenarios, with accurate physics and sensor models. It offers a wide range of sensors, such as: Cameras, GNSS, IMU and LiDARs, allowing developers to simulate their autonomous vehicle's interactions with the environment accurately. The simulator also models dynamic objects, such as pedestrians, other vehicles, and traffic lights, making it possible to study interactions and decision-making in complex traffic scenarios. This enables the testing and evaluation of perception, planning, and control algorithms under different sensor configurations and scenarios.
AWSIM supports a flexible and modular architecture, making it easy to customize and extend its capabilities. Users can modify the current or add a new environment with their own assets and traffic rules to create custom scenarios to suit their specific research needs. This allows for the development and testing of advanced algorithms in diverse driving conditions.
Because AWSIM was developed mainly to work with Autoware, it supports:
- Ubuntu 22.04 and Windows 10/11
- ROS2 Humble distribution
You can read more about the prerequisites and running AWSIM here.
Connection with Autoware
Introduction about how the connection between AWSIM and Autoware works can be read here.
Why was AWSIM developed?
The main objectives of AWSIM are to facilitate research and development in autonomous driving, enable benchmarking of algorithms and systems, and foster collaboration and knowledge exchange within the autonomous driving community. By providing a realistic and accessible platform, AWSIM aims to accelerate the progress and innovation in the field of autonomous driving.
To describe the architecture of AWSIM, first of all, it is necessary to mention the
Scene. It contains all the objects occurring in the simulation of a specific scenario and their configurations. The default AWSIM scene that is developed to work with Autoware is called AutowareSimulation.
In the scene we can distinguish basics components such like
Canvas. A detailed description of the scene and its components can be found here.
Besides the elements mentioned above, the scene contains two more, very important and complex components:
EgoVehicle - described below.
Environment is a component that contains all
Visual Elements that simulate the environment in the scene and those that provide control over them. It also contains two components
Directional Light and
Volume, which ensure suitable lighting for
Visual Elements and simulate weather conditions. A detailed description of these components can be found here.
In addition to
Visual Elements such as buildings or greenery, it contains the entire architecture responsible for traffic. The traffic involves
NPCVehicles that are spawned in the simulation by
TrafficSimulator - using traffic components. A quick overview of the traffic components is provided below, however, you can read their detailed description here.
NPCPedestrians are also
Environment components, but they are not controlled by
TrafficSimulator. They have added scripts that control their movement - you can read more details here.
StopLines are elements loaded into
Environment from Lanelet2.
TrafficLanes have defined cross-references in such a way as to create routes along the traffic lanes. In addition, each
TrafficLane present at the intersection has specific conditions for yielding priority.
TrafficLanes to spawn
NPCVehicles and ensure their movement along these lanes. If some
TrafficLanes ends just before the intersection, then it has a reference to
StopLine at the intersection with
TrafficLights has reference to the nearest
TrafficLights belong to one of the visual element groups and provide an interface to control visual elements that simulate traffic light sources (bulbs). A single
TrafficIntersection is responsible for controlling all
TrafficLights at one intersection.
Detailed description of mentioned components is in this section.
EgoVehicle is a component responsible for simulating an autonomous vehicle moving around the scene. It includes:
Reflection Probecomponents related to its visual appearance.
Collidersproviding collisions and the ability to move on roads.
Sensorsproviding data related to the state of the vehicle, including its position and speed in
Environmentand the state of its surroundings.
Vehiclecomponent that simulates dynamics, controls
**Wheeland is responsible for ensuring their movement.
Vehicle Ros Inputand
Vehicle Keyboard Inputcomponents that have a reference to the
Vehicleobject and set control commands in it.
Vehicle Visual Effectprovides an interface for
Vehicleto control the lighting.
A detailed description of
EgoVehicle and its components mentioned above can be found here. The sensor placement on
EgoVehicle used in the default scene is described here. Details about each of the individual sensors are available in the following sections: