is_done_bolt_tightening
이 함수는 지정한 축의 체결 토크를 확인해, 주어진 제한 시간 안에 정의한 목표 토크에 도달하면 True를 반환합니다. 제한 시간 안에 목표 토크에 도달하지 못하면 False를 반환합니다.
정의
DRFLEx.h, CDRFLEx 클래스의 public 섹션
bool is_done_bolt_tightening(FORCE_AXIS eForceAxis, float fTargetTor = 0.f, float fTimeout = 0.f)
{
return _is_done_bolt_tightening(_rbtCtrl, eForceAxis, fTargetTor, fTimeout);
};
매개변수
이름 |
자료형 |
기본값 |
설명 |
|---|---|---|---|
|
토크를 확인할 축(예: |
||
|
|
0.0 |
체결 완료를 판단하는 목표 토크 값 [N·m]입니다. |
|
|
0.0 |
타임아웃 시간[sec]입니다. 0이면 호출이 즉시 실패하므로 허용할 수 있는 가장 긴 체결 시간으로 설정하세요. |
반환값
값 |
설명 |
|---|---|
|
체결 완료 — 제한 시간 안에 목표 토크에 도달했습니다. |
|
목표 토크에 도달하기 전에 제한 시간이 지났습니다. |
예제 A — 수동 모드(교시 중 토크 검증)
// 사전 조건:
// - 연결됨, 서보 온, 수동(교시) 모드
// - 툴 토크 센서 활성화 및 캘리브레이션 완료
// 1) 시작 위치로 이동
float q0[6] = {0.0f, 0.0f, 90.0f, 0.0f, 90.0f, 0.0f};
drfl.movej(q0, 40.f, 40.f);
drfl.mwait();
// 2) 토크 기반 작업을 위해 순응 제어 활성화
float stiff[6] = {3000.f, 3000.f, 2000.f, 200.f, 200.f, 200.f};
drfl.task_compliance_ctrl(stiff, COORDINATE_SYSTEM_TOOL);
// 3) 체결 토크 감시(예: Z축, 10 N·m, 5초)
bool result = drfl.is_done_bolt_tightening(FORCE_AXIS_Z, 10.0f, 5.0f);
if (result)
printf("Tightening complete — target torque achieved.\n");
else
printf("Timeout — target torque not reached.\n");
drfl.release_compliance_ctrl();
예제 B — 자동 모드(토크 제어 조립 공정)
// 사전 조건:
// - 자동 모드 활성
// - 토크 피드백 기능이 있는 툴 장착
// 1) 볼트 위치로 이동
float p_target[NUM_TASK] = {550.f, 150.f, 120.f, 180.f, 0.f, 0.f};
float vel[2] = {80.f, 25.f}, acc[2] = {300.f, 120.f};
drfl.movel(p_target, vel, acc);
drfl.mwait();
// 2) 토크를 가하기 위해 순응 제어 활성화
float stiff[NUM_TASK] = {2500.f, 2500.f, 1500.f, 150.f, 150.f, 150.f};
drfl.task_compliance_ctrl(stiff, COORDINATE_SYSTEM_TOOL, 0.1f);
// 3) 접촉을 유지하도록 작은 힘 적용
float fTarget[NUM_TASK] = {0.f, 0.f, 15.f, 0.f, 0.f, 0.f};
unsigned char dir[6] = {0, 0, 1, 0, 0, 0};
drfl.set_desired_force(fTarget, dir, COORDINATE_SYSTEM_TOOL, 0.3f);
// 4) 토크 상승 감시(4초 이내 8 N·m에서 완료)
bool bTightened = drfl.is_done_bolt_tightening(FORCE_AXIS_Z, 8.0f, 4.0f);
if (bTightened)
printf("Bolt tightening successful — target torque reached.\n");
else
printf("Bolt tightening timeout — check tool or torque setting.\n");
// 5) 제어 해제
drfl.release_force(0.3f);
drfl.release_compliance_ctrl();
참고 사항 및 모범 사례
토크를 확인하기 전에 항상 힘/순응 제어(Compliance Control)가 활성화되어 있는지 확인하세요.
툴의 토크 센서가 캘리브레이션되어 정상 동작하는지 확인하세요.
자동 모드에서는 공정 사이클이 오래 멈추지 않도록 적절한 제한 시간을 설정하세요.
더 안전하고 유연한 토크 기반 자동화 작업 흐름을 만들려면 check_force_condition이나 release_force와 함께 사용하세요.
여러 축을 쓰는 조립이나 압입 작업에서는 X/Y축 모션을 제한하면서 Z축 토크를 확인하세요.