move_home
이 함수는 로봇 컨트롤러 내부 또는 외부 오류로 로봇의 축이 틀어지거나 어긋났을 때 로봇의 각 축을 홈 위치로 정렬합니다. 기구적 홈 상태를 복원해 이후 모션 명령을 위해 모든 축을 맞춥니다.
정의
DRFLEx.h, CDRFLEx 클래스의 public 섹션
bool move_home(MOVE_HOME eMode = MOVE_HOME_MECHANIC, unsigned char bRun = (unsigned)1) {
return _move_home(_rbtCtrl, eMode, bRun);
};
매개변수
매개변수 이름 |
자료형 |
기본값 |
설명 |
|---|---|---|---|
eMode |
MOVE_HOME_MECHANIC |
원점 복귀(Homing) 모드를 지정합니다. |
|
bRun |
unsigned char |
1 |
모션 실행 플래그 |
반환값
값 |
설명 |
|---|---|
0 |
오류 |
1 |
성공 |
참고
로봇이 STATE_EMERGENCY_STOP, STATE_SAFE_OFF, STATE_SAFE_OFF2, STATE_SAFE_STOP, STATE_SAFE_STOP2 상태이면 메시지 없이 false를 반환합니다.
예제
// 1) 원점 복귀 모션을 실행해 모든 축을 기계적으로 재정렬
drfl.move_home(MOVE_HOME_MECHANIC, (unsigned char)1);
std::this_thread::sleep_for(std::chrono::seconds(8)); // 모션 중 대기
// 2) 필요하면 원점 복귀 모션을 중간에 정지
drfl.move_home(MOVE_HOME_MECHANIC, (unsigned char)0);
// 3) 원점 복귀가 완료되고 안정된 후에만 작업 재개
drfl.mwait(); // 원점 복귀가 완료될 때까지 대기
float q_next[6] = {0, -30, 90, 0, 90, 0};
drfl.movej(q_next, 50.f, 50.f); // 새 동작 시작
이 예제는 일반적인 원점 복귀 절차를 보여 줍니다.
로봇이 MOVE_HOME_MECHANIC으로 기구적 정렬을 모두 수행하고, 필요하면 도중에 멈춘 다음, 원점 복귀가 끝나면 정상 모션을 재개합니다.
원점 복귀 후에는 mwait()나 get_robot_state()를 호출해 모션 완료와 상태 안정을 확인하는 것을 권장합니다.