release_force (Auto Mode)

This section explains how to use release_force during Auto (Run) operations to safely reduce or remove applied force control. It gradually decreases the current target force to zero over a defined transition time, then restores the robot to standard adaptive position control mode.

This function is typically used after executing a constant or directional force command via set_desired_force to ensure smooth and stable recovery in automated processes.

Typical usage

  • Smoothly release the currently applied force or torque after automated pressing, insertion, or contact tasks.

  • Prevent sudden motion or vibration when switching from force control to position control in automated workflows.

  • Integrate into automated processes where force-controlled actions are followed by position-controlled tasks.

  • Combine with release_compliance_ctrl to fully disengage both force and compliance control in automation.

Note

  • Recommended range: 0.3–0.5 seconds for smooth transitions in automated cycles.

  • Should be called before releasing compliance control or starting new motion commands in automated operations.

Example: Gradual Force Release After Automated Insertion Task

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

int main() {
    CDRFLEx drfl;

    // Preconditions:
    // - Connection established
    // - Auto mode active
    // - Servo ON and force control available

    // 1) Set reference coordinate to TOOL
    drfl.set_ref_coord(COORDINATE_SYSTEM_TOOL);

    // 2) Move to initial pose
    float q0[6] = {0.0f, 0.0f, 90.0f, 0.0f, 90.0f, 0.0f};
    drfl.movej(q0, 60, 30);
    drfl.mwait();

    // 3) Apply compliance control
    float stiff[6] = {1000.f, 500.f, 500.f, 100.f, 100.f, 100.f};
    drfl.task_compliance_ctrl(stiff);

    // 4) Apply downward force (+Z) of 15 N
    float fTarget[6] = {0.f, 0.f, 15.f, 0.f, 0.f, 0.f};
    unsigned char dir[6] = {0, 0, 1, 0, 0, 0};
    drfl.set_desired_force(fTarget, dir, COORDINATE_SYSTEM_TOOL, 0.3f);

    // 5) Gradually release the applied force over 0.4 seconds
    drfl.release_force(0.4f);

    // 6) Disable compliance control and return to position control
    drfl.release_compliance_ctrl();

    return 0;
}

In this example, the robot applies a 15 N force along the TOOL’s +Z axis, then reduces it gradually over 0.4 seconds using release_force(). This ensures stable detachment from the contact surface and safe transition back to position control in automated operations.

Tips

  • Always use release_force() before calling release_compliance_ctrl.

  • Apply short transition times (0.3–0.5 s) for smooth force decay in automated tasks.

  • Check for unexpected external loads before releasing the force.

  • Combine with set_desired_force for full force-control cycles in automated workflows.

  • Useful for automated press-fit, surface contact, or insertion operations with controlled disengagement.