<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 인계와 교정 데이터 수집으로 이어졌다. 내가 중점적으로 다룬 문제는 시연 생산, 센서·관절 좌표의 일치, 학습 데이터의 범위, 시뮬레이션과 실물 사이의 차이다.

1. 왜 leader–follower가 아니라 IK 자동 교사였나

출발점(내 결정, 10/18): "leader 없이 학습시키는 것"이 목표였다. 실물 데이터를 사람이 leader로 직접 시연해 쌓는 대신, 로봇이 스스로 관측하고 계획해서 시연을 만들게 하려 했다(처음엔 sim2real 생성까지 시도해서 실물 데이터 축적이 늦어졌다).

이 방식을 고른 근거와 기대한 이점:

항목 leader–follower 텔레옵 IK 자동 교사 (Native)
데이터 생산 사람 시간에 비례, 한 명이 계속 붙어 있어야 함 블록만 놓고 버튼 → 로봇이 관측·집기·이동·놓기·복귀
라벨 일관성 사람마다·회차마다 손떨림·속도 차이 같은 계획기·같은 규칙 → 같은 상황에 같은 동작
DAgger 정책이 엉뚱한 상태로 가면 사람이 그때마다 다시 시연해야 함 정책이 멈춘 상태에서 교사가 자동으로 이어받아 라벨 생성
최종 제품(청소 로봇) 현장마다 사람이 필요 관측→계획→실행 파이프라인 자체가 제품 기능

10/19 마감 압박으로 leader 시연 녹화기도 만들었지만 보류했다. 주력은 자동 교사로 유지했다.

2. 진행 중 생긴 문제와 해결

문제 원인 해결 왜 그렇게 했나
시뮬 값과 실물 관절이 안 맞음 (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을 그대로 교정 데이터로 바꿈

3. ACT 결과에서 알게 된 것

4. 개선 방향과 이유

  1. 데이터 범위를 계획적으로 채운다 — 위치(특히 왼팔 20–27 cm), 블록 각도 ±45°, 새 시작 자세. 정책 오차가 범위 밖에서 커지는 것을 확인했기 때문.
  2. 교사의 정렬 반복을 줄인다 — 교사 습관이 그대로 학습되므로 교사가 깔끔해야 정책도 깔끔하다.