IKSolver Class Reference
Provides an abstract interface to inverse kinematic solvers.
More...
#include <IKSolver.h>
Detailed Description
Provides an abstract interface to inverse kinematic solvers.
Definition at line 11 of file IKSolver.h.
List of all members.
Classes |
struct | Cone |
| Cone allows 1-2 freedoms (roll, trade off pitch vs. yaw). More...
|
struct | Line |
| Lines allow 1 freedom, slide along line. More...
|
struct | Orientation |
| Abstract base class for orientation information. More...
|
struct | Parallel |
| Parallel allows 1 freedom (roll along z vector). More...
|
struct | Plane |
| Planes allow 2 freedoms, move in plane. More...
|
struct | Point |
| Points allow 0 freedoms. More...
|
struct | Position |
| Abstract base class for position information. More...
|
struct | Rotation |
| Rotation (here specified as a quaternion) allows 0 freedoms. More...
|
Public Types |
enum | StepResult_t { SUCCESS,
PROGRESS,
LIMITS,
RANGE
} |
| Indicates the type of progress made by the step() family.
More...
|
typedef FamilyFactory
< IKSolver, std::string,
Factory0Arg< IKSolver > > | registry_t |
| shorthand for type registry to allow dynamically instantiating IKSolvers based on the name found in configuration files
|
Public Member Functions |
virtual | ~IKSolver () |
| destructor
|
virtual bool | solve (const Point &pEff, KinematicJoint &j, const Position &pTgt) const |
| Solve to get an 'effector' point pEff (relative to link following j) to a solution of pTgt (or at least a local minimum).
|
virtual bool | solve (const Rotation &oriEff, KinematicJoint &j, const Orientation &oriTgt) const |
| Solve to get an 'effector' orientation oriEff (relative to link following j) to a solution of oriTgt (or at least a local minimum).
|
virtual bool | solve (const Point &pEff, const Rotation &oriEff, KinematicJoint &j, const Position &pTgt, float posPri, const Orientation &oriTgt, float oriPri) const =0 |
| Solve to get an 'effector' (pEff, oriEff, relative to link following j) to a solution of pTgt, oriTgt (or at least a local minimum).
|
virtual StepResult_t | step (const Point &pEff, KinematicJoint &j, const Position &pTgt, float pDist) const |
| Move an 'effector' point pEff (relative to link following j) towards a solution of pTgt (or at least a local minimum).
|
virtual StepResult_t | step (const Rotation &oriEff, KinematicJoint &j, const Orientation &oriTgt, float oriDist) const |
| Move an 'effector' orientation oriEff (relative to link following j) towards a solution of oriTgt (or at least a local minimum).
|
virtual StepResult_t | step (const Point &pEff, const Rotation &oriEff, KinematicJoint &j, const Position &pTgt, float pDist, float posPri, const Orientation &oriTgt, float oriDist, float oriPri) const =0 |
| Move an 'effector' (pEff, oriEff, relative to link following j) towards a solution of pTgt, oriTgt (or at least a local minimum).
|
Static Public Member Functions |
static registry_t & | getRegistry () |
Member Typedef Documentation
shorthand for type registry to allow dynamically instantiating IKSolvers based on the name found in configuration files
Definition at line 186 of file IKSolver.h.
Member Enumeration Documentation
Indicates the type of progress made by the step() family.
- Enumerator:
SUCCESS |
goal was reached
|
PROGRESS |
step moved closer
|
LIMITS |
not able to progress due to joint limits
|
RANGE |
not able to progress due to target out of reach
|
Definition at line 14 of file IKSolver.h.
Constructor & Destructor Documentation
virtual IKSolver::~IKSolver |
( |
|
) |
[virtual] |
Member Function Documentation
static registry_t& IKSolver::getRegistry |
( |
|
) |
[static] |
Solve to get an 'effector' (pEff, oriEff, relative to link following j) to a solution of pTgt, oriTgt (or at least a local minimum).
- Parameters:
-
| pEff | The point on the effector that should be brought to the target. Typically [0,0,0] if the effector is GripperFrame. |
| oriEff | Rotation of the effector's reference frame; used to align some effector axis with the target's Orientation axes. For example, if oriTgt is a Parallel constraint, the effector will be free to rotate about the target's z-axis. If we want the effector to rotate about its y-axis, we use oriEff to rotate the effector y-axis to the target's z-axis. |
| j | The kinematic joint at the end of the chain (e.g., GripperFrame) |
| pTgt | The Position constraint that pEff should satisfy, i.e., the target location |
| oriTgt | The Orientation constraint that pEff should satisfy at the target location |
| posPri,oriPri | Relative priorities (weightings) of position and orientation solutions in case they are mutually exclusive |
Implemented in IKCalliope, IKGradientSolver, and IKThreeLink.
Solve to get an 'effector' orientation oriEff (relative to link following j) to a solution of oriTgt (or at least a local minimum).
- Parameters:
-
| oriEff | Rotation of the effector's reference frame; used to align some effector axis with the target's Orientation axes. For example, if oriTgt is a Parallel constraint, the effector will be free to rotate about the target's z-axis. If we want the effector to rotate about its y-axis, we use oriEff to rotate the effector y-axis to the target's z-axis. |
| j | The kinematic joint at the end of the chain (e.g., GripperFrame) |
| oriTgt | The Orientation constraint that pEff should satisfy at the target location |
Definition at line 151 of file IKSolver.h.
Solve to get an 'effector' point pEff (relative to link following j) to a solution of pTgt (or at least a local minimum).
- Parameters:
-
| pEff | The point on the effector that should be brought to the target. Typically [0,0,0] if the effector is GripperFrame. |
| j | The kinematic joint at the end of the chain (e.g., GripperFrame) |
| pTgt | The Position constraint that pEff should satisfy, i.e., the target location |
Definition at line 142 of file IKSolver.h.
Referenced by GaitedFootsteps::addCandidate(), GaitedFootsteps::addRotation(), CBracketGrasperPredicate< N >::admissible(), Grasper::checkGoalCandidate(), Grasper::PlanArmApproach::doStart(), GaitedFootsteps::expand(), HeadPointerMC::lookAtPoint(), HeadPointerMC::lookInDirection(), ArmMC::moveOffsetToPoint(), ArmMC::moveOffsetToPointWithOrientation(), ArmController::pointPicked(), ArmController::sendReachablePoints(), solve(), XWalkMC::solveIK(), GaitedFootstepMC::solveIK(), PostureEngine::solveLink(), PostureEngine::solveLinkOrientation(), and PostureEngine::solveLinkPosition().
Move an 'effector' (pEff, oriEff, relative to link following j) towards a solution of pTgt, oriTgt (or at least a local minimum).
pDist and oriDist specifies the maximum distance to move towards each solution; posPri and oriPri specify relative weighting of each solution in case they are mutually exclusive
Implemented in IKCalliope, IKGradientSolver, and IKThreeLink.
Move an 'effector' orientation oriEff (relative to link following j) towards a solution of oriTgt (or at least a local minimum).
oriDist specifies the maximum distance to move in radians
Definition at line 175 of file IKSolver.h.
Move an 'effector' point pEff (relative to link following j) towards a solution of pTgt (or at least a local minimum).
pDist specifies the maximum distance to move
Definition at line 169 of file IKSolver.h.
Referenced by step().
The documentation for this class was generated from the following file:
|