Base Class for the kinematics implementations. More...
#include <kinematics.h>
Public Member Functions | |
virtual bool | directKinematics (std::vector< double > &aPosition, const std::vector< double > aAngles)=0 |
virtual bool | enc2rad (std::vector< double > &aAngles, const std::vector< int > aEncoders)=0 |
virtual std::vector< double > | getAngMax ()=0 |
get angle max | |
virtual std::vector< double > | getAngMin ()=0 |
get angle min | |
virtual std::vector< double > | getAngOff ()=0 |
get angle offset | |
virtual std::vector< double > | getAngRange ()=0 |
get angle range | |
virtual std::vector< double > | getAngStop ()=0 |
get angle stop | |
virtual std::vector< int > | getDir ()=0 |
get direction | |
virtual std::vector< int > | getEncOff ()=0 |
get encoder offset | |
virtual std::vector< int > | getEpc ()=0 |
get encoders per cycle | |
virtual std::vector< double > | getLinkLength ()=0 |
get link length | |
virtual bool | inverseKinematics (std::vector< double > &aAngles, const std::vector< double > aPosition, const std::vector< double > aStartingAngles)=0 |
virtual bool | rad2enc (std::vector< int > &aEncoders, const std::vector< double > aAngles)=0 |
virtual bool | setAngOff (const std::vector< double > aAngOff)=0 |
set angle offset | |
virtual bool | setAngStop (const std::vector< double > aAngStop)=0 |
set angle stop | |
virtual bool | setLinkLength (const std::vector< double > aLengths)=0 |
set link length | |
virtual | ~Kinematics () |
Virtual destructor. | |
Private Member Functions | |
virtual bool | initialize ()=0 |
initializes the kinematic | |
Private Attributes | |
std::vector< double > | mAngleOffset |
Angle offset vector [rad]. | |
std::vector< double > | mAngleStop |
Angle stop vector [rad]. | |
std::vector< int > | mEncoderOffset |
Encoder offset vector. | |
std::vector< int > | mEncodersPerCycle |
Encoders per cycle vector. | |
int | mNumberOfMotors |
Number of motors of the robot. | |
int | mNumberOfSegments |
Number of segments of the robot. | |
std::vector< int > | mRotationDirection |
Rotation direction vector [1|-1]. | |
std::vector< double > | mSegmentLength |
Effector segment lengths vector [m]. |
Base Class for the kinematics implementations.
This class is pure virtual. The different robot kinematics implement this interface
Definition at line 42 of file AnalyticalGuess/include/kinematics.h.
virtual AnaGuess::Kinematics::~Kinematics | ( | ) | [inline, virtual] |
Virtual destructor.
Definition at line 67 of file AnalyticalGuess/include/kinematics.h.
virtual bool AnaGuess::Kinematics::directKinematics | ( | std::vector< double > & | aPosition, |
const std::vector< double > | aAngles | ||
) | [pure virtual] |
calculates the direct kinematics
aPosition | empty vector to store the position |
aAngles | the angle vector |
Implemented in AnaGuess::Kinematics6M90T, AnaGuess::Kinematics6M180, and AnaGuess::Kinematics6M90G.
virtual bool AnaGuess::Kinematics::enc2rad | ( | std::vector< double > & | aAngles, |
const std::vector< int > | aEncoders | ||
) | [pure virtual] |
calculates the angles corresponding to the given encoders
aAngles | empty vector to store the angles |
aEncoders | the encoder vector |
Implemented in AnaGuess::Kinematics6M90T, AnaGuess::Kinematics6M180, and AnaGuess::Kinematics6M90G.
virtual std::vector<double> AnaGuess::Kinematics::getAngMax | ( | ) | [pure virtual] |
get angle max
Implemented in AnaGuess::Kinematics6M90T, AnaGuess::Kinematics6M180, and AnaGuess::Kinematics6M90G.
virtual std::vector<double> AnaGuess::Kinematics::getAngMin | ( | ) | [pure virtual] |
get angle min
Implemented in AnaGuess::Kinematics6M90T, AnaGuess::Kinematics6M180, and AnaGuess::Kinematics6M90G.
virtual std::vector<double> AnaGuess::Kinematics::getAngOff | ( | ) | [pure virtual] |
get angle offset
Implemented in AnaGuess::Kinematics6M90T, AnaGuess::Kinematics6M180, and AnaGuess::Kinematics6M90G.
virtual std::vector<double> AnaGuess::Kinematics::getAngRange | ( | ) | [pure virtual] |
get angle range
Implemented in AnaGuess::Kinematics6M90T, AnaGuess::Kinematics6M180, and AnaGuess::Kinematics6M90G.
virtual std::vector<double> AnaGuess::Kinematics::getAngStop | ( | ) | [pure virtual] |
get angle stop
Implemented in AnaGuess::Kinematics6M90T, AnaGuess::Kinematics6M180, and AnaGuess::Kinematics6M90G.
virtual std::vector<int> AnaGuess::Kinematics::getDir | ( | ) | [pure virtual] |
get direction
Implemented in AnaGuess::Kinematics6M90T, AnaGuess::Kinematics6M180, and AnaGuess::Kinematics6M90G.
virtual std::vector<int> AnaGuess::Kinematics::getEncOff | ( | ) | [pure virtual] |
get encoder offset
Implemented in AnaGuess::Kinematics6M90T, AnaGuess::Kinematics6M180, and AnaGuess::Kinematics6M90G.
virtual std::vector<int> AnaGuess::Kinematics::getEpc | ( | ) | [pure virtual] |
get encoders per cycle
Implemented in AnaGuess::Kinematics6M90T, AnaGuess::Kinematics6M180, and AnaGuess::Kinematics6M90G.
virtual std::vector<double> AnaGuess::Kinematics::getLinkLength | ( | ) | [pure virtual] |
get link length
Implemented in AnaGuess::Kinematics6M90T, AnaGuess::Kinematics6M180, and AnaGuess::Kinematics6M90G.
virtual bool AnaGuess::Kinematics::initialize | ( | ) | [private, pure virtual] |
initializes the kinematic
Implemented in AnaGuess::Kinematics6M90T, AnaGuess::Kinematics6M180, and AnaGuess::Kinematics6M90G.
virtual bool AnaGuess::Kinematics::inverseKinematics | ( | std::vector< double > & | aAngles, |
const std::vector< double > | aPosition, | ||
const std::vector< double > | aStartingAngles | ||
) | [pure virtual] |
caltulates the inverse kinematics
aAngles | empty vector to store the angles |
aPosition | the position vector |
aStartingAngles | starting angle vector to find the best (nearest) solution |
NoSolutionException | if no solutios exists |
Implemented in AnaGuess::Kinematics6M90T, AnaGuess::Kinematics6M180, and AnaGuess::Kinematics6M90G.
virtual bool AnaGuess::Kinematics::rad2enc | ( | std::vector< int > & | aEncoders, |
const std::vector< double > | aAngles | ||
) | [pure virtual] |
calculates the encoders corresponding to the given angles
aEncoders | empty vector to store the encoders |
aAngles | the angle vector |
Implemented in AnaGuess::Kinematics6M90T, AnaGuess::Kinematics6M180, and AnaGuess::Kinematics6M90G.
virtual bool AnaGuess::Kinematics::setAngOff | ( | const std::vector< double > | aAngOff | ) | [pure virtual] |
set angle offset
Implemented in AnaGuess::Kinematics6M90T, AnaGuess::Kinematics6M180, and AnaGuess::Kinematics6M90G.
virtual bool AnaGuess::Kinematics::setAngStop | ( | const std::vector< double > | aAngStop | ) | [pure virtual] |
set angle stop
Implemented in AnaGuess::Kinematics6M90T, AnaGuess::Kinematics6M180, and AnaGuess::Kinematics6M90G.
virtual bool AnaGuess::Kinematics::setLinkLength | ( | const std::vector< double > | aLengths | ) | [pure virtual] |
set link length
Implemented in AnaGuess::Kinematics6M90T, AnaGuess::Kinematics6M180, and AnaGuess::Kinematics6M90G.
std::vector<double> AnaGuess::Kinematics::mAngleOffset [private] |
Angle offset vector [rad].
Reimplemented in AnaGuess::Kinematics6M180, AnaGuess::Kinematics6M90G, and AnaGuess::Kinematics6M90T.
Definition at line 52 of file AnalyticalGuess/include/kinematics.h.
std::vector<double> AnaGuess::Kinematics::mAngleStop [private] |
Angle stop vector [rad].
Reimplemented in AnaGuess::Kinematics6M180, AnaGuess::Kinematics6M90G, and AnaGuess::Kinematics6M90T.
Definition at line 54 of file AnalyticalGuess/include/kinematics.h.
std::vector<int> AnaGuess::Kinematics::mEncoderOffset [private] |
Encoder offset vector.
Reimplemented in AnaGuess::Kinematics6M180, AnaGuess::Kinematics6M90G, and AnaGuess::Kinematics6M90T.
Definition at line 58 of file AnalyticalGuess/include/kinematics.h.
std::vector<int> AnaGuess::Kinematics::mEncodersPerCycle [private] |
Encoders per cycle vector.
Reimplemented in AnaGuess::Kinematics6M180, AnaGuess::Kinematics6M90G, and AnaGuess::Kinematics6M90T.
Definition at line 56 of file AnalyticalGuess/include/kinematics.h.
int AnaGuess::Kinematics::mNumberOfMotors [private] |
Number of motors of the robot.
Reimplemented in AnaGuess::Kinematics6M180, AnaGuess::Kinematics6M90G, and AnaGuess::Kinematics6M90T.
Definition at line 46 of file AnalyticalGuess/include/kinematics.h.
int AnaGuess::Kinematics::mNumberOfSegments [private] |
Number of segments of the robot.
Reimplemented in AnaGuess::Kinematics6M180, AnaGuess::Kinematics6M90G, and AnaGuess::Kinematics6M90T.
Definition at line 48 of file AnalyticalGuess/include/kinematics.h.
std::vector<int> AnaGuess::Kinematics::mRotationDirection [private] |
Rotation direction vector [1|-1].
Reimplemented in AnaGuess::Kinematics6M180, AnaGuess::Kinematics6M90G, and AnaGuess::Kinematics6M90T.
Definition at line 60 of file AnalyticalGuess/include/kinematics.h.
std::vector<double> AnaGuess::Kinematics::mSegmentLength [private] |
Effector segment lengths vector [m].
Reimplemented in AnaGuess::Kinematics6M180, AnaGuess::Kinematics6M90G, and AnaGuess::Kinematics6M90T.
Definition at line 50 of file AnalyticalGuess/include/kinematics.h.