|
using | NodeTypeStateVector = common::CloneableVector< std::unique_ptr< Node::State > > |
|
using | NodeStateMap = std::map< std::type_index, std::unique_ptr< NodeTypeStateVector > > |
|
using | AllNodeStates = common::CloneableMap< NodeStateMap > |
|
using | NodeTypePropertiesVector = common::CloneableVector< std::unique_ptr< Node::Properties > > |
|
using | NodePropertiesMap = std::map< std::type_index, std::unique_ptr< NodeTypePropertiesVector > > |
|
using | AllNodeProperties = common::CloneableMap< NodePropertiesMap > |
|
using | NodeVectorProxyAspectState = common::ProxyCloneable< common::Aspect::State, BodyNode, AllNodeStates, &setAllNodeStates, &getAllNodeStates > |
|
using | NodeVectorProxyAspectProperties = common::ProxyCloneable< common::Aspect::Properties, BodyNode, AllNodeProperties, &setAllNodeProperties, &getAllNodeProperties > |
|
using | NodeVectorProxyAspect = common::ProxyStateAndPropertiesAspect< BodyNode, NodeVectorProxyAspectState, NodeVectorProxyAspectProperties > |
|
using | BodyNodeCompositeBase = common::EmbedStateAndPropertiesOnTopOf< BodyNode, BodyNodeState, BodyNodeAspectProperties, common::RequiresAspect< NodeVectorProxyAspect > > |
|
using | EndEffectorCompositeBase = CompositeNode< common::CompositeJoiner< FixedJacobianNode, common::SpecializedForAspect< Support > > > |
|
template<class Base > |
using | EntityNodeAspectBase = common::EmbedProperties< EntityNode< Base >, EntityNodeProperties > |
|
using | EulerJointBase = common::EmbedPropertiesOnTopOf< EulerJoint, EulerJointUniqueProperties, GenericJoint< math::R3Space > > |
|
using | FixedJacobianNodeCompositeBase = common::CompositeJoiner< EntityNode< TemplatedJacobianNode< FixedJacobianNode > >, common::Virtual< FixedFrame > > |
|
template<class Derived , class ConfigSpaceT > |
using | GenericJointBase = common::EmbedStateAndPropertiesOnTopOf< Derived, GenericJointState< ConfigSpaceT >, GenericJointUniqueProperties< ConfigSpaceT >, Joint > |
|
using | PlanarJointBase = common::EmbedPropertiesOnTopOf< PlanarJoint, PlanarJointUniqueProperties, GenericJoint< math::R3Space > > |
|
using | PrismaticJointBase = common::EmbedPropertiesOnTopOf< PrismaticJoint, PrismaticJointUniqueProperties, GenericJoint< math::R1Space > > |
|
using | RevoluteJointBase = common::EmbedPropertiesOnTopOf< RevoluteJoint, RevoluteJointUniqueProperties, GenericJoint< math::R1Space > > |
|
using | ScrewJointBase = common::EmbedPropertiesOnTopOf< ScrewJoint, ScrewJointUniqueProperties, GenericJoint< math::R1Space > > |
|
using | ShapeFrameCompositeBase = common::EmbedPropertiesOnTopOf< ShapeFrame, ShapeFrameProperties, common::SpecializedForAspect< VisualAspect, CollisionAspect, DynamicsAspect > > |
|
using | ShapeNodeCompositeBase = CompositeNode< common::CompositeJoiner< FixedJacobianNode, ShapeFrame > > |
|
using | BodyNodeStateVector = std::vector< common::Composite::State > |
|
using | BodyNodePropertiesVector = std::vector< common::Composite::Properties > |
|
using | JointStateVector = std::vector< common::Composite::State > |
|
using | JointPropertiesVector = std::vector< common::Composite::Properties > |
|
using | BodyNodeVectorProxyAspectState = common::ProxyCloneable< common::Aspect::State, Skeleton, BodyNodeStateVector, &setAllBodyNodeStates, &getAllBodyNodeStates > |
|
using | BodyNodeVectorProxyAspectProperties = common::ProxyCloneable< common::Aspect::Properties, Skeleton, BodyNodePropertiesVector, &setAllBodyNodeProperties, &getAllBodyNodeProperties > |
|
using | BodyNodeVectorProxyAspect = common::ProxyStateAndPropertiesAspect< Skeleton, BodyNodeVectorProxyAspectState, BodyNodeVectorProxyAspectProperties > |
|
using | JointVectorProxyAspectState = common::ProxyCloneable< common::Aspect::State, Skeleton, JointStateVector, &setAllJointStates, &getAllJointStates > |
|
using | JointVectorProxyAspectProperties = common::ProxyCloneable< common::Aspect::Properties, Skeleton, JointPropertiesVector, &setAllJointProperties, &getAllJointProperties > |
|
using | JointVectorProxyAspect = common::ProxyStateAndPropertiesAspect< Skeleton, JointVectorProxyAspectState, JointVectorProxyAspectProperties > |
|
using | SkeletonProxyAspects = common::RequiresAspect< BodyNodeVectorProxyAspect, JointVectorProxyAspect > |
|
using | SkeletonAspectBase = common::EmbedPropertiesOnTopOf< Skeleton, SkeletonAspectProperties, SkeletonProxyAspects > |
|
using | SoftBodyNodeBase = common::EmbedStateAndPropertiesOnTopOf< SoftBodyNode, SoftBodyNodeUniqueState, SoftBodyNodeUniqueProperties, BodyNode > |
|
using | TranslationalJoint2DBase = common::EmbedPropertiesOnTopOf< TranslationalJoint2D, TranslationalJoint2DUniqueProperties, GenericJoint< math::R2Space > > |
|
using | UniversalJointBase = common::EmbedPropertiesOnTopOf< UniversalJoint, UniversalJointUniqueProperties, GenericJoint< math::R2Space > > |
|
|
void | setAllNodeStates (BodyNode *bodyNode, const AllNodeStates &states) |
|
AllNodeStates | getAllNodeStates (const BodyNode *bodyNode) |
|
void | setAllNodeProperties (BodyNode *bodyNode, const AllNodeProperties &properties) |
|
AllNodeProperties | getAllNodeProperties (const BodyNode *bodyNode) |
|
void | SupportUpdate (Support *support) |
|
void | setAllBodyNodeStates (Skeleton *skel, const BodyNodeStateVector &states) |
|
BodyNodeStateVector | getAllBodyNodeStates (const Skeleton *skel) |
|
void | setAllBodyNodeProperties (Skeleton *skel, const BodyNodePropertiesVector &properties) |
|
BodyNodePropertiesVector | getAllBodyNodeProperties (const Skeleton *skel) |
|
void | setAllJointStates (Skeleton *skel, const JointStateVector &states) |
|
JointStateVector | getAllJointStates (const Skeleton *skel) |
|
void | setAllJointProperties (Skeleton *skel, const JointPropertiesVector &properties) |
|
JointPropertiesVector | getAllJointProperties (const Skeleton *skel) |
|
template<class Owner , class Object , class ObjectBase , class Data , std::size_t(Owner::*)() const getNumObjects, Object *(Owner::*)(std::size_t) getObject, void(ObjectBase::*)(const Data &) setData> |
void | setAllMemberObjectData (Owner *owner, const std::vector< Data > &data) |
| Templated function for passing each entry in a std::vector<Data> into each member of an array of Objects belonging to some Owner class. More...
|
|
template<class Owner , class Object , class ObjectBase , class Data , std::size_t(Owner::*)() const getNumObjects, const Object *(Owner::*)(std::size_t) const getObject, Data(ObjectBase::*)() const getData> |
std::vector< Data > | getAllMemberObjectData (const Owner *owner) |
| Templated function for aggregating a std::vector<Data> out of each member of an array of Objects belonging to some Owner class. More...
|
|
Actuator type.
The command is taken by setCommand() or setCommands(), and the meaning of command is different depending on the actuator type. The default actuator type is FORCE. (TODO: FreeJoint should be PASSIVE?)
FORCE/PASSIVE/SERVO/MIMIC joints are dynamic joints while ACCELERATION/VELOCITY/LOCKED joints are kinematic joints.
Note the presence of joint damping force and joint spring force for all the actuator types if the coefficients are non-zero. The default coefficients are zero.
- See also
- setActuatorType(), getActuatorType(), setSpringStiffness(), setDampingCoefficient(),
Enumerator |
---|
FORCE | Command input is joint force, and the output is joint acceleration.
If the command is zero, then it's identical to passive joint. The valid joint constraints are position limit, velocity limit, and Coulomb friction, and the invalid joint constraint is force limit.
|
PASSIVE | Passive joint doesn't take any command input, and the output is joint acceleration.
The valid joint constraints are position limit, velocity limit, and Coulomb friction, and the invalid joint constraint is force limit.
|
SERVO | Command input is desired velocity, and the output is joint acceleration.
The constraint solver will try to track the desired velocity within the joint force limit. All the joint constraints are valid.
|
MIMIC | There is no command input.
The joint tries to follow the position of another joint (the mimic joint) by computing desired velocities. The output is joint acceleration.
The constraint solver will try to track the desired velocity within the joint force limit. All the joint constraints are valid.
|
ACCELERATION | Command input is joint acceleration, and the output is joint force.
The joint acceleration is always satisfied but it doesn't take the joint force limit into account. All the joint constraints are invalid.
|
VELOCITY | Command input is joint velocity, and the output is joint force.
The joint velocity is always satisfied but it doesn't take the joint force limit into account. If you want to consider the joint force limit, should use SERVO instead. All the joint constraints are invalid.
|
LOCKED | Locked joint always set the velocity and acceleration to zero so that the joint dosen't move at all (locked), and the output is joint force.
force.
All the joint constraints are invalid.
|
template<class Owner , class Object , class ObjectBase , class Data , std::size_t(Owner::*)() const getNumObjects, const Object *(Owner::*)(std::size_t) const getObject, Data(ObjectBase::*)() const getData>
std::vector<Data> dart::dynamics::detail::getAllMemberObjectData |
( |
const Owner * |
owner | ) |
|
Templated function for aggregating a std::vector<Data> out of each member of an array of Objects belonging to some Owner class.
The ObjectBase argument should be the base class of Object in which the getData function is defined. In many cases, ObjectBase may be the same as Object, but it is not always.
template<class Owner , class Object , class ObjectBase , class Data , std::size_t(Owner::*)() const getNumObjects, Object *(Owner::*)(std::size_t) getObject, void(ObjectBase::*)(const Data &) setData>
void dart::dynamics::detail::setAllMemberObjectData |
( |
Owner * |
owner, |
|
|
const std::vector< Data > & |
data |
|
) |
| |
Templated function for passing each entry in a std::vector<Data> into each member of an array of Objects belonging to some Owner class.
The ObjectBase argument should be the base class of Object in which the setData function is defined. In many cases, ObjectBase may be the same as Object, but it is not always.