논문을 읽고 나면 바로 코드에서 비슷한 항목을 찾고 싶어집니다. 실제로 제 작업에서도 FLAM의 보상 설계를 읽은 뒤 H1Walk reward v2를 정리했습니다. 하지만 논문의 항을 그대로 옮긴 것은 아닙니다. 기존 보상에서 무엇이 부족했는지, 바꾼 항이 어떤 관찰을 겨냥하는지, 그 뒤 어떤 평가로 받아들일지를 먼저 적었습니다. 이 과정이 없으면 논문에서 가져온 이름만 남고 변경의 이유는 사라집니다.
먼저 논문의 조건과 제 조건을 나란히 둡니다
FLAM은 휴머노이드 전신 모션을 다루는 논문이고, 현재 H1Walk 환경은 속도 추종과 균형을 학습하는 Isaac Lab 태스크입니다. 둘은 목표와 관측·제어 조건이 같지 않습니다. 그래서 논문의 전체 방법을 재현한다고 말할 수 없습니다. 다만 contact, base orientation, foot slide처럼 현재 보상 설계에서 확인할 수 있는 신호는 어떤 역할을 하는지 따로 읽을 수 있었습니다.
이 비교는 채택보다 보류를 더 많이 만듭니다. 조건이 다른 부분은 Theory와 논문 노트에 남기고, 현 환경에서 설명 가능한 항만 reward v2 후보로 옮겼습니다. 인용은 구현의 증거가 아니라 다음 가설의 출처가 됩니다.
FLAM의 핵심은 인간 모션 파운데이션 모델이 로봇 자세를 재구성한 차이를 안정화 보상으로 쓰는 것입니다. 논문의 H1은 양손을 포함한 61-DoF이고 TD-MPC2와 Humanoid-Bench에서 200만 환경 step을 사용합니다. 현재 H1Walk는 19차원 action의 속도 추종 PPO 태스크입니다. 같은 H1이라는 이름만 보고 보상식을 옮기면, 손가락을 포함한 자세 prior와 보행 환경의 차이를 지워 버리게 됩니다. 그래서 이번 변경은 FLAM 재현이나 foundation-model reward의 적용이 아니라, 논문이 지적한 ‘과제 보상만으로 자연스러운 자세를 만들기 어렵다’는 문제를 기존 신호로 다시 점검한 수준입니다.
변경은 파일 하나와 평가 기준 하나로 묶습니다
reward v2에서는 feet-air-time, stand-still, base-height, hip-yaw, foot-slide, flat-orientation 항을 다시 조정했습니다. 이 이름만으로 ‘보행이 좋아졌다’고 말할 수는 없습니다. 실제로 기존 H1 3,000 iteration 체크포인트는 평균 episode length 743이라는 수치가 있어도 자연 보행의 합격 결과로 받지 않았습니다. 보상 신호가 살아남게 만들었는지와 사람 눈에 자연스러운 보행이 나왔는지는 다른 질문이기 때문입니다.
그래서 저는 구현 변경 뒤에 어떤 메트릭과 재생 장면으로 확인할지까지 한 묶음으로 남깁니다. 지금 단계에서는 reward v2 재학습과 기존 조건의 비교가 다음 검증입니다. 원인을 확정하지 못한 관찰은 가설로만 기록합니다.
한 번에 여러 항을 바꾼 대가도 기록합니다
reward v2에서는 feet_air_time의 가중치를 1.0에서 2.0으로 조정하고, stand_still·base_height·hip_yaw·feet_slide를 추가했으며, flat_orientation은 -0.2에서 -1.0으로 바꿨습니다. 이 묶음은 발 체공, 정지 상태, 몸통 높이, 골반 회전, 미끄럼, 상체 기울기를 동시에 겨냥합니다. 결과가 좋아져도 어느 항이 기여했는지를 단번에 분리할 수 없다는 한계가 생깁니다.
그렇다고 모든 항을 처음부터 하나씩만 바꾸는 것도 현실적인 유일한 답은 아닙니다. 당시 목적은 기존 checkpoint의 부자연스러운 보행에서 빠진 제약을 명시하고 새 기준선을 만드는 것이었습니다. 따라서 첫 비교에서는 동일한 시나리오로 전체 묶음의 효과를 확인하고, 통과하지 못하면 관련 지표와 재생 장면을 보고 ablation 순서를 다시 정해야 합니다. 이 판정 계획이 없으면 여러 항을 바꾼 변경은 원인을 설명할 수 없는 조정으로 끝납니다.
논문에서 가져온 것과 아직 가져오지 않은 것을 함께 씁니다
이번에 가져온 것은 자연스러운 자세를 별도 신호로 다뤄야 한다는 문제의식입니다. 가져오지 않은 것은 RoHM, SMPL-X 관절 매핑, 안정화 보상의 임계값 게이팅, TD-MPC2 학습 구성입니다. 빠른 동작과 비평면 환경에서 prior가 부정확할 수 있다는 논문의 한계도 현재 rough-terrain 목표와 직접 부딪힙니다. 따라서 평지 reward 변경이 통과하더라도 FLAM 방식이 검증됐다고 부르지 않습니다.
Theory.md는 요약이 아니라 변경의 위치를 찾는 지도입니다
새 논문이나 환경 변경이 생기면 저는 Theory.md의 마스터 flow와 관련 상세 노트를 함께 갱신합니다. 실험 실행의 세부 조건은 sim/experiments/에, 논문 자체는 research-notes/Papers/에 둡니다. 같은 내용을 여러 곳에 복사하지 않는 대신, 어느 판단이 어느 파일과 평가에 연결되는지를 링크로 남깁니다.
제가 논문 노트를 구현으로 연결할 때 지키려는 순서는 단순합니다. 조건 차이를 먼저 적고, 현재 환경에서 검증 가능한 한 항만 바꾸며, 결과가 나오기 전에는 성공으로 쓰지 않습니다. 이 순서를 지키면 읽기가 코드 변경의 장식이 아니라 다음 실험의 출발점이 됩니다.
함께 읽기: RFM 읽기 지도 · Theory 구현 지도