hold2run
hold2run은 하트비트 방식의 실행 허가 명령입니다. 앞서 시작한 hold2run 모션은 이 명령을 주기적으로 받는 동안에만 계속됩니다. hold2run이 500 ms 넘게 오지 않으면 컨트롤러가 모션을 급정지(Quick Stop)로 멈춥니다(홈 이동과 사용자 홈 이동도 멈춥니다). hold2run은 500 ms보다 충분히 짧은 간격으로 보내세요.
정의
DRFLEx.h, CDRFLEx 클래스의 public 섹션
bool hold2run() { return _hold2run(_rbtCtrl); };
매개변수
없음
반환값
값 |
유형 |
설명 |
|---|---|---|
True |
bool |
성공 — hold2run 모션이 계속되었습니다. |
예제
float target_pos[6] = {0, 0, 90, 0, 90, 0};
float vel[6] = {30.0, 30.0, 30.0, 30.0, 30.0, 30.0};
float acc[6] = {60.0, 60.0, 60.0, 60.0, 60.0, 60.0};
drfl.movej_h2r(target_pos, vel, acc); // hold2run 모션 시작
bool target_reached = false; // 직접 구현한 위치 확인 로직으로 설정
while (!target_reached) {
drfl.hold2run();
std::this_thread::sleep_for(std::chrono::milliseconds(100));
// 여기에서 추가 처리를 할 수 있습니다
}
hold2run은 새 모션 궤적(Trajectory)을 만들지 않습니다. 대신 컨트롤러에 실행 허가를 주는 하트비트 신호 역할을 합니다. 컨트롤러는 설정된 제한 시간 안에 유효한 하트비트를 받는 동안에만 기존 hold2run 모션을 계속 실행합니다.