add_tool

이 함수는 로봇 플랜지에 장착할 툴의 정보를 등록합니다. 툴 정보에는 이름, 무게, 무게 중심(Center of Gravity), 관성(Inertia)이 포함되며, 로봇 컨트롤러 메모리에 저장됩니다. T/P 초기화 과정을 통해 저장하고 복원하지 않으면 이 데이터는 재부팅 전까지만 유지됩니다.

수동 모드에서 사용할 수 있습니다. 다른 모드에서는 false를 반환하고 this command can only be used in manual mode. please change to manual mode as robot mode를 출력합니다. 모드는 get_robot_mode가 반환하는 값으로 확인합니다. 실제 로봇에서는 로봇이 움직이는 동안 안전 보드도 이 호출을 거부합니다. 이때 모션은 급정지(Quick Stop)로 멈추고 실행 중인 프로그램은 정지됩니다.

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

bool add_tool(string strSymbol, float fWeight, float fCog[3], float fInertia[NUM_TASK]) {
    return _add_tool(_rbtCtrl, strSymbol.c_str(), fWeight, fCog, fInertia);
};

매개변수

매개변수 이름

자료형

기본값

설명

strSymbol

string

툴 이름입니다.

fWeight

float

툴 무게(kg)입니다.

fCog

float[3]

툴의 무게 중심(mm)입니다.

fInertia

float[6]

관성 텐서 값(Ixx, Iyy, Izz, Ixy, Ixz, Iyz)입니다.

반환값

값

설명

0

오류 — 툴을 등록하지 못함

1

성공 — 툴을 메모리에 등록함

참고

이름은 32바이트로 제한되며, 더 긴 이름은 잘립니다. 이미 있는 이름을 추가하면 해당 항목을 대체하며, 그 툴(TCP)이 활성 상태이면 새 값이 즉시 적용됩니다. 컨트롤러는 툴과 TCP를 각각 최대 50개까지 저장합니다. 이를 넘어 추가하면 알람이 발생하고 실행 중인 프로그램이 정지됩니다.

예제

float fCog[3]     = {10.f, 10.f, 10.f};
float fInertia[6] = {0.f, 0.f, 0.f, 0.f, 0.f, 0.f};

// (1) 새 툴 등록
bool success = drfl.add_tool("tool#1", 5.3f, fCog, fInertia);

// (2) 활성 툴로 설정
if (success)
    drfl.set_tool("tool#1");

// (3) 툴 등록 삭제
drfl.del_tool("tool#1");

이 예제는 새 툴(“tool#1”)을 무게, 무게 중심, 관성 데이터와 함께 등록하고 활성화한 다음, 마지막으로 등록을 삭제합니다.