Aikido
|
This class is a vector field over a MetaSkeletonStateSpace that is defined in terms of a Cartesian vector field over the pose of a BodyNode in that MetaSkeleton. More...
#include <aikido/planner/vectorfield/BodyNodePoseVectorField.hpp>
Public Member Functions | |
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... | |
virtual bool | evaluateCartesianVelocity (const Eigen::Isometry3d &pose, Eigen::Vector6d &cartesianVelocity) const =0 |
Evaluate Cartesian velocity by current pose of body node. More... | |
virtual VectorFieldPlannerStatus | evaluateCartesianStatus (const Eigen::Isometry3d &pose) const =0 |
Evaluate current pose to determine the status of planning. 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 | |
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... | |
This class is a vector field over a MetaSkeletonStateSpace that is defined in terms of a Cartesian vector field over the pose of a BodyNode in that MetaSkeleton.
The Jacobian pseudoinverse is used to map velocities in se(3) to velocities in configuration space. If multiple solutions exist, i.e. the kinematic chain leading to the BodyNode in the MetaSkeleton is redundant, then a heuristic is used to select velocities from the null space to avoid violating joint limits.
aikido::planner::vectorfield::BodyNodePoseVectorField::BodyNodePoseVectorField | ( | aikido::statespace::dart::ConstMetaSkeletonStateSpacePtr | metaSkeletonStateSpace, |
::dart::dynamics::MetaSkeletonPtr | metaSkeleton, | ||
::dart::dynamics::ConstBodyNodePtr | bodyNode, | ||
double | maxStepSize, | ||
double | jointLimitPadding, | ||
bool | enforceJointVelocityLimits = false |
||
) |
Constructor.
[in] | metaSkeletonStateSpace | MetaSkeleton state space. |
[in] | metaSkeleton | MetaSkeleton to plan with |
[in] | bodyNode | Body node of end-effector. |
[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. |
[in] | enforceJointVelocityLimits | Whether joint velocity limits are considered in computation. |
|
pure virtual |
Evaluate current pose to determine the status of planning.
[in] | pose | Current pose of body node. |
Implemented in aikido::planner::vectorfield::MoveEndEffectorOffsetVectorField, and aikido::planner::vectorfield::MoveEndEffectorPoseVectorField.
|
pure virtual |
Evaluate Cartesian velocity by current pose of body node.
[in] | pose | Current pose of body node. |
[out] | cartesianVelocity | Cartesian velocity defined in se(3). |
Implemented in aikido::planner::vectorfield::MoveEndEffectorOffsetVectorField, and aikido::planner::vectorfield::MoveEndEffectorPoseVectorField.
|
overridevirtual |
Vectorfield planning status callback function.
[in] | state | State to evaluate. |
Implements aikido::planner::vectorfield::VectorField.
|
overridevirtual |
Evaludate whether a trajectory satisfies a constraint.
It is checked by a user-defined evaluation step size.
[in] | trajectory | Trajectory to be evaluated. |
[in] | constraint | Constraint to be satisfied. |
[in] | evalStepSize | The step size used in evaluating constraint. |
[in,out] | evalTimePivot | Input provides the start time of the trajectory to evaluate; output returns the end time of the trajectory evaluate. |
[in] | includeEndTime | Whether end time is included in evaluation. evaluate. satisfaction. |
Implements aikido::planner::vectorfield::VectorField.
|
overridevirtual |
Vectorfield callback function.
[in] | state | Statespace state. |
[out] | qd | Joint velocities. |
Implements aikido::planner::vectorfield::VectorField.
::dart::dynamics::ConstBodyNodePtr aikido::planner::vectorfield::BodyNodePoseVectorField::getBodyNode | ( | ) | const |
Returns const body node of end-effector.
::dart::dynamics::MetaSkeletonPtr aikido::planner::vectorfield::BodyNodePoseVectorField::getMetaSkeleton | ( | ) |
Returns meta skeleton.
::dart::dynamics::ConstMetaSkeletonPtr aikido::planner::vectorfield::BodyNodePoseVectorField::getMetaSkeleton | ( | ) | const |
Returns const meta skeleton.
aikido::statespace::dart::ConstMetaSkeletonStateSpacePtr aikido::planner::vectorfield::BodyNodePoseVectorField::getMetaSkeletonStateSpace | ( | ) | const |
Return const meta skeleton state space.
|
protected |
BodyNode.
|
protected |
Enfoce joint velocity limits.
|
protected |
Padding of joint limits.
|
protected |
Maximum step size of integrator.
|
protected |
Meta Skeleton.
|
protected |
Meta skeleton state space.
|
protected |
Joint velocities lower limits.
|
protected |
Joint velocities upper limits.