Description
Concrete class for a flat horizontal terrain with an uneven area.
This class implements a terrain modeled as an infinite horizontal plane at a specified height. This type of terrain can be used in conjunction with tire models that perform their own collision detection (e.g. ChPacejkaTire, ChFiala, and ChLugreTire).
#include <RandomSurfaceTerrain.h>
Public Member Functions | |
RandomSurfaceTerrain (ChSystem *system, double length=300.0, double width=5.0, double height=0.0, float friction=0.8f) | |
virtual double | GetHeight (const ChVector<> &loc) const override |
Get the terrain height below the specified location. More... | |
virtual ChVector | GetNormal (const ChVector<> &loc) const override |
Get the terrain normal at the point below the specified location. More... | |
virtual float | GetCoefficientFriction (const ChVector<> &loc) const override |
Get the terrain coefficient of friction at the point below the specified location. More... | |
double | GetRMS () |
Get the (detrended) root mean square of the tracks, height offset is not considered [m]. | |
double | GetIRI () |
Get the International Roughness Index, estimated from unevenness and waviness [m/km]. | |
void | Initialize (RandomSurfaceTerrain::SurfaceType surfType=RandomSurfaceTerrain::SurfaceType::FLAT, double vehicleTrackWidth=2.0, RandomSurfaceTerrain::VisualisationType vType=RandomSurfaceTerrain::VisualisationType::MESH) |
Select a road surface from presets, ISO 8608 and literature. | |
void | Initialize (double unevenness, double waviness=2.0, double vehicleTrackWidth=2.0, bool considerCorrelation=true, RandomSurfaceTerrain::VisualisationType vType=RandomSurfaceTerrain::VisualisationType::MESH) |
Directly generate a road surface from unevenness and waviness, optional consideration of correlation, if unevenness fits between ISO classes A to E. | |
void | Initialize (double iri, double vehicleTrackWidth=2.0, bool considerCorrelation=true, RandomSurfaceTerrain::VisualisationType vType=RandomSurfaceTerrain::VisualisationType::MESH) |
Directly generate a road surface from International Roughness Index [mm/m], optional consideration of correlation, if unevenness fits between ISO classes A to E. | |
Public Member Functions inherited from chrono::vehicle::ChTerrain | |
virtual void | Synchronize (double time) |
Update the state of the terrain system at the specified time. | |
virtual void | Advance (double step) |
Advance the state of the terrain system by the specified duration. | |
void | RegisterFrictionFunctor (FrictionFunctor *functor) |
Specify the functor object to provide the coefficient of friction at given (x,y) locations. | |
Additional Inherited Members | |
Protected Attributes inherited from chrono::vehicle::ChTerrain | |
FrictionFunctor * | m_friction_fun |
functor for location-dependent coefficient of friction | |
Constructor & Destructor Documentation
◆ RandomSurfaceTerrain()
chrono::vehicle::RandomSurfaceTerrain::RandomSurfaceTerrain | ( | ChSystem * | system, |
double | length = 300.0 , |
||
double | width = 5.0 , |
||
double | height = 0.0 , |
||
float | friction = 0.8f |
||
) |
- Parameters
-
[in] system pointer to the containing multibody system [in] length uneven terrain length [in] width uneven terrain width [in] height terrain height offset [in] friction terrain coefficient of friction
Member Function Documentation
◆ GetCoefficientFriction()
|
overridevirtual |
Get the terrain coefficient of friction at the point below the specified location.
This coefficient of friction value may be used by certain tire models to modify the tire characteristics, but it will have no effect on the interaction of the terrain with other objects (including tire models that do not explicitly use it). For RandomSurfaceTerrain, this function defers to the user-provided functor object of type ChTerrain::FrictionFunctor, if one was specified. Otherwise, it returns the constant value specified at construction.
Reimplemented from chrono::vehicle::ChTerrain.
◆ GetHeight()
|
overridevirtual |
Get the terrain height below the specified location.
Returns the constant value passed at construction.
Reimplemented from chrono::vehicle::ChTerrain.
◆ GetNormal()
|
overridevirtual |
Get the terrain normal at the point below the specified location.
Returns a constant unit vector along the vertical axis.
Reimplemented from chrono::vehicle::ChTerrain.
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono_vehicle/terrain/RandomSurfaceTerrain.h
- /builds/uwsbel/chrono/src/chrono_vehicle/terrain/RandomSurfaceTerrain.cpp