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.

set_robot_mode (Manual Mode)

This section explains how to use set_robot_mode during Manual (Teach) operations. This function switches the robot controller between Manual (Teach) and Automatic (Run) modes.

It is essential for managing when operators can safely jog, teach, or execute DRL programs.

Typical usage

  • Switch to Manual Mode before performing teaching, jogging, or calibration.

  • Change to Automatic Mode when executing a saved DRL program or remote control sequence.

  • Verify mode transition logic between external systems (e.g., PLC ↔ controller) for safety compliance.

  • Use in initialization routines to ensure the robot is in the correct mode before commanding motion.

Note

  • Certain operations (e.g., motion, speed change) are restricted based on the active mode.

  • Some controllers may require physical switch confirmation for safety (e.g., TP key or panel input).

Example: Switch robot to Manual mode before jogging

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

int main()
{
    CDRFLEx drfl;

    // Preconditions:
    // - Connection established (open_connection)
    // - Safety interlocks and servo power ready

    cout << "[Mode] Requesting switch to MANUAL mode...\n";
    if (drfl.set_robot_mode(ROBOT_MODE_MANUAL))
        cout << "[Mode] Successfully switched to MANUAL mode.\n";
    else
        cout << "[Mode] Failed to switch mode. Check TP or safety key.\n";

    // Simulate manual jogging operation
    float qTarget[6] = {0, -30, 90, 0, 90, 0};
    drfl.movej(qTarget, 30, 30);
    this_thread::sleep_for(chrono::seconds(2));

    cout << "[Mode] Switching to AUTO mode for program execution...\n";
    drfl.set_robot_mode(ROBOT_MODE_AUTO);

    return 0;
}

Tips

  • Always confirm Manual Mode is active before enabling jog or teach functions.

  • Use get_robot_mode to verify the current mode after switching.

  • Combine with set_robot_system to coordinate mode and system-level changes.

  • In hybrid systems, mode transitions should be logged to ensure traceability and operator safety.