본문으로 건너뛰기

M10.02 · URDF 자산과 USD 자산의 관계

단위별 목표·권장 선수와 자료 준비 상태를 확인하고, 공개된 본문과 활동을 읽고 준비 상태를 확인할 수 있습니다.

전체 커리큘럼

학습 안내

본문을 읽고 장비 없는 기본 실습·세 확인 문제와 해설로 이해를 확인하세요.

예상 학습 시간: 미정. 이 페이지 방문이나 자료 열람으로 완료·숙달을 자동 부여하지 않습니다.

현재 경로·이전·다음 단위 확인 ↓

학습 목표

  • 원본/확장 URDF·생성 USD·장면 배치·실험 레이어의 역할과 표현 차이를 설명한다.
  • 가상 변환 보고서에서 단위·이름·관절 관계·베이스 조건의 보존 여부를 계산하고 판정한다.
  • 재가져오기와 자산 의존성 변경에 대비한 출처 기록 및 단계별 재검사 계획을 작성한다.

아래 설명·실습·문제로 각 학습 목표를 확인하세요.

권장 선수

M08.01~06의 URDF/모델 이식과 M10.01의 reference/레이어가 선수다. 기본 활동은 합성 변환 보고서의 종이 검사다. Isaac Sim 6.2 문서를 기준으로 설명하되 실제 importer나 GPU를 실행하지 않는다. 이미 알고 있다면 직접 열어볼 수 있습니다.

설명 필수

세 목표에 대응하는 검수된 설명·예제를 읽습니다.

로봇 명세와 장면 자산은 같은 파일이 아니다

URDF는 링크와 관절의 트리, visual/collision/inertial 등 로봇 모델을 표현한다. Xacro를 쓰면 매개변수와 매크로를 확장한 URDF가 importer 입력이 될 수 있다. USD는 이 모델을 장면 Prim과 관계/속성으로 구성하고 재질·센서·환경·여러 배치와 실험 의견까지 합성할 수 있는 더 넓은 표현이다. 따라서 URDF를 USD로 가져온다는 것은 원본을 동일한 문법으로 복사하는 일이 아니다. 어떤 정보를 어디에 표현하고 어떤 가정/옵션을 추가했는지 추적해야 한다.

가상 파이프라인을 네 산출물로 나누자. robot.xacro와 치수 설정은 원본, 이를 확장한 robot.urdf는 이번 입력의 구체화, generated/robot.usd는 도구가 생성한 자산, scene.usda는 그 자산을 참조하여 배치하는 장면이다. 실험별 이득이나 배치 변경은 별도 experiment 레이어로 관리할 수 있다. 원본에 없는 환경 조명/카메라를 USD 장면에 추가했다고 원본 URDF가 자동으로 갱신되는 것은 아니다.

어느 파일을 수정해야 하는지는 변경의 의미로 결정한다. 링크 길이나 실제 관절 영점 정의의 변경은 원본 모델과 관련 보정 자료에서 관리해야 할 수 있다. 장면에서 로봇 두 대의 배치 위치를 바꾸는 일은 scene 쪽이다. 도구가 만드는 generated 자산을 직접 고치면 다음 가져오기에서 수동 변경을 잃거나 수정 이유가 추적되지 않을 수 있다. 생성 결과를 잠그고 출처를 남기거나 재적용 가능한 override를 분리하는 정책을 정한다. 레이어를 나눴다는 사실만으로 원본 경로 변경에도 override가 자동 유지되는 것은 아니다.

변환은 정보의 대응표를 요구한다

URDF link는 대상의 시각/충돌/강체 Prim들로 나뉠 수 있고 joint는 두 바디와 로컬 프레임을 연결하는 관계로 표현될 수 있다. 원본 링크 하나가 USD Prim 하나라는 고정 규칙으로 수를 비교하지 않는다. 메시 병합이나 인스턴싱 같은 처리도 장면 구조를 바꿀 수 있다. 중요한 것은 공개 이름·프레임·물리 의미와 소비자가 요구하는 경로가 유지됐는지다. 원본 이름→대상 Prim 경로→실행 시 관절 이름의 표를 따로 두면 이름 문자열에 의존하는 브리지 오류를 줄일 수 있다.

URDF와 USD 사이의 보존 계약: 원본 로봇 모델 → 변환 규칙 → 가져온 USD 자산 → 검수.그림 원본 크기로 보기

그림 M10.02-1. 각 칸은 서로 다른 역할/근거다. 아래 방향은 자료/처리의 연결이며 실제 성공을 자동으로 보장하지 않는다. 직접 제작한 개념도이며 본문의 조건과 함께 읽는다.

Isaac Sim 6.2 공식 importer 문서는 USD 이름 규칙에 맞지 않는 문자를 정리하는 동작, package:// 자원 경로 매핑, visual에서 collision을 만드는 선택지 등을 설명한다. 예를 들어 원본 관절 shoulder-pan이 대상 이름 shoulder_pan으로 바뀌었다는 합성 보고가 있다면 원래 이름으로 보내는 상태/명령의 매핑도 확인한다. 단순히 '-'를 '_'로 바꾸는 일반 치환만 믿으면 이미 shoulder_pan이라는 다른 이름과 충돌할 가능성도 있으므로 최종 대응표의 유일성을 검사한다.

collision 생성은 누락된 원본 정보를 새로 근사하는 일이다. 원본에 visual만 있는데 importer가 볼록 껍질을 만들었다면 ‘원본 collision을 그대로 보존’한 결과가 아니다. 구멍/접촉면이 바뀌지 않았는지 M08.04의 기준으로 비교한다. 질량/관성이나 기본 drive 값이 생성/추정됐다면 출처와 가정도 기록한다. 화면이 비슷하다는 사실은 이런 보존 검사를 대신하지 못한다.

단위·관절 관계·베이스를 수치로 확인한다

가상 팔의 길이 L=0.2 m, z축 회전 관절 q의 제한은 [−1,1] rad라고 하자. L은 원점에서 끝점까지 거리, q는 같은 영점에서 오른손 방향으로 도는 각도다. 모든 scale이 1이고 장면이 m 단위이면 q=0의 끝점은 (0.2,0,0), q=0.5 rad는 약 (0.175517,0.095885,0) m다. 작은 양의 자세까지 비교하면 길이는 맞지만 회전축이나 부호가 뒤집힌 경우를 잡을 수 있다.

USD RevoluteJoint 제한 속성은 degree 계약이므로 [−1,1] rad는 약 [−57.2958,57.2958] degree다. 반면 실행 API가 rad를 받으면 목표 q=0.5에는 변환을 중복 적용하지 않는다. 길이도 metersPerUnit과 전체 변환을 검사한다. 상위 scale=1이고 0.01 m/unit 장면이라면 0.2 m는 20 unit이다. 파일 속성과 제어 API, 원본 값과 최종 변환값을 섞지 않는 것이 핵심이다.

두 그리퍼 관절의 원본 관계가 q_R=0.04−q_L이라고 하자. 두 q는 m 단위이며 q_L=0.01이면 q_R=0.03이다. 합성 변환 보고서에 두 관절이 같은 값 0.01로 독립 설정됐다고 나오면 원본 관계가 유지된 것인지 추가 검사가 필요하다. 6.2 importer 문서는 mimic의 배율/오프셋 관계를 대상 스키마로 옮기는 동작을 설명하지만 그 사실만으로 모든 백엔드/설정에서 이미 검증됐다고 하지 않는다. 백엔드와 적용된 API, 실제 보고 결과를 함께 기록한다.

베이스 고정 여부도 물리 의미다. 6.2의 Base Type은 Source/Fixed/Mobile을 구분한다. Source는 원본 고정 관계를 그대로 두는 의미이며 고정 베이스의 동의어가 아니다. Fixed는 world와 루트를 고정하는 관계를 추가하고 Mobile은 그 관계를 제거하여 이동 가능하게 하는 선택이다. 탁자에 고정한 팔을 의도했는데 자유 베이스로 바뀌면 같은 관절각의 내부 기구학이 맞아도 전체 운동은 다르다. USD 표준 스키마와 PhysX/Newton 등 백엔드용 작성 내용도 구분하여 버전이 다른 문서의 옵션 이름을 섞지 않는다.

다시 가져와도 설명할 수 있는 자산

변환 보고에는 입력 원본/확장 URDF와 설정, 모든 메시/재질의 경로·개정/해시, 도구 버전과 옵션·경고, 출력 경로와 이름 대응표를 남긴다. 확장 URDF가 같아도 package://가 다른 메시로 해석되면 같은 자산이라고 할 수 없다. 상대 경로는 어느 파일 기준으로 해석되는지도 기록한다. 원본 파일 이름이 같다는 것은 내용 동일성의 증거가 아니다.

재가져온 뒤에는 자원 누락/표시, 이름·프레임·몇 개 기준 자세와 제한/mimic, 질량/COM/관성·collision·베이스, drive/상태/시간 연결 순으로 다시 확인한다. 실험 override가 기존 경로를 계속 대상으로 하는지도 본다. 원본 치수와 생성 USD만 새로 바꾸고 오래된 override가 숨긴 값을 그대로 쓰면 변경이 반영되지 않은 것처럼 보일 수 있다. M10.01에서 배운 최종 의견의 출처를 여기서 조사한다.

기존 3.1 모델은 실제 사례의 축/영점/루트를 살펴보는 연결 자료다. 아래 활동은 그 장치의 실제 정격이나 importer 실행 결과가 아니라 위 가상 모델의 보고서를 판단하는 연습이다. 판정 범위와 아직 모르는 항목을 분리해 적는다.

관련 기존 자료 · 보충해서 읽기

  • 기존 상세 본문 · 관련 기존 자료 · 보충 참고

    3.1 SO-101 기구학 모델

    목표 일부 관련

    기존 자료의 관련 범위이며 신규 목표 전체의 품질 검수는 아직 진행하지 않았습니다.

학습 범위와 한계

기본 설명·예제가 준비되었습니다. 기존 보충 자료의 범위와 구별하세요.

실습 필수

장비 없는 실습을 수행하고 관찰·계산 근거를 해설과 비교합니다.

입력은 본문의 가상 팔/그리퍼와 네 산출물이다. 보고서에는 이름 shoulder-pan→shoulder_pan, m 장면의 q=0.5 끝점 (0.175517,0.095885,0), 제한 ±1 degree, q_L=q_R=0.01 m, Base Type=Source만 기록돼 있다. 원본 world 고정 관계와 생성 collision의 검토란은 비어 있다.

  1. 치수 원본·확장 URDF·생성 자산·배치/실험 레이어의 역할을 분류하고 각각 어떤 변경을 맡길지 제안한다.
  2. 보고서의 자세/제한/그리퍼 관계를 계산해 맞는 점과 의심할 점을 나눈다. 이름과 베이스에서 추가로 필요한 증거도 적는다.
  3. 메시 원본이 변경되어 재가져올 때 보존할 기록과 다시 확인할 항목을 제안한다. 표시 성공만으로 전체 변환을 승인할지 판단한다.

관찰은 산출물 역할·수치/계약 검사·재검사 계획으로 적는다. 막히면 원본 물리량과 대상 속성의 단위를 먼저 짝지어 본다. 빈 항목을 성공으로 가정하거나 실제 importer를 실행할 필요는 없다.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

학습 범위와 한계

기본 실습은 장비 없이 수행합니다. 실제 장비·GPU 실증을 완료했다는 뜻은 아닙니다.

평가·해설 필수

목표별 세 서술문항에 답하고 해설·판정 기준으로 자기검토합니다.

확인 문제 Q1

원본 Xacro의 링크 길이는 바뀌었지만 예전 generated USD를 계속 참조한다. scene에서 로봇 위치만 바꾸면 새 길이가 반영되는가? 네 산출물의 역할로 설명하라.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

확인 문제 Q2

가상 길이 0.3 m를 모든 scale=1, 0.01 m/unit 장면에 옮길 때 최종 길이 숫자는 얼마인가? q_R=0.05 m−q_L 관계에서 q_L=0.02 m일 때 값도 구하라. Base Type=Source만으로 고정 베이스라고 확정할 수 있는가?

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

확인 문제 Q3

URDF 파일명은 같고 import 경고도 없지만 메시 파일과 importer 옵션의 개정이 기록되지 않았다. 재현 가능한 자산이라고 승인할 수 있는가? 필요한 기록과 재검사 범위를 제안하라.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

학습 범위와 한계

서술답안과 해설이 준비되었습니다. 자기검토와 학습 완료는 숙달 인증과 별개입니다.

참고 자료

학습 확인

실습과 세 문항의 답안을 해설과 비교한 뒤, 이 단위의 학습 완료를 직접 기록할 수 있습니다. 자기검토·학습 완료는 자동 채점이나 숙달 인증과 별개입니다.

실습1개·확인 문제3개의 답안을 저장하고 각각 자기검토를 기록하세요.

학습 이동

학습 단계 순서 · 공통 과정 이후 전문화 선택

전체 목차로 돌아가기 →

신규 활동의 답안은 이 브라우저의 통합 학습 기록에 저장합니다. 기존 화면의 답안·진도는 원래 키를 유지합니다. AI 강사는 현재 단위의 준비 상태·부족한 범위와 연결된 실제 자료를 참고합니다.