2026-06-22 작업 정리
박스 변경
- 폭 (잡기 방향): 19mm (얇음)
- 높이/깊이: 62×62mm
- 색띠: 옆면 가운데 (높이 31mm 위치)
- 추정 박스 색띠 z = -103 + 31 = -72mm (받침대 -103)
운동학 갭 발견 (구 박스)
검증된 자세의 시뮬 그리퍼 위치 vs 검출 박스 위치:
| 케이스 | FK 그리퍼 (x,y,z) | 검출 박스 (x,y) | 갭 (dx, dy) |
|---|---|---|---|
| C 17cm | (321, 45, -27) | (205, -32) | +116, +77 |
| L 17cm | (307, 106, -48) | (216, -2) | +91, +108 |
| R 17cm | (324, -23, -27) | (191, -70) | +133, +47 |
갭 ~100mm (x), 50mm (z) — arm_fk와 실제 위치 큰 차이.
원인 후보:
- arm_fk 링크 길이/오프셋 부정확
- 검출 plane-z (-77mm) 부정확
- hand-eye 캘리브 잔차
새 박스 검증 데이터
검증 자세 (CH7=130, 새 박스)
| 케이스 | 검출 (x, y, cy) | CH15 | CH13 | CH11 | CH9 | 비고 |
|---|---|---|---|---|---|---|
| C 17cm | (192, -14, 541) | 46 | 42 | 42 | 138 | ✓ |
| L 17cm | (201, 17, 497) | 57 | 20 | 8 | 150 | ✓ (살짝 건들) |
| R 17cm | (182, -54, 481) | 33 | 25 | 18 | 145 | ✓ |
3박스 시퀀스 (multi_pick_v2.py) — 성공
흐름:
- R + 안전 자세
- for box in CLR:
- 매핑 자세 이동 (CH15/CH13/CH11/CH9 위 표)
- 잡기 자세 cx 재정렬 (3회) — 잡기 자세에서 카메라 마커 시야 밖이라 실패하지만 매핑 자세로 충분
- 그리퍼 닫기 + 들기
- 후방 놓기 (CH15=150, CH13=60, CH9=90)
3박스 17cm 정렬 모두 잡힘 + 후방 놓기 완료.
거리별 자세 매핑 확장 (15cm/17cm)
| 자리 | 15cm | 17cm |
|---|---|---|
| C | 46/42/42/138 | 46/42/42/138 |
| L | 57/42/35/125 | 57/20/8/150 |
| R | 33/45/35/125 | 34/25/18/145 |
진짜 자율 시도 — 단일 카메라 거리 측정 (dual_marker_detect.py)
박스 윗면 두 마커:
- 주황 (로봇팔 가까운 모서리)
- 파랑 (로봇팔 먼 모서리)
- 마커 간 실제 거리 = 박스 깊이 62mm
핀홀 카메라 공식: Z = D_real × focal / d_px (광축 방향 거리)
실측 데이터 (검출 자세 CH15=47 CH13=80 CH11=45 CH9=90 CH7=130):
- 15cm → d_px = 417
- 17cm → d_px = 350
- 19cm → d_px = 294
3점 fit (반비례 모델): d_user = 4000 / d_px + 5.44 (cm)
검증 오차 ±0.3cm.
multi_pick_v3.py — 자율 거리 추정 + 자세 보간
흐름:
- 검출 자세 이동
- C 박스 cx 정렬 (광축, 주황 anchor) + dual_marker_detect 호출
- d_px → 사용자 거리 (cm)
- 거리 → 자세 보간 (15cm ↔ 17cm 선형, ≥17 → 17cm 자세 그대로)
- for box in CLR: 매핑 자세 + 그리퍼 닫기 + 후방 놓기
자율 시연: 박스 거리 사용자 안 알려도 작동.
19cm 박스 3개 → 거리 추정 19.1~22.8cm 변동 → 17cm 자세 사용 → 전부 잡힘.
한계
- d_px 측정 변동 ±수십 px (박스 위치 변동 + 노이즈) → 거리 추정 ±0.5cm
- 15cm/17cm 사이 보간 정확도 미검증 (16cm 박스 데이터 필요)
- R 자리 자세 시스템 노이즈 ±1~2° (CH15 보정 매번 다름)
- 잡기 자세에서 마커 카메라 시야 밖 → 잡기 자세 cx 재정렬 동작 X
미완성 / 다음 작업
1. 데이터 수집 (새 박스)
- C 17cm 정렬
- L 17cm 정렬
- R 17cm 정렬
- C/L/R 17cm + 10° 회전
- 거리 15/18/19/20cm × 자리/회전
2. 운동학 정밀화 (보류 중)
새 박스로 자세 데이터 충분히 모은 후 — FK 시뮬 vs 실제 잡힌 위치 갭 분석. arm_fk 파라미터 fitting 또는 plane-z 보정.
3. CH7 자동 매핑
박스 옆면 색띠 모양 (cv2.minAreaRect) → 회전 각도 자동 추출. 또는 사용자 입력.
새 박스 잡기 발견
- 작은 박스 → 그리퍼 측면 정확 위치 더 중요 (이전과 비슷)
- 박스 정면 (그리퍼 측면 잡기 위치) ≠ 검출 위치 (광선-평면 교점)
- 갭 보정: 자세 -23mm 가까이 + z -5mm 정도 (C 17cm 케이스 기준)
다음 사용자 입력 대기
다음 케이스 박스 위치/거리/회전.
'로보테크AI' 카테고리의 다른 글
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/06/24 (0) | 2026.06.24 |
|---|---|
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/06/23 (0) | 2026.06.23 |
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/06/18 (1) | 2026.06.18 |
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/06/17 (0) | 2026.06.17 |
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/06/16 (0) | 2026.06.16 |