speedj (자동 모드)

비동기 모션 명령이므로, 모션이 시작되면 곧바로 다음 명령을 실행합니다. 연속으로 전송된 명령 가운데 가장 최근의 목표 조인트 속도를, 해당 명령에 설정한 최대 속도와 가속도 범위 안에서 따라갑니다.

이 API는 자동(실행) 모드에서만 유효합니다. 수동(교시) 모드에서는 사용할 수 없습니다.

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

bool speedj(float fTargetVel[NUM_JOINT],
            float fTargetAcc[NUM_JOINT],
            float fTargetTime)
{
    return _speedj(_rbtCtrl, fTargetVel, fTargetAcc, fTargetTime);
}

매개변수

매개변수 이름

자료형

기본값

설명

fTargetVel

float[6]

6개 축의 목표 조인트 속도 [deg/s]입니다.

fTargetAcc

float[6]

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

fTargetTime

float

명령 지속 시간 [sec]입니다. 맞출 수 없으면 자동으로 조정됩니다. -10000 = 지정하지 않음이며, 컨트롤러가 자동으로 정한 값을 사용합니다.

반환값

값

설명

0

실패

1

성공

참고

로봇이 STATE_EMERGENCY_STOP, STATE_SAFE_OFF, STATE_SAFE_OFF2, STATE_SAFE_STOP, STATE_SAFE_STOP2 상태이면 메시지 없이 false를 반환합니다.

true를 반환해도 컨트롤러가 요청을 적용했다는 뜻은 아닙니다. get_current_posj, get_current_posx 또는 모니터링 데이터 콜백으로 모션을 확인하세요.

예제

// 사전 조건: 연결됨, 서보 온, 자동 모드 활성

// 조인트 속도와 가속도 정의
float jvel[6] = {10.f, 10.f, 10.f, 10.f, 10.f, 10.f};
float jacc[6] = {20.f, 20.f, 20.f, 20.f, 20.f, 20.f};

// 조인트 공간에서 속도 제어 실행
drfl.speedj(jvel, jacc, -10000.f);

참고

  • fTargetTime을 지정했지만 최대 속도나 가속도 조건 때문에 유지할 수 없으면 자동으로 조정되고 알림 메시지가 표시됩니다.

  • 서서히 정지하려면 fTargetVel = {0,0,0,0,0,0}으로 설정하거나 stop()을 호출하세요.

  • DRCF v3.0~v3.3에서는 0.1초 안에 새 명령이 오지 않으면 알람과 함께 모션이 멈춥니다. DRCF v3.4 이상과 v2.12.x에서는 stop()이나 속도 0 명령이 올 때까지 로봇 팔이 마지막 목표 속도를 유지합니다.

  • speedj는 운용 속도 조정 함수 change_operation_speed()와 연동되지 않습니다.

  • 연속 조인트 속도 제어, 궤적(Trajectory) 추종, 실시간 모션 갱신 루프에 사용하는 것을 권장합니다.