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

set_velx_rt

이 함수는 실시간 서보 모션 제어에서 사용하는 전역 작업 공간(Task Space) 속도 한계를 설정합니다. servol_rt, speedl_rt 같은 작업 공간 명령에 적용되는 선형 속도 한계와 회전 속도 한계를 모두 정의합니다.

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

bool set_velx_rt(float fTransVel, float fRotationVel = -10000) {
    return _set_velx_rt(_rbtCtrlUDP, fTransVel, fRotationVel);
};

매개변수

매개변수 이름

자료형

기본값

설명

fTransVel

float

작업 공간 선형 속도 한계[mm/s]입니다.

fRotationVel

float

-10000

작업 공간 회전 속도 한계[deg/s]입니다.
-10000으로 설정하면 선형 속도 한계를 바탕으로 자동 계산합니다.

참고

  • 컨트롤러는 start_rt_control로 실시간 제어(Real-time Control)를 시작한 동안에만 이 값을 적용합니다. start_rt_control 전에 보낸 명령은 무시됩니다.

  • 서보 모션 속도가 전역 작업 공간 한계를 넘으면 컨트롤러가 정보 메시지를 생성합니다.

  • 시스템은 모션을 계속하지만, 진단을 위해 이 이벤트를 기록합니다.

  • 회전 속도를 지정하지 않으면 기본값은 병진 속도에서 비례해 계산되므로 모션의 비율이 유지됩니다.

반환값

값

설명

1

명령을 보냈습니다. 컨트롤러가 명령을 받았거나 적용했다는 뜻은 아닙니다.

0

명령 데이터그램을 보내지 못했습니다.

참고

이 함수는 비동기로 동작합니다. 컨트롤러가 명령을 수락하거나 거부할 때까지 기다리지 않고 반환하므로, 반환값 1은 로봇이 명령대로 동작했다는 뜻이 아닙니다. 거부된 명령과 모션 경고 및 오류는 set_on_log_alarm으로 보고됩니다. set_on_rt_log_alarm은 RT 세션 메시지만 보고하므로 두 콜백을 모두 등록하세요.

예제

drfl.connect_rt_control("192.168.137.100", 12347);

// 컨트롤러는 실시간 제어가 시작된 동안에만 이 값을 적용합니다.
// 입력 주기 0: 이 예제는 명령을 한 번만 보내므로 입력 워치독을 사용하지 않습니다.
std::string version = "v1.0";
drfl.set_rt_control_input(version, 0.0f, 4);
drfl.set_rt_control_output(version, 0.001f, 4);
drfl.start_rt_control();

// 작업 공간 속도 한계 정의
float fTransVel = 100.0f;     // 선속도 [mm/s]
float fRotationVel = 60.0f;   // 회전 속도 [deg/s]

// 실시간 서보 모션에 작업 공간 속도 한계 적용
if (drfl.set_velx_rt(fTransVel, fRotationVel))
    printf("Global task velocity limits set successfully.\n");
else
    printf("Failed to set task velocity limits.\n");

drfl.disconnect_rt_control();

이 예제는 최대 작업 공간 속도를 병진 100 mm/s, 회전 60 deg/s로 정의해 실시간 모션을 안정적이고 안전하게 실행하도록 합니다.

팁

  • speedl_rt 또는 servol_rt 함수와 함께 사용하는 것을 권장합니다.

  • 병진 모션만 필요하면 fRotationVel = -10000으로 설정해 자동으로 비율을 맞추세요.

  • 애플리케이션의 안전 요구 사항이나 작업 영역 제약에 맞게 한계를 조정하세요.