#include <IKDirectSearch.h>
Inheritance diagram for OSCAR::IKDirectSearch:

Public Methods | |
| IKDirectSearch (JointVector &initialJointPosition, FKPosition *fkPosition, OSCARError &err=DUMMY_ERROR(noError), double maxError=0.1, double rtScale=1000.0) | |
| IKDirectSearch (const IKDirectSearch &rhs) | |
| IKDirectSearch & | operator= (const IKDirectSearch &rhs) |
| virtual | ~IKDirectSearch () |
| bool | GetJointPosition (const Xform &desiredHandMatrix, JointVector &jointPosition) |
| bool | GetJointPosition (const HandPose &desiredHand, JointVector &jointPosition) |
| bool | GetJointPosition (JointVector &jointPosition) const |
| bool | SetJointPosition (const JointVector &jointPosition) |
| void | SetMaximumIterations (unsigned int noIterations) |
| unsigned int | GetMaximumIterations (void) const |
| bool | SetErrorTolerance (double maxErrorVal, double rotScale) |
| bool | GetErrorTolerance (double &maxErrorVal, double &rotScale) const |
| bool | SetPerturbationParameters (const double perturbationDelta, const Perturbation::SearchPattern searchPattern=Perturbation::Simple) |
| bool | GetPerturbationParameters (double &perturbationDelta, Perturbation::SearchPattern &searchPattern) const |
| bool | SetDeltaVector (const Vector &deltas) |
Protected Methods | |
| virtual bool | converge (const Xform &desiredHandMatrix) |
| virtual double | calculateErrorMagnitude (const Xform &desired, const Xform *current, HandPose &error) |
Protected Attributes | |
| unsigned int | DOF |
| unsigned int | maxIterations |
| unsigned int | currentIteration |
| unsigned int | nbrOptions |
| double | maxError |
| double | rotationScale |
| double | errorMag |
| double | deltaPerturb |
| Xform | desiredXform |
| HandPose | errorHandVector |
| Perturbation::SearchPattern | pattern |
| JointVector * | currentJointVector |
| JointVector * | previousJointVector |
| JointVector * | initialJointVector |
| const Xform * | currentHand |
| FKPosition * | fowkin |
| Perturbation * | perturb |
| VectorArray * | solnArray |
This class contains methods for calculating inverse position solutions using an iterative direct search method. When a new hand position is sent to the object, the object perturbs the current joint values to generate a set of possible solutions. The resulting HandPose error for each of these solutions is determined, and the solution with the minimum error is chosen. This process is repeated until the error is within some error limit.
|
||||||||||||||||||||||||
|
Constructor. This is the constructor for an object of type IKDirectSearch. Use this Constructor to create an IKDirectSearch object from an FKPosition object and an initial joint position. This class uses the forward kinematics from the FKPosition object to converge on a solution. As such, all functionality for setting and retrieving tool points and base poses should be done through the FKPosition object.
|
|
|
Copy Constructor. This is the Copy constructor for an object of type IKDirectSearch. Use this to construct an IKDirectSearch based on an existing IKDirectSearch object.
|
|
|
Virtual Destructor. This is the Destructor for an IKDirectSearch object. |
|
||||||||||||||||
|
|
|
|
|
|
||||||||||||
|
Get the value of the Error Tolerance. This method is used to get the value of the Error Tolerance; the maximum error and the rotation scaling factor.
|
|
|
Get the Joint Position. This method is used to get the current joint state of the system.
|
|
||||||||||||
|
Get the Joint position. This method is used to get the current joint position for an end-effector position represented by an HandPose object.
Implements OSCAR::IKPosition. |
|
||||||||||||
|
Get the Joint position. This method is used to get the current joint position solution for an end-effector position represented by an Xform object.
Implements OSCAR::IKPosition. |
|
|
Get the value of the bound set on the Maximum number of iterations. This method is used to get the value of the bound set on the Maximum number of iterations. IKDirectSearch uses an iterative algorithm to find the inverse solution. Use this method to query the upper bound to the number of iterations.
|
|
||||||||||||
|
This method is used to get the values that the object currently uses to perturb the joint positions.
|
|
|
Assignment operator. This is the Assignment operator for an object of type IKDirectSearch.
|
|
|
This method will allow you to set a different delta value for each joint.
|
|
||||||||||||
|
Set the Error Tolerance. This method is used to set the Error Tolerance. IKPosition uses an iterative algorithm to find the inverse solution. As such, this algorithm stops iterating when the error value falls below a preset value. Also, the robot end-effector error is composed of translational and rotational errors. This method is used to specify the total error and a scale factor that is multipled by the rotational error. The total error is then computed as error = translational error + scale * rotational error. The default translational error as specified in the constructor is 0.l units and the scale is 1000.00.
|
|
|
Set the Joint Position. This method is used to reset to a new internal joint position state.
|
|
|
Set a bound on the Maximum number of iterations. This method is used to set a bound on the Maximum number of iterations. IKDirectSearch uses an iterative algorithm to find the inverse solution. Use this method to specify an upper bound on the number of iterations. The default is 100.
|
|
||||||||||||
|
Use this method to set the perturbation parameters. This method is used to set the values that the object will use to perturb the joint positions.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| RRG Homepage | OSCAR Overview | OSCAR Tutorials | Simulations |