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

OSCAR::IKCCD Class Reference
[InverseKinematics]

#include <IKCCD.h>

Inheritance diagram for OSCAR::IKCCD:

Inheritance graph
[legend]
List of all members.

Public Methods

 IKCCD (const String &fileName, JointVector &initial_joint, double max_error=0.1, OSCARError &err=DUMMY_ERROR(noError))
 IKCCD (const DHData &dhParams, JointVector &initial_joint, double max_error=0.1)
virtual ~IKCCD ()
bool GetJointPosition (const Xform &desiredHand, JointVector &jointPosition)
bool GetJointPosition (const HandPose &desiredHandPose, JointVector &jointPosition)
void GetJointPosition (JointVector &currentJointPosition) const
unsigned int GetSolutionProperties () const
void SetTool (const Xform &toolPose)
void SetTool (const Vector3D &toolPoint)
void SetBase (const Xform &basePose)
void SetBase (const Vector3D &basePoint)
bool SetJointPosition (const JointVector &jointPosition)
void SetMaximumIterations (unsigned int noIterations)
unsigned int GetMaximumIterations (void) const
bool SetErrorTolerance (double maxError)
bool GetErrorTolerance (double &maxError)
bool SetWeightFactors (Vector &weightA)
bool GetWeightFactors (Vector &weightA)
long SetActiveCoordinates (const bool *activeA)
long GetActiveCoordinates (bool *activeA=NULL)
bool SetOffsets (JointVector &offsetA)
bool GetOffsets (JointVector &offsetA)
bool SetMinMax (JointVector &minA, JointVector &maxA)
bool GetMinMax (JointVector &minA, JointVector &maxA)
virtual void CheckDependencies (JointVector &)

Protected Attributes

unsigned int max_iterationM
unsigned int solutionIterationCount
double max_errorM
unsigned int dofM
Vector weightM
JointVector offsetM
JointVector jointsM
JointVector minM
JointVector maxM
bool activeM [6]
FKPositionforkinM

Detailed Description

Author:
M. Goza


Constructor & Destructor Documentation

OSCAR::IKCCD::IKCCD const String   fileName,
JointVector   initial_joint,
double    max_error = 0.1,
OSCARError   err = DUMMY_ERROR(noError)
 

Constructor.

This is the constructor for an object of type IKCCD.

Parameters:
fileName The name of the DH File to read.
initial_joint A Vector that specifies the initial joint angles in radians.
max_error The maximum error allowed in the solution. Default value is 0.1
err Use this to get error's generated inside the constructor call.

OSCAR::IKCCD::IKCCD const DHData   dhParams,
JointVector   initial_joint,
double    max_error = 0.1
 

Constructor.

This is the constructor for an object of type IKCCD.

Parameters:
dhParams DH Parameters in a matrix from.
initial_joint A Vector that specifies the initial joint angles in radians.
max_error The maximum error allowed in the solution. Default value is 0.1

virtual OSCAR::IKCCD::~IKCCD   [virtual]
 

Destructor.

This is the destructor for an object of type IKCCD.


Member Function Documentation

virtual void OSCAR::IKCCD::CheckDependencies JointVector   [inline, virtual]
 

long OSCAR::IKCCD::GetActiveCoordinates bool *    activeA = NULL
 

bool OSCAR::IKCCD::GetErrorTolerance double &    maxError
 

Get the value of Error Tolerance.

This method is used to get the value of Error Tolerance.

Parameters:
maxError On return, maxError contains the maximum tolerable error.
Returns:
True if successful. Otherwise False.
See also:
SetErrorTolerance()

void OSCAR::IKCCD::GetJointPosition JointVector   currentJointPosition const
 

Get the Joint position.

This method is used to get the current internal state of the inverse object. Each object of this type maintains a current joint angle configuration that is used as a starting point for the next inverse computation. This method queries that state.

Parameters:
currentJointPosition This is an Vector object of size DOF of the robot in which the current joint angles are returned in radians.

bool OSCAR::IKCCD::GetJointPosition const HandPose   desiredHandPose,
JointVector   jointPosition
[virtual]
 

Get the Joint position.

This method is used to perform the inverse position solution using the resolved rate control inverse method.

Parameters:
desiredHandPose This is an HandPose object that specifies the end-effector constraints for which the inverse has to be computed.
jointPosition This is an Vector object of size DOF of the robot which holds the inverse solution in radians.
Returns:
True if successful. Otherwise False if the method failed to converge and reached the maximum iteration count. This indicates singularity. You can call GetSolutionProperty() to find out the number of iterations required to reach the inverse solution.
See also:
GetJointPosition(const Xform& desiredHand, Vector& jointPosition)

GetSolutionProperties()

SetMaximumIterations(unsigned int noIterations)

GetMaximumIterations()

Implements OSCAR::IKPosition.

bool OSCAR::IKCCD::GetJointPosition const Xform   desiredHand,
JointVector   jointPosition
[virtual]
 

Get the Joint position.

This method is used to perform the inverse position solution using the resolved rate control inverse method.

Parameters:
desiredHand This is a Xform object that specifies the end-effector constraints for which the inverse has to be computed.
jointPosition This is a Vector object of size DOF of the robot which holds the inverse solution in radians.
Returns:
True if successful. Otherwise False if the method failed to converge and reached the maximum iteration count. This indicates singularity. You can call GetSolutionProperty() to find out the number of iterations required to reach the inverse solution.
See also:
GetJointPosition(const HandPose& desired_hand, Vector& solution)

GetSolutionProperties()

SetMaximumIterations(unsigned int noIterations)

GetMaximumIterations()

Implements OSCAR::IKPosition.

unsigned int OSCAR::IKCCD::GetMaximumIterations void    const
 

Get the value of the bound set for the maximum number of iterations.

This method is used to get the value of the bound set for the maximum number of iterations. IKCCD uses an iterative algorithm to find the inverse solution. Use this method to query the upper bound to the number of iterations.

Returns:
A positive number that specifies an upper bound to the iteration count.
See also:
SetMaximumIterations()

GetSolutionProperties()

bool OSCAR::IKCCD::GetMinMax JointVector   minA,
JointVector   maxA
 

bool OSCAR::IKCCD::GetOffsets JointVector   offsetA
 

unsigned int OSCAR::IKCCD::GetSolutionProperties   const
 

Get the Solution Properties.

This method is used to get the number of iterations used to find the inverse solution. Call this method after a successful call to GetJointPosition.

Returns:
An integer that specifies the number of iterations it took to find the inverse solution. A -1 is returned if maximum iteration count was reached. This indicates a singularity.
See also:
GetJointPosition(const HandPose& desired_hand, Vector& solution)

GetJointPosition(const Xform& desiredHand, Vector& jointPosition)

SetMaximumIterations(unsigned int noIterations)

GetMaximumIterations()

bool OSCAR::IKCCD::GetWeightFactors Vector   weightA
 

long OSCAR::IKCCD::SetActiveCoordinates const bool *    activeA
 

void OSCAR::IKCCD::SetBase const Vector3D   basePoint [virtual]
 

Set the location of the robot.

This method is used to set the location of the robot. This method is useful if your robots base frame (specified by DH parameters) is different from the world frame in which you are specifying end-effector coordinates.

Parameters:
basePoint A 3 size vector that specifies the position of the robot base frame as seen from the world frame. The units for position should be the same as the ones that you use for the DH parameters.

Reimplemented from OSCAR::Kinematics.

void OSCAR::IKCCD::SetBase const Xform   basePose [virtual]
 

Set the location and orientation of the robot.

This method is used to set the location and orientation of the robot. This method is useful if your robots base frame (specified by DH parameters) is different from the world frame in which you are specifying end-effector coordinates.

Parameters:
basePose A 4X4 matrix that specifies the position and orientation of robot base frame as seen from the world frame. The units for position should be the same as the ones that you use for the DH parameters.

Reimplemented from OSCAR::Kinematics.

bool OSCAR::IKCCD::SetErrorTolerance double    maxError
 

Set a value for Error Tolerance.

This method is used to set a value for Error Tolerance. IKCCD uses an iterative algorithm to find the inverse solution. As such, this algorithm stops iterating when the error value falls below a preset value. This method is used to specify the total error. The default error as specified in the constructor is 0.l units.

Parameters:
maxError The maximum tolerable error.
Returns:
True if successful. Otherwise False.
See also:
GetErrorTolerance()

bool OSCAR::IKCCD::SetJointPosition const JointVector   jointPosition
 

Set to a new internal joint position state.

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 configuration that is different from where it previously was.

Parameters:
jointPosition A Vector of size DOF that specifies the new joint angle state in Radians.
Returns:
True if jointPosition is of size DOF. Otherwise False.

void OSCAR::IKCCD::SetMaximumIterations unsigned int    noIterations
 

Set the bound for the maximum number of iterations.

This method is used to set the bound for the maximum number of iterations. IKCCD uses an iterative algorithm to find the inverse solution. Use this method to specify an upper bound to the number of iterations. The default is 100.

Parameters:
noIterations A positive number that specifies an upper bound to the iteration count.
See also:
GetMaximumIterations()

GetSolutionProperties()

bool OSCAR::IKCCD::SetMinMax JointVector   minA,
JointVector   maxA
 

bool OSCAR::IKCCD::SetOffsets JointVector   offsetA
 

void OSCAR::IKCCD::SetTool const Vector3D   toolPoint [virtual]
 

Set the location and orientation of the tool point.

This method is used to set the location of the tool point in the last frame as specified by your DH parameters. Once the tool point is set, then the inverse assumes that the input enf-effector positions are for the tip of the tool point.

Parameters:
toolPoint A 3 long vector that specifies the position of the tool point. The units that should be the same as the units for the DH parameters.

Reimplemented from OSCAR::Kinematics.

void OSCAR::IKCCD::SetTool const Xform   toolPose [virtual]
 

Set the location and orientation of the tool point.

This method is used to set the location and orientation of the tool point in the last frame as specified by your DH parameters. Once the tool point is set, then the inverse assumes that the input enf-effector positions are for the tip of the tool point.

Parameters:
toolPose A Xform matrix that specifies the position and orientation of the tool point. The units that should be the same as the units for the DH parameters.

Reimplemented from OSCAR::Kinematics.

bool OSCAR::IKCCD::SetWeightFactors Vector   weightA
 

Set the weights applied to the solution vector for each joint.

This method is used to set the weights applied to the solution vector for each joint. It determines the amount of influence each joint has on the solution. Values range from 0.0->1.0

Parameters:
weightA vector specifying the weight factor for each joint.
Returns:
True if successful. Otherwise False.


Member Data Documentation

bool OSCAR::IKCCD::activeM[6] [protected]
 

unsigned int OSCAR::IKCCD::dofM [protected]
 

FKPosition* OSCAR::IKCCD::forkinM [protected]
 

JointVector OSCAR::IKCCD::jointsM [protected]
 

double OSCAR::IKCCD::max_errorM [protected]
 

unsigned int OSCAR::IKCCD::max_iterationM [protected]
 

JointVector OSCAR::IKCCD::maxM [protected]
 

JointVector OSCAR::IKCCD::minM [protected]
 

JointVector OSCAR::IKCCD::offsetM [protected]
 

unsigned int OSCAR::IKCCD::solutionIterationCount [protected]
 

Vector OSCAR::IKCCD::weightM [protected]
 


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