로봇 시뮬레이션용 CAD 에셋을 준비하는 일은 형상을 OpenUSD로 변환하는 데서 끝나지 않습니다. 로봇의 동작을 테스트하기 전에 머티리얼, 충돌 형상, 조인트를 비롯한 물리 속성을 설정하고 검증해야 합니다.
SimReady Foundation 사양과 에이전트용 NVIDIA 스킬을 바탕으로 NVIDIA Omniverse 라이브러리를 활용하면, 시뮬레이션 지원 에셋인 SimReady 에셋을 변환하고 검증하는 체계적인 워크플로를 구성할 수 있습니다. 프런티어 AI 모델은 참고 자료를 해석하고 개발자를 대신해 Omniverse 도구를 호출하며 각 단계를 지원하므로, 수작업으로 준비하는 부담이 줄어듭니다.
이 글에서는 SimReady Foundation과 NVIDIA Omniverse 도구로 ABB Robotics YuMi 로봇을 시뮬레이션용으로 준비하는 과정을 살펴봅니다. 이 과정을 지원하는 프런티어 AI 모델의 한 예로는 GPT-6 Astra를 사용합니다. 워크플로는 STEP 파일 변환, 외형 검증, 물리 설정, SimReady 검증, 그리고 NVIDIA Isaac Sim에서 양팔과 그리퍼를 모두 사용하는 최종 픽앤플레이스 과제까지 다섯 단계로 구성됩니다.
SimReady란 무엇이며, 시뮬레이션에서 왜 중요할까요?
SimReady는 특정 시뮬레이션 용도에 맞게 OpenUSD 에셋을 준비하기 위한 요구 사항을 정의합니다. 개발자는 사용 목적에 맞는 SimReady 프로파일을 선택하고, 에셋이 해당 요구 사항을 충족하는지 검증합니다. 프로파일별 검사는 에셋의 구조, 머티리얼, 물리 속성을 확인하고 문제를 알려 주며, 개발자는 이를 수정한 뒤 다시 검사합니다.
로봇 모델은 겉보기에 정상이어도 시뮬레이션 속성이 빠져 있으면 시뮬레이션에서 제대로 동작하지 않습니다. 충돌 형상이 없으면 물체가 그리퍼를 그대로 통과할 수 있고, 조인트가 잘못 정의되어 있으면 팔이 협응 동작을 하지 못합니다. 질량이나 마찰 같은 속성 역시 파지가 안정적으로 유지되는지를 좌우합니다.
이 워크플로에는 다음 기술과 도구가 사용됩니다.
- OpenUSD: 형상, 조립 구조, 머티리얼, 시뮬레이션 속성을 하나의 공통 에셋 표현으로 담습니다.
- SimReady Foundation: 시뮬레이션 지원 에셋 준비를 위한 사양과 검증 가이드를 제공합니다.
- NVIDIA Omniverse 라이브러리: 개발자와 에이전트가 OpenUSD 콘텐츠를 변환, 점검, 준비하는 데 쓰는 기능을 제공합니다.
- NVIDIA Isaac Sim: 물리 설정과 로봇 동작 테스트를 위한 환경입니다.
- NVIDIA Omniverse AI 에이전트 스킬: CAD-to-SimReady 스킬을 비롯해, 에셋 변환과 머티리얼 및 물리 할당, 검증 과정에서 에이전트를 안내합니다.
SimReady 로보틱스 워크플로: ABB YuMi 로봇 예제
이 글은 ABB YuMi 로봇으로 5단계 SimReady 워크플로를 시연합니다. 각 단계에서 NVIDIA Omniverse 라이브러리를 호출하는 Python 코드를 작성하는 데 프런티어 AI 모델의 한 예로 GPT-6 Astra를 사용했지만, 같은 워크플로는 다양한 모델과 로봇 시스템에 적용할 수 있습니다.
예제는 워크플로 중에 설정한 양팔과 그리퍼를 모두 사용합니다. 5단계의 시연에는 큐브와 Sharpie 마커를 활용했습니다. 카메라 기반 인식은 별도의 워크플로에서 추가할 수 있습니다.
시작하기 전에
- Isaac Sim을 설치합니다.
- 사용할 프런티어 AI 모델을 설치합니다.
- 이 예제에서는 GPT-6 Astra를 사용했습니다.
- Isaac Sim 디렉터리에서 Codex CLI를 실행합니다.
- 에이전트가 워크플로에 필요한 스킬을 찾을 수 있도록 반드시 Isaac Sim 디렉터리 안에서 실행해야 합니다.
이 예제는 Isaac Sim 6.1과 Codex CLI를 사용했으며, Isaac Sim은 창 모드로 실행했습니다.
실행 중인 Codex CLI에 다음 예시 프롬프트를 입력하면 Isaac Sim이 시작됩니다.
Start Isaac Sim in windowed mode with the remote Python server enabled. Use a fresh terminal for this.
Isaac Sim의 원격 Python 서버를 사용하면 에이전트가 Python을 통해 실행 중인 Isaac Sim 애플리케이션과 통신할 수 있습니다. 다음 단계로 넘어가기 전에 연결이 정상적으로 작동하는지 확인합니다.
각 단계에서는 샘플 프롬프트를 작업에 맞게 수정해 프런티어 AI 에이전트에 입력하고, 시뮬레이션 결과와 검증 피드백을 검토해 문제를 파악한 뒤 에셋을 개선합니다.
1. STEP 파일에서 로봇 가져오기
워크플로의 첫 단계는 reference 폴더의 STEP 파일에서 로봇을 가져오는 것입니다.
이 예제에서는 Isaac Sim 디렉터리의 reference 폴더에 다음 입력 자료를 준비합니다.
| 샘플 입력 | 용도 |
|---|---|
| ABB Robotics YuMi 로봇 STEP 파일 | OpenUSD로 변환할 원본 형상 |
| ABB Robotics의 참조 이미지와 영상. 이 샘플 워크플로에서는 링크된 ABB Robotics 영상과 이미지를 사용합니다. | 에셋의 외형과 머티리얼 할당을 안내하는 기준 |
| SimReady Foundation 사양 저장소. Isaac Sim 6.1에는 simready-foundation-tier-core도 함께 포함되어 있습니다. | 로봇 요구 사항, 관련 스킬, 검증 가이드 제공 |
| CAD-to-SimReady 스킬 | CAD 변환, 머티리얼 및 물리 할당, SimReady 검증 안내 |
준비한 입력 자료를 바탕으로 OpenUSD 변환과 Isaac Sim 가져오기를 진행하도록 에이전트에 요청합니다.
샘플 프롬프트:
Use the STEP files in the reference folder and CAD-to-SimReady skill (https://github.com/NVIDIA/skills/tree/main/skills/omniverse-cad-to-simready) and import the robot into Isaac Sim. Make sure you also import both grippers and position them at the correct mounting points on the robot's arms.

사용한 NVIDIA 스킬: omniverse-cad-to-simready, omniverse-cad-to-usd, isaac-sim-remote
다음 단계로 넘어가기 전 확인 사항: 로봇 에셋을 가져와 점검할 수 있는 상태여야 합니다. 과제와 제공된 요구 사항을 에이전트가 이해했는지, 부족한 정보는 무엇인지 파악해 둡니다.
2. 외형 일치시키기
두 번째 단계에서는 가져온 로봇을 점검해 필요한 머티리얼과 텍스처가 올바르게 로드되었는지 확인합니다. 제공된 ABB 이미지와 영상을 에셋과 비교해 스케일, 방향, 부품 배치도 함께 검토합니다.
이 참조 자료를 바탕으로 머티리얼과 텍스처를 추가하거나 다듬도록 에이전트에 요청합니다.
샘플 프롬프트:
Use the ABB images and videos in the reference folder to match the imported robot's appearance to the physical robot. Add or adjust materials and textures, and report any visual discrepancies or missing reference information.

전제 조건: 에이전트는 CAD 형상과 장착 변환을 유지한 채 색상, 금속성, 거칠기를 조정해 로봇의 머티리얼을 시각적으로 맞춥니다. 머티리얼 설정은 눈대중으로 추정한 값이며, 측정을 통한 머티리얼 재구성이나 AI 생성 텍스처는 사용하지 않았습니다.
사용한 NVIDIA 스킬: isaac-sim-remote, usd-pipeline
다음 단계로 넘어가기 전 확인 사항: 로봇의 스케일, 방향, 부품, 외형이 기대와 일치해야 합니다. 누락된 머티리얼과 텍스처 등 시각적 불일치는 모두 기록해 둡니다.
3. 물리 속성 설정하기
이 시점의 OpenUSD 에셋에는 로봇의 시각적 형상만 담겨 있으며, 조인트, 리지드 바디, 충돌 형상은 아직 설정되지 않았습니다. 양팔과 그리퍼의 물리 속성을 설정하고 검증하도록 에이전트에 요청합니다. 에이전트는 reference 폴더의 데이터시트를 참조해 조인트 범위와 속도 제한이 시뮬레이션 로봇과 일치하도록 맞춥니다.
제조사 데이터가 불완전하다면, 부족한 파라미터를 찾아내고 기술 매뉴얼이나 해당 모델의 공개 URDF 로봇 기술 파일을 확인하도록 에이전트에 요청할 수 있습니다. 질량 속성을 끝내 구할 수 없는 경우에는 NVIDIA의 질량 속성 가이드에 따라, 문서화된 밀도나 질량 분포 가정을 사용해 형상으로부터 추정합니다. 한 예로, 충분한 맥락이 주어지지 않았을 때 에이전트가 이 로봇의 공개 URDF를 직접 내려받아 조인트 축과 영점 구성을 파악하는 데 활용하는 것을 확인했습니다.
샘플 프롬프트:
Rig the physics and validate the physics properties for both YuMi arms and grippers.
Check joint definitions, axes and limits, mass and inertia, collision geometry, base mounting, and gripper motion.

초기 자세는 달라질 수 있습니다.

이 워크플로의 시뮬레이션 가정
- 조인트 구성: 에이전트가 로봇의 공개 URDF를 가져와 조인트 축과 영점 구성을 파악하는 데 사용했습니다.
- 링크별 질량: STEP 형상의 부피로 추정한 뒤, 제조사가 명시한 총질량인 로봇 38kg, 그리퍼당 0.28kg에 맞춰 정규화했습니다.
- 무게중심과 관성: 모든 부품이 균일한 밀도의 속이 찬 물체라고 가정해 계산했습니다. 내부 모터, 감속기, 배선은 개별적으로 모델링하지 않았습니다.
- 접촉 속성: 정지 마찰 계수 0.8, 동적 마찰 계수 0.6, 반발 계수 0으로 가정했습니다.
- 충돌 형상과 외형: 볼록 충돌 형상, 표면 거칠기, 머티리얼 반응은 근삿값을 사용했습니다.
- 보정: 이 파라미터들은 실제 YuMi의 측정값으로 보정하지 않았습니다.
사용한 NVIDIA 스킬: usd-articulation, physics-simulation, isaac-sim-validator, isaac-sim-remote
다음 단계로 넘어가기 전 확인 사항: 조인트가 예상한 축을 중심으로, 정해진 한계 안에서 움직여야 합니다. 베이스 장착과 그리퍼 동작은 설정한 대로 작동해야 합니다. 추정한 속성과 검증 실패 사항은 모두 기록해 둡니다.
4. SimReady 속성 검증하기
다음 단계에서는 의도한 시뮬레이션 과제의 SimReady 요구 사항에 맞춰 로봇의 OpenUSD 에셋을 검증합니다. 선택한 SimReady Foundation 검사를 실행하고 결과를 검토한 뒤, 필요하면 에셋을 수정하도록 에이전트에 요청합니다.
샘플 프롬프트:
Validate the final YuMi asset in Isaac Sim.
Find the SimReady asset validation for a robot, and apply the SimReady schema (https://github.com/nvidia/simready-foundation) to the usd file, use any related skills in that repo.
이 워크플로의 검증 결과
- SimReady Foundation: YuMi 에셋의 단위, 에셋 종속성, 형상, 머티리얼, 리지드 바디, 조인트, 드라이브, 아티큘레이션을 SimReady Foundation 요구 사항에 따라 검사했습니다.
- Isaac Sim 에셋 검사: Isaac Sim 내부의 검증 엔진으로 스케일, 방향, 부품 배치, 그리퍼 장착, 머티리얼 적용 범위, 텍스처 종속성의 해결 여부를 확인했습니다.
- 질량과 관성: 리지드 바디 21개 모두 양의 질량과 물리적으로 타당한 관성 텐서를 가졌으며, 런타임 값은 설정한 값과 일치했습니다.
- 조인트: 축, 프레임, 한계, 드라이브, 손가락 미믹 동작, 고정 베이스 장착을 확인했습니다.
- 런타임 동작: 테스트한 궤적을 따라 팔과 그리퍼의 움직임, 접촉, 해제, 충돌을 시험했습니다.
이 검사들은 시뮬레이션 구현을 검증한 것입니다. 실제 로봇의 동역학과 일치하는지, 모든 가능한 자세에서 충돌 안전성이 확보되는지는 확인하지 않았습니다.

다음 단계로 넘어가기 전 확인 사항: 전체 과정이 합의한 수용 기준을 충족하고 선택한 SimReady 검사를 통과해야 합니다. 튜닝으로 변경한 사항, 추정한 속성, 해결되지 않은 실패는 모두 기록해 둡니다.
5. 로봇 시뮬레이션 최종 과제
Isaac Sim에서 최종 검증을 실행합니다. 앞서 확인한 시각, 물리, SimReady 검사에 픽앤플레이스 과제를 더해 종합적으로 검증합니다.
예제 1: 큐브 픽앤플레이스
테스트 장면에 색상 타깃과 박스를 추가하고 타깃 위치와 색상 메타데이터를 정의하도록 에이전트에 요청합니다. 각 큐브에 맞는 색상 타깃은 장면 메타데이터로 선택합니다.
샘플 프롬프트:
Use both arms and grippers to pick and place cubes. Add color targets and a box to the test scene, and define their locations and the targets' color metadata.
Run the complete grasp, lift, hold, transfer, and release sequence. Use scene metadata to select the matching color target for each cube. Also test placement into the box.
Check scale, orientation, part placement, materials, textures, joint axes and limits, collision geometry, and gripper behavior. Run the selected SimReady Foundation validation checks.
시뮬레이션 가정
- 접촉 마찰 계수는 단위가 없는 값으로, 정지 마찰 0.8, 동적 마찰 0.6을 가정했습니다. 이 설정에서 파지 테스트는 통과했지만, 계수는 실제 손가락과 물체 사이의 접촉에 대해 측정하거나 보정한 값이 아닙니다.
- 이 예제는 45mm 크기에 무게 40g인 테스트 큐브와 3단계에서 설명한 시뮬레이션 가정을 사용합니다.
픽앤플레이스 시연 결과
- 완료한 사이클: 122.2초 동안 진행한 물리 시뮬레이션에서 양팔과 그리퍼가 픽앤플레이스 사이클을 총 4회 완료했습니다.
- 과제 순서: 각 팔은 자신의 큐브를 잡아 들어 올리고 2초간 유지한 뒤 옮겨서, 색이 일치하는 타깃 위에 내려놓았습니다. 이어서 큐브를 다시 집어 박스 안에 넣었습니다.
- 접촉 동작: 시뮬레이션 중에는 부착 조인트, 키네마틱 고정, 큐브 자세의 직접 갱신 없이 손가락의 접촉과 마찰만으로 큐브를 운반했습니다.
- 수용 기준: 모든 사이클이 정의한 파지, 유지, 이송, 해제, 배치 기준을 통과했습니다.
- 녹화: MP4와 GIF는 이 시뮬레이션에서 생성했습니다.

예제 2: 이미지로 만든 물체의 픽앤플레이스
별도의 시연에서는 참조 이미지로 Sharpie 마커를 만들었습니다. 에이전트가 3D 에셋을 생성하고, 로봇이 이를 집어 올리는 과제입니다.
- 시뮬레이션 가정: 에이전트는 마커의 길이를 140mm, 질량을 10g으로 추정했고 무게중심은 Sharpie의 기하학적 중심에 두었습니다. 충돌 형상은 캡, 몸통, 뒷마개를 원통 형상으로 근사했습니다.
- 시연 결과: YuMi의 그리퍼가 탁자 위의 마커를 들어 올려 Isaac Sim의 파란색 트레이에 놓았습니다.

시뮬레이션 테스트가 성공했다는 것은 테스트한 조건에서 동작이 구현되었음을 의미합니다. 결과는 사용하는 프런티어 AI 모델과 프롬프트에 따라 달라질 수 있습니다.
사용한 NVIDIA 스킬: manipulation-ik, physics-simulation, isaac-sim-validator, isaac-sim-remote, isaac-sim-rendering
워크플로 직접 해보기
SimReady Foundation과 NVIDIA Omniverse 도구를 활용하면 CAD 파일과 참조 자료를 시뮬레이션에서 설정하고 검증하고 테스트할 수 있는 에셋으로 바꿀 수 있습니다. OpenUSD, SimReady Foundation, NVIDIA Omniverse 도구와 스킬로 로보틱스 시뮬레이션 과제에 쓸 에셋을 준비해 보시기 바랍니다.
이 글의 YuMi 예제는 프런티어 AI 모델로 GPT-6 Astra를 사용한 SimReady 로보틱스 워크플로의 한 사례입니다. 다른 로봇이나 프런티어 AI 모델에 적용하려면 필요한 도구와 스킬을 사용할 수 있는지 확인하고, 관련 참조 자료를 준비한 뒤, 에셋과 과제 검증을 반복하십시오. 결과는 모델, 추론 강도, 프롬프트에 따라 달라질 수 있습니다.
ABB Robotics 샘플 워크플로 사용해 보기
- SimReady Foundation 저장소와 CAD-to-SimReady 스킬로 에셋 준비를 시작해 보십시오.
- ABB Robotics YuMi 로봇의 STEP 파일, 참조 영상과 이미지를 받아 이 예제를 그대로 따라 해 볼 수 있습니다.
더 알아보기
- Isaac Sim과 Isaac Lab으로 로보틱스 시뮬레이션을 살펴보십시오.
- 무료 OpenUSD 학습 경로에서 OpenUSD 장면 구성 방법을 배워 보십시오.
- 무료 피지컬 AI 강좌에서 로보틱스와 디지털 트윈 기술을 익혀 보십시오.
2026년 10월 20일부터 22일까지 열리는 NVIDIA GTC 베를린에서 피지컬 AI와 로보틱스의 최신 동향을 확인하고, 개발자, 연구자, 업계 리더와 교류해 보세요.