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.

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()
|
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()
|
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()
|
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()
|
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()
|
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