Choreonoid  1.8
Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
cnoid::ForwardDynamics Class Referenceabstract

#include <ForwardDynamics.h>

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

Public Member Functions

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)
 
virtual void initialize ()=0
 
virtual void calcNextState ()=0
 
virtual void refreshState ()=0
 

Protected Types

enum  { EULER_METHOD, RUNGEKUTTA_METHOD }
 

Protected Member Functions

virtual void initializeSensors ()
 

Static Protected Member Functions

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

DySubBodyPtr subBody
 
Vector3 g
 
double timeStep
 
bool sensorsEnabled
 
BasicSensorSimulationHelper sensorHelper
 
enum cnoid::ForwardDynamics:: { ... }  integrationMode
 

Detailed Description

This class calculates the forward dynamics of a Body object by using the Featherstone's articulated body algorithm. The class also integrates motion using the Euler method or RungeKutta method.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protected
Enumerator
EULER_METHOD 
RUNGEKUTTA_METHOD 

Constructor & Destructor Documentation

◆ ForwardDynamics()

ForwardDynamics::ForwardDynamics ( DySubBody subBody)

◆ ~ForwardDynamics()

ForwardDynamics::~ForwardDynamics ( )
virtual

Member Function Documentation

◆ calcNextState()

virtual void cnoid::ForwardDynamics::calcNextState ( )
pure virtual

◆ enableSensors()

void ForwardDynamics::enableSensors ( bool  on)

◆ initialize()

virtual void cnoid::ForwardDynamics::initialize ( )
pure virtual

◆ initializeSensors()

void ForwardDynamics::initializeSensors ( )
protectedvirtual

◆ refreshState()

virtual void cnoid::ForwardDynamics::refreshState ( )
pure virtual

◆ SE3exp()

void ForwardDynamics::SE3exp ( Isometry3 out_T,
const Isometry3 T0,
const Vector3 w,
const Vector3 vo,
double  dt 
)
staticprotected

update position/orientation using spatial velocity

function from Murray, Li and Sastry p.42

Parameters
out_TT(t+dt)
T0T(t)
wangular velocity
vospatial velocity
dttime step[s]

◆ setEulerMethod()

void ForwardDynamics::setEulerMethod ( )

◆ setGravityAcceleration()

void ForwardDynamics::setGravityAcceleration ( const Vector3 g)

◆ setOldAccelSensorCalcMode()

void ForwardDynamics::setOldAccelSensorCalcMode ( bool  on)

◆ setRungeKuttaMethod()

void ForwardDynamics::setRungeKuttaMethod ( )

◆ setTimeStep()

void ForwardDynamics::setTimeStep ( double  timeStep)

Member Data Documentation

◆ g

Vector3 cnoid::ForwardDynamics::g
protected

◆ integrationMode

enum { ... } cnoid::ForwardDynamics::integrationMode

◆ sensorHelper

BasicSensorSimulationHelper cnoid::ForwardDynamics::sensorHelper
protected

◆ sensorsEnabled

bool cnoid::ForwardDynamics::sensorsEnabled
protected

◆ subBody

DySubBodyPtr cnoid::ForwardDynamics::subBody
protected

◆ timeStep

double cnoid::ForwardDynamics::timeStep
protected

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