movesx_g (자동 모드)
이 함수는 여러 TCP 경유점(Waypoint)을 지나는 직교 좌표 스플라인 모션을 실행해, 직교 좌표 공간에서 부드럽고 연속적인 궤적(Trajectory)을 만듭니다.
이 API는 자동(실행) 모드에서만 동작합니다. 수동(교시) 모드에서는 사용할 수 없습니다.
정의
DRFLEx.h, CDRFLEx 클래스의 public 섹션
bool movesx_g(float fTargetPos[MAX_SPLINE_POINT][NUM_TASK],
unsigned char nPosCount,
float fTargetVel[2],
float fTargetAcc[2],
float fTargetTime = 0.f,
MOVE_MODE eMoveMode = MOVE_MODE_ABSOLUTE,
MOVE_REFERENCE eMoveReference = MOVE_REFERENCE_BASE,
SPLINE_VELOCITY_OPTION eVelOpt = SPLINE_VELOCITY_OPTION_DEFAULT)
{
return _movesx_g(_rbtCtrl, fTargetPos, nPosCount, fTargetVel, fTargetAcc, fTargetTime, eMoveMode, eMoveReference, eVelOpt);
}
매개변수
매개변수 이름 |
자료형 |
기본값 |
설명 |
|---|---|---|---|
fTargetPos |
float[MAX_SPLINE_POINT][6] |
직교 좌표 경유점 목록 [X, Y, Z, Rx, Ry, Rz]입니다. Rx, Ry, Rz는 고정 X-Y-Z 각도(deg)입니다. |
|
nPosCount |
unsigned char |
경유점 수(최대 = MAX_SPLINE_POINT)입니다. |
|
fTargetVel |
float[2] |
병진 속도와 회전 속도 제한입니다. |
|
fTargetAcc |
float[2] |
병진 가속도와 회전 가속도 제한입니다. |
|
fTargetTime |
float |
0.0f |
스플라인 모션 전체 시간 [sec]입니다. |
eMoveMode |
|
이동 모드(절대/상대)를 정합니다. |
|
eMoveReference |
|
기준 좌표계(Reference Coordinate System)입니다. |
|
eVelOpt |
|
스플라인 모션의 속도 블렌딩 방식을 정합니다. |
주의
이 함수는 처음 nPosCount개 경유점의 Rx, Ry, Rz를 ZYZ 오일러 각(Euler Angles)으로 변환해 fTargetPos[i][3]~fTargetPos[i][5]에 다시 씁니다. 호출할 때마다 경유점을 새로 복사해 전달하세요. 같은 배열을 다시 사용하면 각도가 한 번 더 변환됩니다.
반환값
값 |
설명 |
|---|---|
0 |
실패 |
1 |
성공 |
예제
// 직교 좌표 스플라인 경로 정의
float path[3][6] = {
{400.f, 100.f, 200.f, 180.f, 0.f, 0.f},
{420.f, 120.f, 180.f, 180.f, 10.f, 0.f},
{440.f, 140.f, 160.f, 180.f, 20.f, 0.f}
};
float vel[2] = {200.f, 100.f};
float acc[2] = {300.f, 150.f};
drfl.movesx_g(path, 3, vel, acc, 2.5f);
참고
movesx_g는 경유점 사이를 스플라인으로 블렌딩해 부드러운 TCP 궤적을 만듭니다.속도, 가속도, 기준 좌표계 설정으로 유연하게 제어할 수 있습니다.
물리적 한계에 도달하면 블렌딩을 자동으로 조정합니다.
정밀 경로 실행, 윤곽 추종, 표면 스캔 작업에 사용하세요.
force/stiffness control이나change_operation_speed()함수와 연동되지 않습니다.