Description

Ground vehicle modeling.

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

For additional information, see:

Collaboration diagram for VEHICLE module:

Modules

 Vehicle models
 
 Driver models
 
 Powertrain models
 
 Terrain models
 
 Utility classes
 
 Wheeled vehicles
 
 Tracked vehicles
 

Namespaces

 chrono::vehicle::hmmwv
 Namespace for the HMMWV vehicle model.
 
 chrono::vehicle::generic
 Namespace for the generic wheeled vehicle model.
 
 chrono::vehicle::m113
 Namespace for the M113 segmented track vehicle.
 
 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::ChRigidChassis
 Template for a rigid-body chassis vehicle subsystem. More...
 
class  chrono::vehicle::RigidChassis
 Vehicle rigid 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::ChPart
 Base class for a vehicle subsystem. More...
 
class  chrono::vehicle::WheelID
 Class to encode the ID of a vehicle wheel. 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::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::ChVehicle
 Base class for chrono vehicle systems. More...
 
class  chrono::vehicle::ChVehicleOutput
 Base class for a vehicle output database. More...
 
class  chrono::vehicle::ChVehicleOutputASCII
 ASCII text vehicle output database. More...
 
class  chrono::vehicle::ChVehicleOutputHDF5
 HDF5 vehicle output database. More...
 

Typedefs

typedef std::vector< BodyState > chrono::vehicle::BodyStates
 Vector of body state structures.
 
typedef std::vector< WheelState > chrono::vehicle::WheelStates
 Vector of wheel state structures.
 
typedef std::vector< TerrainForce > chrono::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::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
}
 Enum for available tire models. More...
 
enum  chrono::vehicle::PowertrainModelType { chrono::vehicle::PowertrainModelType::SHAFTS, chrono::vehicle::PowertrainModelType::SIMPLE_MAP, chrono::vehicle::PowertrainModelType::SIMPLE }
 Enum for available powertrain model templates. More...
 
enum  chrono::vehicle::SuspensionType {
  chrono::vehicle::SuspensionType::DOUBLE_WISHBONE, chrono::vehicle::SuspensionType::DOUBLE_WISHBONE_REDUCED, chrono::vehicle::SuspensionType::SOLID_AXLE, chrono::vehicle::SuspensionType::MULTI_LINK,
  chrono::vehicle::SuspensionType::HENDRICKSON_PRIMAXX, chrono::vehicle::SuspensionType::MACPHERSON_STRUT, chrono::vehicle::SuspensionType::SEMI_TRAILING_ARM, chrono::vehicle::SuspensionType::THREE_LINK_IRS,
  chrono::vehicle::SuspensionType::RIGID_PINNED, chrono::vehicle::SuspensionType::RIGID_SUSPENSION
}
 Enum for available wheeled-vehicle suspension model templates. More...
 
enum  chrono::vehicle::SteeringType { chrono::vehicle::SteeringType::PITMAN_ARM, chrono::vehicle::SteeringType::PITMAN_ARM_SHAFTS, chrono::vehicle::SteeringType::RACK_PINION }
 Enum for available wheeled-vehicle steering model templates. More...
 
enum  chrono::vehicle::DrivelineType { chrono::vehicle::DrivelineType::FWD, chrono::vehicle::DrivelineType::RWD, chrono::vehicle::DrivelineType::AWD, chrono::vehicle::DrivelineType::SIMPLE }
 Enum for drive types. More...
 
enum  chrono::vehicle::WheeledCollisionFamily::Enum { chrono::vehicle::WheeledCollisionFamily::CHASSIS = 0, chrono::vehicle::WheeledCollisionFamily::TIRES = 1 }
 
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  Enum {
  NONE = 0, CHASSIS = 1 << 0, SPROCKET_LEFT = 1 << 1, SPROCKET_RIGHT = 1 << 2,
  IDLER_LEFT = 1 << 3, IDLER_RIGHT = 1 << 4, WHEELS_LEFT = 1 << 5, WHEELS_RIGHT = 1 << 6,
  SHOES_LEFT = 1 << 7, SHOES_RIGHT = 1 << 8, ROLLERS_LEFT = 1 << 9, ROLLERS_RIGHT = 1 << 10,
  ALL = 0xFFFF
}
 
enum  chrono::vehicle::TrackedCollisionFamily::Enum {
  chrono::vehicle::TrackedCollisionFamily::CHASSIS = 0, chrono::vehicle::TrackedCollisionFamily::IDLERS = 1, chrono::vehicle::TrackedCollisionFamily::WHEELS = 2, chrono::vehicle::TrackedCollisionFamily::ROLLERS = 3,
  chrono::vehicle::TrackedCollisionFamily::SHOES = 4
}
 
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::ChVehicleOutput::Type { chrono::vehicle::ChVehicleOutput::ASCII, chrono::vehicle::ChVehicleOutput::JSON, chrono::vehicle::ChVehicleOutput::HDF5 }
 

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...
 
template<typename T >
std::ostream & chrono::vehicle::operator<< (std::ostream &out, const ChVector< T > &v)
 
template<typename T >
std::ostream & chrono::vehicle::operator<< (std::ostream &out, const ChQuaternion< T > &q)
 

Enumeration Type Documentation

Enum for drive types.

Enumerator
FWD 

front-wheel drive

RWD 

rear-wheel drive

AWD 

all-wheel drive

SIMPLE 

simple kinematic driveline

Enumerator
CHASSIS 

chassis collision family

TIRES 

collision family for tire systems

Enumerator
CHASSIS 

chassis collision family

IDLERS 

collision family for idler subsystems

WHEELS 

collision family for road-wheel assemblies

ROLLERS 

collision family for roller subsystems

SHOES 

collision family for track shoe subsystems

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

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

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)

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)

Enum for available wheeled-vehicle suspension model templates.

Enumerator
DOUBLE_WISHBONE 

double wishbone

DOUBLE_WISHBONE_REDUCED 

simplified double wishbone (constraint-based)

SOLID_AXLE 

solid axle

MULTI_LINK 

multi-link

HENDRICKSON_PRIMAXX 

Hendrickson PRIMAXX (walking beam)

MACPHERSON_STRUT 

MacPherson strut.

SEMI_TRAILING_ARM 

semi trailing arm

THREE_LINK_IRS 

three-link independent rear suspension

RIGID_PINNED 

pinned rigid beam

RIGID_SUSPENSION 

rigid suspension

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)

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

Enumerator
ASCII 

ASCII text.

JSON 

JSON.

HDF5 

HDF-5.

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

Enum for visualization types.

Enumerator
NONE 

no visualization

PRIMITIVES 

use primitve shapes

MESH 

use meshes

Function Documentation

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.