이전 버전(1.33.4)의 문서를 보고 있습니다. 이 버전은 계속 지원됩니다.
최신 버전 정보는 1.33.5에서 확인하세요.

amovejx (자동 모드)

이 함수는 관절 형상(Solution Space) 번호를 추가로 지정해 조인트 공간(Joint Space) 모션을 실행합니다. 같은 직교 좌표 목표에 서로 다른 역기구학 해로 도달할 수 있습니다. 같은 TCP 위치에 대해 유효한 조인트 형상이 여러 개인 로봇에 특히 유용합니다.

정의(모든 축에 같은 속도/가속도)
DRFLEx.h, CDRFLEx 클래스의 public 섹션

bool amovejx(float fTargetPos[NUM_JOINT],
             unsigned char iSolutionSpace,
             float fTargetVel,
             float fTargetAcc,
             float fTargetTime = 0.f,
             MOVE_MODE eMoveMode = MOVE_MODE_ABSOLUTE,
             MOVE_REFERENCE eMoveReference = MOVE_REFERENCE_BASE,
             BLENDING_SPEED_TYPE eBlendingType = BLENDING_SPEED_TYPE_DUPLICATE) {
    return _amovejx(_rbtCtrl, fTargetPos, iSolutionSpace, fTargetVel,
                    fTargetAcc, fTargetTime, eMoveMode, eMoveReference, eBlendingType);
};

매개변수

매개변수 이름

자료형

기본값

설명

fTargetPos

float[6]

로봇의 6개 축 각각의 목표 조인트 위치입니다.

iSolutionSpace

unsigned char

역기구학(Inverse Kinematics)의 관절 형상 번호를 지정합니다.
같은 직교 좌표 목표에 도달할 때 어떤 조인트 형상을 선택할지 결정합니다.

fTargetVel

float

모든 축에 똑같이 적용하는 조인트 속도 [deg/s]입니다.

fTargetAcc

float

모든 축에 똑같이 적용하는 조인트 가속도 [deg/s2]입니다.

fTargetTime

float

0.f

모션 완료 시간 [sec]입니다. 지정하면 속도와 가속도는 무시됩니다.

eMoveMode

MOVE_MODE

MOVE_MODE_ABSOLUTE

절대 모드로 이동할지 상대 모드로 이동할지 지정합니다.

eMoveReference

MOVE_REFERENCE

MOVE_REFERENCE_BASE

모션의 기준 좌표계(BASE 또는 TOOL)입니다.

eBlendingType

BLENDING_SPEED_TYPE

BLENDING_SPEED_TYPE_DUPLICATE

다음 모션과의 블렌딩 방식을 결정합니다.


정의(조인트별 속도/가속도)
DRFLEx.h, CDRFLEx 클래스의 public 섹션

bool amovejx(float fTargetPos[NUM_JOINT],
             unsigned char iSolutionSpace,
             float fTargetVel[NUM_JOINT],
             float fTargetAcc[NUM_JOINT],
             float fTargetTime = 0.f,
             MOVE_MODE eMoveMode = MOVE_MODE_ABSOLUTE,
             MOVE_REFERENCE eMoveReference = MOVE_REFERENCE_BASE,
             BLENDING_SPEED_TYPE eBlendingType = BLENDING_SPEED_TYPE_DUPLICATE) {
    return _amovejx_ex(_rbtCtrl, fTargetPos, iSolutionSpace, fTargetVel,
                       fTargetAcc, fTargetTime, eMoveMode, eMoveReference, eBlendingType);
};

이 오버로드는 조인트 축마다 속도와 가속도 제한을 따로 지정할 수 있습니다. 내부적으로 _amovejx 대신 _amovejx_ex를 호출합니다.

매개변수

매개변수 이름

자료형

기본값

설명

fTargetPos

float[6]

로봇의 6개 축 각각의 목표 조인트 위치입니다.

iSolutionSpace

unsigned char

역기구학(Inverse Kinematics)의 관절 형상 번호를 지정합니다.
같은 직교 좌표 목표에 도달할 때 어떤 조인트 형상을 선택할지 결정합니다.

fTargetVel

float[6]

조인트 축별 속도 제한 [deg/s]입니다.

fTargetAcc

float[6]

조인트 축별 가속도 제한 [deg/s2]입니다.

fTargetTime

float

0.f

모션 완료 시간 [sec]입니다. 지정하면 속도와 가속도는 무시됩니다.

eMoveMode

MOVE_MODE

MOVE_MODE_ABSOLUTE

절대 모드로 이동할지 상대 모드로 이동할지 지정합니다.

eMoveReference

MOVE_REFERENCE

MOVE_REFERENCE_BASE

모션의 기준 좌표계(BASE 또는 TOOL)입니다.

eBlendingType

BLENDING_SPEED_TYPE

BLENDING_SPEED_TYPE_DUPLICATE

다음 모션과의 블렌딩 방식을 결정합니다.

참고

  • iSolutionSpace 매개변수는 같은 직교 좌표 포즈에 도달하는 여러 유효한 조인트 공간 해 가운데 특정 기구학 형상을 지정합니다. 이 값으로 로봇 팔의 자세(예: 엘보 업/엘보 다운)를 제어할 수 있습니다.

  • fTargetTime을 지정하면 fTargetVel과 fTargetAcc는 무시됩니다.

  • 블렌딩(eBlendingType)을 사용하면 연속된 amovejx나 movej 모션을 부드럽게 연결할 수 있습니다.

반환값

값

설명

0

오류

1

성공

참고

로봇이 STATE_EMERGENCY_STOP, STATE_SAFE_OFF, STATE_SAFE_OFF2, STATE_SAFE_STOP, STATE_SAFE_STOP2 상태이면 메시지 없이 false를 반환합니다.

예제

// CASE 1 — 특정 관절 형상(solution space)으로 이동(예: elbow-up)
float q1[6] = { 0, -30, 60, 0, 90, 0 };
unsigned char sol_space = 1;   // 관절 형상 인덱스 선택
float jVel = 30;               // 조인트 속도[deg/sec]
float jAcc = 60;               // 조인트 가속도[deg/sec²]
drfl.amovejx(q1, sol_space, jVel, jAcc);
// 관절 형상 1을 사용해 목표 조인트 위치로 이동합니다.

// CASE 2 — 같은 목표를 다른 형상으로 이동하는 시간 기반 동작
float q2[6] = { 0, -60, 120, 0, 90, 0 };
unsigned char sol_alt = 2;     // 다른 기구학 형상
float move_time = 5.0f;
drfl.amovejx(q2, sol_alt, 0.f, 0.f, move_time);
// 관절 형상 2로 5초 동안 목표로 이동합니다.

// CASE 3 — 두 형상 사이의 블렌딩 전환
float q3[6] = { 0, -45, 90, 0, 90, 0 };
drfl.amovejx(q1, sol_space, jVel, jAcc, 0, MOVE_MODE_ABSOLUTE, MOVE_REFERENCE_BASE, BLENDING_SPEED_TYPE_DUPLICATE);
drfl.amovejx(q3, sol_alt, jVel, jAcc);
// 블렌딩으로 두 동작 경로 사이를 부드럽게 전환합니다.

이 예제는 여러 해를 활용한 조인트 모션 제어를 보여 줍니다. 자동 모드에서 자세를 바꾸거나 기구학 형상 사이를 부드럽게 전환할 수 있습니다.