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

get_current_rotm (Manual Mode)

This section explains how to use get_current_rotm to check the real-time orientation matrix (3×3) of the robot’s TCP during manual teaching. It is often used when verifying that the tool remains level, perpendicular, or aligned to a specific surface.

Typical usage

  • Observe and confirm tool orientation stability during surface approach.

  • Record orientation data for user-defined coordinate systems.

  • Detect unwanted rotation drift during long manual adjustments.

Note

  • The matrix corresponds to the selected reference frame (BASE, TOOL, WORLD).

  • Ideal for GUI-based orientation visualization or motion logging.

  • Can be called repeatedly for live visualization (~10–20 Hz).

Example: Checking TCP Orientation Stability While Jogging

#include "DRFLEx.h"
#include <thread>
using namespace DRAFramework;

int main() {
    CDRFLEx drfl;

    // Step 1: Start a small manual jog in Y direction
    drfl.jog(JOG_AXIS_TASK_Y, MOVE_REFERENCE_BASE, 10.0f);
    std::this_thread::sleep_for(std::chrono::milliseconds(500));
    drfl.stop(STOP_TYPE_SLOW);
    drfl.mwait();

    // Step 2: Retrieve the current rotation matrix
    float (*R)[3] = drfl.get_current_rotm(COORDINATE_SYSTEM_BASE);

    // Step 3: Display orientation matrix
    printf("[Current Rotation Matrix - BASE]\n");
    for (int i = 0; i < 3; ++i)
        printf("% .3f % .3f % .3f\n", R[i][0], R[i][1], R[i][2]);

    return 0;
}

Tips

  • Use to confirm the TCP remains parallel to the work surface during manual adjustment.

  • Combine with get_current_posx for full 6D pose monitoring.

  • Valuable for orientation validation before saving a new teaching point.