Description
Base class for terrain nodes that use one of the Chrono terrain formulations.
#include <ChVehicleCosimTerrainNodeChrono.h>


Classes | |
| struct | Proxy |
| Base class for a proxy associated with a co-simulation solid. More... | |
| struct | ProxyBodySet |
| Proxy bodies associated with a co-simulation solid. More... | |
| struct | ProxyMesh |
| Proxy contact mesh surface associated with a co-simulation solid. More... | |
| struct | RigidObstacle |
| Specification of a rigid obstacle. More... | |
Public Types | |
| enum class | Type { RIGID , SCM , GRANULAR_OMP , GRANULAR_GPU , GRANULAR_SPH , UNKNOWN } |
| Type of Chrono terrain. More... | |
Public Types inherited from chrono::vehicle::ChVehicleCosimBaseNode | |
| enum class | NodeType { MBS_WHEELED , MBS_TRACKED , TERRAIN , TIRE } |
| Type of node participating in co-simulation. More... | |
| enum class | InterfaceType { BODY , MESH } |
| Type of the vehicle-terrain communication interface. More... | |
Public Member Functions | |
| Type | GetType () const |
| Return the type of this terrain node. | |
| void | SetProxyFixed (bool fixed) |
| Set the proxy bodies as fixed to ground. | |
| virtual double | GetInitHeight () const override final |
| Return the terrain initial height. | |
| void | AddRigidObstacle (const RigidObstacle &obstacle) |
| Add a rigid obstacle. | |
Public Member Functions inherited from chrono::vehicle::ChVehicleCosimTerrainNode | |
| virtual NodeType | GetNodeType () const override |
| Return the node type as NodeType::TERRAIN. | |
| void | SetDimensions (double length, double width) |
| Set the terrain patch dimensions. | |
| void | GetDimensions (double &length, double &width) |
| Get the terrain patch dimensions. | |
| virtual void | Initialize () override final |
| Initialize this node. | |
| virtual void | Synchronize (int step_number, double time) override final |
| Synchronize this node. | |
| virtual void | Advance (double step_size) override final |
| Advance simulation. | |
| virtual void | OutputData (int frame) override final |
| Output logging and debugging data. | |
| virtual void | OutputVisualizationData (int frame) override |
| Output post-processing visualization data. | |
| virtual unsigned int | GetNumContacts () const |
| Return current number of contacts. | |
Public Member Functions inherited from chrono::vehicle::ChVehicleCosimBaseNode | |
| std::string | GetNodeTypeString () const |
| Return the node type as a string. | |
| bool | IsCosimNode () const |
| Return true if this node is part of the co-simulation infrastructure. | |
| void | SetStepSize (double step) |
| Set the integration step size (default: 1e-4). | |
| double | GetStepSize () const |
| Get the integration step size. | |
| void | SetOutDir (const std::string &dir_name, const std::string &suffix="") |
| Set the name of the output directory and an identifying suffix. | |
| void | SetVerbose (bool verbose) |
| Enable/disable verbose messages during simulation (default: true). | |
| void | EnableRuntimeVisualization (double render_fps=100, bool save_img=false) |
| Enable run-time visualization (default: false). | |
| void | SetCameraPosition (const ChVector3d &cam_pos, const ChVector3d &cam_target=VNULL) |
| Set camera location and target point. | |
| void | SetCameraTracking (bool track) |
| Enable/disable tracking of objects (default: true). | |
| void | EnablePostprocessVisualization (double render_fps=100) |
| Enable Blender postprocessing (default: false). | |
| const std::string & | GetOutDirName () const |
| Get the output directory name for this node. | |
| double | GetStepExecutionTime () const |
| Get the simulation execution time for the current step on this node. | |
| double | GetTotalExecutionTime () const |
| Get the cumulative simulation execution time on this node. | |
| virtual void | OnRender () |
| Render the current simulation frame. | |
| void | Render (double step_size) |
| Render simulation frame. | |
| virtual void | WriteCheckpoint (const std::string &filename) const |
| Write checkpoint to the specified file (which will be created in the output directory). | |
Static Public Member Functions | |
| static std::string | GetTypeAsString (Type type) |
| Return a string describing the type of this terrain node. | |
| static Type | GetTypeFromString (const std::string &type) |
| Infer the terrain node type from the given string. | |
| static bool | ReadSpecfile (const std::string &specfile, rapidjson::Document &d) |
| Read a JSON specification file for a Chrono terrain node. | |
| static Type | GetTypeFromSpecfile (const std::string &specfile) |
| Get the terrain type from the given JSON specification file. | |
| static ChVector2d | GetSizeFromSpecfile (const std::string &specfile) |
| Get the terrain dimensions (length and width) from the given JSON specification file. | |
Static Public Member Functions inherited from chrono::vehicle::ChVehicleCosimBaseNode | |
| static std::string | OutputFilename (const std::string &dir, const std::string &root, const std::string &ext, int frame, int frame_digits) |
| Utility function for creating an output file name. | |
Protected Member Functions | |
| ChVehicleCosimTerrainNodeChrono (Type type, double length, double width, ChContactMethod method) | |
| Construct a base class terrain node. | |
| virtual void | OnInitialize (unsigned int num_objects) override |
| Initialize this Chrono terrain node. | |
| virtual void | OnAdvance (double step_size) override |
| Advance simulation. | |
| virtual ChSystem * | GetSystem ()=0 |
| Return a pointer to the underlying Chrono system. | |
| virtual void | Construct ()=0 |
| Construct the terrain (independent of the vehicle system). | |
| virtual void | CreateRigidProxy (unsigned int i)=0 |
| Create the i-th proxy rigid. | |
| virtual void | CreateMeshProxy (unsigned int i) |
| Create the i-th proxy mesh. | |
Protected Member Functions inherited from chrono::vehicle::ChVehicleCosimTerrainNode | |
| ChVehicleCosimTerrainNode (double length, double width) | |
| Construct a terrain node to wrap a terrain patch of given length and width. | |
| virtual bool | SupportsMeshInterface () const =0 |
| Specify whether or not the terrain node supports the MESH communication interface. | |
| virtual void | OnSynchronize (int step_number, double time) |
| Perform any additional operations after the data exchange and synchronization with the MBS node. | |
| virtual void | OnOutputData (int frame) |
| Perform additional output at the specified frame (called from within OutputData). | |
| virtual void | UpdateMeshProxy (unsigned int i, MeshState &mesh_state) |
| Update the state of the i-th proxy mesh. | |
| virtual void | GetForceMeshProxy (unsigned int i, MeshContact &mesh_contact) |
| Collect cumulative contact forces on the i-th proxy mesh. | |
| virtual void | UpdateRigidProxy (unsigned int i, BodyState &rigid_state)=0 |
| Update the state of the i-th proxy rigid. | |
| virtual void | GetForceRigidProxy (unsigned int i, TerrainForce &rigid_contact)=0 |
| Collect cumulative contact force and torque on the i-th proxy rigid. | |
Protected Member Functions inherited from chrono::vehicle::ChVehicleCosimBaseNode | |
| ChVehicleCosimBaseNode (const std::string &name) | |
| virtual ChSystem * | GetSystemPostprocess () const =0 |
| Get the Chrono system that holds the visualization shapes (used only for post-processing export). | |
| void | SendGeometry (const ChVehicleGeometry &geom, int dest) const |
| Utility function to pack and send a struct with geometry information. | |
| void | RecvGeometry (ChVehicleGeometry &geom, int source) const |
| Utility function to receive and unpack a struct with geometry information. | |
| void | ProgressBar (unsigned int x, unsigned int n, unsigned int w=50) |
| Utility function to display a progress bar to the terminal. | |
Protected Attributes | |
| Type | m_type |
| terrain type | |
| ChContactMethod | m_method |
| contact method (SMC or NSC) | |
| std::shared_ptr< ChContactMaterial > | m_material_terrain |
| material properties for terrain bodies | |
| double | m_init_height |
| terrain initial height | |
| std::vector< std::shared_ptr< Proxy > > | m_proxies |
| proxies for solid objects | |
| bool | m_fixed_proxies |
| are proxies fixed to ground? | |
| std::vector< RigidObstacle > | m_obstacles |
| list of rigid obstacles | |
Protected Attributes inherited from chrono::vehicle::ChVehicleCosimTerrainNode | |
| double | m_dimX |
| patch length (X direction) | |
| double | m_dimY |
| patch width (Y direction) | |
| bool | m_wheeled |
| comm node (true: TIRE nodes, false: tracked MBS node) | |
| InterfaceType | m_interface_type |
| communication interface (body or mesh) | |
| int | m_num_objects |
| number of interacting objects | |
| std::vector< ChAABB > | m_aabb |
| AABB of collision models for interacting objects. | |
| std::vector< ChVehicleGeometry > | m_geometry |
| contact geometry and materials for interacting objects | |
| std::vector< double > | m_load_mass |
| vertical load on interacting objects | |
| std::vector< int > | m_obj_map |
| mapping from interacting object to shape | |
| std::vector< MeshState > | m_mesh_state |
| mesh state (used for MESH communication) | |
| std::vector< BodyState > | m_rigid_state |
| rigid state (used for BODY communication interface) | |
| std::vector< MeshContact > | m_mesh_contact |
| mesh contact forces (used for MESH communication interface) | |
| std::vector< TerrainForce > | m_rigid_contact |
| rigid contact force (used for BODY communication interface) | |
Protected Attributes inherited from chrono::vehicle::ChVehicleCosimBaseNode | |
| int | m_rank |
| MPI rank of this node (in MPI_COMM_WORLD) | |
| double | m_step_size |
| integration step size | |
| std::string | m_name |
| name of the node | |
| std::string | m_out_dir |
| top-level output directory | |
| std::string | m_node_out_dir |
| node-specific output directory | |
| std::ofstream | m_outf |
| output file stream | |
| bool | m_renderRT |
| if true, perform run-time rendering | |
| bool | m_renderRT_all |
| if true, render all frames | |
| double | m_renderRT_step |
| time step between rendered frames | |
| bool | m_writeRT |
| if true, write images to file | |
| bool | m_renderPP |
| if true, save data for post-processing | |
| bool | m_renderPP_all |
| if true, save data at all frames | |
| double | m_renderPP_step |
| time step between post-processing save frames | |
| bool | m_track |
| track objects | |
| ChVector3d | m_cam_pos |
| camera location | |
| ChVector3d | m_cam_target |
| camera target (lookat) point | |
| unsigned int | m_num_wheeled_mbs_nodes |
| unsigned int | m_num_tracked_mbs_nodes |
| unsigned int | m_num_terrain_nodes |
| unsigned int | m_num_tire_nodes |
| ChTimer | m_timer |
| timer for integration cost | |
| double | m_cum_sim_time |
| cumulative integration cost | |
| bool | m_verbose |
| verbose messages during simulation? | |
Additional Inherited Members | |
Static Protected Attributes inherited from chrono::vehicle::ChVehicleCosimBaseNode | |
| static const double | m_gacc = -9.81 |
Member Enumeration Documentation
◆ Type
|
strong |
Type of Chrono terrain.
Constructor & Destructor Documentation
◆ ChVehicleCosimTerrainNodeChrono()
|
protected |
Construct a base class terrain node.
- Parameters
-
type terrain type length terrain patch length width terain patch width method contact method (SMC or NSC)
Member Function Documentation
◆ CreateMeshProxy()
|
inlineprotectedvirtual |
Create the i-th proxy mesh.
Use information in the m_geometry struct (collision geometry expressed in local frame).
◆ CreateRigidProxy()
|
protectedpure virtual |
Create the i-th proxy rigid.
Use information in the m_geometry struct (collision geometry expressed in local frame).
◆ GetInitHeight()
|
inlinefinaloverridevirtual |
Return the terrain initial height.
Implements chrono::vehicle::ChVehicleCosimTerrainNode.
◆ GetSystem()
|
protectedpure virtual |
Return a pointer to the underlying Chrono system.
Implemented in chrono::vehicle::ChVehicleCosimTerrainNodeGranularGPU, chrono::vehicle::ChVehicleCosimTerrainNodeGranularOMP, chrono::vehicle::ChVehicleCosimTerrainNodeGranularSPH, chrono::vehicle::ChVehicleCosimTerrainNodeRigid, and chrono::vehicle::ChVehicleCosimTerrainNodeSCM.
◆ OnAdvance()
|
overrideprotectedvirtual |
Advance simulation.
This function is called after a synchronization to allow the node to advance its state by the specified time step. A node is allowed to take as many internal integration steps as required, but no inter-node communication should occur.
Implements chrono::vehicle::ChVehicleCosimTerrainNode.
◆ OnInitialize()
|
overrideprotectedvirtual |
Initialize this Chrono terrain node.
Construct the terrain system and the proxy bodies.
Implements chrono::vehicle::ChVehicleCosimTerrainNode.
Reimplemented in chrono::vehicle::ChVehicleCosimTerrainNodeGranularGPU, chrono::vehicle::ChVehicleCosimTerrainNodeGranularOMP, chrono::vehicle::ChVehicleCosimTerrainNodeGranularSPH, chrono::vehicle::ChVehicleCosimTerrainNodeRigid, and chrono::vehicle::ChVehicleCosimTerrainNodeSCM.
The documentation for this class was generated from the following files:
- C:/M/B/src/chrono-9.0.1/src/chrono_vehicle/cosim/terrain/ChVehicleCosimTerrainNodeChrono.h
- C:/M/B/src/chrono-9.0.1/src/chrono_vehicle/cosim/terrain/ChVehicleCosimTerrainNodeChrono.cpp
Public Types inherited from