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

task_compliance_ctrl (수동 모드)

이 절에서는 수동(교시) 작업 중에 task_compliance_ctrl로 직교 좌표 순응 제어(Compliance Control)를 활성화하는 방법을 설명합니다. 이 함수는 이동 축과 회전 축의 강성(Stiffness)을 조정해 로봇 암을 안전하게 안내할 수 있게 하므로, 핸드가이딩, 삽입, 표면 추종 동작을 부드럽게 할 수 있습니다.

순응 제어에서 가장 기본이 되는 API 중 하나입니다. 로봇이 외력(External Force)에 반응하는 방식을 조절해 사람과 로봇이 안전하게 상호작용하게 합니다.

일반적인 사용법

  • 순응 제어 모드를 활성화해 핸드가이딩이나 힘 보조 정렬을 할 수 있게 합니다.

  • 표면 추종, 조립 맞춤, 시연 교시(PbD)를 합니다.

  • 부드러운 접촉과 안전한 물리적 안내를 위해 강성을 낮춥니다.

  • set_desired_force와 함께 사용해 힘-순응 하이브리드 제어를 합니다.

  • 수동 정렬이 끝나면 release_compliance_ctrl로 순응 제어를 종료합니다.

참고

  • 툴 방향에 맞춘 순응 제어에는 COORDINATE_SYSTEM_TOOL을, 전역 강성 제어에는 BASE를 사용하세요.

  • 성공하면 1, 실패하면 0을 반환합니다.

예제: 핸드가이딩을 위한 직교 좌표 순응 제어 활성화

// 사전 조건:
// - 로봇 연결 및 서보 온
// - 수동(교시) 모드 활성
// - 작업자가 로봇을 손으로 안내할 준비 완료

// 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 stiffness[6] = {3000.f, 3000.f, 3000.f, 200.f, 200.f, 200.f};

// 3) TOOL 좌표계에서 직교 좌표 순응 제어 활성화
if (drfl.task_compliance_ctrl(stiffness, COORDINATE_SYSTEM_TOOL, 0.3f))
    printf("Compliance mode enabled. Robot is now compliant.\n");
else {
    printf("Failed to activate compliance control.\n");
    return -1;
}

// (이제 로봇을 안전하게 핸드가이딩할 수 있습니다.)
printf("You can manually guide the robot arm.\n");

// 4) 순응 제어를 종료하고 위치 모드로 복귀
drfl.release_compliance_ctrl();
printf("Compliance control released.\n");

이 예제에서 로봇은 안전한 포즈로 이동한 다음, 중간 정도의 강성 값으로 직교 좌표 순응 제어를 활성화합니다. 순응 제어가 활성화된 동안 로봇 암은 유연해져 작업자가 손으로 안내하거나 조정할 수 있습니다. 작업이 끝나면 release_compliance_ctrl()이 일반 위치 제어를 복원합니다.

팁

  • 핸드가이딩 권장 강성: 1000–3000 N/m

  • 대부분의 정렬과 삽입 작업에는 TOOL 좌표계를 사용하세요.

  • 갑작스러운 움직임을 막으려면 강성을 서서히(0.2–0.5 s) 전환하세요.

  • 새 모션 명령을 실행하기 전에 항상 순응 제어를 해제하세요.

  • set_stiffnessx와 함께 사용해 수동 교시나 캘리브레이션 중 순응 동작을 미세 조정하세요.