diff --git a/2ARM_ROBOT/README.md b/2ARM_ROBOT/README.md index 9570fcb5..40f27347 100644 --- a/2ARM_ROBOT/README.md +++ b/2ARM_ROBOT/README.md @@ -1,16 +1,38 @@ -# sweepick (TJJ) | 이동형 양팔 청소 로봇의 조작·학습·Sim-to-Real +# SWEEPICK | 이동형 양팔 청소 로봇의 조작·학습·Sim-to-Real -DAPIER 교육에서 진행하는 팀 프로젝트다. 바닥의 물체를 보고(OS30A RGB-D) 접근해 집고, 지정한 곳에 놓은 뒤 그 자리를 청소하고 충전대로 돌아가는 저비용 모바일 매니퓰레이터 **sweepick**을 만든다. 2026-10-16부터 이 팀의 범위는 **상체(SO-101 양팔·그리퍼·손목 카메라·작업공간 카메라)의 팔 선택·집기·운반·놓기**이고, 이동 베이스·Visual SLAM·도킹은 다른 팀이 맡는다. 상체는 베이스를 직접 움직이지 않고 정지 요청만 보낸다. 초기 박스·신발 과제는 개발 이력으로만 남겼다. +청소 경로의 작은 물체를 인식해 옮기고, 확보된 공간을 청소하는 저비용 모바일 매니퓰레이터다. DAPIER 팀 프로젝트에서 SO-101 양팔·카메라·이동 베이스와 학습 기반 제어를 연결했다. 물체 이동·청소·저전력 복귀·도킹·충전은 시뮬레이션 구현을 완료했고, 실물 기능을 통합하고 있다. -**전형주 주 담당: 모방학습 · 시뮬레이션 · Sim-to-Real.** Visual SLAM의 설계·구현·코드 작업에도 협업 참여했다. 이동 모듈의 주 담당은 팀원 `shouttt1320`이다. +**전형주 주 담당: 모방학습·시뮬레이션·Sim-to-Real·데이터 검증. Visual SLAM도 직접 설계·구현했다.** 프로젝트 전체 실험 결과는 담당 경험과 연결해 설명하되, 외부 ACT·RoboTwin 구현과 팀 공동 자료의 저작 범위는 구분한다. -[전체 포트폴리오](../README.md) · [sweepick 실행 소스(검토 브랜치)](https://github.com/Alpenj/DAPIER/tree/pro/sweepick-review-20261015/2ARM_ROBOT/sweepick) · [실험과 문제 해결 기록](docs/RESEARCH_SUMMARY_KO.md) · [이동·도킹 협업 코드](https://github.com/shouttt1320/Dapier_project_visaul_slam) +[포트폴리오·이력서](https://julianjeonresume.netlify.app/) · [CUSTOM ACT V1 상세](docs/CUSTOM_ACT_V1_KO.md) · [그림·영상](https://julianjeonresume.netlify.app/research/custom-act-v1/) · [이전 조작 연구](docs/RESEARCH_SUMMARY_KO.md) · [실물 검토 브랜치](https://github.com/Alpenj/DAPIER/tree/pro/sweepick-review-20261015/2ARM_ROBOT/sweepick) -## 풀고 있는 문제 +## CUSTOM ACT V1: 데이터에서 실행까지 -로봇이 물체에 닿았다는 사실만으로 들어 올릴 수 있는 것은 아니었다. 파지 이후의 압축량, 계획한 손끝 위치와 실행 후 위치의 차이, 시뮬레이션 접촉 설정에 따른 미끄러짐을 나누어 조사했다. 카메라가 본 위치를 관절 명령으로 옮기는 과정에서는 좌표계, 영점, 단위와 관측 시각도 함께 확인했다. +학습 손실만으로 로봇의 작업 완료를 판단하기 어려웠다. 시연을 어떤 기준으로 나누었는지, 정책이 어떤 관측을 받는지, 예측한 행동 청크가 실제 명령으로 어떻게 이어지는지를 함께 기록했다. -학습 쪽에서는 시연을 저장하는 것에서 끝내지 않고, 측정 상태와 전송 명령의 의미, 에피소드 경계, 전처리와 행동 묶음의 실행을 연결하는 데 집중한다. 모델의 학습 실행, 보류 데이터 예측과 폐루프 조작 성공은 별도로 평가한다. +| 단계 | 수행 내용 | 확인한 결과 | +|---|---|---| +| 데이터 수집 | 원본 113개 궤적의 동작을 유지하며 손목 RGB의 물체색·배경·테이블 텍스처·조명을 5개 외형으로 구성. 관측·상태·명령·시각 정합 확인 | 565개 뷰. 궤적 train/val/test=59/29/25, 뷰=295/145/125. 같은 궤적의 외형은 동일 분할 유지 | +| 학습 | 양손목 RGB·head PCD·관절 상태를 입력으로 사용하는 ACT 학습 | 200 epoch 완료. best validation은 epoch103, prior normalized L1=0.01553 | +| 추론 | 별도로 고정한 epoch30 체크포인트, temporal ensemble ON(k=0.01)으로 SIM 폐루프 평가 | 143개 위치 각 1회 중 132회 완료(92.3%). Test 위치는 27/31(87.1%) | +| 분석 | 예측 청크의 target 시점·가중치·관절 명령·실측값·phase·영상 연결 | 실패 11회 중 grasp/lift 7회, stow 4회. 청크 집계 결과를 저장 CSV에서 재구성해 확인 | + +폐루프 완료 기준은 **30 mm 이상 Lift → Stow → 물리 2초 Hold**다. 외형은 랜덤화하고 물체 크기(40 mm)·yaw·물성·카메라 보정은 고정했다. 위 92.3%는 이 SIM 조작 평가의 관측값이다. 200 epoch 최종 모델의 폐루프 결과, 실물 성공률이나 전체 청소 시나리오 성공률과 합산하지 않는다. + +## 실물 데이터와 실행기 연동 + +| 트랙 | 확인된 결과 | 지표의 의미 | +|---|---|---| +| Native 교사 콘솔, 10/18~26 | 120/198회 집기·이동·놓기·복귀 성공 판정 | 규칙 기반 교사 실행 기록 | +| 실물 데이터 ACT TJJ v2 | train46/val7 run, 관절 예측오차3.30°·epoch690 | 보류 데이터 예측 평가 | +| DAgger, 10/23~25 | 정체 후 교사 인계 교정 시연16개 | 정책이 방문한 상태의 교정 데이터 | +| 10/27 후속 연동 | ACT30·실물 실행기의 관측/절대행동·앙상블·STOP·feedback·파지 증거 경로 정합 확인 | 저장 기록·코드·정지 shadow 단계 | + +10/08의 첫 무인 왼팔 집기, 10/18~23의 약170회 자동 교사 실행, 10/23의 ACT 접근 뒤 교사 마무리 기록은 위 후속 실험에 이르는 개발 이력이다. 10/26까지의 TJJ 실물 기록에서 ACT 단독 집기 완료는 관찰되지 않았다. 신규 CUSTOM ACT V1 SIM 폐루프 완료와 이 실물 기록을 혼동하지 않는다. + +10/27의 새 IR2 정지 shadow는 양팔 각300 prefix를 30초 동안 확인했고 위반0·모터쓰기0이었다. 기록상 full180s=false/all_pass=false이므로 전체 검증 통과로 표시하지 않는다. 최신 후속 노트3개는 [연구 노트 입구](https://www.notion.so/4065788b5ed1810aaec9c710b0d9e288)(접근 권한 필요)에서 연결한다. + +10/16 이후 상체 실행기는 이동 베이스를 직접 움직이지 않고 정지 요청을 전달한다. 모듈을 나눈 실행 구조는 본인의 Visual SLAM 직접 설계·구현 경험을 축소하는 의미가 아니다. 이동·도킹 공동 코드의 출처와 변경 이력도 유지한다. ## 구성과 코드 위치 @@ -28,7 +50,7 @@ native ACT 코드와 LeRobot을 재사용한 다른 학습 실험은 같은 구 ### 장비 역할과 과거 설정 -최근 조작 연구에서는 SO-101 양팔·PGripper, 작업공간용 OS30A RGB-D와 양손목 RGB를 다룬다. 이동 모듈의 Astra S는 Visual SLAM·도킹용 센서다. 두 RGB-D 센서의 역할을 섞지 않는다. +최근 조작 연구에서는 SO-101 양팔·PGripper, 작업공간용 OS30A RGB-D와 양손목 RGB를 다룬다. 이동 베이스 전면 중앙의 Astra RGB-D는 Visual SLAM용 별도 센서다. 두 RGB-D 센서의 역할을 섞지 않는다. `main`의 [hardware_roles.json](config/hardware_roles.json)은 `effective_date=2026-09-03`이며 작업공간 카메라를 H201로 기록한 **당시 구성**이다. 일부 모델 README와 실습 절차도 그 배치를 설명한다. 이후 OS30A·PGripper 연구의 설명을 읽었다고 이 설정 파일이나 모든 실행기가 갱신된 것으로 해석하지 않는다. 실제 실행에는 해당 장치와 소스 revision의 설정·보정이 필요하다. 이 문서 갱신에서는 설정이나 런타임을 변경하지 않았다. @@ -44,24 +66,6 @@ native ACT 코드와 LeRobot을 재사용한 다른 학습 실험은 같은 구 PR 상태 확인일은 2026-10-08이다. 연구 PR을 닫은 것과 `main`에 병합한 것은 다르다. 위 후보 결과는 고정 커밋의 연구 이력으로 남기며, 저장소를 새로 받은 사람이 기본 실행만으로 같은 결과를 얻는다고 안내하지 않는다. -## 10/08 이후 실물 진행 - -| 날짜 | 내용 | 상태 | -|---|---|---| -| 10/08 | 왼팔이 사람 도움 없이 블록을 집고·들고·내려놓은 첫 1회 (OS30A 깊이 → IK 접근 → 손목 영상 정렬) | 실물 1회 | -| 10/16 | 범위를 상체로 한정(베이스·SLAM·도킹은 다른 팀), 양팔 상체 상태기·팔 선택 | 코드 확인 | -| 10/18~23 | 자동 교사 약 170회 실행, 3-view(손목 RGB 2 + OS30A RGB-D)·양팔 측정값·실제 서보 명령 기록. 교사 판정 성공: 빨강 40 mm 큐브 약 50, 검정 30 mm 큐브 20, 검정 막대 22 | 실물 확인 | -| 10/23 | ACT가 블록 위까지 접근 → 정체 감지 → 교사 실행기가 집기~운반~놓기~복귀 마무리 | 실물 1회 | -| 10/23~ | 실물 시연 원본에서 학습 데이터를 다시 만들어 헤드 점군 + 양 손목 RGB 입력 ACT 재학습 | 진행 중 | - -ACT 단독으로 집기를 끝낸 실물 결과는 아직 없다. 지금 관찰된 주된 실패는 ACT가 블록 위에서 내려가지 못하고 멈추는 것이다. - -## 다음 검증 - -ACT가 블록 위에서 멈추지 않고 정렬·하강까지 이어 가는지를 실시간 shadow와 제한된 실물 실행으로 확인한다. 같은 데이터 분할·전처리에서 교사 실행기와 비교하고, ACT가 실제로 머무는 상태에서 교사가 교정한 기록(DAgger)을 학습에 더한다. 이동 베이스와의 결합에서는 도착·정지, 조작 결과와 후속 이동 조건을 확인한다. - -청소·도킹까지 이어지는 전체 시나리오는 목표다. 개별 모듈의 코드, 한 번의 실물 성공이나 SIM 결과를 전체 과제 완료로 쓰지 않는다. - ## 실행 안내와 과거 실습 > **`main` 코드의 실물 실행 상태 (2026-09-04 안전 고지 유지):** 이 저장소 `main`의 2ARM_ROBOT 실행기에서 physical motion과 camera streaming은 local safety integration(connected-endpoint identity binding, 독립 device-side watchdog, 카메라 serial/cryptographic binding 확인)이 끝날 때까지 비활성화돼 있다. sweepick 실물 실행은 검토 브랜치의 별도 실행기(단일 owner·정지 조건·현장 승인)로 하며, 그 코드는 아직 `main`에 병합하지 않았다. @@ -70,6 +74,6 @@ ACT가 블록 위에서 멈추지 않고 정렬·하강까지 이어 가는지 초기 ROS 2 환경 점검, 합성 토픽 녹화, golden episode 생성과 장치 snapshot 절차는 [갱신 전 README의 고정본](https://github.com/Alpenj/DAPIER/blob/9b1138dbc462d293cbde62961d4d3534a71b2061/2ARM_ROBOT/README.md)에 보존했다. 그 문서의 신발·H201 구성과 실행 제한은 당시 소스의 안내다. 과거 실행 절차를 최신 장비 설정으로 대신하지 않는다. -외부 라이브러리와 자산은 각 폴더의 출처·라이선스를 따른다. 팀 이동 모듈의 전체 구현을 개인 단독 성과로 계산하지 않는다. +외부 라이브러리와 자산은 각 폴더의 출처·라이선스를 따른다. Visual SLAM의 직접 설계·구현 경험과 공동 저장소의 외부·팀 기여 이력을 함께 보존한다. -문서 갱신: 2026-10-24(프로젝트 소개를 sweepick 기준으로 바꾸고 10/08 이후 실물 진행 추가). 런타임·물리 파라미터·보정값·테스트·의존성은 변경하지 않았다. +문서 갱신: 2026-10-27. 새 CUSTOM ACT V1의 수집·학습·SIM 평가·분석을 추가하고 기존 실물·코드·후보 PR 기록은 보존했다. 런타임·물리 파라미터·보정값·테스트·의존성은 변경하지 않았다. diff --git a/2ARM_ROBOT/docs/CUSTOM_ACT_V1_KO.md b/2ARM_ROBOT/docs/CUSTOM_ACT_V1_KO.md new file mode 100644 index 00000000..41a9ef89 --- /dev/null +++ b/2ARM_ROBOT/docs/CUSTOM_ACT_V1_KO.md @@ -0,0 +1,89 @@ +# CUSTOM ACT V1 | 관측과 행동이 이어지는지 확인한 기록 + +SWEEPICK에서 학습 정책을 적용할 때, 낮은 예측 손실만으로는 물체를 끝까지 옮기는지 알 수 없었다. 시연의 외형을 늘리는 단계부터 분할, 모델 학습, 폐루프 실행과 실패 분석까지 같은 기록으로 연결했다. + +**전형주 주 담당: 모방학습·시뮬레이션·Sim-to-Real·데이터 검증. Visual SLAM도 직접 설계·구현했다.** 프로젝트 전체 실험 결과는 담당 경험과 연결해 설명하되, 외부 ACT·RoboTwin 구현과 팀 공동 자료의 저작 범위는 구분한다. + +[프로젝트](../README.md) · [그림·영상으로 보기](https://julianjeonresume.netlify.app/research/custom-act-v1/) · [Notion 연구 노트](https://www.notion.so/4065788b5ed1810aaec9c710b0d9e288)(접근 권한 필요) · [이전 접촉·계획 연구](RESEARCH_SUMMARY_KO.md) + +## 1. 데이터 수집 — 동작을 보존하고 외형을 바꿨다 + +원본113개 궤적에 각4개 외형을 더해 총565개 뷰를 구성했다. 같은 상태·관절 동작에서 손목 RGB의 물체색, 테이블·벽 텍스처와 조명을 다시 렌더링했다. 565개는 서로 다른 물리 시연565회가 아니라 113개 동작의 외형5종이다. + +| 분할 | 원본 궤적 | 외형 뷰 | +|---|---:|---:| +| Train | 59 | 295 | +| Validation | 29 | 145 | +| Test | 25 | 125 | +| 합계 | 113 | 565 | + +관절 상태·명령·시각·물체 pose와 head depth/PCD가 같은지 검사했다. 한 궤적의 외형 변형은 같은 분할에 묶어, 같은 동작이 학습과 평가에 나뉘어 들어가지 않게 했다. 정책 입력은 관절q·head PCD·양손목 RGB이며, 정답 행동·phase·물체 정답pose를 추론 입력에서 제외했다. + +![동일 궤적의 다섯 외형](https://julianjeonresume.netlify.app/assets/custom-act-v1/collection-appearances.png) + +## 2. 학습 — 학습 곡선과 작업 완료를 따로 확인했다 + +shared wrist ResNet18+1×1 projection, hidden256, chunk20, state/action12, KL10, prior z=0 구성으로200 epoch 학습을 완료했다. epoch1~3은 batch4, 이후는 batch32였으며 epoch63 이후 재개한 기록을 포함한다. + +| 지표 | 기록 | +|---|---:| +| Best validation prior normalized L1 | 0.01553423676 (epoch103) | +| Epoch200 validation prior normalized L1 | 0.01951522965 | + +최저 검증 손실은 epoch103에서 나왔다. 이200 epoch 실행의 최종·best 모델은 원본 묶음에서 폐루프 평가되지 않았다. 다음 절의 작업 완료율은 별도로 고정한 epoch30 체크포인트의 결과다. + +![학습·검증 손실과 재개 구간](https://julianjeonresume.netlify.app/assets/custom-act-v1/training-curves.png) + +## 3. 추론 — 고정한 모델로143개 위치를 실행했다 + +epoch30 체크포인트와 temporal ensemble ON(k=0.01), prior z=0을 고정해143개 위치를 각1회 평가했다. 완료 기준은 **Lift≥30mm → measured Stow(오차0.025rad 이내) → 상승·접촉 상태를 물리2초 유지**다. + +| 위치 구분 | 완료/시도 | 관측 완료율 | +|---|---:|---:| +| Train 영역 | 76/80 | 95.0% | +| Validation 영역 | 29/32 | 90.6% | +| Test 영역 | 27/31 | 87.1% | +| 전체 | 132/143 | 92.3% | + +블록색·테이블/벽 텍스처·조명을 랜덤화했다. 물체 크기40mm·yaw·물성·카메라 보정은 고정했다. Test 결과로 평가 체크포인트를 바꾸거나 선택하지 않았고 Test expert HDF5는 학습에 사용하지 않았다. Train영역80개는 학습에 쓴59개와 그 외21개를 포함하며, 그 결과는 각각59/59와17/21이다. + +143개 위치 각1회의 SIM 조작 평가이므로 이 값을 실물 성공률·반복 신뢰도·양팔 동시 조작 성능이나 전체 이동·청소·충전 과제의 완료율로 확대하지 않는다. + +- [143개 위치별 공개 결과 CSV](evidence/custom_act_v1_20261027_positions.csv) +- [조건·집계 공개 요약 JSON](evidence/custom_act_v1_20261027_summary.json) +- [작업공간 분포](https://julianjeonresume.netlify.app/assets/custom-act-v1/evaluation-workspace.svg) +- [Test mid00_01 대표 SIM 영상](https://julianjeonresume.netlify.app/assets/custom-act-v1/sim-test-mid00_01.mp4) + +## 4. 분석 — 예측 청크가 명령이 되는 과정을 추적했다 + +실패11회는 grasp/lift7회와 stow4회로 나눴다. query 시점, 예측 horizon, 실제 target 시점, 집계 가중치, 전송 명령, 실측 관절, phase와 영상을 함께 읽었다. 저장된17,280개 예측 행·15,000개 후보 행·864개 실행 행을 재계산했을 때 target정렬 오류는0, 가중치식 최대오차는1.85×10⁻⁸, 출력 재구성 최대오차는1.84×10⁻⁷rad였다. 저장 데이터의 일관성 검사이며 새 실행 결과는 아니다. + +Val mid00_00·seed701000000의 단일 비교에서는 같은 epoch30의 ON이 Lift→Stow→Hold를 마쳤고, 기존 first-action-only OFF는8.4초 관찰 후 중단됐다. 이 OFF는 원본 ACT의 청크 순차 실행과 다른 방식이다. 원본 sequential OFF는 실행하지 않았으므로, 중단을 완료 실패로 세거나 앙상블의 일반적인 성능 향상으로 단정하지 않는다. + +![명령을 생성하는 실행 방식 비교](https://julianjeonresume.netlify.app/assets/custom-act-v1/control-schedules.png) + +## 실물 연동과 후속 기록 + +SWEEPICK의 물체 이동·청소·저전력 복귀·도킹·충전 흐름은 시뮬레이션에서 구현했고 실물 통합을 진행하고 있다. 이 전체 흐름의 구현 여부와 본문의 ACT 조작 완료율은 별도 근거다. + +기존 실물 트랙은 Native 교사120/198회(10/18~26), ACT TJJ v2 train46/val7 run·관절 예측오차3.30°(epoch690), DAgger 교정 시연16개(10/23~25)를 유지한다. 각각 교사 작업 판정·오프라인 예측·교정 데이터로 의미가 다르다. + +10/27 후속 노트는 ACT30과 실물 실행기의 관측·12축 절대행동 계약, 앙상블·STOP·feedback·파지 증거 경로를 정리한다. 저장 앙상블 비교와 코드 검사는 새 실물 파지 결과가 아니다. 새IR2는30초 정지 shadow, 양팔 각300 prefix, 위반0·모터쓰기0이며 full180s=false/all_pass=false다. 이전180초 G4 UNKNOWN 기록도 그대로 보존한다. + +- [SIM+실물 공동 학습·실행기 정합](https://www.notion.so/4065788b5ed1818f9df0dd925ddecff4) +- [절대행동·STOP·feedback·파지 증거 경로](https://www.notion.so/4065788b5ed18153ba4cde8a49e0c1f1) +- [IR2 정지 shadow 읽기 기록](https://www.notion.so/4065788b5ed181329e50ed6501a5942a) + +## 출처와 재검증 범위 + +사용자가 제공한 `CUSTOM_ACT_V1_standalone_20261027.html`을 직접 읽었다. 내장 ZIP의 보고서·원본 시도 CSV143행·에피소드 JSON143개·학습 곡선과 로그·청크 비교 CSV를 대조했다. 원본 HTML SHA256은 다음과 같다. + +`b0d3b524f57b6ae4e2f01c2533bab8c0ca90a532c99112a13bdfdf9092fa599f` + +평가 epoch30 체크포인트 SHA256: + +`032aab674bdbe83a3e75ebf793fc98026ea0c382f994f40ef05f5c4730ab0cf7` + +공개 CSV·JSON은 평가 조건과 결과에 필요한 필드만 골랐다. 원시 데이터·학습 tensor·개인 장치 경로는 포함하지 않는다. 공식 ACT/RoboTwin 등 외부 구현의 출처·라이선스는 기존 코드와 원자료에 따른다. 이 문서는 담당 경험과 프로젝트 실험을 연결한 연구 요약이며 공동 데이터·외부 라이브러리 전체의 단독 저작을 주장하지 않는다. + +갱신2026-10-27. 저장 기록을 재계산·대조했으며, 이 문서 작업 중 시뮬레이터나 실물 로봇을 새로 실행하지 않았다. diff --git a/2ARM_ROBOT/docs/RESEARCH_SUMMARY_KO.md b/2ARM_ROBOT/docs/RESEARCH_SUMMARY_KO.md index 7f35ebe0..166db013 100644 --- a/2ARM_ROBOT/docs/RESEARCH_SUMMARY_KO.md +++ b/2ARM_ROBOT/docs/RESEARCH_SUMMARY_KO.md @@ -1,8 +1,27 @@ # 양팔 조작 연구 기록 | 전형주 -파지가 풀리거나 손끝이 목표에서 벗어났을 때, 모델 전체를 바꾸기보다 어느 조건이 결과를 바꾸는지 확인했다. 아래는 공개 코드와 실험 기록을 연결한 요약이다. 수치는 각 실험 당시의 조건에 한정하며, 원시 로그·장치 보정과 학습 데이터의 비공개 자료는 포함하지 않는다. +시연을 데이터로 만들고 학습한 정책을 실행할 때 생긴 문제를 실험 조건·관측값·해석으로 정리했다. 최신 CUSTOM ACT V1은 데이터 수집 → 학습 → 추론 → 분석 순서로 읽을 수 있다. 이전 접촉·끝점 오차·미끄러짐·영점 연구는 아래에 원래 수치와 고정 소스를 보존했다. -[프로젝트 소개](../README.md) · [전체 포트폴리오](../../README.md) +**전형주 주 담당: 모방학습·시뮬레이션·Sim-to-Real·데이터 검증. Visual SLAM도 직접 설계·구현했다.** 프로젝트 전체 실험 결과는 담당 경험과 연결해 설명하되, 외부 ACT·RoboTwin 구현과 팀 공동 자료의 저작 범위는 구분한다. + +[프로젝트 소개](../README.md) · [CUSTOM ACT V1 상세](CUSTOM_ACT_V1_KO.md) · [공개 그림·영상](https://julianjeonresume.netlify.app/research/custom-act-v1/) · [전체 포트폴리오](../../README.md) + +## CUSTOM ACT V1: 데이터에서 실행까지 + +학습 손실만으로 로봇의 작업 완료를 판단하기 어려웠다. 시연을 어떤 기준으로 나누었는지, 정책이 어떤 관측을 받는지, 예측한 행동 청크가 실제 명령으로 어떻게 이어지는지를 함께 기록했다. + +| 단계 | 수행 내용 | 확인한 결과 | +|---|---|---| +| 데이터 수집 | 원본 113개 궤적의 동작을 유지하며 손목 RGB의 물체색·배경·테이블 텍스처·조명을 5개 외형으로 구성. 관측·상태·명령·시각 정합 확인 | 565개 뷰. 궤적 train/val/test=59/29/25, 뷰=295/145/125. 같은 궤적의 외형은 동일 분할 유지 | +| 학습 | 양손목 RGB·head PCD·관절 상태를 입력으로 사용하는 ACT 학습 | 200 epoch 완료. best validation은 epoch103, prior normalized L1=0.01553 | +| 추론 | 별도로 고정한 epoch30 체크포인트, temporal ensemble ON(k=0.01)으로 SIM 폐루프 평가 | 143개 위치 각 1회 중 132회 완료(92.3%). Test 위치는 27/31(87.1%) | +| 분석 | 예측 청크의 target 시점·가중치·관절 명령·실측값·phase·영상 연결 | 실패 11회 중 grasp/lift 7회, stow 4회. 청크 집계 결과를 저장 CSV에서 재구성해 확인 | + +폐루프 완료 기준은 **30 mm 이상 Lift → Stow → 물리 2초 Hold**다. 외형은 랜덤화하고 물체 크기(40 mm)·yaw·물성·카메라 보정은 고정했다. 위 92.3%는 이 SIM 조작 평가의 관측값이다. 200 epoch 최종 모델의 폐루프 결과, 실물 성공률이나 전체 청소 시나리오 성공률과 합산하지 않는다. + +## 이전 조작·물리 모델 연구 + +아래 1~5절은 2026-10-08까지 정리한 고정 후보의 기록이다. 새 CUSTOM ACT V1 평가와 환경·모델·성공 판정이 다르며 별도 연구로 읽는다. ## 1. 접촉은 생겼는데 블록을 들지 못했다 @@ -73,8 +92,8 @@ ## 코드와 연구 기록을 읽는 기준 -내 주 담당은 모방학습·시뮬레이션·Sim-to-Real이다. Visual SLAM은 팀원 주 담당 모듈에 설계·구현 협업으로 참여했다. 외부 코드·자산의 출처와 팀 기여는 각 저장소에서 구분한다. +내 주 담당은 모방학습·시뮬레이션·Sim-to-Real·데이터 검증이며, Visual SLAM도 직접 설계·구현했다. 프로젝트 공동 실험 결과와 개인 담당 경험을 연결하되 외부 코드·자산과 팀 기여는 각 저장소 이력으로 구분한다. -위 기록은 공개 PR과 고정 소스를 연결한 연구 요약이다. 계획, 코드 구현, 모의 검사, 물리 시뮬레이션과 실물 시험을 같은 완료 상태로 세지 않는다. 닫힌 후보 PR을 이번 문서 작업으로 병합하거나 런타임에 채택하지 않았다. 원시 데이터·보정값·실행 승인도 변경하지 않았다. +공개 PR과 고정 소스, 사용자 제공 CUSTOM ACT V1 원본, 최신 Notion 실험 기록을 함께 대조했다. 닫힌 후보 PR을 이번 문서 작업으로 병합하거나 런타임에 채택하지 않았다. 원시 데이터·보정값·실행 승인도 변경하지 않았다. -문서 갱신: 2026-10-08. 현재 장비·코드의 전체 검증 보고서가 아니라, 기록된 비교 실험을 읽기 위한 문서다. +문서 갱신: 2026-10-27. 기존1~5절의 수치·소스·실험 해석은 보존했고 최신 수집·학습·폐루프·분석 입구를 추가했다. 저장 CSV의 계산은 재검증했으며 시뮬레이터·실물 로봇을 새로 실행한 결과는 아니다. diff --git a/2ARM_ROBOT/docs/evidence/custom_act_v1_20261027_positions.csv b/2ARM_ROBOT/docs/evidence/custom_act_v1_20261027_positions.csv new file mode 100644 index 00000000..5995c688 --- /dev/null +++ b/2ARM_ROBOT/docs/evidence/custom_act_v1_20261027_positions.csv @@ -0,0 +1,144 @@ +point_id,split,training_used,success,lift_success,stow_reached,hold_valid,hold_seconds,failure_stage +mid00_00,val,False,True,True,True,True,2.0640000980347395, +grid00,train,True,True,True,True,True,2.0480000972747803, +grid01,train,True,True,True,True,True,2.05200009746477, +grid02,train,False,True,True,True,True,2.0240000961348414, +grid03,train,False,True,True,True,True,2.0840000989846885, +grid04,train,False,True,True,True,True,2.0400000968948007, +grid05,train,True,True,True,True,True,2.012000095564872, +grid06,train,False,True,True,True,True,2.032000096514821, +grid07,train,True,True,True,True,True,2.0800000987946987, +grid08,train,False,True,True,True,True,2.0840000989846885, +grid09,train,True,True,True,True,True,2.0800000987946987, +grid10,train,True,True,True,True,True,2.092000099364668, +grid11,train,True,True,True,True,True,2.0400000968948007, +grid12,train,True,True,True,True,True,2.0400000968948007, +grid13,train,False,True,True,True,True,2.0000000949949026, +grid14,train,True,True,True,True,True,2.0040000951848924, +grid15,train,False,True,True,True,True,2.092000099364668, +grid16,train,False,True,True,True,True,2.05200009746477, +grid17,train,False,True,True,True,True,2.0600000978447497, +grid18,train,True,True,True,True,True,2.0800000987946987, +grid19,train,True,True,True,True,True,2.0880000991746783, +grid20,train,True,True,True,True,True,2.05200009746477, +grid21,train,True,True,True,True,True,2.05200009746477, +grid22,train,True,True,True,True,True,2.0280000963248312, +grid23,train,False,True,True,True,True,2.092000099364668, +grid24,train,True,True,True,True,True,2.0240000961348414, +grid25,train,True,True,True,True,True,2.05200009746477, +grid26,train,True,True,True,True,True,2.016000095754862, +grid27,train,False,True,True,True,True,2.016000095754862, +grid28,train,False,True,True,True,True,2.0440000970847905, +grid29,train,True,True,True,True,True,2.0480000972747803, +grid30,train,True,True,True,True,True,2.012000095564872, +grid31,train,False,True,True,True,True,2.032000096514821, +grid32,train,True,True,True,True,True,2.092000099364668, +grid33,train,True,True,True,True,True,2.0440000970847905, +grid34,train,True,True,True,True,True,2.072000098414719, +grid35,train,True,True,True,True,True,2.072000098414719, +grid36,train,True,True,True,True,True,2.05600009765476, +grid37,train,False,True,True,True,True,2.05200009746477, +grid38,train,True,True,True,True,True,2.0600000978447497, +grid39,train,True,True,True,True,True,2.076000098604709, +grid40,train,True,True,True,True,True,2.0800000987946987, +grid41,train,True,True,True,True,True,2.092000099364668, +grid42,train,True,True,True,True,True,2.036000096704811, +grid43,train,True,True,True,True,True,2.05600009765476, +grid44,train,True,True,True,True,True,2.092000099364668, +grid45,train,False,True,True,True,True,2.072000098414719, +grid46,train,True,True,True,True,True,2.0800000987946987, +grid47,train,True,True,True,True,True,2.016000095754862, +grid48,train,True,True,True,True,True,2.0200000959448516, +grid49,train,True,True,True,True,True,2.0200000959448516, +grid50,train,True,True,True,True,True,2.0400000968948007, +grid51,train,True,True,True,True,True,2.0440000970847905, +grid52,train,True,True,True,True,True,2.0600000978447497, +grid53,train,True,True,True,True,True,2.076000098604709, +grid54,train,True,True,True,True,True,2.0200000959448516, +grid55,train,True,True,True,True,True,2.0480000972747803, +grid56,train,True,True,True,True,True,2.0880000991746783, +grid57,train,True,True,True,True,True,2.036000096704811, +grid58,train,True,True,True,True,True,2.0600000978447497, +grid59,train,True,True,True,True,True,2.012000095564872, +grid60,train,True,True,True,True,True,2.0840000989846885, +grid61,train,True,True,True,True,True,2.096000099554658, +grid62,train,True,True,True,True,True,2.0200000959448516, +grid63,train,True,True,True,True,True,2.05600009765476, +grid64,train,False,False,False,False,False,0.0,grasp_or_lift +grid65,train,False,True,True,True,True,2.0600000978447497, +grid66,train,True,True,True,True,True,2.036000096704811, +grid67,train,True,True,True,True,True,2.072000098414719, +grid68,train,True,True,True,True,True,2.0040000951848924, +grid69,train,True,True,True,True,True,2.0600000978447497, +grid70,train,True,True,True,True,True,2.05200009746477, +grid71,train,True,True,True,True,True,2.0840000989846885, +grid72,train,True,True,True,True,True,2.0040000951848924, +grid73,train,False,False,False,False,False,0.0,grasp_or_lift +grid74,train,False,False,False,False,False,0.0,grasp_or_lift +grid75,train,False,False,False,True,False,0.0,grasp_or_lift +grid76,train,False,True,True,True,True,2.0280000963248312, +grid77,train,True,True,True,True,True,2.0680000982247293, +grid78,train,True,True,True,True,True,2.0640000980347395, +grid79,train,True,True,True,True,True,2.0200000959448516, +mid00_04,val,False,True,True,True,True,2.0680000982247293, +mid00_06,val,False,True,True,True,True,2.0680000982247293, +mid00_08,val,False,True,True,True,True,2.0680000982247293, +mid01_05,val,False,True,True,True,True,2.012000095564872, +mid01_07,val,False,True,True,True,True,2.0680000982247293, +mid02_04,val,False,False,True,False,False,0.0,stow +mid02_06,val,False,True,True,True,True,2.0600000978447497, +mid02_08,val,False,True,True,True,True,2.008000095374882, +mid03_05,val,False,True,True,True,True,2.032000096514821, +mid03_07,val,False,True,True,True,True,2.0440000970847905, +mid04_04,val,False,False,True,False,False,0.0,stow +mid04_06,val,False,True,True,True,True,2.0400000968948007, +mid04_08,val,False,True,True,True,True,2.0840000989846885, +mid05_05,val,False,True,True,True,True,2.05200009746477, +mid05_07,val,False,True,True,True,True,2.0200000959448516, +mid06_04,val,False,False,False,False,False,0.0,grasp_or_lift +mid06_06,val,False,True,True,True,True,2.0640000980347395, +mid06_08,val,False,True,True,True,True,2.076000098604709, +mid00_02,val,False,True,True,True,True,2.0200000959448516, +mid01_00,val,False,True,True,True,True,2.0840000989846885, +mid01_02,val,False,True,True,True,True,2.0240000961348414, +mid02_00,val,False,True,True,True,True,2.0600000978447497, +mid02_02,val,False,True,True,True,True,2.096000099554658, +mid03_00,val,False,True,True,True,True,2.0280000963248312, +mid03_02,val,False,True,True,True,True,2.0400000968948007, +mid04_00,val,False,True,True,True,True,2.076000098604709, +mid04_02,val,False,True,True,True,True,2.05600009765476, +mid05_00,val,False,True,True,True,True,2.032000096514821, +mid05_02,val,False,True,True,True,True,2.092000099364668, +mid06_00,val,False,True,True,True,True,2.076000098604709, +mid06_02,val,False,True,True,True,True,2.072000098414719, +mid00_05,test,False,True,True,True,True,2.0240000961348414, +mid00_07,test,False,True,True,True,True,2.0840000989846885, +mid01_04,test,False,False,True,False,False,0.0,stow +mid01_06,test,False,True,True,True,True,2.0400000968948007, +mid01_08,test,False,True,True,True,True,2.0680000982247293, +mid02_05,test,False,True,True,True,True,2.072000098414719, +mid02_07,test,False,True,True,True,True,2.0040000951848924, +mid03_04,test,False,False,True,False,False,0.0,stow +mid03_06,test,False,True,True,True,True,2.016000095754862, +mid03_08,test,False,True,True,True,True,2.0600000978447497, +mid04_05,test,False,True,True,True,True,2.0280000963248312, +mid04_07,test,False,True,True,True,True,2.0000000949949026, +mid05_04,test,False,False,False,False,False,0.0,grasp_or_lift +mid05_06,test,False,True,True,True,True,2.05600009765476, +mid05_08,test,False,True,True,True,True,2.0400000968948007, +mid06_05,test,False,True,True,True,True,2.076000098604709, +mid06_07,test,False,True,True,True,True,2.0400000968948007, +mid00_01,test,False,True,True,True,True,2.036000096704811, +mid00_03,test,False,True,True,True,True,2.0440000970847905, +mid01_01,test,False,True,True,True,True,2.0400000968948007, +mid01_03,test,False,True,True,True,True,2.0640000980347395, +mid02_01,test,False,True,True,True,True,2.032000096514821, +mid02_03,test,False,True,True,True,True,2.036000096704811, +mid03_01,test,False,True,True,True,True,2.0880000991746783, +mid03_03,test,False,True,True,True,True,2.072000098414719, +mid04_01,test,False,True,True,True,True,2.0400000968948007, +mid04_03,test,False,True,True,True,True,2.076000098604709, +mid05_01,test,False,True,True,True,True,2.092000099364668, +mid05_03,test,False,True,True,True,True,2.0280000963248312, +mid06_01,test,False,True,True,True,True,2.076000098604709, +mid06_03,test,False,False,False,False,False,0.0,grasp_or_lift diff --git a/2ARM_ROBOT/docs/evidence/custom_act_v1_20261027_summary.json b/2ARM_ROBOT/docs/evidence/custom_act_v1_20261027_summary.json new file mode 100644 index 00000000..77710937 --- /dev/null +++ b/2ARM_ROBOT/docs/evidence/custom_act_v1_20261027_summary.json @@ -0,0 +1,72 @@ +{ + "project": "SWEEPICK custom ACT V1", + "source_sha256": "b0d3b524f57b6ae4e2f01c2533bab8c0ca90a532c99112a13bdfdf9092fa599f", + "evaluation_report_date": "2026-10-26", + "environment": "simulation", + "evaluation_checkpoint_epoch": 30, + "evaluation_checkpoint_sha256": "032aab674bdbe83a3e75ebf793fc98026ea0c382f994f40ef05f5c4730ab0cf7", + "temporal_ensemble": true, + "temporal_k": 0.01, + "repetitions_per_position": 1, + "success_definition": "Lift>=30mm -> measured Stow within0.025rad -> elevated/contact hold2s physics", + "randomization_scope": "blockRGB,table/wallUVtextures,lighting;fixedyaw,size,physics,headcalibration", + "evaluation": { + "all": { + "successes": 132, + "attempts": 143, + "success_rate": 0.9230769230769231 + }, + "train": { + "successes": 76, + "attempts": 80, + "success_rate": 0.95 + }, + "val": { + "successes": 29, + "attempts": 32, + "success_rate": 0.90625 + }, + "test": { + "successes": 27, + "attempts": 31, + "success_rate": 0.8709677419354839 + }, + "train_used": { + "successes": 59, + "attempts": 59, + "success_rate": 1.0 + }, + "train_not_used": { + "successes": 17, + "attempts": 21, + "success_rate": 0.8095238095238095 + } + }, + "failure_stages": { + "grasp_or_lift": 7, + "stow": 4 + }, + "collection": { + "trajectory_families": 113, + "views_per_family": 5, + "new_views": 452, + "total_views": 565, + "train_views": 295, + "validation_views": 145, + "preserved_test_views": 125 + }, + "offline_training": { + "completed_epochs": 200, + "best_epoch_by_validation_prior_normalized_l1": 103, + "best_validation_prior_normalized_l1": 0.015534236763812995, + "epoch200_validation_prior_normalized_l1": 0.01951522965469, + "closed_loop_evaluated": false + }, + "limits": [ + "one trial per position;not per-position success probability", + "SIM result;not hardware success or safety validation", + "epoch30 closed-loop result separate from epoch200 offline training", + "temporalOFF is one interrupted latest-first diagnostic;originalACTsequentialOFF notrun", + "team artifact does not assign individual authorship" + ] +} diff --git a/README.md b/README.md index f7268829..0f9c0833 100644 --- a/README.md +++ b/README.md @@ -1,40 +1,44 @@ # DAPIER | 전형주 · Physical AI와 로봇 소프트웨어 -DAPIER 국비교육에서 배운 내용을 코드와 실험으로 확인하고, 개인 기여를 정리한 포트폴리오 저장소다. 모방학습, 물리 시뮬레이션, Sim-to-Real을 중심으로 로봇의 관측·데이터·제어·평가를 연결하고 있다. +DAPIER에서 배운 내용을 로봇 연동, 시뮬레이션과 데이터 검증으로 확인하는 포트폴리오 저장소다. 관측을 학습 데이터로 만들고, 학습 정책의 출력이 실제 로봇 명령으로 이어지는 과정을 중심으로 정리했다. -대표 팀 프로젝트는 **sweepick — 이동형 양팔 청소 로봇**이다(팀 프로젝트명 TJJ). 바닥의 물체를 보고 접근해 집고, 지정한 곳에 놓은 뒤 그 자리를 청소하고 충전대로 돌아가는 저비용 모바일 매니퓰레이터를 목표로 한다. 2026-10-16부터 내 팀의 범위는 **상체(SO-101 양팔·그리퍼·상부 카메라)의 집기·운반·놓기**이고, 이동 베이스·Visual SLAM·도킹은 다른 팀이 맡는다. 초기 신발 정리 과제는 개발 이력으로만 남겼다. +대표 팀 프로젝트 **SWEEPICK**은 청소 경로의 작은 물체를 옮겨 공간을 확보하는 저비용 양팔 모바일 매니퓰레이터다. 물체 이동·청소·저전력 복귀·도킹·충전 흐름은 시뮬레이션에서 구현했고, 실물 기능을 통합하고 있다. 초기 신발 정리 과제는 개발 이력으로 보존한다. -[포트폴리오·이력서](https://julianjeonresume.netlify.app/) · [sweepick 양팔 프로젝트](2ARM_ROBOT/README.md) · [sweepick 실행 소스(검토 브랜치)](https://github.com/Alpenj/DAPIER/tree/pro/sweepick-review-20261015/2ARM_ROBOT/sweepick) · [문제 해결과 실험 근거](2ARM_ROBOT/docs/RESEARCH_SUMMARY_KO.md) · [학습 아카이브](https://github.com/Alpenj/physical-ai-lab) +**전형주 주 담당: 모방학습·시뮬레이션·Sim-to-Real·데이터 검증. Visual SLAM도 직접 설계·구현했다.** 프로젝트 전체 실험 결과는 담당 경험과 연결해 설명하되, 외부 ACT·RoboTwin 구현과 팀 공동 자료의 저작 범위는 구분한다. -## 먼저 볼 내용 +[포트폴리오·이력서](https://julianjeonresume.netlify.app/) · [SWEEPICK 프로젝트](2ARM_ROBOT/README.md) · [CUSTOM ACT V1 실험 기록](2ARM_ROBOT/docs/CUSTOM_ACT_V1_KO.md) · [공개 그림·영상](https://julianjeonresume.netlify.app/research/custom-act-v1/) · [이전 조작 연구](2ARM_ROBOT/docs/RESEARCH_SUMMARY_KO.md) -| 확인할 내용 | 코드와 문서 | -|---|---| -| 프로젝트 목표, 담당 범위, 구현과 검증 상태 | [sweepick / 2ARM_ROBOT](2ARM_ROBOT/README.md) | -| 실물 집기 실행기·콘솔·저장 기록 검수 코드 | [2ARM_ROBOT/sweepick (검토 브랜치, main 미병합)](https://github.com/Alpenj/DAPIER/tree/pro/sweepick-review-20261015/2ARM_ROBOT/sweepick) | -| 파지 실패·끝점 오차·미끄러짐을 조사한 과정 | [양팔 조작 연구 기록](2ARM_ROBOT/docs/RESEARCH_SUMMARY_KO.md) | -| 양팔 모델, 접촉과 경로 검사 | [MuJoCo 모델](2ARM_ROBOT/sim/mobile_dual_so101/README.md) | -| Visual SLAM·Nav2·정밀 도킹 협업 | [팀 이동 모듈](https://github.com/shouttt1320/Dapier_project_visaul_slam) | +## CUSTOM ACT V1: 데이터에서 실행까지 -## 내가 맡은 부분 +학습 손실만으로 로봇의 작업 완료를 판단하기 어려웠다. 시연을 어떤 기준으로 나누었는지, 정책이 어떤 관측을 받는지, 예측한 행동 청크가 실제 명령으로 어떻게 이어지는지를 함께 기록했다. -**주 담당은 모방학습·시뮬레이션·Sim-to-Real이다.** 시연 데이터의 의미와 시간 정렬, 정책 입력과 출력, 물리 모델, 접촉·경로 검사와 평가 기준을 다룬다. 문제가 생기면 조건을 고정한 비교를 통해 데이터, 계획, 제어와 시뮬레이션의 영향을 나누어 확인한다. +| 단계 | 수행 내용 | 확인한 결과 | +|---|---|---| +| 데이터 수집 | 원본 113개 궤적의 동작을 유지하며 손목 RGB의 물체색·배경·테이블 텍스처·조명을 5개 외형으로 구성. 관측·상태·명령·시각 정합 확인 | 565개 뷰. 궤적 train/val/test=59/29/25, 뷰=295/145/125. 같은 궤적의 외형은 동일 분할 유지 | +| 학습 | 양손목 RGB·head PCD·관절 상태를 입력으로 사용하는 ACT 학습 | 200 epoch 완료. best validation은 epoch103, prior normalized L1=0.01553 | +| 추론 | 별도로 고정한 epoch30 체크포인트, temporal ensemble ON(k=0.01)으로 SIM 폐루프 평가 | 143개 위치 각 1회 중 132회 완료(92.3%). Test 위치는 27/31(87.1%) | +| 분석 | 예측 청크의 target 시점·가중치·관절 명령·실측값·phase·영상 연결 | 실패 11회 중 grasp/lift 7회, stow 4회. 청크 집계 결과를 저장 CSV에서 재구성해 확인 | -Visual SLAM 모듈의 설계·구현·코드 작업에도 협업 참여했다. 이동 모듈의 주 담당은 팀원 `shouttt1320`이며, 해당 모듈과 내 양팔 조작 작업의 기여를 구분한다. 교육 예제·외부 라이브러리·팀 작업을 모두 독자 개발 성과로 계산하지 않는다. +폐루프 완료 기준은 **30 mm 이상 Lift → Stow → 물리 2초 Hold**다. 외형은 랜덤화하고 물체 크기(40 mm)·yaw·물성·카메라 보정은 고정했다. 위 92.3%는 이 SIM 조작 평가의 관측값이다. 200 epoch 최종 모델의 폐루프 결과, 실물 성공률이나 전체 청소 시나리오 성공률과 합산하지 않는다. -## 확인한 결과와 적용 범위 +## 실물 기록과 후속 연동 -| 항목 | 상태 | 내용 | -|---|---|---| -| 실물 집기 (규칙 기반 교사) | 실물 확인 | 2026-10-08 왼팔이 사람 도움 없이 블록을 집고·들고·내려놓은 첫 1회. OS30A 깊이로 블록 위치를 잡고 IK로 접근한 뒤 손목 카메라로 정렬했다. | -| 자동 교사 시연 수집 | 실물 확인 | 2026-10-18~23 자동 교사(관측 → 손목 영상 정렬 → 하강 → 집기 → 들기 → 운반 → 놓기 → 복귀)를 약 170회 실행해, 3-view(손목 RGB 2 + OS30A RGB-D)와 양팔 측정값·실제 서보 명령을 함께 기록했다. 교사 판정 성공은 빨강 40 mm 큐브 약 50회, 검정 30 mm 큐브 20회, 검정 막대 22회다. | -| ACT 접근 + 교사 마무리 | 실물 1회 | 2026-10-23 학습 정책(ACT)이 블록 위까지 접근하고, 정체를 감지하면 교사 실행기가 이어받아 집기~운반~놓기~복귀까지 마쳤다. ACT 단독 집기 성공은 아직 없다. | -| ACT 재학습 | 진행 중 | 위 실물 시연 원본에서 학습 데이터를 다시 만들어(교사 정지 구간 제외, 날짜 단위 held-out) 헤드 점군 + 양 손목 RGB 입력 ACT를 학습하고 있다. 결과는 아직 없다. | -| 이동·도킹 | 다른 팀 담당 | 협업 저장소의 RTAB-Map RGB-D 매핑·localization, Nav2, 듀얼 ArUco 도킹 코드. 상체와 연결한 실물 통합 성공은 아직 없다. | +기존 실물 트랙은 신규 SIM 평가와 별도로 유지한다. 2026-10-18~26 Native 교사 콘솔은 집기·이동·놓기·복귀 120/198회를 성공으로 판정했다. 실물 데이터 기반 ACT TJJ v2는 학습46/검증7 run의 관절 예측오차 3.30°(epoch690)를 기록했고, 정책 정체 후 교사 인계로 교정 시연16개를 확보했다. 예측오차는 작업 완료율과 다른 지표다. + +10/27 후속 연구는 ACT30과 실물 실행기의 관측·12축 절대행동 계약, 앙상블·STOP·feedback·파지 증거의 연결을 확인하는 단계다. 새 30초 정지 shadow는 모터 명령 없이 읽기 경로를 확인한 기록이며, 전체 180초 검증과 새 실물 파지 완료를 뜻하지 않는다. [최신 연구 노트](https://www.notion.so/4065788b5ed1810aaec9c710b0d9e288)(접근 권한 필요)에 조건과 후속 기록을 연결했다. + +## 코드와 연구 이력 + +| 확인할 내용 | 코드와 문서 | +|---|---| +| 수집·학습·추론·분석의 조건과 근거 | [CUSTOM ACT V1](2ARM_ROBOT/docs/CUSTOM_ACT_V1_KO.md) | +| 실물 실행기·콘솔·저장 기록 검수 | [sweepick 검토 브랜치](https://github.com/Alpenj/DAPIER/tree/pro/sweepick-review-20261015/2ARM_ROBOT/sweepick) | +| 양팔 모델·접촉·경로 검사 | [MuJoCo 모델](2ARM_ROBOT/sim/mobile_dual_so101/README.md) · [이전 연구](2ARM_ROBOT/docs/RESEARCH_SUMMARY_KO.md) | +| Visual SLAM·Nav2·도킹 모듈 | [이동 모듈 협업 저장소](https://github.com/shouttt1320/Dapier_project_visaul_slam) | + +상체 실행기는 10/16부터 이동 베이스를 직접 구동하지 않고 정지 요청과 조작 결과를 전달하는 역할로 나눴다. 이 실행 구조와 본인의 Visual SLAM 설계·구현 경험은 별개다. 공동 저장소와 교육 예제·외부 라이브러리의 기여 이력은 보존한다. -- 상태는 `실물 확인 / 실물 1회 / SIM 확인 / 진행 중`으로 나눠 적었다. 한 번의 성공을 반복 성공률로 쓰지 않는다. -- sweepick 실행 소스는 `pro/sweepick-*` 작업 브랜치에서 검수하고 있으며 아직 `main`에 병합하지 않았다. `main`의 기존 코드(신발 정리 데이터 패키지, native ACT 등)는 이전 단계의 구현이다. -- 2026-09-21 SIM 연속 조작 결과([PR #68](https://github.com/Alpenj/DAPIER/pull/68), 닫힘·미병합) 등 이전 수치와 비교 조건은 [연구 기록](2ARM_ROBOT/docs/RESEARCH_SUMMARY_KO.md)에 모았다. +연구 실행기와 후속 결과가 모두 공개 `main`에 병합된 것은 아니다. 검토 브랜치 및 고정 후보의 결과는 해당 revision에서 읽는다. 이번 갱신은 문서와 공개 요약 근거를 정리한 것으로, 런타임·보정값·장치 설정을 변경하지 않았다. ## 교육·실습 코드 @@ -51,4 +55,4 @@ Visual SLAM 모듈의 설계·구현·코드 작업에도 협업 참여했다. 외부 코드·자산의 출처와 라이선스는 해당 폴더에 보존했다. 별도 학습 포크를 이 저장소로 옮긴 내역은 [통합 기록](docs/FORK_MIGRATION_20260907_KO.md)에서 확인할 수 있다. -문서 갱신: 2026-10-24. 프로젝트 소개를 sweepick 기준으로 바꾸고 10/08~10/23 실물 진행을 요약했다. 코드·설정·실험 결과 파일은 이 갱신에서 바꾸지 않았다. +문서 갱신: 2026-10-27. 지정된 CUSTOM ACT V1 내장 보고서·CSV·학습 로그와 기존 Notion·실물 기록을 대조했다.