DART
6.7.3
|
A Linkage is a ReferentialSkeleton with the special property that all the BodyNodes included in it form a contiguous graph. More...
#include <Linkage.hpp>
Classes | |
struct | Criteria |
The Criteria class is used to specify how a Linkage should be constructed. More... | |
Public Types | |
using | NameChangedSignal = common::Signal< void(std::shared_ptr< const MetaSkeleton > _skeleton, const std::string &_oldName, const std::string &_newName)> |
Public Member Functions | |
LinkagePtr | cloneLinkage () const |
Creates and returns a clone of this Linkage. More... | |
LinkagePtr | cloneLinkage (const std::string &cloneName) const |
Creates and returns a clone of this Linkage. More... | |
MetaSkeletonPtr | cloneMetaSkeleton (const std::string &cloneName) const override |
Creates an identical clone of this MetaSkeleton. More... | |
bool | isAssembled () const |
Returns false if the original assembly of this Linkage has been broken in some way. More... | |
void | reassemble () |
Revert the assembly of this Linkage to its original structure. More... | |
void | satisfyCriteria () |
Redefine this Linkage so that its Criteria is satisfied. More... | |
virtual MetaSkeletonPtr | cloneMetaSkeleton (const std::string &cloneName) const=0 |
Creates an identical clone of this MetaSkeleton. More... | |
MetaSkeletonPtr | cloneMetaSkeleton () const |
Creates an identical clone of this MetaSkeleton. More... | |
std::unique_ptr< common::LockableReference > | getLockableReference () const override |
Returns mutex. More... | |
MetaSkeletonPtr | cloneMetaSkeleton () const |
Creates an identical clone of this MetaSkeleton. More... | |
Name | |
const std::string & | setName (const std::string &_name) override |
Set the name of this MetaSkeleton. More... | |
const std::string & | getName () const override |
Get the name of this MetaSkeleton. More... | |
Structural Properties | |
std::size_t | getNumSkeletons () const |
Returns number of skeletons associated with this ReferentialSkeleton. More... | |
bool | hasSkeleton (const Skeleton *skel) const |
Returns whether this ReferentialSkeleton contains any BodyNode or Joint from skel . More... | |
std::size_t | getNumBodyNodes () const override |
Get number of body nodes. More... | |
BodyNode * | getBodyNode (std::size_t _idx) override |
Get BodyNode whose index is _idx. More... | |
const BodyNode * | getBodyNode (std::size_t _idx) const override |
Get const BodyNode whose index is _idx. More... | |
BodyNode * | getBodyNode (const std::string &name) override |
Returns the BodyNode of given name. More... | |
const BodyNode * | getBodyNode (const std::string &name) const override |
Returns the BodyNode of given name. More... | |
const std::vector< BodyNode * > & | getBodyNodes () override |
Get all the BodyNodes that are held by this MetaSkeleton. More... | |
const std::vector< const BodyNode * > & | getBodyNodes () const override |
Get all the BodyNodes that are held by this MetaSkeleton. More... | |
std::vector< BodyNode * > | getBodyNodes (const std::string &name) override |
Returns all the BodyNodes of given name. More... | |
std::vector< const BodyNode * > | getBodyNodes (const std::string &name) const override |
Returns all the BodyNodes of given name. More... | |
bool | hasBodyNode (const BodyNode *bodyNode) const override |
Returns whether this Skeleton contains bodyNode . More... | |
std::size_t | getIndexOf (const BodyNode *_bn, bool _warning=true) const override |
Get the index of a specific BodyNode within this ReferentialSkeleton. More... | |
std::size_t | getIndexOf (const Joint *_joint, bool _warning=true) const override |
Get the index of a specific Joint within this ReferentialSkeleton. More... | |
std::size_t | getIndexOf (const DegreeOfFreedom *_dof, bool _warning=true) const override |
Get the index of a specific DegreeOfFreedom within this ReferentialSkeleton. More... | |
std::size_t | getNumJoints () const override |
Get number of Joints. More... | |
Joint * | getJoint (std::size_t _idx) override |
Get Joint whose index is _idx. More... | |
const Joint * | getJoint (std::size_t _idx) const override |
Get const Joint whose index is _idx. More... | |
Joint * | getJoint (const std::string &name) override |
Returns the Joint of given name. More... | |
const Joint * | getJoint (const std::string &name) const override |
Returns the Joint of given name. More... | |
std::vector< Joint * > | getJoints () override |
Returns all the joints that are held by this MetaSkeleton. More... | |
std::vector< const Joint * > | getJoints () const override |
Returns all the joints that are held by this MetaSkeleton. More... | |
std::vector< Joint * > | getJoints (const std::string &name) override |
Returns all the Joint of given name. More... | |
std::vector< const Joint * > | getJoints (const std::string &name) const override |
Returns all the Joint of given name. More... | |
bool | hasJoint (const Joint *joint) const override |
Returns whether this Skeleton contains join . More... | |
std::size_t | getNumDofs () const override |
Return the number of degrees of freedom in this skeleton. More... | |
DegreeOfFreedom * | getDof (std::size_t _idx) override |
Get degree of freedom (aka generalized coordinate) whose index is _idx. More... | |
const DegreeOfFreedom * | getDof (std::size_t _idx) const override |
Get degree of freedom (aka generalized coordinate) whose index is _idx. More... | |
const std::vector< DegreeOfFreedom * > & | getDofs () override |
Get the vector of DegreesOfFreedom for this MetaSkeleton. More... | |
std::vector< const DegreeOfFreedom * > | getDofs () const override |
Get a vector of const DegreesOfFreedom for this MetaSkeleton. More... | |
Jacobians | |
math::Jacobian | getJacobian (const JacobianNode *_node) const override |
Get the spatial Jacobian targeting the origin of a BodyNode. More... | |
math::Jacobian | getJacobian (const JacobianNode *_node, const Frame *_inCoordinatesOf) const override |
Get the spatial Jacobian targeting the origin of a BodyNode. More... | |
math::Jacobian | getJacobian (const JacobianNode *_node, const Eigen::Vector3d &_localOffset) const override |
Get the spatial Jacobian targeting an offset in a BodyNode. More... | |
math::Jacobian | getJacobian (const JacobianNode *_node, const Eigen::Vector3d &_localOffset, const Frame *_inCoordinatesOf) const override |
Get the spatial Jacobian targeting an offset in a BodyNode. More... | |
math::Jacobian | getWorldJacobian (const JacobianNode *_node) const override |
Get the spatial Jacobian targeting the origin of a BodyNode. More... | |
math::Jacobian | getWorldJacobian (const JacobianNode *_node, const Eigen::Vector3d &_localOffset) const override |
Get the spatial Jacobian targeting an offset in a BodyNode. More... | |
math::LinearJacobian | getLinearJacobian (const JacobianNode *_node, const Frame *_inCoordinatesOf=Frame::World()) const override |
Get the linear Jacobian targeting the origin of a BodyNode. More... | |
math::LinearJacobian | getLinearJacobian (const JacobianNode *_node, const Eigen::Vector3d &_localOffset, const Frame *_inCoordinatesOf=Frame::World()) const override |
Get the linear Jacobian targeting an offset in a BodyNode. More... | |
math::AngularJacobian | getAngularJacobian (const JacobianNode *_node, const Frame *_inCoordinatesOf=Frame::World()) const override |
Get the angular Jacobian of a BodyNode. More... | |
math::Jacobian | getJacobianSpatialDeriv (const JacobianNode *_node) const override |
Get the spatial Jacobian time derivative targeting the origin of a BodyNode. More... | |
math::Jacobian | getJacobianSpatialDeriv (const JacobianNode *_node, const Frame *_inCoordinatesOf) const override |
Get the spatial Jacobian time derivative targeting the origin of a BodyNode. More... | |
math::Jacobian | getJacobianSpatialDeriv (const JacobianNode *_node, const Eigen::Vector3d &_localOffset) const override |
Get the spatial Jacobian time derivative targeting an offset in a BodyNode. More... | |
math::Jacobian | getJacobianSpatialDeriv (const JacobianNode *_node, const Eigen::Vector3d &_localOffset, const Frame *_inCoordinatesOf) const override |
Get the spatial Jacobian time derivative targeting an offset in a BodyNode. More... | |
math::Jacobian | getJacobianClassicDeriv (const JacobianNode *_node) const override |
Get the spatial Jacobian (classical) time derivative targeting the origin of a BodyNode. More... | |
math::Jacobian | getJacobianClassicDeriv (const JacobianNode *_node, const Frame *_inCoordinatesOf) const override |
Get the spatial Jacobian (classical) time derivative targeting the origin a BodyNode. More... | |
math::Jacobian | getJacobianClassicDeriv (const JacobianNode *_node, const Eigen::Vector3d &_localOffset, const Frame *_inCoordinatesOf=Frame::World()) const override |
Get the spatial Jacobian (classical) time derivative targeting an offset in a BodyNode. More... | |
math::LinearJacobian | getLinearJacobianDeriv (const JacobianNode *_node, const Frame *_inCoordinatesOf=Frame::World()) const override |
of a BodyNode. More... | |
math::LinearJacobian | getLinearJacobianDeriv (const JacobianNode *_node, const Eigen::Vector3d &_localOffset, const Frame *_inCoordinatesOf=Frame::World()) const override |
Get the linear Jacobian (classical) time derivative targeting an offset in a BodyNode. More... | |
math::AngularJacobian | getAngularJacobianDeriv (const JacobianNode *_node, const Frame *_inCoordinatesOf=Frame::World()) const override |
Get the angular Jacobian time derivative of a BodyNode. More... | |
Jacobians | |
math::Jacobian | getJacobian (const JacobianNode *_node, const JacobianNode *_relativeTo, const Frame *_inCoordinatesOf) const |
Get the spatial Jacobian targeting the origin of a BodyNode relative to another BodyNode in the same Skeleton. More... | |
math::Jacobian | getJacobian (const JacobianNode *_node, const Eigen::Vector3d &_localOffset, const JacobianNode *_relativeTo, const Frame *_inCoordinatesOf) const |
Get the spatial Jacobian targeting an offset in a BodyNode relative to another BodyNode in the same Skeleton. More... | |
math::LinearJacobian | getLinearJacobian (const JacobianNode *_node, const JacobianNode *_relativeTo, const Frame *_inCoordinatesOf=Frame::World()) const |
Get the linear Jacobian targeting the origin of a BodyNode relative to another BodyNode in the same Skeleton. More... | |
math::LinearJacobian | getLinearJacobian (const JacobianNode *_node, const Eigen::Vector3d &_localOffset, const JacobianNode *_relativeTo, const Frame *_inCoordinatesOf=Frame::World()) const |
Get the linear Jacobian targeting an offset in a BodyNode relative to another BodyNode in the same Skeleton. More... | |
Jacobian derivatives | |
math::AngularJacobian | getAngularJacobian (const JacobianNode *_node, const JacobianNode *_relativeTo, const Frame *_inCoordinatesOf=Frame::World()) const |
Get the angular Jacobian of a BodyNode relative to another BodyNode in the same Skeleton. More... | |
math::Jacobian | getJacobianSpatialDeriv (const JacobianNode *_node, const JacobianNode *_relativeTo, const Frame *_inCoordinatesOf) const |
Get the spatial Jacobian time derivative targeting the origin of a BodyNode relative to another BodyNode in the same Skeleton. More... | |
math::Jacobian | getJacobianSpatialDeriv (const JacobianNode *_node, const Eigen::Vector3d &_localOffset, const JacobianNode *_relativeTo, const Frame *_inCoordinatesOf) const |
Get the spatial Jacobian time derivative targeting an offset in a BodyNode relative to another Bodynode in the same Skeleton. More... | |
Equations of Motion | |
double | getMass () const override |
Get the total mass of all BodyNodes in this ReferentialSkeleton. More... | |
const Eigen::MatrixXd & | getMassMatrix () const override |
Get the Mass Matrix of the MetaSkeleton. More... | |
const Eigen::MatrixXd & | getAugMassMatrix () const override |
Get augmented mass matrix of the skeleton. More... | |
const Eigen::MatrixXd & | getInvMassMatrix () const override |
Get inverse of Mass Matrix of the MetaSkeleton. More... | |
const Eigen::MatrixXd & | getInvAugMassMatrix () const override |
Get inverse of augmented Mass Matrix of the MetaSkeleton. More... | |
const Eigen::VectorXd & | getCoriolisForces () const override |
Get Coriolis force vector of the MetaSkeleton's BodyNodes. More... | |
const Eigen::VectorXd & | getGravityForces () const override |
Get gravity force vector of the MetaSkeleton. More... | |
const Eigen::VectorXd & | getCoriolisAndGravityForces () const override |
Get combined vector of Coriolis force and gravity force of the MetaSkeleton. More... | |
const Eigen::VectorXd & | getExternalForces () const override |
Get external force vector of the MetaSkeleton. More... | |
const Eigen::VectorXd & | getConstraintForces () const override |
Get constraint force vector. More... | |
void | clearExternalForces () override |
Clear the external forces of the BodyNodes in this MetaSkeleton. More... | |
void | clearInternalForces () override |
Clear the internal forces of the BodyNodes in this MetaSkeleton. More... | |
double | computeKineticEnergy () const override |
Get the kinetic energy of this MetaSkeleton. More... | |
double | computePotentialEnergy () const override |
Get the potential energy of this MetaSkeleton. More... | |
void | clearCollidingBodies () override |
Clear collision flags of the BodyNodes in this MetaSkeleton. More... | |
Center of Mass Jacobian | |
Eigen::Vector3d | getCOM (const Frame *_withRespectTo=Frame::World()) const override |
Get the MetaSkeleton's COM with respect to any Frame (default is World Frame) More... | |
Eigen::Vector6d | getCOMSpatialVelocity (const Frame *_relativeTo=Frame::World(), const Frame *_inCoordinatesOf=Frame::World()) const override |
Get the Skeleton's COM spatial velocity in terms of any Frame (default is World Frame) More... | |
Eigen::Vector3d | getCOMLinearVelocity (const Frame *_relativeTo=Frame::World(), const Frame *_inCoordinatesOf=Frame::World()) const override |
Get the Skeleton's COM linear velocity in terms of any Frame (default is World Frame) More... | |
Eigen::Vector6d | getCOMSpatialAcceleration (const Frame *_relativeTo=Frame::World(), const Frame *_inCoordinatesOf=Frame::World()) const override |
Get the Skeleton's COM spatial acceleration in terms of any Frame (default is World Frame) More... | |
Eigen::Vector3d | getCOMLinearAcceleration (const Frame *_relativeTo=Frame::World(), const Frame *_inCoordinatesOf=Frame::World()) const override |
Get the MetaSkeleton's COM linear acceleration in terms of any Frame (default is World Frame) More... | |
math::Jacobian | getCOMJacobian (const Frame *_inCoordinatesOf=Frame::World()) const override |
Get the MetaSkeleton's COM Jacobian in terms of any Frame (default is World Frame) More... | |
math::LinearJacobian | getCOMLinearJacobian (const Frame *_inCoordinatesOf=Frame::World()) const override |
Get the MetaSkeleton's COM Linear Jacobian in terms of any Frame (default is World Frame) More... | |
math::Jacobian | getCOMJacobianSpatialDeriv (const Frame *_inCoordinatesOf=Frame::World()) const override |
Get the Skeleton's COM Jacobian spatial time derivative in terms of any Frame (default is World Frame). More... | |
math::LinearJacobian | getCOMLinearJacobianDeriv (const Frame *_inCoordinatesOf=Frame::World()) const override |
Get the Skeleton's COM Linear Jacobian time derivative in terms of any Frame (default is World Frame). More... | |
Command | |
void | setCommand (std::size_t _index, double _command) |
Set a single command. More... | |
double | getCommand (std::size_t _index) const |
Get a single command. More... | |
void | setCommands (const Eigen::VectorXd &_commands) |
Set commands for all generalized coordinates. More... | |
void | setCommands (const std::vector< std::size_t > &_indices, const Eigen::VectorXd &_commands) |
Set commands for a subset of the generalized coordinates. More... | |
Eigen::VectorXd | getCommands () const |
Get commands for all generalized coordinates. More... | |
Eigen::VectorXd | getCommands (const std::vector< std::size_t > &_indices) const |
Get commands for a subset of the generalized coordinates. More... | |
void | resetCommands () |
Set all commands to zero. More... | |
Position | |
void | setPosition (std::size_t index, double _position) |
Set the position of a single generalized coordinate. More... | |
double | getPosition (std::size_t _index) const |
Get the position of a single generalized coordinate. More... | |
void | setPositions (const Eigen::VectorXd &_positions) |
Set the positions for all generalized coordinates. More... | |
void | setPositions (const std::vector< std::size_t > &_indices, const Eigen::VectorXd &_positions) |
Set the positions for a subset of the generalized coordinates. More... | |
Eigen::VectorXd | getPositions () const |
Get the positions for all generalized coordinates. More... | |
Eigen::VectorXd | getPositions (const std::vector< std::size_t > &_indices) const |
Get the positions for a subset of the generalized coordinates. More... | |
void | resetPositions () |
Set all positions to zero. More... | |
void | setPositionLowerLimit (std::size_t _index, double _position) |
Set the lower limit of a generalized coordinate's position. More... | |
void | setPositionLowerLimits (const Eigen::VectorXd &positions) |
Set the lower limits for all generalized coordinates. More... | |
void | setPositionLowerLimits (const std::vector< std::size_t > &indices, const Eigen::VectorXd &positions) |
Set the lower limits for a subset of the generalized coordinates. More... | |
double | getPositionLowerLimit (std::size_t _index) const |
Get the lower limit of a generalized coordinate's position. More... | |
Eigen::VectorXd | getPositionLowerLimits () const |
Get the lower limits for all generalized coordinates. More... | |
Eigen::VectorXd | getPositionLowerLimits (const std::vector< std::size_t > &indices) const |
Get the lower limits for a subset of the generalized coordinates. More... | |
void | setPositionUpperLimit (std::size_t _index, double _position) |
Set the upper limit of a generalized coordainte's position. More... | |
void | setPositionUpperLimits (const Eigen::VectorXd &positions) |
Set the upper limits for all generalized coordinates. More... | |
void | setPositionUpperLimits (const std::vector< std::size_t > &indices, const Eigen::VectorXd &positions) |
Set the upper limits for a subset of the generalized coordinates. More... | |
double | getPositionUpperLimit (std::size_t _index) const |
Get the upper limit of a generalized coordinate's position. More... | |
Eigen::VectorXd | getPositionUpperLimits () const |
Get the upper limits for all generalized coordinates. More... | |
Eigen::VectorXd | getPositionUpperLimits (const std::vector< std::size_t > &indices) const |
Get the upper limits for a subset of the generalized coordinates. More... | |
Velocity | |
void | setVelocity (std::size_t _index, double _velocity) |
Set the velocity of a single generalized coordinate. More... | |
double | getVelocity (std::size_t _index) const |
Get the velocity of a single generalized coordinate. More... | |
void | setVelocities (const Eigen::VectorXd &_velocities) |
Set the velocities of all generalized coordinates. More... | |
void | setVelocities (const std::vector< std::size_t > &_indices, const Eigen::VectorXd &_velocities) |
Set the velocities of a subset of the generalized coordinates. More... | |
Eigen::VectorXd | getVelocities () const |
Get the velocities for all generalized coordinates. More... | |
Eigen::VectorXd | getVelocities (const std::vector< std::size_t > &_indices) const |
Get the velocities for a subset of the generalized coordinates. More... | |
void | resetVelocities () |
Set all velocities to zero. More... | |
void | setVelocityLowerLimit (std::size_t _index, double _velocity) |
Set the lower limit of a generalized coordinate's velocity. More... | |
void | setVelocityLowerLimits (const Eigen::VectorXd &velocities) |
Set the lower limits for all generalized coordinates's velocity. More... | |
void | setVelocityLowerLimits (const std::vector< std::size_t > &indices, const Eigen::VectorXd &velocities) |
Set the lower limits for a subset of the generalized coordinates's velocity. More... | |
double | getVelocityLowerLimit (std::size_t _index) |
Get the lower limit of a generalized coordinate's velocity. More... | |
Eigen::VectorXd | getVelocityLowerLimits () const |
Get the lower limits for all generalized coordinates's velocity. More... | |
Eigen::VectorXd | getVelocityLowerLimits (const std::vector< std::size_t > &indices) const |
Get the lower limits for a subset of the generalized coordinates's velocity. More... | |
void | setVelocityUpperLimit (std::size_t _index, double _velocity) |
Set the upper limit of a generalized coordinate's velocity. More... | |
void | setVelocityUpperLimits (const Eigen::VectorXd &velocities) |
Set the upper limits for all generalized coordinates's velocity. More... | |
void | setVelocityUpperLimits (const std::vector< std::size_t > &indices, const Eigen::VectorXd &velocities) |
Set the upper limits for a subset of the generalized coordinates's velocity. More... | |
double | getVelocityUpperLimit (std::size_t _index) |
Get the upper limit of a generalized coordinate's velocity. More... | |
Eigen::VectorXd | getVelocityUpperLimits () const |
Get the upper limits for all generalized coordinates's velocity. More... | |
Eigen::VectorXd | getVelocityUpperLimits (const std::vector< std::size_t > &indices) const |
Get the upper limits for a subset of the generalized coordinates's velocity. More... | |
Acceleration | |
void | setAcceleration (std::size_t _index, double _acceleration) |
Set the acceleration of a single generalized coordinate. More... | |
double | getAcceleration (std::size_t _index) const |
Get the acceleration of a single generalized coordinate. More... | |
void | setAccelerations (const Eigen::VectorXd &_accelerations) |
Set the accelerations of all generalized coordinates. More... | |
void | setAccelerations (const std::vector< std::size_t > &_indices, const Eigen::VectorXd &_accelerations) |
Set the accelerations of a subset of the generalized coordinates. More... | |
Eigen::VectorXd | getAccelerations () const |
Get the accelerations for all generalized coordinates. More... | |
Eigen::VectorXd | getAccelerations (const std::vector< std::size_t > &_indices) const |
Get the accelerations for a subset of the generalized coordinates. More... | |
void | resetAccelerations () |
Set all accelerations to zero. More... | |
void | setAccelerationLowerLimit (std::size_t _index, double _acceleration) |
Set the lower limit of a generalized coordinate's acceleration. More... | |
void | setAccelerationLowerLimits (const Eigen::VectorXd &accelerations) |
Set the lower limits for all generalized coordinates's acceleration. More... | |
void | setAccelerationLowerLimits (const std::vector< std::size_t > &indices, const Eigen::VectorXd &accelerations) |
Set the lower limits for a subset of the generalized coordinates's acceleration. More... | |
double | getAccelerationLowerLimit (std::size_t _index) const |
Get the lower limit of a generalized coordinate's acceleration. More... | |
Eigen::VectorXd | getAccelerationLowerLimits () const |
Get the lower limits for all generalized coordinates's acceleration. More... | |
Eigen::VectorXd | getAccelerationLowerLimits (const std::vector< std::size_t > &indices) const |
Get the lower limits for a subset of the generalized coordinates's acceleration. More... | |
void | setAccelerationUpperLimit (std::size_t _index, double _acceleration) |
Set the upper limit of a generalized coordinate's acceleration. More... | |
void | setAccelerationUpperLimits (const Eigen::VectorXd &accelerations) |
Set the upper limits for all generalized coordinates's acceleration. More... | |
void | setAccelerationUpperLimits (const std::vector< std::size_t > &indices, const Eigen::VectorXd &accelerations) |
Set the upper limits for a subset of the generalized coordinates's acceleration. More... | |
double | getAccelerationUpperLimit (std::size_t _index) const |
Get the upper limit of a generalized coordinate's acceleration. More... | |
Eigen::VectorXd | getAccelerationUpperLimits () const |
Get the upper limits for all generalized coordinates's acceleration. More... | |
Eigen::VectorXd | getAccelerationUpperLimits (const std::vector< std::size_t > &indices) const |
Get the upper limits for a subset of the generalized coordinates's acceleration. More... | |
Force | |
void | setForce (std::size_t _index, double _force) |
Set the force of a single generalized coordinate. More... | |
double | getForce (std::size_t _index) const |
Get the force of a single generalized coordinate. More... | |
void | setForces (const Eigen::VectorXd &_forces) |
Set the forces of all generalized coordinates. More... | |
void | setForces (const std::vector< std::size_t > &_index, const Eigen::VectorXd &_forces) |
Set the forces of a subset of the generalized coordinates. More... | |
Eigen::VectorXd | getForces () const |
Get the forces for all generalized coordinates. More... | |
Eigen::VectorXd | getForces (const std::vector< std::size_t > &_indices) const |
Get the forces for a subset of the generalized coordinates. More... | |
void | resetGeneralizedForces () |
Set all forces of the generalized coordinates to zero. More... | |
void | setForceLowerLimit (std::size_t _index, double _force) |
Set the lower limit of a generalized coordinate's force. More... | |
void | setForceLowerLimits (const Eigen::VectorXd &forces) |
Set the lower limits for all generalized coordinates's force. More... | |
void | setForceLowerLimits (const std::vector< std::size_t > &indices, const Eigen::VectorXd &forces) |
Set the lower limits for a subset of the generalized coordinates's force. More... | |
double | getForceLowerLimit (std::size_t _index) const |
Get the lower limit of a generalized coordinate's force. More... | |
Eigen::VectorXd | getForceLowerLimits () const |
Get the lower limits for all generalized coordinates's force. More... | |
Eigen::VectorXd | getForceLowerLimits (const std::vector< std::size_t > &indices) const |
Get the lower limits for a subset of the generalized coordinates's force. More... | |
void | setForceUpperLimit (std::size_t _index, double _force) |
Set the upper limit of a generalized coordinate's force. More... | |
void | setForceUpperLimits (const Eigen::VectorXd &forces) |
Set the upperlimits for all generalized coordinates's force. More... | |
void | setForceUpperLimits (const std::vector< std::size_t > &indices, const Eigen::VectorXd &forces) |
Set the upper limits for a subset of the generalized coordinates's force. More... | |
double | getForceUpperLimit (std::size_t _index) const |
Get the upper limit of a generalized coordinate's force. More... | |
Eigen::VectorXd | getForceUpperLimits () const |
Get the upper limits for all generalized coordinates's force. More... | |
Eigen::VectorXd | getForceUpperLimits (const std::vector< std::size_t > &indices) const |
Get the upper limits for a subset of the generalized coordinates's force. More... | |
Velocity Change | |
Eigen::VectorXd | getVelocityChanges () const |
Get the velocity changes for all the generalized coordinates. More... | |
Constraint Impulse | |
void | setJointConstraintImpulses (const Eigen::VectorXd &_impulses) |
Set the constraint impulses for the generalized coordinates. More... | |
Eigen::VectorXd | getJointConstraintImpulses () const |
Get the constraint impulses for the generalized coordinates. More... | |
Equations of Motion | |
double | computeLagrangian () const |
Compute and return Lagrangian of this MetaSkeleton. More... | |
double | getKineticEnergy () const |
Get the kinetic energy of this MetaSkeleton. More... | |
double | getPotentialEnergy () const |
Get the potential energy of this MetaSkeleton. More... | |
Static Public Member Functions | |
static LinkagePtr | create (const Criteria &_criteria, const std::string &_name="Linkage") |
Create a Linkage with the given Criteria. More... | |
Public Attributes | |
common::SlotRegister< NameChangedSignal > | onNameChanged |
Protected Member Functions | |
Linkage (const Criteria &_criteria, const std::string &_name="Linkage") | |
Constructor for the Linkage class. More... | |
virtual void | update () |
Update any metadata needed by the Linkage or its derived classes. More... | |
void | registerComponent (BodyNode *_bn) |
Add a BodyNode, along with its parent Joint and parent DegreesOfFreedom to this ReferentialSkeleton. More... | |
void | registerBodyNode (BodyNode *_bn) |
Add a BodyNode to this ReferentialSkeleton, ignoring its Joint and DegreesOfFreedom. More... | |
void | registerJoint (Joint *_joint) |
Add a Joint to this Referential Skeleton, ignoring its DegreesOfFreedom. More... | |
void | registerDegreeOfFreedom (DegreeOfFreedom *_dof) |
Add a DegreeOfFreedom to this ReferentialSkeleton. More... | |
void | unregisterComponent (BodyNode *_bn) |
Completely remove a BodyNode and its parent DegreesOfFreedom from this ReferentialSkeleton. More... | |
void | unregisterBodyNode (BodyNode *_bn, bool _unregisterDofs) |
Remove a BodyNode from this ReferentialSkeleton, ignoring its parent DegreesOfFreedom. More... | |
void | unregisterJoint (BodyNode *_child) |
Remove a Joint from this ReferentialSkeleton. More... | |
void | unregisterDegreeOfFreedom (BodyNode *_bn, std::size_t _localIndex) |
Remove a DegreeOfFreedom from this ReferentialSkeleton. More... | |
void | updateCaches () |
Update the caches to match any changes to the structure of this ReferentialSkeleton. More... | |
void | sendDestructionNotification () const |
Send a destruction notification to all Observers. More... | |
void | addObserver (Observer *_observer) const |
Add an Observer to the list of Observers. More... | |
void | removeObserver (Observer *_observer) const |
Remove an Observer from the list of Observers. More... | |
Protected Attributes | |
Criteria | mCriteria |
Criteria that defines the structure of this Linkage. More... | |
std::vector< WeakBodyNodePtr > | mParentBodyNodes |
Recording of the parent BodyNodes that were held by each of the BodyNodes when the Linkage was constructed. More... | |
std::weak_ptr< MetaSkeleton > | mPtr |
Weak pointer to this Skeleton. More... | |
std::string | mName |
Name of this ReferentialSkeleton. More... | |
std::unordered_set< const Skeleton * > | mSkeletons |
Skeletons that this ReferentialSkeleton contains any BodyNode or Joint from the Skeletons. More... | |
std::set< std::mutex * > | mSkeletonMutexes |
Mutexes of the skeletons. More... | |
std::vector< BodyNodePtr > | mBodyNodes |
BodyNodes that this ReferentialSkeleton references. More... | |
std::vector< BodyNode * > | mRawBodyNodes |
Raw BodyNode pointers. This vector is used for the MetaSkeleton API. More... | |
std::vector< const BodyNode * > | mRawConstBodyNodes |
Raw const BodyNode pointers. This vector is used for the MetaSkeleton API. More... | |
std::vector< JointPtr > | mJoints |
Joints that this ReferentialSkeleton references. More... | |
std::vector< DegreeOfFreedomPtr > | mDofs |
DegreesOfFreedom that this ReferentialSkeleton references. More... | |
std::vector< DegreeOfFreedom * > | mRawDofs |
Raw DegreeOfFreedom vector. This vector is used for the MetaSkeleton API. More... | |
std::vector< const DegreeOfFreedom * > | mRawConstDofs |
Raw const DegreeOfFreedom vector. More... | |
std::unordered_map< const BodyNode *, IndexMap > | mIndexMap |
Raw const DegreeOfFreedom. This vector is used for the MetaSkeleton API. More... | |
Eigen::MatrixXd | mM |
Cache for Mass Matrix. More... | |
Eigen::MatrixXd | mAugM |
Cache for Augmented Mass Matrix. More... | |
Eigen::MatrixXd | mInvM |
Cache for inverse Mass Matrix. More... | |
Eigen::MatrixXd | mInvAugM |
Cache for inverse Augmented Mass Matrix. More... | |
Eigen::VectorXd | mCvec |
Cache for Coriolis vector. More... | |
Eigen::VectorXd | mG |
Cache for gravity vector. More... | |
Eigen::VectorXd | mCg |
Cache for combined Coriolis and gravity vector. More... | |
Eigen::VectorXd | mFext |
Cache for external force vector. More... | |
Eigen::VectorXd | mFc |
Cache for constraint force vector. More... | |
NameChangedSignal | mNameChangedSignal |
std::set< Observer * > | mObservers |
List of current Observers. More... | |
Private Member Functions | |
void | registerSkeleton (const Skeleton *skel) |
Add a Skeleton to this ReferentialSkeleton, ignoring its Joint and DegreesOfFreedom. More... | |
void | unregisterSkeleton (const Skeleton *skel) |
Removes a Skeleton from this ReferentialSkeleton. More... | |
A Linkage is a ReferentialSkeleton with the special property that all the BodyNodes included in it form a contiguous graph.
This property is only guaranteed during construction of the Linkage. After the Linkage has been constructed, a user might alter how the BodyNodes in a Linkage are assembled. The function Linkage::isAssembled() can be used to check whether the Linkage is still assembled. The function Linkage::satisfyCriteria() can be used to redefine the Linkage so that the original Linkage::Criteria is met again. The function Linkage::reassemble() will reassemble the BodyNodes so that they match whatever assembly they had the last time Linkage::reassemble() was called (or the assembly that they had when the Linkage was constructed, if Linkage::reassemble has never been called).
|
inherited |
|
protected |
Constructor for the Linkage class.
satisfyCriteria() will be called during construction.
|
protectedinherited |
Add an Observer to the list of Observers.
|
overridevirtualinherited |
Clear collision flags of the BodyNodes in this MetaSkeleton.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Clear the external forces of the BodyNodes in this MetaSkeleton.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Clear the internal forces of the BodyNodes in this MetaSkeleton.
Implements dart::dynamics::MetaSkeleton.
LinkagePtr dart::dynamics::Linkage::cloneLinkage | ( | ) | const |
Creates and returns a clone of this Linkage.
LinkagePtr dart::dynamics::Linkage::cloneLinkage | ( | const std::string & | cloneName | ) | const |
Creates and returns a clone of this Linkage.
MetaSkeletonPtr dart::dynamics::MetaSkeleton::cloneMetaSkeleton |
Creates an identical clone of this MetaSkeleton.
|
inherited |
Creates an identical clone of this MetaSkeleton.
|
overridevirtual |
Creates an identical clone of this MetaSkeleton.
Implements dart::dynamics::MetaSkeleton.
virtual MetaSkeletonPtr dart::dynamics::MetaSkeleton::cloneMetaSkeleton |
Creates an identical clone of this MetaSkeleton.
|
overridevirtualinherited |
Get the kinetic energy of this MetaSkeleton.
Implements dart::dynamics::MetaSkeleton.
|
inherited |
Compute and return Lagrangian of this MetaSkeleton.
|
overridevirtualinherited |
Get the potential energy of this MetaSkeleton.
Implements dart::dynamics::MetaSkeleton.
|
static |
|
inherited |
Get the acceleration of a single generalized coordinate.
|
inherited |
Get the lower limit of a generalized coordinate's acceleration.
|
inherited |
Get the lower limits for all generalized coordinates's acceleration.
|
inherited |
Get the lower limits for a subset of the generalized coordinates's acceleration.
|
inherited |
Get the accelerations for all generalized coordinates.
|
inherited |
Get the accelerations for a subset of the generalized coordinates.
|
inherited |
Get the upper limit of a generalized coordinate's acceleration.
|
inherited |
Get the upper limits for all generalized coordinates's acceleration.
|
inherited |
Get the upper limits for a subset of the generalized coordinates's acceleration.
|
overridevirtualinherited |
Get the angular Jacobian of a BodyNode.
You can specify a coordinate Frame to express the Jacobian in.
Implements dart::dynamics::MetaSkeleton.
|
inherited |
|
overridevirtualinherited |
Get the angular Jacobian time derivative of a BodyNode.
You can specify a coordinate Frame to express the Jacobian in.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get augmented mass matrix of the skeleton.
This matrix is used in ConstraintDynamics to compute constraint forces. The matrix is M + h*D + h*h*K where D is diagonal joint damping coefficient matrix, K is diagonal joint stiffness matrix, and h is simulation time step.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Returns the BodyNode of given name.
[in] | name | The BodyNode name that want to search. |
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Returns the BodyNode of given name.
[in] | name | The BodyNode name that want to search. |
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get const BodyNode whose index is _idx.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get BodyNode whose index is _idx.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get all the BodyNodes that are held by this MetaSkeleton.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get all the BodyNodes that are held by this MetaSkeleton.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Returns all the BodyNodes of given name.
[in] | name | The BodyNode name that want to search. |
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Returns all the BodyNodes of given name.
[in] | name | The BodyNode name that want to search. |
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get the MetaSkeleton's COM with respect to any Frame (default is World Frame)
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get the MetaSkeleton's COM Jacobian in terms of any Frame (default is World Frame)
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get the Skeleton's COM Jacobian spatial time derivative in terms of any Frame (default is World Frame).
NOTE: Since this is a spatial time derivative, it is only meant to be used with spatial acceleration vectors. If you are using classical linear vectors, then use getCOMLinearJacobianDeriv() instead.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get the MetaSkeleton's COM linear acceleration in terms of any Frame (default is World Frame)
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get the MetaSkeleton's COM Linear Jacobian in terms of any Frame (default is World Frame)
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get the Skeleton's COM Linear Jacobian time derivative in terms of any Frame (default is World Frame).
NOTE: Since this is a classical time derivative, it is only meant to be used with classical acceleration vectors. If you are using spatial vectors, then use getCOMJacobianSpatialDeriv() instead.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get the Skeleton's COM linear velocity in terms of any Frame (default is World Frame)
Implements dart::dynamics::MetaSkeleton.
|
inherited |
Get a single command.
|
inherited |
Get commands for all generalized coordinates.
|
inherited |
Get commands for a subset of the generalized coordinates.
|
overridevirtualinherited |
Get the Skeleton's COM spatial acceleration in terms of any Frame (default is World Frame)
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get the Skeleton's COM spatial velocity in terms of any Frame (default is World Frame)
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get constraint force vector.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get combined vector of Coriolis force and gravity force of the MetaSkeleton.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get Coriolis force vector of the MetaSkeleton's BodyNodes.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get degree of freedom (aka generalized coordinate) whose index is _idx.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get degree of freedom (aka generalized coordinate) whose index is _idx.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get a vector of const DegreesOfFreedom for this MetaSkeleton.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get the vector of DegreesOfFreedom for this MetaSkeleton.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get external force vector of the MetaSkeleton.
Implements dart::dynamics::MetaSkeleton.
|
inherited |
Get the force of a single generalized coordinate.
|
inherited |
Get the lower limit of a generalized coordinate's force.
|
inherited |
Get the lower limits for all generalized coordinates's force.
|
inherited |
Get the lower limits for a subset of the generalized coordinates's force.
|
inherited |
Get the forces for all generalized coordinates.
|
inherited |
Get the forces for a subset of the generalized coordinates.
|
inherited |
Get the upper limit of a generalized coordinate's force.
|
inherited |
Get the upper limits for all generalized coordinates's force.
|
inherited |
Get the upper limits for a subset of the generalized coordinates's force.
|
overridevirtualinherited |
Get gravity force vector of the MetaSkeleton.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get the index of a specific BodyNode within this ReferentialSkeleton.
Returns INVALID_INDEX if it is not held in this ReferentialSkeleton. When _warning is true, a warning message will be printed if the BodyNode is not in the MetaSkeleton.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get the index of a specific DegreeOfFreedom within this ReferentialSkeleton.
Returns INVALID_INDEX if it is not held in this ReferentialSkeleton. When _warning is true, a warning message will be printed if the DegreeOfFreedom is not in the MetaSkeleton.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get the index of a specific Joint within this ReferentialSkeleton.
Returns INVALID_INDEX if it is not held in this ReferentialSkeleton. When _warning is true, a warning message will be printed if the Joint is not in the MetaSkeleton.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get inverse of augmented Mass Matrix of the MetaSkeleton.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get inverse of Mass Matrix of the MetaSkeleton.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get the spatial Jacobian targeting the origin of a BodyNode.
The Jacobian is expressed in the Frame of the BodyNode.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
|
overridevirtualinherited |
Get the spatial Jacobian targeting an offset in a BodyNode.
The _offset is expected in coordinates of the BodyNode Frame. You can specify a coordinate Frame to express the Jacobian in.
Implements dart::dynamics::MetaSkeleton.
|
inherited |
|
overridevirtualinherited |
Get the spatial Jacobian targeting the origin of a BodyNode.
You can specify a coordinate Frame to express the Jacobian in.
Implements dart::dynamics::MetaSkeleton.
|
inherited |
|
overridevirtualinherited |
Get the spatial Jacobian (classical) time derivative targeting the origin of a BodyNode.
The Jacobian is expressed in the World Frame.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get the spatial Jacobian (classical) time derivative targeting an offset in a BodyNode.
The _offset is expected in coordinates of the BodyNode Frame. You can specify a coordinate Frame to express the Jacobian in.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get the spatial Jacobian (classical) time derivative targeting the origin a BodyNode.
The _offset is expected in coordinates of the BodyNode Frame. You can specify a coordinate Frame to express the Jacobian in.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get the spatial Jacobian time derivative targeting the origin of a BodyNode.
The Jacobian is expressed in the Frame of the BodyNode.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
|
overridevirtualinherited |
Get the spatial Jacobian time derivative targeting an offset in a BodyNode.
The _offset is expected in coordinates of the BodyNode Frame. You can specify a coordinate Frame to express the Jacobian in.
Implements dart::dynamics::MetaSkeleton.
|
inherited |
|
overridevirtualinherited |
Get the spatial Jacobian time derivative targeting the origin of a BodyNode.
You can specify a coordinate Frame to express the Jacobian in.
Implements dart::dynamics::MetaSkeleton.
|
inherited |
|
overridevirtualinherited |
Returns the Joint of given name.
[in] | name | The joint name that want to search. |
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Returns the Joint of given name.
[in] | name | The joint name that want to search. |
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get const Joint whose index is _idx.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get Joint whose index is _idx.
Implements dart::dynamics::MetaSkeleton.
|
inherited |
Get the constraint impulses for the generalized coordinates.
|
overridevirtualinherited |
Returns all the joints that are held by this MetaSkeleton.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Returns all the joints that are held by this MetaSkeleton.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Returns all the Joint of given name.
This MetaSkeleton can contain multiple Joints with the same name when this MetaSkeleton contains Joints from multiple Skeletons.
[in] | name | The joint name that want to search. |
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Returns all the Joint of given name.
This MetaSkeleton can contain multiple Joints with the same name when this MetaSkeleton contains Joints from multiple Skeletons.
[in] | name | The joint name that want to search. |
Implements dart::dynamics::MetaSkeleton.
|
inherited |
Get the kinetic energy of this MetaSkeleton.
|
overridevirtualinherited |
Get the linear Jacobian targeting an offset in a BodyNode.
The _offset is expected in coordinates of the BodyNode Frame. You can specify a coordinate Frame to express the Jacobian in.
Implements dart::dynamics::MetaSkeleton.
|
inherited |
|
overridevirtualinherited |
Get the linear Jacobian targeting the origin of a BodyNode.
You can specify a coordinate Frame to express the Jacobian in.
Implements dart::dynamics::MetaSkeleton.
|
inherited |
|
overridevirtualinherited |
Get the linear Jacobian (classical) time derivative targeting an offset in a BodyNode.
The _offset is expected in coordinates of the BodyNode Frame. You can specify a coordinate Frame to express the Jacobian in.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
of a BodyNode.
The _offset is expected in coordinates of the BodyNode Frame. You can specify a coordinate Frame to express the Jacobian in.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Returns mutex.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get the total mass of all BodyNodes in this ReferentialSkeleton.
For ReferentialSkeleton::getMass(), the total mass is computed upon request, so this is a linear-time O(N) operation. The Skeleton::getMass() version, however, is constant-time.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get the Mass Matrix of the MetaSkeleton.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get the name of this MetaSkeleton.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get number of body nodes.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Return the number of degrees of freedom in this skeleton.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get number of Joints.
Implements dart::dynamics::MetaSkeleton.
|
inherited |
Returns number of skeletons associated with this ReferentialSkeleton.
|
inherited |
Get the position of a single generalized coordinate.
|
inherited |
Get the lower limit of a generalized coordinate's position.
|
inherited |
Get the lower limits for all generalized coordinates.
|
inherited |
Get the lower limits for a subset of the generalized coordinates.
|
inherited |
Get the positions for all generalized coordinates.
|
inherited |
Get the positions for a subset of the generalized coordinates.
|
inherited |
Get the upper limit of a generalized coordinate's position.
|
inherited |
Get the upper limits for all generalized coordinates.
|
inherited |
Get the upper limits for a subset of the generalized coordinates.
|
inherited |
Get the potential energy of this MetaSkeleton.
|
inherited |
Get the velocities for all generalized coordinates.
|
inherited |
Get the velocities for a subset of the generalized coordinates.
|
inherited |
Get the velocity of a single generalized coordinate.
|
inherited |
Get the velocity changes for all the generalized coordinates.
|
inherited |
Get the lower limit of a generalized coordinate's velocity.
|
inherited |
Get the lower limits for all generalized coordinates's velocity.
|
inherited |
Get the lower limits for a subset of the generalized coordinates's velocity.
|
inherited |
Get the upper limit of a generalized coordinate's velocity.
|
inherited |
Get the upper limits for all generalized coordinates's velocity.
|
inherited |
Get the upper limits for a subset of the generalized coordinates's velocity.
|
overridevirtualinherited |
Get the spatial Jacobian targeting the origin of a BodyNode.
The Jacobian is expressed in the World Frame.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Get the spatial Jacobian targeting an offset in a BodyNode.
The _offset is expected in coordinates of the BodyNode Frame. The Jacobian is expressed in the World Frame.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Returns whether this Skeleton contains bodyNode
.
Implements dart::dynamics::MetaSkeleton.
|
overridevirtualinherited |
Returns whether this Skeleton contains join
.
Implements dart::dynamics::MetaSkeleton.
|
inherited |
Returns whether this ReferentialSkeleton contains any BodyNode or Joint from skel
.
bool dart::dynamics::Linkage::isAssembled | ( | ) | const |
Returns false if the original assembly of this Linkage has been broken in some way.
void dart::dynamics::Linkage::reassemble | ( | ) |
Revert the assembly of this Linkage to its original structure.
|
protectedinherited |
Add a BodyNode to this ReferentialSkeleton, ignoring its Joint and DegreesOfFreedom.
This can only be used by derived classes.
|
protectedinherited |
Add a BodyNode, along with its parent Joint and parent DegreesOfFreedom to this ReferentialSkeleton.
This can only be used by derived classes.
|
protectedinherited |
Add a DegreeOfFreedom to this ReferentialSkeleton.
This can only be used by derived classes.
|
protectedinherited |
|
privateinherited |
Add a Skeleton to this ReferentialSkeleton, ignoring its Joint and DegreesOfFreedom.
This can only be used by this class.
|
protectedinherited |
Remove an Observer from the list of Observers.
|
inherited |
Set all accelerations to zero.
|
inherited |
Set all commands to zero.
|
inherited |
Set all forces of the generalized coordinates to zero.
|
inherited |
Set all positions to zero.
|
inherited |
Set all velocities to zero.
void dart::dynamics::Linkage::satisfyCriteria | ( | ) |
|
protectedinherited |
Send a destruction notification to all Observers.
This will cause all Observers to behave as if this Subject has been permanently deleted, so it should only be called when that behavior is desired.
|
inherited |
Set the acceleration of a single generalized coordinate.
|
inherited |
Set the lower limit of a generalized coordinate's acceleration.
|
inherited |
Set the lower limits for all generalized coordinates's acceleration.
|
inherited |
Set the lower limits for a subset of the generalized coordinates's acceleration.
|
inherited |
Set the accelerations of all generalized coordinates.
|
inherited |
Set the accelerations of a subset of the generalized coordinates.
|
inherited |
Set the upper limit of a generalized coordinate's acceleration.
|
inherited |
Set the upper limits for all generalized coordinates's acceleration.
|
inherited |
Set the upper limits for a subset of the generalized coordinates's acceleration.
|
inherited |
Set a single command.
|
inherited |
Set commands for all generalized coordinates.
|
inherited |
Set commands for a subset of the generalized coordinates.
|
inherited |
Set the force of a single generalized coordinate.
|
inherited |
Set the lower limit of a generalized coordinate's force.
|
inherited |
Set the lower limits for all generalized coordinates's force.
|
inherited |
Set the lower limits for a subset of the generalized coordinates's force.
|
inherited |
Set the forces of all generalized coordinates.
|
inherited |
Set the forces of a subset of the generalized coordinates.
|
inherited |
Set the upper limit of a generalized coordinate's force.
|
inherited |
Set the upperlimits for all generalized coordinates's force.
|
inherited |
Set the upper limits for a subset of the generalized coordinates's force.
|
inherited |
Set the constraint impulses for the generalized coordinates.
|
overridevirtualinherited |
Set the name of this MetaSkeleton.
Implements dart::dynamics::MetaSkeleton.
|
inherited |
Set the position of a single generalized coordinate.
|
inherited |
Set the lower limit of a generalized coordinate's position.
|
inherited |
Set the lower limits for all generalized coordinates.
|
inherited |
Set the lower limits for a subset of the generalized coordinates.
|
inherited |
Set the positions for all generalized coordinates.
|
inherited |
Set the positions for a subset of the generalized coordinates.
|
inherited |
Set the upper limit of a generalized coordainte's position.
|
inherited |
Set the upper limits for all generalized coordinates.
|
inherited |
Set the upper limits for a subset of the generalized coordinates.
|
inherited |
Set the velocities of all generalized coordinates.
|
inherited |
Set the velocities of a subset of the generalized coordinates.
|
inherited |
Set the velocity of a single generalized coordinate.
|
inherited |
Set the lower limit of a generalized coordinate's velocity.
|
inherited |
Set the lower limits for all generalized coordinates's velocity.
|
inherited |
Set the lower limits for a subset of the generalized coordinates's velocity.
|
inherited |
Set the upper limit of a generalized coordinate's velocity.
|
inherited |
Set the upper limits for all generalized coordinates's velocity.
|
inherited |
Set the upper limits for a subset of the generalized coordinates's velocity.
|
protectedinherited |
Remove a BodyNode from this ReferentialSkeleton, ignoring its parent DegreesOfFreedom.
This can only be used by derived classes.
|
protectedinherited |
Completely remove a BodyNode and its parent DegreesOfFreedom from this ReferentialSkeleton.
This can only be used by derived classes.
|
protectedinherited |
Remove a DegreeOfFreedom from this ReferentialSkeleton.
This can only be used by derived classes.
|
protectedinherited |
Remove a Joint from this ReferentialSkeleton.
This can only be used by derived classes.
|
privateinherited |
Removes a Skeleton from this ReferentialSkeleton.
This can only be used by this class.
|
protectedvirtual |
Update any metadata needed by the Linkage or its derived classes.
Reimplemented in dart::dynamics::Branch.
|
protectedinherited |
Update the caches to match any changes to the structure of this ReferentialSkeleton.
|
mutableprotectedinherited |
Cache for Augmented Mass Matrix.
|
protectedinherited |
BodyNodes that this ReferentialSkeleton references.
These hold strong references to ensure that the BodyNodes do not disappear
|
mutableprotectedinherited |
Cache for combined Coriolis and gravity vector.
|
protected |
|
mutableprotectedinherited |
Cache for Coriolis vector.
|
protectedinherited |
DegreesOfFreedom that this ReferentialSkeleton references.
|
mutableprotectedinherited |
Cache for constraint force vector.
|
mutableprotectedinherited |
Cache for external force vector.
|
mutableprotectedinherited |
Cache for gravity vector.
|
protectedinherited |
Raw const DegreeOfFreedom. This vector is used for the MetaSkeleton API.
Map for keeping track of the indices of BodyNodes, Joints, and DegreesOfFreedom
|
mutableprotectedinherited |
Cache for inverse Augmented Mass Matrix.
|
mutableprotectedinherited |
Cache for inverse Mass Matrix.
|
protectedinherited |
Joints that this ReferentialSkeleton references.
|
mutableprotectedinherited |
Cache for Mass Matrix.
|
protectedinherited |
Name of this ReferentialSkeleton.
|
protectedinherited |
|
mutableprotectedinherited |
List of current Observers.
|
protected |
|
protectedinherited |
Weak pointer to this Skeleton.
|
mutableprotectedinherited |
Raw BodyNode pointers. This vector is used for the MetaSkeleton API.
|
mutableprotectedinherited |
Raw const BodyNode pointers. This vector is used for the MetaSkeleton API.
|
mutableprotectedinherited |
Raw const DegreeOfFreedom vector.
This vector is used for the MetaSkeleton API
|
mutableprotectedinherited |
Raw DegreeOfFreedom vector. This vector is used for the MetaSkeleton API.
|
protectedinherited |
Mutexes of the skeletons.
The mutexes are sorted in order of memory addresses.
|
protectedinherited |
Skeletons that this ReferentialSkeleton contains any BodyNode or Joint from the Skeletons.
|
inherited |