chrono::robosimian::RoboSimian Class Reference

Description

RoboSimian robot model.

The robot model consists of a chassis (torso) with an attached sled and four limbs (legs).

#include <RoboSimian.h>

Public Member Functions

 RoboSimian (chrono::ChContactMethod contact_method, bool has_sled=false, bool fixed=false)
 
 RoboSimian (chrono::ChSystem *system, bool has_sled=false, bool fixed=false)
 
chrono::ChSystemGetSystem ()
 
void SetMotorActuationMode (ActuationMode mode)
 Set actuation type for wheel motors (default: SPEED)
 
void SetCollide (int flags)
 Set collision flags for the various subsystems. More...
 
void SetFrictionCoefficients (float sled_friction, float wheel_friction)
 Set coefficients of friction for sled-terrain and wheel-terrain contacts. More...
 
void SetDriver (std::shared_ptr< RS_Driver > driver)
 Attach a driver system.
 
void SetVisualizationTypeChassis (VisualizationType vis)
 Set visualization type for individual robot subsystems.
 
void SetVisualizationTypeSled (VisualizationType vis)
 
void SetVisualizationTypeLimbs (VisualizationType vis)
 
void SetVisualizationTypeLimb (LimbID id, VisualizationType vis)
 
void SetVisualizationTypeWheels (VisualizationType vis)
 
void SetOutputDirectory (const std::string &outdir, const std::string &root="results")
 Set output directory.
 
double GetMass () const
 Get the total mass of the robot.
 
std::shared_ptr< RS_ChassisGetChassis () const
 Get a handle to the robot's chassis subsystem.
 
std::shared_ptr< chrono::ChBodyAuxRefGetChassisBody () const
 Get a handle to the robot's chassis body.
 
const chrono::ChVectorGetChassisPos () const
 Get location of the chassis body.
 
const chrono::ChQuaternionGetChassisRot () const
 Get orientation of the chassis body.
 
std::shared_ptr< RS_SledGetSled () const
 Get a handle to the robot's sled subsystem.
 
std::shared_ptr< chrono::ChBodyAuxRefGetSledBody () const
 Get a handle to the robot's sled body.
 
std::shared_ptr< RS_LimbGetLimb (LimbID id) const
 Get a handle to the robot's specified limb subsystem.
 
std::shared_ptr< chrono::ChBodyAuxRefGetWheelBody (LimbID id) const
 Get a handle to the wheel body for the specified limb.
 
const chrono::ChVectorGetWheelPos (LimbID id) const
 Get location of the wheel body for the specified limb.
 
chrono::ChVector GetWheelAngVelocity (LimbID id) const
 Get angular velocity of the wheel body for the specified limb (expressed in local coordinates).
 
double GetWheelAngle (LimbID id) const
 Get wheel angle for the specified limb.
 
double GetWheelOmega (LimbID id) const
 Get wheel angular speed for the specified limb.
 
std::array< double, 8 > GetMotorAngles (LimbID id)
 Get angles for all 8 limb motors.
 
std::array< double, 8 > GetMotorOmegas (LimbID id)
 Get angular velocities for all 8 limb motors.
 
std::array< double, 8 > GetMotorTorques (LimbID id)
 Get actuator torques for all 8 limb motors.
 
std::shared_ptr< ChMaterialSurfaceGetChassisContactMaterial ()
 Access the chassis contact material.
 
std::shared_ptr< ChMaterialSurfaceGetSledContactMaterial ()
 Access the sled contact material.
 
std::shared_ptr< ChMaterialSurfaceGetWheelContactMaterial ()
 Access the wheel contact material. Note that this material is shared by all wheels.
 
std::shared_ptr< ChMaterialSurfaceGetWheelDDContactMaterial ()
 Access the wheelDD contact material. Note that this material is shared by all DD wheels.
 
std::shared_ptr< ChMaterialSurfaceGetLinkContactMaterial ()
 Access the link contact material. Note that this material is shared by all non-wheel links.
 
void Initialize (const chrono::ChCoordsys<> &pos)
 Initialize the robot at the specified chassis position and orientation.
 
void Activate (LimbID id, const std::string &motor_name, double time, double val)
 Directly activate the specified motor on the specified limb.
 
void DoStepDynamics (double step)
 Advance dynamics of underlying system. More...
 
void Translate (const chrono::ChVector<> &shift)
 Translate all robot bodies by the specified value.
 
void Output ()
 Output current data.
 
void ReportContacts ()
 

Friends

class ContactMaterial
 

Member Function Documentation

◆ DoStepDynamics()

void chrono::robosimian::RoboSimian::DoStepDynamics ( double  step)

Advance dynamics of underlying system.

If a driver system is specified, apply motor actuations at current time.

◆ SetCollide()

void chrono::robosimian::RoboSimian::SetCollide ( int  flags)

Set collision flags for the various subsystems.

By default, collision is enabled for the sled and wheels only. The 'flags' argument can be any of the CollisionFlag enums, or a combination thereof (using bit-wise operators).

◆ SetFrictionCoefficients()

void chrono::robosimian::RoboSimian::SetFrictionCoefficients ( float  sled_friction,
float  wheel_friction 
)

Set coefficients of friction for sled-terrain and wheel-terrain contacts.

Default values: 0.8.


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