최신 버전 정보는 1.33.5에서 확인하세요.
servol (자동 모드)
이 함수는 비동기 모션 명령이므로, 모션이 시작되면 곧바로 다음 명령을 실행합니다. 연속된 명령 가운데 가장 최근의 목표 위치를 최대 속도와 가속도 범위 안에서 따라갑니다. 조인트 공간(Joint Space)에서 동작하는 servoj와 달리 servol은 작업(직교 좌표) 공간에서 모션을 실행합니다.
이 API는 자동(실행) 모드에서만 동작합니다. 수동(교시) 모드에서는 사용할 수 없습니다.
정의
DRFLEx.h, CDRFLEx 클래스의 public 섹션
bool servol(float fTargetPos[NUM_TASK],
float fLimitVel[2],
float fLimitAcc[2],
float fTargetTime)
{
return _servol(_rbtCtrl, fTargetPos, fLimitVel, fLimitAcc, fTargetTime);
}
매개변수
매개변수 이름 |
자료형 |
기본값 |
설명 |
|---|---|---|---|
fTargetPos |
float[6] |
6개 축의 목표 TCP 위치 [X, Y, Z, Rx, Ry, Rz]입니다. |
|
fLimitVel |
float[2] |
병진 속도와 회전 속도 제한입니다. |
|
fLimitAcc |
float[2] |
병진 가속도와 회전 가속도 제한입니다. |
|
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 q0[6] = {368.f, 34.5f, 442.f, 50.f, -180.f, 50.f};
float jvel[2] = {10.f, 10.f};
float jacc[2] = {20.f, 20.f};
// 직교 좌표 동작 실행
drfl.servol(q0, jvel, jacc, -10000.f);
참고
fTargetTime을 지정했지만 속도나 가속도 제한 때문에 유지할 수 없으면 컨트롤러가 모션 시간을 자동으로 조정하고 알림 메시지를 표시합니다.servol은 속도 조정 함수change_operation_speed와 연동되지 않습니다.특이점(Singularity) 옵션 중
DR_VAR_VEL(가변 속도) 모드를 사용하면 자동으로DR_AVOID모드로 바뀌고 경고 메시지가 표시됩니다.servol은 힘/강성(Stiffness) 제어 명령과 연동되지 않습니다.자동 운전에서 부드러운 직교 좌표 보간과 실시간 목표 갱신에 사용합니다.