EASY-ROB™ Application Programming Interface  v9.301
Static Public Member Functions | List of all members
ER_CAPI_SYS_MATHEMATICS Class Reference

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

#include <ER_CAPI.H>

Inheritance diagram for ER_CAPI_SYS_MATHEMATICS:
ER_CAPI_SYS ER_CAPI

Static Public Member Functions

static ER_DllExport int vec_to_frame_idx (float *vec, frame *T, int rotation_idx)
 Converts an euler vector or quaternion into a frame.
Vector vec is converted into a frame T
A frame FRAME is a homogeneous 4x4 transformation matrix.
Depending on the rotation index rotation_idx, which is one of
ROT_XYZ = RotX * RotY' * RotZ'' default,
ROT_XYZ, ROT_ZYX, ROT_YXZ, ROT_ZYZ,ROT_XYX, ROT_RPY, ROT_QUAT, ROT_CA, ROT_ZYpZ,
ROT_Y9XZ, ROT_Z9XY, ROT_Z9XZ, ROT_Z9YX, ROT_IJK, ROT_ANGLE_1
See also frame_to_vec_idx() More...
 
static ER_DllExport int frame_to_vec_idx (float *vec, frame *T, int rotation_idx)
 Converts a frame into an euler vector or quaternion.
Frame T is converted into a vector vec
A frame FRAME is a homogeneous 4x4 transformation matrix.
Depending on the rotation index rotation_idx, which is one of
ROT_XYZ = RotX * RotY' * RotZ'' default,
ROT_XYZ, ROT_ZYX, ROT_YXZ, ROT_ZYZ,ROT_XYX, ROT_RPY, ROT_QUAT, ROT_CA, ROT_ZYpZ,
ROT_Y9XZ, ROT_Z9XY, ROT_Z9XZ, ROT_Z9YX, ROT_IJK, ROT_ANGLE_1
See also vec_to_frame_idx() More...
 
static ER_DllExport void vec_to_frame (float *vec, frame *T)
 Converts an euler vector with ROT_XYZ representation into a frame.
Vector vec is converted into a frame T
A frame FRAME is a homogeneous 4x4 transformation matrix.
See also frame_to_vec() More...
 
static ER_DllExport void frame_to_vec (float *vec, frame *T)
 Converts a frame into an euler vector with ROT_XYZ representation.
Frame T is converted into a vector vec
A frame FRAME is a homogeneous 4x4 transformation matrix.
See also vec_to_frame() More...
 
static ER_DllExport int * inq_rob_kin_controller_rot_idx (void)
 Returns the Controller rotation index for the cRobot.
The Controller index is one of
ROT_XYZ = RotX * RotY' * RotZ'' default,
ROT_XYZ, ROT_ZYX, ROT_YXZ, ROT_ZYZ,ROT_XYX, ROT_RPY, ROT_QUAT, ROT_CA, ROT_ZYpZ,
ROT_Y9XZ, ROT_Z9XY, ROT_Z9XZ, ROT_Z9YX, ROT_IJK, ROT_ANGLE_1
. More...
 
static ER_DllExport char * inq_rob_kin_controller_name (void)
 Returns the Controller name for the cRobot. More...
 
static ER_DllExport void inv_T (FRAME *To, FRAME *Ti)
 Builds the inverse of a homogeneous 4x4 transformation matrix Ti.
To = inv(Ti) = ( Ri' , -Ri'*pi ), Ri' is transpose of Ri
A frame FRAME is a homogeneous 4x4 transformation matrix. More...
 
static ER_DllExport void inv_R (FRAME *Ro, FRAME *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 FRAME is a homogeneous 4x4 transformation matrix. More...
 
static ER_DllExport void incr_T (FRAME *Ti1, FRAME *Ti2, int res)
 Multiplication of two homogeneous 4x4 transformation matrices.
Depending in res , the result is copied to Ti1 or Ti2.
If res is 1, Ti1 = Ti1 * Ti2
If res is 2, Ti2 = Ti1 * Ti2
A frame FRAME is a homogeneous 4x4 transformation matrix. More...
 
static ER_DllExport void incr_R (FRAME *Ri1, FRAME *Ri2, int res)
 Orientation multiplication of two homogeneous 4x4 transformation matrices.
Depending in res , the result is copied to Ri1 or Ri2.
If res is 1, Ri1 = Ri1 * Ri2
If res is 2, Ri2 = Ri1 * Ri2
A frame FRAME is a homogeneous 4x4 transformation matrix. More...
 
static ER_DllExport void cpy_R (FRAME *Ro, FRAME *Ri)
 Copies the Orientation from frame Ri into frame Ro
A frame FRAME is a homogeneous 4x4 transformation matrix. More...
 
static ER_DllExport float * delta_T (float *dx, frame *Ts, frame *Ti)
 Builds the difference between frame Ts and frame Ti
Position dx[0..2] = Ts->p[0..2] - Ti->p[0..2]
Orientation dx[3..5]= 'inv(Ri)*Rs'.
Remarks
It is assumed that the orientation of Ts and Ti are "close by". More...
 
static ER_DllExport void mul_R_R (FRAME *Ro, FRAME *Ri1, FRAME *Ri2)
 Orientation multiplication of two homogeneous 4x4 transformation matrices.
Ro = Ri1 * Ri2
A frame FRAME is a homogeneous 4x4 transformation matrix. More...
 
static ER_DllExport void mul_T_T (FRAME *To, FRAME *Ti1, FRAME *Ti2)
 Multiplication of two homogeneous 4x4 transformation matrices.
To = Ti1 * Ti2
A frame FRAME is a homogeneous 4x4 transformation matrix. More...
 
static ER_DllExport void mul_T_invT (FRAME *To, FRAME *Ti1, FRAME *Ti2)
 Multiplication of two homogeneous 4x4 transformation matrices.
To = Ti1 * inv(Ti2)
Remarks
inv(T) is the inverse of T, see inv_T()
A frame FRAME is a homogeneous 4x4 transformation matrix. More...
 
static ER_DllExport void mul_invT_T (FRAME *To, FRAME *Ti1, FRAME *Ti2)
 Multiplication of two homogeneous 4x4 transformation matrices.
To = inv(Ti1) * Ti2
Remarks
inv(T) is the inverse of T, see inv_T()
A frame FRAME is a homogeneous 4x4 transformation matrix. More...
 
static ER_DllExport void mul_invT_invT (FRAME *To, FRAME *Ti1, FRAME *Ti2)
 Multiplication of two homogeneous 4x4 transformation matrices.
To = inv(Ti1) * inv(Ti2)
Remarks
inv(T) is the inverse of T, see inv_T()
A frame FRAME is a homogeneous 4x4 transformation matrix. More...
 
static ER_DllExport void mul_T_pos (float *po, FRAME *T, float *pi)
 Multiplication of a 3x1 position with a homogeneous 4x4 transformation matrices.
po = T * pi, pi is vector of size DIM
po = R*pi + p, with T = ( R , p)
A frame FRAME is a homogeneous 4x4 transformation matrix. More...
 
static ER_DllExport void mul_invT_pos (float *po, FRAME *T, float *pi)
 Multiplication of a 3x1 position with the inverse of a homogeneous 4x4 transformation matrices.
po = inv(T) * pi, pi is vector of size DIM
Remarks
inv(T) is the inverse of T, see inv_T()
A frame FRAME is a homogeneous 4x4 transformation matrix. More...
 
static ER_DllExport void mul_R_pos (float *po, FRAME *R, float *pi)
 Multiplication of a 3x1 position with the 3x3 orientation of a homogeneous 4x4 transformation matrices.
po = R * pi, pi is vector of size DIM
A frame FRAME is a homogeneous 4x4 transformation matrix. More...
 
static ER_DllExport void mul_invR_pos (float *po, FRAME *R, float *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 DIM
Remarks
R' = inv(R) is the transpose of R, see inv_R()
A frame FRAME is a homogeneous 4x4 transformation matrix. More...
 
static ER_DllExport void mul_T_T_T (FRAME *To, FRAME *Ti1, FRAME *Ti2, FRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = Ti1 * Ti2 * Ti3
A frame FRAME is a homogeneous 4x4 transformation matrix. More...
 
static ER_DllExport void mul_T_T_invT (FRAME *To, FRAME *Ti1, FRAME *Ti2, FRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = Ti1 * Ti2 * inv(Ti3)
Remarks
inv(T) is the inverse of T, see inv_T()
A frame FRAME is a homogeneous 4x4 transformation matrix. More...
 
static ER_DllExport void mul_T_invT_T (FRAME *To, FRAME *Ti1, FRAME *Ti2, FRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = Ti1 * inv(Ti2) * Ti3
Remarks
inv(T) is the inverse of T, see inv_T()
A frame FRAME is a homogeneous 4x4 transformation matrix. More...
 
static ER_DllExport void mul_T_invT_invT (FRAME *To, FRAME *Ti1, FRAME *Ti2, FRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = Ti1 * inv(Ti2) * inv(Ti3)
Remarks
inv(T) is the inverse of T, see inv_T()
A frame FRAME is a homogeneous 4x4 transformation matrix. More...
 
static ER_DllExport void mul_invT_T_T (FRAME *To, FRAME *Ti1, FRAME *Ti2, FRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = inv(Ti1) * Ti2 * Ti3
Remarks
inv(T) is the inverse of T, see inv_T()
A frame FRAME is a homogeneous 4x4 transformation matrix. More...
 
static ER_DllExport void mul_invT_T_invT (FRAME *To, FRAME *Ti1, FRAME *Ti2, FRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = inv(Ti1) * Ti2 * inv(Ti3)
Remarks
inv(T) is the inverse of T, see inv_T()
A frame FRAME is a homogeneous 4x4 transformation matrix. More...
 
static ER_DllExport void mul_invT_invT_T (FRAME *To, FRAME *Ti1, FRAME *Ti2, FRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = inv(Ti1) * inv(Ti2) * Ti3
Remarks
inv(T) is the inverse of T, see inv_T()
A frame FRAME is a homogeneous 4x4 transformation matrix. More...
 
static ER_DllExport void mul_invT_invT_invT (FRAME *To, FRAME *Ti1, FRAME *Ti2, FRAME *Ti3)
 Tripple multiplication of homogeneous 4x4 transformation matrices.
To = inv(Ti1) * inv(Ti2) * inv(Ti3)
Remarks
inv(T) is the inverse of T, see inv_T()
A frame FRAME is a homogeneous 4x4 transformation matrix. More...
 
static ER_DllExport void rob_kin_T_mal_T (frame *Ti1, frame *Ti2)
 Multiplication of two homogeneous 4x4 transformation matrices.
Ti1 = Ti1 * Ti2
Remarks
same as incr_T() with res=1
A frame FRAME is a homogeneous 4x4 transformation matrix. More...
 
static ER_DllExport void rob_kin_R_mal_R (frame *Ti1, frame *Ti2)
 Orientation multiplication of two homogeneous 4x4 transformation matrices.
Ri1 = Ri1 * Ri2
Remarks
same as incr_R() with res=1
A frame FRAME is a homogeneous 4x4 transformation matrix. More...
 
static ER_DllExport void rob_kin_frame_ident (frame *T)
 Set the homogeneous 4x4 transformation matrix T to identity.
T = Ident
A frame FRAME is a homogeneous 4x4 transformation matrix. More...
 
static ER_DllExport void rob_kin_rot (int rotation_idx, double q, frame *T)
 Set orientation of homogeneous 4x4 transformation matrix.
T = f(q,rotation_idx)
The rotation index rotation_idx, is one of
ROT_IDENT = default, ROT_X, ROT_Y or ROT_Z
A frame FRAME is a homogeneous 4x4 transformation matrix. More...
 
static ER_DllExport void rob_kin_rot_xyz (frame *T, float Rx, float Ry, float Rz)
 Converts an euler represented rotation index ROT_XYZ into a frame.
Rotation angle Rx, Ry, Rz are converted into a frame T
A frame FRAME is a homogeneous 4x4 transformation matrix.
Remarks
Use rob_kin_trans() to set the position. More...
 
static ER_DllExport void rob_kin_trans (frame *T, double x, double y, double z)
 Converts a position into a frame.
Location x, y, z are converted into a frame T , T->p = [x,y,z]
A frame FRAME is a homogeneous 4x4 transformation matrix.
Remarks
Use rob_kin_rot_xyz() to set the orientation. More...
 
static ER_DllExport void dh_to_frame (ROB_DH *rdh, frame *T)
 Converts Denavit Hartenberg Parameter ROB_DH parameter into a homogeneous frame FRAME. More...
 
static ER_DllExport float sass (float s1, float beta, float s2)
 Triangle calculation, calculates the opposite site of angle beta
Using cosine rule c^2 = a^2 + b^2 - 2ab*cos(beta)
Remarks
See EASY-ROB-ERPL-eng.pdf "parser functions". More...
 
static ER_DllExport float sasa (float s1, float beta, float s2)
 Triangle calculation, calculates the angle at side s2
Remarks
See EASY-ROB-ERPL-eng.pdf "parser functions". More...
 
static ER_DllExport float asss (float beta, float s1, float s2)
 Triangle calculation, calculates 3rd side s3
Remarks
See EASY-ROB-ERPL-eng.pdf "parser functions". More...
 
static ER_DllExport float assa (float beta, float s1, float s2)
 Triangle calculation, calculates angle between s1 and s2
Remarks
See EASY-ROB-ERPL-eng.pdf "parser functions". More...
 
static ER_DllExport float assa2 (float beta, float s1, float s2)
 Triangle calculation, calculates angle between s2 and s3
Remarks
See EASY-ROB-ERPL-eng.pdf "parser functions". More...
 
static ER_DllExport float sssa (float s1, float s2, float s3)
 Triangle calculation, calculates angle opposite of s1
Remarks
See EASY-ROB-ERPL-eng.pdf "parser functions". More...
 
static ER_DllExport float sasssa (float s1, float beta, float s2, float s3, float s4)
 Quadrangle calculation, calculates angle between s2 of s3
Remarks
See EASY-ROB-ERPL-eng.pdf "parser functions". More...
 
static ER_DllExport float sasssa2 (float s1, float beta, float s2, float s3, float s4)
 Quadrangle calculation, calculates angle between s3 of s4
Remarks
See EASY-ROB-ERPL-eng.pdf "parser functions". More...
 
static ER_DllExport int inq_errorflg (void)
 Parser error flag
Remarks
call this function after calling parser_calc() More...
 
static ER_DllExport double parser_calc (char *str, int *error)
 Formel parser calculation
Remarks
call inq_errorflg() to get parser error. More...
 
static ER_DllExport double rob_kin_atan2 (double y, double x)
 Calculates math function atan2
If x=y=0, this function return 0. More...
 
static ER_DllExport int circ_center_point (float *p1, float *p2, float *p3, frame *pTc, float *radius, float *phi, float *dphi=NULL)
 Circle calculation from three points p1 over p2 to p3.
Calculates center of circle, radius and angle. More...
 

Additional Inherited Members

- Static Public Attributes inherited from ER_CAPI_SYS
static ER_CAPI_SYS_UTILITIES er_capi_sys_utilities
 Method class for helping functions, color conversion, etc. More...
 
static ER_CAPI_SYS_MATHEMATICS er_capi_sys_mathematics
 Method class for mathematical calculations, multiplications of homogeneous matrices, conversion Euler angle, triangle calculations, formula parser, etc. More...
 
static ER_CAPI_SYS_VIEW er_capi_sys_view
 Method class for graphical update of the 3D scene, refreshing dialogs, etc. More...
 
static ER_CAPI_SYS_PREVIEW er_capi_sys_preview
 Method class for the CAD-Preview. More...
 
static ER_CAPI_SYS_STATUS er_capi_sys_status
 Method class for unloading objects (work cells, robots, tools, programs, etc.) simulation status. More...
 
static ER_CAPI_SYS_UNITS er_capi_sys_units
 Method class for setting and calculating units. More...
 
static ER_CAPI_SYS_USERDLL er_capi_sys_userdll
 Method class to access API UserDll. More...
 
static ER_CAPI_SYS_APIDLL er_capi_sys_apidll
 Method class to access API Dll for inverse kinematics, robot trajectory planner and robot dynamics. More...
 
- Static Public Attributes inherited from ER_CAPI
static ER_CAPI_USER_IO er_capi_user_io
 Method class for interaction with EASY-ROB. More...
 
static ER_CAPI_DEVICES er_capi_devices
 Method class to create, attach, update devices, for kinematics calculations and for trajectory planning and -execution. More...
 
static ER_CAPI_SIM er_capi_sim
 Method class for simulation settings. More...
 
static ER_CAPI_TARGETS er_capi_targets
 Method class for paths and tags. More...
 
static ER_CAPI_CAD er_capi_cad
 Method class for for 3D CAD Data import and -export, changing attributes and positions. More...
 
static ER_CAPI_SYS er_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

◆ assa()

static ER_DllExport float ER_CAPI_SYS_MATHEMATICS::assa ( float  beta,
float  s1,
float  s2 
)
static

Triangle calculation, calculates angle between s1 and s2
Remarks
See EASY-ROB-ERPL-eng.pdf "parser functions".

Parameters
[in]betaangle between s1 and s3, [rad]
[in]s1side
[in]s2side
Return values
anglebetween s1 and s2

◆ assa2()

static ER_DllExport float ER_CAPI_SYS_MATHEMATICS::assa2 ( float  beta,
float  s1,
float  s2 
)
static

Triangle calculation, calculates angle between s2 and s3
Remarks
See EASY-ROB-ERPL-eng.pdf "parser functions".

Parameters
[in]betaangle between s1 and s3, [rad]
[in]s1side
[in]s2side
Return values
anglebetween s2 and s3

◆ asss()

static ER_DllExport float ER_CAPI_SYS_MATHEMATICS::asss ( float  beta,
float  s1,
float  s2 
)
static

Triangle calculation, calculates 3rd side s3
Remarks
See EASY-ROB-ERPL-eng.pdf "parser functions".

Parameters
[in]betaangle between s1 and s3, [rad]
[in]s1side
[in]s2side
Return values
s3side

◆ circ_center_point()

static ER_DllExport int ER_CAPI_SYS_MATHEMATICS::circ_center_point ( float *  p1,
float *  p2,
float *  p3,
frame pTc,
float *  radius,
float *  phi,
float *  dphi = NULL 
)
static

Circle calculation from three points p1 over p2 to p3.
Calculates center of circle, radius and angle.

Parameters
[in]p11st point, DIM
[in]p22nd point, DIM
[in]p33rd point, DIM
[out]pTccenter of circle, FRAME
[out]radiusof circle
[out]phiangle of complete circle segment from p1 over p2 to p3
[out]dphiangle of circle segment from p1 to p2
Return values
0- OK
1- Error, cannot calculate circle, maybe p1, p2 and p3 are on a line

◆ cpy_R()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::cpy_R ( FRAME Ro,
FRAME Ri 
)
static

Copies the Orientation from frame Ri into frame Ro
A frame FRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Ro1st FRAME
[in]Ri2nd FRAME

◆ delta_T()

static ER_DllExport float* ER_CAPI_SYS_MATHEMATICS::delta_T ( float *  dx,
frame Ts,
frame Ti 
)
static

Builds the difference between frame Ts and frame Ti
Position dx[0..2] = Ts->p[0..2] - Ti->p[0..2]
Orientation dx[3..5]= 'inv(Ri)*Rs'.
Remarks
It is assumed that the orientation of Ts and Ti are "close by".

Parameters
[out]dxdifference between Ts and Ti, DOF6
[in]Ts1st frame FRAME
[in]Ti2nd frame FRAME
Return values
pointerto dx

◆ dh_to_frame()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::dh_to_frame ( ROB_DH rdh,
frame T 
)
static

Converts Denavit Hartenberg Parameter ROB_DH parameter into a homogeneous frame FRAME.

Parameters
[in]rdhDenavit Hartenberg Parameter, ROB_DH
[out]Thomegeneous matrix FRAME

◆ frame_to_vec()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::frame_to_vec ( float *  vec,
frame T 
)
static

Converts a frame into an euler vector with ROT_XYZ representation.
Frame T is converted into a vector vec
A frame FRAME is a homogeneous 4x4 transformation matrix.
See also vec_to_frame()

Parameters
[out]vecvector, max size is DOF6
[in]Thomegeneous matrix FRAME
Return values
0- OK
1- Error

◆ frame_to_vec_idx()

static ER_DllExport int ER_CAPI_SYS_MATHEMATICS::frame_to_vec_idx ( float *  vec,
frame T,
int  rotation_idx 
)
static

Converts a frame into an euler vector or quaternion.
Frame T is converted into a vector vec
A frame FRAME is a homogeneous 4x4 transformation matrix.
Depending on the rotation index rotation_idx, which is one of
ROT_XYZ = RotX * RotY' * RotZ'' default,
ROT_XYZ, ROT_ZYX, ROT_YXZ, ROT_ZYZ,ROT_XYX, ROT_RPY, ROT_QUAT, ROT_CA, ROT_ZYpZ,
ROT_Y9XZ, ROT_Z9XY, ROT_Z9XZ, ROT_Z9YX, ROT_IJK, ROT_ANGLE_1
See also vec_to_frame_idx()

Parameters
[out]vecvector (euler, quaternion), max size is DOF6 or DOF_QUAT for ROT_QUAT
[in]Thomegeneous matrix FRAME
[in]rotation_idxrotation index
Return values
0- OK
1- Error, invalid rotation_idx

◆ incr_R()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::incr_R ( FRAME Ri1,
FRAME Ri2,
int  res 
)
static

Orientation multiplication of two homogeneous 4x4 transformation matrices.
Depending in res , the result is copied to Ri1 or Ri2.
If res is 1, Ri1 = Ri1 * Ri2
If res is 2, Ri2 = Ri1 * Ri2
A frame FRAME is a homogeneous 4x4 transformation matrix.

Parameters
[in,out]Ri1frame FRAME out if res=1
[in,out]Ri2frame FRAME out if res=2
[in]resResult copied to Ri1 or Ri2

◆ incr_T()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::incr_T ( FRAME Ti1,
FRAME Ti2,
int  res 
)
static

Multiplication of two homogeneous 4x4 transformation matrices.
Depending in res , the result is copied to Ti1 or Ti2.
If res is 1, Ti1 = Ti1 * Ti2
If res is 2, Ti2 = Ti1 * Ti2
A frame FRAME is a homogeneous 4x4 transformation matrix.

Parameters
[in,out]Ti1frame FRAME out if res=1
[in,out]Ti2frame FRAME out if res=2
[in]resResult copied to Ti1 or Ti2

◆ inq_errorflg()

static ER_DllExport int ER_CAPI_SYS_MATHEMATICS::inq_errorflg ( void  )
static

Parser error flag
Remarks
call this function after calling parser_calc()

Return values
0- Ok
1- Error

◆ inq_rob_kin_controller_name()

static ER_DllExport char* ER_CAPI_SYS_MATHEMATICS::inq_rob_kin_controller_name ( void  )
static

Returns the Controller name for the cRobot.

Return values
nameController name, MAXSTR

◆ inq_rob_kin_controller_rot_idx()

static ER_DllExport int* ER_CAPI_SYS_MATHEMATICS::inq_rob_kin_controller_rot_idx ( void  )
static

Returns the Controller rotation index for the cRobot.
The Controller index is one of
ROT_XYZ = RotX * RotY' * RotZ'' default,
ROT_XYZ, ROT_ZYX, ROT_YXZ, ROT_ZYZ,ROT_XYX, ROT_RPY, ROT_QUAT, ROT_CA, ROT_ZYpZ,
ROT_Y9XZ, ROT_Z9XY, ROT_Z9XZ, ROT_Z9YX, ROT_IJK, ROT_ANGLE_1
.

Return values
rot_idxController rotation index

◆ inv_R()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::inv_R ( FRAME Ro,
FRAME 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 FRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Roinverse of Ri FRAME
[in]Riframe FRAME

◆ inv_T()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::inv_T ( FRAME To,
FRAME Ti 
)
static

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

Parameters
[out]Toinverse of Ti FRAME
[in]Tiframe FRAME

◆ mul_invR_pos()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::mul_invR_pos ( float *  po,
FRAME R,
float *  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 DIM
Remarks
R' = inv(R) is the transpose of R, see inv_R()
A frame FRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]poposition product of inv(R) and pi DIM
[in]R3x3 orientation frame FRAME
[in]piposition DIM

◆ mul_invT_invT()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::mul_invT_invT ( FRAME To,
FRAME Ti1,
FRAME Ti2 
)
static

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

Parameters
[out]Toproduct of inv(Ti1) and inv(Ti2) FRAME
[in]Ti11st frame FRAME
[in]Ti22nd frame FRAME

◆ mul_invT_invT_invT()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::mul_invT_invT_invT ( FRAME To,
FRAME Ti1,
FRAME Ti2,
FRAME 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 inv_T()
A frame FRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Toproduct of inv(Ti1) and inv(Ti2) and inv(Ti3) FRAME
[in]Ti11st frame FRAME
[in]Ti22nd frame FRAME
[in]Ti33rd frame FRAME

◆ mul_invT_invT_T()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::mul_invT_invT_T ( FRAME To,
FRAME Ti1,
FRAME Ti2,
FRAME Ti3 
)
static

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

Parameters
[out]Toproduct of inv(Ti1) and inv(Ti2) and Ti3 FRAME
[in]Ti11st frame FRAME
[in]Ti22nd frame FRAME
[in]Ti33rd frame FRAME

◆ mul_invT_pos()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::mul_invT_pos ( float *  po,
FRAME T,
float *  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 DIM
Remarks
inv(T) is the inverse of T, see inv_T()
A frame FRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]poposition product of inv(T) and pi DIM
[in]Tframe FRAME
[in]piposition DIM

◆ mul_invT_T()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::mul_invT_T ( FRAME To,
FRAME Ti1,
FRAME Ti2 
)
static

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

Parameters
[out]Toproduct of inv(Ti1) and Ti2 FRAME
[in]Ti11st frame FRAME
[in]Ti22nd frame FRAME

◆ mul_invT_T_invT()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::mul_invT_T_invT ( FRAME To,
FRAME Ti1,
FRAME Ti2,
FRAME Ti3 
)
static

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

Parameters
[out]Toproduct of inv(Ti1) and Ti2 and inv(Ti3) FRAME
[in]Ti11st frame FRAME
[in]Ti22nd frame FRAME
[in]Ti33rd frame FRAME

◆ mul_invT_T_T()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::mul_invT_T_T ( FRAME To,
FRAME Ti1,
FRAME Ti2,
FRAME Ti3 
)
static

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

Parameters
[out]Toproduct of inv(Ti1) and Ti2 and Ti3 FRAME
[in]Ti11st frame FRAME
[in]Ti22nd frame FRAME
[in]Ti33rd frame FRAME

◆ mul_R_pos()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::mul_R_pos ( float *  po,
FRAME R,
float *  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 DIM
A frame FRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]poposition product of R and pi DIM
[in]R3x3 orientation frame FRAME
[in]piposition DIM

◆ mul_R_R()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::mul_R_R ( FRAME Ro,
FRAME Ri1,
FRAME Ri2 
)
static

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

Parameters
[out]Roproduct of Ri1 and Ri2 FRAME
[in]Ri11st frame orientation FRAME
[in]Ri22nd frame orientation FRAME

◆ mul_T_invT()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::mul_T_invT ( FRAME To,
FRAME Ti1,
FRAME Ti2 
)
static

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

Parameters
[out]Toproduct of Ti1 and inv(Ti2) FRAME
[in]Ti11st frame FRAME
[in]Ti22nd frame FRAME

◆ mul_T_invT_invT()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::mul_T_invT_invT ( FRAME To,
FRAME Ti1,
FRAME Ti2,
FRAME Ti3 
)
static

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

Parameters
[out]Toproduct of Ti1 and inv(Ti2) and inv(Ti3) FRAME
[in]Ti11st frame FRAME
[in]Ti22nd frame FRAME
[in]Ti33rd frame FRAME

◆ mul_T_invT_T()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::mul_T_invT_T ( FRAME To,
FRAME Ti1,
FRAME Ti2,
FRAME Ti3 
)
static

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

Parameters
[out]Toproduct of Ti1 and inv(Ti2) and Ti3 FRAME
[in]Ti11st frame FRAME
[in]Ti22nd frame FRAME
[in]Ti33rd frame FRAME

◆ mul_T_pos()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::mul_T_pos ( float *  po,
FRAME T,
float *  pi 
)
static

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

Parameters
[out]poposition product of T and pi DIM
[in]Tframe FRAME
[in]piposition DIM

◆ mul_T_T()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::mul_T_T ( FRAME To,
FRAME Ti1,
FRAME Ti2 
)
static

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

Parameters
[out]Toproduct of Ti1 and Ti2 FRAME
[in]Ti11st frame FRAME
[in]Ti22nd frame FRAME

◆ mul_T_T_invT()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::mul_T_T_invT ( FRAME To,
FRAME Ti1,
FRAME Ti2,
FRAME Ti3 
)
static

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

Parameters
[out]Toproduct of Ti1 and Ti2 and inv(Ti3) FRAME
[in]Ti11st frame FRAME
[in]Ti22nd frame FRAME
[in]Ti33rd frame FRAME

◆ mul_T_T_T()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::mul_T_T_T ( FRAME To,
FRAME Ti1,
FRAME Ti2,
FRAME Ti3 
)
static

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

Parameters
[out]Toproduct of Ti1 and Ti2 and Ti3 FRAME
[in]Ti11st frame FRAME
[in]Ti22nd frame FRAME
[in]Ti33rd frame FRAME

◆ parser_calc()

static ER_DllExport double ER_CAPI_SYS_MATHEMATICS::parser_calc ( char *  str,
int *  error 
)
static

Formel parser calculation
Remarks
call inq_errorflg() to get parser error.

Parameters
[in]strformular
[out]errorflag, 0-Ok, 1-Error
Return values
resultcalculated parser result

◆ rob_kin_atan2()

static ER_DllExport double ER_CAPI_SYS_MATHEMATICS::rob_kin_atan2 ( double  y,
double  x 
)
static

Calculates math function atan2
If x=y=0, this function return 0.

Parameters
[in]y
[in]x
Return values
atan2

◆ rob_kin_frame_ident()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::rob_kin_frame_ident ( frame T)
static

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

Parameters
[in,out]Tframe identity FRAME

◆ rob_kin_R_mal_R()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::rob_kin_R_mal_R ( frame Ti1,
frame Ti2 
)
static

Orientation multiplication of two homogeneous 4x4 transformation matrices.
Ri1 = Ri1 * Ri2
Remarks
same as incr_R() with res=1
A frame FRAME is a homogeneous 4x4 transformation matrix.

Parameters
[in,out]Ti1product of Ti1 and Ti2 FRAME
[in]Ti22nd frame FRAME

◆ rob_kin_rot()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::rob_kin_rot ( int  rotation_idx,
double  q,
frame T 
)
static

Set orientation of homogeneous 4x4 transformation matrix.
T = f(q,rotation_idx)
The rotation index rotation_idx, is one of
ROT_IDENT = default, ROT_X, ROT_Y or ROT_Z
A frame FRAME is a homogeneous 4x4 transformation matrix.

Parameters
[out]Tframe FRAME
[in]qrotation angle [rad]
[in]rotation_idxrotation index

◆ rob_kin_rot_xyz()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::rob_kin_rot_xyz ( frame T,
float  Rx,
float  Ry,
float  Rz 
)
static

Converts an euler represented rotation index ROT_XYZ into a frame.
Rotation angle Rx, Ry, Rz are converted into a frame T
A frame FRAME is a homogeneous 4x4 transformation matrix.
Remarks
Use rob_kin_trans() to set the position.

Parameters
[out]Thomegeneous matrix FRAME
[in]Rxrotation angle about X axis in [rad]
[in]Ryrotation angle about Y axis in [rad]
[in]Rzrotation angle about Z axis in [rad]

◆ rob_kin_T_mal_T()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::rob_kin_T_mal_T ( frame Ti1,
frame Ti2 
)
static

Multiplication of two homogeneous 4x4 transformation matrices.
Ti1 = Ti1 * Ti2
Remarks
same as incr_T() with res=1
A frame FRAME is a homogeneous 4x4 transformation matrix.

Parameters
[in,out]Ti1product of Ti1 and Ti2 FRAME
[in]Ti22nd frame FRAME

◆ rob_kin_trans()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::rob_kin_trans ( frame T,
double  x,
double  y,
double  z 
)
static

Converts a position into a frame.
Location x, y, z are converted into a frame T , T->p = [x,y,z]
A frame FRAME is a homogeneous 4x4 transformation matrix.
Remarks
Use rob_kin_rot_xyz() to set the orientation.

Parameters
[out]Thomegeneous matrix FRAME
[in]xX position
[in]yY position
[in]zZ position

◆ sasa()

static ER_DllExport float ER_CAPI_SYS_MATHEMATICS::sasa ( float  s1,
float  beta,
float  s2 
)
static

Triangle calculation, calculates the angle at side s2
Remarks
See EASY-ROB-ERPL-eng.pdf "parser functions".

Parameters
[in]s1side
[in]betaangle between s1 and s2, [rad]
[in]s2side
Return values
angleat side s2

◆ sass()

static ER_DllExport float ER_CAPI_SYS_MATHEMATICS::sass ( float  s1,
float  beta,
float  s2 
)
static

Triangle calculation, calculates the opposite site of angle beta
Using cosine rule c^2 = a^2 + b^2 - 2ab*cos(beta)
Remarks
See EASY-ROB-ERPL-eng.pdf "parser functions".

Parameters
[in]s1side
[in]betaangle between s1 and s2, [rad]
[in]s2side
Return values
s3opposite site of angle beta

◆ sasssa()

static ER_DllExport float ER_CAPI_SYS_MATHEMATICS::sasssa ( float  s1,
float  beta,
float  s2,
float  s3,
float  s4 
)
static

Quadrangle calculation, calculates angle between s2 of s3
Remarks
See EASY-ROB-ERPL-eng.pdf "parser functions".

Parameters
[in]s1side
[in]betaangle between s1 and s2
[in]s2side
[in]s3side
[in]s4side
Return values
anglebetween s2 of s3

◆ sasssa2()

static ER_DllExport float ER_CAPI_SYS_MATHEMATICS::sasssa2 ( float  s1,
float  beta,
float  s2,
float  s3,
float  s4 
)
static

Quadrangle calculation, calculates angle between s3 of s4
Remarks
See EASY-ROB-ERPL-eng.pdf "parser functions".

Parameters
[in]s1side
[in]betaangle between s1 and s2
[in]s2side
[in]s3side
[in]s4side
Return values
anglebetween s3 of s4

◆ sssa()

static ER_DllExport float ER_CAPI_SYS_MATHEMATICS::sssa ( float  s1,
float  s2,
float  s3 
)
static

Triangle calculation, calculates angle opposite of s1
Remarks
See EASY-ROB-ERPL-eng.pdf "parser functions".

Parameters
[in]s1side
[in]s2side
[in]s3side
Return values
angleopposite of s1

◆ vec_to_frame()

static ER_DllExport void ER_CAPI_SYS_MATHEMATICS::vec_to_frame ( float *  vec,
frame T 
)
static

Converts an euler vector with ROT_XYZ representation into a frame.
Vector vec is converted into a frame T
A frame FRAME is a homogeneous 4x4 transformation matrix.
See also frame_to_vec()

Parameters
[in]vecvector, max size is DOF6
[out]Thomegeneous matrix FRAME
Return values
0- OK
1- Error

◆ vec_to_frame_idx()

static ER_DllExport int ER_CAPI_SYS_MATHEMATICS::vec_to_frame_idx ( float *  vec,
frame T,
int  rotation_idx 
)
static

Converts an euler vector or quaternion into a frame.
Vector vec is converted into a frame T
A frame FRAME is a homogeneous 4x4 transformation matrix.
Depending on the rotation index rotation_idx, which is one of
ROT_XYZ = RotX * RotY' * RotZ'' default,
ROT_XYZ, ROT_ZYX, ROT_YXZ, ROT_ZYZ,ROT_XYX, ROT_RPY, ROT_QUAT, ROT_CA, ROT_ZYpZ,
ROT_Y9XZ, ROT_Z9XY, ROT_Z9XZ, ROT_Z9YX, ROT_IJK, ROT_ANGLE_1
See also frame_to_vec_idx()

Parameters
[in]vecvector (euler, quaternion), max size is DOF6 or DOF_QUAT for ROT_QUAT
[out]Thomegeneous matrix FRAME
[in]rotation_idxrotation index
Return values
0- OK
1- Error, invalid rotation idx

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