Description

Base class for a tire system.

A tire subsystem is a force element. It is passed position and velocity information of the wheel body and it produces ground reaction forces and moments to be applied to the wheel body.

#include <ChTire.h>

Inheritance diagram for chrono::vehicle::ChTire:
Collaboration diagram for chrono::vehicle::ChTire:

Public Member Functions

 ChTire (const std::string &name)
 
virtual void Initialize (std::shared_ptr< ChBody > wheel, VehicleSide side)
 Initialize this tire subsystem. More...
 
virtual void Synchronize (double time, const WheelState &wheel_state, const ChTerrain &terrain)
 Update the state of this tire system at the current time. More...
 
virtual void Advance (double step)
 Advance the state of this tire by the specified time step.
 
virtual double GetRadius () const =0
 Get the tire radius.
 
virtual TireForce GetTireForce (bool cosim=false) const =0
 Get the tire force and moment. More...
 
virtual double GetSlipAngle () const
 Get the tire slip angle. More...
 
virtual double GetLongitudinalSlip () const
 Get the tire longitudinal slip. More...
 
virtual double GetCamberAngle () const
 Get the tire camber angle. More...
 
- Public Member Functions inherited from chrono::vehicle::ChPart
 ChPart (const std::string &name)
 Construct a vehicle subsystem with the specified name. More...
 
const std::string & GetName () const
 Get the name identifier for this track shoe subsystem.
 
void SetName (const std::string &name)
 Set the name identifier for this track shoe subsystem.
 
void SetVisualizationType (VisualizationType vis)
 Set the visualization mode for this subsystem.
 
virtual void AddVisualizationAssets (VisualizationType vis)
 Add visualization assets to this subsystem, for the specified visualization mode.
 
virtual void RemoveVisualizationAssets ()
 Remove all visualization assets from this subsystem.
 

Static Protected Member Functions

static bool disc_terrain_contact (const ChTerrain &terrain, const ChVector<> &disc_center, const ChVector<> &disc_normal, double disc_radius, ChCoordsys<> &contact, double &depth)
 Perform disc-terrain collision detection. More...
 

Protected Attributes

VehicleSide m_side
 tire mounted on left/right side
 
std::shared_ptr< ChBodym_wheel
 associated wheel body
 
- Protected Attributes inherited from chrono::vehicle::ChPart
std::string m_name
 

Constructor & Destructor Documentation

chrono::vehicle::ChTire::ChTire ( const std::string &  name)
Parameters
[in]namename of this tire system

Member Function Documentation

bool chrono::vehicle::ChTire::disc_terrain_contact ( const ChTerrain terrain,
const ChVector<> &  disc_center,
const ChVector<> &  disc_normal,
double  disc_radius,
ChCoordsys<> &  contact,
double &  depth 
)
staticprotected

Perform disc-terrain collision detection.

This utility function checks for contact between a disc of specified radius with given position and orientation (specified as the location of its center and a unit vector normal to the disc plane) and the terrain system associated with this tire. It returns true if the disc contacts the terrain and false otherwise. If contact occurrs, it returns a coordinate system with the Z axis along the contact normal and the X axis along the "rolling" direction, as well as a positive penetration depth (i.e. the height below the terrain of the lowest point on the disc).

Parameters
[in]terrainreference to terrain system
[in]disc_centerglobal location of the disc center
[in]disc_normaldisc normal, expressed in the global frame
[in]disc_radiusdisc radius
[out]contactcontact coordinate system (relative to the global frame)
[out]depthpenetration depth (positive if contact occurred)
virtual double chrono::vehicle::ChTire::GetCamberAngle ( ) const
virtual

Get the tire camber angle.

Return the camber angle calculated based on the current state of the associated wheel body. A derived class may override this function with a more appropriate calculation based on its specific tire model.

Reimplemented in chrono::vehicle::ChPacejkaTire.

virtual double chrono::vehicle::ChTire::GetLongitudinalSlip ( ) const
virtual

Get the tire longitudinal slip.

Return the longitudinal slip calculated based on the current state of the associated wheel body. A derived class may override this function with a more appropriate calculation based on its specific tire model.

Reimplemented in chrono::vehicle::ChPacejkaTire, and chrono::vehicle::ChFialaTire.

virtual double chrono::vehicle::ChTire::GetSlipAngle ( ) const
virtual

Get the tire slip angle.

Return the slip angle calculated based on the current state of the associated wheel body. A derived class may override this function with a more appropriate calculation based on its specific tire model.

Reimplemented in chrono::vehicle::ChPacejkaTire, and chrono::vehicle::ChFialaTire.

virtual TireForce chrono::vehicle::ChTire::GetTireForce ( bool  cosim = false) const
pure virtual

Get the tire force and moment.

This represents the output from this tire system that is passed to the vehicle system. Typically, the vehicle subsystem will pass the tire force to the appropriate suspension subsystem which applies it as an external force one the wheel body.

Parameters
[in]cosimindicate if the tire is co-simulated

Implemented in chrono::vehicle::ChDeformableTire, chrono::vehicle::ChPacejkaTire, chrono::vehicle::ChRigidTire, chrono::vehicle::ChFialaTire, and chrono::vehicle::ChLugreTire.

void chrono::vehicle::ChTire::Initialize ( std::shared_ptr< ChBody wheel,
VehicleSide  side 
)
virtual

Initialize this tire subsystem.

A derived class must call this base implementation (which simply caches the associated wheel body and vehicle side flag).

Parameters
[in]wheelassociated wheel body
[in]sideleft/right vehicle side

Reimplemented in chrono::vehicle::ChDeformableTire, chrono::vehicle::ChRigidTire, chrono::vehicle::ChPacejkaTire, chrono::vehicle::ChFialaTire, and chrono::vehicle::ChLugreTire.

virtual void chrono::vehicle::ChTire::Synchronize ( double  time,
const WheelState wheel_state,
const ChTerrain terrain 
)
virtual

Update the state of this tire system at the current time.

The tire system is provided the current state of its associated wheel and a handle to the terrain system.

Parameters
[in]timecurrent time
[in]wheel_statecurrent state of associated wheel body
[in]terrainreference to the terrain system

Reimplemented in chrono::vehicle::ChPacejkaTire, chrono::vehicle::ChFialaTire, and chrono::vehicle::ChLugreTire.