set_on_mastering_need

이 함수는 외력(External Force)으로 로봇의 축이 틀어졌는지 자동으로 확인하는 콜백 함수를 등록합니다. 이 이벤트가 발생할 때 원하는 코드를 자동으로 실행하는 데 사용하세요.

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

void set_on_mastering_need(TOnMasteringNeedCB pCallbackFunc) {
    _set_on_mastering_need(_rbtCtrl, pCallbackFunc);
};

매개변수

매개변수 이름

자료형

기본값

설명

pCallbackFunc

TOnMasteringNeedCB

콜백 함수 정의를 참고하세요

반환값
없음

예제

std::atomic<bool> g_bNeedHoming(false);

void OnMasteringNeedCB()
{
    // 메인 루프에 원점 복귀 요청
    g_bNeedHoming = true;
}

drfl.set_on_mastering_need(OnMasteringNeedCB);

// 메인 루프: 콜백 함수 밖에서 move_home 호출
while (true) {
    if (g_bNeedHoming) {
        g_bNeedHoming = false;
        // 로봇 축 정렬을 위한 원점 복귀 모드 시작
        drfl.move_home(MOVE_HOME_MECHANIC, 1);
    }
    std::this_thread::sleep_for(std::chrono::milliseconds(100));
}

등록한 콜백은 컨트롤러가 외력으로 인한 축 틀어짐을 감지하면 자동으로 실행됩니다. 콜백이 플래그를 설정하면 메인 루프가 원점 복귀(Homing) 절차를 시작해 로봇의 모든 조인트를 다시 정렬합니다. 이렇게 위치를 바로잡은 뒤 정상 동작을 재개합니다. move_home은 콜백 밖에서 호출하세요. 콜백 함수 규칙을 참고하세요.