긴 퍼트(1.0–1.6m)에서 물성을 아는 오라클도 첫 퍼트 19~22%, 변동 0에서도 3차 56.6%였다. "시도별 변동이 지배해서 히스토리 효과가 안 난다"고 결론 냈지만, 그 변동이 주입한 것(공 2mm 이동, 그린 빠르기 3%)인지 시뮬 자체인지 알지 못했다.
isaac/diag_noise.py: 64개 그린에서 오라클 퍼트를 구한 뒤 같은 퍼트를 8회 반복. 변동을 하나씩만 켜고(없음 / 공 앞뒤 2mm / 좌우 2mm / 빠르기 3% / 전부) 출발 방향·속도(최고 속도 0.2초 뒤)의 반복 표준편차, 손 궤적 반복 오차, 홀인율을 측정.TAS_HEAD=flat): 10cm 폭 직육면체, 접근 구간에서 손을 수직축으로 돌려 면을 라인에 맞춤(isaac/sim.py scripted_controller의 psi 항, golf2_scene.py CuboidCfg).TAS_DT). 제어 주기는 초 단위라 정책 25Hz·관절 명령 50Hz는 유지.isaac/probe_gap.py: 오라클 퍼트 vs "평균 물성 퍼트"(평균 빠르기·숨은 경사 0으로 탐색한 최적 퍼트 = 기억 없는 정책의 상한)를 평가 변동 아래에서 비교. 숨은 범위 후보 P1~P3.TAS_GOLF_HARD=1: 실제 Panda 속도 한계, c 0.050–0.100(보간 0.078–0.086, 외삽 0.047–0.110), 숨은 경사 0.5–1.5°(보간 1.1–1.25°, 외삽 1.7°). 평가에 avg_physics 기준선 추가(loop.solve_average).같은 오라클 퍼트 8회 반복, 64개 그린, 컵 1.0–1.6m (속도 한계 2.5배 완화 상태):
| 설정 | 변동 없음 홀인 | 평가 조건 홀인 | 방향 sd | 속도 sd |
|---|---|---|---|---|
| 둥근 헤드, 5ms (기존) | 55.3% | 18.9% | 3.33° | 11.6% |
| 평면, 5ms | 71.3% | 33.4% | 3.22° | 11.1% |
| 평면, 2.5ms | 91.8% | 71.3% | 0.55° | 5.2% |
| 둥근, 1.25ms | 95.1% | 68.4% | 1.54° | 3.7% |
| 평면, 1.25ms | 100% | 83.0% | 0.13° | 4.5% |
오라클 vs 평균 물성 퍼트 (평면, 1.25ms, 실제 속도 한계, 평가 변동; 퍼트당 / 3회 안 홀인 %):
| 물성 | 오라클 | 평균 물성 퍼트 |
|---|---|---|
| 기존 학습 범위 | 82.8 / 92.2 | 72.9 / 85.9 |
| 기존 보간 | 85.9 / 98.4 | 74.5 / 93.8 |
| 기존 외삽 | 78.6 / 92.2 | 57.3 / 70.3 |
| P1 (c .05–.10, 경사 0–1.5°) | 79.7 / 92.2 | 56.8 / 62.5 |
| P2 (c .05–.10, 경사 .75–1.5°) | 71.9 / 85.9 | 37.0 / 45.3 |
| P3 (c .045–.11, 경사 .5–2°) | 70.3 / 87.5 | 31.8 / 39.1 (탐색 홀인 84.4%) |
data_golf3/, runs_golf3/, results_golf3/). 조각당 약 500초 → 단계당 약 6.7시간. 첫 조각: 오라클 탐색 홀인 91~95%, 시연 재실행 홀인 88~95%(긴 퍼트 2차는 50%).