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.

move_resume (Auto Mode)

This section explains how to use move_resume during Auto (Run) operations to resume a robot motion that was previously paused using move_pause.

This function continues the exact motion trajectory from the point where it was suspended, making it useful for conditional or sensor-driven workflows where motion may need to stop temporarily but not be canceled.

Typical usage

  • Resume motion after a brief inspection or vision-based alignment.

  • Continue movement once an external condition becomes valid again.

  • Restore robot motion after an operator checks the workspace.

  • Use in conjunction with asynchronous motion commands for event-driven automation.

Note

  • Ignored if there is no currently paused motion.

  • Only resumes motion; the overall DRL program continues running independently.

Example: Resuming Motion After a Conditional Pause

#include "DRFLEx.h"
using namespace DRAFramework;

int main() {
    CDRFLEx drfl;

    float target[6] = {0, 0, 90, 0, 90, 0};

    // 1) Start asynchronous motion
    drfl.amovej(target, 20, 40);

    // 2) Pause when joint 3 reaches threshold
    while (true) {
        LPPOSITION pos = drfl.get_current_pose(ROBOT_POSE_JOINT);
        if (!pos) continue;

        if (pos->_fTargetPos[2] >= 45) {
            drfl.move_pause();
            printf("Motion paused at J3 >= 45 degrees.\n");
            Sleep(3000);  // Wait three seconds
            break;
        }
    }

    // 3) Resume the paused motion
    if (!drfl.move_resume()) {
        printf("Failed to resume motion.\n");
        return -1;
    }

    printf("Motion resumed.\n");
    return 0;
}

In this example, move_resume() is used to continue a suspended trajectory after the robot was paused mid-motion based on real-time joint position feedback.

Tips

  • Always pair with move_pause for full stop/resume control.

  • Effective with asynchronous moves (amovej, amovel) in event-based sequences.

  • Ideal for workflows requiring motion interruption without canceling the path.

  • Use for inspection steps, alignment waits, or safety-aware slowdowns.