#include <FSABAlgorithm.h>
Inheritance diagram for Physsim::FSABAlgorithm:

Public Member Functions | |
| virtual void | load_state (BasePtr object, bimap< BasePtr, BasePtr > *correspondence) |
| Implements Base::load_state(). | |
| virtual void | save_state (BasePtr object, bimap< BasePtr, BasePtr > *correspondence) const |
| Implements Base::save_state(). | |
| virtual void | clone (BasePtr &cloned, bimap< BasePtr, BasePtr > *obj_map=NULL) const |
| Implements Base::clone(). | |
| virtual void | calc_fwd_dyn (RCArticulatedBodyPtr body, ReferenceFrameType rftype) |
| Computes the joint accelerations (forward dynamics) for a manipulator. | |
| 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 | |
| ReferenceFrameType | _rftype |
| The reference frame all quantities are computed in. | |
| std::vector< SVector6 > | _v |
| The spatial velocities. | |
| std::vector< SVector6 > | _a |
| The spatial accelerations. | |
| std::vector< SMatrix6 > | _Iiso |
| The spatial isolated inertias. | |
| std::vector< SMatrix6 > | _I |
| The articulated body inertias. | |
| std::vector< SVector6 > | _Z |
| The articulated body spatial zero accelerations. | |
| std::vector< SVector6 > | _c |
| The spatial coriolis vectors. | |
| std::vector< SMatrixN > | _Is |
| The expression I*s. | |
| std::vector< MatrixNN > | _sIs |
| The temporary quantity sIs. | |
| std::vector< VectorN > | _mu |
| The temporary expression Q - I*s'*c - s'*Z. | |
Implements Featherstone's algorithm for articulated bodies. Featherstone's algorithm runs in O(n) time [n = # of joints]. This implementation is based on Brian Mirtich's Ph. D. thesis, and remains pretty consistent with it. There are a couple of changes, to produce a nice implementation. The user need not be concerned with these issues, but they are useful to know for debugging.
| void FSABAlgorithm::calc_fwd_dyn | ( | RCArticulatedBodyPtr | body, | |
| ReferenceFrameType | rftype | |||
| ) | [virtual] |
Computes the joint accelerations (forward dynamics) for a manipulator.
Featherstone Algorithm taken from Mirtich's thesis (p. 113). Note that Mirtich's numbering is a little funny; I decrement his joint indices by one, while leaving his link indices intact.
Implements Physsim::RCArticulatedBodyFwdDynAlgo.
| void FSABAlgorithm::apply_impulse | ( | RCArticulatedBodyPtr | body, | |
| const Vector3 & | j, | |||
| const Vector3 & | k, | |||
| const Vector3 & | contact_point, | |||
| RigidBodyPtr | link | |||
| ) | [virtual] |
Implements RCArticulatedBodyFwdDynAlgo::apply_impulse().
Implements Physsim::RCArticulatedBodyFwdDynAlgo.
1.5.1