이전 버전(1.33.4)의 문서를 보고 있습니다. 이 버전은 계속 지원됩니다.
최신 버전 정보는 1.33.5에서 확인하세요.

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로 강성을 기본 수준으로 서서히 되돌리세요.