set_desired_force (자동 모드)
이 절에서는 자동(실행) 운전 중에 set_desired_force로 특정 축에 목표 힘이나 토크를 가하는 방법을 설명합니다. 이 함수는 지정한 시간 동안 현재 힘 값에서 원하는 값으로 선형 전환하므로 자동 작업에서 힘을 제어하며 가할 수 있습니다.
이 함수는 자동 공정 중의 정밀도와 안전을 위해 자동 조립, 압입, 힘 기반 삽입, 힘 피드백 작업에 주로 사용합니다.
일반적인 사용법
자동 운전 중에 하나 이상의 축에 정의한 힘이나 토크를 가합니다.
자동 운전 중에 압입, 삽입, 힘 검증 작업을 합니다.
task_compliance_ctrl과 함께 사용해 모션 중에 안정적으로 힘을 제어합니다.
방향 마스크로 선택한 축만 제어합니다(예: 조립 중 Z축 방향으로만 힘 적용).
참고
힘 방향과 기준 좌표계는
eForceReference(TOOL 또는 BASE)에 따라 정해집니다.
예제: 자동 모드에서 Z축 방향으로 20 N의 힘을 아래로 가하기
// 사전 조건:
// - 연결됨
// - 자동 모드 활성
// - 서보 온, 힘 제어 캘리브레이션 완료
// 1) 초기 포즈로 이동
float q0[6] = {0.0f, 0.0f, 90.0f, 0.0f, 90.0f, 0.0f};
drfl.movej(q0, 60, 30);
drfl.mwait();
// 2) TOOL 좌표계에서 20 N의 하향 힘(+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();
이 예제에서는 로봇이 0.3초에 걸쳐 TOOL Z축 방향 아래로 +20 N의 힘을 가합니다. 그런 다음 힘 제어와 순응 제어(Compliance Control)를 모두 해제해 위치 제어로 부드럽게 전환합니다. 이렇게 하면 자동 삽입이나 힘 기반 조립 작업에서 정밀도를 확보할 수 있습니다.
팁
안정적으로 힘을 가하려면 적당한 강성(Stiffness) 값(1000–3000 N/m)으로 시작하세요.
방향 마스크로 관련 축에만 힘을 제어하세요(예: 삽입에는 Z축).
툴 방향 힘에는
COORDINATE_SYSTEM_TOOL을, 전역 힘에는COORDINATE_SYSTEM_BASE를 사용하는 것이 좋습니다.release_compliance_ctrl로 힘 제어(Force Control)를 끝내기 전에 항상 release_force를 호출하세요.
힘을 서서히 가하면(0.2–0.5 s) 자동 작업 흐름에서 갑작스럽거나 위험한 힘이 가해지는 것을 막을 수 있습니다.