GitHub

https://github.com/steeze1213

로보테크AI

융합_로보테크 AI 자율주행 로봇 개발자 과정-26/06/22

steezer 2026. 6. 22. 19:13

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) — 성공

흐름:

  1. R + 안전 자세
  2. 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 — 자율 거리 추정 + 자세 보간

흐름:

  1. 검출 자세 이동
  2. C 박스 cx 정렬 (광축, 주황 anchor) + dual_marker_detect 호출
  3. d_px → 사용자 거리 (cm)
  4. 거리 → 자세 보간 (15cm ↔ 17cm 선형, ≥17 → 17cm 자세 그대로)
  5. 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 케이스 기준)

다음 사용자 입력 대기

다음 케이스 박스 위치/거리/회전.