Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

OSCAR::RedundantKinematicsHandler Class Reference

#include <RedundantKinematicsHandler.h>

Inheritance diagram for OSCAR::RedundantKinematicsHandler:

Inheritance graph
[legend]
List of all members.

Public Methods

 RedundantKinematicsHandler (const OSCAR::DHData &dhData, const OSCAR::Vector &offsets, const OSCAR::Limits &limits, PerformanceCriteria *crit=0, OSCAR::OSCARError &err=DUMMY_ERROR(OSCAR::noError))
virtual ~RedundantKinematicsHandler ()
virtual bool UpdateJointState (const OSCAR::Xform &targetHand)
virtual bool UpdateJointState (const OSCAR::HandPose &targetHand, OSCAR::AngleUnits angle)
virtual bool SetMinimumMOT (double minMOT)
virtual double GetMiniumMOT () const
virtual bool SetErrorTolerance (double maxError, double rotationErrorScale)
virtual bool GetErrorTolerance (double &positionError, double &rotationErrorScale)
virtual bool SetMaximumIterations (unsigned int noMaxIterations)
virtual unsigned int GetMaximumIterations () const
virtual double GetSolutionProperties (void) const
virtual bool ComputeIK (const HandPose &inputHandPosition, JointVector &jointPosition, OSCAR::AngleUnits angle=Radians, bool Interpolate=false)
virtual bool ComputeIK (const Xform &inputHandPosition, JointVector &jointPosition, OSCAR::AngleUnits angle=Radians, bool Interpolate=false)
virtual bool UpdateJointState (const Xform &targetHand, const JointVector &specifiedJoints)

Protected Methods

 RedundantKinematicsHandler (const RedundantKinematicsHandler &)
RedundantKinematicsHandler operator= (const RedundantKinematicsHandler &) const
virtual bool initializePerformanceCriteria ()
virtual bool createJRA ()
virtual bool getJointPositionPC (const HandPose &inputHandPosition, JointVector &jointPosition)
virtual bool getJointPositionPC (const Xform &inputHandPosition, JointVector &jointPosition)

Protected Attributes

OSCAR::IKJReconfig< > * ikReconfig
OSCAR::IKJGenerateOptions< > * ikjOptions
PerformanceCriteria_crit
OSCAR::Perturbationperturb
OSCAR::VectorArraysolutionSet
OSCAR::RepositoryListreposList
unsigned int noOptions
bool jraCreated
Xform targetHandXform

Constructor & Destructor Documentation

OSCAR::RedundantKinematicsHandler::RedundantKinematicsHandler const OSCAR::DHData   dhData,
const OSCAR::Vector   offsets,
const OSCAR::Limits   limits,
PerformanceCriteria   crit = 0,
OSCAR::OSCARError   err = DUMMY_ERROR(OSCAR::noError)
 

virtual OSCAR::RedundantKinematicsHandler::~RedundantKinematicsHandler   [virtual]
 

OSCAR::RedundantKinematicsHandler::RedundantKinematicsHandler const RedundantKinematicsHandler &    [protected]
 


Member Function Documentation

virtual bool OSCAR::RedundantKinematicsHandler::ComputeIK const Xform   inputHandPosition,
JointVector   jointPosition,
OSCAR::AngleUnits    angle = Radians,
bool    Interpolate = false
[virtual]
 

Computes the inverse position solution without altering the joint state or the cartesian state of the robot.

Parameters:
inputHandPosition A HandPose for which the corresponding joint position is computed. The units in which the orientation is expressedshould be specified in the angle parameter.
jointPosition A JointVector of size DOF that holds the computed joint position. Bt default, the joint position of the revolute joints is computed in radians. The angle parameter can be used to specify the units in which the revolute joint positions should be computed. This parameter is bound checked only in Debug mode (#define _DEBUG).
angle Specifies whether the inputHandPosition orientation is in Degrees or Radians. It also specifies the units in which the revolute joint positions of are computed. Default is Radians.
interpolate Use this parameter to specify whether the IK should iterate and jog towards the inputHandPosition (from the current Hand state). This is useful if the inverse algorithm is iterative. It will not be relevant for closed form inverses. Default is false, i.e., do not interpolate. As this class implements an iterative solution, this parameter should be set to true, if inputHandPosition is significantly different from the current cartesian state.
Returns:
true if no error. false if error.

Reimplemented from OSCAR::GeneralKinematicsHandler.

virtual bool OSCAR::RedundantKinematicsHandler::ComputeIK const HandPose   inputHandPosition,
JointVector   jointPosition,
OSCAR::AngleUnits    angle = Radians,
bool    Interpolate = false
[virtual]
 

Computes the inverse position solution without altering the joint state or the cartesian state of the robot.

Parameters:
inputHandPosition A HandPose for which the corresponding joint position is computed. The units in which the orientation is expressedshould be specified in the angle parameter.
jointPosition A JointVector of size DOF that holds the computed joint position. Bt default, the joint position of the revolute joints is computed in radians. The angle parameter can be used to specify the units in which the revolute joint positions should be computed. This parameter is bound checked only in Debug mode (#define _DEBUG).
angle Specifies whether the inputHandPosition orientation is in Degrees or Radians. It also specifies the units in which the revolute joint positions of are computed. Default is Radians.
interpolate Use this parameter to specify whether the IK should iterate and jog towards the inputHandPosition (from the current Hand state). This is useful if the inverse algorithm is iterative. It will not be relevant for closed form inverses. Default is false, i.e., do not interpolate.
Returns:
true if no error. false if error.

Reimplemented from OSCAR::GeneralKinematicsHandler.

virtual bool OSCAR::RedundantKinematicsHandler::createJRA   [protected, virtual]
 

virtual bool OSCAR::RedundantKinematicsHandler::GetErrorTolerance double &    positionError,
double &    rotationErrorScale
[inline, virtual]
 

Reimplemented from OSCAR::GeneralKinematicsHandler.

virtual bool OSCAR::RedundantKinematicsHandler::getJointPositionPC const Xform   inputHandPosition,
JointVector   jointPosition
[protected, virtual]
 

virtual bool OSCAR::RedundantKinematicsHandler::getJointPositionPC const HandPose   inputHandPosition,
JointVector   jointPosition
[protected, virtual]
 

virtual unsigned int OSCAR::RedundantKinematicsHandler::GetMaximumIterations void    const [inline, virtual]
 

Reimplemented from OSCAR::GeneralKinematicsHandler.

virtual double OSCAR::RedundantKinematicsHandler::GetMiniumMOT   const [inline, virtual]
 

Reimplemented from OSCAR::GeneralKinematicsHandler.

virtual double OSCAR::RedundantKinematicsHandler::GetSolutionProperties void    const [inline, virtual]
 

Get the Solution Properties.

This method is used to determine the solution properties of the inverse.

Returns:
The MOT calculated in the inverse.
See also:
GetSolutionProperties(unsigned int& iteration)

GetSolutionProperties(double& errorMagnitude)

Reimplemented from OSCAR::GeneralKinematicsHandler.

virtual bool OSCAR::RedundantKinematicsHandler::initializePerformanceCriteria   [protected, virtual]
 

RedundantKinematicsHandler OSCAR::RedundantKinematicsHandler::operator= const RedundantKinematicsHandler &    const [protected]
 

virtual bool OSCAR::RedundantKinematicsHandler::SetErrorTolerance double    maxError,
double    rotationErrorScale
[inline, virtual]
 

Parameters:
maxError The maximum error allowed when converging on a solution. The default value is 0.1.
rtScale Used to scale orientation errors in the HandPose with translation errors. The default value is 1000. The formula used to compute maxError is: maxError = translationError + rtScale * orientationError.

Reimplemented from OSCAR::GeneralKinematicsHandler.

virtual bool OSCAR::RedundantKinematicsHandler::SetMaximumIterations unsigned int    noMaxIterations [inline, virtual]
 

Reimplemented from OSCAR::GeneralKinematicsHandler.

virtual bool OSCAR::RedundantKinematicsHandler::SetMinimumMOT double    minMOT [inline, virtual]
 

Reimplemented from OSCAR::GeneralKinematicsHandler.

virtual bool OSCAR::RedundantKinematicsHandler::UpdateJointState const Xform   targetHand,
const JointVector   specifiedJoints
[virtual]
 

Allows a user to compute inverse position kinematics while specifying certain joints of the manipulator. The specification of joint states is done through the inclusion of a JointVector parameter, and the use of the active/inactive functionality of joint vectors. Any joints which are specified as inactive will take the current position of that joint (from the user specified joint vector) and use that in the inverse kinematics solution.

Parameters:
Xform targetHand The target end effector pose for the manipulator.
JointVector specifiedJoints Joints in this object which are set as inactive will be locked during the inverse kinematics algorithm, and their value will be set to the same as contained in this joint vector. It is the responsibility of the user to leave enough active joints for the problem to be solveable (IE DOF of robot-lockedjoints >= DOF of output space). If this is not the case, an error will be issued.
Returns:
true if no error, false if error.

virtual bool OSCAR::RedundantKinematicsHandler::UpdateJointState const OSCAR::HandPose   targetHand,
OSCAR::AngleUnits    angle
[virtual]
 

child classes should implement this.

Basically, perform FK. Implementation should check for limits if limitCheck is set to true

Reimplemented from OSCAR::GeneralKinematicsHandler.

virtual bool OSCAR::RedundantKinematicsHandler::UpdateJointState const OSCAR::Xform   targetHand [virtual]
 

child classes should implement this.

Basically, perform IK. Implementation should check for limits if limitCheck is set to true

Reimplemented from OSCAR::GeneralKinematicsHandler.


Member Data Documentation

PerformanceCriteria* OSCAR::RedundantKinematicsHandler::_crit [protected]
 

OSCAR::IKJGenerateOptions< >* OSCAR::RedundantKinematicsHandler::ikjOptions [protected]
 

OSCAR::IKJReconfig< >* OSCAR::RedundantKinematicsHandler::ikReconfig [protected]
 

bool OSCAR::RedundantKinematicsHandler::jraCreated [protected]
 

unsigned int OSCAR::RedundantKinematicsHandler::noOptions [protected]
 

OSCAR::Perturbation* OSCAR::RedundantKinematicsHandler::perturb [protected]
 

OSCAR::RepositoryList* OSCAR::RedundantKinematicsHandler::reposList [protected]
 

OSCAR::VectorArray* OSCAR::RedundantKinematicsHandler::solutionSet [protected]
 

Xform OSCAR::RedundantKinematicsHandler::targetHandXform [protected]
 


The documentation for this class was generated from the following file:
RRG Homepage OSCAR Overview OSCAR Tutorials Simulations