EASY-ROB™ Kernel
v8.606
|
Method class for mathematical calculations, multiplications of homogeneous matrices, conversion Euler angle, triangle calculations, formula parser, etc. More...
#include <erk_capi.h>
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 ofER_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 ofER_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 ofER_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... | |
Method class for mathematical calculations, multiplications of homogeneous matrices, conversion Euler angle, triangle calculations, formula parser, etc.
|
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.
[in] | Ts | start frame DFRAME |
[in] | Te | end frame DFRAME |
[out] | angle | angle of rotation [rad] |
[out] | k | normalized equivalent angle axis |
0 | - OK |
1 | - Error, invalid rotation idx, kernel not initialized |
|
static |
Circle calculation from three points ps
over pv
to pe
.
Calculates center of circle, radius and angle.
[in] | ps | 1st start point, ER_DIM |
[in] | pv | 2nd via point, ER_DIM |
[in] | pe | 3rd end point, ER_DIM |
[out] | pTc | center of circle, DFRAME |
[out] | radius | of circle |
[out] | phi | angle of complete circle segment from ps over pv to pe |
[out] | phi_via | angle of circle segment from ps to pv |
0 | - OK |
1 | - Error, cannot calculate circle, maybe ps, pv and pe are on a line |
|
static |
Cpy vector dst = src.
[out] | dst | - destination |
[in] | src | - source |
[in] | n | - number of values to cpy |
pointer | to double of dst |
|
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.
[in] | Ts | start frame DFRAME |
[in] | Te | end frame DFRAME |
[out] | dist | distance |
[out] | dv | normalized direction |
0 | - OK |
1 | - Error, invalid rotation idx, kernel not initialized |
|
static |
|
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.
[out] | T | frame DFRAME |
[in] | q | rotation angle [rad] |
[in] | rotation_idx | rotation index |
0 | - OK |
1 | - Error, invalid rotation idx, kernel not initialized |
|
static |
|
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()
[in] | T | homegeneous matrix DFRAME |
[out] | vec | vector (euler, quaternion in [rad]), max size is ER_DOF6 or ER_DOF_QUAT for ER_ROT_QUAT |
[in] | rotation_idx | rotation index |
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 |
|
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.
0 | - OK |
1 | - Error, kernel not initialized |
|
static |
|
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.
[out] | po | position product of inv(R) and pi ER_DIM |
[in] | R | 3x3 orientation frame DFRAME |
[in] | pi | position ER_DIM |
0 | - OK |
1 | - Error, kernel not initialized |
|
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.
[out] | To | product of Ti1 and inv(Ti2) DFRAME |
[in] | Ti1 | 1st frame DFRAME |
[in] | Ti2 | 2nd frame DFRAME |
0 | - OK |
1 | - Error, kernel not initialized |
|
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.
[out] | To | product of inv(Ti1) and inv(Ti2) and inv(Ti3) DFRAME |
[in] | Ti1 | 1st frame DFRAME |
[in] | Ti2 | 2nd frame DFRAME |
[in] | Ti3 | 3rd frame DFRAME |
0 | - OK |
1 | - Error, kernel not initialized |
|
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.
[out] | To | product of inv(Ti1) and inv(Ti2) and Ti3 DFRAME |
[in] | Ti1 | 1st frame DFRAME |
[in] | Ti2 | 2nd frame DFRAME |
[in] | Ti3 | 3rd frame DFRAME |
0 | - OK |
1 | - Error, kernel not initialized |
|
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.
0 | - OK |
1 | - Error, kernel not initialized |
|
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.
[out] | To | product of Ti1 and inv(Ti2) DFRAME |
[in] | Ti1 | 1st frame DFRAME |
[in] | Ti2 | 2nd frame DFRAME |
0 | - OK |
1 | - Error, kernel not initialized |
|
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.
[out] | To | product of inv(Ti1) and Ti2 and inv(Ti3) DFRAME |
[in] | Ti1 | 1st frame DFRAME |
[in] | Ti2 | 2nd frame DFRAME |
[in] | Ti3 | 3rd frame DFRAME |
0 | - OK |
1 | - Error, kernel not initialized |
|
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.
[out] | To | product of inv(Ti1) and Ti2 and Ti3 DFRAME |
[in] | Ti1 | 1st frame DFRAME |
[in] | Ti2 | 2nd frame DFRAME |
[in] | Ti3 | 3rd frame DFRAME |
0 | - OK |
1 | - Error, kernel not initialized |
|
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.
[out] | po | position product of R and pi ER_DIM |
[in] | R | 3x3 orientation frame DFRAME |
[in] | pi | position ER_DIM |
0 | - OK |
1 | - Error, kernel not initialized |
|
static |
Orientation multiplication of two homogeneous 4x4 transformation matrices.
Ro = Ri1 * Ri2
A frame DFRAME is a homogeneous 4x4 transformation matrix.
[out] | Ro | product of Ri1 and Ri2 DFRAME |
[in] | Ri1 | 1st frame orientation DFRAME |
[in] | Ri2 | 2nd frame orientation DFRAME |
0 | - OK |
1 | - Error, kernel not initialized |
|
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.
[out] | To | product of Ti1 and inv(Ti2) DFRAME |
[in] | Ti1 | 1st frame DFRAME |
[in] | Ti2 | 2nd frame DFRAME |
0 | - OK |
1 | - Error, kernel not initialized |
|
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.
[out] | To | product of Ti1 and inv(Ti2) and inv(Ti3) DFRAME |
[in] | Ti1 | 1st frame DFRAME |
[in] | Ti2 | 2nd frame DFRAME |
[in] | Ti3 | 3rd frame DFRAME |
0 | - OK |
1 | - Error, kernel not initialized |
|
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.
[out] | To | product of Ti1 and inv(Ti2) and Ti3 DFRAME |
[in] | Ti1 | 1st frame DFRAME |
[in] | Ti2 | 2nd frame DFRAME |
[in] | Ti3 | 3rd frame DFRAME |
0 | - OK |
1 | - Error, kernel not initialized |
|
static |
|
static |
|
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.
[out] | To | product of Ti1 and Ti2 and inv(Ti3) DFRAME |
[in] | Ti1 | 1st frame DFRAME |
[in] | Ti2 | 2nd frame DFRAME |
[in] | Ti3 | 3rd frame DFRAME |
0 | - OK |
1 | - Error, kernel not initialized |
|
static |
Tripple multiplication of homogeneous 4x4 transformation matrices.
To = Ti1 * Ti2 * Ti3
A frame DFRAME is a homogeneous 4x4 transformation matrix.
[out] | To | product of Ti1 and Ti2 and Ti3 DFRAME |
[in] | Ti1 | 1st frame DFRAME |
[in] | Ti2 | 2nd frame DFRAME |
[in] | Ti3 | 3rd frame DFRAME |
0 | - OK |
1 | - Error, kernel not initialized |
|
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()
[in] | x | X position |
[in] | y | Y position |
[in] | z | Z position |
[in] | Rx | rotation angle about X axis in [rad] |
[in] | Ry | rotation angle about Y axis in [rad] |
[in] | Rz | rotation angle about Z axis in [rad] |
[out] | T | homegeneous matrix DFRAME |
0 | - OK |
1 | - Error, invalid rotation idx, kernel not initialized |
|
static |
Reset vector dst = 0.
[out] | dst | - destination |
[in] | n | - number of values to reset to 0 |
pointer | to double of dst |
|
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
.
[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 |
pointer | to DFRAME of To |
|
static |
Cpy six values to a vector.
[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 |
pointer | to double of vec |
|
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
.
[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 |
pointer | to double of vec |
|
static |
Cpy n values to a vector.
[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 |
pointer | to double of vec |
|
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()
[in] | vec | vector (euler, quaternion in [rad]), max size is ER_DOF6 or ER_DOF_QUAT for ER_ROT_QUAT |
[out] | T | homegeneous matrix DFRAME |
[in] | rotation_idx | rotation index |
0 | - OK |
1 | - Error, invalid rotation idx, kernel not initialized |