3.1 SO-101 기구학 모델

3.1.1 링크, 관절, 구동기의 구분

URDF(Unified Robot Description Format)는 로봇을 링크(link)와 관절(joint)의 트리로 표현한다. SO-101의 일반적인 의미론적 관절 순서는 다음과 같다.

순서의미대표 이름역할
1베이스 회전shoulder_pan작업 공간의 방위각 변경
2어깨 굽힘shoulder_lift팔의 높이와 반경 변경
3팔꿈치 굽힘elbow_flex도달 거리 변경
4손목 피치wrist_flex그리퍼 접근 각도 변경
5손목 롤wrist_roll그리퍼 축 주위 회전
6그리퍼gripper손가락 개폐, 팔의 pose DoF에는 미포함

이름은 LeRobot/URDF 버전에 따라 다를 수 있다. 이름을 정수 인덱스로 암묵적으로 치환하지 말고, 항상 메시지의 name 배열을 기준으로 재정렬한다. JointState의 position[i], velocity[i], effort[i]는 같은 인덱스의 name[i]에 대응하며, 각 배열은 비어 있을 수 있다. 타임스탬프는 모든 관절 값이 획득된 시각 또는 가능한 한 가까운 시각을 나타내야 한다.[ROS 2 JointState 명세]

3.1.2 URDF에서 읽어야 할 정보

회전 관절의 핵심 URDF 요소는 다음과 같다.

<joint name="elbow_flex" type="revolute">
  <parent link="upper_arm"/>
  <child link="forearm"/>
  <origin xyz="0 0 0.115" rpy="0 0 0"/>
  <axis xyz="0 1 0"/>
  <limit lower="-1.6" upper="1.6" effort="..." velocity="..."/>
</joint>
  • origin은 부모 링크에서 관절 프레임으로 가는 고정 변환이다.
  • axis는 관절 프레임에서 표현된 회전축이다.
  • lower, upper는 radian 단위의 위치 한계다.
  • velocity와 effort는 허용 가능한 변화율과 힘/토크 한계를 표현한다.

공식 SO-ARM100 저장소는 새로운 캘리브레이션 모델에서 관절 가상 영점(virtual zero)을 범위 중앙에 두며, 과거 모델은 팔을 수평으로 편 자세를 영점으로 사용한다. 서로 다른 영점 규약의 URDF와 캘리브레이션 JSON을 섞으면 같은 숫자가 다른 실제 자세를 의미한다.[TheRobotStudio, 2026]

3.1.3 URDF에서 USD Articulation으로

OpenUSD의 UsdPhysicsArticulationRootAPI는 여러 강체와 관절을 축약 좌표(reduced coordinate) 관절계로 묶는다. 회전 관절은 축, 상·하한, 위치/속도 드라이브의 강성(stiffness)과 감쇠(damping)를 가진다. URDF를 Isaac Sim으로 가져올 때 다음을 검토한다.

  1. 단위: URDF 길이는 관례상 m, 각도는 radian이다. USD 스테이지의 metersPerUnit, 회전 관절 한계의 단위와 임포터 변환을 확인한다.
  2. 축과 부호: 화면에서 회전 방향만 보고 맞다고 판단하지 말고, 작은 양의 관절 명령으로 축을 검증한다.
  3. 루트: 고정 베이스인지 부유 베이스(floating base)인지 명시한다.
  4. 질량과 관성: 시각 메시만 있는 링크에 임의의 물리 질량이 생성되지 않았는지 확인한다.
  5. 충돌 형상: 시각 메시와 충돌 메시를 분리한다. 복잡한 삼각 메시를 동적 충돌체로 그대로 쓰지 않는다.
  6. 드라이브: 너무 큰 stiffness는 수치적으로 불안정하거나 실물보다 과도하게 단단한 응답을 만든다.
  7. Mimic/그리퍼: 단일 구동기로 양쪽 손가락을 묶는 관계가 임포트 후 유지되는지 확인한다.

USD Physics 명세는 관절계 루트, 관절, 강체 목록으로 articulation을 구성하며 회전 관절 한계와 드라이브를 명시한다.[OpenUSD, 2026]

그림 3-2. URDF에서 USD articulation으로 보존해야 할 정보

이 장의 예제 코드·설정 파일 (6)

이 장의 자가 점검·가상실습