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

MOVE_MODE

MOVE_MODE_ABSOLUTE

이동 모드(절대/상대)를 정합니다.

eMoveReference

MOVE_REFERENCE

MOVE_REFERENCE_BASE

기준 좌표계(Reference Coordinate System)입니다.

eVelOpt

SPLINE_VELOCITY_OPTION

SPLINE_VELOCITY_OPTION_DEFAULT

스플라인 모션의 속도 블렌딩 방식을 정합니다.

주의

이 함수는 처음 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() 함수와 연동되지 않습니다.