2. Understanding the Basics
2.1. Repositories and Contents
There are two main types of content that we offer:
Repositories on GitHub - in common it’s plugins for Unreal Engine and libraries.
Content sets (*.uasset) - levels, vehicles, actors librery etc. This is content that is provided via direct download links. Typically copied to the Content folder of the UnrealEngine project.
Some repositories and content are public, others are available by subscription, and others must be requested individually as they require special permissions, such as third-party NDAs.
2.2. Plugins Unreal Engine
Public:
SodaSim - simulator core.
SodaChrono [coming soon] - support for the Project Chrono physics engine and exactly the physical model of the vehicle based on it.
SodaCitySampleVehicles - provide an additional GhostVehicles library based on City Sample Vehicles.
Pro:
SodaCAN - a set of extensions for SODA.Sim, allowing virtual CAN buses to be connected to real ones. Supports various USB-CAN adapters, SocketCAN and CAN via Ethernet. As well as tools for code generation of serialization/deserialization of CAN messages based on DBC files, see CAN Subsystem and DBC Parsing
SodaPython [coming soon] - Python scripting support in real-time (not Unreal Engine Editor).
SodaValidate [coming soon] - integration of SODA.Sim into the SODA.Validate infrastructure. This will allow:
Create HIL stands and conduct HIL tests based on SODA HIL Rig
Robo framework for writing autotests.
Ready-made infrastructure for autotesting and CI/CD within a company and integration with SODA.Validate Studio.
Pro and special permissions (access must be agreed with the copyright holder):
SodaSolectrix - support for FPDLink/GMSL interfaces for virtual cameras based on PCIe proFRAME, from Solectrix.
SodaContinental - a set of sensors by Continental
SodaHoneywell - a set of sensors by Honeywell
SodaInnoviz - a set of sensors by Innoviz
SodaMando - a set of vehicle equipment by Mando
SodaZF - a set of vehicle equipment by ZF
2.3. Others Repo
SodaSimProto [public] - a submodule for SODA.Sim, and it can also be compiled into a separate library. All custom messages (including their serialization/deserialization) for SODA.Sim are included here, for example for GenericCamera, GenericRadara, V2V/V2X message etc.
SodaSimRemoteControl [public, coming soon] - Python library that implements the RemoteContro WEB API client and the main interfaces for interacting with SODA.Sim entities.
SodaSimProject [public, coming soon] - example of an Unreal Engine project for building a simulator.
2.4. Content [UAssets]
SodaExtraLib [public, coming soon] - Additional actor library available in SODA editor mode. Contains pedestrians, road signs, cyclists, various vehicles.
SimpleMaps [public] - a set of simple maps for testing the basic functions of various simulator functions.
Ribbon [pro] - exact copy, recreation based on scanning of 3 race tracks:
Las Vegas Motor Speedway
OpenDrive [pro, coming soon] - so far a small set of maps generated based on the OpenDrive format.
Carla [pro, coming soon] - a set of maps from the project carla
2.5. Suggested Workflow
The developer constructs an essential artifact set, which includes a scenario map and a foundational blueprint for one or more vehicles, along with other vital actors.
If necessary, the developer generates a default map: positioning vehicles and other discernible actors on the map, integrating default behaviors, etc. This serves as a foundation for all subsequent activities.
The developer compiles the project similarly to a standard Unreal Engine project and disseminates it to the user.
The user modifies the initial artifact set based on the requirements of their current task: incorporating and adjusting vehicle components, adding new actors, defining their behaviors, etc.
The user executes their assigned task within this newly customized environment.