CDRFLEx.movesj
기능
로봇 제어기에서 로봇을 현재 위치에서 관절공간의 경유점들을 거쳐 목표위치(마지막 경유점)까지 연결되는 스플라인 곡선경로를 따라 이동시키기 위한 함수이다. 입력된 속도/가속도는 경로 중 최대 속도/가속도를 의미하며 입력되는 경유점의 위치에 따라 모션 중의 감속 또는 가속이 결정된다.
인수
인수명 | 자료형 | 기본값 | 설명 |
---|---|---|---|
fTargetPos | Float[MAX_SPLINE_POINT][6] | - | 최대 100개까지의 경유점 리스트 |
nPosCount | unsigned char | - | 유효 경유점 개수 |
fTargetVel | float/float[6] | - | 속도 |
fTargetAcc | float/float[6] | - | 가속도 |
fTargetTime | float | 0.f | 도달 시간 [sec] |
eMoveMode | enum.MOVE_MODE | MOVE_MODE_ ABSOLUTE | 상수 및 열거형 정의 참조 |
알아두기
- fTargetTime 을 지정할 경우 fTargetVel, fTargetAcc 를 무시하고 fTargetTime 기준으로 처리됩니다.
- eMoveMode 가 MOVE_MODE_RELATIVE 인 경우 position list의 각 pos는 앞 선 pos에 대한 상대좌표로 정의됩니다. (position list=[q1, q2, ...,q(n-1), q(n)]로 이루어질 때 q1은 시작점 대비 상대각도, q(n)은 q(n-1) 대비 상대좌표)
- 선행모션과 후행모션에 대한 온라인 블렌딩은 지원하지 않습니다.
리턴
값 | 설명 |
---|---|
0 | 오류 |
1 | 성공 |
예제
// CASE 1 : 절대각도 입력 (mod=MOVE_MODE_ABSOLUTE)
float jpos[4][6];
float jvel=10;
float jacc=10;
int jposNum = 4;
jpos[0][0]=0; jpos[0][1]=0; jpos[0][2]=-30; jpos[0][3]=0; jpos[0][4]=-30; jpos[0][5]=0;
jpos[1][0]=90; jpos[1][1]=0; jpos[1][2]=0; jpos[1][3]=0; jpos[1][4]=0; jpos[1][5]=0;
jpos[2][0]=0; jpos[2][1]=0; jpos[2][2]=-30; jpos[2][3]=0; jpos[2][4]=-30; jpos[2][5]=0;
jpos[3][0]=-90; jpos[3][1]=0; jpos[3][2]=0; jpos[3][3]=0; jpos[3][4]=0; jpos[3][5] = 0;
drfl.movesj(jpos, jposNum, jvel, jacc);
// jpos에 정의된 절대경유점 집합을 연결하는 스플라인 곡선을 최대속도
// 10(deg/sec), 최대가속도 10(deg/sec2)로 움직임
// CASE 2 : 상대각도 입력 (mod=MOVE_MODE_RELATIVE)
float jpos[4][6];
float jvel=10;
float jacc=10;
int jposNum = 4;
jpos[0][0]=0; jpos[0][1]=0; jpos[0][2]=-30; jpos[0][3]=0; jpos[0][4]=-30; jpos[0][5]=0;
// 시작위치 + jpos[0]
jpos[1][0]=90; jpos[1][1]=0; jpos[1][2]=30; jpos[1][3]=0; jpos[1][4]=30; jpos[1][5]=0;
// 시작위치 + jpos[0] + jpos[1]
jpos[2][0]=-90; jpos[2][1]=0; jpos[2][2]=-30; jpos[2][3]=0; jpos[2][4]=-30; jpos[2][5]=0;
// 시작위치 + jpos[0] + jpos[1] + jpos[2]
jpos [3][0]=-90; jpos [3][1]=0; jpos[3][2]=30; jpos[3][3]=0; jpos[3][4]=30; jpos[3][5]=0;
// 시작위치 + jpos[0] + jpos[1] + jpos[2] + jpos[3]
drfl.movesj(jpos, jposNum, jvel, jacc, time, MOVE_MODE_RELATIVE);
// jpos에 정의된 상대경유점 집합을 연결하는 스플라인 곡선을 최대속도
// 10(deg/sec), 최대가속도 10(deg/sec2)로 움직임