#include <IKJacobian.h>
Inheritance diagram for OSCAR::IKJacobian< JacobianType >:

Public Methods | |
| IKJacobian (const JointVector &initialJointPosition, JacobianType *fkJacobian, OSCARError &err=DUMMY_ERROR(noError), EqnSolver *solver=0, double maxError=0.1, double rtScale=1000.0) | |
| IKJacobian (const IKJacobian &rhs) | |
| IKJacobian & | operator= (const IKJacobian &rhs) |
| virtual | ~IKJacobian () |
| virtual bool | GetJointPosition (const Xform &desiredHandMatrix, JointVector &jointPosition) |
| virtual bool | GetJointPosition (const HandPose &desiredHand, JointVector &jointPosition) |
| virtual bool | GetJointVelocity (const HandPose &handVelocity, JointVector &jointVelocitySolution) |
| virtual bool | GetJointPosition (JointVector &jointPosition) const |
| virtual bool | SetJointPosition (const JointVector &jointPosition) |
| void | SetMinimumMOT (double minMOT) |
| double | GetMinimumMOT () const |
| void | SetMaximumIterations (unsigned int noIterations) |
| unsigned int | GetMaximumIterations (void) const |
| bool | SetErrorTolerance (double maxErrorVal, double rotScale) |
| bool | GetErrorTolerance (double &maxErrorVal, double &rotScale) const |
| double | GetSolutionProperties (void) const |
| double | GetSolutionProperties (unsigned int &iterationCount) const |
| double | GetSolutionProperties (double &errorMagnitude) const |
| double | GetSolutionProperties (Matrix &jacobian) const |
| double | GetSolutionProperties (Xform ¤tHandPos) const |
Protected Methods | |
| virtual bool | converge (const Xform &desiredHandMatrix) |
| virtual double | calculateErrorMagnitude (const Xform &desired, const Xform *current, HandPose &error) |
| virtual void | updateKinematicState (JointVector &jointPosition) |
| virtual bool | inverse () |
Protected Attributes | |
| unsigned int | DOF |
| unsigned int | maxIterations |
| unsigned int | currentIteration |
| double | maxError |
| double | rotationScale |
| double | minimumMOT |
| double | MOT |
| double | errorMag |
| Xform | desiredXform |
| JointVector * | currentJointVector |
| JointVector * | previousJointVector |
| JointVector * | initialJointVector |
| JointVector * | differentialJointVector |
| JointVector * | jointVelocity |
| HandPose | errorHandVector |
| const Xform * | currentHand |
| const Matrix * | currentJacobian |
| JacobianType * | fowkin |
| EqnSolver * | solver |
| bool | internalSolverFlag |
This class contains methods for calculating inverse position and velocity solutions for serial manipulators using the Resolved Rate technique. This class takes a template parameter that defines the forward position and jacobian object that will be used in the internal algorithm. This object must be derived from Kinematics, FKPositionBase, and FKJacobianBase. This template parameter is defaulted to FKJacobian. An object using the default parameter can be initialized as follows:
|
||||||||||||||||||||||||||||||||
|
Constructor. This is the constructor for an object of type IKJacobian. Use this Constructor to create an IKJacobian object from an FKJacobian object and an initial joint position. This class uses the Jacobian calculations from the FKJacobian class to perform a Resolved Rateinverse solution. As such, all functionality for setting and retrieving tool points and base poses should be done through the FKJacobian object.
|
|
||||||||||
|
Copy Constructor. This is the Copy constructor for an object of type IKJacobian. Use this to construct an IKJacobian based on an existing IKJacobian object.
|
|
|||||||||
|
Virtual Destructor. This is the Destructor for an IKJacobian object. |
|
||||||||||||||||||||
|
Reimplemented in OSCAR::IKJDLS< JacobianType >, OSCAR::IKJReconfig< JacobianType >, and OSCAR::IKJReconfig< >. |
|
||||||||||
|
Reimplemented in OSCAR::IKJDLS< JacobianType >. |
|
||||||||||||||||
|
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. Reimplemented in OSCAR::IKJDLS< JacobianType >, OSCAR::IKJReconfig< JacobianType >, and OSCAR::IKJReconfig< >. |
|
||||||||||||||||
|
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. Reimplemented in OSCAR::IKJDLS< JacobianType >, OSCAR::IKJReconfig< JacobianType >, and OSCAR::IKJReconfig< >. |
|
||||||||||||||||
|
Get the Joint Velocity. This method is used to get the current joint velocity vector from a HandPose velocity vector.
Implements OSCAR::IKVelocity. Reimplemented in OSCAR::IKJAvoidLimits< JacobianType >, OSCAR::IKJDLS< JacobianType >, OSCAR::IKJReconfig< JacobianType >, and OSCAR::IKJReconfig< >. |
|
||||||||||
|
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. IKJacobian uses an iterative algorithm to find the inverse solution. Use this method to query the upper bound to the number of iterations.
|
|
|||||||||
|
Get the value of the Minimum Measure of Transmissibity(MOT). This method is used to get the value of the current minimum MOT.
|
|
||||||||||
|
Get the Solution Properties. This method is used to getthe current hand position.
|
|
||||||||||
|
Get the Solution Properties. This method is used to get the current Jacobian matrix.
|
|
||||||||||
|
Get the Solution Properties. This method is used to determine the solution properties of the inverse.
|
|
||||||||||
|
Get the Solution Properties. This method is used to determine the solution properties of the inverse.
|
|
||||||||||
|
Get the Solution Properties. This method is used to determine the solution properties of the inverse.
|
|
|||||||||
|
Reimplemented in OSCAR::IKJAvoidLimits< JacobianType >, OSCAR::IKJReconfig< JacobianType >, and OSCAR::IKJReconfig< >. |
|
||||||||||
|
Assignment operator. This is the Assignment operator for an object of type IKJacobian.
|
|
||||||||||||||||
|
Set the Error Tolerance. This method is used to set the Error Tolerance. IKJacobian 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. This is necessary when you want to arbitrarily start the inverse solution at a joint configuraiton that is different from where it previously was.
|
|
||||||||||
|
Set a bound on the Maximum number of iterations. This method is used to set a bound on the Maximum number of iterations. IKJacobian 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.
|
|
||||||||||
|
Set the Minimum Measure of Transmissibity(MOT). This method is used to change the minimum MOT (Measure of Transmissibity, also referred to as the Measure of Manipulability) allowed in the system. The minimum MOT is basically the minium tolerable value of the determinant of the Jacobian matrix. Any value lower than this will flag a singularity.
|
|
||||||||||
|
Reimplemented in OSCAR::IKJReconfig< JacobianType >, and OSCAR::IKJReconfig< >. |
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
| RRG Homepage | OSCAR Overview | OSCAR Tutorials | Simulations |