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) | |
Construct a RoboSimian with an implicit Chrono system. More... | |
RoboSimian (chrono::ChSystem *system, bool has_sled=false, bool fixed=false) | |
Construct a RoboSimian within the specified Chrono system. More... | |
chrono::ChSystem * | GetSystem () |
Get the containing system. | |
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 chassis subsystem. | |
void | SetVisualizationTypeSled (VisualizationType vis) |
Set visualization type for sled subsystem. | |
void | SetVisualizationTypeLimbs (VisualizationType vis) |
Set visualization type for all limb subsystems. | |
void | SetVisualizationTypeLimb (LimbID id, VisualizationType vis) |
Set visualization type for thr specified limb subsystem. | |
void | SetVisualizationTypeWheels (VisualizationType vis) |
Set visualization type for all wheel subsystem. | |
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_Chassis > | GetChassis () const |
Get a handle to the robot's chassis subsystem. | |
std::shared_ptr< chrono::ChBodyAuxRef > | GetChassisBody () const |
Get a handle to the robot's chassis body. | |
const chrono::ChVector & | GetChassisPos () const |
Get location of the chassis body. | |
const chrono::ChQuaternion & | GetChassisRot () const |
Get orientation of the chassis body. | |
std::shared_ptr< RS_Sled > | GetSled () const |
Get a handle to the robot's sled subsystem. | |
std::shared_ptr< chrono::ChBodyAuxRef > | GetSledBody () const |
Get a handle to the robot's sled body. | |
std::shared_ptr< RS_Limb > | GetLimb (LimbID id) const |
Get a handle to the robot's specified limb subsystem. | |
std::shared_ptr< chrono::ChBodyAuxRef > | GetWheelBody (LimbID id) const |
Get a handle to the wheel body for the specified limb. | |
const chrono::ChVector & | GetWheelPos (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< ChMaterialSurface > | GetChassisContactMaterial () |
Access the chassis contact material. | |
std::shared_ptr< ChMaterialSurface > | GetSledContactMaterial () |
Access the sled contact material. | |
std::shared_ptr< ChMaterialSurface > | GetWheelContactMaterial () |
Access the wheel contact material. Note that this material is shared by all wheels. | |
std::shared_ptr< ChMaterialSurface > | GetWheelDDContactMaterial () |
Access the wheelDD contact material. Note that this material is shared by all DD wheels. | |
std::shared_ptr< ChMaterialSurface > | GetLinkContactMaterial () |
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 () |
Report current contacts for all robot parts. | |
Friends | |
class | ContactMaterial |
Constructor & Destructor Documentation
◆ RoboSimian() [1/2]
chrono::robosimian::RoboSimian::RoboSimian | ( | chrono::ChContactMethod | contact_method, |
bool | has_sled = false , |
||
bool | fixed = false |
||
) |
Construct a RoboSimian with an implicit Chrono system.
- Parameters
-
contact_method contact formulation (SMC or NSC) has_sled true if robot has sled body attached to chassis fixed true if robot chassis fixed to ground
◆ RoboSimian() [2/2]
chrono::robosimian::RoboSimian::RoboSimian | ( | chrono::ChSystem * | system, |
bool | has_sled = false , |
||
bool | fixed = false |
||
) |
Construct a RoboSimian within the specified Chrono system.
- Parameters
-
system containing system has_sled true if robot has sled body attached to chassis fixed true if robot chassis fixed to ground
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/robot/robosimian/RoboSimian.h
- /builds/uwsbel/chrono/src/chrono_models/robot/robosimian/RoboSimian.cpp