Physsim::CRBAlgorithm Class Reference

Class for an articulated body using Featherstone's composite-rigid body method for forward dynamics. More...

#include <CRBAlgorithm.h>

Inheritance diagram for Physsim::CRBAlgorithm:

Physsim::RCArticulatedBodyFwdDynAlgo Physsim::Base List of all members.

Public Member Functions

virtual void clone (BasePtr &cloned, bimap< BasePtr, BasePtr > *obj_map=NULL) const
 Implements Base::clone().
virtual void load_state (BaseConstPtr object, bimap< BasePtr, BasePtr > *correspondence=NULL)
 Implements Base::load_state().
virtual void save_state (BasePtr object, bimap< BasePtr, BasePtr > *correspondence=NULL) const
 Implements Base::save_state().
virtual void calc_fwd_dyn (RCArticulatedBodyPtr body, ReferenceFrameType rftype)
 Executes the composite rigid-body method.
virtual void apply_impulse (RCArticulatedBodyPtr body, const Vector3 &j, const Vector3 &k, const Vector3 &contact_point, RigidBodyPtr link)
 Implements RCArticulatedBodyFwdDynAlgo::apply_impulse().
virtual void load_from_xml (XMLTreeConstPtr node, std::map< std::string, BasePtr > &id_map)
 Implements Base::load_from_xml().
virtual void save_to_xml (XMLTreePtr node, std::list< BaseConstPtr > &shared_objects) const
 Implements Base::save_to_xml().

Public Attributes

std::vector< SVector6_v
 The vector of spatial velocities determined in last call to calc_fwd_dyn().
SVector6 _a0
 The spatial acceleration of the base computed on the last call to calc_fwd_dyn().
VectorN _qdd
 The vector of joint accelerations computed on the last call to calc_fwd_dyn().
std::vector< SMatrix6_Iiso
 The spatial isolated inertias.
SMatrix6 _Ic0
 The composite spatial inertia matrix for the base (only for floating bases) computed on the last call to calc_fwd_dyn().
SVector6 _f0
 The spatial vector of forces on the base (only for floating-bases) computed on the last call to calc_fwd_dyn().
SMatrixN _K
 The matrix "K" as described by Featherstone on p. 123 computed in the last call to calc_fwd_dyn().
MatrixNN _inv_aug
 The inverse of the augmented matrix [I_0^c K; K^s H] used to compute forward dynamics for floating bases (see [Featherstone 1987], p. 123); note that we compute this b/c we generally may need to solve multiple systems of linear equations using this matrix as a LHS at different times.
MatrixNN _H
 The joint-space inertia matrix computed in the last call to calc_fwd_dyn().
MatrixNN _inv_H
 The inverse of H (note: we compute this b/c we generally may need to solve multiple systems of linear equations using H as a LHS at different times).
VectorN _Q
 The vector of joint actuator forces used in the last call to calc_fwd_dyn().
VectorN _C
 The vector "C" (as called by Featherstone) used in the last call to calc_fwd_dyn().

Detailed Description

Class for an articulated body using Featherstone's composite-rigid body method for forward dynamics.


Member Function Documentation

void CRBAlgorithm::apply_impulse ( RCArticulatedBodyPtr  body,
const Vector3 jj,
const Vector3 jk,
const Vector3 point,
RigidBodyPtr  link 
) [virtual]

Implements RCArticulatedBodyFwdDynAlgo::apply_impulse().

Precondition:
forward dynamics have been computed already by calc_fwd_dyn()

Implements Physsim::RCArticulatedBodyFwdDynAlgo.


Member Data Documentation

VectorN Physsim::CRBAlgorithm::_C

The vector "C" (as called by Featherstone) used in the last call to calc_fwd_dyn().

This vector is a sum of the Coriolis, centrifugal, and other forces on the body (all forces except actuator forces).


The documentation for this class was generated from the following files:
Generated on Wed Oct 24 14:54:22 2007 for Physsim by  doxygen 1.5.1