set_tool (수동 모드)

이 절에서는 수동 모드에서 set_tool로 미리 정의한 툴 설정을 활성화하는 방법을 설명합니다. 활성 툴은 로봇의 페이로드, 무게 중심(Center of Gravity), 모션 동작을 결정하므로 작업 공간(Task Space)을 정확하게 제어하고 자동화 작업을 안전하게 하는 데 꼭 필요합니다.

이 함수는 add_tool로 미리 등록한 툴 정의를 선택합니다.

수동 모드에서 사용할 수 있습니다. 다른 모드에서는 함수가 false를 반환하고 this command can only be used in manual mode. please change to manual mode as robot mode를 출력합니다. 모드는 get_robot_mode가 반환하는 값으로 확인합니다.

주의

실제 로봇에서는 로봇이 움직이는 동안 안전 보드도 이 호출을 거부합니다. 이때 모션은 급정지(Quick Stop)하고, 실행 중인 프로그램은 정지합니다.

일반적인 사용법

  • 여러 엔드 이펙터(예: 그리퍼, 스크루드라이버, 프로브)를 전환합니다.

  • 픽 앤 플레이스 시퀀스를 위해 자동 모드로 전환하기 전에 올바른 툴을 활성화합니다.

  • 동역학과 힘 제어(Force Control) 성능을 일관되게 유지합니다.

  • 여러 종류의 툴을 사용하는 레시피에서 툴 설정을 검증합니다.

참고

  • 심볼은 add_tool로 등록한 툴 이름과 일치해야 합니다.

  • 모션 중에 툴을 바꾸는 것은 권장하지 않습니다. 안전한 포즈에서 전환하세요.

  • 활성 툴은 페이로드, CoG, 힘/토크 추정에 영향을 줍니다.

예제: 모션 전에 툴 선택하기

// 미리 정의한 툴 설정 활성화
if (!drfl.set_tool("RG2_GRIPPER")) {
    printf("Failed to activate tool RG2_GRIPPER.\n");
    return -1;
}

// 다음 모션에서 이 툴 사용
float pickPose[6] = {300.f, 200.f, 250.f, 180.f, 0.f, 0.f};
float vel[2] = {100.f, 50.f}, acc[2] = {300.f, 100.f};
drfl.movel(pickPose, vel, acc);

이 예제는 로봇이 툴 설정을 선택한 뒤, 선택한 툴의 속성을 사용해 이동합니다.

팁

  • 툴 심볼은 컨트롤러 설정과 정확히 일치시키세요.

  • 자동화 워크플로에서 툴 종류를 전환할 때 이 함수를 사용하세요.

  • 현재 활성화된 툴은 get_tool()로 확인하세요.