set_accj_rt

이 함수는 실시간 조인트 명령이 사용하는 조인트 가속도를 설정합니다.

  • servoj_rt: DRCF v2에서는 로봇이 목표 위치에 도달하기 전에 다음 명령이 도착하지 않으면 이 가속도로 감속해 정지합니다. DRCF v3에서는 servoj_rt가 이 값을 사용하지 않고 안전 설정의 조인트 가속도 한계로 정지합니다. 두 버전 모두 servoj_rt 궤적(Trajectory)을 제한하지는 않습니다.

  • speedj_rt: 모션의 가속도가 이 값을 넘으면 컨트롤러가 정보 메시지를 최대 1초에 한 번 보고하며, 모션을 제한하거나 정지하지는 않습니다. 속도가 바뀌는 모든 조인트에는 0보다 큰 값이 필요하며, 그렇지 않으면 컨트롤러가 경고를 보고합니다.

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

bool set_accj_rt(float acc[NUM_JOINT]) {
    return _set_accj_rt(_rbtCtrlUDP, acc);
};

매개변수

매개변수 이름

자료형

기본값

설명

acc

float[6]

조인트 가속도 [deg/s²]입니다.

참고

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

  • DRCF v2.12.5 이상과 v3.7.0 이상에서는 안전 설정의 조인트 가속도 한계의 5배를 넘는 값을 그 값으로 낮춥니다.

  • DRCF v2에서 값이 0이면 servoj_rt는 대신 안전 설정의 조인트 가속도 한계로 정지합니다.

  • 이 값은 변경하거나 컨트롤러를 재시작할 때까지 유지됩니다. 실시간 제어 세션을 종료해도 초기화되지 않습니다.

반환값

값

설명

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();

// 조인트 가속도[deg/s²]
float acc[6] = {100.f, 100.f, 100.f, 100.f, 100.f, 100.f};

if (drfl.set_accj_rt(acc))
    printf("set_accj_rt sent.\n");
else
    printf("set_accj_rt could not be sent.\n");

drfl.disconnect_rt_control();

이 예제는 모든 조인트의 값을 100 deg/s²로 설정합니다.

팁

  • 값이 낮을수록 servoj_rt 명령이 끊겼을 때 더 길고 부드럽게 정지합니다.