#include <hpp/gik/tools.hh>
Static Public Member Functions | |
static void | Rodrigues (const vectorN &inAxisVector, double inRotationAngle, matrixNxP &outRot) |
static void | RottoOmega (const matrixNxP &inRot, vectorN &outVec) |
static void | RottoEulerZYX (const matrixNxP &inRot, vectorN &outEuler) |
Get euler angles stored thetaX, thetaY, thetaZ inside outEuler. | |
static void | M3toEulerZYX (matrix3d &inRot, vector3d &outEuler) |
static void | OmegatoEulerZYX (const vectorN &inOmega, vectorN &outEuler) |
Same as RottoEulerZYX but from instantaneous rotation vector inOmega. | |
static bool | OmegaToR (const vectorN &inOmega, matrixNxP &outR) |
Converts an angular velocity vector to a rotation. | |
static void | EulerZYXtoRot (const vectorN &inEuler, matrixNxP &outRot) |
Inverse of RottoEulerZYX. | |
static void | EulerZYXtoRot (double inThetaX, double inThetaY, double inThetaZ, matrixNxP &outRot) |
Inverse of RottoEulerZYX. | |
static bool | Rodrigues4d (const vectorN &inVec, matrix4d &outH) |
Integrate a rigid body velocity. | |
static void | invertTransformation (const matrixNxP &inH, matrixNxP &outH) |
static void | flyerTransformation (const vectorN &inDof, matrixNxP &outH) |
compute homogeneous matrix from configuration vector of freeflyer | |
static void | HtoT (const matrix4d &inH, vectorN &outT) |
static void | splitM4 (const matrix4d &inM, matrix3d &outR, vector3d &outV) |
static void | HtoRT (const matrix4d &inH, matrixNxP &outRot, vectorN &outT) |
static void | equivAsymMat (const vectorN &inVec, matrixNxP &outH) |
static void | CrossProduct (const vectorN &v1, const vectorN &v2, vectorN &ret) |
static double | eps () |
static void | Vector3toUblas (const vector3d &v, vectorN &uv) |
static void | UblastoVector3 (const vectorN &uv, vector3d &v) |
static void | Matrix3toUblas (const matrix3d &m, matrixNxP &um) |
static void | UblastoMatrix3 (const matrixNxP &um, matrix3d &m) |
static void | Matrix4toUblas (const matrix4d &m, matrixNxP &um) |
static void | UblastoMatrix4 (const matrixNxP &um, matrix4d &m) |
static void | printBlasMat (const matrixNxP &M) |
static void | RotFromYaw (double inYaw, matrixNxP &outM) |
static void | m4dFromXyzt (double inX, double inY, double inZ, double inTh, matrix4d &outMat) |
static bool | minJerkCurve (double inMotionDuration, double inSamplingPeriod, double xi, double vi, double ai, double xf, vectorN &outPosition, vectorN *outVelocity=0, vectorN *outAcceleration=0) |
Produce a trajectory interpolating xi and xf given the intial first and second derivatives of x (vi and ai). | |
static unsigned int | timetoRank (double startTime, double inTime, double inSamplingPeriod) |
return n = round((inTime-startTime)/inSamplingPeriod) | |
static void | targetTransformationU (const matrixNxP &referenceBase, const matrixNxP &referenceTarget, const matrixNxP &nowBase, matrixNxP &outNowTarget) |
static void | targetTransformationM (const matrix4d &referenceBase, const matrix4d &referenceTarget, const matrix4d &nowBase, matrix4d &outNowTarget) |
static double | inner_prod_3points (double originX, double originY, double point1X, double point1Y, double point2X, double point2Y) |
static bool | sinFilter (vectorN &inSignal, double inSamplingPeriod, vectorN &outSignal) |
matrix has samples in concatenated columns | |
static void | filterWindow (double T, double dt, vectorN &outFilter) |
static bool | multiFilter (double inSamplingPeriod, matrixNxP &inSignal, matrixNxP &outSignal) |
static bool | linearInterpolation (double D, double inSamplingPeriod, double xi, double xf, vectorN &outTrajectory) |
static bool | multiLinearInterpolation (double D, double inSamplingPeriod, vectorN &xi, vectorN &xf, matrixNxP &outTrajectory) |
static void | prolongateSizeBased (unsigned int size1, unsigned int size2, const matrixNxP &inData, matrixNxP &outData) |
static void | prolongateTimeBased (double timePre, double timePost, double samplingPeriod, const matrixNxP &inData, matrixNxP &outData) |
static bool | overlapConcat (matrixNxP &data, const matrixNxP &addedData, unsigned int overlap) |
static bool | combineMasks (const vectorN &inMask1, const vectorN &inMask2, vectorN &outMask) |
static bool ChppGikTools::combineMasks | ( | const vectorN & | inMask1, |
const vectorN & | inMask2, | ||
vectorN & | outMask | ||
) | [static] |
static void ChppGikTools::CrossProduct | ( | const vectorN & | v1, |
const vectorN & | v2, | ||
vectorN & | ret | ||
) | [static] |
static double ChppGikTools::eps | ( | ) | [static] |
Inverse of RottoEulerZYX.
static void ChppGikTools::EulerZYXtoRot | ( | double | inThetaX, |
double | inThetaY, | ||
double | inThetaZ, | ||
matrixNxP & | outRot | ||
) | [static] |
Inverse of RottoEulerZYX.
static void ChppGikTools::filterWindow | ( | double | T, |
double | dt, | ||
vectorN & | outFilter | ||
) | [static] |
compute homogeneous matrix from configuration vector of freeflyer
inDof | configuration of freeflyer joint. Its length must be 6 |
outH | homogeneous matrix. Its size must be (4,4) |
static void ChppGikTools::HtoRT | ( | const matrix4d & | inH, |
matrixNxP & | outRot, | ||
vectorN & | outT | ||
) | [static] |
static double ChppGikTools::inner_prod_3points | ( | double | originX, |
double | originY, | ||
double | point1X, | ||
double | point1Y, | ||
double | point2X, | ||
double | point2Y | ||
) | [static] |
static bool ChppGikTools::linearInterpolation | ( | double | D, |
double | inSamplingPeriod, | ||
double | xi, | ||
double | xf, | ||
vectorN & | outTrajectory | ||
) | [static] |
static void ChppGikTools::m4dFromXyzt | ( | double | inX, |
double | inY, | ||
double | inZ, | ||
double | inTh, | ||
matrix4d & | outMat | ||
) | [static] |
static bool ChppGikTools::minJerkCurve | ( | double | inMotionDuration, |
double | inSamplingPeriod, | ||
double | xi, | ||
double | vi, | ||
double | ai, | ||
double | xf, | ||
vectorN & | outPosition, | ||
vectorN * | outVelocity = 0 , |
||
vectorN * | outAcceleration = 0 |
||
) | [static] |
Produce a trajectory interpolating xi and xf given the intial first and second derivatives of x (vi and ai).
The final first and second derivatives (following the previous notations, those would be denoted vf and af) are null. The computed trajectory samples are appended to outPosition. Their number is N = round(inMotionDuration/inSamplingPeriod) + 1. if outVelocity and outAcceleration pointers are given, the first and second derivative of the trajectory are also computed and returned in these.
static bool ChppGikTools::multiFilter | ( | double | inSamplingPeriod, |
matrixNxP & | inSignal, | ||
matrixNxP & | outSignal | ||
) | [static] |
static bool ChppGikTools::multiLinearInterpolation | ( | double | D, |
double | inSamplingPeriod, | ||
vectorN & | xi, | ||
vectorN & | xf, | ||
matrixNxP & | outTrajectory | ||
) | [static] |
Same as RottoEulerZYX but from instantaneous rotation vector inOmega.
Converts an angular velocity vector to a rotation.
static bool ChppGikTools::overlapConcat | ( | matrixNxP & | data, |
const matrixNxP & | addedData, | ||
unsigned int | overlap | ||
) | [static] |
static void ChppGikTools::printBlasMat | ( | const matrixNxP & | M | ) | [static] |
static void ChppGikTools::prolongateSizeBased | ( | unsigned int | size1, |
unsigned int | size2, | ||
const matrixNxP & | inData, | ||
matrixNxP & | outData | ||
) | [static] |
static void ChppGikTools::prolongateTimeBased | ( | double | timePre, |
double | timePost, | ||
double | samplingPeriod, | ||
const matrixNxP & | inData, | ||
matrixNxP & | outData | ||
) | [static] |
static void ChppGikTools::Rodrigues | ( | const vectorN & | inAxisVector, |
double | inRotationAngle, | ||
matrixNxP & | outRot | ||
) | [static] |
Integrate a rigid body velocity.
inVec,: | vector of dimension (at least) 6 (v, omega) |
outH,: | Homogeneous matrix representing integration of velocity during unit time. |
Computation is perform using Rodrigues' formula.
static void ChppGikTools::RotFromYaw | ( | double | inYaw, |
matrixNxP & | outM | ||
) | [static] |
Get euler angles stored thetaX, thetaY, thetaZ inside outEuler.
The entered rotation matrix is: inRot = Rot(vecZ,thetaZ) * Rot(vecY',thetaY) * Rot(vecX'',thetaX)
static bool ChppGikTools::sinFilter | ( | vectorN & | inSignal, |
double | inSamplingPeriod, | ||
vectorN & | outSignal | ||
) | [static] |
matrix has samples in concatenated columns
static void ChppGikTools::splitM4 | ( | const matrix4d & | inM, |
matrix3d & | outR, | ||
vector3d & | outV | ||
) | [static] |
static void ChppGikTools::targetTransformationM | ( | const matrix4d & | referenceBase, |
const matrix4d & | referenceTarget, | ||
const matrix4d & | nowBase, | ||
matrix4d & | outNowTarget | ||
) | [static] |
static void ChppGikTools::targetTransformationU | ( | const matrixNxP & | referenceBase, |
const matrixNxP & | referenceTarget, | ||
const matrixNxP & | nowBase, | ||
matrixNxP & | outNowTarget | ||
) | [static] |
static unsigned int ChppGikTools::timetoRank | ( | double | startTime, |
double | inTime, | ||
double | inSamplingPeriod | ||
) | [static] |
return n = round((inTime-startTime)/inSamplingPeriod)