Specifically for the Puma 560 Arm. Contains analytical inverse kinematics solution. More...
#include <puma560.h>
Public Member Functions | |
virtual int | invKinematics (const transf &endTran, double *dofVals, int chainNum=0) |
Computes the dofvals that achieve a desired end pose for a chain. | |
Puma560 (World *w, const char *name) | |
Private Member Functions | |
int | findClosestSol (Puma560Solution *candidates, Puma560Solution *current) |
Static Private Attributes | |
static const int | NUM_SOLUTIONS = 8 |
There are 8 possible solutions because of the different possible arm configurations. |
Specifically for the Puma 560 Arm. Contains analytical inverse kinematics solution.
This class was created specifically for the Puma 560 Arm because we can override the generic inverse kinematics routine with one that solves them analytically.
Definition at line 40 of file puma560.h.
int Puma560::findClosestSol | ( | Puma560Solution * | candidates, | |
Puma560Solution * | current | |||
) | [private] |
Helper routine to find which of the 8 solutions is closest to the current position of the arm.
Definition at line 48 of file puma560.cpp.
int Puma560::invKinematics | ( | const transf & | targetPos, | |
double * | dofVals, | |||
int | chainNum = 0 | |||
) | [virtual] |
Computes the dofvals that achieve a desired end pose for a chain.
Given a transform for the end pose of a particular kinematic chain, this will compute the DOF values corresponding to that pose. It will use an iterative approximation technique. In this method, the jacobian is based on each dofs rather than the joint angles
Reimplemented from Robot.
Definition at line 106 of file puma560.cpp.
const int Puma560::NUM_SOLUTIONS = 8 [static, private] |