안녕하세요, KT AX미래기술원 Physical AX담당 김광중입니다.
이번 글에서는 데이터 수집, 시뮬레이션 환경 구축, 데이터 증강 및 합성, 그리고 로봇 적용까지 이어지는
데이터 파이프라인을 구축하며 겪고 있는 시행착오를
친숙한 환경인 데이터센터 서버점검 태스크로 예를 들어 공유 드리려 합니다.
“필요한 위치로 이동한 뒤, 서버랙 문을 열고, 장비상태를 점검하라”
라고 말하면 로봇은 바로 이해하고 행동할 수 있을까요?
사람에게는 비교적 단순해 보이는 작업도 로봇에게는 여러 단계의 복합 문제입니다.
카메라로 장면을 인식해야 하고, 자신의 관절 상태를 이해해야 하며, 목표 위치까지 팔을 움직이고,
접촉이 필요한 경우에는 힘과 충돌까지 고려해야 합니다.
더 어려운 점은 이런 행동을 학습시키기 위해 충분한 양의 고품질 데이터가 필요합니다.
“The odds that we’re in base reality is one in billions.”
“우리가 ‘기저 현실(base reality)’, 즉 시뮬레이션이 아닌 원본 현실에 있을 확률은 수십억 분의 1입니다.”
- 일론 머스크, "2016 Code Conference 중"
컴퓨터 그래픽이 40년 만에 흑백만 있던 픽셀에서 실사와 구분이 안 되는 그래픽으로 발전한 걸 보면,
충분히 발전한 문명이라면 현실과 똑같은 시뮬레이션을 만들 수 있고,
그렇다면 '진짜 현실' 하나보다 '시뮬레이션 현실'이 압도적으로 많을 테니
우리가 그 원본에 살고 있을 확률이 오히려 희박하다는 시뮬레이션 우주론은
제가 좋아하는 이야기 중에 하나 입니다.
물론 읽는 분들의 흥미유발을 위한 도입일뿐 시뮬레이션 안에 살고 있는지에 대한 철학적 논쟁을 위한 인용은 아닙니다.
하지만 Physical AI Data를 다루는 입장에서는 이 문장이 현실적인 질문으로 바뀝니다.
"시뮬레이션이 현실과 충분히 비슷해질 수 있다면, 로봇을 굳이 위험하고 비싼 현실에서만 가르칠 이유가 없다"
는 것이죠. 로봇에게 새로운 일을 시키려면 어마어마한 양의 '해본 경험'이 필요한데,
그 경험을 전부 실제 로봇으로 쌓으려면 시간도, 돈도, 부서진 로봇도 감당이 안 됩니다.
그래서 Physical AI Data의 무게중심은
"현실을 닮은 시뮬레이션 안에서 데이터를 대량으로 만들어내는 것"으로 옮겨가고 있습니다.
그런데 함정이 하나 있습니다 — sim-to-real gap
시뮬레이션이 아무리 정교해도 현실과 100% 같지는 않습니다.
조명이 미묘하게 다르고, 물체 표면의 질감이 다르고, 카메라 각도가 다릅니다.
그래서 시뮬레이션에서만 신나게 학습한 로봇을 현실에 데려다 놓으면
"어? 이거 왜 이래?" 라는 생각이 들 정도로 어이없는 동작으로 실패하곤 합니다.
이 시뮬레이션과 현실의 틈을 sim-to-real gap이라고 부릅니다.
결국 시뮬레이션 데이터는 하나의 문제를 해결하는 것으로 귀결됩니다.
"어떻게 하면 시뮬레이션에서 값싸게 데이터를 잔뜩 만들면서도, 이 틈을 최대한 좁힐 수 있을까?"
| Data Flywheel이란?
Data Flywheel은 모델이 환경과 상호작용하면서 생기는 데이터를 다시 수집하고,
그 데이터를 바탕으로 모델을 개선하는 자가 개선 루프입니다.
쉽게 말하면:
모델을 한 번 학습시키고 끝내는 것이 아니라,
실제 사용 중 나온 데이터와 피드백을 계속 모아
모델을 점점 더 똑똑하게 만드는 구조
입니다.
지금부터 예시로 들 태스크는 데이터센터에서 "로봇이 돌아다니며 서버랙의 서버들을 점검한다" 입니다.
이걸 위해 세 단계의 데이터 흐름을 설계하였습니다.
지금부터 각 단계에서 무엇을 했고, 어디서 어떻게 넘어지고 극복했는지 말씀 드리겠습니다.
0. Sim-Ready 에셋과 시뮬레이션 환경
사람이 직접 텔레옵 수집하거나 시뮬레이션 데이터 생성을 자동화를 하기전에 반드시 해야하는 게 있습니다.
바로 로봇이 활동할 '현실과 같은 가상공간'을 만드는 것입니다. 로봇, 서버랙, 서버, 데이터센터 공간
이 모든 것이 먼저 시뮬레이션 안에 존재해야 비로소 시뮬레이션 데이터를 만들 수 있습니다.
| 일반 3D 모델과 'Sim-Ready 에셋'은 다르다
여기서 흔한 오해가 하나 있습니다. "3D 모델만 있으면 되는 것 아닌가?" 하는 것이죠.
하지만 겉모습이 아무리 그럴듯해도, 시뮬레이션이 실제로 쓸 수 있으려면 훨씬 더 많은 정보가 필요합니다.
이렇게 제대로 준비된 에셋을 Sim-Ready 에셋 이라고 부르는데, 여기엔 다음과 같은 정보가 함께 담겨 있어야 합니다.
- 물리 속성— 무게, 마찰, 단단함 같은 실제 물성. 로봇이 밀거나 잡을 때 현실처럼 반응해야 합니다.
- 충돌 형상— 물체와 로봇사이의 충돌처리. 이게 없으면 로봇 손이 물체를 그냥 통과해 버립니다.
- 관절 구조— 서랍은 열리고, 로봇 팔은 실제 축을 따라 꺾여야 합니다.
- 재질·표면— 카메라에 비칠 질감과 빛 반사 등, 보이는 방식까지.
|
|
| 실제 서버랙 사진 |
서버랙 문을 열 수 있는 Sim-Ready Asset |
즉 Sim-Ready 에셋을 만든다는 건, 실제 사물의 치수·물성·움직임을 시뮬레이션이 이해하는 형태로 번역 하는 작업입니다.
로봇이 무엇을 하느냐에 따라 필요한 정보의 깊이가 다르기 때문에 우리는 에셋을 네 가지 유형으로 나눴습니다.
| 유형 | 정의 |
주요 정보 |
|---|---|---|
| 조작 가능 객체 (Articulated) |
관절로 연결돼 상태(열림/닫힘/구부러짐)가 변하는 객체 |
기구학 트리, 관절 종류(Hinge·Slider)· 가동범위·마찰·감쇠, 부품별 분리 충돌 메쉬 |
| 일반 물리 객체 (Rigid Body) |
관절 없는 단일 강체 |
질량·무게중심·관성 텐서, 마찰·반발 계수 |
| 정적 공간 (Static Env) |
외력에도 변하지 않는 공간·배경·구조물 |
고정 충돌 맵(Static Collider), 텍스처·조명, 시맨틱 분할 정보 |
| 작업 공간 (Task Scene) |
위 에셋을 목적(Task)에 맞게 배치한 에피소드 공간 |
씬 그래프, 초기/목표 상태, 도메인 무작위화 파라미터 |
| 병목은 에셋을 수작업으로 '만드는 시간'
에셋의 조건을 알고 나면 다음 벽이 나옵니다 손으로 만들면 너무 오래 걸린다.
게다가 도메인 별로 실제적으로 필요한 에셋은 공개 3D 데이터가 사실상 없습니다.
결국 실물을 촬영·스캔하거나 디자이너가 CAD로 제작해야 하는데,
정적 공간 하나(Room-scale)를 고품질로 복원하는 데 최소 3개월 이상이 걸리게 됩니다.
연 수천 건을 이렇게 만들 수는 없기 때문에, 자동화 파이프라인이 필요하게 됩니다.
① 외형 복원
- Primitive: 텍스트·이미지를 받아 Box·Cylinder 같은 기본 도형의 조합으로 구조를 세웁니다. 정밀도는 낮지만 빠르게 생성이 가능하고, 파트 생성 및 관절 구조를 얹기 쉬워 조작 객체 프로토타이핑에 강합니다.
- Reconstruction: 실측 수준의 사실감이 필요할 때 씁니다. 이미지·텍스트로 메쉬를 복원하고, 파트별로 분할하여 관절 구조를 생성해 냅니다. 전용 모델이 필요하지만 실제와 가장 가까운 복.
② 물리 속성 부여
- 여기서 LLM/VLM의 사전 지식으로 물성을 추론합니다.
"이건 강철 서버랙 도어"라는 인식에서 질량·무게중심·관성 텐서, 관절 종류와 가동범위, 마찰·반발 계수를
자동으로 채워 넣습니다. 사람이 스펙시트를 뒤지던 일을 모델이 대신하는 셈입니다.
③ Multi-Agent 검증
- 코드 생성 → 검토 → 평가 → 조립을 각각 다른 에이전트가 맡아서로를 검증하는 품질 루프를 사용합니다.
관절 축이 뒤집혔는지, 충돌 메쉬가 원본을 제대로 덮는지, 생성된 에셋이 시뮬레이터에 실제로 로드되는지를 에이전트가 검증합니다.
④ 장면 구성
- 개별 에셋을 씬에 자동 배치합니다. 특히 Hybrid world modeling 배경 공간은 GS로 사실감 있게, 로봇이 실제로 조작하는 객체는 Mesh로 정밀하게 조합해 '보기에도 현실 같고 물리도 정확한' 씬을 만듭니다.
| 데이터 생산용 시뮬레이션 환경
에셋이 준비되면 이들을 한 무대에 배치해 시뮬레이션 환경(씬)을 만듭니다.
데이터 센터 공간을 만들고, 로봇을 세우고, 서버랙을 놓고, 조명과 카메라를 걸고,
"무엇을 성공으로 볼 것인가" 같은 태스크 규칙까지 정의하면
비로소 데이터를 뽑아낼 준비가 끝납니다.
저희가 정의한 Physical AI Sim-Ready Asset에 대한 구조는 아래와 같습니다.
physical-ai-assets/ scenes/ robots/ objects/ object1/ environments/ environment1/ meshes/12345678910
|
구분 |
예시 이미지 |
역할 |
예시/포함 데이터 |
|---|---|---|---|
|
Scenes |
|
시뮬레이션 환경/월드 |
Environments와 objects, robot의 조합 |
|
Robots |
|
로봇 모델 |
로봇 본체, 관절 구조, |
|
Objects |
|
조작 가능한 물체 |
서버 본체, 전원 버튼, 케이블, LED 등 |
|
Environments |
|
시뮬레이션에 사용할 정적 환경 |
룸, 복도 등 |
|
공간 레이아웃 구조 |
벽면, 바닥면 |
💁♂️ Sim-Ready Asset관련 고충 및 팁!
초기엔 로봇 손이 물체를 뚫고 지나가거나, 물체가 움직이지 않는 일이 발생했습니다.
원인은 눈에 보이지 않는 곳에 있었습니다.
충돌 형상이 빠져 있거나, 무게 같은 물성값이나 관절값들이 잘 못 설정되어 있었습니다.
Sim-Ready 에셋은 '눈'이 아니라 '물리'로 검증해야 하기 때문에
시뮬레이터 안에서의 다양한 물리 검증과 Teleop 작업자와 많은 소통이 필요합니다.
로봇에게 뭔가를 가르치는 가장 확실한 방법은 직접 시범을 보여주는 것 입니다.
아이에게 젓가락질을 가르칠 때 손을 잡고 몇 번 같이 해보는 것과 똑같습니다.
이 '사람이 로봇을 직접 조종해서 시범을 보이는 과정'을 Teleop(원격 조작) 이라고 합니다.
보통 도메인 지식을 가지고 있는 전문가(Expert Demonstration)가 Teleop을 통해 초기 데이터를 생산합니다.
|
|
텔레오퍼레이션 (nvidia.github.io/IsaacTeleop) |
Teleop은 실제 로봇과 시뮬레이션 둘다 가능한데, 시뮬레이션 안에서 수행하면 아래와 같은 장점들이 있습니다.
- 안전하고 저렴합니다. 시뮬레이션 속 로봇은 아무리 넘어져도 리셋 한 번이면 멀쩡합니다.
- 정답을 공짜로 얻습니다. 물체가 정확히 어디 있는지, 로봇이 성공했는지를 시뮬레이션은 이미 알고 있습니다.
- 증강과 합성데이터를 생성하는데 유리합니다. 이게 2단계의 핵심 전제가 됩니다.
조작자가 VR 기기로 자기 손을 움직이면, 그 손동작이 로봇의 두 팔로 옮겨지는방식입니다.
핵심 스택은 다음과 같습니다.
| 레이어 | 구성 요소 |
|---|---|
| 시뮬레이터 | NVIDIA Isaac Lab |
| 원격 조종 | Isaac Teleop + CloudXR Runtime |
| 입력 장치 | Meta Quest 3 (광학 핸드트래킹) |
| 로봇 | Robotis AI Worker (양팔 + 리프트 + 헤드) |
| 데이터 포맷 | Isaac Lab HDF5(raw) → LeRobot Dataset v3.0 |
| 실행 환경 | isaac-lab / isaac-teleop / webxr-client |
- End-Effector pose: 사용자의 손이나 컨트롤러 움직임을 로봇의 End-Effector pose로 변환합니다.
End-Effector는 로봇 팔의 끝부분, 즉 그리퍼나 로봇 손처럼 실제로 물체를 잡고 조작하는 부위를 의미하며, pose는 그 위치와 방향을 뜻합니다. 쉽게 말해 “로봇 손끝이 어디에 있어야 하고, 어느 방향을 바라봐야 하는가”를 정의하는 정보입니다.
- Retargeting: 사람의 손 구조와 로봇의 팔·손 구조는 서로 다르기 때문에, 입력 움직임을 로봇 구조에 맞게 다시 매핑하는 과정이 필요합니다. 이를 retargeting이라고 합니다. 예를 들어 사람의 손목 이동은 로봇 팔 끝의 목표 위치로,
엄지와 검지 사이의 거리는 그리퍼를 여닫는 명령으로 변환될 수 있습니다. - IK(Inverse Kinematics): 이후 IK를 통해 로봇의 각 관절이 얼마나 움직여야 하는지 계산합니다. 사용자는 “3번 관절을 몇 도 돌려라”처럼 직접 명령하지 않고, “로봇 손끝을 이 위치로 보내라”는 목표만 제공합니다. 그러면 IK가 해당 목표 위치와 방향을 만족하도록 어깨, 팔꿈치, 손목 관절의 회전값을 자동으로 계산합니다.
핸드트래킹 모드에서는 XR hand pose가 계속 흘러 들어옵니다. 이 pose를 곧바로 로봇의 목표 pose로 쓰면,
사용자의 현재 손 위치와 로봇 손목의 현재 위치 차이가 그대로 점프/비틀림으로 나타납니다.
해결은 시작 시점 오프셋 캘리브레이션 이었습니다.
XR raw hand pose → START 시점, 손 pose와 로봇 wrist pose 간 transform offset 계산 → 이후 입력에 offset 적용 (calibrated hand pose) → robot action1234
- 로봇을
hold_action으로 현재 자세에 고정 - 시작과 함께
calibrate_tracking_action()으로 offset 산출 - 이후
apply_tracking_calibration()으로 매 프레임 보정
이 덕분에 시작 직후 로봇 팔이 갑자기 다른 좌표계로 끌려가지 않고,
현재 위치에서 자연스럽게 사람 손을 따라오게 되어, 수집된 에피소드 앞부분에 비정상적인 점프를 해결했습니다.
💁♂️ 텔레옵 작업자에게 듣는 고충 및 팁!
Teleop에서는 작업자가 손을 움직이는 즉시 로봇이 따라올 것처럼 느껴지지만,
실제 로봇은 관절 제한, 속도 제한, 충돌 회피, IK 계산 과정을 거치기 때문에 반응이 늦어질 수 있습니다.
예를 들어 서버랙 안쪽의 포트나 바코드 위치를 확인하기 위해 손을 가까이 가져가도,
로봇 팔은 안전한 경로를 계산하며 천천히 따라오거나 원하는 자세와 다르게 움직일 수 있습니다.
이 때문에 작업자는 “내 손처럼 움직이지 않는다”는 답답함을 느끼며,
정밀 조작 구간에서는 더 천천히 움직이고 로봇 반응을 기다리는 방식으로 적응해야 합니다.
"7월에 있을 AX Tech Connect 에서 체험 부스를 운영할 예정이니 놀러오셔서 체험해보세요!"
| 성공과 실패의 자동 분류 및 수집
시범을 수백 번 보이다 보면 가장 지치는 일이 "이번 시도는 성공이었나?"를 일일이 확인하는 것입니다.
그래서 성공 여부를 시뮬레이션이 스스로 판정 하게 개발하는 과정이 필요합니다.
- 서버랙 위치 바코드를 로봇 손 카메라 화면 안에 제대로 들어와 일정 시간 유지되면 → 성공.
- 정해진 시간 안에 해내지 못하거나 일정 범위를 벗어나면 → 실패.
이렇게 하면 데이터가 성공 케이스와 실패 케이스로 자동 분류되어 쌓이게 됩니다.
하지만 사람이 직접 모으는 Teleop 데이터로 로봇을 제대로 가르치기엔 여전히 턱없이 부족합니다.
여기서 데이터를 증폭시킬 단계가 필요합니다.
2. Sim 증강·합성 — 텔레옵 데이터를 수백 개로 불린다
사람이 직접 보인 시범은 소중하지만 비쌉니다. 한 명이 한 번에 하나씩 만들어야 하니까요.
시뮬레이션의 진짜 강점은 여기서 나옵니다.
같은 시범을 조건만 바꿔 무한히 변주할 수 있다는 점입니다.
| 하나의 시범에서 수많은 변형을 자동 생성하기
사람이 "서버랙 바코드를 누르는" 시범을 몇 번만 보여주면,
시뮬레이션은 이 시범의 핵심 동작은 유지한 채 상황만 바꿔 비슷한 시범을 대량으로 만들어냅니다.
물체 위치가 조금 옆으로 옮겨져도, 로봇 팔의 시작 자세가 달라도 스스로 알아서 성공하는 궤적을 생성하는 것이죠.
이런 로봇 조작 동작 합성·증강 기술(Synthetic Manipulation Motion Generation for Robotics) 덕분에,
사람이 보인 몇 개의 시범이 순식간에 수십, 수백 개의 학습 데이터로 불어납니다.
| 로봇 조작 동작 합성·증강 기술
로봇 조작 동작 합성·증강 기술이 가능한 이유는
시뮬레이션에서는 목표 타겟의 위치를 미리 정확히 알 수 있기 때문입니다.
실제 환경에서는 카메라나 센서로 바코드를 먼저 찾아야 하지만,
시뮬레이션에서는 서버랙과 바코드의 3D 좌표가 이미 정의되어 있습니다.
|
| 시뮬레이션 상 로봇 조작 동작 합성·증강 병렬처리 |
원본 데모에서 작업 구간(subtask), 중간 지점(waypoint),
로봇 손끝이나 카메라의 위치·방향(EEF pose segment)을 선택하고,
이를 새 목표물의 위치·방향(object pose)에 맞게 변환해 목표 궤적을 생성합니다.
시뮬레이션을 실행하면서 각 시점마다 제어기(controller)와 역기구학(IK)을 통해
목표 pose에 도달하기 위한 로봇 관절 명령을 계산합니다.
이렇게 실제로 움직여본 결과, 충돌 없이 목표를 성공한 궤적만 학습 데이터로 저장합니다.
|
단계 |
원본 텔레옵 데모 |
증강 과정 |
|---|---|---|
|
1. 원본 타겟 |
기존 목표 위치: (1.0, 0.5, 1.2) |
새 목표 위치: (1.4, 0.7, 1.0) |
|
2. 상대 waypoint 추출 |
로봇 손이 목표 기준 40cm → 30cm → 20cm로 접근하며 정렬 |
원본 좌표 자체가 아니라, |
|
3. 새 타겟 기준 변환 |
원본 바코드 앞 20cm에서 촬영 성공 |
새 바코드 기준 앞 20cm 지점을 |
|
4. 경로 연결 |
원본 데모에서는 사람이 직접 조작한 경로 |
현재 로봇 pose에서 새 waypoint까지 |
|
5. 제어 실행 |
원본은 텔레옵 action으로 움직임 |
시뮬레이션 중 controller/IK가 |
|
6. 검증 |
사람이 성공시킨 원본 데이터 |
충돌 없이 로봇 손이 목표 타겟에 |
| sim-to-real gap을 좁히는 '사실적 변환'
여기서 앞서 이야기한 sim-to-real gap 을 정면으로 마주합니다.
시뮬레이션에서 만든 영상은 아무래도 컴퓨터 그래픽 티가 나게 됩니다.
이대로 학습하면 로봇은 매끈한 시뮬레이션 화면에만 익숙해져서,
로봇은 진짜 데이터센터의 얼룩진 조명과 거친 질감 앞에서 제대로 동작하지 못하게 됩니다.
그래서 우리는 시뮬레이션 영상을 현실처럼 바꿔주는 생성형 기술이 필요하게 됩니다.
로봇의 동작(정답 라벨)은 그대로 두고, 보이는 화면만 현실적으로 대체하는 방식입니다.
덕분에 조명·질감·배경이 제각각인 현실 같은 데이터를 대량으로 확보할 수 있으며,
로봇이 특정 화면에만 과하게 익숙해지는 문제를 줄일 수 있습니다.
|
|
| 변환 전 (simulator 원본) |
변환 후 |
|
| 환경 다변화 |
이러한 과정은 sim-to-real 간극을 줄이기 위한 World-to-World Transfer 모델입니다.
즉, 시뮬레이션에서 생성한 장면의 구조는 유지하면서도, 영상의 외형을 실제 환경에 더 가깝게 변환하는 기술입니다.
예를 들어 로봇 팔의 위치, 작업 대상 물체, 깊이 정보, segmentation mask 같은 공간적 조건은 유지하되,
조명, 재질, 카메라 질감, 배경 분위기 등을 현실적인 영상 스타일로 바꿀 수 있습니다.
로봇 데이터에서는 영상의 시각적 품질보다 더 중요한 것이
로봇의 위치, 물체의 배치, 접촉 상태, 작업 순서가 정확히 유지되는지입니다.
depth, segmentation, edge, RGB 등 다양한 조건 입력을 활용해 장면 구조를 유지하도록 설계되어 있지만,
생성 모델 특성상 작은 물체, 얇은 케이블, 바코드, 포트, 로봇 그리퍼 끝단처럼 세밀한 영역은
변환 과정에서 흐려지거나 왜곡될 수 있습니다.
multi-controlnet에 대한 modality를 잘 이해하고 structured input을 사용하는 것이
좋은 변환 품질을 얻기 위해 입력 condition의 품질이 매우 중요합니다.
|
|
|
| Input | Edge |
Depth |
|
JSON
|
| structured input sample |
정리하면, 데이터 증폭의 핵심은 두 가지 기술의 조합입니다.
① 시범 하나를 여러 상황으로 불리는 자동 시연 증강,
② 그 결과물을 현실처럼 바꿔주는 사실적 영상 합성.
앞은 '양'을, 뒤는 '현실성'을 책임집니다.
3. 데이터 선순환 — 학습하고, 평가하고, 다시 데이터로 돌아온다
이렇게 모은 데이터가 향하는 종착지는 로봇의 '두뇌'가 될 AI 모델 입니다.
요즘 로봇 학습의 메인은 VLA(Vision-Language-Action) 모델이라고 불리는데,
이름 그대로 눈(카메라 영상)과 말(사람의 지시)을 받아 행동(로봇 동작)을 내놓는 모델입니다.
"서버랙 바코드를 인식해라"라는 지시와 카메라 화면을 주면, 로봇이 어떻게 팔을 움직여야 할지를 스스로 판단하는 것이죠.
| 데이터 선순환 파이프라인
모델을 학습시켰다고 끝이 아닙니다. 얼마나 잘하는지 평가해야 하고,
못하는 부분이 있으면 그 부분을 채울 데이터를 다시 만들어야 합니다.
| 평가 환경 다변화 ㅡ 한 환경에서 잘하는 건 착각일 수 있다
평가에서 가장 위험한 함정은 "딱 하나의 씬에서만 잘하는 로봇" 입니다.
학습에 쓴 데이터센터와 똑같은 조명·배치에서 높은 성공률이나와도, 다른 환경에서는 뚝 떨어지곤 합니다.
그 로봇은 '일을 배운' 게 아니라 '그 환경을 외운' 것이죠.
평가 환경 다변화는 앞서 나온 학습용 Domain Randomization과 목적이 다르다는 점이 핵심입니다.
학습의 랜덤화가 모델을 강건하게 만들려고 데이터 다양성을 늘리는 것이라면,
평가 환경 다변화는 모델이 어디서 실패하는지 측정하려고 환경을 통제된 방식과 예외상황을 의도적으로 주입합니다.
평가 환경 다변화 생성은 세 분류로 나뉩니다.
1. Task Generation: 씬에 언어 지시를 붙여 태스크를 만듭니다("랙 도어를 열고 바코드를 눌러라"). 역시 LLM 스케일업 이 가능합니다.
2. Scene Generation: 시뮬레이션에 객체를 물리적으로 배치해 다양한 씬 라이브러리를 만듭니다. LLM으로 대량 생성 합니다
3. Environment Generation: 로봇, 정책, 행동/관측 설정, 그리고 씬 변형(scene variation)을 지정해, 태스크를 실제 로 돌릴 수 있는 환경으로 바꿉니다.
특히 씬·태스크 생성은 에이전트 워크플로로 자동화됩니다. 자연어로 요구하면, 에이전트가 충돌 없는 배치(predicate solver)를 찾고 물리 세틀링으로 안정화한 뒤, 씬 파일과 스크린샷까지 만들어 줍니다. 덕분에 평가 환경을 빠르게, 그리고 계속 변경하며 늘릴 수 있어, 벤치마크가 굳어버리는(oversaturation) 문제를 막습니다.
아래와 같은 Scene Variations을 통제된 방식 하에 모델의 강건성을 시험할 수 있습니다,
| 변형 축 | 예시 | 무엇을 보나 |
|---|---|---|
| 조명(Lighting) | 밝기·색온도·방향 | 조명에 인식이 흔들리는가 |
| 카메라 포즈 | 시점·각도·거리 | 관측 변화에 대한 안정성 |
| 배경(Background) | 서버실·복도·다른 국사 | 배경에 과적합했는가 |
| 텍스처·그림자 | 랙 표면, 바닥 반사, 그림자 | 시각적 잡음에 대한 내성 |
| 실패 데이터가 가장 값진 데이터인 이유
로봇이 평가에서 넘어지는 지점은, 대부분 학습 데이터에 그 상황이 부족했기 때문입니다.
바코드가 화면 구석에 걸렸을 때, 팔의 접근 각도가 애매할 때
이런 실패의 패턴을 알면 다음엔 어떤 데이터를 더 만들어야 하는지가 명확해집니다.
그래서 실패 케이스는 버리는 데이터가 아니라 다음 작업의 계획서입니다.
성공을 모으는 것만큼 실패를 체계적으로 모으는 일이, 좋은 데이터 생산의 절반을 차지합니다.
4. 좋은 데이터는 다시 설명될 수 있어야 한다 — 데이터 재현성
데이터를 대량으로 만들다 보면 어느 순간 이런 질문에 부딪힙니다.
"이 로봇 모델은 대체 어떤 데이터로 학습된 거지?"
그런데 막상 답하려고 하면, 데이터가 워낙 여러 버전으로 갈라지고 섞여서
정확히 되짚기가 쉽지 않습니다. 이게 바로 재현성(reproducibility) 문제입니다.
Physical AI에서 재현성은 단순히 "다시 돌리면 같은 결과가 나온다"는 수준의 이야기가 아닙니다.
로봇의 성능은 세 가지가 맞물려 결정되기 때문에, 이 셋을 모두 기록하고 되짚을 수 있어야 합니다.
- 데이터: 어떤 시범에서 나왔고, 어떤 증강·합성을 거친 몇 번째 버전인가
- 모델: 어떤 데이터로, 어떤 학습 설정으로 만들어졌는가
- 환경: 어떤 시뮬레이션 씬·물리 조건·센서 설정에서 생성된 데이터인가
이 셋 중 하나라도 기록이 빠지면, 좋은 결과가 나와도 "왜 잘 됐는지" 를 설명할 수 없고,
나쁜 결과가 나와도 "어디서부터 잘못됐는지" 를 추적할 수 없습니다.
실험이 늘어날수록 이 문제는 눈덩이처럼 커집니다.
| 데이터의 계보를 추적하는 DataHub
그래서 우리는 데이터·모델·환경의 관계를 한곳에서 관리하기 위해 DataHub를 설계하고 개발하고 있습니다.
DataHub는 쉽게 말해 "데이터를 위한 카탈로그이자 족보" 입니다.
어떤 데이터가 어디서 왔고, 누가 관리하며, 어떤 의미를 갖는지를
한눈에 검색하고 추적할 수 있게 해줄 수 있어야 합니다.
|
| 현재 개발 중인 KT Physical AI Datahub |
각 단계의 산출물을 DataHub에 메타데이터와 계보와 함께 등록해 두면,
평가에서 이상한 결과가 나왔을 때 "모델 → 해당 합성 데이터 → 해당 증강본 → 해당 사람의 텔레옵 데이터"
까지 거꾸로 타고 올라갈 수 있습니다. 반대로 특정 시범에 문제가 발견되면,
그 시범에서 파생된 데이터와 모델이 어디까지 영향을 미쳤는지 를 한 번에 파악할 수 있습니다.
정리하면, DataHub는 흩어지기 쉬운 데이터·모델·환경·평가의 관계를 하나로 묶어,
"재현 가능하고 추적 가능한" Data Flywheel 구조의 뼈대 역할을 합니다.
마치며: 전체 그림 한눈에 보기
지금까지의 이야기를 한 장의 그림으로 정리하면 이렇습니다.
사람이 씨앗(시범)을 뿌리고 → 시뮬레이션이 밭을 넓히고(증강·합성) → 현실처럼 다듬은 뒤 → 로봇이 학습하고 → 평가에서 실패한 것을 다시 배웁니다.
이 고리를 얼마나 빠르고 정확하게 도느냐 가 결국 로봇의 성능을 결정합니다.
사람의 손으로 시작해, 시뮬레이션에서 경험을 불리고, 현실로 데려오는 이 여정을 우리는 계속 다듬어 나가려 합니다.
감사의 말두수님, 지현님, 태현님, 여진님바쁘신 와중에도 아티클 검토와 수정에 도움을 주셔서 진심으로 감사합니다. 🙏 |
|---|