For information on the latest version, please have a look at GL013301.
release_force (Manual Mode)
This section explains how to use release_force during Manual (Teach) 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.
Typical usage
Smoothly release the currently applied force or torque after pressing, insertion, or contact operations.
Prevent abrupt motion or vibration when switching from force control to position control.
Integrate into teaching workflows where force-assisted tasks are followed by manual adjustment or position holding.
Combine with release_compliance_ctrl to fully disengage both force and compliance control.
Note
Recommended range: 0.3–0.5 seconds for smooth transitions.
Should be called before releasing compliance control or starting new motion commands.
Example: Gradual Force Release After Pressing Task
#include "DRFLEx.h"
#include <cstdio>
using namespace DRAFramework;
int main() {
CDRFLEx drfl;
// Preconditions:
// - Robot connected, servo ON
// - Manual (Teach) mode active
// - Force control available and calibrated
// 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) Activate compliance mode
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) Smoothly release the applied force over 0.4 seconds
drfl.release_force(0.4f);
// 6) Disable compliance control and return to standard position mode
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.
Tips
Always use
release_force()before calling release_compliance_ctrl.Apply short transition times (0.3–0.5 s) for smooth force decay.
Check for unexpected external loads before releasing the force.
Combine with set_desired_force for full force-control cycles.
Useful for teaching press-fit, surface contact, or insertion operations with controlled disengagement.