00이 노트
앉아 있는 휴머노이드 Unitree G1이 상자 안 철도 부품 4종을 종류별로 좌우 선반 칸에 넣는 일을, 로봇 없이 컴퓨터 안에서 만들고 가르치고 평가한 과정을 정리한 노트입니다. 조건마다 1,000 에피소드를 돌린 기본 조건에서 사람이 짠 규칙은 56.9 %를 성공했고, 강화학습으로 다듬은 정책은 81.9 %를 성공했습니다.
앞쪽 절은 처음 보는 사람을 위한 기초 개념입니다. 물리 시뮬레이션, 로봇 팔을 움직이는 계산, 모방학습과 강화학습, 월드모델, VLA를 차례로 다룹니다. 개념마다 아래에 "이 프로젝트에서" 칸을 두어 실제로 어떤 파일과 숫자로 쓰였는지 적었습니다. 09절에는 일마다 어느 PC가 맡는지 표로 정리했습니다.
읽는 법
절 제목을 누르면 펼쳐집니다. 처음에는 이 절만 펼쳐져 있습니다. 머리의 목차 단추로 어느 절이든 건너뛸 수 있고, 모르는 약어는 11절 용어 사전에 있습니다.
자료가 있는 곳
| 무엇 | 어디 |
|---|---|
| 프로젝트 폴더 | D:\2_POC\1_휴머노이드 (프로그램들은 ASCII 정션 C:\hl로 연다) |
| 계획·진행 기록 | PLAN.md, PROGRESS.md(최신이 맨 아래) |
| 모든 수치의 원본 | sim/params.json, 비교 결과 out/results.json |
| 참고 자료 대조 | docs/REFERENCES_2026-10.md |
01휴머노이드와 물류
2026년 들어 휴머노이드가 실제 일을 하는 곳은 주로 물류입니다. 토트(손잡이 없는 플라스틱 상자)를 나르고, 택배를 나누고, 부품을 정해진 자리에 놓는 일입니다.
최근 동향
| 시기 | 내용 |
|---|---|
| 2026-05 | Figure가 Helix-02 로봇으로 택배 분류를 191시간 넘게 생중계했다고 발표. 10시간 경주에서 로봇 12,732개, 사람 12,924개(회사 수치). |
| 2026-05 | China Post 광저우 거점에서 RobotEra M7이 시간당 1,200개 택배 분류. |
| 2026-08 | UBTECH·Galbot·AgiBot이 BYD·CATL·Foxconn 공장 수주. 상반기 휴머노이드 출하 추정 1.9만~2.2만 대, 그중 Unitree 약 5,900대. |
| 2026-09 | 현대 조지아 공장에 Atlas 훈련 센터. 첫 작업은 부품 물류와 순서 맞추기. |
| 2026-10 | Schaeffler 타이창 시설에서 휴머노이드 6대가 부품 분류·조립·검사·포장. Agility는 GXO 사이트에 Digit을 더 배치. |
시간당 처리량throughput, items per hour
정해진 시간 동안 끝낸 물건 수입니다. 업계는 성공률과 함께 이 숫자로 성과를 말합니다. 실패한 시도에 쓴 시간도 전체 시간에 들어가므로, 성공률이 같아도 빠르면 처리량이 오릅니다.
sim/evaluate.py). 기본 조건 1,000 에피소드에서 규칙 기반 287개, 강화학습 후 594개입니다.Unitree G1과 Dex3 손Unitree G1 humanoid, Dex3-1 hand
키 1.3 m급 휴머노이드입니다. 손 포함판은 관절 모터가 43개(다리 12, 허리 3, 팔 7×2, 손 7×2)이고 무게는 34.4 kg입니다. Dex3 손은 엄지 하나와 손가락 둘로 집습니다.
g1_with_hands.xml을 썼습니다. 의자에 앉은 자세라 다리 관절은 앉은 각도로 굳히고 허리와 두 팔·두 손만 움직입니다.이 시연의 작업seated sorting task
탁자 위 얕은 상자(안쪽 32×36 cm, 벽 3.5 cm)에 포장된 철도 부품이 4~7개 섞여 있습니다. 종류마다 놓을 칸이 정해져 있고, 칸이 있는 쪽 손이 옮깁니다.
sim/params.json).02물리 시뮬레이션
물리 시뮬레이션은 물체의 무게, 마찰, 관절, 모터 힘을 수식으로 두고 아주 짧은 시간 간격마다 다음 상태를 계산하는 프로그램입니다. 로봇이 물건을 파지했는지, 미끄러졌는지는 이 계산의 결과입니다.
MuJoCoMulti-Joint dynamics with Contact
로봇 연구에서 널리 쓰는 공개 물리 엔진입니다. 접촉(물체끼리 닿는 힘)을 빠르고 안정되게 풀고, 같은 모델을 파이썬과 웹 브라우저(WASM) 양쪽에서 돌릴 수 있습니다.
sim/scene.py가 모델 편집 도구(MjSpec)로 만듭니다.적분기integrator
힘으로 다음 속도와 위치를 구하는 계산 순서입니다. 빠른 근사 방식은 가벼운 물체가 여럿 쌓이면 값이 폭발(발산)할 수 있습니다.
충돌 모양과 볼록 껍질collision geometry, convex hull
물리 엔진은 복잡한 메시를 그대로 쓰지 않고 바깥을 감싸는 볼록한 모양(볼록 껍질)으로 바꿔 충돌을 계산합니다. 오목한 곳이 채워지므로 실제에는 없는 충돌이 생길 수 있습니다.
도메인 무작위화domain randomization
학습할 때마다 물체 무게, 마찰, 위치 등을 조금씩 바꿔, 정책이 한 가지 조건에만 맞춰지지 않게 하는 방법입니다.
sim/env.py의 CONDITIONS).03로봇 팔을 움직이는 계산
사람은 "손을 저기로" 하고 생각하지만, 로봇은 관절 각도로 움직입니다. 엔드이펙터 목표를 관절 각도로 바꾸는 계산이 역기구학입니다.
자유도DoF, Degrees of Freedom
독립해서 움직일 수 있는 방향의 수입니다. 손 위치(3)와 자세(3)를 정하려면 최소 6이 필요하고, 그보다 많으면 같은 손 자세를 여러 팔 모양으로 만들 수 있습니다.
역기구학IK, Inverse Kinematics
엔드이펙터 목표 위치·자세에서 관절 각도를 거꾸로 구하는 계산입니다. 자코비안(관절을 조금 움직일 때 손이 어떻게 움직이는지 나타내는 표)을 써서 오차를 줄이는 방향으로 여러 번 고칩니다.
sim/kin.py). 허리는 팔보다 덜 쓰도록 가중치(yaw 0.5, roll 0.12, pitch 0.35)를 두었습니다.영공간 자세 유지null-space posture control
손 목표에 영향을 주지 않는 방향으로만 팔을 정해 둔 기본 자세 쪽으로 당기는 방법입니다. 같은 목표라도 매번 같은 팔 모양이 나옵니다.
위치 제어 구동기position actuator, PD control
목표 각도를 주면 지금 각도와의 차이에 비례하는 힘을 내는 모터 모델입니다. 힘 한계가 있어 막히면 목표에 못 갑니다.
Dex3로 위에서 집기top-down pinch grasp
손바닥을 아래로 하고 엄지와 굽힌 손가락 끝 사이에 물건을 끼워 드는 방법입니다.
04규칙에서 학습으로
세 가지 제어기를 같은 에피소드에서 비교했습니다. 사람이 짠 규칙, 그 규칙 기반 제어기를 모방한 BC 정책(학습 전), 그 위에 강화학습으로 보정을 더한 정책(학습 후)입니다.
규칙 기반 제어기
규칙 기반 제어기scripted controller
사람이 단계를 정해 둔 프로그램입니다. 물건 위로 이동 → 내려가기 → 파지 → 들기 → 칸 위로 → 내리기 → 놓기 → 물러나기.
sim/scripted.py. 물건의 짧은 축(폭 6.2 cm 이하)을 골라 파지하고, 엄지가 상자 벽에 걸리는 방향은 피합니다. 200 에피소드에서 64.5 %(첫 평가), 최종 대응 비교에서 60.0 %였습니다.모방학습
행동 복제BC, Behavior Cloning
시연 데이터를 보여 준 제어기가 각 상황에서 낸 행동을 신경망이 그대로 따라 하도록 학습하는 방법입니다. 시연보다 나아지지는 않습니다.
sim/bc.py, 은닉층 512-512-256, 18초). 성공률 65.0 %로 규칙 기반과 거의 같았습니다. 이것이 비교표의 "학습 전"입니다.외란 주입 시연DART, Disturbances for Augmenting Robot Trajectories
시연 데이터를 모을 때 실행하는 행동에만 잡음을 섞고, 기록은 시연 제어기가 그 상태에서 낼 행동으로 남깁니다. BC 정책이 조금 어긋났을 때 되돌아오는 법도 배웁니다.
sim/collect.py, 14프로세스 145초).강화학습
강화학습과 PPORL, Proximal Policy Optimization
정책이 직접 해 보고 받은 보상이 커지는 쪽으로 조금씩 바뀌는 학습입니다. PPO는 한 번에 너무 크게 바뀌지 않게 막아 안정적인 강화학습 방법입니다.
sim/env.py).잔차 강화학습residual RL
BC 정책은 고정해 두고, 그 행동에 더할 작은 보정만 강화학습으로 배우는 방법입니다. 처음에는 보정이 0이라 BC 정책 성능에서 출발하고, 좋은 동작을 잃지 않습니다. Ankile 외(2025)의 ResFiT가 다섯 손가락 휴머노이드 실물에서 이 방법으로 성공률을 14~23 %에서 약 64 %로 올렸습니다.
sim/train_res.py). PPO 24환경으로 1,200만 스텝(약 1시간 55분, 5090 PC). 체크포인트 가운데 1,100만 스텝이 300 에피소드 85.7 %로 가장 좋아 골랐고, 고르는 데 쓰지 않은 판으로 최종 비교했습니다.행동 공간action space
정책이 매 주기 내는 값의 종류입니다. 관절 각도를 직접 내게 할 수도 있고, 엔드이펙터 목표를 내고 아래 단계가 관절로 바꾸게 할 수도 있습니다.
05평가와 결과
세 제어기를 같은 에피소드(같은 물건 배치와 같은 무작위 조건)에서 조건마다 1,000 에피소드씩 돌렸습니다. 학습 후 정책이 여섯 조건 모두에서 규칙 기반보다 성공률이 18~27점 높았고, 시간당 처리량은 1.8~2.2배였습니다.
대응 비교paired evaluation
비교하는 제어기마다 같은 시험 문제를 주는 방법입니다. 에피소드마다 난수를 고정하면 두 제어기의 차이에서 문제 운이 빠집니다.
seed × 100003 + ep로 고정합니다(sim/evaluate.py). 처음에는 이것이 없어 제어기마다 다른 에피소드를 받았고, 고친 뒤 다시 쟀습니다.최종 비교(시드 3000, 조건마다 1,000 에피소드)
| 조건 | 규칙 기반 | 학습 전(모방학습) | 학습 후(잔차 강화학습) |
|---|---|---|---|
| 기본 | 56.9 % · 287개/시 | 62.7 % · 323 | 81.9 % · 594 |
| 무거운 물건(1.5배) | 56.5 % · 284개/시 | 60.8 % · 312 | 81.8 % · 593 |
| 미끄러운 물건(마찰 0.6배) | 55.9 % · 282개/시 | 61.2 % · 315 | 83.3 % · 614 |
| 물건 8개 | 64.1 % · 326개/시 | 68.1 % · 354 | 82.0 % · 584 |
| 랙 2 cm 어긋남 | 59.9 % · 304개/시 | 61.4 % · 313 | 84.1 % · 623 |
| 손가락 하나 힘 35 % | 58.2 % · 295개/시 | 63.4 % · 331 | 84.5 % · 626 |
물건 하나 옮기는 평균 시간은 기본 조건에서 규칙 기반 5.3초, 학습 후 3.4초입니다. 상자 비우기(물건 6개, 24 에피소드)에서는 학습 후 75 %(108/144), 규칙 기반 53 %(76/144)를 칸에 넣었습니다.
실패 유형
규칙 기반의 실패는 대부분 손이 집을 높이까지 못 내려가 시간이 다 된 경우였습니다. 원인은 엄지 끝이 상자 바닥에 닿음, 손목이 상자 벽에 걸림, 다른 물건에 막힘 순이었습니다(sim/diag.py). 학습 후 정책은 이 경우가 줄었고, 물건 하나 옮기는 시간도 짧아졌습니다.
06실사 렌더링
사이트의 영상은 MuJoCo가 계산한 움직임을 블렌더가 실사 재질과 조명으로 그린 것입니다. 블렌더는 움직임을 새로 만들지 않습니다.
경로 추적 렌더러path tracing, Blender Cycles
빛이 물체에 부딪혀 튀는 경로를 많이 따라가 실제 같은 그림자와 반사를 만드는 그리기 방법입니다. 샘플 수가 적으면 잡음이 생기는데, 잡음 제거기(denoiser)로 지웁니다.
sim/export_blender.py), 블렌더 4.5 Cycles가 그 자리에 물체를 놓고 그립니다(blender/render_anim.py, 24샘플, OptiX 잡음 제거). 프레임 하나에 5090에서 약 5~10초. 블렌더가 긴 렌더에서 메모리 부족으로 멈춰 200프레임씩 끊어 돌립니다.CC0 재질Creative Commons Zero assets
저작권을 포기한 무료 자료라 출처 표시 없이 써도 됩니다.
assets/polyhaven). 부품 상자의 라벨(품번, 바코드 모양)은 파이썬으로 직접 그렸습니다(blender/make_labels.py).카메라 구도camera framing
보여 주려는 것이 가리지 않게 카메라 위치와 화각을 정합니다.
07월드모델
월드모델은 지금 상태(와 행동)를 받아 다음에 세상이 어떻게 될지 예측하는 모델입니다. 이 프로젝트는 월드모델을 두 가지로 씁니다. 렌더 영상의 환경을 바꿔 보이는 증강과, 정책을 월드모델 안에서 돌려 성적을 매기는 평가입니다.
월드모델로 환경 증강
Cosmos Transfer 2.5NVIDIA Cosmos-Transfer2.5-2B
입력 영상의 깊이, 분할(segmentation), 에지(edge)를 조건으로 붙잡은 채 겉모습(배경, 조명, 재질)만 글로 설명한 대로 바꾸는 동영상 생성 월드모델입니다. 조건마다 가중치(0~1)를 줍니다.
blender/render_passes.py, 1280×720, 16 fps, 93프레임). 가중치는 공식 예제 값(깊이 0.6, 에지(edge) 1.0, 분할 0.4)을 그대로 씁니다. 환경은 밝은 물류센터, 철도 차량기지 부품창고, 야간 창고, 먼지 낀 낡은 창고 4가지입니다. 사이트에서는 "월드모델로 증강한 영상"으로 따로 표시합니다.Spark에서 돌리기DGX Spark, GB10, aarch64
공식 최소 GPU 메모리가 65.4 GB라 32 GB인 5090에는 안 들어갑니다. 메모리 128 GB를 CPU·GPU가 함께 쓰는 DGX Spark에서 돌립니다.
cosmos-transfer25:6을 만들었습니다(cosmos/spark/). 93프레임 한 클립에 약 46분. 첫 결과(철도 차량기지)에서 로봇 자세·손 위치·물건 위치가 원본과 같은 프레임에서 맞았고, 물건 라벨은 사라져 단색 블록이 됐습니다.영상 성공 판정Cosmos Reason 2, VLM judge
영상을 보고 질문에 답하는 시각-언어 모델(VLM)을 채점자로 쓰는 방법입니다.
월드모델 안에서 정책 평가
월드모델 기반 정책 평가world-model policy evaluation
월드모델은 "이렇게 움직이면 다음 순간 어떻게 될지"를 맞히는 신경망입니다. 물리 시뮬레이터는 물리 법칙으로 다음 순간을 정확히 계산하지만, 월드모델은 물리 법칙을 모르고 로봇이 일하는 기록을 수천 판 보면서 "이렇게 하면 대개 이렇게 되더라"를 익힙니다. 다 배우면 시뮬레이터 없이 월드모델 머릿속에서 로봇을 움직여 보고 "이 정책은 성공률이 몇 %쯤 되겠다"를 예측합니다. 실제 로봇이나 무거운 시뮬레이터 없이 정책들 가운데 잘하는 것을 고를 수 있으면 시험 비용이 크게 줄어듭니다. 2026년 OSCAR, dWorldEval 같은 연구가 이 방향입니다.
sim/wm/, 5090 PC). 그 안에서 정책 15개(세 정책 × 행동 잡음 4가지, 강화학습 중간 단계 3개)를 굴려 예측한 성공률 순위를, 실제 시뮬레이터에서 정책마다 200판씩 잰 순위와 견줍니다.월드모델의 입력과 출력
월드모델은 0.04초마다 한 번, 지금 상태와 이번에 할 행동을 받아 0.04초 뒤를 예측합니다. 카메라 영상 대신 숫자 54개로 상태를 읽는 상태 기반 모델이라 가볍고, GPU 한 장으로 학습됩니다.
| 구분 | 내용 | 개수 |
|---|---|---|
| 입력 ① 지금 상태 | 손 위치·방향, 손 쥠 정도, 목표 손 위치 | 10 |
| 물건이 손에 대해 어디 있는지, 방향, 높이, 속도 | 11 | |
| 놓을 칸이 손과 물건에서 얼마나 떨어져 있는지 | 6 | |
| 물건 종류(4종 중 무엇인지) | 4 | |
| 손가락이 물건에 닿았는지 | 2 | |
| 허리·팔 관절 각도와 각속도 | 20 | |
| 경과 시간 | 1 | |
| 입력 ② 이번 행동 | 손을 앞뒤·좌우·위아래로 얼마나, 손목을 얼마나 돌릴지, 손을 얼마나 쥘지 | 5 |
| 출력 ① 다음 상태 | 숫자 54개가 0.04초 뒤 어떻게 바뀌는지와 그 예측이 얼마나 불확실한지 | 54 |
| 출력 ② 판의 결말 | 이번 순간에 판이 끝나는지: 계속, 성공, 떨어뜨림, 엉뚱한 칸 네 가지 확률 | 4 |
머릿속에서 한 판 돌리기rollout in the world model
실제 판의 첫 상태를 넣고, 정책이 행동을 고르면 월드모델이 다음 상태를 예측하고, 그 예측을 다시 정책에 보여 주는 일을 최대 200번(8초) 되풀이합니다. 그동안 나온 성공·실패 확률을 모아 그 판의 성공 확률을 냅니다.
속임수 막기leave-one-family-out, baselines, pre-registration
월드모델이 평가할 정책의 기록을 미리 봤다면 성적을 맞히는 것이 당연합니다. 그래서 평가할 정책은 학습에서 빼고, 단순한 방법과도 겨루고, 합격 기준은 결과를 보기 전에 적어 둡니다.
sim/wm/README_KO.md에 적었습니다. 작은 시험에서는 순위가 맞지 않았지만 판 수가 적어 정답 자체가 흔들린 수준이었고, 정식 결과는 나오는 대로 적습니다.08카메라로 보는 정책
지금 정책은 물건 위치를 시뮬레이터에서 받습니다. 실물 로봇에는 그런 정보가 없으므로, 카메라 영상만 보고 같은 일을 하는 정책이 필요합니다.
교사-학생 증류teacher-student distillation
정답 정보(물체 위치 등)를 아는 교사 정책을 먼저 강화학습으로 만들고, 카메라만 보는 학생 정책이 교사의 행동을 따라 하게 학습시키는 방법입니다. 2026년 RSS의 ViserDex, Dex-X 등이 이 흐름입니다.
VLAVision-Language-Action model
카메라 영상과 글 지시를 받아 로봇 행동을 내는 큰 모델입니다. 많은 로봇 데이터로 미리 학습돼 있어 적은 데이터로 미세조정합니다.
월드모델로 시연 늘리기GR00T-Dreams
이미지 한 장과 글 지시로 월드모델(Cosmos Predict 2.5)이 새 작업 영상을 만들고, 역동역학 모델이 영상에서 행동을 뽑아 학습 데이터로 씁니다.
09전체 흐름과 PC 분담
다섯 대의 컴퓨터가 일을 나눠 맡습니다. 5090 PC가 중심에서 시뮬레이션과 학습을 하고, 메모리가 큰 일과 오래 걸리는 일은 다른 PC로 보냅니다. 5090 PC에서 SSH로 각 PC에 일을 넘기고 결과를 가져옵니다.
시스템 구성도
파란 표시는 그 일을 맡는 PC입니다. 왼쪽 위 묶음(시뮬레이션과 학습)은 5090 PC가 모두 맡고, 오른쪽 묶음은 렌더와 월드모델 증강, 아래 묶음은 진행 중인 확장입니다.
계산 자원
| PC | 접속(5090 PC에서) | GPU | 메모리·CPU | 운영체제 |
|---|---|---|---|---|
| 5090 PC | 직접 | RTX 5090 32 GB | 128 GB, 16코어 | Windows 11 |
| A6000 PC | ssh user@a6000-wsl | RTX A6000 48 GB ×2 | 47 GB(WSL), 64스레드 | WSL Ubuntu |
| Spark 1 | ssh spark1 | GB10 | 128 GB 공용, ARM 20코어 | Ubuntu 24.04 aarch64 |
| Spark 2 | ssh spark2 | GB10 | 128 GB 공용, ARM 20코어 | Ubuntu 24.04 aarch64 |
| 3090 PC | ssh d8 | RTX 3090 24 GB | 256 GB, 48코어 | Windows |
단계별로 맡는 PC
| 단계 | 하는 일 | 맡는 PC | 도구·파일 | 상태(10-30 새벽) |
|---|---|---|---|---|
| 1. 장면 | 앉은 G1, 상자, 좌우 랙, 물건 4종 | 5090 PC | MuJoCo, sim/scene.py | 끝 |
| 2. 규칙 제어기 | 역기구학, 집는 순서, 실패 분류 | 5090 PC | sim/kin.py, sim/scripted.py | 끝(64.5 %) |
| 3. 모방학습 | 시연 4,200 에피소드 수집(14프로세스), 신경망 학습 | 5090 PC | sim/collect.py, sim/bc.py | 끝(65.0 %) |
| 4. 잔차 강화학습 | PPO 24환경, 1,200만 스텝 | 5090 PC(CPU 24프로세스 + GPU) | sim/train_res.py | 끝(1,100만 스텝 선택) |
| 5. 최종 비교 | 정책 3 × 조건 6, 200 에피소드 | 5090 PC | sim/compare.py | 끝(82.5 % 대 60.0 %) |
| 5'. 큰 비교 | 같은 비교를 1,000 에피소드로 | 3090 PC(CPU 18프로세스) | D:\humanoid_remote | 끝(81.9 % 대 56.9 %, 사이트 표에 씀) |
| 6. 실사 렌더 | 첫 화면·학습 전후 영상 | 5090 PC(블렌더 OptiX) | blender/render_anim.py | 끝 |
| 6'. 외란 비교 영상 | 손가락 약함 조건, 규칙 대 학습 후 | 3090 PC(블렌더) | 같은 스크립트, HL_ROOT | 끝 |
| 7. 환경 증강 | Cosmos Transfer 2.5, 4개 환경 | Spark 1(차량기지·물류센터), Spark 2(야간·낡은 창고) | 도커 cosmos-transfer25:6 | 끝(새 각도 4개 환경, 클립당 약 46분) |
| 7'. 증강 입력 만들기 | 깊이·분할·에지(edge) 패스 렌더, 묶음 | 5090 PC | blender/render_passes.py, cosmos/make_pack.py | 끝 |
| 8. 증강 판정 | 원본 대 증강 영상에 같은 질문 | A6000 PC GPU 0 | Cosmos Reason2-2B, cosmos/judge_reason2.py | 끝(남긴 두 질문의 답이 원본·증강 5개 영상 모두 같음) |
| 9. 월드모델 평가 | GRU 월드모델 학습, 그 안에서 정책 순위 | 5090 PC(GPU, 하나씩) + 3090 PC(강화학습을 뺀 모델) | sim/wm/ | 학습 중 |
| 10. 카메라 학생 | 머리 카메라 데이터, CNN 학생, GR00T 미세조정 | 5090 PC(데이터) + A6000 PC GPU 1(VLA) | sim/student.py, ~/humanoid/vla | CNN 끝(60.5 %), GR00T 미세조정 다시 진행(체크포인트는 A6000 PC G:) |
| 11. 사이트 | Vite + three.js, Cloudflare Pages | 5090 PC | web/ | 미리 보기 배포 |
일을 나눠 보내기remote job dispatch over SSH
여러 PC의 GPU를 하나로 묶는 것은 이 네트워크로는 느려서 맞지 않습니다. 대신 서로 독립된 일을 통째로 다른 PC에 보내고 결과 파일만 가져옵니다.
~/humanoid, ~/humanoid_cosmos, D:\humanoid_remote)만 씁니다.10한계와 다음 단계
이 시연은 앉은 상체 작업을 시뮬레이션 안에서 검증한 개념 증명입니다. 실물 로봇으로 옮기려면 남은 단계가 있습니다.
한계
- 주 정책은 물건 위치를 시뮬레이터에서 받습니다. 카메라만 보는 CNN 학생은 60.5 %로 교사보다 낮고, GR00T 미세조정은 진행 중입니다.
- 로봇은 의자에 앉아 상체만 씁니다. 걷거나 쭈그려 앉는 동작은 다루지 않았습니다.
- 물건 무게·마찰, 랙 위치, 손가락 힘은 가정값이고, 실물 G1과 Dex3에서 재지 않았습니다.
- Dex3 손으로 위에서 집기 쉬운 크기(높이 약 4 cm)의 포장 부품으로 물건을 맞췄습니다. 납작한 맨 부품(브레이크 패드 자체)은 다루지 않습니다.
- 월드모델로 증강한 영상은 보여 주기 용도입니다. 그 영상으로 정책을 다시 시험하지 않았습니다.
- 성공은 물건 하나를 칸에 놓고 멈춘 순간에 셉니다. 나중에 다른 물건을 옮기다 팔로 쳐서 칸 밖으로 밀어낸 경우는 성공 수에서 빠지지 않습니다. 외란 비교 영상(손가락 약함)에서 학습 후 정책이 5개를 성공으로 셌지만, 영상 끝에 제 칸에 남은 것은 3개였습니다. 그래서 영상의 숫자는 기록에서 그 순간 제 칸 안에 있는 물건을 세어 표시합니다(
blender/make_videos.py).
다음 단계
| 단계 | 내용 | 근거 |
|---|---|---|
| 카메라 학생 | 교사 행동을 카메라 정책으로 증류, VLA 미세조정 | ViserDex(RSS 2026), Dex-X(2026-09), HAF(2026-08) |
| 실물 이식 | Unitree 공식 Isaac Lab 설정(G1 + Dex3 집어 놓기)으로 옮겨 실물 시험 | unitree_sim_isaaclab |
| 촉각 | Dex3 손의 촉각 센서를 입력에 추가 | Uni-VLaT(2026-09) |
| 전신 작업 | 걸어서 토트를 나르고 선반 높이를 바꾸는 작업 | HumanoidMimicGen(2026-05) |
11용어 사전
모두 42개.
| 표제어 | 영문 | 한국어 | 설명 | 이 프로젝트에서 |
|---|---|---|---|---|
| AgX | AgX view transform | AgX 색 변환 | 블렌더가 밝은 빛을 화면 색으로 바꾸는 방식. | 렌더에서 'AgX - Punchy'로 색이 바래지 않게 했다. |
| BC | Behavior Cloning | 행동 복제 | 시연 행동을 신경망이 그대로 따라 하게 학습하는 방법. | 규칙 기반 시연 2,355 에피소드로 학습, 65.0 %. 비교표의 학습 전. |
| CC0 | Creative Commons Zero | 퍼블릭 도메인 공개 | 저작권을 포기한 자료. 출처 표시 없이 쓸 수 있다. | Poly Haven 창고 배경·바닥·나무결. |
| CNN | Convolutional Neural Network | 합성곱 신경망 | 이미지에서 특징을 뽑는 신경망. | 카메라 학생 정책의 기준선. |
| Cosmos Reason 2 | NVIDIA Cosmos-Reason2 | 코스모스 리즌 2 | 영상을 보고 질문에 답하는 물리 추론 시각-언어 모델. | 원본과 증강 영상의 결과가 같은지 판정(A6000 GPU 0). |
| Cosmos Transfer 2.5 | NVIDIA Cosmos-Transfer2.5 | 코스모스 트랜스퍼 2.5 | 깊이·분할(segmentation)·에지(edge)를 붙잡고 겉모습만 바꾸는 동영상 월드모델. | 4개 작업 환경으로 증강(Spark 두 대). |
| Cycles | Blender Cycles | 사이클스 | 블렌더의 경로 추적 렌더러. | 24샘플, OptiX 잡음 제거로 프레임당 5~10초. |
| DAgger | Dataset Aggregation | 데이터 모으기 반복 | 학생 정책이 직접 움직인 상태에서 교사의 답을 받아 데이터를 늘리는 방법. | 카메라 학생 학습에 쓴다. |
| DART | Disturbances for Augmenting Robot Trajectories | 외란 주입 시연 | 실행 행동에만 잡음을 넣고 기록은 시연 행동으로 남기는 방법. | 잡음 0~0.3, 4,200 에피소드 수집. |
| Dex3 | Unitree Dex3-1 hand | 덱스3 손 | 엄지 하나와 손가락 둘인 G1용 손, 관절 7개. | 편 엄지가 손바닥 아래 10 cm라 물건 높이를 4 cm로 맞춤. |
| DGX Spark | NVIDIA DGX Spark | DGX 스파크 | GB10 칩과 128 GB 공용 메모리를 가진 작은 AI 컴퓨터(ARM). | Cosmos Transfer 2.5를 돌리는 두 대. |
| DLS | Damped Least Squares | 감쇠 최소제곱 | 자코비안으로 관절 변화를 구할 때 작은 값을 더해 불안정을 막는 방법. | sim/kin.py의 역기구학. |
| DoF | Degrees of Freedom | 자유도 | 독립해서 움직일 수 있는 방향의 수. | 손 하나에 허리 3 + 팔 7 = 10. |
| G1 | Unitree G1 | 유니트리 G1 | 키 1.3 m급 휴머노이드. | 손 포함판 관절 모터 43개, 34.4 kg, 의자에 앉은 자세. |
| GR00T | NVIDIA Isaac GR00T | 그루트 | NVIDIA의 휴머노이드용 공개 VLA 모델. | A6000 GPU 1에서 카메라 학생으로 미세조정. |
| GRU | Gated Recurrent Unit | 게이트 순환 유닛 | 지난 정보를 기억하며 다음 값을 예측하는 순환 신경망. | 월드모델 다섯 개를 학습. |
| Guardrail | Cosmos Guardrail | 안전 검사 | 생성 영상과 프롬프트에 부적절한 내용이 없는지 보는 모델. | 철도 차량기지 영상이 통과. |
| HDRI | High Dynamic Range Image | 고명암 배경 사진 | 주변 빛까지 담은 360도 사진. 조명과 배경으로 쓴다. | empty_warehouse_01. |
| IK | Inverse Kinematics | 역기구학 | 엔드이펙터 목표에서 관절 각도를 구하는 계산. | 매 제어 주기 8번 반복해 관절 목표를 낸다. |
| implicit | implicit integrator | 완전 암시적 적분 | 힘과 속도의 관계를 함께 풀어 안정적인 적분기. | implicitfast는 40 에피소드 중 19 에피소드 발산, implicit은 0 에피소드. |
| MDP | Markov Decision Process | 마르코프 결정 과정 | 상태, 행동, 보상, 다음 상태로 정의한 학습 문제의 틀. | 한 에피소드 = 물건 하나를 맞는 칸에 넣기. |
| MjSpec | MuJoCo model specification API | MuJoCo 모델 편집 도구 | 파이썬에서 MuJoCo 모델을 만들고 고치는 기능. | 다리 굳히기, 데칼, 랙을 코드로 더함. |
| MuJoCo | Multi-Joint dynamics with Contact | 무조코 | 로봇 연구용 공개 물리 엔진. | 3.17, 시간 간격 2 ms. |
| OptiX | NVIDIA OptiX | 옵틱스 | NVIDIA GPU 광선 추적 가속과 잡음 제거. | 5090·3090에서 블렌더 렌더. |
| PD | Proportional-Derivative control | 비례-미분 제어 | 목표와의 차이와 속도로 힘을 내는 제어. | G1 관절 위치 제어 kp 500. |
| PPO | Proximal Policy Optimization | 근접 정책 최적화 | 정책이 한 번에 크게 바뀌지 않게 막는 강화학습 방법. | 24환경, 1,200만 스텝. |
| ResFiT | Residual Fine-Tuning | 잔차 미세조정 | BC 정책을 고정하고 보정만 강화학습으로 배우는 방법(Ankile 외 2025). | 이 프로젝트의 학습 후 정책 방식. |
| RL | Reinforcement Learning | 강화학습 | 해 보고 받은 보상이 커지는 쪽으로 정책을 바꾸는 학습. | 잔차 PPO로 81.9 %(기본 조건 1,000 에피소드). |
| SSH | Secure Shell | 보안 셸 | 다른 컴퓨터에 암호화 연결로 명령을 보내는 방법. | 5090 PC에서 네 대에 일을 보냄. |
| Tailscale | Tailscale | 테일스케일 | 여러 기기를 하나의 사설망으로 묶는 VPN. | 다섯 대가 모두 이 망에 있음. |
| VLA | Vision-Language-Action model | 시각-언어-행동 모델 | 영상과 글 지시를 받아 로봇 행동을 내는 큰 모델. | GR00T를 카메라 학생으로. |
| VLM | Vision-Language Model | 시각-언어 모델 | 영상과 글을 함께 이해하는 모델. | Cosmos Reason 2를 채점자로. |
| WSL | Windows Subsystem for Linux | 윈도우용 리눅스 | 윈도우 안에서 리눅스를 돌리는 기능. | A6000 PC는 WSL 우분투로 접속. |
| 교사-학생 증류 | teacher-student distillation | 교사-학생 증류 | 정답 정보를 아는 교사의 행동을 카메라만 보는 학생이 따라 하게 하는 방법. | 교사 = 학습 후 정책, 학생 = CNN·GR00T. |
| 대응 비교 | paired evaluation | 대응 비교 | 비교하는 제어기에 같은 시험 문제를 주는 방법. | 에피소드마다 난수 씨앗 고정. |
| 도메인 무작위화 | domain randomization | 도메인 무작위화 | 학습 때 물리 조건을 조금씩 바꿔 정책이 한 조건에 맞춰지지 않게 하는 방법. | 무게 0.6~1.5배, 마찰 0.7~1.3배. |
| 볼록 껍질 | convex hull | 볼록 껍질 | 메시를 감싸는 가장 작은 볼록한 모양. | 몸통 껍질과 어깨의 가짜 충돌을 끔. |
| 시간당 처리량 | throughput | 시간당 처리량 | 정해진 시간 동안 끝낸 물건 수. | 규칙 287개, 학습 후 594개(기본 조건 1,000 에피소드). |
| 영공간 | null space | 영공간 | 손 목표에 영향을 주지 않는 관절 움직임 방향. | 팔 모양을 기본 자세 쪽으로 당김(세기 0.03). |
| 월드모델 | world model | 월드모델 | 다음에 세상이 어떻게 될지 예측하는 모델. | 환경 증강(Cosmos)과 정책 평가(GRU)에 씀. |
| 잔차 강화학습 | residual RL | 잔차 강화학습 | 기존 정책 행동에 더할 보정만 배우는 강화학습. | 행동 = BC + 0.35 × 보정. |
| 행동 공간 | action space | 행동 공간 | 정책이 매 주기 내는 값의 종류. | 엔드이펙터 이동 3 + 손목 회전 + 파지 = 5. |
12참고 자료
2026-10-29에 찾아 대조한 자료입니다. 회사 발표 수치는 독립 검증되지 않았습니다. 전체 목록과 판단은 docs/REFERENCES_2026-10.md에 있습니다.
방법
- Ankile 외 (2025). Residual Off-Policy RL for Finetuning Behavior Cloning Policies (ResFiT). arXiv:2509.19301. https://arxiv.org/abs/2509.19301
- Lin 외 (2025). Sim-to-Real Reinforcement Learning for Vision-Based Dexterous Manipulation on Humanoids. CoRL 2025. arXiv:2502.20396
- NVIDIA (2025). GR00T N1: An Open Foundation Model for Generalist Humanoid Robots. arXiv:2503.14734
- HumanoidMimicGen (2026). Data Generation for Loco-Manipulation via Whole-Body Planning. arXiv:2605.27724
- HAF (2026). Adapting Generalist VLAs to Humanoid Whole-Body Loco-manipulation. arXiv:2608.16837
- Uni-VLaT (2026). Whole-Body Tactile Adaptation of VLA Policies for Humanoid Loco-Manipulation. arXiv:2609.35450
월드모델
- NVIDIA. Cosmos-Transfer2.5. https://github.com/nvidia-cosmos/cosmos-transfer2.5
- OSCAR (2026). Omni-Embodiment Action-Conditioned World Model for Robotics. arXiv:2606.04463
- WorldEval (2025). World Model as Real-World Robot Policies Evaluator. arXiv:2505.19017
- NVIDIA. GR00T-Dreams 합성 궤적 생성. https://developer.nvidia.com/blog/enhance-robot-learning-with-synthetic-trajectory-data-generated-by-world-foundation-models/
도구
- MuJoCo Menagerie, Unitree G1. https://github.com/google-deepmind/mujoco_menagerie
- Unitree 공식 Isaac Lab 시뮬. https://github.com/unitreerobotics/unitree_sim_isaaclab
- Poly Haven CC0 자료. https://polyhaven.com
동향
- Schaeffler 타이창 휴머노이드 시설(2026-10). https://www.globaltrademag.com/humanoid-robots-enter-factories-and-warehouses/
- Atlas 훈련 센터(2026-09). https://www.automotiveworld.com/news/boston-dynamics-opens-atlas-training-hub-at-hyundai-plant/
- Agility·GXO 확대 배치(2026-10). https://www.therobotreport.com/agility-gxo-logistics-plan-expanded-deployment-digit-humanoid/
- China Post RobotEra M7(2026-05). https://interestingengineering.com/ai-robotics/china-deploys-humanoid-robots-in-postal-hub
