Choreonoid  1.8
Public Member Functions | Public Attributes | List of all members
cnoid::ForwardDynamicsCBM Class Reference

#include <ForwardDynamicsCBM.h>

Inheritance diagram for cnoid::ForwardDynamicsCBM:
cnoid::ForwardDynamics

Public Member Functions

 ForwardDynamicsCBM (DySubBody *subBody)
 
 ~ForwardDynamicsCBM ()
 
virtual void initialize ()
 
virtual void calcNextState ()
 
virtual void refreshState ()
 
void complementHighGainModeCommandValues ()
 
void initializeAccelSolver ()
 
void sumExternalForces ()
 
void solveUnknownAccels ()
 
void solveUnknownAccels (const Vector3 &fext, const Vector3 &tauext)
 
bool solveUnknownAccels (DyLink *link, const Vector3 &fext, const Vector3 &tauext, const Vector3 &rootfext, const Vector3 &roottauext)
 
- Public Member Functions inherited from cnoid::ForwardDynamics
EIGEN_MAKE_ALIGNED_OPERATOR_NEW ForwardDynamics (DySubBody *subBody)
 
virtual ~ForwardDynamics ()
 
void setGravityAcceleration (const Vector3 &g)
 
void setEulerMethod ()
 
void setRungeKuttaMethod ()
 
void setTimeStep (double timeStep)
 
void enableSensors (bool on)
 
void setOldAccelSensorCalcMode (bool on)
 

Public Attributes

 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
 

Additional Inherited Members

- Protected Types inherited from cnoid::ForwardDynamics
enum  { EULER_METHOD, RUNGEKUTTA_METHOD }
 
- Static Protected Member Functions inherited from cnoid::ForwardDynamics
static void SE3exp (Isometry3 &out_T, const Isometry3 &T0, const Vector3 &w, const Vector3 &vo, double dt)
 update position/orientation using spatial velocity More...
 
- Protected Attributes inherited from cnoid::ForwardDynamics
DySubBodyPtr subBody
 
Vector3 g
 
double timeStep
 
bool sensorsEnabled
 
BasicSensorSimulationHelper sensorHelper
 
enum cnoid::ForwardDynamics:: { ... }  integrationMode
 

Detailed Description

The ForwardDynamicsCBM class calculates the forward dynamics using the motion equation based on the generalized mass matrix. The class is mainly used for a body that has high-gain mode joints. If all the joints of a body are the torque mode, the ForwardDynamicsABM, which uses the articulated body method, is more efficient.

Constructor & Destructor Documentation

◆ ForwardDynamicsCBM()

ForwardDynamicsCBM::ForwardDynamicsCBM ( DySubBody subBody)

◆ ~ForwardDynamicsCBM()

ForwardDynamicsCBM::~ForwardDynamicsCBM ( )

Member Function Documentation

◆ calcNextState()

void ForwardDynamicsCBM::calcNextState ( )
virtual

◆ complementHighGainModeCommandValues()

void ForwardDynamicsCBM::complementHighGainModeCommandValues ( )

◆ initialize()

void ForwardDynamicsCBM::initialize ( )
virtual

◆ initializeAccelSolver()

void ForwardDynamicsCBM::initializeAccelSolver ( )

◆ refreshState()

void ForwardDynamicsCBM::refreshState ( )
virtual

◆ solveUnknownAccels() [1/3]

void ForwardDynamicsCBM::solveUnknownAccels ( )

◆ solveUnknownAccels() [2/3]

void ForwardDynamicsCBM::solveUnknownAccels ( const Vector3 fext,
const Vector3 tauext 
)

◆ solveUnknownAccels() [3/3]

bool ForwardDynamicsCBM::solveUnknownAccels ( DyLink link,
const Vector3 fext,
const Vector3 tauext,
const Vector3 rootfext,
const Vector3 roottauext 
)

This is called from ConstraintForceSolver.

Returns
This function returns true if the accelerations can be calculated for the axes of unkown motion. If there is no axis of unkown motion, the function returns false.

◆ sumExternalForces()

void ForwardDynamicsCBM::sumExternalForces ( )

Member Data Documentation

◆ EIGEN_MAKE_ALIGNED_OPERATOR_NEW

cnoid::ForwardDynamicsCBM::EIGEN_MAKE_ALIGNED_OPERATOR_NEW

The documentation for this class was generated from the following files: