Autoware is a powerful open-source software platform for autonomous driving. Its modular architecture, including perception, localization, planning, and control modules, provides a comprehensive framework for developing self-driving vehicles. Autoware combined with AWSIM simulator provides safe testing, validation, and optimization of autonomous driving algorithms in diverse scenarios.
Run with Autoware
If you would like to know how to run AWSIM with Autoware, we encourage you to read this section.
The combination of Autoware and AWSIM provides the opportunity to check the correctness of the vehicle's behavior in various traffic situations. Below are presented some typical features provided by this combination. Moreover, examples of detecting several bad behaviors are included.
Driving straight through an intersection with priority
Turning at the intersection
Traffic light recognition
Stopping at a red light
Driving on a green light
Stopping at yellow light
Still driving at yellow light (only when it is too late to stop)
Interaction with vehicles
Yield right-of-way when turning right
Following the vehicles ahead
Stopping behind the vehicles ahead
Cutting-in to a different traffic lane
Interaction with pedestrians
Giving right of way to a pedestrian crossing at a red light
Giving way to a pedestrian crossing beyond a crosswalk
Detecting bad behaviors
Incorrect and dangerous execution of a lane change
Too late detection of a pedestrian entering the roadway
The combination of AWSIM with Autoware is possible thanks to Vehicle Interface and Sensing modules of Autoware architecture. The component responsible for ensuring connection with these modules from the AWSIM side is
EgoVehicle. It has been adapted to the Autoware architecture and provides ROS2 topic-based communication. However, the other essential component is
ClockPublisher, which provides simulation time for Autoware - also published on the topic - more details here.
EgoVehicle component provides the publication of the current vehicle status through a script working within
Vehicle Status. It provides real-time information such as: current speed, current steering of the wheels or current states of lights - these are outputs from AWSIM.
On the other hand,
Vehicle Ros Input is responsible for providing the values of the outputs from Autoware. It subscribes to the current commands related to the given acceleration, gearbox gear or control of the specified lights.
Execution of the received commands is possible thanks to
Vehicle, which ensures the setting of appropriate accelerations on the
**Wheel and controlling the visual elements of the vehicle.
The remaining data delivered from AWSIM to Autoware are sensors data, which provides information about the current state of the surrounding environment and those necessary to accurately estimate
EgoVehicle and its scripts is described in this section.
Below is a simplified sequential diagram of information exchange in connection between AWSIM and Autoware. As you can see, the first essential information published from AWSIM is
Clock - the simulation time. Next,
EgoVehicle is spawned and first sensors data are published, which are used in the process of automatic position initialization on Autoware side. At the same time, the simulation on AWSIM side is updated.
Next in the diagram is the main information update loop in which:
- During each cycle there is a synchronization with the time from the simulation.
- AWSIM publishes data from sensors available in
EgoVehicle, which are taken into account in the processes carried out in Autoware.
- The control commands from Autoware are subscribed by AWSIM, which are executed on AWSIM side and
EgoVehicleupdate is performed.
- The current state of the
The order of information exchange presented in the diagram is a simplification. The exchange of information takes place through the publish-subscribe model and each data is sent with a predefined frequency.