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

set_workpiece_weight

이 함수는 현재 장착된 작업물의 무게와 무게 중심(COG)을 설정합니다. set_tool로 설정한 툴 매개변수와 작업물 자체의 무게 및 무게 중심 정보를 합쳐, 제어와 안전 계산에 쓰이는 엔드 이펙터 전체의 동역학 값을 계산합니다.

작업물 질량이 작업 중에 바뀌거나 여러 페이로드를 다루는 작업에 특히 유용합니다.

정의
DRFLEx.h, CDRFLEx 클래스의 public 섹션

bool set_workpiece_weight(
    float fWeight = 0.0,
    float fCog[3] = COG_DEFAULT,
    COG_REFERENCE eCogRef = COG_REFERENCE_TCP,
    ADD_UP eAddUp = ADD_UP_REPLACE,
    float fStartTime = -10000,
    float fTransitionTIme = -10000
) {
    return _set_workpiece_weight(_rbtCtrl, fWeight, fCog, eCogRef, eAddUp, fStartTime, fTransitionTIme);
};

주의

  • DRCF v3.3.0 및 v2.12.1 이전 펌웨어에서는 작업물 무게가 충돌 감지 해제(고우선순위) 구역에서만 적용됩니다. 무게가 0이 아닌 상태로 이 구역 밖에서 동작하면 SS1 보호 정지(Protective Stop)가 발생하고, 컨트롤러가 추가 알람을 발생시킬 수 있습니다. v3.3.0 이상 및 v2.12.1 이상에서는 이 검사가 적용되지 않습니다.

  • DRCF v3.3 이상 및 v2.12.1 이상에서는 로봇이 움직이지 않는 동안에만 컨트롤러가 새 페이로드를 적용합니다.

  • 오류로 로봇이 정지해 수동으로 복구해야 하는 경우, 복구 모드에서 로봇을 원하는 위치에 놓은 다음, 자동 모드에서 해당 구역이 활성화된 상태로 서보 온과 I/O 조작을 통해 작업물을 내려놓으세요.

  • 툴 무게를 바꾸면 작업물 무게가 0으로 초기화됩니다.

  • set_tool과 set_workpiece_weight를 연달아 호출할 때는 그 사이에 wait 함수로 transition_time 동안 대기해야 합니다. 그렇지 않으면 무게 변경 중 오류가 발생할 수 있습니다.

매개변수

매개변수 이름

자료형

기본값

설명

fWeight

float

0.0

작업물 무게(kg)

fCog

float[3]

[0, 0, 0]

작업물의 무게 중심 [x, y, z](mm)

eCogRef

COG_REFERENCE

COG_REFERENCE_TCP

무게 중심의 기준 좌표계(Reference Coordinate System)

eAddUp

ADD_UP

ADD_UP_REPLACE

작업물 정보 갱신 방식
DR_REPLACE(0): 기존 작업물 교체
DR_ADD(1): 작업물 데이터 추가
DR_REMOVE(2): 기존 작업물 제거

fStartTime

float

-10000

작업물 무게 변경을 시작하는 시간(초)입니다. -10000 = 지정하지 않음. 이 경우 컨트롤러가 자동값을 사용합니다.

fTransitionTIme

float

-10000

무게 변경을 서서히 적용하는 전환 시간(초)입니다. -10000 = 지정하지 않음. 이 경우 컨트롤러가 자동값을 사용합니다.

반환값

값

설명

0

호출이 거부되었습니다.

1

거부 응답을 받지 않았습니다. true를 반환해도 설정이 적용되었다는 뜻은 아닙니다.

예제

// 새 작업물 무게(2.5 kg)와 무게 중심 (0, 0, 50 mm) 적용
float fCog[3] = {0.f, 0.f, 50.f};
if (!drfl.set_workpiece_weight(2.5f, fCog))
    printf("set_workpiece_weight was refused.\n");

이 예제는 작업물 무게를 2.5 kg, 무게 중심을 (0, 0, 50) mm로 설정합니다.