1 #ifndef AIKIDO_STATESPACE_DART_METASKELETONSTATESPACE_HPP_ 2 #define AIKIDO_STATESPACE_DART_METASKELETONSTATESPACE_HPP_ 4 #include <unordered_map> 6 #include <dart/dynamics/dynamics.hpp> 8 #include "aikido/common/pair.hpp" 9 #include "aikido/common/pointers.hpp" 10 #include "aikido/statespace/CartesianProduct.hpp" 11 #include "aikido/statespace/dart/JointStateSpace.hpp" 14 namespace statespace {
17 AIKIDO_DECLARE_POINTERS(MetaSkeletonStateSpace)
19 class MetaSkeletonStateSpace : public CartesianProduct
37 explicit Properties(const ::dart::dynamics::MetaSkeleton* metaskeleton);
40 const std::string& getName()
const;
43 std::size_t getNumJoints()
const;
46 std::size_t getNumDofs()
const;
49 const std::vector<std::string>& getDofNames()
const;
52 std::size_t getDofIndex(std::size_t ijoint, std::size_t ijointdof)
const;
55 std::size_t getDofIndex(
const std::string& dofName)
const;
58 const Eigen::VectorXd& getPositionLowerLimits()
const;
61 const Eigen::VectorXd& getPositionUpperLimits()
const;
64 const Eigen::VectorXd& getVelocityLowerLimits()
const;
67 const Eigen::VectorXd& getVelocityUpperLimits()
const;
71 bool operator==(
const Properties& otherProperties)
const;
75 bool operator!=(
const Properties& otherProperties)
const;
89 std::pair<std::size_t, std::size_t>,
114 const ::dart::dynamics::MetaSkeleton* metaskeleton);
125 bool isCompatible(const ::dart::dynamics::MetaSkeleton* metaskeleton)
const;
132 void checkCompatibility(
133 const ::dart::dynamics::MetaSkeleton* metaskeleton)
const;
140 void checkIfContained(const ::dart::dynamics::Skeleton* skeleton)
const;
148 template <
class Space = Jo
intStateSpace>
149 std::shared_ptr<Space> getJointSpace(
150 const ::dart::dynamics::MetaSkeleton* _metaskeleton,
151 const ::dart::dynamics::Joint* _joint)
const;
158 template <
class Space = Jo
intStateSpace>
159 std::shared_ptr<const Space> getJointSpace(std::size_t _index)
const;
166 void convertPositionsToState(
167 const Eigen::VectorXd& _positions,
State* _state)
const;
174 void convertStateToPositions(
175 const State* _state, Eigen::VectorXd& _positions)
const;
182 const ::dart::dynamics::MetaSkeleton* _metaskeleton,
State* _state)
const;
189 ::dart::dynamics::MetaSkeleton* _metaskeleton,
const State* _state)
const;
196 const ::dart::dynamics::MetaSkeleton* _metaskeleton)
const;
200 ::dart::dynamics::MetaSkeletonPtr getControlledMetaSkeleton(
201 const ::dart::dynamics::SkeletonPtr& _skeleton)
const;
211 #include "detail/MetaSkeletonStateSpace-impl.hpp" 213 #endif // ifndef AIKIDO_STATESPACE_DART_METASKELETONSTATESPACE_HPP_ Implements a hash function for pairs of std::hash-able types.
Definition: pair.hpp:8
CRTP RAII wrapper for a StateHandle.
Definition: ScopedState.hpp:15
Definition: FrameMarker.hpp:11
Format of serialized trajectory in YAML.
Definition: algorithm.hpp:4
A tuple of states where the i-th state is from the i-th subspace.
Definition: CartesianProduct.hpp:162