release_compliance_ctrl
이 함수는 활성화된 순응 제어(Compliance Control) 모드를 끝내고, 현재 위치를 유지한 채 로봇을 일반 위치 제어로 되돌립니다.
정의
DRFLEx.h, CDRFLEx 클래스의 public 섹션
bool release_compliance_ctrl() {
return _release_compliance_ctrl(_rbtCtrl);
};
매개변수
없음
반환값
값 |
설명 |
|---|---|
0 |
실패 |
1 |
성공 |
참고
open_connection에 전달한 주소가 정확히 “127.0.0.1”이면 task_compliance_ctrl, set_stiffnessx, release_compliance_ctrl, set_desired_force, release_force는 컨트롤러에 명령을 보내지 않고 true를 반환합니다.
예제 A — 수동 모드(핸드가이딩 또는 정렬 종료)
// 사전 조건:
// - 연결됨, 서보 온
// - 수동(교시) 모드 활성
// 1) 초기 포즈로 이동
float q0[6] = {0.0f, 0.0f, 90.0f, 0.0f, 90.0f, 0.0f};
drfl.movej(q0, 60, 30);
drfl.mwait();
// 2) 핸드가이딩을 위해 순응 제어 활성화
float stiff[6] = {2500.f, 2500.f, 2500.f, 150.f, 150.f, 150.f};
drfl.task_compliance_ctrl(stiff, COORDINATE_SYSTEM_TOOL, 0.0f);
printf("Compliance active. Hand-guide the robot.\n");
// 3) 필요하면 가이딩 중 강성 조정
float adjStiff[6] = {1500.f, 1500.f, 1000.f, 100.f, 100.f, 100.f};
drfl.set_stiffnessx(adjStiff, COORDINATE_SYSTEM_TOOL, 0.4f);
// 4) 순응 제어를 해제하고 위치 제어로 복귀
if (drfl.release_compliance_ctrl())
printf("Compliance released. Robot now under position control.\n");
else
printf("Failed to release compliance control.\n");
예제 B — 자동 모드(힘 제어 작업 후)
// 사전 조건:
// - 자동 모드 활성
// - 순응 제어와 힘 제어가 이미 활성화됨
// 1) 순응 삽입 동작 실행
float fTarget[6] = {0.f, 0.f, 25.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);
float p_insert[NUM_TASK] = {550.f, 200.f, 95.f, 180.f, 0.f, 0.f};
float vel[2] = {50.f, 20.f}, acc[2] = {200.f, 80.f};
drfl.movel(p_insert, vel, acc);
drfl.mwait();
// 2) 가한 힘을 서서히 해제
drfl.release_force(0.4f);
// 3) 다음 작업을 위해 위치 제어 복원
if (drfl.release_compliance_ctrl())
printf("Compliance control successfully released.\n");
else
printf("Compliance release failed.\n");
참고 사항 및 모범 사례
힘 기반 작업이나 순응 기반 작업을 마친 후에는 항상
release_compliance_ctrl()을 호출하세요.부드럽고 안정적으로 복귀하려면
release_force() → release_compliance_ctrl()순서를 권장합니다.해제 후 로봇은 현재 포즈를 유지하고 일반 서보 위치 제어로 돌아갑니다.
순응 제어를 다시 사용하려면 새 강성(Stiffness) 매개변수로 task_compliance_ctrl을 다시 호출하세요.
자동 모드에서는 순응 제어를 해제하기 전에 set_stiffnessx로 강성을 기본 수준으로 서서히 되돌리세요.