<aside> 🔗
이 본문은 10/7–10/26 의 실물 Native·TJJ ACT·DAgger 기록을 보존한다. 이후 SIM 수집→학습→143 위치 폐루프·실패 분석은 CUSTOM ACT V1 — 수집·학습·추론·분석에 정리했다. 10/27 실물 적용 후속은 ACT30 sim+real 공동학습 조사와 실행기 정합성 검증 (2026-10-27), ACT30 원본 행동 계약 복원·STOP·파지 판정 수정과 검증 (2026-10-27)과 sweepick: ACT30 IR=2 양팔 G4 재검증 — 각 300 prefix, 위반 0 (10/27)을 본다. 새SIM 성과와 당시 실물 교사/정책 결과를 같은 집계로 합치지 않는다.
</aside>
SWEEPICK은 청소 경로의 작은 물체를 옮겨 청소할 공간을 확보하는 저비용 모바일 매니퓰레이터다. 이 기록은 그중 SO-101 양팔 조작을 위한 시뮬레이션, 실물 자동 교사, ACT 데이터·정책 실험을 다룬다. ACT는 팀원과 공동 개발·검증했으며, 나는 모방학습·시뮬레이션·Sim-to-Real·데이터 검증을 주로 맡았다. 이동·청소·도킹 전체의 실물 완주 결과와 양팔 조작의 결과는 구분한다.
2026년 10월 26일까지의 실물 기록에는 Native 교사 성공 120 / 198회가 있다. ACT는 위치·시작 자세가 달라지면 정체했고, Native 인계와 교정 데이터 수집으로 이어졌다. 내가 중점적으로 다룬 문제는 시연 생산, 센서·관절 좌표의 일치, 학습 데이터의 범위, 시뮬레이션과 실물 사이의 차이다.
출발점(내 결정, 10/18): "leader 없이 학습시키는 것"이 목표였다. 실물 데이터를 사람이 leader로 직접 시연해 쌓는 대신, 로봇이 스스로 관측하고 계획해서 시연을 만들게 하려 했다(처음엔 sim2real 생성까지 시도해서 실물 데이터 축적이 늦어졌다).
이 방식을 고른 근거와 기대한 이점:
| 항목 | leader–follower 텔레옵 | IK 자동 교사 (Native) |
|---|---|---|
| 데이터 생산 | 사람 시간에 비례, 한 명이 계속 붙어 있어야 함 | 블록만 놓고 버튼 → 로봇이 관측·집기·이동·놓기·복귀 |
| 라벨 일관성 | 사람마다·회차마다 손떨림·속도 차이 | 같은 계획기·같은 규칙 → 같은 상황에 같은 동작 |
| DAgger | 정책이 엉뚱한 상태로 가면 사람이 그때마다 다시 시연해야 함 | 정책이 멈춘 상태에서 교사가 자동으로 이어받아 라벨 생성 |
| 최종 제품(청소 로봇) | 현장마다 사람이 필요 | 관측→계획→실행 파이프라인 자체가 제품 기능 |
10/19 마감 압박으로 leader 시연 녹화기도 만들었지만 보류했다. 주력은 자동 교사로 유지했다.
| 문제 | 원인 | 해결 | 왜 그렇게 했나 |
|---|---|---|---|
| 시뮬 값과 실물 관절이 안 맞음 (q12) | 서보 tick ↔ 모델 rad 매핑·영점 미확인 | 캘리브레이션 범위 + 측정한 부호/오프셋으로 tick↔rad 매핑, commissioning으로 20 tick 왕복 확인 | 매핑이 틀리면 IK가 맞아도 실물이 다른 곳으로 감 |
| 바닥(책상)에 손이 안 닿는다고 계획 거부 | 정적 바닥 평면 + 마운트 높이 16 mm 잘못 모델링 | 관측으로 바닥 평면을 잡고, 실측 마운트 값으로 모델 수정 | 맞춤 보정(fit) 대신 실측·CAD 값만 모델에 반영 |
| 헤드 카메라 위치 오차 | 팔 모델 수정 후 외부 파라미터 어긋남 | 체커보드 PnP + 팔 정합, depth 배율 확인 (10/20) | 블록 위치가 IK 목표의 출발점이라 여기서 오차가 전부 전파됨 |
| 정렬이 수 분씩 반복 (181939: align 19회) | pad 간격 판정이 이미지 불확실성만큼 여유를 또 요구 + 오차 부호 진동 | pad 간격 > 0 으로 판정 통일 (10/26) | 중앙 정렬 허용치가 이미 패드 여유 기준이라 이중 차감이었음 |
| align 보정을 빼서 속도를 올렸더니 실패 급증 | 작은 보정 미실행 → NOT_REACHED 0–2 → 7–29/run | 원복 (10/19) | 수집 중 기능 변경은 데이터와 성공률을 같이 흔든다 |
| 손목 회전이 막힌 쪽으로 계획 | 기구적 돌기 | 실측 막힌 끝(왼 2760 / 오 2786 tick)을 계획 제약으로 | 물리 제약은 즉시 코드로 |
| ACT가 간 자세를 Native가 계획 못 함 (185920) | MuJoCo wrist_flex ±1.658 rad < 실제 가동 범위 | 손으로 끝까지 돌려 실측(왼 835–3147, 오 874–3186 tick) → 모델 범위 확장 (10/26) | 모델이 실물보다 좁으면 ACT가 정상적으로 간 자세도 교사가 거부 |
| 그리퍼 닫을 때 BUS_LOST | USB 허브 공유 버스에서 응답 한 번 유실. 0.15 s 뒤 모든 서보 응답·토크 유지·12.2 V 정상 → 지속적인 전압 저하 증거는 관찰되지 않았으나 순간적인 전원·통신 문제를 완전히 배제하지는 못함 | 그리퍼 루프에도 이동 루프와 같은 재읽기(0.05/0.2/0.5 s, 읽기만) 적용 (10/26) | 같은 실패가 여러 번 반복된 지점인데 그곳만 재읽기가 빠져 있었음 |
| ACT가 멈추면 run이 그대로 실패 | 전 구간 ACT에는 인계 규칙 없음 | 정체(3 s 무동작 또는 교사 p95 시간) 시 Native 수신기가 이어받아 끝까지 + DAgger 데이터 기록 (10/26) | 실패 run을 그대로 교정 데이터로 바꿈 |