Aikido
|
Vector field for moving end-effector by a direction and distance. More...
#include <aikido/planner/vectorfield/MoveEndEffectorOffsetVectorField.hpp>
Public Member Functions | |
MoveEndEffectorOffsetVectorField (aikido::statespace::dart::ConstMetaSkeletonStateSpacePtr stateSpace, ::dart::dynamics::MetaSkeletonPtr metaskeleton, ::dart::dynamics::ConstBodyNodePtr bn, const Eigen::Vector3d &direction, double minDistance, double maxDistance, double positionTolerance, double angularTolerance, double maxStepSize, double jointLimitPadding) | |
Constructor. More... | |
bool | evaluateCartesianVelocity (const Eigen::Isometry3d &pose, Eigen::Vector6d &cartesianVelocity) const override |
Evaluate Cartesian velocity by current pose of body node. More... | |
VectorFieldPlannerStatus | evaluateCartesianStatus (const Eigen::Isometry3d &pose) const override |
Evaluate current pose to determine the status of planning. More... | |
![]() | |
BodyNodePoseVectorField (aikido::statespace::dart::ConstMetaSkeletonStateSpacePtr metaSkeletonStateSpace, ::dart::dynamics::MetaSkeletonPtr metaSkeleton, ::dart::dynamics::ConstBodyNodePtr bodyNode, double maxStepSize, double jointLimitPadding, bool enforceJointVelocityLimits=false) | |
Constructor. More... | |
bool | evaluateVelocity (const aikido::statespace::StateSpace::State *state, Eigen::VectorXd &qd) const override |
Vectorfield callback function. More... | |
VectorFieldPlannerStatus | evaluateStatus (const aikido::statespace::StateSpace::State *state) const override |
Vectorfield planning status callback function. More... | |
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. More... | |
aikido::statespace::dart::ConstMetaSkeletonStateSpacePtr | getMetaSkeletonStateSpace () const |
Return const meta skeleton state space. More... | |
::dart::dynamics::MetaSkeletonPtr | getMetaSkeleton () |
Returns meta skeleton. More... | |
::dart::dynamics::ConstMetaSkeletonPtr | getMetaSkeleton () const |
Returns const meta skeleton. More... | |
::dart::dynamics::ConstBodyNodePtr | getBodyNode () const |
Returns const body node of end-effector. More... | |
![]() | |
VectorField (aikido::statespace::ConstStateSpacePtr stateSpace) | |
Constructor. More... | |
virtual | ~VectorField ()=default |
Destructor. More... | |
aikido::statespace::ConstStateSpacePtr | getStateSpace () |
Returns state space. More... | |
aikido::statespace::ConstStateSpacePtr | getStateSpace () const |
Returns const state space. More... | |
Protected Attributes | |
Eigen::Vector3d | mDirection |
Movement direction. More... | |
double | mMinDistance |
Minimum movement distance. More... | |
double | mMaxDistance |
Maximum distance allowed to move. More... | |
double | mPositionTolerance |
Tolerance of linear deviation error. More... | |
double | mAngularTolerance |
Tolerance of angular error. More... | |
Eigen::Isometry3d | mStartPose |
Start pose of the end-effector. More... | |
![]() | |
aikido::statespace::dart::ConstMetaSkeletonStateSpacePtr | mMetaSkeletonStateSpace |
Meta skeleton state space. More... | |
::dart::dynamics::MetaSkeletonPtr | mMetaSkeleton |
Meta Skeleton. More... | |
::dart::dynamics::ConstBodyNodePtr | mBodyNode |
BodyNode. More... | |
double | mMaxStepSize |
Maximum step size of integrator. More... | |
double | mJointLimitPadding |
Padding of joint limits. More... | |
Eigen::VectorXd | mVelocityLowerLimits |
Joint velocities lower limits. More... | |
Eigen::VectorXd | mVelocityUpperLimits |
Joint velocities upper limits. More... | |
bool | mEnforceJointVelocityLimits |
Enfoce joint velocity limits. More... | |
![]() | |
aikido::statespace::ConstStateSpacePtr | mStateSpace |
State space. More... | |
Vector field for moving end-effector by a direction and distance.
It defines a vector field in meta-skeleton state space that moves an end-effector a desired offset with move-hand-straight constraint. The move-hand-straight constraint is defined by the direction and distance range [minimum distance, maximum distance). Movement less than minimum distance will return failure. The motion will not move further than maximum distance.
This class defines two callback functions for vectorfield planner. One for generating joint velocity in MetaSkeleton state space, and one for determining vectorfield planner status.
aikido::planner::vectorfield::MoveEndEffectorOffsetVectorField::MoveEndEffectorOffsetVectorField | ( | aikido::statespace::dart::ConstMetaSkeletonStateSpacePtr | stateSpace, |
::dart::dynamics::MetaSkeletonPtr | metaskeleton, | ||
::dart::dynamics::ConstBodyNodePtr | bn, | ||
const Eigen::Vector3d & | direction, | ||
double | minDistance, | ||
double | maxDistance, | ||
double | positionTolerance, | ||
double | angularTolerance, | ||
double | maxStepSize, | ||
double | jointLimitPadding | ||
) |
Constructor.
[in] | stateSpace | MetaSkeleton state space. |
[in] | metaskeleton | MetaSkeleton to plan with |
[in] | bn | Body node of end-effector. |
[in] | direction | Unit vector in the direction of motion. |
[in] | minDistance | Minimum distance in meters. |
[in] | maxDistance | Maximum distance in meters. Maximum distance should be larger than minimum distance so that a feasible solution could be found. |
[in] | positionTolerance | Constraint tolerance in meters. |
[in] | angularTolerance | Constraint tolerance in radians. |
[in] | maxStepSize | The maximum step size used to guarantee that the integrator does not step out of joint limits. |
[in] | jointLimitPadding | If less then this distance to joint limit, velocity is bounded in that direction to 0. |
|
overridevirtual |
Evaluate current pose to determine the status of planning.
[in] | pose | Current pose of body node. |
Implements aikido::planner::vectorfield::BodyNodePoseVectorField.
|
overridevirtual |
Evaluate Cartesian velocity by current pose of body node.
[in] | pose | Current pose of body node. |
[out] | cartesianVelocity | Cartesian velocity defined in se(3). |
Implements aikido::planner::vectorfield::BodyNodePoseVectorField.
|
protected |
Tolerance of angular error.
|
protected |
Movement direction.
|
protected |
Maximum distance allowed to move.
|
protected |
Minimum movement distance.
|
protected |
Tolerance of linear deviation error.
|
protected |
Start pose of the end-effector.