시프-투-리얼 전송: 2026 년 에 대한 실무자 가이드
전투에서 테스트된 실제 시뮬레이션 팁 7가지: 도메인 무작위화, 시스템 식별, RGB보다 깊은 곳, 하이브리드 훈련, 시뮬레이터 선택, 그리고 시뮬레이션을 언제 완전히 건너뛰어야 하는지.
[← 블로그]
대부분의 시뮬레이션에서 실제 오류는 예방할 수 있습니다. 이 가이드에서는 시뮬레이션에서 실제 하드웨어로 성공적으로 정책을 전송한 팀들이 공통적으로 가지고 있는 관습과 다른 모든 사람들이 실패하는 실수를 설명합니다.
실제 시미스 와 실제 시미스 사이의 격차
시뮬레이션은 무제한 데이터, 하드웨어의 노화, 병렬 훈련 및 완벽한 재생력을 약속합니다. 실제에서 모든 시뮬레이션은 근접이며, 그 근접과 현실 사이의 격차는 정책이 죽을 것입니다. 접촉 동력은 시뮬레이션 및 실제 재료 사이에 다릅니다. 액추이터 마찰, 반사 반응 및 지연은 모델링하기가 어렵습니다. 렌더링된 이미지는 인간에게 설득력 있는 것처럼 보이지만 실제 카메라 이미지와는 다르게 신경망 기능 탐지기를 활성화합니다. 센서 소음, 케이블 딱딱함, 테이블 진동 - 시뮬레이션이 무시하거나 단순화하는 수십 개의 작은 효과는 치료되지 않은 정책이 넘지 못하는 격차로 결합됩니다.
하지만 격차는 균일하지 않습니다. 어떤 작업은 쉽게 전송되지만 다른 작업은 현행 방법에서는 거의 불가능합니다. 이 스펙트럼에 해당하는 작업의 위치를 파악하고 특정 격차에 적합한 기술을 적용하는 것은 실제 하드웨어에 실패하기 위해 몇 달 동안 시뮬레이션을 하는 팀과 시뮬레이션 교육을 성공적으로 수행하는 팀을 구분합니다. 이론적 기초에 대한 배경에 대해서는 [sim-to-real transfer theory] (시프-실적 전송 이론) 에 대한 우리의 동반 기사를 참조하십시오.
잘 전달 되는 것 과 그렇지 않은 것
** 잘 이동:** 평평하고 중저로 거친 지형에서 이동, 평행 턱잡기, 항해 및 장애물 피 및 자유로운 공간에서 움직임을 달성하는 기본 물체. 이러한 작업은 시뮬레이션 모델의 정확성에 따라 달라집니다 (강한 몸의 메커니즘, 기본 마찰) 그리고 합리적으로 전송되는 시각적 특징 (물질 모양, 작업 공간 기하학).
힘을 써서 전송: 딱딱한 물체를 뽑아 놓는 것, 밀고 밀고 오르는 것, 문과 드래저를 열고, 용납량도 넓게 하는 간단한 조립. 이 작업들은 시뮬레이션이 거의 일치하지만 완벽하게 일치하지 않는 접촉 동력을 포함합니다. 성공적인 전송은 아래 설명된 기술을 필요로 합니다.
** 잘 전달되지 않습니다 (아직):** 위조 가능한 물체의 접촉 부양 조작 (복복, 케이블 라우팅), 미미리미터 미만의 용인 (접속기 결합, 단기 부착) 과 정확한 조립 및 미분 물질, 액체 또는 부드러운 몸체를 포함하는 작업. 이러한 상호작용의 물리학은 정확하게 시뮬레이션하기 위해 너무 복잡하거나 격차를 다룰 도메인 무작위로 분류하기 위해 파라미터 오류에 너무 민감합니다.
팁 1: 체계적인 도메인 무작위화를 사용
도메인 무작위화는 sim-to-real 전송에 가장 널리 검증된 기술이지만, "모든 것을 무작위화"는 전략이 아닙니다. 효과적인 도메인 무작위화는 시뮬레이션과 실제 설정 사이에 차이가 있는 특정 매개 변수를 목표로합니다. 실제 하드웨어에서 오류 모드를 식별하는 것 (실제 5~10번의 실제 테스트에서도 유용한 신호를 제공합니다) 을 시작하여, 그 오류를 유발할 가능성이 높은 시뮬레이션 매개 변수를 무작위로 설정합니다.
시각 정책에 대해서는 효과적인 무작위 범위를 포함합니다. 카메라 위치의 오프셋이 명칭에서 +/-10cm, +/-10도의 전망 각 변동, +/-30%의 밝기 변동, +/-20%의 색채 변동, +/-15%의 포화 변동, 0-2 피클의 시그마와 가우스 미루어, 그리고 무작위 정사각형 오클루션이 5-20%의 이미지를 덮습니다. 이러한 범위는 시뮬레이션 이미지가 비현실적으로 다양하게 보이게 합니다. 하지만 그게 바로 그 핵심입니다. 이 정책은 이러한 모든 변동에 변하지 않는 특징을 학습합니다. 즉, 시뮬레이션과 실제 카메라 사이의 실제 시각적 차이를 처리합니다.
물리적 매개 변수에서 우선 순위를 부여하십시오: 접촉 마찰 계수 (더 이상 또는 미이너스 50%로 무작위로) 물체의 질량 (더 이상 또는 미이너스 30%), 관절 감축 (더 이상 또는 미이너스 20%), 그리고 동동기 지연 (더 이상 0-20 ms 무작위로 지연)
팁 2: 실제 시뮬레이션 에 투자
기본 시뮬레이션 매개 변수인 관절 딱딱함, 감축, 마찰, 관절성 텐서들은 실제 로봇과 10~50%가 다를 수 있습니다. 훈련 전에 2-4시간 동안 시스템 식별을 수행합니다. 각 관절을 그 범위로 이동하고 실제 토크-포지션-고속 관계를 측정합니다. 이러한 측정된 값을 도메인 무작위 배포의 중심으로 사용하세요. 이 단계만으로도 접촉 작업에서 sim-to-real 오류를 30-50%로 줄이는 경우가 많습니다.
카메라 모델도 캘리버링하세요. 실제 카메라의 실제 내적 매개 변수 (포컬 길이, 주점, 왜곡 계수) 와 외적 매개 변수 (로봇 기지에 비해 위치와 방향) 를 측정하고 시뮬레이션 카메라를 맞게 설정하세요. 시각 정책은 카메라 매개 변수 부합에 놀랄 정도로 민감합니다. 화소 거리의 5%의 오류는 포착 정확도가 10-15% 감소할 수 있습니다.
팁 3: 시각 입력에 대해 RGB보다 깊이를 선호합니다
시뮬레이션에서의 사진실리적인 RGB 렌더링은 여전히 많은 작업에서 직접적인 제로샷 전송을 위해 실제 카메라와 충분히 일치하지 않습니다. 조명 모델, 재료 쉐더 및 그림자 알고리즘은 인간과 유사한 이미지를 생성하지만 신경 네트워크 기능 탐지기가 민감한 방식으로 다릅니다. 깊이 이미지는 sim-to-real 간격이 훨씬 작습니다. 왜냐하면 깊이는 기하학의 직접적인 표현이기 때문에, 시뮬레이션은 기하학을 정확하게 표현합니다.
깊이를 주요 시각 입력으로 사용하는 팀 (RGB가 의미 정보의 부차적 채널로 사용) 은 포착 작업에서 시뮬레이션-실적 전송의 20-40% 향상률을 지속적으로 보고합니다. 작업에 대한 색상 또는 텍스처 정보가 필요하지 않으면 객체 차별을 위해 깊이만을 사용하십시오. 색상 정보를 필요로 하는 경우 (예를 들어 색상별로 객체를 분류하는 경우) RGB 채널을 사용하지만 공격적인 시각 영역 무작위로 적용하십시오.
4단계: 훈련 도중 특권적 인 정보 를 사용 하십시오
특권 정보 기술은 때때로 교사-학생 훈련이라고도 불리는데, 시프-실동 이동의 표준 접근법으로 자리잡고 있으며, 조작에 점점 더 많이 사용되고 있습니다. 아이디어: 실제 하드웨어 (정확한 객체 포지, 실제 마찰 계수, 기초 진실 접촉 위치) 에서 사용할 수 없는 기초 실체 상태 정보를 사용할 수 있는 시뮬레이션에서 교사 정책을 훈련시킵니다.
이것은 교사 정책이 완벽한 정보를 사용하여 작업을 최적화 할 수 있기 때문에 작동하며, 학생들은 실제 하드웨어에서 액세스 할 수있는 소란하고 부분적인 관찰을 사용하여 최적의 행동을 대략적으로 학습합니다. 교사들은 원료 보상만으로보다 훨씬 강력한 훈련 신호를 제공합니다. 이 기술은 ETH 취리히, 카네기 멜론, 유니트리에 네 배 로코모션 전송의 성공에 핵심이었고, 접촉 감지 및 힘 제어를 포함하는 조작 작업에 적응되었습니다.
팁 5: 특정 접촉 매개 변수를 무작위로 설정
지속적인 접촉을 포함하는 모든 작업에 대해 - 삽입, 슬라이드, 푸시, 표면 추종 - 접촉 매개 변수 무작위화는 중요하고 종종 부중 강조됩니다. 마찰 계수뿐만 아니라 접촉 딱딱함, 접촉 감축, 복원 (부팅), 그리고 접촉 모델의 해제 반복 수를 무작위로 정의합니다. 시뮬레이션에서 접촉 해상자는 실제 세계에서 없는 유물 (투입, 진동, 조기 미끄러짐) 을 도입하고, 해상자 매개 변수를 무작위로 설정하면 정책을 이 유물을 이용하기보다는 처리하도록 강요합니다.
실용적인 접근법: 고정된 접촉 매개 변수를 가진 100개의 시뮬레이션 실험을 실행하고 접촉력 프로파일을 기록하고, 고도로 무작위로 이루어진 접촉 매개 변수를 반복합니다. 성공률이 안정될 때까지 무작위적인 연락처를 다시 훈련시켜 실제 하드웨어로 전송하세요.
6단계: 정제 하기 전 에 과 과 과 과 를 시작 하십시오
시뮬레이션에서 직접 정밀 작업에 대한 정책을 전송하려고 시도하는 것은 좌절의 요법입니다. 대신, 과제를
이 계층적 접근법은 시뮬레이션의 규모와 실제 데이터의 충실성을 결합한다. 시뮬레이션 정책은 자유 공간의 움직임과 대략적인 위치가 포함되는 작업의 80%를 처리한다. 작은 양의 실제 데이터 (50-200 개의 시범) 는 정확한 접촉 동적이 필요한 20%를 처리한다. 이 하이브리드는 전체 데이터 예산이 제한되어 있을 때, 시뮬레이션 전용 및 실제 전용 교육 모두보다 꾸준히 우수한 성과를 거두고 있습니다.
7단계: 실제 하드웨어 에 자주 테스트
시미-투-리얼 프로젝트에서 가장 흔한 실수로는 실제 하드웨어에 테스트하기 전에 시뮬레이션에서 최적화를 위해 몇 달을 보내는 것입니다. 실제 하드웨어에서 테스트하기 전에 팀이 실제 정책이 어떻게 실패하는지 발견할 때, 그들은 잘못된 것에 대한 최적화를 위해 엄청난 노력을 투자했습니다. 실제 하드웨어에 대한 테스트는 일찍이 자주 - 적어도 활성 개발 기간 동안 1-2 주마다.
실제 하드웨어 테스트를 무작위적인 평가가 아니라 체계적인 혼란 테스트로 구성합니다. 5-10개의 특정 도전적인 위치에서 테스트합니다. 극한 작업 공간 코너, 접근 가능한 공간의 가장자리에 가까운 물체, 비정상적인 높이에 있는 물체 또는 방향. 이 구조화된 평가에서 오류가 특정 조건 ( 진단 및 수정) 에서 집중되었는지 또는 무작위로 분산되었는지 (정치하기 더 어렵고 근본적인 격차를 암시합니다). 동일한 범주를 사용하여 시뮬레이션과 실제 오류 모드를 모두 기록하고 분포를 비교합니다.
8단계: 액추에이터 모델 을 제대로 만들어
기본 시뮬레이션 액추에이터 모델은 즉각적인 토크 반응, 제로 역동, 완벽한 위치 추적을 위한 이상적인 행동을 취한다. 실제 서보 모터는 대역폭 제한을 (일반적으로 위치 명령에 대해 5-50 Hz), 기어 열차에서 역동 (0.1-2도 감소 비율에 따라) 및 상정한 토크 모델과 크게 다른 토크 속도 곡선을 가지고 있다. OpenArm 1의 일련의 탄력 동동기는 전송의 준결함이 안전의 특징이지만 MuJoCo 또는 Isaac Sim의 기본 고체 동동기 모델이 완전히 무시하는 역학을 도입합니다.
수정: 실제 동동기 반응을 측정합니다. 각 동동에 단계 명령을 보내 시간 내에 위치 응답을 기록합니다. 각 동동에 두 번째 순위 전송 기능을 (자연적 주파수, 감축 비율 및 이득) 를 적용하십시오. 이러한 동동기 모델을 시뮬레이션에서 동동기 모델로 사용하십시오. MuJoCo에서 각 동동기에
9단계: 재료 와 기질 을 체계 로 무작위로 분류 하십시오
시각 정책에 있어서 시뮬레이션에서 물체와 표면의 모습은 현실과 밀접하게 일치하거나 현실이 randomised 배포에 해당할 정도로 광범위하게 randomised되어야 합니다. 두 번째 접근법은 더 강하다. 효과적인 텍스처 무작위로 분류는 다음과 같습니다. 모든 객체 및 표면에 대한 전체 HSV 범위의 무작위 고체 색상, 테이블 표면 및 배경에 적용되는 절차적 텍스처 생성 (퍼린 소음, 체커보드, 추락) 및 조명을위한 무작위 HDRI 환경 지도 (폴리헤븐에서 20-50 무료 HDRI 지도를 다운로드하고 훈련 중에 사이클하십시오).
직관적 반대의 발견: 사진현실적 렌더링은 시미-실적 전송에 종종 반효과를 낳습니다. 사진현실적 시뮬레이션 렌더링으로 훈련된 정책은 현실과 일치하지 않는 시각적 세부 사항을 (특별한 그림자 패턴, 표면 반사) 활용하는 법을 배우습니다. 고작 무작위로 훈련된, 비현실적인 텍스처를 사용하여 훈련된 정책은 보다 나은 전송을 할 수 있는 기하학적 및 구조적 특징을 배우습니다. 만약 당신이 고품질 렌더링 (Isaac Sim Omniverse) 을 사용할 수 있다면, 이를 평가와 디버깅을 위해 사용하세요. 훈련 데이터 생성을 위해서가 아닙니다.
팁 10: 물리 매개 변수 식별 파이프 라인을 구현
액추어터 모델링을 넘어 작업의 물체의 물리적 특성들은 접촉 동작에 상당한 영향을 미칩니다.
- 물질 질량: 로봇이 조작할 모든 물체를 무게로 한다. 시뮬레이션 질량을 일치하도록 설정한다. 무거운 물체에서 10%의 질량 오류는 눈에 띄는 힘과 궤도 오류를 발생시킨다.
- ** 구부러기 계수:** 물체를 기울어진 표면에 배치하고 그 물체가 슬라이드되기 시작하는 각을 기록하십시오. 정적 구부러기 계수를 수색 각으로 계산하십시오. 이에 따라 시뮬레이션 구부러기를 설정하고 측정된 값을 +/-30% 로 randomize하십시오.
- ** 질량 중심:** 비대칭 물체에서는 질량 중심이 잡기 안정성과 운송 동력에 영향을 미칩니다. 물체를 점 위에 균형을 맞추거나 서식 방법을 사용하여 측정합니다. 그에 따라 오프셋 시뮬레이션 COM.
- 무동력
수: 대부분의 테이블탑 조작에 있어서, 정당한 질량과 기하학에 맞는 균일 밀도 고체로 객체를 근접적으로 표현하는 것이 충분하다. 불규칙 또는 홀어 있는 객체에서는 주류의 시점을 측정하거나 추정한다.
이 캘리브레이션 파이프라인은 객체 세트가 변경될 때마다 자동화되고 반복되어야 합니다. RCSV의 RL 환경 서비스는 고객 하드웨어에 대한 표준화된 물리 식별 프로토콜을 포함합니다.
11단계: 직무 에 맞는 연락처 를 선택 하십시오
다양한 시뮬레이터들은 서로 다른 접촉 모델을 제공하며, 선택은 대부분의 팀이 깨닫는 것보다 더 중요합니다. MuJoCo의 구상 접촉 모델은 빠르고 안정적이지만 구상되지 않은 기하학 (물질은 구상에서 간투한다) 를 가진 유물을 생산합니다. 아이작 시ムの GPU 가속화 된 PhysX는 비상형 모양을 더 잘 처리하는 컴플라이언트 접촉 모델을 사용하지만 낮은 접촉 딱딱성 설정에서 진동을 생성 할 수 있습니다. 제네시스는 최적화에 강력한 차별화 가능한 접촉을 제공하지만 일반 목적 접촉 시뮬레이션에 덜 성숙합니다.
간단한 지갑을 사용하여 작업을 잡기 위해: MuJoCo의 기본 접촉 모델은 일반적으로 충분합니다. 좁은 클리어런스있는 집합 작업에 대해: 용해자의 반복 수를 증가시킵니다 (MuJoCo:
팁 12: RL 기반 전송에 비대칭적인 행위자-비평을 사용
시뮬레이션에서 강화 학습을 사용하는 경우 (이미테이션 학습보다는) 비대칭 배우-비평가 아키텍처는 이제 시미-실적 전송의 표준 연습입니다. 비평가 (값 함수) 는 시뮬레이션에서 훈련하는 동안 특권한 기초 진실 상태 정보에 액세스 할 수 있습니다. 배우 (정책) 는 실제 하드웨어에서 사용할 수 있는 관찰만을 사용합니다. 이것은 비평가에게 실제 세계와 호환되는 관찰만을 사용하여 효과적인 행동을 배우도록 안내하는 정확한 가치 추정치를 제공할 수 있게 한다.
이 건축은 ETH 취리히 (ANYmal), 카네기 멜론, 유니트리에서 성공적인 이동 전송 작업 뒤에 있습니다. 조작에 대한 패턴은 동일합니다. 비평가들은 정확한 객체 포즈와 접촉 상태를 볼 수 있습니다. 배우는 카메라 이미지 및 자체 인식만 볼 수 있습니다. 결과는 실제 세계에서 센서를 사용하는 정책이지만 훈련 중에 완벽한 정보에 의해 안내되었습니다.
팁 13: 시미에서 실제 역전 테스트 스위트를 구축
시뮬레이션과 실제 하드웨어에서 각각 실행하는 시뮬레이션과 실제 하드웨어에서 시뮬레이션과 실제 하드웨어에서 각각 수행하는 시뮬레이션 및 실제 하드웨어에서 10-20개의 특정 테스트 구성 (물질 유형, 위치, 방향) 을 정의하고 시뮬레이션과 실제 하드웨어 사이의 상관관계를 추적합니다. 시뮬레이션과 실제 성공률을 시간적으로 추적합니다. 건강한 시프-리얼 파이프라인에서는 시프 및 실제 성능 사이의 상관관계가 0.8 이상으로 나타납니다. 만약 상관관계가 0.6 이하로 떨어지면 시뮬레이션에서 어떤 것이 현실과 떨어져 있습니다 (카메라가 이동, 객체 세트 변경, 액추이터 degraded) 그리고 재계급이 필요합니다.
14단계: 관찰 공간의 차이 를 명확 히 처리 하십시오
시뮬레이션은 완벽한 자기 인식을 제공합니다. 모든 시간 단계에 정확한 관절 위치, 속도 및 가속. 실제 로봇은 코더 소음, 양자화, 통신 지연 및 때때로 떨어지는 읽기입니다. 시뮬레이션 관찰에 현실적인 소음을 추가하십시오. 고시 소음 (코더 특성에 일치하는 표준 경각음) (일반 위치에서 일반적으로 0.001-0.01 광선), 무작위로 0.1-1% 비율로 떨어지는 읽기 및 실제 코더 해상도에 일치하는 양자화. 이 없으면 정책은 실제 하드웨어에서 사용할 수없는 정확도에 의존하는 것을 배우게됩니다.
15단계: 적지 않은 격차 를 발견 해 보십시오
현재 기술로 시미트에서 실제로 이루어지는 몇 가지 격차는 해결될 수 없으며, 이를 일찍 인식하는 것은 몇 달의 노력을 절약합니다. 직시-실적 전송이 작업에 효과가 없을 징후: 작업의 성공은 객체 인스턴스 (무늬 딱딱함, 표면 질감 마찰) 사이가 달라지는 재료 속성에 달려 있습니다. 작업은 접촉에서 미리미터 미만의 정확성을 필요로 합니다. (robot의 반복성은 >1mm) 또는 작업은 액체, 미세한 재료 또는 매우 변형 가능한 객체에 달려 있습니다. 이러한 경우 작업의 대략적인 단계에 시뮬레이션을 사용하여 미세한 단계에 대한 실제 데이터를 수집하거나 완전히 시뮬레이션을 건너뛰고 처음부터 RCSV의 [실적 데이터 수집 서비스]
시뮬레이터 특수한 팁
| Simulator | Best Practice | Common Pitfall |
|---|---|---|
| Isaac Sim | Use GPU-accelerated environments with at least 256 parallel instances for RL; disable ray-traced rendering during training | Leaving ray tracing on tanks throughput 10x; Omniverse USD scene setup takes days if unfamiliar |
| MuJoCo | Use mj_step with 4-5 substeps for contact stability; set solimp and solref per-geom for different materials |
Default solver settings produce unstable contacts for tight assemblies; convex decomposition needed for non-convex meshes |
| Genesis | Leverage differentiable physics for system identification (optimize sim parameters to match real trajectories) | Ecosystem is less mature; fewer pre-built robot models; community support is smaller |
| PyBullet | Good for quick prototyping and education; use URDF models directly from manufacturer | Contact physics is less accurate than MuJoCo; no longer actively developed; avoid for production sim-to-real |
물리학 파라미터 식별: 측정 프로토콜
시스템 식별은 어떤 시프-투-리얼 파이프라인에서 가장 높은 ROI 단계이지만 대부분의 팀은 그것을 건너뛰거나 무작위로합니다. 여기 4-6시간을 걸리는 엄격한 측정 프로토콜이 있습니다.
공동동력 동화 확인 (2시간). 로봇 팔의 각 관절에 대해:
- 0.1 Hz, 0.5 Hz, 1 Hz, 2 Hz에서 시노수이드 위치 궤도를 명령한다. 명령된 위치, 실제 위치, 1 kHz에서 모터 전류를 기록한다.
- 각 주파수에서 주파수 응답 (gain and phase) 을 계산한다. 두 번째 순서 전송 함수를 적용한다: H(s) = K * omega_n^2 / (s^2 + 2*zeta*omega_n*s + omega_n^2). 각 관절에 대한 K (gain), omega_n (자연적 주파수) 및 zeta (damping ratio) 를 기록한다.
- 반발을 측정: 느린 램프를 올려서 램프를 내려가도록 명령한다. 위치 추적의 히스테리스 너비는 반발이다. 전형적인 값은: 조화 드라이브 (프랑카), 행성 기어박스 (오프너아름, 키노바) 에서 0.1-0.05 deg, 직접 드라이브에서 0.2-0.05 deg.
- 마찰을 측정: 각 관절을 매우 낮은 속도로 이동하기 위해 필요한 토크를 기록한다 (<0.01 rad/s). 이것은 쿠룸브 마찰이다. 더 높은 속도로 모크를 대속을 측정하여 휘독 마찰을 추정한다. 모델: tau_friction = tau_coulomb * 신호(v) + b_viscous * v.
**물질 속성을 측정하는 것 (10개 물체당 1시간) **
- mass: 부엌 규모가 1g로 정확합니다.
- 트릭션 계수: 디지털 기울기 측정기에 붙은 평면 표면에 물체를 배치하십시오. 물체가 슬라이드 될 때까지 각을 천천히 증가하십시오. mu_s = tan(각. 최소 3 개의 표면 (금속, 나무, 고무 매트) 에 측정하십시오. 평균을 시뮬레이션 기본으로 사용하십시오. 범위는 무작위로 제한됩니다.
- 중중 (무대상 객체): 2개의 다른 지점에서 문자열을 사용하여 객체를 일시 중지하십시오. 두 개의 수동선이 서식 지점으로부터 교차하면 2차원 COM를 제공합니다. 3차원에서의 세 번째 서식으로 반복하십시오. 정확도는: 대략 5mm, 대부분의 조작에 충분합니다.
- 복귀율: 객체를 30cm에서 단단한 표면에 떨어뜨리고 반격 높이를 기록합니다. COR = sqrt(h_bounce / h_drop). 대부분의 조작 객체에는 0.1-0.5의 COR가 있습니다.
# sys_id.py -- Minimal joint dynamics identification
import numpy as np
from scipy.optimize import curve_fit
def second_order_response(t, K, wn, zeta):
"""Second-order underdamped step response."""
wd = wn * np.sqrt(1 - zeta**2)
return K * (1 - np.exp(-zeta * wn * t) *
(np.cos(wd * t) + (zeta / np.sqrt(1 - zeta**2)) * np.sin(wd * t)))
# Record step response: send a 0.1 rad step command and log at 1kHz
# t_data, pos_data = record_step_response(joint=3, amplitude=0.1)
# Fit parameters
popt, pcov = curve_fit(second_order_response, t_data, pos_data,
p0=[1.0, 50.0, 0.7], bounds=([0.5, 5, 0.1], [1.5, 200, 1.0]))
K, wn, zeta = popt
print(f"Joint 3: K={K:.3f}, wn={wn:.1f} rad/s, zeta={zeta:.3f}")
# Typical values for OpenArm 1: K=0.95-1.0, wn=30-60, zeta=0.6-0.9
이 측정 매개 변수는 바로 시뮬레이션 구성에 들어가 있습니다. MuJoCo에서는 각 액추에터에서 [K * wn^2, 0, 0]와
작업 유형에 따라 Sim-to-Real 전송 성공률
발표된 결과와 RCSV 평가 자료에 근거하여, 다음 표는 위에서 설명한 기술이 올바르게 적용된 것으로 가정하면 작업 범주별로 예상되는 시미-실적 전송 성공률을 보여줍니다.
| Task Category | Sim Success | Real Transfer (naive) | Real Transfer (w/ DR + SysID) | Gap Closure |
|---|---|---|---|---|
| Flat-ground locomotion | 98% | 70-80% | 90-95% | High |
| Rigid object pick-and-place | 95% | 40-55% | 75-85% | Medium-High |
| Door/drawer opening | 92% | 30-45% | 65-80% | Medium |
| Peg insertion (>1mm tolerance) | 90% | 15-25% | 55-70% | Medium |
| 정밀도 assembly (<0.5mm) | 88% | 5-15% | 30-50% | Low-Medium |
| Cloth folding | 85% | 5-10% | 15-30% | Low |
| Fluid pouring | 80% | < 5% | 10-20% | Very Low |
이 패턴은 분명하다: 전송 성공은 접촉 복잡성과 반대의 관계를 맺고 있다. 자유 공간의 움직임과 간단한 딱딱한 접촉이 지배하는 작업은 잘 전달된다. 복잡한 접촉 동학 (변형 가능한 재료, 단단한 용납, 액체) 에 의해 지배되는 작업은 기술에 관계없이 잘 전달되지 않는다. "저기" 격차 폐쇄 범주에 해당하는 작업에 대해서는 시뮬레이션은 사전 훈련 및 대략적인 기술 학습에 여전히 가치가 있지만, 실제 데이터의 정교화는 배치 품질 성과에 필수적입니다.
도메인 무작위 설정: 완전한 예제
여기 MuJoCo에서 테이블탑 조작 작업에 대한 실용적인 도메인 무작위 설정이 있습니다. 시미-리얼 전송에 가장 중요한 매개 변수를 포함합니다.
# domain_randomization.py -- MuJoCo domain randomization for manipulation
import numpy as np
import mujoco
class DomainRandomizer:
"""Randomize physics and visual parameters each episode."""
def __init__(self, model):
self.model = model
self.defaults = {
'friction': model.geom_friction.copy(),
'mass': model.body_mass.copy(),
'damping': model.dof_damping.copy(),
}
def randomize(self):
m = self.model
# Contact friction: +/- 50% (critical for grasping)
m.geom_friction[:] = self.defaults['friction'] * np.random.uniform(0.5, 1.5, m.geom_friction.shape)
# Object mass: +/- 30%
for i in range(m.nbody):
if m.body_mass[i] > 0.01: # Skip fixed bodies
m.body_mass[i] = self.defaults['mass'][i] * np.random.uniform(0.7, 1.3)
# Joint damping: +/- 25%
m.dof_damping[:] = self.defaults['damping'] * np.random.uniform(0.75, 1.25, m.dof_damping.shape)
# Actuator latency: 0-20ms random delay (model in policy loop)
self.actuator_delay_ms = np.random.uniform(0, 20)
# Camera perturbation: +/- 3cm position, +/- 5deg rotation
for cam_id in range(m.ncam):
m.cam_pos[cam_id] += np.random.uniform(-0.03, 0.03, 3)
m.cam_quat[cam_id] += np.random.uniform(-0.05, 0.05, 4)
m.cam_quat[cam_id] /= np.linalg.norm(m.cam_quat[cam_id])
# Lighting randomization
for light_id in range(m.nlight):
m.light_diffuse[light_id] = np.random.uniform(0.3, 1.0, 3)
m.light_pos[light_id] += np.random.uniform(-0.5, 0.5, 3)
훈련 기간 동안 각 에피소드 시작에
실제 시프 에 대한 실패 를 진단 하는 방법: 체계적 인 접근 방법
실제 하드웨어에서 sim 훈련된 정책이 실패할 경우, 이 진단 프레임워크를 사용하여 실패를 일으키는 특정 격차를 식별하십시오.
- 실실 동영상을 실제 하드웨어에서 기록하세요. 모든 카메라가 활성화되어 있는 상태에서 최소 10개의실실실기를 캡처하세요.실실을 범주로 분류하세요: 접근 오류, 포착 오류, 운송 오류, 배치 오류.
- ** 시뮬레이션에서 동일한 초기 조건을 실행하십시오.** 실제 실패 조건과 최대한 잘 일치하도록 시뮬레이션을 설정하십시오. 정책은 이러한 조건과 시뮬레이션에서 성공합니까?
- ** 시각적 관찰을 비교하세요.** 실패 시점에서의 시메라 이미지와 실제 카메라 이미지 사이가 나란히 나란히 이루어집니다. 정책이 민감하게 반응할 수 있는 의미 있는 차이점이 있는 이미지인가요? 조명, 반사, 그림자, 물체의 질을 확인하세요.
- ** 자체 수용 상태를 비교하십시오.** 실제 하드웨어에서 명령된 위치와 실제 위치 사이의 플롯 관절 위치 추적 오류. 어떤 관절에서 추적 오류가 2-3도 이상이면, sim에서 액추에터 모델이 문제가 될 가능성이 높습니다.
- ** 접촉 동작을 비교하십시오.** 만약 접촉 중에 장애가 발생한다면 (잡아, 삽입) 실제 하드웨어에서 F/T 센서 가수 가량을 시뮬레이션된 접촉 힘과 비교하십시오. 큰 불균형 (> 50% 최고 힘 차이) 은 접촉 모델 문제점을 나타냅니다.
이 진단 파이프라인은 일반적으로 2-3 번 이내에 근본 원인을 식별합니다. 주파수 순서로 가장 일반적인 원인은 (1) 카메라 위치 / 캘리브레이션 부합, (2) 액추에이터 모델 불확정, (3) 접촉 마찰 부합, (4) 시각 영역 격차. #1 및 #2를 해결하면 60-70%의 시미-실실실 오류가 해결됩니다.
시뮬레이터 선택: 아이작 시ム, 무조코, 또는 창세기
**NVIDIA 아이작 시미 (PhysX 5에 기반을 둔, Omniverse와 통합) 는 2026년부터 고충성 시뮬레이션의 선두 선택이다. GPU 가속화 된 물리학은 수천 개의 병렬 시뮬레이션 인스턴스를 가능하게 하며, 복잡한 작업에 대한 강화 학습을 처리 할 수 있게 한다. 아이작 시미는 시각 정책 훈련에 대한 최고의 렌더링 품질을 제공합니다. 주요 단점은 설정 복잡성, 하드웨어 요구 사항 (고급 NVIDIA GPU) 및 Omniverse 생태계의 학습 곡선입니다.
MuJoCo (지금은 DeepMind에서 오픈소스) 는 연구 설정에서 빠르고 정확한 접촉 물리학의 표준으로 남아 있습니다. 그것은 아이작 시미보다 환경별로 더 빠르고, 더 간단한 API를 가지고 있으며, 미리 구축된 환경과 벤치마크의 가장 광범위한 생태계를 제공합니다. MuJoCo는 정책 구조와 보상 디자인에 대한 빠른 반복이 필요하고 사진 현실적인 렌더링이 필요하지 않을 때 올바른 선택입니다.
Genesis는 속도와 차별성을 강조하는 최신 시뮬레이터입니다. 이 시스템은 차별화 가능한 물리학을 지원하여 시뮬레이션을 통해 gradient 기반 최적화를 가능하게 하며, 접촉이 풍부한 작업 학습을 가속화 할 수 있습니다. 제네시스는 차별화 가능한 시뮬레이션이 명확한 장점을 제공하는 작업에 대한 채택을 얻고 있습니다. 매개 변수 최적화, 궤도 최적화. 하지만 그 생태계는 MuJoCo나 아이작 시미보다 덜 성숙합니다.
시각 도메인 무작위화: 렌더링 격차를 다는 것
물리 매개 변수 무작위로 처리하는 것은 역학 격차를 처리하지만 시뮬레이션된 카메라 이미지와 실제 카메라 이미지 사이의 시각 격차는 종종 시각 기반 정책의 전송 실패의 지배적인 원천입니다. 시각 영역 무작위로 처리하는 것은 시각 외모에 불변이하도록 정책을 훈련함으로써 이를 해결합니다.
| Visual Parameter | Randomization Range | Impact on Transfer | Notes |
|---|---|---|---|
| Object texture | Random RGB per face or procedural noise | High (+15-25%) | Prevents policy from relying on sim-specific textures |
| Lighting position + color | +/-1m position, 3000K-6500K color temp | High (+10-20%) | Shadows are the biggest visual gap; randomize shadow direction |
| Camera position + orientation | +/-3cm position, +/-5deg rotation | Medium (+8-15%) | Matches real-world camera mounting imprecision |
| Table/background color | Random RGB or texture from dataset | Medium (+8-12%) | Prevents background shortcuts; use real-photo textures for best results |
| Distractor objects | 0-5 random objects in workspace | Medium (+5-10%) | Crucial for cluttered deployment environments |
| Camera noise + blur | Gaussian noise (sigma 0-0.05), motion blur (0-3px) | Low (+3-5%) | Simulates real camera imperfections; more important for low-light deployment |
시각 무작위화에 대한 중요성은 다음과 같습니다. 객체 텍스처 > 조명 > 카메라 위치 > 배경 > 방해 장치 > 소음. 제한된 엔지니어링 시간이있는 팀은 상위 세 가지에 집중해야합니다. 광현실적 대안에서 아이작 시ムの 경로 추적 렌더링을 사용하여 훈련하는 것은 공격적인 텍스처 무작위화의 필요성을 제거하지만 에피소드 당 훨씬 더 많은 GPU 시간을 필요로합니다.
하이브리드 방식: 시프 사전 훈련 + 실제 정렬
2026년 가장 높은 성능의 시프-트리얼 파이프라인에서는 대규모 시뮬레이션 훈련과 약간의 실제 미세조정을 결합합니다. 이 하이브리드 접근법은 시뮬레이션의 확장성을 활용하여 거친 기술을 학습하고 최종 격차를 줄이기 위해 실제 데이터의 충실성을 활용합니다.
# hybrid_sim_real_pipeline.py -- Sim pre-train + real fine-tune
from pathlib import Path
def hybrid_pipeline(task_name, sim_episodes=10000, real_episodes=100):
"""
Stage 1: Pre-train in simulation with domain randomization
Stage 2: Fine-tune on real-world demonstrations
Stage 3: Evaluate on real hardware
"""
# Stage 1: Sim pre-training (runs on GPU cluster, 4-24 hours)
sim_config = {
"environment": f"sim/{task_name}",
"domain_randomization": True,
"visual_randomization": True,
"num_episodes": sim_episodes,
"architecture": "act",
"epochs": 500,
"checkpoint_dir": f"checkpoints/{task_name}_sim",
}
sim_model = train_policy(**sim_config)
# Stage 2: Real fine-tuning (uses sim checkpoint as init)
real_config = {
"dataset": f"data/real/{task_name}",
"num_episodes": real_episodes,
"pretrained_checkpoint": sim_model.checkpoint_path,
"learning_rate": 1e-5, # 10x lower than sim training
"epochs": 200,
"freeze_encoder_epochs": 100, # Freeze visual encoder initially
"checkpoint_dir": f"checkpoints/{task_name}_hybrid",
}
hybrid_model = finetune_policy(**real_config)
# Expected results:
# Sim-only: 40-60% real success (pick-place)
# Real-only (100 demos): 70-80% success
# Hybrid (10K sim + 100 real): 80-90% success
return hybrid_model
하이브리드 접근법은 일반적으로 실제 시범능력 3-5배 이상: 100개의 실제 시범능력과 10K의 시범능력과 비교할 수 있는 300-500개의 실제 시범능력을 달성한다. RCSV의 RL 환경 서비스 는 일반적인 조작 작업에 대한 미리 구축된 시뮬레이션 환경을 제공하여 설정 시간을 1-2 일으로 줄입니다.
실세계의 정규 조정 방법
정렬 단계 는 대부분의 팀 들 이 실수 를 저지르는 단계 이며, 이 때 이 단계 에서 sim 사전 훈련 의 이점을 부정 한다.
- 시프 트레이닝보다 10배 더 낮은 학습률을 사용하세요. 시프 트레이닝 모델은 이미 시각적 특징과 거친 운동 능력을 배웠습니다. 높은 학습률은 이 모든 것을 덮어내고 시프 트레이닝 전 혜택은 완전히 잃습니다.
- 미조조기시대 첫 50% 동안 시각적 인코더를 얼어붙이십시오. 시프로 훈련된 코더는 100 개의 실제 디모가 가르쳐 줄 수 있는 것보다 더 일반적인 시각적 특징을 배웠습니다. 행동 예측 헤드 먼저 적응하고, 매우 낮은 LR (1/100%의 행동 헤드 LR) 로 코더를 풀도록 하십시오.
- ** 정렬 중 10-20%의 시밍 데이터를 섞어 보세요.** 실제 정렬 배열에 작은 부분의 시밍 에피소드를 추가하면 시밍 학습 기술을 재앙적으로 잊을 수 없도록 방지하고 조절 역할을 합니다.
- 시프 오류 모드를 대상으로 하는 실제 디모를 수집하세요. 정비 데이터를 수집하기 전에 실제 하드웨어에서 시프 미리 훈련된 정책을 실행하세요. 특정 오류 모드를 식별하세요 (일반적으로 접촉 역학이나 시각적 외모 불합동) 그리고 실제 데이터 수집을 원형적으로 수집하는 것이 아니라 해당 오류 조건에 집중하세요.
로봇 학습에 대한 시뮬레이션 엔진 비교
올바른 시뮬레이터를 선택하는 것은 sim 훈련 데이터의 품질과 환경을 설정하는 데 필요한 엔지니어링 노력에 영향을 미칩니다. 2026 년에 조작 작업에 대한 주요 옵션이 어떻게 비교되는지 다음과 같습니다.
| Simulator | Physics Quality | Rendering Quality | Speed (steps/sec) | Setup Effort | Best For |
|---|---|---|---|---|---|
| MuJoCo 3.x | Excellent | Good (basic PBR) | 100K+ (CPU) | Low (MJCF/URDF) | RL training, contact-rich tasks, rapid prototyping |
| Isaac Sim / Isaac Lab | Very Good | Excellent (RTX raytracing) | 10K-50K (GPU) | High (USD, NVIDIA stack) | Visual sim-to-real, domain randomization, GPU-parallel RL |
| Genesis | Good | Good | 50K-200K (GPU) | Low-Medium | Fast parallel sim, soft body, generative tasks |
| PyBullet | Adequate | Basic | 5K-20K (CPU) | Very Low | Quick experiments, education, lightweight benchmarks |
| RoboCasa / Robosuite | Good (MuJoCo-based) | Good | 10K-50K (CPU) | Low (pre-built tasks) | Home/kitchen manipulation, benchmark tasks, multi-task RL |
** 대부분의 팀에 대한 추천:** 물리 품질, 속도 및 낮은 설정 노력의 조합으로 MuJoCo 3.x를 시작하십시오. 시각 영역의 무작위화 또는 GPU 병렬 훈련 (1000+ 병렬 환경) 을 위해 광현실적인 렌더링이 필요한 경우에만 아이작 시ム로 전환하십시오. 기네시스는 변형 가능한 물체와 작업하거나 가능한 한 빠른 병렬 처리량을 필요로 하는 팀들을 평가할 가치가 있다. PyBullet은 빠른 프로토타입 제작에 적합하지만 품질이 낮은 훈련 데이터를 생산하여 신뢰도가 떨어진다.
시프-리얼 격차 측정: 양적 프로토콜
복잡한 도메인 무작위화에 투자하기 전에, 특정 작업에 대한 기본 시프-실적 격차를 측정하십시오. 이 측정은 격차를 닫는 작업이 얼마나 필요한지 알려줍니다.
- ** 시뮬레이션에서만 정책을 훈련** (전설 시뮬레이터 렌더를 사용하여 도메인 무작위화 없음). 100개의 평가 에피소드에서 sim 성공률을 기록하십시오.
- ** 실제 하드웨어**에 대한 동일한 정책을 변경하지 않고 실행하세요. 실제 평가 실험을 20개 실행하세요. sim 성공률과 실제 성공률의 차이점은 sim-to-real 간격입니다.
- 실실을 분류하십시오. 실체실실실의 근본 원인을 확인하세요: 시각적 외관 부합 (시프 렌더링은 실제 카메라와 일치하지 않습니다), 물리학 부합 (물질 역학이 다르다) 또는 제어 부합 (동동력 반응은 시뮬레이션 액추에터와 다릅니다). 이 분류는 격차를 닫기 위해 어떤 노력을 투자해야 하는지 알려줍니다.
- ** 목표형 격차 해소법을 적용.** 시각적 오류가 지배적 인 경우 도메인 무작위화 및 더 나은 렌더링에 투자하십시오. 물리학 오류가 지배적 인 경우 시스템 식별에 투자하십시오. 제어 오류가 지배적 인 경우, 액추에터 모델링 또는 잔여 정책 학습에 투자하십시오.
- ** 재 측정.** 각 라운드 간격 완화 후, 단계 2~3을 반복하십시오. 실제 성공률이 배치 문턱을 초과하거나 남은 간격이 5% 이하 (회익 감소) 에 이르면 중지하십시오.
전형적인 기본 격차 (도메인 무작위화도 없고 시스템 ID도 없다): 픽 앤 प्लेस 딱딱한 객체: 20-40% 격차; 삽입 작업: 30-50% 격차; 변형 가능한 객체 조작: 50-70% 격차. 전체 도메인 무작위화와 시스템 식별 후, 이러한 격차는 일반적으로 각각 5-15%, 10-25%, 25-40%로 감소한다. 나머지 격차는 실제 미세조로 닫힌다.
시 를 완전히 때
시뮬레이션은 항상 올바른 선택이 아닙니다. 시뮬레이션을 건너뛰고 실제 데이터 수집에 직접 이동하면: 작업은 변형 가능한 물체나 거의 시뮬레이션되지 않은 재료 (복, 케이블, 음식) 를 포함하면; 빠른 실제 데이터 수집에 액세스 할 수 있습니다 (RCSV의 [데이터 서비스]
결정 프레임워크는 간단합니다. 특정 작업에 대한 시뮬레이션 환경을 구축하고 캘리브하는 비용을 추정합니다 (공학 시간, 렌더링용 하드웨어 및 시ム-실적 전송에 대한 디버깅 시간 포함). 실제 데이터의 동등한 양의 수집 비용과 비교하십시오. 2026 년 많은 조작 작업에 대해, 실제 데이터 경로는 더 빠르고 예측이 가능합니다. 시뮬레이션은 수백만 개의 에피소드가 필요할 때 (강보 학습), 작업이 잘 전달될 때 (동동) 또는 실제 데이터 수집이 위험하거나 비싸면 (수술 로봇, 위험한 환경) 탁월합니다.
이적 파이프라인을 시작 하십시오
RCSV의 RL 환경 서비스 는 특정 하드웨어에 대한 시스템 식별 및 물리 캘리브레이션으로 관리된 시뮬레이션 환경을 제공합니다. 하이브리드 접근 방식을 추구하는 팀에게는 [데이터 서비스] (T20
관련 독서
- [로봇 정책 일반화: 왜 로봇이 새로운 물체에서 실패하는 지]
- [로봇 학습과 고전 로봇: 언제 어떤 것을 사용해야 하는가]
- [로봇 학습의 확장 법칙: 우리가 2026년에 알고 있는 것]
- [로봇 배포 체크리스트: 생방송을 하기 전에 12 단계]
- [행동과 방전 정책: 언제 어떤 것을 사용해야 하는가]
- [RCSV RL 환경 서비스]
- [RCSV 데이터 수집 서비스]
가산 시뮬레이션 환경 을 얻으세요
RCSV의 RL 환경 서비스는 특정 로봇 하드웨어에 대한 시스템 식별 및 물리 기계를 포함한다.
[RL 환경을 탐구]







