Description

Ground vehicle modeling and simulation.

This module introduces template-based modeling tools for creating wheeled and tracked vehicles.

For additional information, see:

Collaboration diagram for VEHICLE module:

Modules

 Driver system
 
 Powertrain system
 
 Terrain system
 
 Utility classes
 
 Wheeled vehicles
 
 Tracked vehicles
 

Namespaces

 chrono::vehicle
 Namespace with classes for the VEHICLE module.
 
 chrono::vehicle::WheeledCollisionFamily
 Enumerations for wheeled vehicle collision families.
 
 chrono::vehicle::TrackedCollisionFlag
 Enumerations for track collision flags.
 
 chrono::vehicle::TrackedCollisionFamily
 Enumerations for tracked vehicle collision families.
 

Classes

class  chrono::vehicle::ChassisConnectorArticulated
 Articulated chassis connector model constructed with data from file (JSON format). More...
 
class  chrono::vehicle::ChassisConnectorHitch
 Hitch chassis connector model constructed with data from file (JSON format). More...
 
class  chrono::vehicle::ChassisConnectorTorsion
 Torsion chassis connector model constructed with data from file (JSON format). More...
 
class  chrono::vehicle::ChChassisConnectorArticulated
 Template for an articulation chassis connector. More...
 
class  chrono::vehicle::ChChassisConnectorHitch
 Template for a hitch chassis connector. This is a passive connector, modeled with a spherical joint. More...
 
class  chrono::vehicle::ChChassisConnectorTorsion
 Template for a torsion chassis connector. More...
 
class  chrono::vehicle::ChRigidChassis
 Template for a rigid-body main chassis vehicle subsystem. More...
 
class  chrono::vehicle::ChRigidChassisRear
 Template for a rigid-body rear chassis vehicle subsystem. More...
 
class  chrono::vehicle::RigidChassis
 Vehicle rigid chassis model constructed with data from file (JSON format). More...
 
class  chrono::vehicle::RigidChassisRear
 Vehicle rigid rear chassis model constructed with data from file (JSON format). More...
 
class  chrono::vehicle::ChChassis
 Base class for the chassis vehicle subsystem. More...
 
class  chrono::vehicle::ChChassisRear
 Base class for a rear chassis vehicle subsystem. More...
 
class  chrono::vehicle::ChChassisConnector
 Base class for a chassis connector subsystem. More...
 
class  chrono::vehicle::ChDriveline
 Base class for a vehicle driveline subsystem. More...
 
class  chrono::vehicle::ChPart
 Base class for a vehicle subsystem. More...
 
struct  chrono::vehicle::BodyState
 Structure to communicate a full body state. More...
 
struct  chrono::vehicle::WheelState
 Structure to communicate a full wheel body state. More...
 
struct  chrono::vehicle::TerrainForce
 Structure to communicate a set of generalized terrain contact forces (tire or track shoe). More...
 
class  chrono::vehicle::LinearSpringForce
 Utility class for specifying a linear translational spring force. More...
 
class  chrono::vehicle::LinearDamperForce
 Utility class for specifying a linear translational damper force. More...
 
class  chrono::vehicle::LinearSpringDamperForce
 Utility class for specifying a linear translational spring-damper force. More...
 
class  chrono::vehicle::LinearSpringDamperActuatorForce
 Utility class for specifying a linear translational spring-damper force with pre-tension. More...
 
class  chrono::vehicle::MapSpringForce
 Utility class for specifying a map translational spring force. More...
 
class  chrono::vehicle::MapSpringBistopForce
 Utility class for specifying a map translational spring force with bump and rebound stop. More...
 
class  chrono::vehicle::LinearSpringBistopForce
 Utility class for specifying a linear translational spring force with bump and rebound stop. More...
 
class  chrono::vehicle::DegressiveDamperForce
 Utility class for specifying a degressive translational damper force. More...
 
class  chrono::vehicle::MapDamperForce
 Utility class for specifying a map translational damper force. More...
 
class  chrono::vehicle::MapSpringDamperActuatorForce
 Utility class for specifying a map translational spring-damper force with pre-tension. More...
 
class  chrono::vehicle::LinearSpringTorque
 Utility class for specifying a linear rotational spring torque. More...
 
class  chrono::vehicle::LinearDamperTorque
 Utility class for specifying a linear rotational damper torque. More...
 
class  chrono::vehicle::LinearSpringDamperTorque
 Utility class for specifying a linear rotational spring-damper torque. More...
 
class  chrono::vehicle::LinearSpringDamperActuatorTorque
 Utility class for specifying a linear rotational spring-damper torque with pre-tension. More...
 
class  chrono::vehicle::MapSpringTorque
 Utility class for specifying a map rotational spring torque. More...
 
class  chrono::vehicle::MapDamperTorque
 Utility class for specifying a map rotational damper torque. More...
 
class  chrono::vehicle::ChVehicleGeometry
 Utility class defining geometry (visualization and collision) and contact materials for a rigid vehicle body. More...
 
class  chrono::vehicle::ChVehicle
 Base class for chrono vehicle systems. More...
 
class  chrono::vehicle::ChVehicleOutput
 Base class for a vehicle output database. More...
 
class  chrono::vehicle::ChWorldFrame
 Definition of the world frame for Chrono::Vehicle simulations. More...
 
class  chrono::vehicle::ChVehicleOutputASCII
 ASCII text vehicle output database. More...
 
class  chrono::vehicle::ChVehicleOutputHDF5
 HDF5 vehicle output database. More...
 

Typedefs

typedef std::vector< std::shared_ptr< ChChassisRear > > chrono::vehicle::ChChassisRearList
 Vector of handles to rear chassis subsystems.
 
typedef std::vector< std::shared_ptr< ChChassisConnector > > chrono::vehicle::ChChassisConnectorList
 Vector of handles to rear chassis subsystems.
 
typedef std::vector< BodyStatechrono::vehicle::BodyStates
 Vector of body state structures.
 
typedef std::vector< WheelStatechrono::vehicle::WheelStates
 Vector of wheel state structures.
 
typedef std::vector< TerrainForcechrono::vehicle::TerrainForces
 Vector of terrain conatct force structures.
 

Enumerations

enum  chrono::vehicle::VehicleSide { chrono::vehicle::LEFT = 0, chrono::vehicle::RIGHT = 1 }
 Enum for the side (left/right) of a vehicle. More...
 
enum  chrono::vehicle::WheelLocation { chrono::vehicle::SINGLE = 0, chrono::vehicle::INNER = 1, chrono::vehicle::OUTER = 2 }
 Enum for wheel location on spindle. More...
 
enum  chrono::vehicle::VisualizationType { chrono::vehicle::VisualizationType::NONE, chrono::vehicle::VisualizationType::PRIMITIVES, chrono::vehicle::VisualizationType::MESH }
 Enum for visualization types. More...
 
enum  chrono::vehicle::TireModelType {
  chrono::vehicle::TireModelType::RIGID, chrono::vehicle::TireModelType::RIGID_MESH, chrono::vehicle::TireModelType::PACEJKA, chrono::vehicle::TireModelType::LUGRE,
  chrono::vehicle::TireModelType::FIALA, chrono::vehicle::TireModelType::ANCF, chrono::vehicle::TireModelType::REISSNER, chrono::vehicle::TireModelType::FEA,
  chrono::vehicle::TireModelType::PAC89, chrono::vehicle::TireModelType::TMEASY, chrono::vehicle::TireModelType::PAC02
}
 Enum for available tire models. More...
 
enum  chrono::vehicle::PowertrainModelType { chrono::vehicle::PowertrainModelType::SHAFTS, chrono::vehicle::PowertrainModelType::SIMPLE_MAP, chrono::vehicle::PowertrainModelType::SIMPLE, chrono::vehicle::PowertrainModelType::SIMPLE_CVT }
 Enum for available powertrain model templates. More...
 
enum  chrono::vehicle::SuspensionTypeWV {
  chrono::vehicle::SuspensionTypeWV::DOUBLE_WISHBONE, chrono::vehicle::SuspensionTypeWV::DOUBLE_WISHBONE_REDUCED, chrono::vehicle::SuspensionTypeWV::HENDRICKSON_PRIMAXX, chrono::vehicle::SuspensionTypeWV::LEAF_SPRING_AXLE,
  chrono::vehicle::SuspensionTypeWV::SAE_LEAF_SPRING_AXLE, chrono::vehicle::SuspensionTypeWV::MACPHERSON_STRUT, chrono::vehicle::SuspensionTypeWV::MULTI_LINK, chrono::vehicle::SuspensionTypeWV::RIGID_PINNED,
  chrono::vehicle::SuspensionTypeWV::RIGID_SUSPENSION, chrono::vehicle::SuspensionTypeWV::SEMI_TRAILING_ARM, chrono::vehicle::SuspensionTypeWV::SOLID_AXLE, chrono::vehicle::SuspensionTypeWV::SOLID_THREE_LINK_AXLE,
  chrono::vehicle::SuspensionTypeWV::SOLID_BELLCRANK_THREE_LINK_AXLE, chrono::vehicle::SuspensionTypeWV::THREE_LINK_IRS, chrono::vehicle::SuspensionTypeWV::TOE_BAR_LEAF_SPRING_AXLE, chrono::vehicle::SuspensionTypeWV::SAE_TOE_BAR_LEAF_SPRING_AXLE
}
 Enum for available wheeled-vehicle suspension model templates. More...
 
enum  chrono::vehicle::BrakeType { chrono::vehicle::BrakeType::SHAFTS, chrono::vehicle::BrakeType::SIMPLE }
 Enum for available brake model templates. More...
 
enum  chrono::vehicle::SteeringTypeWV { chrono::vehicle::SteeringTypeWV::PITMAN_ARM, chrono::vehicle::SteeringTypeWV::PITMAN_ARM_SHAFTS, chrono::vehicle::SteeringTypeWV::RACK_PINION }
 Enum for available wheeled-vehicle steering model templates. More...
 
enum  chrono::vehicle::DrivelineTypeWV { chrono::vehicle::DrivelineTypeWV::FWD, chrono::vehicle::DrivelineTypeWV::RWD, chrono::vehicle::DrivelineTypeWV::AWD, chrono::vehicle::DrivelineTypeWV::SIMPLE }
 Enum for wheeled-vehicle driveline types. More...
 
enum  chrono::vehicle::DrivelineTypeTV { chrono::vehicle::DrivelineTypeTV::BDS, chrono::vehicle::DrivelineTypeTV::SIMPLE }
 Enum for tracked-vehicle driveline types. More...
 
enum  chrono::vehicle::TrackShoeType { chrono::vehicle::TrackShoeType::SINGLE_PIN, chrono::vehicle::TrackShoeType::DOUBLE_PIN, chrono::vehicle::TrackShoeType::BAND_BUSHING, chrono::vehicle::TrackShoeType::BAND_ANCF }
 Enum for track shoe types. More...
 
enum  chrono::vehicle::GuidePinType { chrono::vehicle::GuidePinType::CENTRAL_PIN, chrono::vehicle::GuidePinType::LATERAL_PIN }
 Enum for guide pin (track shoe/roadwheel/idler). More...
 
enum  chrono::vehicle::OutputInformation { chrono::vehicle::OUT_SPRINGS = 1 << 0, chrono::vehicle::OUT_SHOCKS = 1 << 1, chrono::vehicle::OUT_CONSTRAINTS = 1 << 2, chrono::vehicle::OUT_TESTRIG = 1 << 3 }
 Flags for output (log/debug). More...
 
enum  chrono::vehicle::BodyID {
  CHASSIS_BODY = -99990, SPROCKET_BODY = -99991, IDLER_BODY = -99992, WHEEL_BODY = -99993,
  ROLER_BODY = -99994, SHOE_BODY = -99995
}
 Identifiers for specific component bodies.
 

Functions

void chrono::vehicle::SetDataPath (const std::string &path)
 Set the path to the Chrono::Vehicle data directory (ATTENTION: not thread safe).
 
const std::string & chrono::vehicle::GetDataPath ()
 Get the current path to the Chrono::Vehicle data directory (thread safe).
 
std::string chrono::vehicle::GetDataFile (const std::string &filename)
 Get the complete path to the specified filename (thread safe). More...
 

Enumeration Type Documentation

◆ BrakeType

Enum for available brake model templates.

Enumerator
SHAFTS 

brake model using a clutch between two shafts

SIMPLE 

brake model using a simple speed-dependent torque

◆ DrivelineTypeTV

Enum for tracked-vehicle driveline types.

Enumerator
BDS 

braked differential steering

SIMPLE 

simple kinematic driveline

◆ DrivelineTypeWV

Enum for wheeled-vehicle driveline types.

Enumerator
FWD 

front-wheel drive

RWD 

rear-wheel drive

AWD 

all-wheel drive

SIMPLE 

simple kinematic driveline

◆ GuidePinType

Enum for guide pin (track shoe/roadwheel/idler).

Enumerator
CENTRAL_PIN 

track shoes with central guiding pin and double wheels

LATERAL_PIN 

track shoes with lateral guiding pins and single wheels

◆ OutputInformation

Flags for output (log/debug).

These flags can be bit-wise ORed and used as a mask.

Enumerator
OUT_SPRINGS 

suspension spring information

OUT_SHOCKS 

suspension shock information

OUT_CONSTRAINTS 

constraint violation information

OUT_TESTRIG 

test-rig specific information

◆ PowertrainModelType

Enum for available powertrain model templates.

Enumerator
SHAFTS 

powertrain based on ChShaft elements

SIMPLE_MAP 

simple powertrain model (based on engine-map)

SIMPLE 

simple powertrain model (similar to a DC motor)

SIMPLE_CVT 

simple cvt powertrain model (like a DC motor / CVT gearbox)

◆ SteeringTypeWV

Enum for available wheeled-vehicle steering model templates.

Enumerator
PITMAN_ARM 

Pitman arm (input to revolute joint)

PITMAN_ARM_SHAFTS 

Pitman arm with compliant column (input to steering wheel)

RACK_PINION 

rack-pinion (input to pinion)

◆ SuspensionTypeWV

Enum for available wheeled-vehicle suspension model templates.

Enumerator
DOUBLE_WISHBONE 

double wishbone

DOUBLE_WISHBONE_REDUCED 

simplified double wishbone (constraint-based)

HENDRICKSON_PRIMAXX 

Hendrickson PRIMAXX (walking beam)

LEAF_SPRING_AXLE 

leaf-spring solid axle

SAE_LEAF_SPRING_AXLE 

leaf-spring solid axle with kinematic leaf-spring model

MACPHERSON_STRUT 

MacPherson strut.

MULTI_LINK 

multi-link

RIGID_PINNED 

pinned rigid beam

RIGID_SUSPENSION 

rigid suspension

SEMI_TRAILING_ARM 

semi trailing arm

SOLID_AXLE 

solid axle

SOLID_THREE_LINK_AXLE 

rigid suspension + 3 guiding links

SOLID_BELLCRANK_THREE_LINK_AXLE 

rigid suspension + 3 guiding linls + bellcrank steering mechanism

THREE_LINK_IRS 

three-link independent rear suspension

TOE_BAR_LEAF_SPRING_AXLE 

steerable leaf-spring solid axle

SAE_TOE_BAR_LEAF_SPRING_AXLE 

steerable leaf-spring solid axle with kinematic leaf-spring model

◆ TireModelType

Enum for available tire models.

Enumerator
RIGID 

rigid tire (cylindrical)

RIGID_MESH 

rigid tire (mesh)

PACEJKA 

Pacejka (magic formula) tire.

LUGRE 

Lugre frition model tire.

FIALA 

Fiala tire.

ANCF 

ANCF shell element-based tire.

REISSNER 

Reissner 6-field shell element-based tire.

FEA 

FEA co-rotational tire.

PAC89 

Pacejka 89 (magic formula) tire.

TMEASY 

Tire Model Made Easy tire (G. Rill)

PAC02 

Pacejka 02 (magic formula) tire, redesign of PACEJKA.

◆ TrackShoeType

Enum for track shoe types.

Enumerator
SINGLE_PIN 

single-pin track shoe and sprocket

DOUBLE_PIN 

double-pin track shoe and sprocket

BAND_BUSHING 

rigid tooth-rigid web continuous band track shoe and sprocket

BAND_ANCF 

rigid tooth-ANCF web continuous band track shoe and sprocket

◆ VehicleSide

Enum for the side (left/right) of a vehicle.

Enumerator
LEFT 

left side of vehicle is always 0

RIGHT 

right side of vehicle is always 1

◆ VisualizationType

Enum for visualization types.

Enumerator
NONE 

no visualization

PRIMITIVES 

use primitve shapes

MESH 

use meshes

◆ WheelLocation

Enum for wheel location on spindle.

Enumerator
SINGLE 

wheel on one side of a single-wheel axle

INNER 

inner wheel on one side of a double-wheel axle

OUTER 

outer wheel on one side of a double-wheel axle

Function Documentation

◆ GetDataFile()

CH_VEHICLE_API std::string chrono::vehicle::GetDataFile ( const std::string &  filename)

Get the complete path to the specified filename (thread safe).

The filename is assumed to be given relative to the Chrono::Vehicle model data directory.