Tekkotsu Homepage
Demos
Overview
Downloads
Dev. Resources
Reference
Credits

PlanarThreeLinkArm Class Reference

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

#include <PlanarThreeLinkArm.h>

Inheritance diagram for PlanarThreeLinkArm:

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

 PlanarThreeLinkArm ()
 Constructor: use the last three links in the chain.
 PlanarThreeLinkArm (unsigned int offset)
 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 invKin3LinkRelaxPhi (float x, float y, float pref_phi) const
PlanarThreeLinkArm::Solutions nearConfig (PlanarThreeLinkArm::Solutions sol, float elbow, bool valid) const
PlanarThreeLinkArm::Solutions punt (float x, float y) const
PlanarThreeLinkArm::Solutions validAngles (PlanarThreeLinkArm::Solutions solutions) const
PlanarThreeLinkArm::Solutions invKin3Link (float x, float y, float phi) const
fmat::Matrix< 2, 2 > invKin2Link (float x, float y, float link1, float link2) const
PlanarThreeLinkArm::Solutions invKin2Link (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

static const std::string autoRegisterPlanarThreeLinkArm = IKSolver::getRegistry().registerType<PlanarThreeLinkArm>("PlanarThreeLinkArm")
 holds the class name, set via registration with the DeviceDriver registry

Constructor & Destructor Documentation

PlanarThreeLinkArm::PlanarThreeLinkArm (  ) 

Constructor: use the last three links in the chain.

Definition at line 11 of file PlanarThreeLinkArm.cc.

PlanarThreeLinkArm::PlanarThreeLinkArm ( unsigned int  offset  ) 

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.

Referenced by invKin3LinkRelaxPhi().

float PlanarThreeLinkArm::getL1 (  )  const

Definition at line 304 of file PlanarThreeLinkArm.cc.

float PlanarThreeLinkArm::getL2 (  )  const

Definition at line 308 of file PlanarThreeLinkArm.cc.

float PlanarThreeLinkArm::getL3 (  )  const

Definition at line 312 of file PlanarThreeLinkArm.cc.

PlanarThreeLinkArm::Solutions PlanarThreeLinkArm::invKin2Link ( float  x,
float  y 
) const

Definition at line 195 of file PlanarThreeLinkArm.cc.

fmat::Matrix< 2, 2 > PlanarThreeLinkArm::invKin2Link ( float  x,
float  y,
float  link1,
float  link2 
) const

Definition at line 178 of file PlanarThreeLinkArm.cc.

Referenced by invKin3Link().

PlanarThreeLinkArm::Solutions PlanarThreeLinkArm::invKin3Link ( float  x,
float  y,
float  phi 
) const

Definition at line 124 of file PlanarThreeLinkArm.cc.

Referenced by invKin3LinkRelaxPhi(), and solveWithOffset().

PlanarThreeLinkArm::Solutions PlanarThreeLinkArm::invKin3LinkRelaxPhi ( float  x,
float  y,
float  pref_phi 
) const

Definition at line 88 of file PlanarThreeLinkArm.cc.

Referenced by solve().

PlanarThreeLinkArm::Solutions PlanarThreeLinkArm::nearConfig ( PlanarThreeLinkArm::Solutions  sol,
float  elbow,
bool  valid 
) const

Definition at line 150 of file PlanarThreeLinkArm.cc.

void PlanarThreeLinkArm::PrintVariables (  )  const

Definition at line 61 of file PlanarThreeLinkArm.cc.

PlanarThreeLinkArm::Solutions PlanarThreeLinkArm::punt ( float  x,
float  y 
) const

Definition at line 168 of file PlanarThreeLinkArm.cc.

Referenced by invKin3LinkRelaxPhi().

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.

PlanarThreeLinkArm::Solutions PlanarThreeLinkArm::validAngles ( PlanarThreeLinkArm::Solutions  solutions  )  const

Definition at line 243 of file PlanarThreeLinkArm.cc.

Referenced by invKin3Link().


Member Data Documentation

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

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

Definition at line 58 of file PlanarThreeLinkArm.h.


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