33 #ifndef DART_DYNAMICS_METASKELETON_HPP_
34 #define DART_DYNAMICS_METASKELETON_HPP_
39 #include <Eigen/Dense>
55 class DegreeOfFreedom;
65 std::shared_ptr<const MetaSkeleton> _skeleton,
66 const std::string& _oldName,
67 const std::string& _newName)>;
76 const std::string& cloneName)
const = 0;
94 virtual const std::string&
setName(
const std::string& _name) = 0;
97 virtual const std::string&
getName()
const = 0;
141 const std::string&
name)
const = 0;
151 const BodyNode* _bn,
bool _warning =
true)
const = 0;
176 virtual std::vector<const Joint*>
getJoints()
const = 0;
195 const std::string&
name)
const = 0;
205 const Joint* _joint,
bool _warning =
true)
const = 0;
217 virtual const std::vector<DegreeOfFreedom*>&
getDofs() = 0;
220 virtual std::vector<const DegreeOfFreedom*>
getDofs()
const = 0;
236 void setCommand(std::size_t _index,
double _command);
242 void setCommands(
const Eigen::VectorXd& _commands);
246 const std::vector<std::size_t>& _indices,
247 const Eigen::VectorXd& _commands);
253 Eigen::VectorXd
getCommands(
const std::vector<std::size_t>& _indices)
const;
275 const std::vector<std::size_t>& _indices,
276 const Eigen::VectorXd& _positions);
282 Eigen::VectorXd
getPositions(
const std::vector<std::size_t>& _indices)
const;
295 const std::vector<std::size_t>& indices,
296 const Eigen::VectorXd& positions);
306 const std::vector<std::size_t>& indices)
const;
316 const std::vector<std::size_t>& indices,
317 const Eigen::VectorXd& positions);
327 const std::vector<std::size_t>& indices)
const;
336 void setVelocity(std::size_t _index,
double _velocity);
346 const std::vector<std::size_t>& _indices,
347 const Eigen::VectorXd& _velocities);
353 Eigen::VectorXd
getVelocities(
const std::vector<std::size_t>& _indices)
const;
367 const std::vector<std::size_t>& indices,
368 const Eigen::VectorXd& velocities);
379 const std::vector<std::size_t>& indices)
const;
390 const std::vector<std::size_t>& indices,
391 const Eigen::VectorXd& velocities);
402 const std::vector<std::size_t>& indices)
const;
421 const std::vector<std::size_t>& _indices,
422 const Eigen::VectorXd& _accelerations);
429 const std::vector<std::size_t>& _indices)
const;
443 const std::vector<std::size_t>& indices,
444 const Eigen::VectorXd& accelerations);
455 const std::vector<std::size_t>& indices)
const;
466 const std::vector<std::size_t>& indices,
467 const Eigen::VectorXd& accelerations);
478 const std::vector<std::size_t>& indices)
const;
487 void setForce(std::size_t _index,
double _force);
490 double getForce(std::size_t _index)
const;
493 void setForces(
const Eigen::VectorXd& _forces);
497 const std::vector<std::size_t>& _index,
const Eigen::VectorXd& _forces);
503 Eigen::VectorXd
getForces(
const std::vector<std::size_t>& _indices)
const;
516 const std::vector<std::size_t>& indices,
const Eigen::VectorXd& forces);
526 const std::vector<std::size_t>& indices)
const;
536 const std::vector<std::size_t>& indices,
const Eigen::VectorXd& forces);
546 const std::vector<std::size_t>& indices)
const;
586 const Frame* _inCoordinatesOf)
const;
592 const JacobianNode* _node,
const Eigen::Vector3d& _localOffset)
const = 0;
599 const Eigen::Vector3d& _localOffset,
600 const Frame* _inCoordinatesOf)
const = 0;
608 const Eigen::Vector3d& _localOffset,
610 const Frame* _inCoordinatesOf)
const;
620 const JacobianNode* _node,
const Eigen::Vector3d& _localOffset)
const = 0;
633 const Eigen::Vector3d& _localOffset,
650 const Eigen::Vector3d& _localOffset,
688 const JacobianNode* _node,
const Eigen::Vector3d& _localOffset)
const = 0;
695 const Eigen::Vector3d& _localOffset,
696 const Frame* _inCoordinatesOf)
const = 0;
704 const Frame* _inCoordinatesOf)
const;
712 const Eigen::Vector3d& _localOffset,
714 const Frame* _inCoordinatesOf)
const;
732 const Eigen::Vector3d& _localOffset,
746 const Eigen::Vector3d& _localOffset,
833 const
Frame* _withRespectTo =
Frame::World()) const = 0;
839 const
Frame* _inCoordinatesOf =
Frame::World()) const = 0;
845 const
Frame* _inCoordinatesOf =
Frame::World()) const = 0;
851 const
Frame* _inCoordinatesOf =
Frame::World()) const = 0;
857 const
Frame* _inCoordinatesOf =
Frame::World()) const = 0;
862 const
Frame* _inCoordinatesOf =
Frame::World()) const = 0;
867 const
Frame* _inCoordinatesOf =
Frame::World()) const = 0;
876 const
Frame* _inCoordinatesOf =
Frame::World()) const = 0;
885 const
Frame* _inCoordinatesOf =
Frame::World()) const = 0;
#define DART_DEPRECATED(version)
Definition: Deprecated.hpp:51
std::string * name
Definition: SkelParser.cpp:1697
std::size_t index
Definition: SkelParser.cpp:1672
The Subject class is a base class for any object that wants to report when it gets destroyed.
Definition: Subject.hpp:58
BodyNode class represents a single node of the skeleton.
Definition: BodyNode.hpp:79
DegreeOfFreedom class is a proxy class for accessing single degrees of freedom (aka generalized coord...
Definition: DegreeOfFreedom.hpp:55
The Frame class serves as the backbone of DART's kinematic tree structure.
Definition: Frame.hpp:58
static Frame * World()
Definition: Frame.cpp:73
The JacobianNode class serves as a common interface for BodyNodes and EndEffectors to both be used as...
Definition: JacobianNode.hpp:55
class Joint
Definition: Joint.hpp:60
Definition: Random-impl.hpp:92
Matrix< double, 6, 1 > Vector6d
Definition: MathTypes.hpp:49
std::shared_ptr< MetaSkeleton > MetaSkeletonPtr
Definition: SmartPointer.hpp:68
Eigen::Matrix< double, 6, Eigen::Dynamic > Jacobian
Definition: MathTypes.hpp:114
Eigen::Matrix< double, 3, Eigen::Dynamic > AngularJacobian
Definition: MathTypes.hpp:113
Eigen::Matrix< double, 3, Eigen::Dynamic > LinearJacobian
Definition: MathTypes.hpp:112
Definition: BulletCollisionDetector.cpp:65