ChppGikTools Class Reference

#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. More...
 
static void M3toEulerZYX (matrix3d &inRot, vector3d &outEuler)
 
static void OmegatoEulerZYX (const vectorN &inOmega, vectorN &outEuler)
 Same as RottoEulerZYX but from instantaneous rotation vector inOmega. More...
 
static bool OmegaToR (const vectorN &inOmega, matrixNxP &outR)
 Converts an angular velocity vector to a rotation. More...
 
static void EulerZYXtoRot (const vectorN &inEuler, matrixNxP &outRot)
 Inverse of RottoEulerZYX. More...
 
static void EulerZYXtoRot (double inThetaX, double inThetaY, double inThetaZ, matrixNxP &outRot)
 Inverse of RottoEulerZYX. More...
 
static bool Rodrigues4d (const vectorN &inVec, matrix4d &outH)
 Integrate a rigid body velocity. More...
 
static void invertTransformation (const matrixNxP &inH, matrixNxP &outH)
 
static void flyerTransformation (const vectorN &inDof, matrixNxP &outH)
 compute homogeneous matrix from configuration vector of freeflyer More...
 
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). More...
 
static unsigned int timetoRank (double startTime, double inTime, double inSamplingPeriod)
 return n = round((inTime-startTime)/inSamplingPeriod) More...
 
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 More...
 
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)
 

Member Function Documentation

◆ combineMasks()

static bool ChppGikTools::combineMasks ( const vectorN inMask1,
const vectorN inMask2,
vectorN outMask 
)
static

◆ CrossProduct()

static void ChppGikTools::CrossProduct ( const vectorN v1,
const vectorN v2,
vectorN ret 
)
static

◆ eps()

static double ChppGikTools::eps ( )
static

◆ equivAsymMat()

static void ChppGikTools::equivAsymMat ( const vectorN inVec,
matrixNxP outH 
)
static

◆ EulerZYXtoRot() [1/2]

static void ChppGikTools::EulerZYXtoRot ( const vectorN inEuler,
matrixNxP outRot 
)
static

Inverse of RottoEulerZYX.

◆ EulerZYXtoRot() [2/2]

static void ChppGikTools::EulerZYXtoRot ( double  inThetaX,
double  inThetaY,
double  inThetaZ,
matrixNxP outRot 
)
static

Inverse of RottoEulerZYX.

◆ filterWindow()

static void ChppGikTools::filterWindow ( double  T,
double  dt,
vectorN outFilter 
)
static

◆ flyerTransformation()

static void ChppGikTools::flyerTransformation ( const vectorN inDof,
matrixNxP outH 
)
static

compute homogeneous matrix from configuration vector of freeflyer

Parameters
inDofconfiguration of freeflyer joint. Its length must be 6
outHhomogeneous matrix. Its size must be (4,4)

◆ HtoRT()

static void ChppGikTools::HtoRT ( const matrix4d inH,
matrixNxP outRot,
vectorN outT 
)
static

◆ HtoT()

static void ChppGikTools::HtoT ( const matrix4d inH,
vectorN outT 
)
static

◆ inner_prod_3points()

static double ChppGikTools::inner_prod_3points ( double  originX,
double  originY,
double  point1X,
double  point1Y,
double  point2X,
double  point2Y 
)
static

◆ invertTransformation()

static void ChppGikTools::invertTransformation ( const matrixNxP inH,
matrixNxP outH 
)
static

◆ linearInterpolation()

static bool ChppGikTools::linearInterpolation ( double  D,
double  inSamplingPeriod,
double  xi,
double  xf,
vectorN outTrajectory 
)
static

◆ M3toEulerZYX()

static void ChppGikTools::M3toEulerZYX ( matrix3d inRot,
vector3d outEuler 
)
static

◆ m4dFromXyzt()

static void ChppGikTools::m4dFromXyzt ( double  inX,
double  inY,
double  inZ,
double  inTh,
matrix4d outMat 
)
static

◆ Matrix3toUblas()

static void ChppGikTools::Matrix3toUblas ( const matrix3d m,
matrixNxP um 
)
static

◆ Matrix4toUblas()

static void ChppGikTools::Matrix4toUblas ( const matrix4d m,
matrixNxP um 
)
static

◆ minJerkCurve()

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.

◆ multiFilter()

static bool ChppGikTools::multiFilter ( double  inSamplingPeriod,
matrixNxP inSignal,
matrixNxP outSignal 
)
static

◆ multiLinearInterpolation()

static bool ChppGikTools::multiLinearInterpolation ( double  D,
double  inSamplingPeriod,
vectorN xi,
vectorN xf,
matrixNxP outTrajectory 
)
static

◆ OmegatoEulerZYX()

static void ChppGikTools::OmegatoEulerZYX ( const vectorN inOmega,
vectorN outEuler 
)
static

Same as RottoEulerZYX but from instantaneous rotation vector inOmega.

◆ OmegaToR()

static bool ChppGikTools::OmegaToR ( const vectorN inOmega,
matrixNxP outR 
)
static

Converts an angular velocity vector to a rotation.

◆ overlapConcat()

static bool ChppGikTools::overlapConcat ( matrixNxP data,
const matrixNxP addedData,
unsigned int  overlap 
)
static

◆ printBlasMat()

static void ChppGikTools::printBlasMat ( const matrixNxP M)
static

◆ prolongateSizeBased()

static void ChppGikTools::prolongateSizeBased ( unsigned int  size1,
unsigned int  size2,
const matrixNxP inData,
matrixNxP outData 
)
static

◆ prolongateTimeBased()

static void ChppGikTools::prolongateTimeBased ( double  timePre,
double  timePost,
double  samplingPeriod,
const matrixNxP inData,
matrixNxP outData 
)
static

◆ Rodrigues()

static void ChppGikTools::Rodrigues ( const vectorN inAxisVector,
double  inRotationAngle,
matrixNxP outRot 
)
static

◆ Rodrigues4d()

static bool ChppGikTools::Rodrigues4d ( const vectorN inVec,
matrix4d outH 
)
static

Integrate a rigid body velocity.

Parameters
inVecvector of dimension (at least) 6 (v, omega)
Return values
outHHomogeneous matrix representing integration of velocity during unit time.

Computation is perform using Rodrigues' formula.

◆ RotFromYaw()

static void ChppGikTools::RotFromYaw ( double  inYaw,
matrixNxP outM 
)
static

◆ RottoEulerZYX()

static void ChppGikTools::RottoEulerZYX ( const matrixNxP inRot,
vectorN outEuler 
)
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)

◆ RottoOmega()

static void ChppGikTools::RottoOmega ( const matrixNxP inRot,
vectorN outVec 
)
static

◆ sinFilter()

static bool ChppGikTools::sinFilter ( vectorN inSignal,
double  inSamplingPeriod,
vectorN outSignal 
)
static

matrix has samples in concatenated columns

◆ splitM4()

static void ChppGikTools::splitM4 ( const matrix4d inM,
matrix3d outR,
vector3d outV 
)
static

◆ targetTransformationM()

static void ChppGikTools::targetTransformationM ( const matrix4d referenceBase,
const matrix4d referenceTarget,
const matrix4d nowBase,
matrix4d outNowTarget 
)
static

◆ targetTransformationU()

static void ChppGikTools::targetTransformationU ( const matrixNxP referenceBase,
const matrixNxP referenceTarget,
const matrixNxP nowBase,
matrixNxP outNowTarget 
)
static

◆ timetoRank()

static unsigned int ChppGikTools::timetoRank ( double  startTime,
double  inTime,
double  inSamplingPeriod 
)
static

return n = round((inTime-startTime)/inSamplingPeriod)

◆ UblastoMatrix3()

static void ChppGikTools::UblastoMatrix3 ( const matrixNxP um,
matrix3d m 
)
static

◆ UblastoMatrix4()

static void ChppGikTools::UblastoMatrix4 ( const matrixNxP um,
matrix4d m 
)
static

◆ UblastoVector3()

static void ChppGikTools::UblastoVector3 ( const vectorN uv,
vector3d v 
)
static

◆ Vector3toUblas()

static void ChppGikTools::Vector3toUblas ( const vector3d v,
vectorN uv 
)
static