Track System
The track system is defined using Vehicles.TrackSystem.Base.
It consists of:
- A
trackscomponent (Components.Tracks.Base) - A set of track wheels (
Sprocket,Idler, etc.) - Structural planar connectors (define the track plane)
- Hinges (define wheel rotation)
- Optional motors (drive sprocket)
- Optional
properties(flexibility and damping)
The tracks component combines link_description and link_count to define the full track.
link_description defines one repeated link, while link_count defines how many such links are created.
You may also assign tracks.material to define the contact material for the generated links.
If materials are defined on geometries in the link nodes, tracks.material overrides them.
All track wheels connected through mates and have their rotation axis along the same axis. The track wheels should prefarablly operate in the same plane.
Minimal Complete Example
This example is a tracked vehicle with a single track system connected to a chassis.
The track system is connected to the chassis through three connectors,
one for each of the three track wheels.
The track system is defined in the Vehiceles.TrackSystem.Base component and the
connections are defined in the Vehiceles.TrackSystem.Connections.Base component
with the ThreeWheels trait.
TrackedVehicle is Physics3D.System:
chassis is Physics3D.Bodies.RigidBody:
kinematics.local_transform.position: Math.Vec3.from_xyz(0,1,0)
inertia.mass: 1
inertia.tensor: Physics3D.Bodies.Inertia.symmetric_tensor(Math.Vec3.from_xyz(1,1,1),0,0,0)
track_material is Physics.Geometries.Material
sprocket is Vehicles.TrackSystem.Components.TrackWheels.Sprocket with Vehicles.TrackSystem.Components.TrackWheels.Traits.CylindricalShape, Vehicles.TrackSystem.Components.TrackWheels.Traits.CylindricalVisual:
radius: 0.15
width: 0.5
idler is Vehicles.TrackSystem.Components.TrackWheels.Idler with Vehicles.TrackSystem.Components.TrackWheels.Traits.CylindricalShape:
radius: 0.15
width: 0.5
road_wheel is Vehicles.TrackSystem.Components.TrackWheels.RoadWheel with Vehicles.TrackSystem.Components.TrackWheels.Traits.CylindricalShape:
radius: 0.15
width: 0.5
sprocket_connector is Physics3D.Interactions.StructuralPlanarConnector:
x: 2.1
y: 1.1
redirected_parent: chassis
idler_connector is Physics3D.Interactions.StructuralPlanarConnector:
x: -1.1
y: 1.1
redirected_parent: chassis
road_wheel_connector is Physics3D.Interactions.StructuralPlanarConnector:
x: -1.1
y: -1.1
redirected_parent: chassis
properties is Vehicles.TrackSystem.Properties:
flexibility becomes Vehicles.TrackSystem.Interactions.Flexibility.LinearElasticTrackFlexibility:
tensile.stiffness: 1e8
bending_lateral.stiffness: 50
damping becomes Vehicles.TrackSystem.Interactions.Dissipation.TrackAttenuationDissipation:
tensile.value: 1.5
track_system is Vehicles.TrackSystem.Base:
tracks.link_count: 100
tracks.material: track_material
tracks.link_description.width: 1.0
tracks.link_description.height: 0.05
properties: properties
track_wheels: [sprocket,
idler,
road_wheel]
tracks_connection is Vehicles.TrackSystem.Connections.Base with Vehicles.TrackSystem.Connections.Traits.ThreeWheels:
track_system : track_system
connectors: [sprocket_connector,
idler_connector,
road_wheel_connector]
Add a contact material to the tracked vehicle via the standard contact materials in OpenPLX, but extend the friction model with the Vehicles.TrackSystem.SurfaceContact.Traits.TrackFriction.
dry_constant_normal_friction is Physics.Interactions.Dissipation.DryConstantNormalForceFriction with Vehicles.TrackSystem.SurfaceContact.Traits.TrackFriction:
normal_force: 1000
coefficient: 0.5
secondary_coefficient: 0.1
Tracks Component
Tracks are defined using: Vehicles.TrackSystem.Components.Tracks.Base with the required parameters:
link_countlink_description- Optional
material
link_description defines one link instance, including the geometry and dimensions used for each link.
link_count defines how many times that link description is repeated along the full track.
If material is set on the tracks component, it is used for the generated track links and overrides
materials defined on geometries in the link nodes.
Link Descriptions
Defines the links of the tracks of a track system. Note that this link description also specifies the track width and height.
Example:
In the example below, the links are boxes via the LinkDescription.Box,
and the visual geometry is added with the box visual trait.
Link is TrackSystem.Components.Tracks.LinkDescription.Box:
with TrackSystem.Components.Tracks.Traits.BoxVisual
width: 0.2
height: 0.05
The variation of the links is defined as a box variation, which allows for cyclic variations in the width and height of the links.
Link is TrackSystem.Components.Tracks.LinkDescription.Box:
with TrackSystem.Components.Tracks.Traits.BoxVisual
width: 0.2
height: 0.05
variation becomes TrackSystem.Components.Tracks.LinkVariation.Box:
height_variation becomes Math.Distributions.Cyclic.DiscretePulse:
period: 5
amplitude: 0.1
width_variation becomes Math.Distributions.Cyclic.DiscretePulse:
period: 5
amplitude: 0.05
CylindricalVisual (Rendering)
Defines cylindrical rendering geometry for track wheels. Vehicles.TrackSystem.Components.TrackWheels.Traits.CylindricalVisual
Both physical and visual traits can be combined:
with Vehicles.TrackSystem.Components.TrackWheels.Traits.CylindricalShape, Vehicles.TrackSystem.Components.TrackWheels.Traits.CylindricalVisual
Optional Track Properties
Mechanical behavior can be added:
properties becomes Vehicles.TrackSystem.Properties:
flexibility becomes
Vehicles.TrackSystem.Interactions.Flexibility.LinearElasticTrackFlexibility:
tensile.stiffness: 1e8
bending_lateral.stiffness: 50
bending_vertical.stiffness: 1e7
damping becomes
Vehicles.TrackSystem.Interactions.Dissipation.TrackAttenuationDissipation:
tensile.value: 1.5