You're reading the documentation for an older, but still supported version (1.33.4).
For information on the latest version, please have a look at 1.33.5.

get_current_rotm

This function returns the rotation matrix of the current tool orientation in the BASE coordinate system (eTargetRef = COORDINATE_SYSTEM_BASE, the default) or, with monitoring version 1, in the WORLD coordinate system.

Definition
DRFLEx.h within class CDRFLEx, public section

float (*get_current_rotm(COORDINATE_SYSTEM eTargetRef = COORDINATE_SYSTEM_BASE))[3] {
    return _get_current_rotm(_rbtCtrl, eTargetRef);
};

Parameter

Parameter Name

Data Type

Default Value

Description

eTargetRef

COORDINATE_SYSTEM

COORDINATE_SYSTEM_BASE

Reference coordinate system for which the rotation matrix is calculated. Currently, only COORDINATE_SYSTEM_BASE and COORDINATE_SYSTEM_WORLD are supported, and COORDINATE_SYSTEM_WORLD requires setup_monitoring_version(1). To get the TCP orientation in another coordinate system, use get_current_posx(eTargetRef).

Return

Value

Description

float[3][3]

3×3 Rotation matrix representing the tool’s current orientation relative to the coordinate system selected by eTargetRef.

Caution

The function does not refuse other eTargetRef values. With monitoring version 0 it ignores eTargetRef and returns the BASE matrix. With monitoring version 1 it returns the WORLD matrix for every value other than COORDINATE_SYSTEM_BASE.

Example

float (*result)[3] = drfl.get_current_rotm();
for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        printf("%f ", result[i][j]);
    }
    printf("\n");
}

In this example, the rotation matrix of the tool is printed. Each element result[i][j] represents the orientation component of the tool flange with respect to the BASE coordinate system. This is especially useful for applications requiring orientation control, such as force alignment, compliance, or visual servoing.