1. Introduction
1.1. Purpose
The SODA.Sim is an OpenSource vehicle simulator for vehicle systems and environment simulation as a part of vehicle research and development activities, prototyping, design and architecture review, testing, training and education
The SODA.Sim serves as a comprehensive automotive simulation tool designed to meticulously emulate the internal systems of a vehicle and their interaction with dynamic external virtual environments.
The SODA.Sim is a plugin (and set of plugins) for Unreal Engine that turns Unreal Engine into a vehicle simulator tool.
1.2. Base Features
Vehicle Digital Twin
Vehicle Digital Twin Framework: This tool adopts a ‘component-based’ methodology where a vehicle is perceived as an assembly of small, autonomous units termed ‘components’. These components can signify actual devices such as lidar or transmission systems, or embody algorithms, such as Advanced Driver Assistance (AD). Leveraging this approach, you can swiftly construct a vehicle model by merging pre-defined components or developed new. This component-centric method facilitates a seamless transition between Software-in-the-Loop (SIL) and Hardware-in-the-Loop (HIL) vehicle simulation, provided that the SODA.Sim is amalgamated with an appropriate HIL device. This transition can be accomplished by merely substituting a virtual component with a physical counterpart, negating the need to modify other sectors of the vehicle model. This not only preserves the integrity of your simulation but also enhances the efficiency and adaptability of your project.
ROS2 framework support : Allow easy integration of Sim with any ROS2 based application to allow access to virtual sensors and simulation signals
Vehicle Component Library: A vast library of components (+60 items now) at your fingertips, allowing for a wide range of customization. Includes a lot of abstract and vender specific sensors (Lidars, Radars, IMU, GPS, Cameras, Fisheye Cameras), ECU controllers, mechanicals componenst and imitators, etc.
Visual Vehicle Assembly Tool: Intuitively design and visualize your vehicle configurations.
Save and Retrieve Vehicle Configurations: Effortlessly save and load different vehicle setups.
Abstract Physics-Based Vehicle Chassis: Connect various physics engines and vehicle models to simulate vehicle physics. Use the built-in models or integrate your own vehicle model.
CAN Serializer/Deserializer Tools: Allows to simplify the problems of serialization and deserialization of CAN messages based on the DBC file format. Two approaches are proposed - realtime parsing of DBC and C++ code generation.
Virtual and Real CAN Bus Integration: Simulate or connect to real CAN bus networks effortlessly.
Augmented Reality: Drive a real vehicle in a virtual space.
Simulink Model Import [Coming Soon]: Develop vehicle components using Simulink and add them to the general vehicle components library.
Hardware-In-Loop (HIL) Simulation
Soda.HIL Analog/Digital I/O and CAN Multiplexer: A toolset designed for versatile HIL simulations.
FPD-Link Interface: Ensures smooth interfacing within the simulation environment. Based on proFRAME camera adapter.
Support of USB-CAN adapters: PCAN, Kvaser, SockenCAN, CAN via Ethernet.
Scenario Design and Editing
Visual Scenario Scripting Tool: Create and edit scenarios visually, enhancing your workflow efficiency.
Visual Level Editor: Facilitate the design and customization of different levels with a visual editor.
Realtime Python Scripts [Coming Soon]: Create more powerful scenario in Python.
City Traffic Generation based on Summo [Coming Soon] .
OpenScenario 1.0 support [Coming Soon].
CI and Automated Testing (as part of Soda V).
Automated Test Orchestrator and Scheduler: Schedule and manage tests automatically, saving time and reducing errors.
Test Criteria: Define validation critia and link to requirements for effective testing.
Report Generation: Easily generate comprehensive reports post-testing.
Web Interface: Access and manage your tests through a user-friendly web interface.
Remote Database Functionality
Vehicle Configuration Storage and Retrieval: Save and retrieve different vehicle configurations remotely.
Scenario Storage and Retrieval: Save and load different scenarios.
Dataset Recording: Easily record and analyze various data during simulations.
Environment, Maps, and Assets
Ready-to-Use Map Sets: Access a collection of ready-to-use maps for immediate utilization in your simulations for different usecases.
Example Scenarios
Other Features
Driver AI Integration: Incorporates AI capabilities to simulate realistic driver behavior.
Vehicle-to-Vehicle and Vehicle-to-Infrastructure Connectivity: Facilitate communication between vehicles and infrastructure seamlessly.
Modular and Plugin Architecture: Leverage the benefits of a flexible and expandable software architecture.
Support for Non-Real-Time Simulation: Conduct simulations at different speeds (faster or slower than real time).
Distributed simulation [Coming Soon]. Parallelization of simulation on multiple computers to simulate more sensors.
Remote Control API based on C++/Blueprint code reflection: Easily integrate and control the simulation remotely through the API based on UnrealEngine Remote Control API. Any new C++/Blueprint class will be accessed through the API automatically without any additional development to support it in the API.
UI generated based on C++/Blueprint code reflection. Any new vehicle component of an actor will be automatically accessed in the UI with all its properties without any additional development of the UI.
Scene Save/Load template. A universal approach that allows to serialize/deserialize a scene and then load and save it. Also it include UI elements.