Kinematics solver for an arm composed of three consecutive joints in the same plane. More...

`#include <PlanarThreeLinkArm.h>`

## Detailed Description

Kinematics solver for an arm composed of three consecutive joints in the same plane.

Definition at line 11 of file PlanarThreeLinkArm.h.

List of all members.

## Classes

struct  Solutions

## Public Member Functions

Constructor: use the last three links in the chain.
Constructor: specifies the first joint in the chain.
virtual bool solve (const Point &pEff, const Rotation &oriEff, KinematicJoint &j, const Position &pTgt, float posPri, const Orientation &oriTgt, float oriPri) const
Solve to get an 'effector' (pEff, oriEff, relative to link following j) to a solution of pTgt, oriTgt (or at least a local minimum).
virtual StepResult_t step (const Point &pEff, const Rotation &oriEff, KinematicJoint &j, const Position &pTgt, float pDist, float posPri, const Orientation &oriTgt, float oriDist, float oriPri) const
Move an 'effector' (pEff, oriEff, relative to link following j) towards a solution of pTgt, oriTgt (or at least a local minimum).
void PrintVariables () const
PlanarThreeLinkArm::Solutions solveWithOffset (float x, float y, float pref_phi, fmat::Column< 3 > baseOffset=fmat::pack(0.0f, 0.0f, 1.0f)) const
PlanarThreeLinkArm::Solutions punt (float x, float y) const
float angDist (float a1, float a2) const
float angNorm (float a) const
fmat::Matrix< 2, 2 > rot (float t) const
float getL1 () const
float getL2 () const
float getL3 () const
void setL1 (float length1, float jointMax, float jointMin)
void setL2 (float length2, float jointMax, float jointMin)
void setL3 (float length3, float jointMax, float jointMin)

## Private Attributes

float L1
float L2
float L3
float jointLimits [3][2]

## Static Private Attributes

holds the class name, set via registration with the DeviceDriver registry

## Constructor & Destructor Documentation

Constructor: use the last three links in the chain.

Definition at line 11 of file PlanarThreeLinkArm.cc.

Constructor: specifies the first joint in the chain.

Definition at line 45 of file PlanarThreeLinkArm.cc.

## Member Function Documentation

 float PlanarThreeLinkArm::angDist ( float a1, float a2 ) const

Definition at line 280 of file PlanarThreeLinkArm.cc.

 float PlanarThreeLinkArm::angNorm ( float a ) const

Definition at line 289 of file PlanarThreeLinkArm.cc.

Definition at line 304 of file PlanarThreeLinkArm.cc.

Definition at line 308 of file PlanarThreeLinkArm.cc.

Definition at line 312 of file PlanarThreeLinkArm.cc.

Definition at line 195 of file PlanarThreeLinkArm.cc.

Definition at line 178 of file PlanarThreeLinkArm.cc.

Definition at line 124 of file PlanarThreeLinkArm.cc.

Definition at line 88 of file PlanarThreeLinkArm.cc.

Referenced by solve().

Definition at line 150 of file PlanarThreeLinkArm.cc.

Definition at line 61 of file PlanarThreeLinkArm.cc.

Definition at line 168 of file PlanarThreeLinkArm.cc.

 fmat::Matrix< 2, 2 > PlanarThreeLinkArm::rot ( float t ) const

Definition at line 296 of file PlanarThreeLinkArm.cc.

 void PlanarThreeLinkArm::setL1 ( float length1, float jointMax, float jointMin )

Definition at line 316 of file PlanarThreeLinkArm.cc.

 void PlanarThreeLinkArm::setL2 ( float length2, float jointMax, float jointMin )

Definition at line 322 of file PlanarThreeLinkArm.cc.

 void PlanarThreeLinkArm::setL3 ( float length3, float jointMax, float jointMin )

Definition at line 328 of file PlanarThreeLinkArm.cc.

 bool PlanarThreeLinkArm::solve ( const Point & pEff, const Rotation & oriEff, KinematicJoint & j, const Position & pTgt, float posPri, const Orientation & oriTgt, float oriPri ) const` [virtual]`

Solve to get an 'effector' (pEff, oriEff, relative to link following j) to a solution of pTgt, oriTgt (or at least a local minimum).

posPri and oriPri specify relative weighting of each solution in case they are mutually exclusive

Implements IKSolver.

Definition at line 68 of file PlanarThreeLinkArm.cc.

Referenced by step().

 PlanarThreeLinkArm::Solutions PlanarThreeLinkArm::solveWithOffset ( float x, float y, float pref_phi, fmat::Column< 3 > baseOffset = `fmat::pack(0.0f, 0.0f,1.0f)` ) const

Definition at line 116 of file PlanarThreeLinkArm.cc.

 IKSolver::StepResult_t PlanarThreeLinkArm::step ( const Point & pEff, const Rotation & oriEff, KinematicJoint & j, const Position & pTgt, float pDist, float posPri, const Orientation & oriTgt, float oriDist, float oriPri ) const` [virtual]`

Move an 'effector' (pEff, oriEff, relative to link following j) towards a solution of pTgt, oriTgt (or at least a local minimum).

pDist and oriDist specifies the maximum distance to move towards each solution; posPri and oriPri specify relative weighting of each solution in case they are mutually exclusive

Implements IKSolver.

Definition at line 334 of file PlanarThreeLinkArm.cc.

Definition at line 243 of file PlanarThreeLinkArm.cc.

## Member Data Documentation

 const std::string PlanarThreeLinkArm::autoRegisterPlanarThreeLinkArm = IKSolver::getRegistry().registerType("PlanarThreeLinkArm")` [static, private]`

holds the class name, set via registration with the DeviceDriver registry

Definition at line 58 of file PlanarThreeLinkArm.h.

 float PlanarThreeLinkArm::jointLimits[3][2]` [private]`
 float PlanarThreeLinkArm::L1` [private]`

Definition at line 59 of file PlanarThreeLinkArm.h.

 float PlanarThreeLinkArm::L2` [private]`

Definition at line 59 of file PlanarThreeLinkArm.h.

 float PlanarThreeLinkArm::L3` [private]`

The documentation for this class was generated from the following files:

 Tekkotsu v5.1CVS Generated Sat May 4 06:33:20 2013 by Doxygen 1.6.3