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

set_accx_rt

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

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

bool set_accx_rt(float fTransAcc, float fRotationAcc = -10000) {
    return _set_accx_rt(_rbtCtrlUDP, fTransAcc, fRotationAcc);
};

매개변수

매개변수 이름

자료형

기본값

설명

fTransAcc

float

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

fRotationAcc

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 fTransAcc = 100.0f;      // 선가속도 [mm/s²]
float fRotationAcc = 50.0f;    // 회전 가속도 [deg/s²]

// 실시간 서보 제어에 전역 가속도 한계 적용
if (drfl.set_accx_rt(fTransAcc, fRotationAcc))
    printf("Task-space acceleration limits set successfully.\n");
else
    printf("Failed to apply task acceleration limits.\n");

drfl.disconnect_rt_control();

이 예제는 전역 작업 공간 가속도 한계를 병진 100 mm/s², 회전 50 deg/s²로 설정해 실시간 제어에서 모션이 안정되도록 합니다.

팁

  • 직교 좌표 제어에서 동적 거동을 일관되게 유지하려면 set_velx_rt와 함께 사용하세요.

  • 모션 블렌딩 중 과도한 가속이나 오버슈트를 막으려면 실시간 서보 명령을 시작하기 전에 한계를 정의하는 것을 권장합니다.