10 #ifndef _KINEMATICS6M90T_H_ 11 #define _KINEMATICS6M90T_H_ 79 double findFirstEqualAngle(
const std::vector<double>& v1,
const std::vector<double>& v2)
const;
81 bool PositionTest6MS(
const double& theta1,
const double& theta2,
const double& theta3,
82 const double& theta234,
const position &p)
const;
102 std::vector<int>
getDir();
116 bool setAngOff(
const std::vector<double> aAngOff);
118 bool setAngStop(
const std::vector<double> aAngStop);
124 bool enc2rad(std::vector<double>& aAngles,
const std::vector<int> aEncoders);
130 bool rad2enc(std::vector<int>& aEncoders,
const std::vector<double> aAngles);
136 bool directKinematics(std::vector<double>& aPosition,
const std::vector<double> aAngles);
144 bool inverseKinematics(std::vector<double>& aAngles,
const std::vector<double> aPosition,
const std::vector<double> aStartingAngles);
150 #endif //_KINEMATICS6M90T_H_ std::vector< double > mAngleStop
Angle stop vector [rad].
bool directKinematics(std::vector< double > &aPosition, const std::vector< double > aAngles)
std::vector< double > getAngMin()
get angle min
std::vector< int > getDir()
get direction
void thetacomp(angles_calc &angle, const position &p_m, const std::vector< double > &pose) const
bool enc2rad(std::vector< double > &aAngles, const std::vector< int > aEncoders)
std::vector< double > getAngStop()
get angle stop
std::vector< double > getLinkLength()
get link length
bool PositionTest6MS(const double &theta1, const double &theta2, const double &theta3, const double &theta234, const position &p) const
void IK_theta234theta5(angles_calc &angle, const position &p_gr) const
helper functions
bool mIsInitialized
Initialized flag.
bool AnglePositionTest(const angles_calc &a) const
bool setAngOff(const std::vector< double > aAngOff)
set angle offset
Kinematics6M90T()
Constructor.
std::vector< int > mRotationDirection
Rotation direction vector [1|-1].
bool setLinkLength(const std::vector< double > aLengths)
set link length
Implements the kinematics for the Katana6M90T.
~Kinematics6M90T()
Destructor.
Base Class for the kinematics implementations.
int mNumberOfMotors
Number of motors of the robot.
bool rad2enc(std::vector< int > &aEncoders, const std::vector< double > aAngles)
std::vector< angles_calc > angles_container
structs, type and constants used in inverse kinematics calculation
int mNumberOfSegments
Number of segments of the robot.
std::vector< double > getAngMax()
get angle max
FloatVector FloatVector * a
bool inverseKinematics(std::vector< double > &aAngles, const std::vector< double > aPosition, const std::vector< double > aStartingAngles)
std::vector< double > mSegmentLength
Effector segment lengths vector [m].
std::vector< double > getAngRange()
get angle range
void IK_b1b2costh3_6MS(angles_calc &angle, const position &p) const
std::vector< int > mEncodersPerCycle
Encoders per cycle vector.
std::vector< double > getAngOff()
get angle offset
double findFirstEqualAngle(const std::vector< double > &v1, const std::vector< double > &v2) const
bool setAngStop(const std::vector< double > aAngStop)
set angle stop
bool initialize()
initialization routine
std::vector< int > getEncOff()
get encoder offset
std::vector< int > mEncoderOffset
Encoder offset vector.
std::vector< int > getEpc()
get encoders per cycle
bool GripperTest(const position &p_gr, const angles_calc &angle) const
static const int cNrOfPossibleSolutions
std::vector< double > mAngleOffset
Angle offset vector [rad].
bool angledef(angles_calc &a) const