최신 버전 정보는 1.33.5에서 확인하세요.
get_workpiece_weight (자동 모드)
이 절에서는 자동(실행) 운전 중에 get_workpiece_weight로 작업물 무게를 측정하는 방법을 설명합니다. 작업물 무게는 자동 작업 중 정확한 모션 실행, 페이로드 처리, 힘/순응 동작에 꼭 필요한 값입니다.
페이로드 측정을 시작하고, 마지막 reset_workpiece_weight 호출을 기준으로 측정한 작업물 무게를 kg 단위로 반환합니다. set_workpiece_weight로 설정한 값을 반환하지 않습니다. 로봇 팔은 서보 온 상태의 STANDBY여야 합니다. 가상 로봇은 0을 반환합니다. 측정이 거부되거나 요청을 보내지 못한 경우에도 0을 반환하므로, 반환값 0만으로는 실패와 무게 0을 구분할 수 없습니다. 측정이 끝나면 이 함수가 느린 정지를 보냅니다. get_workpiece_weight를 참고하세요.
일반적인 사용법
자동 시퀀스를 실행하기 전에 페이로드를 측정합니다.
작업물 하중에 따라 힘/순응 동작을 조정합니다.
무게에 따라 다른 모션을 실행하는 등 동적 로직을 적용합니다.
작업물을 잡고 있는지 안전 검증을 합니다.
참고
호출하기 전에 서보 온 상태이고 로봇 팔이 정지해 있는지 확인하세요.
픽 앤 플레이스, 팔레타이징, 힘 제어(Force Control) 작업 전에 호출하는 것을 권장합니다.
예제: 자동 모션 전 작업물 무게 확인하기
// 현재 작업물 무게 측정
float w = drfl.get_workpiece_weight();
printf("Workpiece weight: %.3f kg\n", w);
// 자동 모드 동작 전에 페이로드 확인
if (w > 0.0f) {
float target[6] = {400.f, 100.f, 300.f, 180.f, 0.f, 0.f};
float vel[2] = {60.f, 30.f};
float acc[2] = {120.f, 60.f};
drfl.movel(target, vel, acc);
}
else {
printf("Warning: No workpiece weight measured.\n");
}
이 예제에서는 자동 모드 모션 시퀀스를 실행하기 전에 로봇이 작업물 무게를 읽고 값이 유효한지 확인합니다. 이렇게 하면 궤적(Trajectory)을 안정적으로 생성하고 작업을 안전하게 실행하는 데 도움이 됩니다.
팁
다른 부품으로 바꿀 때는 항상 페이로드 값을 확인하세요.
결과는 마지막
reset_workpiece_weight호출을 기준으로 한 값이며,set_workpiece_weight로 설정한 값이 아닙니다.힘 제어 작업과 함께 사용하면 접촉 동작이 더 정확해집니다.
자동 모드 모션 계획을 안정적으로 하려면 0이 아닌 값을 권장합니다.