Description

Base class definition for all Viper parts.

Viper Rover Parts include Chassis, Steering, Upper Suspension Arm, Bottom Suspension Arm and Wheel.

#include <Viper.h>

Inheritance diagram for chrono::viper::ViperPart:
Collaboration diagram for chrono::viper::ViperPart:

Public Member Functions

 ViperPart (const std::string &name, const ChFrame<> &rel_pos, std::shared_ptr< ChMaterialSurface > mat, bool collide)
 
const std::string & GetName () const
 Return the name of the part.
 
void SetName (const std::string &name)
 Set the name of the part.
 
void SetVisualize (bool state)
 Enable/disable visualization.
 
void SetCollide (bool state)
 Enable/disable collision.
 
void Initialize (std::shared_ptr< ChBodyAuxRef > chassis)
 Initialize the rover part by attaching it to the specified chassis body.
 
std::shared_ptr< ChBodyAuxRefGetBody () const
 Return the ChBody of the corresponding Viper part.
 
const ChVectorGetPos () const
 Return the position of the Viper part. More...
 
const ChQuaternionGetRot () const
 Return the rotation of the Viper part. More...
 
const ChVectorGetLinVel () const
 Return the linear velocity of the Viper part. More...
 
const ChVector GetAngVel () const
 Return the angular velocity of the Viper part. More...
 
const ChVectorGetLinAcc () const
 Return the linear acceleration of the Viper part. More...
 
const ChVector GetAngAcc () const
 Return the angular acceleratino of the Viper part. More...
 

Protected Member Functions

void CalcMassProperties (double density)
 Utility function for calculating mass properties using the part's collision mesh.
 
void Construct (ChSystem *system)
 Construct the part body.
 

Protected Attributes

std::string m_name
 part name
 
std::shared_ptr< ChBodyAuxRefm_body
 part rigid body
 
std::shared_ptr< ChMaterialSurfacem_mat
 contact material
 
std::string m_mesh_name
 visualization mesh name
 
ChFrame m_mesh_xform
 mesh transform (translate, rotate, scale)
 
ChColor m_color
 visualization asset color
 
ChFrame m_pos
 relative position wrt the chassis
 
double m_mass
 mass
 
ChVector m_inertia
 principal moments of inertia
 
ChFrame m_cog
 COG frame (relative to body frame)
 
bool m_visualize
 part visualization flag
 
bool m_collide
 part collision flag
 

Constructor & Destructor Documentation

◆ ViperPart()

chrono::viper::ViperPart::ViperPart ( const std::string &  name,
const ChFrame<> &  rel_pos,
std::shared_ptr< ChMaterialSurface mat,
bool  collide 
)
Parameters
namepart name
rel_posposition relative to chassis frame
matcontact material
collideenable collision?

Member Function Documentation

◆ GetAngAcc()

const ChVector chrono::viper::ViperPart::GetAngAcc ( ) const
inline

Return the angular acceleratino of the Viper part.

This is the absolute angular acceleratin of the part reference frame.

◆ GetAngVel()

const ChVector chrono::viper::ViperPart::GetAngVel ( ) const
inline

Return the angular velocity of the Viper part.

This is the absolute angular velocity of the part reference frame.

◆ GetLinAcc()

const ChVector& chrono::viper::ViperPart::GetLinAcc ( ) const
inline

Return the linear acceleration of the Viper part.

This is the absolute linear acceleration of the part reference frame.

◆ GetLinVel()

const ChVector& chrono::viper::ViperPart::GetLinVel ( ) const
inline

Return the linear velocity of the Viper part.

This is the absolute linear velocity of the part reference frame.

◆ GetPos()

const ChVector& chrono::viper::ViperPart::GetPos ( ) const
inline

Return the position of the Viper part.

This is the absolute location of the part reference frame.

◆ GetRot()

const ChQuaternion& chrono::viper::ViperPart::GetRot ( ) const
inline

Return the rotation of the Viper part.

This is the orientation wrt the global frame of the part reference frame.


The documentation for this class was generated from the following files:
  • /builds/uwsbel/chrono/src/chrono_models/robot/viper/Viper.h
  • /builds/uwsbel/chrono/src/chrono_models/robot/viper/Viper.cpp