Aikido
BodyNodePoseVectorField.hpp
Go to the documentation of this file.
1 #ifndef AIKIDO_PLANNER_VECTORFIELD_BODYNODEPOSEVECTORFIELD_HPP_
2 #define AIKIDO_PLANNER_VECTORFIELD_BODYNODEPOSEVECTORFIELD_HPP_
3 
4 #include <dart/dynamics/BodyNode.hpp>
5 
8 
9 namespace aikido {
10 namespace planner {
11 namespace vectorfield {
12 
14 
25 {
26 public:
40  metaSkeletonStateSpace,
41  ::dart::dynamics::MetaSkeletonPtr metaSkeleton,
42  ::dart::dynamics::ConstBodyNodePtr bodyNode,
43  double maxStepSize,
44  double jointLimitPadding,
45  bool enforceJointVelocityLimits = false);
46 
47  // Documentation inherited.
48  bool evaluateVelocity(
50  Eigen::VectorXd& qd) const override;
51 
52  // Documentation inherited.
54  const aikido::statespace::StateSpace::State* state) const override;
55 
60  virtual bool evaluateCartesianVelocity(
61  const Eigen::Isometry3d& pose,
62  Eigen::Vector6d& cartesianVelocity) const = 0;
63 
69  const Eigen::Isometry3d& pose) const = 0;
70 
71  // Documentation inherited.
72  bool evaluateTrajectory(
73  const aikido::trajectory::Trajectory& trajectory,
74  const aikido::constraint::Testable* constraint,
75  double evalStepSize,
76  double& evalTimePivot,
77  bool includeEndTime) const override;
78 
82 
84  ::dart::dynamics::MetaSkeletonPtr getMetaSkeleton();
85 
87  ::dart::dynamics::ConstMetaSkeletonPtr getMetaSkeleton() const;
88 
90  ::dart::dynamics::ConstBodyNodePtr getBodyNode() const;
91 
92 protected:
96 
98  ::dart::dynamics::MetaSkeletonPtr mMetaSkeleton;
99 
101  ::dart::dynamics::ConstBodyNodePtr mBodyNode;
102 
104  double mMaxStepSize;
105 
108 
110  Eigen::VectorXd mVelocityLowerLimits;
111 
113  Eigen::VectorXd mVelocityUpperLimits;
114 
117 };
118 
119 } // namespace vectorfield
120 } // namespace planner
121 } // namespace aikido
122 
123 #endif // AIKIDO_PLANNER_VECTORFIELD_BODYNODEPOSEVECTORFIELD_HPP_
aikido::statespace::dart::ConstMetaSkeletonStateSpacePtr
std::shared_ptr< const MetaSkeletonStateSpace > ConstMetaSkeletonStateSpacePtr
Definition: MetaSkeletonStateSpace.hpp:17
aikido::planner::vectorfield::BodyNodePoseVectorField
This class is a vector field over a MetaSkeletonStateSpace that is defined in terms of a Cartesian ve...
Definition: BodyNodePoseVectorField.hpp:24
aikido::planner::vectorfield::BodyNodePoseVectorField::getMetaSkeleton
::dart::dynamics::MetaSkeletonPtr getMetaSkeleton()
Returns meta skeleton.
aikido
Format of serialized trajectory in YAML.
Definition: algorithm.hpp:4
aikido::constraint::Testable
Constraint which can be tested.
Definition: Testable.hpp:17
aikido::planner::vectorfield::BodyNodePoseVectorField::BodyNodePoseVectorField
BodyNodePoseVectorField(aikido::statespace::dart::ConstMetaSkeletonStateSpacePtr metaSkeletonStateSpace, ::dart::dynamics::MetaSkeletonPtr metaSkeleton, ::dart::dynamics::ConstBodyNodePtr bodyNode, double maxStepSize, double jointLimitPadding, bool enforceJointVelocityLimits=false)
Constructor.
aikido::planner::vectorfield::BodyNodePoseVectorField::evaluateTrajectory
bool evaluateTrajectory(const aikido::trajectory::Trajectory &trajectory, const aikido::constraint::Testable *constraint, double evalStepSize, double &evalTimePivot, bool includeEndTime) const override
Evaludate whether a trajectory satisfies a constraint.
aikido::planner::vectorfield::BodyNodePoseVectorField::mMaxStepSize
double mMaxStepSize
Maximum step size of integrator.
Definition: BodyNodePoseVectorField.hpp:104
aikido::planner::vectorfield::BodyNodePoseVectorField::mMetaSkeleton
::dart::dynamics::MetaSkeletonPtr mMetaSkeleton
Meta Skeleton.
Definition: BodyNodePoseVectorField.hpp:98
aikido::planner::vectorfield::BodyNodePoseVectorField::mMetaSkeletonStateSpace
aikido::statespace::dart::ConstMetaSkeletonStateSpacePtr mMetaSkeletonStateSpace
Meta skeleton state space.
Definition: BodyNodePoseVectorField.hpp:95
aikido::planner::vectorfield::BodyNodePoseVectorField::getMetaSkeletonStateSpace
aikido::statespace::dart::ConstMetaSkeletonStateSpacePtr getMetaSkeletonStateSpace() const
Return const meta skeleton state space.
aikido::planner::vectorfield::BodyNodePoseVectorField::getBodyNode
::dart::dynamics::ConstBodyNodePtr getBodyNode() const
Returns const body node of end-effector.
aikido::planner::vectorfield::BodyNodePoseVectorField::evaluateCartesianStatus
virtual VectorFieldPlannerStatus evaluateCartesianStatus(const Eigen::Isometry3d &pose) const =0
Evaluate current pose to determine the status of planning.
aikido::planner::vectorfield::BodyNodePoseVectorField::mVelocityLowerLimits
Eigen::VectorXd mVelocityLowerLimits
Joint velocities lower limits.
Definition: BodyNodePoseVectorField.hpp:110
aikido::planner::vectorfield::BodyNodePoseVectorField::mVelocityUpperLimits
Eigen::VectorXd mVelocityUpperLimits
Joint velocities upper limits.
Definition: BodyNodePoseVectorField.hpp:113
aikido::planner::vectorfield::BodyNodePoseVectorField::evaluateStatus
VectorFieldPlannerStatus evaluateStatus(const aikido::statespace::StateSpace::State *state) const override
Vectorfield planning status callback function.
VectorField.hpp
aikido::planner::vectorfield::BodyNodePoseVectorField::mJointLimitPadding
double mJointLimitPadding
Padding of joint limits.
Definition: BodyNodePoseVectorField.hpp:107
aikido::planner::vectorfield::BodyNodePoseVectorField::mEnforceJointVelocityLimits
bool mEnforceJointVelocityLimits
Enfoce joint velocity limits.
Definition: BodyNodePoseVectorField.hpp:116
MetaSkeletonStateSpace.hpp
aikido::planner::vectorfield::VectorField
This class defines a vector field.
Definition: VectorField.hpp:18
aikido::planner::vectorfield::VectorFieldPlannerStatus
VectorFieldPlannerStatus
Status of planning.
Definition: VectorFieldPlannerStatus.hpp:14
aikido::planner::vectorfield::BodyNodePoseVectorField::evaluateVelocity
bool evaluateVelocity(const aikido::statespace::StateSpace::State *state, Eigen::VectorXd &qd) const override
Vectorfield callback function.
aikido::statespace::StateSpace::State
Definition: StateSpace.hpp:167
aikido::planner::vectorfield::BodyNodePoseVectorField::evaluateCartesianVelocity
virtual bool evaluateCartesianVelocity(const Eigen::Isometry3d &pose, Eigen::Vector6d &cartesianVelocity) const =0
Evaluate Cartesian velocity by current pose of body node.
AIKIDO_DECLARE_POINTERS
#define AIKIDO_DECLARE_POINTERS(X)
Definition: pointers.hpp:21
aikido::trajectory::Trajectory
Time-parameterized path in a StateSpace.
Definition: Trajectory.hpp:20
aikido::planner::vectorfield::BodyNodePoseVectorField::mBodyNode
::dart::dynamics::ConstBodyNodePtr mBodyNode
BodyNode.
Definition: BodyNodePoseVectorField.hpp:101