chrono::vehicle::ChWheelTestRig::WheelAssembly Class Referenceabstract

Description

Definition of a wheel assembly for rig testing.

Requirements for a wheel assembly implementation:

  • GetHub() must return the body carrying the wheel, with the wheel spin axis along the body Y axis; the rig calculates the slip, camber, and steering angles from its orientation.
  • GetMass() must return the total mass supported by the wheel (wheel and, if present, suspension and steering mechanism), as available after Initialize(). GetWheelMass() is used only to size rig bodies.
  • GetRadius() and GetWidth() must be available after Initialize().
  • AddFSIBodies() must be implemented to use the assembly with CRM terrain.
  • ReportForces() should report the terrain force on the wheel (see ChWheelTestRig::CalculateTerrainForce). With a suspension, the rig uses it in TEST mode to end the drop phase once the wheel carries the normal load; if an assembly reports no force, the drop phase ends when the wheel reaches the terrain.
  • A steerable assembly must create its steering mechanism in Initialize() and provide an actuator for it through GetSteeringActuator().

#include <ChWheelTestRig.h>

Inherited by chrono::vehicle::VehicleWheelAssembly.

Collaboration diagram for chrono::vehicle::ChWheelTestRig::WheelAssembly:

Public Member Functions

virtual bool HasSuspension () const =0
 Return true if the assembly includes a suspension subsystem and false otherwise.
 
virtual std::shared_ptr< SteeringActuator > GetSteeringActuator () const
 Return the steering actuator of the wheel assembly, or null if the assembly cannot be steered (default). More...
 
virtual double GetMass () const =0
 Return the total mass of the wheel assembly.
 
virtual double GetWheelMass () const =0
 Return the mass of the wheel.
 
virtual double GetRadius () const =0
 Return the wheel assembly outer radius.
 
virtual double GetWidth () const =0
 Return the wheel assembly width.
 
virtual std::shared_ptr< ChBody > GetHub () const =0
 Get a handle to the hub body.
 
virtual void Initialize (std::shared_ptr< ChBodyAuxRef > chassis_body, const ChFramed &frame, bool fixed_wheel, double step_size, VisualizationType vis_type)
 Initialize the wheel assembly. More...
 
virtual void Synchronize (double time, const ChTerrain &terrain)
 Synchronize the wheel assembly at the current simulation time.
 
virtual void Advance (double step_size)
 Advance the wheel assembly dynamics (if any) by the given step size.
 
virtual TerrainForce ReportForces (ChTerrain &terrain) const
 Report the current resultant terrain forces and torques as applied to the hub.
 
virtual void AddOutputChannels (std::vector< ChOutput::Channel > &channels) const
 Append assembly-specific output channels to the given list (default: none). More...
 
virtual void RemoveFromSystem ()
 Remove from the containing system all physics items created by this assembly in Initialize(). More...
 

Protected Member Functions

 WheelAssembly (ChSystem &system)
 Construct the wheel assembly in the specified Chrono system. More...
 

Protected Attributes

ChSystem & system
 containing system
 

Constructor & Destructor Documentation

◆ WheelAssembly()

chrono::vehicle::ChWheelTestRig::WheelAssembly::WheelAssembly ( ChSystem &  system)
inlineprotected

Construct the wheel assembly in the specified Chrono system.

The constructor must create and set all wheel assembly parts so that its properties can be queried even before initialization.

Member Function Documentation

◆ AddOutputChannels()

virtual void chrono::vehicle::ChWheelTestRig::WheelAssembly::AddOutputChannels ( std::vector< ChOutput::Channel > &  channels) const
inlinevirtual

Append assembly-specific output channels to the given list (default: none).

The set of channels (names and order) must be the same at every call. Values should be in SI units.

◆ GetSteeringActuator()

virtual std::shared_ptr<SteeringActuator> chrono::vehicle::ChWheelTestRig::WheelAssembly::GetSteeringActuator ( ) const
inlinevirtual

Return the steering actuator of the wheel assembly, or null if the assembly cannot be steered (default).

This function is called after Initialize(). The rig holds the actuator at zero unless a steering input is specified (see ChWheelTestRig::SetSteeringAngleFunction and ChWheelTestRig::SetSteeringActuatorFunction).

◆ Initialize()

virtual void chrono::vehicle::ChWheelTestRig::WheelAssembly::Initialize ( std::shared_ptr< ChBodyAuxRef >  chassis_body,
const ChFramed &  frame,
bool  fixed_wheel,
double  step_size,
VisualizationType  vis_type 
)
inlinevirtual

Initialize the wheel assembly.

An assembly that includes a suspension subsystem should attach the suspension to the provided chassis body at the provided frame. An assembly without a suspension subsystem should only create the wheel at the provided frame and, if indicated, set it as fixed.

◆ RemoveFromSystem()

virtual void chrono::vehicle::ChWheelTestRig::WheelAssembly::RemoveFromSystem ( )
inlinevirtual

Remove from the containing system all physics items created by this assembly in Initialize().

This function is called by the test rig destructor. It should remove only items that the wheel assembly created directly; subsystems that remove their own items on destruction (e.g., wheel, tire, suspension) are not affected.


The documentation for this class was generated from the following file:
  • /builds/uwsbel/chrono/src/chrono_vehicle/wheeled_vehicle/test_rig/ChWheelTestRig.h