DART
6.10.1
|
#include <Group.hpp>
Public Types | |
using | NameChangedSignal = common::Signal< void(std::shared_ptr< const MetaSkeleton > _skeleton, const std::string &_oldName, const std::string &_newName)> |
Public Member Functions | |
virtual | ~Group ()=default |
Destructor. More... | |
GroupPtr | cloneGroup () const |
Creates and returns a clone of this Group. More... | |
GroupPtr | cloneGroup (const std::string &cloneName) const |
Creates and returns a clone of this Group. More... | |
MetaSkeletonPtr | cloneMetaSkeleton (const std::string &cloneName) const override |
Creates an identical clone of this MetaSkeleton. More... | |
void | swapBodyNodeIndices (std::size_t _index1, std::size_t _index2) |
Swap the index of BodyNode _index1 with _index2. More... | |
void | swapDofIndices (std::size_t _index1, std::size_t _index2) |
Swap the index of DegreeOfFreedom _index1 with _index2. More... | |
bool | addComponent (BodyNode *_bn, bool _warning=true) |
Add a BodyNode and its parent DegreesOfFreedom to this Group. More... | |
bool | addComponents (const std::vector< BodyNode * > &_bodyNodes, bool _warning=true) |
Add set of BodyNodes and their parent DegreesOfFreedom to this Group. More... | |
bool | removeComponent (BodyNode *_bn, bool _warning=true) |
Remove a BodyNode and its parent DegreesOfFreedom from this Group. More... | |
bool | removeComponents (const std::vector< BodyNode * > &_bodyNodes, bool _warning=true) |
Remove a set of BodyNodes and their parent DegreesOfFreedom from this Group. More... | |
bool | addBodyNode (BodyNode *_bn, bool _warning=true) |
Add a BodyNode to this Group. More... | |
bool | addBodyNodes (const std::vector< BodyNode * > &_bodyNodes, bool _warning=true) |
Add a set of BodyNodes to this Group. More... | |
bool | removeBodyNode (BodyNode *_bn, bool _warning=true) |
Remove a BodyNode from this Group. More... | |
bool | removeBodyNodes (const std::vector< BodyNode * > &_bodyNodes, bool _warning=true) |
Remove a set of BodyNodes from this Group. More... | |
bool | addJoint (Joint *_joint, bool _addDofs=true, bool _warning=true) |
Add a Joint to this Group. More... | |
bool | addJoints (const std::vector< Joint * > &_joints, bool _addDofs=true, bool _warning=true) |
Add a set of Joints to this Group. More... | |
bool | removeJoint (Joint *_joint, bool _removeDofs=true, bool _warning=true) |
Remove a Joint from this Group. More... | |
bool | removeJoints (const std::vector< Joint * > &_joints, bool _removeDofs=true, bool _warning=true) |
Remove a set of Joints from this Group. More... | |
bool | addDof (DegreeOfFreedom *_dof, bool _addJoint=true, bool _warning=true) |
Add a DegreeOfFreedom to this Group. More... | |
bool | addDofs (const std::vector< DegreeOfFreedom * > &_dofs, bool _addJoint=true, bool _warning=true) |
Add a set of DegreesOfFreedom to this Group. More... | |
bool | removeDof (DegreeOfFreedom *_dof, bool _cleanupJoint=true, bool _warning=true) |
Remove a DegreeOfFreedom from this Group. More... | |
bool | removeDofs (const std::vector< DegreeOfFreedom * > &_dofs, bool _cleanupJoint=true, bool _warning=true) |
Remove a set of DegreesOfFreedom from this Group. 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 GroupPtr | create (const std::string &_name="Group", const std::vector< BodyNode * > &_bodyNodes=std::vector< BodyNode * >(), bool _includeJoints=true, bool _includeDofs=true) |
Create a Group out of a set of BodyNodes. More... | |
static GroupPtr | create (const std::string &_name, const std::vector< DegreeOfFreedom * > &_dofs, bool _includeBodyNodes=true, bool _includeJoints=true) |
Create a Group out of a set of DegreesOfFreedom. More... | |
static GroupPtr | create (const std::string &_name, const MetaSkeletonPtr &_metaSkeleton) |
Create a Group that mimics the given MetaSkeleton. More... | |
Public Attributes | |
common::SlotRegister< NameChangedSignal > | onNameChanged |
Protected Member Functions | |
Group (const std::string &_name, const std::vector< BodyNode * > &_bodyNodes, bool _includeJoints, bool _includeDofs) | |
Default constructor. More... | |
Group (const std::string &_name, const std::vector< DegreeOfFreedom * > &_dofs, bool _includeBodyNodes, bool _includeJoints) | |
Alternative constructor. More... | |
Group (const std::string &_name, const MetaSkeletonPtr &_metaSkeleton) | |
MetaSkeleton-based constructor. 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 | |
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... | |
|
inherited |
|
virtualdefault |
Destructor.
|
protected |
Default constructor.
|
protected |
Alternative constructor.
|
protected |
MetaSkeleton-based constructor.
bool dart::dynamics::Group::addBodyNode | ( | BodyNode * | _bn, |
bool | _warning = true |
||
) |
bool dart::dynamics::Group::addBodyNodes | ( | const std::vector< BodyNode * > & | _bodyNodes, |
bool | _warning = true |
||
) |
bool dart::dynamics::Group::addComponent | ( | BodyNode * | _bn, |
bool | _warning = true |
||
) |
Add a BodyNode and its parent DegreesOfFreedom to this Group.
If _warning is true, you will be warned when the BodyNode and all its DegreesOfFreedom were already in the Group, and an assertion will be thrown.
This function will return false if the BodyNode and all its DegreesOfFreedom were already in the Group.
bool dart::dynamics::Group::addComponents | ( | const std::vector< BodyNode * > & | _bodyNodes, |
bool | _warning = true |
||
) |
bool dart::dynamics::Group::addDof | ( | DegreeOfFreedom * | _dof, |
bool | _addJoint = true , |
||
bool | _warning = true |
||
) |
Add a DegreeOfFreedom to this Group.
If _addJoint is true, the Joint of this DOF will also be added to the Group. If _warning is true, you will be warned when you attempt to add the same DegreeOfFreedom twice, and an assertion will be thrown.
This function will return false if the DegreeOfFreedom was already in the Group.
bool dart::dynamics::Group::addDofs | ( | const std::vector< DegreeOfFreedom * > & | _dofs, |
bool | _addJoint = true , |
||
bool | _warning = true |
||
) |
Add a set of DegreesOfFreedom to this Group.
If _addJoint is true, the Joint of each DOF will also be added to the Group. If _warning is true, you will be warned when you attempt to add the same DegreeOfFreedom twice, and an assertion will be thrown.
This function will return false if all of the DegreesOfFreedom was already in the Group.
bool dart::dynamics::Group::addJoint | ( | Joint * | _joint, |
bool | _addDofs = true , |
||
bool | _warning = true |
||
) |
If _addDofs is true, it will also add all the DegreesOfFreedom of the Joint. If _warning is true, you will be warned if the Joint (and all its DOFs if _addDofs is set to true) was already in the Group, and an assertion will be thrown.
This function will return false if the Joint (and all its DOFs, if _addDofs is true) was already in the Group.
bool dart::dynamics::Group::addJoints | ( | const std::vector< Joint * > & | _joints, |
bool | _addDofs = true , |
||
bool | _warning = true |
||
) |
Add a set of Joints to this Group.
If _addDofs is true, it will also add all the DOFs of each Joint. If _warning is true, you will be warned when you attempt to add a Joint that is already in the Group (and all its DOFs are in the Group, if _addDofs is set to true), and an assertion will be thrown.
This function will return false if all the Joints (and their DOFs if _addDofs is set to true) were already in the Group.
|
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.
GroupPtr dart::dynamics::Group::cloneGroup | ( | const std::string & | cloneName | ) | const |
Creates and returns a clone of this Group.
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 |
Create a Group that mimics the given MetaSkeleton.
|
static |
Create a Group out of a set of DegreesOfFreedom.
If _includeBodyNodes is true, then the child BodyNode of each DegreeOfFreedom will also be added to the Group. If _includeJoints is true, then the Joint of each DegreeOfFreedom will also be added to the Group.
|
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
.
|
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.
bool dart::dynamics::Group::removeBodyNode | ( | BodyNode * | _bn, |
bool | _warning = true |
||
) |
bool dart::dynamics::Group::removeBodyNodes | ( | const std::vector< BodyNode * > & | _bodyNodes, |
bool | _warning = true |
||
) |
bool dart::dynamics::Group::removeComponent | ( | BodyNode * | _bn, |
bool | _warning = true |
||
) |
Remove a BodyNode and its parent DegreesOfFreedom from this Group.
If _warning is true, you will be warned if this Group does not have the BodyNode or any of its DegreesOfFreedom, and an assertion will be thrown.
This function will return false if the Group did not include the BodyNode or any of its parent DegreesOfFreedom.
bool dart::dynamics::Group::removeComponents | ( | const std::vector< BodyNode * > & | _bodyNodes, |
bool | _warning = true |
||
) |
Remove a set of BodyNodes and their parent DegreesOfFreedom from this Group.
If _warning is true, you will be warned if any of the components were completely missing from this Group, and an assertion will be thrown.
This function will return false if none of the components in this set were in the Group.
bool dart::dynamics::Group::removeDof | ( | DegreeOfFreedom * | _dof, |
bool | _cleanupJoint = true , |
||
bool | _warning = true |
||
) |
Remove a DegreeOfFreedom from this Group.
If _cleanupJoint is true, the Joint of this DOF will be removed, but only if no other DOFs belonging to the Joint are remaining in the Group. If _warning is true, you will be warned when you attempt to remove a DegreeOfFreedom that is not in this Group, and an assertion will be thrown.
This function will return false if the DegreeOfFreedom was not in this Group.
bool dart::dynamics::Group::removeDofs | ( | const std::vector< DegreeOfFreedom * > & | _dofs, |
bool | _cleanupJoint = true , |
||
bool | _warning = true |
||
) |
Remove a set of DegreesOfFreedom from this Group.
If _cleanupJoint is true, the Joint of this DOF will be removed, but only if no other DOFs belonging to the Joint are remaining in the Group. If _warning is true, you will be warned when you attempt to remove a DegreeOfFreedom that is not in this Group, and an assertion will be thrown.
This function will return false if none of the DegreesOfFreedom were in this Group.
bool dart::dynamics::Group::removeJoint | ( | Joint * | _joint, |
bool | _removeDofs = true , |
||
bool | _warning = true |
||
) |
Remove a Joint from this Group.
If _removeDofs is true, it will also remove any DOFs belonging to this Joint. If _warning is true, you will be warned if you attempt to remove a Joint which is not in this Group (and none of its DOFs are in the Group if _removeDofs is set to true), and an assertion will be thrown.
This function will return false if the Joint was not in the Group (and neither were any of its DOFs, if _removeDofs is set to true).
bool dart::dynamics::Group::removeJoints | ( | const std::vector< Joint * > & | _joints, |
bool | _removeDofs = true , |
||
bool | _warning = true |
||
) |
Remove a set of Joints from this Group.
If _removeDofs is true, it will also remove any DOFs belonging to any of the Joints. If _warning is true, you will be warned if you attempt to remove a Joint which is not in this Group (and none of its DOFs are in the Group if _removeDofs is set to true), and an assertion will be thrown.
This function will return false if none of the Joints (nor any of their DOFs if _removeDofs is set to true) were in the Group.
|
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.
|
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.
void dart::dynamics::Group::swapBodyNodeIndices | ( | std::size_t | _index1, |
std::size_t | _index2 | ||
) |
Swap the index of BodyNode _index1 with _index2.
void dart::dynamics::Group::swapDofIndices | ( | std::size_t | _index1, |
std::size_t | _index2 | ||
) |
Swap the index of DegreeOfFreedom _index1 with _index2.
|
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.
|
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.
|
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.
|
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 |