DART  6.10.1
dart::dynamics::detail Namespace Reference

Classes

class  BasicNodeManagerForBodyNode
 
class  BasicNodeManagerForSkeleton
 
struct  BodyNodeState
 
struct  BodyNodeAspectProperties
 
struct  EndEffectorProperties
 
struct  SupportStateData
 
struct  SupportPropertiesData
 
struct  EntityNodeProperties
 
class  EntityNodeBase
 
class  EntityNodeBase< Base, true >
 
struct  EulerJointUniqueProperties
 
struct  EulerJointProperties
 
struct  FixedFrameProperties
 
struct  GenericJointState
 
struct  GenericJointUniqueProperties
 
struct  GenericJointProperties
 
struct  JointProperties
 
struct  MarkerProperties
 
struct  PlanarJointUniqueProperties
 Properties that are unique to PlanarJoints. More...
 
struct  PlanarJointProperties
 
struct  PrismaticJointUniqueProperties
 
struct  PrismaticJointProperties
 
struct  RevoluteJointUniqueProperties
 
struct  RevoluteJointProperties
 
struct  ScrewJointUniqueProperties
 
struct  ScrewJointProperties
 
struct  VisualAspectProperties
 
struct  CollisionAspectProperties
 
struct  DynamicsAspectProperties
 
struct  ShapeFrameProperties
 
struct  SkeletonAspectProperties
 The Properties of this Skeleton which are independent of the components within the Skeleton, such as its BodyNodes and Joints. More...
 
struct  SoftBodyNodeUniqueState
 
struct  SoftBodyNodeUniqueProperties
 
struct  SoftBodyNodeProperties
 
class  TranslationalJoint2DUniqueProperties
 
struct  TranslationalJoint2DProperties
 
struct  UniversalJointUniqueProperties
 
struct  UniversalJointProperties
 

Typedefs

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 > >
 

Enumerations

enum class  AxisOrder : int { ZYX = 0 , XYZ = 1 }
 Axis order. More...
 
enum  ActuatorType {
  FORCE , PASSIVE , SERVO , MIMIC ,
  ACCELERATION , VELOCITY , LOCKED
}
 Actuator type. More...
 
enum class  PlaneType : int { XY , YZ , ZX , ARBITRARY }
 Plane type. More...
 

Functions

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...
 

Variables

const ActuatorType DefaultActuatorType = FORCE
 

Typedef Documentation

◆ AllNodeProperties

◆ AllNodeStates

◆ BodyNodeCompositeBase

◆ BodyNodePropertiesVector

◆ BodyNodeStateVector

◆ BodyNodeVectorProxyAspect

◆ BodyNodeVectorProxyAspectProperties

◆ BodyNodeVectorProxyAspectState

◆ EndEffectorCompositeBase

◆ EntityNodeAspectBase

◆ EulerJointBase

◆ FixedJacobianNodeCompositeBase

◆ GenericJointBase

template<class Derived , class ConfigSpaceT >
using dart::dynamics::detail::GenericJointBase = typedef common::EmbedStateAndPropertiesOnTopOf< Derived, GenericJointState<ConfigSpaceT>, GenericJointUniqueProperties<ConfigSpaceT>, Joint>

◆ JointPropertiesVector

◆ JointStateVector

◆ JointVectorProxyAspect

◆ JointVectorProxyAspectProperties

◆ JointVectorProxyAspectState

◆ NodePropertiesMap

using dart::dynamics::detail::NodePropertiesMap = typedef std::map<std::type_index, std::unique_ptr<NodeTypePropertiesVector> >

◆ NodeStateMap

using dart::dynamics::detail::NodeStateMap = typedef std::map<std::type_index, std::unique_ptr<NodeTypeStateVector> >

◆ NodeTypePropertiesVector

◆ NodeTypeStateVector

◆ NodeVectorProxyAspect

◆ NodeVectorProxyAspectProperties

◆ NodeVectorProxyAspectState

◆ PlanarJointBase

◆ PrismaticJointBase

◆ RevoluteJointBase

◆ ScrewJointBase

◆ ShapeFrameCompositeBase

◆ ShapeNodeCompositeBase

◆ SkeletonAspectBase

◆ SkeletonProxyAspects

◆ SoftBodyNodeBase

◆ TranslationalJoint2DBase

◆ UniversalJointBase

Enumeration Type Documentation

◆ ActuatorType

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.

◆ AxisOrder

Axis order.

Enumerator
ZYX 
XYZ 

◆ PlaneType

Plane type.

Enumerator
XY 
YZ 
ZX 
ARBITRARY 

Function Documentation

◆ getAllBodyNodeProperties()

BodyNodePropertiesVector dart::dynamics::detail::getAllBodyNodeProperties ( const Skeleton skel)

◆ getAllBodyNodeStates()

BodyNodeStateVector dart::dynamics::detail::getAllBodyNodeStates ( const Skeleton skel)

◆ getAllJointProperties()

BodyNodePropertiesVector dart::dynamics::detail::getAllJointProperties ( const Skeleton skel)

◆ getAllJointStates()

BodyNodeStateVector dart::dynamics::detail::getAllJointStates ( const Skeleton skel)

◆ getAllMemberObjectData()

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.

◆ getAllNodeProperties()

AllNodeProperties dart::dynamics::detail::getAllNodeProperties ( const BodyNode bodyNode)

◆ getAllNodeStates()

AllNodeStates dart::dynamics::detail::getAllNodeStates ( const BodyNode bodyNode)

◆ setAllBodyNodeProperties()

void dart::dynamics::detail::setAllBodyNodeProperties ( Skeleton skel,
const BodyNodePropertiesVector properties 
)

◆ setAllBodyNodeStates()

void dart::dynamics::detail::setAllBodyNodeStates ( Skeleton skel,
const BodyNodeStateVector states 
)

◆ setAllJointProperties()

void dart::dynamics::detail::setAllJointProperties ( Skeleton skel,
const JointPropertiesVector properties 
)

◆ setAllJointStates()

void dart::dynamics::detail::setAllJointStates ( Skeleton skel,
const JointStateVector states 
)

◆ setAllMemberObjectData()

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.

◆ setAllNodeProperties()

void dart::dynamics::detail::setAllNodeProperties ( BodyNode bodyNode,
const AllNodeProperties properties 
)

◆ setAllNodeStates()

void dart::dynamics::detail::setAllNodeStates ( BodyNode bodyNode,
const AllNodeStates states 
)

◆ SupportUpdate()

void dart::dynamics::detail::SupportUpdate ( Support support)

Variable Documentation

◆ DefaultActuatorType

const ActuatorType dart::dynamics::detail::DefaultActuatorType = FORCE