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

movej (자동 모드)

이 함수는 로봇을 현재 조인트 위치에서 목표 조인트 위치로 이동합니다.

movej

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

// 모션 제어: 조인트 이동
bool movej(float fTargetPos[NUM_JOINT],
           float fTargetVel,
           float fTargetAcc,
           float fTargetTime = 0.f,
           MOVE_MODE eMoveMode = MOVE_MODE_ABSOLUTE,
           float fBlendingRadius = 0.f,
           BLENDING_SPEED_TYPE eBlendingType = BLENDING_SPEED_TYPE_DUPLICATE) {
    return _movej(_rbtCtrl, fTargetPos, fTargetVel, fTargetAcc,
                  fTargetTime, eMoveMode, fBlendingRadius, eBlendingType);
};

매개변수

매개변수 이름

자료형

기본값

설명

fTargetPos

float[6]

6개 축의 목표 조인트 위치

fTargetVel

float

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

fTargetAcc

float

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

fTargetTime

float

0.f

도달 시간 [sec]

eMoveMode

MOVE_MODE

MOVE_MODE_ABSOLUTE

열거형 정의를 참고하세요

fBlendingRadius

float

0.f

블렌딩 반경 [mm]

eBlendingType

BLENDING_SPEED_TYPE

BLENDING_SPEED_TYPE_DUPLICATE

열거형 정의를 참고하세요


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

bool movej(float fTargetPos[NUM_JOINT],
           float fTargetVel[NUM_JOINT],
           float fTargetAcc[NUM_JOINT],
           float fTargetTime = 0.f,
           MOVE_MODE eMoveMode = MOVE_MODE_ABSOLUTE,
           float fBlendingRadius = 0.f,
           BLENDING_SPEED_TYPE eBlendingType = BLENDING_SPEED_TYPE_DUPLICATE) {
    return _movej_ex(_rbtCtrl, fTargetPos, fTargetVel, fTargetAcc,
                     fTargetTime, eMoveMode, fBlendingRadius, eBlendingType);
};

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

매개변수

매개변수 이름

자료형

기본값

설명

fTargetPos

float[6]

6개 축의 목표 조인트 위치

fTargetVel

float[6]

조인트 축별 속도 제한 [deg/s]

fTargetAcc

float[6]

조인트 축별 가속도 제한 [deg/s2]

fTargetTime

float

0.f

도달 시간 [sec]

eMoveMode

MOVE_MODE

MOVE_MODE_ABSOLUTE

열거형 정의를 참고하세요

fBlendingRadius

float

0.f

블렌딩 반경 [mm]

eBlendingType

BLENDING_SPEED_TYPE

BLENDING_SPEED_TYPE_DUPLICATE

열거형 정의를 참고하세요

참고

  • fTargetTime을 지정하면 fTargetVel과 fTargetAcc를 무시하고 fTargetTime을 기준으로 모션을 실행합니다.

    movej_overview2

주의

다음 모션을 eBlendingType이 BLENDING_SPEED_TYPE_DUPLICATE이고 fBlendingRadius > 0인 조건으로 블렌딩할 때, 이전 모션의 남은 모션 시간(이전 모션의 남은 거리, 속도, 가속도로 결정)이 다음 모션의 모션 시간보다 길면 이전 모션이 다음 모션보다 늦게 끝날 수 있습니다.

반환값

값

설명

0

오류

1

성공

참고

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

예제

// 사례 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 조인트 각도로 이동합니다.

// 사례 2
float q0r[6] = { 0, 0, 90, 0, 90, 0 };
float jTime = 5;
drfl.movej(q0r, 0.f, 0.f, jTime);
// 도달 시간 5초로 q0 조인트 각도로 이동합니다.

// 사례 3
float q0b[6] = { 0, 0, 90, 0, 90, 0 };
float q1b[6] = { 90, 0, 90, 0, 90, 0 };
float jVelb = 10;
float jAccb = 20;
float blending_radius = 50;
drfl.movej(q0b, jVelb, jAccb, 0, MOVE_MODE_ABSOLUTE, blending_radius);
// q0 조인트 각도로 이동하며, q0 조인트 각도에 해당하는 위치로부터의
// 거리가 50 mm가 되면 다음 동작을 실행하도록 설정합니다.
drfl.movej(q1b, jVelb, jAccb, 0, MOVE_MODE_ABSOLUTE, 0, BLENDING_SPEED_TYPE_DUPLICATE);
// 이전 동작과 블렌딩하여 q1 조인트 각도로 이동합니다.

이 예제는 시간 기준 조인트 모션과 속도/가속도 기준 조인트 모션, 그리고 블렌딩 반경과 DUPLICATE 블렌딩으로 두 구간을 부드럽게 연결하는 시퀀스를 보여 줍니다.