speedl (자동 모드)
비동기 모션 명령이므로, 모션이 시작되면 곧바로 다음 명령을 실행합니다. 이 함수는 직교 좌표 속도 제어를 하며, 연속된 명령 가운데 가장 최근의 목표 TCP(툴 중심점) 속도를 최대 속도와 가속도 제약 안에서 따라갑니다.
이 API는 자동(실행) 모드에서만 동작합니다. 수동(교시) 모드에서는 사용할 수 없습니다.
정의
DRFLEx.h, CDRFLEx 클래스의 public 섹션
bool speedl(float fTargetVel[NUM_TASK],
float fTargetAcc[2],
float fTargetTime)
{
return _speedl(_rbtCtrl, fTargetVel, fTargetAcc, fTargetTime);
}
매개변수
매개변수 이름 |
자료형 |
기본값 |
설명 |
|---|---|---|---|
fTargetVel |
float[6] |
6개 직교 좌표 축의 목표 TCP 속도 [X, Y, Z, Rx, Ry, Rz]입니다. |
|
fTargetAcc |
float[2] |
병진 가속도와 회전 가속도 [mm/s², 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[2] = {20.f, 20.f};
// TCP 속도 제어 실행
drfl.speedl(jvel, jacc, -10000.f);
참고
fTargetTime을 지정했지만 최대 속도나 가속도 조건 때문에 유지할 수 없으면 자동으로 조정되고 알림 메시지가 표시됩니다.DRCF v3.0~v3.3에서는 0.1초 안에 새 명령이 오지 않으면 알람과 함께 모션이 멈춥니다. DRCF v3.4 이상과 v2.12.x에서는
stop()이나 속도 0 명령이 올 때까지 로봇 팔이 마지막 목표 속도를 유지합니다.speedl은change_operation_speed()함수와 연동되지 않습니다.force/stiffness control명령과도 연동되지 않습니다.부드러운 직교 좌표 속도 제어, 실시간 모션 스트리밍, 외부 컨트롤러 동기화에 사용하는 것을 권장합니다.