검출된 물체가 곧 잡을 수 있는 물체는 아니다
비전 Pick-and-Place는 물체를 관측하고 집어 지정 위치에 놓는 과정을 연결한다. 검출은 영상에서 대상의 클래스/영역을 찾는 문제이고 파지는 공구가 접근해 접촉/고정할 위치·방향과 동작을 정하는 문제다. bbox 중심은 영상 영역의 중심일 뿐 실제 물체의 질량 중심이나 손가락이 들어갈 빈 공간을 자동으로 나타내지 않는다. score도 해당 모델의 검출 점수이며 파지 성공 확률이나 안전 점수가 아니다.
파지 후보는 TCP의 위치/방향, 그리퍼 개폐·접근/후퇴 방향과 필요한 조건을 묶은 제안이다. 깊이의 유효성·표면/물체의 자세, 도달/관절 제약과 주변 공간을 확인해야 한다. 평행 손가락이라면 물체 폭뿐 아니라 손가락이 들어갈 여유·접촉 형상과 유지 조건이 필요하고, 흡착이라면 표면/밀봉·유지 관측의 계약이 다르다. 이 단위의 수치는 교육용 입력이며 실제 제품의 허용치가 아니다.
합성 후보 A는 검출 score0.95지만 중심 깊이가 결측이고, B는 score0.80/유효 깊이·지정된 파지 방향/주어진 경로 조건을 갖는다. C는 score0.85지만 접근 경로가 장애물과 충돌한다. 이 기록에서는 A/C를 높은 점수만으로 실행 후보로 승인할 수 없고 B가 추가 검토 가능한 후보가 된다. B도 물체 유지 관측 전에는 파지 성공이 아니다. 미상을 실패 확률 0으로 채우지 않는다.
핀홀 위치와 공구 목표 사이의 가정을 드러낸다
optical 카메라 C에서 +X는 오른쪽/+Y는 아래/+Z는 전방이다. 왜곡 보정된 영상의 f_x=f_y=400 pixel, 주점 (c_x,c_y)=(320,240) pixel, 관측 (u,v)=(360,240) pixel과 광축 깊이 Z=0.5 m가 주어졌다고 하자. 핀홀 역투영은 X=(u−c_x)Z/f_x, Y=(v−c_y)Z/f_y이므로 점은 p_C=(0.05,0,0.5) m다. 이 Z는 카메라 중심에서의 비스듬한 거리 range와 구별한다.
그림 M19.05-1. 각 칸은 서로 다른 역할/근거다. 아래 방향은 자료/처리의 연결이며 실제 성공을 자동으로 보장하지 않는다. 직접 제작한 개념도이며 본문의 조건과 함께 읽는다.
카메라 점을 base B로 바꾸는 회전이 단위행렬 I이고 이동 t_BC=(0.3,0.1,−0.4) m라고 주어지면 p_B=I p_C+t_BC=(0.35,0.1,0.1) m다. 이 합성 배치는 base 축이 해당 optical 축과 평행한 경우다. 일반 로봇의 몸체 축이 반드시 이와 같다고 가정하지 않는다. 취득 시각에 유효한 T_BC와 영상/깊이 대응을 사용하고, 수신 시각의 오래된 장면이나 다른 카메라 값을 섞지 않는다.
하나의 3차원 점만으로 파지 방향까지 결정할 수는 없다. 여기서는 지정된 과업이 그 점을 TCP 접촉 위치로 사용하고 base +z 위쪽에서 접근하는 고정 자세를 별도로 제공한다고 입력한다. 접근 높이 0.1 m이면 접근점은 (0.35,0.1,0.2) m다. 실제 공구 offset은 M19.01처럼 플랜지 목표에 반영하며, 이 계산을 표면 법선/전체 물체 자세를 추정한 결과로 표시하지 않는다.
평행 그리퍼 후보의 물체 폭이 30 mm, 양쪽 추가 여유가 각각 2 mm, 손가락 사이 개방 간격이 36 mm라고 하자. 단순 폭 기준은 30+2×2=34≤36 mm로 통과한다. 그러나 이 부등식은 옆 상자/손가락 두께·깊이와 물체 변형을 포함하지 않는다. 폭 기준 통과와 전체 파지/접근 유효성을 분리해야 한다. 방향을 바꾸면 투영 폭·접근 경로가 달라질 수 있으므로 같은 후보라고 보지 않는다.
실행 단계를 나누고 부착 등록을 관측과 구별한다
개념적 단계는 관측/scene 갱신→후보 생성/선택→IK·접근/이송/후퇴 경로 검토→파지점 도달/정지→그리퍼 동작→물체 유지 확인→이송/배치→해제와 최종 상태 확인이다. MoveIt Task Constructor의 공식 Pick-and-Place 자료는 접근·파지 자세/IK·scene 변경·상승·배치/후퇴 같은 단계를 연결한다. 여기서는 개념 구조를 읽으며 해당 튜토리얼을 실제 실행하지 않는다.
scene에 물체를 손에 부착했다고 등록하면 계획기는 물체가 공구와 함께 움직인다는 모형으로 후속 경로를 검사할 수 있다. 이것은 소프트웨어 안의 관계 변경이며 실제 접촉/유지를 감지했다는 뜻이 아니다. 물체를 놓은 뒤에도 해제 명령만으로 목표 위치에서 정착했다고 승인하지 않는다. 실제 관측이 없으면 유지/배치를 미상으로 기록하고 성공 분모에서 숨기지 않는다.
Piece Picking과 Depalletizing은 장면 변화가 다르다
Piece Picking은 개별 물품을 골라 집는 과업이다. 상자/빈에 여러 물품이 섞이면 가림·겹침, 비슷한 외형/다른 자세와 한 개만 집었는지의 확인이 중요하다. 같은 bbox가 여러 물체를 포함하거나 물체가 집는 동안 이동할 수 있다. 목표 ID와 지시된 종류/수량, 파지 후 남은 장면을 확인해야 한다.
Depalletizing은 팔레트에 적재된 물체를 꺼내는 과업이다. 패턴/층이 알려져 있어도 실제 상자는 운송·변형/압축 때문에 이론 위치와 다를 수 있다. Robotiq 공식 응용 설명은 X/Y 이동과 높이 변동 등을 다룬다. 제품 홍보 성능을 일반 보장으로 쓰지 않고 예상 배치와 관측의 차이를 점검하는 근거로 읽는다.
합성 팔레트의 윗면 z=0.1 m, 동일 상자 높이 h=0.2 m, 3개 층이 수직으로 빈틈없이 놓였다고 주어지면 최상단 윗면은 0.1+3×0.2=0.7 m다. 같은 수직 열의 맨 위 상자 하나를 완전히 제거했다면 남은 윗면은 0.5 m가 된다. 하지만 그 제거가 실제 확인됐는지, 주변 상자가 움직였는지는 별도다. 정해진 순서대로 층 번호만 줄여 과거 좌표를 재사용하지 않고 새 장면/scene을 확인한다. 부분 제거/다중 상자 파지/무너짐은 이 이상적인 층 계산 밖의 사례다.
실패 위치를 알 수 있도록 분모를 보존한다
전체 요청과 인식·계획·실행된 시도는 수가 다를 수 있다. 합성 10개 요청에서 검출/유효 관측 8개, 기하 조건 통과 6개, 계획/실행 시작 5개, 물체 유지 확인 4개, 올바른 배치 3개라고 하자. 이 예에서는 모든 단계의 집합이 앞 단계의 부분집합이며 중복 재시도는 없다고 가정한다.
전체 요청 기준 성공률은 3/10=30%다. 실행 시작 기준 성공률은 3/5=60%로 다른 지표다. 60%만 적으면 실행하지 못한 요청을 숨길 수 있다. 단계별 조건부 비율 8/10·6/8·5/6·4/5·3/4를 곱하면 이번 표의 3/10이 되지만 이 값으로 새로운 환경의 독립 성공 확률을 보장하지 않는다. 재시도가 있다면 요청 ID와 시도 ID를 분리한다.
실패는 검출/깊이·좌표/시간·파지 후보/경로·그리퍼/유지·배치로 나누고 미상을 따로 적는다. 영상 점수 향상만으로 전체 실패를 해결했다고 주장하지 않는다. 사이클 시간도 성공한 빠른 시도만이 아니라 거절/재시도·확인 대기 포함 여부를 밝힌다. 기존 4.1 깊이/좌표와 기존 3.5 실행 전 검사를 연결해 원인별 근거를 보충할 수 있다.