최신 버전 정보는 1.33.5에서 확인하세요.
set_desired_force (수동 모드)
이 절에서는 수동(교시) 작업 중에 set_desired_force로 특정 축을 따라 목표 힘이나 토크를 가하는 방법을 설명합니다. 이 함수는 지정한 시간 동안 현재 힘 값에서 목표 힘 값으로 선형 전환하므로, 힘 제어(Force Control)를 제어된 방식으로 안정적으로 활성화할 수 있습니다.
이 함수는 주로 누르기, 접촉 테스트, 표면 정렬, 조립 캘리브레이션 중에 순응 제어의 안전성을 유지하면서 정밀한 힘을 가할 때 사용합니다.
일반적인 사용법
로봇이 순응 제어 모드일 때 하나 이상의 축에 정의한 힘이나 토크를 가합니다.
수동 교시 중 압입, 밀기, 유지 작업을 합니다.
task_compliance_ctrl과 함께 사용해 외력(External Force) 아래에서도 안정적으로 동작하게 합니다.
방향 마스크로 선택한 축만 제어합니다(예: Z 방향으로만 힘 적용).
참고
힘 방향과 기준 좌표계는
eForceReference(TOOL 또는 BASE)에 따라 정해집니다.
예제: Z축을 따라 아래 방향으로 20 N의 힘 적용
// 사전 조건:
// - 연결됨
// - 서보 온
// - 수동(교시) 모드 활성
// 1) 기본 강성으로 순응 모드 활성화
float stiff[6] = {3000.f, 3000.f, 3000.f, 200.f, 200.f, 200.f};
drfl.task_compliance_ctrl(stiff, COORDINATE_SYSTEM_TOOL, 0.0f);
// 2) 목표 힘 정의(Z 방향으로만 누름)
float fTarget[6] = {0.f, 0.f, 20.f, 0.f, 0.f, 0.f}; // +Z 방향으로 20 N 누름
unsigned char dir[6] = {0, 0, 1, 0, 0, 0}; // Z축만 제어
// 3) 0.3초에 걸쳐 목표 힘을 부드럽게 적용
drfl.set_desired_force(fTarget, dir, COORDINATE_SYSTEM_TOOL, 0.3f, FORCE_MODE_ABSOLUTE);
// ... 힘 제어 상태에서 수동 누르기 또는 캘리브레이션 수행 ...
// 4) 힘을 해제하고 일반 제어로 복귀
drfl.release_force(0.2f);
drfl.release_compliance_ctrl();
이 예제에서 로봇은 순응 제어(Compliance Control) 모드를 활성화하고, TOOL Z축을 따라 아래 방향으로 +20 N의 힘을 0.3 s 동안 가한 다음, 힘 제어와 순응 제어를 모두 해제해 부드럽게 복귀합니다. 이 방법으로 수동 힘 교시 중 안정적으로 접촉하고 안전하게 떨어질 수 있습니다.
팁
안정적으로 접촉하려면 중간 정도의 강성(Stiffness) 값(1000–3000 N/m)으로 시작하세요.
방향 마스크로 제어를 관련 축으로 제한하세요.
엔드 이펙터 방향에 맞춘 힘에는
COORDINATE_SYSTEM_TOOL을 사용하는 것을 권장합니다.release_compliance_ctrl로 순응 제어를 끝내기 전에 항상 release_force를 호출하세요.
힘을 서서히(0.2–0.5 s) 적용하면 교시 중 힘이 갑작스럽거나 위험하게 가해지는 것을 막을 수 있습니다.