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

set_auto_safety_move_stop

이 함수는 안전 이벤트가 발생할 때의 자동 모션 정지 동작을 활성화하거나 비활성화합니다. 이 옵션을 활성화하면 충돌, 안전 구역(Safety Zone) 침범 등 안전 관련 이벤트가 발생할 때 별도의 정지 명령 없이 로봇이 자동으로 모션을 멈춥니다.

이 기능은 협동 로봇이나 팔레타이징 로봇처럼 예기치 않은 접촉이나 영역 진입 시 로봇 모션을 즉시 중단해야 하는 애플리케이션에 유용합니다.

정의
DRFLEx.h, CDRFLEx 클래스의 public 섹션

bool set_auto_safety_move_stop(bool bFuncEnable)
{
    return _set_auto_safety_move_stop(_rbtCtrl, bFuncEnable);
};

매개변수

매개변수 이름

자료형

기본값

설명

bFuncEnable

bool

자동 모션 정지 활성화 옵션
true (1): 안전 이벤트 시 자동 정지 활성화
false (0): 비활성화(수동 정지 제어만 사용)

반환값

값

설명

0

오류 — 설정을 적용하지 못함

1

성공 — 자동 정지 모드를 적용함

예제

// 안전 이벤트 발생 시 자동 모션 정지 활성화
Drfl.set_auto_safety_move_stop(true);

// 충돌 민감도 조정(선택 사항)
// 값이 작을수록 작은 충격에도 민감하게 반응합니다
Drfl.change_collision_sensitivity(20.0f);

// 모션 명령 실행(예: MoveJ)
// 안전 이벤트가 발생하면 로봇이 자동으로 정지합니다
float targetPos[6] = {700, 0, 300, 180, 0, 180};
float v[2] = {60, 60};
float a[2] = {60, 60};
// Drfl.movej(targetPos, v, a); // 예시 모션(의사 코드)

// 5초 동안 모션 과정 시뮬레이션
std::this_thread::sleep_for(std::chrono::seconds(5));

// 작업이 끝나면 자동 모션 정지 비활성화
Drfl.set_auto_safety_move_stop(false);

이 예제는 자동 모션 정지 기능을 활성화하고, 충돌 민감도(Collision Sensitivity)를 조정한 상태로 모션을 실행한 다음, 모션이 끝나면 기능을 비활성화합니다. 충돌이나 안전 구역 감지 같은 안전 이벤트가 발생하면 추가 명령 없이 로봇이 자동으로 멈춥니다.