Modular Vehicle Systems
Modular Vehicle Systems allows to create vehicles in Vortex® Studio in a modular way. It provides a library of components that are common to most of the vehicles such as wheel, motor, transmission, torque converter and others.
All components are parametrized with interfaces to set, and get important values from the component. It also provides a set of predefined vehicle topologies that are common to the industry, provided as content files in the Vortex® Studio Samples package. A topology file is simply an Assembly file that contains a set of components that are attached/connected in such a way that they are ready to model a particular class of vehicles.
For example, the topology called FWD can be used to model any vehicle with four wheels, that has an engine, an automatic transmission, a torque converter, and a differential. The only difference between vehicles of a given class is the particular set of values given to the components it contains (masses, dimensions, gear ratio, torque table etc.). Starting the creation of a new vehicle from a topology is the right way to use the Modular Vehicle Systems.
One of the key points of the Modular Vehicle Systems is the fact that all elements (components and topology) are made up of standard Vortex® Studio objects: Assemblies and Parts but also Connection and Python3 etc).
This opens the possibility to easily create other topologies to model classes of vehicles that are not already covered by the existing set. Also, new components can be created to provide functionalities that do not exist in the existing library of components. Finally as the behaviour of each component is implemented via Python scripts, any specific behaviour of any component can be fine tuned or completely redefined to fulfill particular engineering requirements.
Vortex Studio also provides a set of completed vehicles as example, readily available in the Vortex® Studio Samples package.
For a step by step procedure of how to create a modular vehicle, please refer to the Tutorial: Creating a Vehicle with Modular Vehicle Systems.
After installation, the default path of the Vortex® Studio Samples package is C:\CM Labs\Vortex Studio Content <VERSION>\Samples.
- 1 Using Modular Vehicle Systems
- 1.1 How to Create a New Vehicle
- 1.2 Topology File
- 1.3 Topology Library
- 1.3.1 AWD - All Wheel Drive Vehicle
- 1.3.2 AWD Double Wishbone
- 1.3.3 RWD - Rear Wheel Drive Vehicle
- 1.3.4 Tandem - Truck
- 1.3.5 Tracked Vehicle - 2x2
- 1.3.6 Trailer - 2 Axle
- 1.3.7 FWD - Front-Wheel Drive Vehicle
- 1.4 Component Library
- 1.4.1 Chassis
- 1.4.2 Engine
- 1.4.3 Torque Converter
- 1.4.4 Automatic Transmission
- 1.4.5 Differential
- 1.4.6 Double Wishbone
- 1.4.7 Wheel
- 1.4.8 Wheel Hinged
- 1.4.9 Rigid Track Extension
- 1.4.10 Hydrostatic Coupling
- 1.5 Vehicle Library
Using Modular Vehicle Systems
Users can take advantage of Modular Vehicle Systems by adding a topology assembly to their mechanism.
Topology assembly files define which components exist in different classes of vehicles, how they are connected, and some additional logic common to the vehicle. However, the actual properties and tuning of the vehicle (dimensions, mass properties, torques and gear ratios) are defined by the user using the interfaces of each of the components. This allows to quickly tune different vehicles that belong to a given class. For example, the RWD topology file can be used to model a sedan, a pick-up truck, or a single-axle dump truck, simply by changing the values in the topology's interface.
It should be noted that topology files do not include graphical assets, since these are specific to a particular vehicle. Therefore, the content creator must use their own Graphics Gallery for applications that require graphics, and link it with the parts that form the vehicle, e.g., the chassis or the wheels.
How to Create a New Vehicle
The first step to do when creating a new vehicle is to look at the given set of topology file under the sample directory. Find the one that has the closest drive train compare to the actual vehicle that has to be modelled. If there is one that matches exactly, go to the Step by Step tutorial where a detail step by step procedure is given. If there is no topology file that matches exactly the vehicle to be modelled, a new topology file needs to be created. In this case, refer to the advance document: Working with Topology Files.
Finally, the set of pre-defined components is quite extensive but if there is a need to create a new component, please refer to the following page: Working with Components.
It is worth mentioning that when a component file is loaded in the Vortex® Studio Editor some warning messages may appear. This is normal because components need to be connected with each other and this connection is only established at the topology level, that is, a level above the components. For example, when loading a Differential component, its input shaft is not set. Setting the input shaft will only be done when the Differential component will be used by a topology file with proper connections. Likewise, topology files may show warning messages, for example if tuning tables are not set, e.g., like the engine torque table. This will be resolved when adding the topology to the final vehicle mechanism file where the actual engine characteristics are known and can be provided via the topology interface.
Topology File
Topology generally contains three categories of interfaces:
Common Interfaces that exist for all:
Vehicle Control: Contains basic inputs to control the vehicle (e.g., throttle and steering), and outputs to report the current state (e.g., speed, engine RPM).
Component Configuration: Parameters to set the relative positions of all components, some properties that are common to all components, and a field to specify a user body to attach to the vehicle chassis.
Part Transforms: Transforms of all parts in the vehicle system, which can be connected to user graphical nodes.
Component Interfaces that exposes the parametrization and tuning values for each component.
Custom Interfaces that control any custom logic defined. For example, for a front-wheel steered vehicle, a script called steering controller implements the Ackermann steering system and the tuning of that logic is exposed in an interface, Steering Tuning, at the topology level.
An example of a complete vehicle based on FWD can be seen from the Vortex Studio Samples in the Car - Hatchback mechanism file.
The mechanism contains the following objects (visible in the mechanism's Explorer panel):
Vehicle Interface: This is the interface defined inside the mechanism, which is how the user of this mechanism will control and interact with the mechanism.
Graphics/Hatchback: This is the Graphics Gallery of the vehicle.
Graphics/Skin: This connection container contains connections linking the vehicle's Part Transform outputs to the corresponding nodes of the Graphics Gallery.
Physics/Assembly: This assembly contains the part representing the body of the car. This is where the collision geometry and mass properties of the car body are defined.
Physics/FWD: The front-wheel drive (FWD) topology on which this vehicle is based. It contains the three types of interfaces contained in all topology assembly as seen above. These interfaces are how the specific vehicle tuning and parametrization is specified.
Physics/Collision Rules: Contains a collision rule that disables collisions between the vehicle FWD and Assembly. This prevents the wheels from colliding with the body of the vehicle.
Controls: This folder contains various scripts and connections to control the vehicle and provide the signals that are defined in the Vehicle Interface.
Topology Library
A set of topology is available in C:\CM Labs\Vortex Studio Content <VERSION>\Samples. For each of them, a succinct description is given below and a more detailed description for the FWD - Front-Wheel Drive Vehicle.
AWD - All Wheel Drive Vehicle
This topology files can be used to model any vehicle that belongs to the class of vehicle where 4 wheels are driven. Such vehicles is made of the following components: a chassis, an engine, a torque converter, an automatic transmission, one transfer case, two differentials and four wheels.
AWD Double Wishbone
This topology file is similar to the AWD except that it uses the Double Wishbone component at each of the wheels.
RWD - Rear Wheel Drive Vehicle
This topology file is met to be used for any vehicle that belongs to the class of vehicle that has four wheel where rear wheels are driven. Such vehicles are made of the following components: a chassis, an engine, a torque converter, an automatic transmission, one differentials and four wheels.
Tandem - Truck
This topology file is met to be used with vehicles that have two driven rear axles. Such topology uses the following components: a chassis, an engine, a torque converter, an automatic transmission a transfer case, two differentials and 6 wheels. Notice that the front axles is also driven. Such topology is in general met for heavy vehicle therefore it includes a retarder component.
Tracked Vehicle - 2x2
This topology file is met to model vehicles with track system. In this case, there is two tracks with two wheels each, one idler and one sprocket, and so the 2x2 in the name. The track system is of type rigid meaning that there is nos suspension and the track that touches the ground is rigid so that it doesn't deform. Such topology file includes the following components: a chassis, an engine, an hydrostatic pump, two hydrostatic motors, four hinged wheels and two rigid track systems.
Trailer - 2 Axle
This topology file is met to model trailers with two axles. It simply includes a chassis and four wheels.
FWD - Front-Wheel Drive Vehicle
Here is a more detail description of a topology file.
The FWD topology contains a Chassis component with four Wheel components (two steered and driven wheels in front, two wheels in the rear) and a drive train consisting of an engine, torque converter, automatic transmission and one differential.
The topology of the components is shown below. All of the components are directly constrained to the chassis, and the power train is connected in series providing power from the engine to the wheels.
FWD Common Interfaces
The FWD vehicle contains the common interfaces below.
Interface Category | Name | IOP | Type | Description |
|---|---|---|---|---|
Vehicle Control | Engine Running | Input | bool | Set the engine to be running. |
Vehicle Control | Throttle | Input | double | Throttle input between 0 and 1. |
Vehicle Control | Brake | Input | double | Brake input signal from 0 to 1. |
Vehicle Control | Steering | Input | double | Steering input signal from 0 to 1. |
Vehicle Control | Gear | Input | int | Selected gear, positive for forward, negative for reverse, zero for neutral. |
Vehicle Control | Speed | Output | double | Current forward speed of the vehicle. |
Vehicle Control | Engine RPM | Output | double | Current engine RPM. |
Vehicle Control | Current Gear | Output | int | Index of the current gear, negative for reverse, 0 for neutral, positive for forward. |
Component Configuration | Drivetrain Position | Parameter | vector3 | Position relative to the Chassis to place the first drivetrain component. |
Component Configuration | Drivetrain Spacing | Parameter | double | Each successive drivetrain component is placed this distance in front of the previous. |
Component Configuration | Wheel Position Front | Parameter | double | Position of front axle. |
Component Configuration | Wheel Position Rear | Parameter | double | Position of rear axle. |
Component Configuration | Wheel Spacing | Parameter | double | Distance between left and right wheels. |
Component Configuration | Wheel Height | Parameter | double | Vertical position of wheels. |
Component Configuration | Shaft Mass | Parameter | double | Mass of internal shafts in kg. |
Component Configuration | Shaft Inertia | Parameter | double | Moment of inertia of internal shafts, assumed spherical (in kg m²). |
Component Configuration | Body Attachment Point | Parameter | AP* | Attachment point on the body to be attached to the chassis part. |
Part Transforms | Chassis Transform | Output | Transform | Current transform of chassis part. |
Part Transforms | Wheel FL Transform | Output | Transform | Current transform of front left wheel part. |
Part Transforms | Wheel FR Transform | Output | Transform | Current transform of front right wheel part. |
Part Transforms | Wheel RL Transform | Output | Transform | Current transform of rear left wheel part. |
Part Transforms | Wheel RR Transform | Output | Transform | Current transform of rear right wheel part. |
FWD Component Interfaces
The vehicle contains several components, and each of their interfaces appears at the topology level also.
FWD Custom Interfaces
The vehicle also contains interfaces for logic customized to this particular topology file.
Interface | Name | IOP | Type | Description |
|---|---|---|---|---|
Braking Tuning | Max Torque | Input | double | Maximum brake torque per wheel. |
Braking Tuning | Front Rear Bias | Input | double | Bias between torque on front and rear wheels. 0.5 for equal torque on front and rear, closer to 1 means higher torque on front wheels, closer to 0 means higher torque on rear wheels. |
Steering Tuning | Max Steering Angle | Input | double | Maximum steering angle of the inside wheel in degrees. |
Component Library
Vehicle Systems models are based on a library of components. Each component can contain dynamic objects (parts, constraints, collision geometries), logic (scripts and connections) and an interface with fields to tune and parametrize the component.
Chassis
The Chassis component represents the main chassis or frame of a vehicle. It is modelled simply as a single part. If the user has a part defined to represent the body of the vehicle (in order to create collision geometries or add additional parts and constraints), the Component Configuration common interface contains a field where the user part can be selected to be attached to the chassis part.
There is no logic or control in the chassis, and the interface only contains fields to define the mass properties of the chassis part.
Chassis Interface
Name | IOP | Type | Description |
|---|---|---|---|
Mass | Input | double | Mass of chassis |
Centre of Mass | Input | Vector3 | Vector of centre of mass offset |
Inertia | Input | Vector3 | Components of diagonal inertia matrix |
Chassis Attachment
Name | IOP | Type | Description |
|---|---|---|---|
Chassis Part | Input | Part* | The chassis part |
Body Attachment Point | Parameter | Attachment Point | Attachment point on the body to be attached to the chassis part |
Engine
The Engine component is used to model the behavior of an internal combustion engine by applying a torque to a shaft part using a hinge constraint.
The torque applied by the engine is determined by the torque table, which specifies the maximum torque of the engine for the range of drive shaft RPM. The table is defined for wide open throttle, and the actual torque applied will be decreased for lower throttle positions. The engine will also apply braking torque if the actual speed of the shaft is higher than what is expected for the current throttle position.
The engine incorporates the behavior of idle speed controller. It will attempt to maintain the specified Idle RPM, applying up to the maximum torque defined in the torque table at that RPM.
The engine also contains several fields that allow tuning and modification of the engine behavior, such as adding or subtracting additional torque or shaft friction at run time.
Engine Interface
Name | IOP | Type | Description |
|---|---|---|---|
Engine Running | Input | bool | Set the engine to be running. When False, engine drive torque will be zero. |
Throttle | Input | double | Input throttle between 0 and 1 |
Throttle Delay | Input | double | Set the maximum rate the throttle can be increased, simulating the effect of engine response lag. Throttle rate of change will be limited so it can go from 0 to 1 in the specified time. |