EASY-ROB™ Kernel  v8.606
Static Public Member Functions | List of all members
ERK_CAPI_SYS_MATHEMATICS Class Reference

Method class for mathematical calculations, multiplications of homogeneous matrices, conversion Euler angle, triangle calculations, formula parser, etc. More...

#include <erk_capi.h>

Inheritance diagram for ERK_CAPI_SYS_MATHEMATICS:
ERK_CAPI_SYS ERK_CAPI

Static Public Member Functions

static DLLAPI int ER_STDCALL erMath_FrameToVecIdx (DFRAME *T, double *vec, long rotation_idx=ER_ROT_XYZ)
 Converts a frame into an euler vector or quaternion. Frame T is converted into a vector vec
A frame DFRAME is a homogeneous 4x4 transformation matrix.
Depending on the rotation index rotation_idx, which is one of
ER_ROT_XYZ = RotX * RotY' * RotZ'' default,
ER_ROT_XYZ, ER_ROT_ZYX, ER_ROT_YXZ, ER_ROT_ZYZ,ER_ROT_XYX, ER_ROT_RPY, ER_ROT_QUAT, ER_ROT_CA, ER_ROT_ZYpZ,
ER_ROT_Y9XZ, ER_ROT_Z9XY, ER_ROT_Z9XZ, ER_ROT_Z9YX, ER_ROT_IJK, ER_ROT_ANGLE_1
See also erMath_VecToFrameIdx() More...
 
static DLLAPI int ER_STDCALL erMath_VecToFrameIdx (double *vec, DFRAME *T, long rotation_idx=ER_ROT_XYZ)
 Converts an euler vector or quaternion into a frame. Vector vec is converted into a frame T
A frame DFRAME is a homogeneous 4x4 transformation matrix.
Depending on the rotation index rotation_idx, which is one of
ER_ROT_XYZ = RotX * RotY' * RotZ'' default,
ER_ROT_XYZ, ER_ROT_ZYX, ER_ROT_YXZ, ER_ROT_ZYZ,ER_ROT_XYX, ER_ROT_RPY, ER_ROT_QUAT, ER_ROT_CA, ER_ROT_ZYpZ,
ER_ROT_Y9XZ, ER_ROT_Z9XY, ER_ROT_Z9XZ, ER_ROT_Z9YX, ER_ROT_IJK, ER_ROT_ANGLE_1
See also erMath_FrameToVecIdx() More...
 
static DLLAPI int ER_STDCALL erMath_PxyzRxyzToFrame (double x, double y, double z, double Rx, double Ry, double Rz, DFRAME *T)
 Converts an euler represented location with rotation index ER_ROT_XYZ into a frame.
Location x, y, z, Rx, Ry, Rz are converted into a frame T
A frame DFRAME is a homogeneous 4x4 transformation matrix.
See also erMath_VecToFrameIdx(), erMath_FrameToVecIdx() More...
 
static DLLAPI int ER_STDCALL erMath_Frame_Ident (DFRAME *T)
 Set the homogeneous 4x4 transformation matrix T to identity.
T = Ident
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
static DLLAPI int ER_STDCALL erMath_Frame_Trans (DFRAME *T, double x, double y, double z)
 Set position of homogeneous 4x4 transformation matrix.
T.p[] = [x,y,z]
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
static DLLAPI int ER_STDCALL erMath_Frame_Rot (DFRAME *T, double q, long rotation_idx=ER_ROT_IDENT)
 Set orientation of homogeneous 4x4 transformation matrix.
T = f(q,rotation_idx)
The rotation index rotation_idx, is one of
ER_ROT_IDENT=default, ER_ROT_X, ER_ROT_Y or ER_ROT_Z
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
static DLLAPI int ER_STDCALL erMath_AngleBetween (DFRAME *Ts, DFRAME *Te, double *angle, double *k=NULL)
 Calculates the angle and the equivalent angle axis between two homogeneous 4x4 transformation matrices.
Rotation from start frame Ts into end frame Te by angle of rotation angle about the equivalent angle axis k
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
static DLLAPI int ER_STDCALL erMath_DistBetween (DFRAME *Ts, DFRAME *Te, double *dist, double *dv=NULL)
 Calculates the distance and direction between two homogeneous 4x4 transformation matrices.
Translation from start frame Ts into end frame Te by the distance dist in direction vd
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
static DLLAPI int ER_STDCALL erMath_CircCenterPoint (double *ps, double *pv, double *pe, DFRAME *pTc, double *radius, double *phi, double *phi_via=NULL)
 Circle calculation from three points ps over pv to pe.
Calculates center of circle, radius and angle. More...
 
static DLLAPI int ER_STDCALL erMath_invT (DFRAME *To, DFRAME *Ti)
 Builds the inverse of a homogeneous 4x4 transformation matrix T.
To = inv(Ti) = ( Ri' , -Ri'*pi ), Ri' is transpose of Ri
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
static DLLAPI int ER_STDCALL erMath_invR (DFRAME *Ro, DFRAME *Ri)
 Builds the inverse of the 3x3 orientation matrix from a homogeneous 4x4 transformation matrix T.
Ro = inv(Ri) = transpose(Ri) = Ri', with Ti = ( Ri , pi )
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
static DLLAPI int ER_STDCALL erMath_mul_R_R (DFRAME *Ro, DFRAME *Ri1, DFRAME *Ri2)
 Orientation multiplication of two homogeneous 4x4 transformation matrices.
Ro = Ri1 * Ri2
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
static DLLAPI int ER_STDCALL erMath_mul_T_T (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2)
 Multiplication of two homogeneous 4x4 transformation matrices.
To = Ti1 * Ti2
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
static DLLAPI int ER_STDCALL erMath_mul_T_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2)
 Multiplication of two homogeneous 4x4 transformation matrices.
To = Ti1 * inv(Ti2)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
static DLLAPI int ER_STDCALL erMath_mul_invT_T (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2)
 Multiplication of two homogeneous 4x4 transformation matrices.
To = inv(Ti1) * Ti2
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
static DLLAPI int ER_STDCALL erMath_mul_invT_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2)
 Multiplication of two homogeneous 4x4 transformation matrices.
To = inv(Ti1) * inv(Ti2)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
static DLLAPI int ER_STDCALL erMath_mul_T_pos (double *po, DFRAME *T, double *pi)
 Multiplication of a 3x1 position with a homogeneous 4x4 transformation matrices.
po = T * pi, pi is vector of size ER_DIM
po = R*pi + p, with T = ( R , p) A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
static DLLAPI int ER_STDCALL erMath_mul_invT_pos (double *po, DFRAME *T, double *pi)
 Multiplication of a 3x1 position with the inverse of a homogeneous 4x4 transformation matrices.
po = inv(T) * pi, pi is vector of size ER_DIM
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
static DLLAPI int ER_STDCALL erMath_mul_R_pos (double *po, DFRAME *R, double *pi)
 Multiplication of a 3x1 position with the 3x3 orientation of a homogeneous 4x4 transformation matrices.
po = R * pi, pi is vector of size ER_DIM
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
static DLLAPI int ER_STDCALL erMath_mul_invR_pos (double *po, DFRAME *R, double *pi)
 Multiplication of a 3x1 position with the transpose of a 3x3 orientation of a homogeneous 4x4 transformation matrices.
po = R' * pi, pi is vector of size ER_DIM
Remarks
R' = inv(R) is the transpose of R, see erMath_invR()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
static DLLAPI int ER_STDCALL erMath_mul_T_T_T (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2, DFRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = Ti1 * Ti2 * Ti3
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
static DLLAPI int ER_STDCALL erMath_mul_T_T_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2, DFRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = Ti1 * Ti2 * inv(Ti3)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
static DLLAPI int ER_STDCALL erMath_mul_T_invT_T (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2, DFRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = Ti1 * inv(Ti2) * Ti3
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
static DLLAPI int ER_STDCALL erMath_mul_T_invT_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2, DFRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = Ti1 * inv(Ti2) * inv(Ti3)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
static DLLAPI int ER_STDCALL erMath_mul_invT_T_T (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2, DFRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = inv(Ti1) * Ti2 * Ti3
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
static DLLAPI int ER_STDCALL erMath_mul_invT_T_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2, DFRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = inv(Ti1) * Ti2 * inv(Ti3)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
static DLLAPI int ER_STDCALL erMath_mul_invT_invT_T (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2, DFRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = inv(Ti1) * inv(Ti2) * Ti3
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
static DLLAPI int ER_STDCALL erMath_mul_invT_invT_invT (DFRAME *To, DFRAME *Ti1, DFRAME *Ti2, DFRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = inv(Ti1) * inv(Ti2) * inv(Ti3)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix. More...
 
static DLLAPI double *ER_STDCALL erMath_SetVec6 (double *vec, double q1, double q2, double q3, double q4, double q5, double q6)
 Cpy six values to a vector. More...
 
static DLLAPI double *ER_STDCALL erMath_SetVec6PosOri (double *vec, double x, double y, double z, double Rx, double Ry, double Rz)
 Cpy and convert a target location (position+orientation) to a vector
position x,y,z in [mm] converted to [m] by ER_mm2m
orientation Rx,Ry,Rz in [deg] converted to [rad] by ER_RAD
. More...
 
static DLLAPI DFRAME *ER_STDCALL erMath_SetFramePosOri (DFRAME *To, double x, double y, double z, double Rx, double Ry, double Rz)
 Cpy and convert a target location (position+orientation) to a DFRAME
position x,y,z in [mm] converted to [m] by ER_mm2m
orientation Rx,Ry,Rz in [deg] converted to [rad] by ER_RAD
. More...
 
static DLLAPI double *ER_STDCALL erMath_SetVec_n (double *vec, int n, double q1, double q2, double q3, double q4, double q5, double q6)
 Cpy n values to a vector. More...
 
static DLLAPI double *ER_STDCALL erMath_CpyVec (double *dst, double *src, int n)
 Cpy vector dst = src. More...
 
static DLLAPI double *ER_STDCALL erMath_ResetVec (double *dst, int n)
 Reset vector dst = 0. More...
 

Additional Inherited Members

- Static Public Attributes inherited from ERK_CAPI_SYS
static ERK_CAPI_SYS_UTILITIES erk_capi_sys_utilities
 Method class for helping functions, color conversion, etc. More...
 
static ERK_CAPI_SYS_MATHEMATICS erk_capi_sys_mathematics
 Method class for mathematical calculations, multiplications of homogeneous matrices, conversion Euler angle, triangle calculations, formula parser, etc. More...
 
- Static Public Attributes inherited from ERK_CAPI
static ERK_CAPI_ADMIN erk_capi_admin
 Method class to administrate this Robotics Simulation Kernel. More...
 
static ERK_CAPI_DEVICES erk_capi_devices
 Method class to create, attach, update devices, for kinematics calculations and for motion planning and -execution. More...
 
static ERK_CAPI_SIM erk_capi_sim
 Method class for simulation settings. More...
 
static ERK_CAPI_AUTOPATH erk_capi_autopath
 Method class for collision free path planning. More...
 
static ERK_CAPI_TARGETS erk_capi_targets
 Method class for paths and tags. More...
 
static ERK_CAPI_GEO erk_capi_geo
 Method class to handle 3D Geometry Data. More...
 
static ERK_CAPI_SYS erk_capi_sys
 Method class for mathematical calculations, simulation status, units. More...
 

Detailed Description

Method class for mathematical calculations, multiplications of homogeneous matrices, conversion Euler angle, triangle calculations, formula parser, etc.

Member Function Documentation

◆ erMath_AngleBetween()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_AngleBetween ( DFRAME Ts,
DFRAME Te,
double *  angle,
double *  k = NULL 
)
static

Calculates the angle and the equivalent angle axis between two homogeneous 4x4 transformation matrices.
Rotation from start frame Ts into end frame Te by angle of rotation angle about the equivalent angle axis k
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[in]Tsstart frame DFRAME
[in]Teend frame DFRAME
[out]angleangle of rotation [rad]
[out]knormalized equivalent angle axis
Return values
0- OK
1- Error, invalid rotation idx, kernel not initialized

◆ erMath_CircCenterPoint()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_CircCenterPoint ( double *  ps,
double *  pv,
double *  pe,
DFRAME pTc,
double *  radius,
double *  phi,
double *  phi_via = NULL 
)
static

Circle calculation from three points ps over pv to pe.
Calculates center of circle, radius and angle.

Parameters
[in]ps1st start point, ER_DIM
[in]pv2nd via point, ER_DIM
[in]pe3rd end point, ER_DIM
[out]pTccenter of circle, DFRAME
[out]radiusof circle
[out]phiangle of complete circle segment from ps over pv to pe
[out]phi_viaangle of circle segment from ps to pv
Return values
0- OK
1- Error, cannot calculate circle, maybe ps, pv and pe are on a line

◆ erMath_CpyVec()

static DLLAPI double* ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_CpyVec ( double *  dst,
double *  src,
int  n 
)
static

Cpy vector dst = src.

Parameters
[out]dst- destination
[in]src- source
[in]n- number of values to cpy
Return values
pointerto double of dst

◆ erMath_DistBetween()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_DistBetween ( DFRAME Ts,
DFRAME Te,
double *  dist,
double *  dv = NULL 
)
static

Calculates the distance and direction between two homogeneous 4x4 transformation matrices.
Translation from start frame Ts into end frame Te by the distance dist in direction vd
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[in]Tsstart frame DFRAME
[in]Teend frame DFRAME
[out]distdistance
[out]dvnormalized direction
Return values
0- OK
1- Error, invalid rotation idx, kernel not initialized

◆ erMath_Frame_Ident()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_Frame_Ident ( DFRAME T)
static

Set the homogeneous 4x4 transformation matrix T to identity.
T = Ident
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Tframe identity DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_Frame_Rot()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_Frame_Rot ( DFRAME T,
double  q,
long  rotation_idx = ER_ROT_IDENT 
)
static

Set orientation of homogeneous 4x4 transformation matrix.
T = f(q,rotation_idx)
The rotation index rotation_idx, is one of
ER_ROT_IDENT=default, ER_ROT_X, ER_ROT_Y or ER_ROT_Z
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Tframe DFRAME
[in]qrotation angle [rad]
[in]rotation_idxrotation index
Return values
0- OK
1- Error, invalid rotation idx, kernel not initialized

◆ erMath_Frame_Trans()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_Frame_Trans ( DFRAME T,
double  x,
double  y,
double  z 
)
static

Set position of homogeneous 4x4 transformation matrix.
T.p[] = [x,y,z]
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Tframe DFRAME
[in]xX position
[in]yY position
[in]zZ position
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_FrameToVecIdx()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_FrameToVecIdx ( DFRAME T,
double *  vec,
long  rotation_idx = ER_ROT_XYZ 
)
static

Converts a frame into an euler vector or quaternion. Frame T is converted into a vector vec
A frame DFRAME is a homogeneous 4x4 transformation matrix.
Depending on the rotation index rotation_idx, which is one of
ER_ROT_XYZ = RotX * RotY' * RotZ'' default,
ER_ROT_XYZ, ER_ROT_ZYX, ER_ROT_YXZ, ER_ROT_ZYZ,ER_ROT_XYX, ER_ROT_RPY, ER_ROT_QUAT, ER_ROT_CA, ER_ROT_ZYpZ,
ER_ROT_Y9XZ, ER_ROT_Z9XY, ER_ROT_Z9XZ, ER_ROT_Z9YX, ER_ROT_IJK, ER_ROT_ANGLE_1
See also erMath_VecToFrameIdx()

Parameters
[in]Thomegeneous matrix DFRAME
[out]vecvector (euler, quaternion in [rad]), max size is ER_DOF6 or ER_DOF_QUAT for ER_ROT_QUAT
[in]rotation_idxrotation index
Return values
0- Error, invalid rotation_idx, no results calculated in vector vec
>=5- number of valid calculated values in vector vec, depending on the rotation index rotation_idx

◆ erMath_invR()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_invR ( DFRAME Ro,
DFRAME Ri 
)
static

Builds the inverse of the 3x3 orientation matrix from a homogeneous 4x4 transformation matrix T.
Ro = inv(Ri) = transpose(Ri) = Ri', with Ti = ( Ri , pi )
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Roinverse of Ri DFRAME
[in]Riframe DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_invT()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_invT ( DFRAME To,
DFRAME Ti 
)
static

Builds the inverse of a homogeneous 4x4 transformation matrix T.
To = inv(Ti) = ( Ri' , -Ri'*pi ), Ri' is transpose of Ri
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toinverse of Ti DFRAME
[in]Tiframe DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_invR_pos()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_mul_invR_pos ( double *  po,
DFRAME R,
double *  pi 
)
static

Multiplication of a 3x1 position with the transpose of a 3x3 orientation of a homogeneous 4x4 transformation matrices.
po = R' * pi, pi is vector of size ER_DIM
Remarks
R' = inv(R) is the transpose of R, see erMath_invR()
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]poposition product of inv(R) and pi ER_DIM
[in]R3x3 orientation frame DFRAME
[in]piposition ER_DIM
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_invT_invT()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_mul_invT_invT ( DFRAME To,
DFRAME Ti1,
DFRAME Ti2 
)
static

Multiplication of two homogeneous 4x4 transformation matrices.
To = inv(Ti1) * inv(Ti2)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toproduct of Ti1 and inv(Ti2) DFRAME
[in]Ti11st frame DFRAME
[in]Ti22nd frame DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_invT_invT_invT()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_mul_invT_invT_invT ( DFRAME To,
DFRAME Ti1,
DFRAME Ti2,
DFRAME Ti3 
)
static

Tripple multiplication of homogeneous 4x4 transformation matrices.
To = inv(Ti1) * inv(Ti2) * inv(Ti3)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toproduct of inv(Ti1) and inv(Ti2) and inv(Ti3) DFRAME
[in]Ti11st frame DFRAME
[in]Ti22nd frame DFRAME
[in]Ti33rd frame DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_invT_invT_T()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_mul_invT_invT_T ( DFRAME To,
DFRAME Ti1,
DFRAME Ti2,
DFRAME Ti3 
)
static

Tripple multiplication of homogeneous 4x4 transformation matrices.
To = inv(Ti1) * inv(Ti2) * Ti3
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toproduct of inv(Ti1) and inv(Ti2) and Ti3 DFRAME
[in]Ti11st frame DFRAME
[in]Ti22nd frame DFRAME
[in]Ti33rd frame DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_invT_pos()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_mul_invT_pos ( double *  po,
DFRAME T,
double *  pi 
)
static

Multiplication of a 3x1 position with the inverse of a homogeneous 4x4 transformation matrices.
po = inv(T) * pi, pi is vector of size ER_DIM
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]poposition product of inv(T) and pi ER_DIM
[in]Tframe DFRAME
[in]piposition ER_DIM
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_invT_T()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_mul_invT_T ( DFRAME To,
DFRAME Ti1,
DFRAME Ti2 
)
static

Multiplication of two homogeneous 4x4 transformation matrices.
To = inv(Ti1) * Ti2
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toproduct of Ti1 and inv(Ti2) DFRAME
[in]Ti11st frame DFRAME
[in]Ti22nd frame DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_invT_T_invT()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_mul_invT_T_invT ( DFRAME To,
DFRAME Ti1,
DFRAME Ti2,
DFRAME Ti3 
)
static

Tripple multiplication of homogeneous 4x4 transformation matrices.
To = inv(Ti1) * Ti2 * inv(Ti3)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toproduct of inv(Ti1) and Ti2 and inv(Ti3) DFRAME
[in]Ti11st frame DFRAME
[in]Ti22nd frame DFRAME
[in]Ti33rd frame DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_invT_T_T()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_mul_invT_T_T ( DFRAME To,
DFRAME Ti1,
DFRAME Ti2,
DFRAME Ti3 
)
static

Tripple multiplication of homogeneous 4x4 transformation matrices.
To = inv(Ti1) * Ti2 * Ti3
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toproduct of inv(Ti1) and Ti2 and Ti3 DFRAME
[in]Ti11st frame DFRAME
[in]Ti22nd frame DFRAME
[in]Ti33rd frame DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_R_pos()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_mul_R_pos ( double *  po,
DFRAME R,
double *  pi 
)
static

Multiplication of a 3x1 position with the 3x3 orientation of a homogeneous 4x4 transformation matrices.
po = R * pi, pi is vector of size ER_DIM
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]poposition product of R and pi ER_DIM
[in]R3x3 orientation frame DFRAME
[in]piposition ER_DIM
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_R_R()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_mul_R_R ( DFRAME Ro,
DFRAME Ri1,
DFRAME Ri2 
)
static

Orientation multiplication of two homogeneous 4x4 transformation matrices.
Ro = Ri1 * Ri2
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Roproduct of Ri1 and Ri2 DFRAME
[in]Ri11st frame orientation DFRAME
[in]Ri22nd frame orientation DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_T_invT()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_mul_T_invT ( DFRAME To,
DFRAME Ti1,
DFRAME Ti2 
)
static

Multiplication of two homogeneous 4x4 transformation matrices.
To = Ti1 * inv(Ti2)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toproduct of Ti1 and inv(Ti2) DFRAME
[in]Ti11st frame DFRAME
[in]Ti22nd frame DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_T_invT_invT()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_mul_T_invT_invT ( DFRAME To,
DFRAME Ti1,
DFRAME Ti2,
DFRAME Ti3 
)
static

Tripple multiplication of homogeneous 4x4 transformation matrices.
To = Ti1 * inv(Ti2) * inv(Ti3)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toproduct of Ti1 and inv(Ti2) and inv(Ti3) DFRAME
[in]Ti11st frame DFRAME
[in]Ti22nd frame DFRAME
[in]Ti33rd frame DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_T_invT_T()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_mul_T_invT_T ( DFRAME To,
DFRAME Ti1,
DFRAME Ti2,
DFRAME Ti3 
)
static

Tripple multiplication of homogeneous 4x4 transformation matrices.
To = Ti1 * inv(Ti2) * Ti3
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toproduct of Ti1 and inv(Ti2) and Ti3 DFRAME
[in]Ti11st frame DFRAME
[in]Ti22nd frame DFRAME
[in]Ti33rd frame DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_T_pos()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_mul_T_pos ( double *  po,
DFRAME T,
double *  pi 
)
static

Multiplication of a 3x1 position with a homogeneous 4x4 transformation matrices.
po = T * pi, pi is vector of size ER_DIM
po = R*pi + p, with T = ( R , p) A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]poposition product of T and pi ER_DIM
[in]Tframe DFRAME
[in]piposition ER_DIM
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_T_T()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_mul_T_T ( DFRAME To,
DFRAME Ti1,
DFRAME Ti2 
)
static

Multiplication of two homogeneous 4x4 transformation matrices.
To = Ti1 * Ti2
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toproduct of Ti1 and Ti2 DFRAME
[in]Ti11st frame DFRAME
[in]Ti22nd frame DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_T_T_invT()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_mul_T_T_invT ( DFRAME To,
DFRAME Ti1,
DFRAME Ti2,
DFRAME Ti3 
)
static

Tripple multiplication of homogeneous 4x4 transformation matrices.
To = Ti1 * Ti2 * inv(Ti3)
Remarks
inv(T) is the inverse of T, see erMath_invT()
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toproduct of Ti1 and Ti2 and inv(Ti3) DFRAME
[in]Ti11st frame DFRAME
[in]Ti22nd frame DFRAME
[in]Ti33rd frame DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_mul_T_T_T()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_mul_T_T_T ( DFRAME To,
DFRAME Ti1,
DFRAME Ti2,
DFRAME Ti3 
)
static

Tripple multiplication of homogeneous 4x4 transformation matrices.
To = Ti1 * Ti2 * Ti3
A frame DFRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toproduct of Ti1 and Ti2 and Ti3 DFRAME
[in]Ti11st frame DFRAME
[in]Ti22nd frame DFRAME
[in]Ti33rd frame DFRAME
Return values
0- OK
1- Error, kernel not initialized

◆ erMath_PxyzRxyzToFrame()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_PxyzRxyzToFrame ( double  x,
double  y,
double  z,
double  Rx,
double  Ry,
double  Rz,
DFRAME T 
)
static

Converts an euler represented location with rotation index ER_ROT_XYZ into a frame.
Location x, y, z, Rx, Ry, Rz are converted into a frame T
A frame DFRAME is a homogeneous 4x4 transformation matrix.
See also erMath_VecToFrameIdx(), erMath_FrameToVecIdx()

Parameters
[in]xX position
[in]yY position
[in]zZ position
[in]Rxrotation angle about X axis in [rad]
[in]Ryrotation angle about Y axis in [rad]
[in]Rzrotation angle about Z axis in [rad]
[out]Thomegeneous matrix DFRAME
Return values
0- OK
1- Error, invalid rotation idx, kernel not initialized

◆ erMath_ResetVec()

static DLLAPI double* ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_ResetVec ( double *  dst,
int  n 
)
static

Reset vector dst = 0.

Parameters
[out]dst- destination
[in]n- number of values to reset to 0
Return values
pointerto double of dst

◆ erMath_SetFramePosOri()

static DLLAPI DFRAME* ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_SetFramePosOri ( DFRAME To,
double  x,
double  y,
double  z,
double  Rx,
double  Ry,
double  Rz 
)
static

Cpy and convert a target location (position+orientation) to a DFRAME
position x,y,z in [mm] converted to [m] by ER_mm2m
orientation Rx,Ry,Rz in [deg] converted to [rad] by ER_RAD
.

Parameters
[in,out]To- DFRAME
[in]x- x position
[in]y- y position
[in]z- z position
[in]Rx- x rotation
[in]Ry- y rotation
[in]Rz- z rotation
Return values
pointerto DFRAME of To

◆ erMath_SetVec6()

static DLLAPI double* ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_SetVec6 ( double *  vec,
double  q1,
double  q2,
double  q3,
double  q4,
double  q5,
double  q6 
)
static

Cpy six values to a vector.

Parameters
[in,out]vec- [q1,q2,q3, q4,q5,q6]
[in]q1- 1st value
[in]q2- 2nd value
[in]q3- 3rd value
[in]q4- 4th value
[in]q5- 5th value
[in]q6- 6th value
Return values
pointerto double of vec

◆ erMath_SetVec6PosOri()

static DLLAPI double* ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_SetVec6PosOri ( double *  vec,
double  x,
double  y,
double  z,
double  Rx,
double  Ry,
double  Rz 
)
static

Cpy and convert a target location (position+orientation) to a vector
position x,y,z in [mm] converted to [m] by ER_mm2m
orientation Rx,Ry,Rz in [deg] converted to [rad] by ER_RAD
.

Parameters
[in,out]vec- [x,y,z, Rx,Ry,Rz]
[in]x- x position
[in]y- y position
[in]z- z position
[in]Rx- x rotation
[in]Ry- y rotation
[in]Rz- z rotation
Return values
pointerto double of vec

◆ erMath_SetVec_n()

static DLLAPI double* ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_SetVec_n ( double *  vec,
int  n,
double  q1,
double  q2,
double  q3,
double  q4,
double  q5,
double  q6 
)
static

Cpy n values to a vector.

Parameters
[in,out]vec- [q1,q2,q3, q4,q5,q6]
[in]n- number of values to cpy, maximum is 6
[in]q1- 1st value
[in]q2- 2nd value
[in]q3- 3rd value
[in]q4- 4th value
[in]q5- 5th value
[in]q6- 6th value
Return values
pointerto double of vec

◆ erMath_VecToFrameIdx()

static DLLAPI int ER_STDCALL ERK_CAPI_SYS_MATHEMATICS::erMath_VecToFrameIdx ( double *  vec,
DFRAME T,
long  rotation_idx = ER_ROT_XYZ 
)
static

Converts an euler vector or quaternion into a frame. Vector vec is converted into a frame T
A frame DFRAME is a homogeneous 4x4 transformation matrix.
Depending on the rotation index rotation_idx, which is one of
ER_ROT_XYZ = RotX * RotY' * RotZ'' default,
ER_ROT_XYZ, ER_ROT_ZYX, ER_ROT_YXZ, ER_ROT_ZYZ,ER_ROT_XYX, ER_ROT_RPY, ER_ROT_QUAT, ER_ROT_CA, ER_ROT_ZYpZ,
ER_ROT_Y9XZ, ER_ROT_Z9XY, ER_ROT_Z9XZ, ER_ROT_Z9YX, ER_ROT_IJK, ER_ROT_ANGLE_1
See also erMath_FrameToVecIdx()

Parameters
[in]vecvector (euler, quaternion in [rad]), max size is ER_DOF6 or ER_DOF_QUAT for ER_ROT_QUAT
[out]Thomegeneous matrix DFRAME
[in]rotation_idxrotation index
Return values
0- OK
1- Error, invalid rotation idx, kernel not initialized

The documentation for this class was generated from the following file: