이전 버전(1.33.4)의 문서를 보고 있습니다. 이 버전은 계속 지원됩니다.
최신 버전 정보는 1.33.5에서 확인하세요.
최신 버전 정보는 1.33.5에서 확인하세요.
move_pause (자동 모드)
이 절에서는 자동(실행) 운전 중에 move_pause로 DRL 프로그램 자체는 멈추지 않고 실행 중인 로봇 모션을 일시 정지하는 방법을 설명합니다.
센서 조건, 검사 요구 사항, 외부 시스템과의 동기화에 따라 모션을 즉시 멈춰야 할 때 유용합니다.
일반적인 사용법
센서 값이 임계값에 도달하면 궤적(Trajectory) 도중에 이동을 일시 정지합니다.
비전 정렬이나 작업자 개입을 위해 모션을 잠시 멈춥니다.
비동기 이동과 함께 사용해 조건부 모션 제어를 구현합니다.
외부 이벤트에 따라 모션 시점이 정해지는 고급 자동화에 사용합니다.
참고
실행 중인 모션이 없으면 이 함수는 무시됩니다.
모션만 일시 정지합니다. DRL 프로그램 흐름은 모션이 재개되면 계속 진행됩니다.
예제: 조인트 각도가 임계값에 도달하면 모션 일시 정지하기
#include <thread>
#include <chrono>
float target[6] = {0, 0, 90, 0, 90, 0};
// 1) 비동기 조인트 동작 시작
drfl.amovej(target, 20, 40);
// 2) 동작 중 조인트 위치 감시
while (true) {
LPROBOT_POSE pose = drfl.get_current_pose(ROBOT_SPACE_JOINT);
if (!pose) continue;
// 3번 조인트가 45°를 넘으면 동작 일시 정지
if (pose->_fPosition[2] >= 45) {
drfl.move_pause();
printf("Motion paused at J3 >= 45 deg.\n");
std::this_thread::sleep_for(std::chrono::milliseconds(3000)); // 3초 대기
break;
}
}
// 3) 일시 정지한 동작 재개
drfl.move_resume();
printf("Motion resumed.\n");
이 예제에서는 로봇이 비동기 모션 중에 조인트 위치를 계속 확인합니다. 3번 조인트가 임계값에 도달하면 move_pause()로 궤적을 일시 정지하고, 잠시 후 move_resume()으로 모션을 이어 갑니다.
팁
move_resume과 함께 사용하면 정지와 재개를 동적으로 제어할 수 있습니다.
amovej,amovel같은 비동기 명령과 함께 사용할 때 가장 효과적입니다.센서 기반 모션 조정, 검사, 동기화 루틴에 적합합니다.
DRL 프로그램 전체를 멈추지 않고 모션만 일시 정지해야 할 때 유용합니다.