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

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) 자동 작업 흐름에서 갑작스럽거나 위험한 힘이 가해지는 것을 막을 수 있습니다.