release_compliance_ctrl (수동 모드)

이 절에서는 수동(교시) 작업 중에 release_compliance_ctrl로 순응 제어(Compliance Control)를 종료하고 로봇을 일반 위치 제어 모드(Position Control Mode)로 되돌리는 방법을 설명합니다. 주로 교시 중 핸드가이딩, 힘 조정 정렬, 순응 상호작용 작업을 마친 후 사용합니다.

일반적인 사용법

  • 교시나 캘리브레이션 후 순응 제어 모드나 힘 제어 모드(Force Control Mode)를 종료합니다.

  • 이후 조그나 모션 명령을 위해 위치 제어를 복원합니다.

  • 순응 제어를 해제한 후 로봇의 현재 포즈를 유지합니다.

  • 표면 정렬이나 조립 맞춤 같은 수동 접촉 작업을 안전하게 마무리합니다.

참고

  • 순응 제어나 힘 제어(Force Control) 작업 후 위치 제어로 돌아갈 때 사용하세요.

  • 해제하면 로봇은 표준 모션 모드에서 현재 위치를 유지합니다.

예제: 순응 제어 조정 후 위치 제어 복원

// 사전 조건:
// - 연결됨, 서보 온
// - 수동(교시) 모드 활성

// 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 stiffBase[6] = {3000.f, 3000.f, 3000.f, 200.f, 200.f, 200.f};
drfl.task_compliance_ctrl(stiffBase, COORDINATE_SYSTEM_TOOL, 0.0f);

// 3) 강성 값 조정
float stiffAdj[6] = {1000.f, 1500.f, 2000.f, 150.f, 150.f, 150.f};
drfl.set_stiffnessx(stiffAdj, COORDINATE_SYSTEM_TOOL, 0.5f);

// 4) 순응 제어를 종료하고 위치 제어로 복귀
if (drfl.release_compliance_ctrl())
    printf("Compliance control released — robot now under position control.\n");
else
    printf("Failed to release compliance control.\n");

이 예제는 먼저 강성(Stiffness) 조정을 위해 순응 제어를 활성화한 다음, 해제해 위치 제어 동작을 재개합니다. 순응 제어 모드가 종료되면 로봇은 현재 포즈를 유지합니다.

팁

  • 이 함수는 항상 순응 제어나 힘 제어 작업을 마친 후 호출하세요.

  • 새 모션이나 교시 순서를 시작하기 전에 사용하세요.

  • 순응 제어를 다시 활성화하려면 task_compliance_ctrl을 다시 호출하세요.

  • set_stiffnessx와 함께 사용하면 강성을 매끄럽게 전환할 수 있습니다.

  • 갑작스러운 움직임을 막으려면 해제하기 전에 로봇이 정지해 있는지 확인하세요.