기능
로봇제어기에서 로봇을 현재 관절위치에서 목표 관절위치까지 이동시키기 위한 함수이다.
인수
|
인수명 |
자료형 |
기본값 |
설명 |
|---|---|---|---|
|
fTargetPos |
float[6] |
- |
6개 축에 대한 목표 관절 위치 |
|
fTargetVel |
float |
- |
속도 |
|
fTargetAcc |
float |
- |
가속도 |
|
fTargetTime |
float |
0.f |
도달 시간 [sec] |
|
eMoveMode |
enum.MOVE_MODE |
MOVE_MODE_ ABSOLUTE |
상수 및 열거형 정의 참조 |
|
fBlendingRadius |
float |
0.f |
blending시 radius |
|
eBlendingType |
enum.BLENDING_SPEED_TYPE |
BLENDING_SPEED_ TYPE_DUPLICATE |
상수 및 열거형 정의 참조 |
-
fTargetTime 지정 시, fTargetVel, fTargetAcc 를 무시하고 fTargetTime 기준으로 처리됩니다.
eBlendingType이 BLENDING_SPEED_TYPE_DUPLICATE이고 fBlendingRadius 가 0보다 큰 조건으로 후속 모션이 블렌딩 될 경우 선행모션의 잔여거리, 속도, 가속도로 결정되는 잔여모션시간이 후행모션의 모션시간보다 큰 경우 후행모션이 먼저 종료된 후 선행모션이 종료될 수 있습니다. 관련한 사항은 아래 이미지를 잠고하십시오.
리턴
|
값 |
설명 |
|---|---|
|
0 |
오류 |
|
1 |
성공 |
예제
C++
// CASE 1
float q0[6] = { 0, 0, 90, 0, 90, 0 };
float jvel=10;
float jacc=20;
drfl.movej(q0, jvel, jacc);
# 속도 10(deg/sec), 가속도 20(deg/sec2)로 q0 관절각으로 이동
// CASE 2
float q0[6] = { 0, 0, 90, 0, 90, 0 };
float jTime=5;
drfl.movej(q0, 0, 0, jTime)
# q0 관절각까지 5초의 도착시간을 가지고 이동
// CASE 3
float q0[6] = { 0, 0, 90, 0, 90, 0 };
float q1[6] = {90, 0, 90, 0, 90, 0 };
float jvel=10;
float jacc=20;
float blending_radius=50;
drfl.movej(q0, jvel, jacc, 0, MOVE_MODE_ABSOLUTE, blending_radius);
// q0 관절각으로 이동하며 q0 관절각과 일치하는 위치로부터 50mm의 거리
// 가 될 때 다음 모션을 수행하도록 설정
drfl.movej(q1, jvel, jacc, 0, MOVE_MODE_ABSOLUTE, 0, BLENDING_SPEED_TYPE_DUPLICATE));
// 직전모션과 Blending되어 q1 관절각으로 이동