본문으로 건너뛰기

M08.01 · 링크·관절·visual·collision·inertial

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

전체 커리큘럼

학습 안내

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

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

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

학습 목표

  • URDF의 링크·관절과 visual·collision·inertial의 서로 다른 역할을 설명한다.
  • 요소별 origin과 질량중심을 구별하고 가상 상자 링크의 관성 및 좌표를 계산한다.
  • 시각 표시·충돌·동역학·구동의 검증 단계를 구분하여 누락 요소와 추가 증거를 판정한다.

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

권장 선수

M06의 프레임·관절과 M07.01의 질량·회전 관성이 선수다. ROS 2 Jazzy 문서 기준의 종이 모델 읽기와 XML 예제다. 실제 ROS·시뮬레이터·로봇 구동은 필요 없다. 이미 알고 있다면 직접 열어볼 수 있습니다.

설명 필수

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

로봇의 설명 파일과 로봇의 실행을 구분한다

URDF(Unified Robot Description Format)는 로봇의 링크와 관절, 형상과 물리 정보를 XML로 기술하는 형식이다. link는 강체로 모델링할 부분과 그 기준 프레임을 나타내고 joint는 부모 링크와 자식 링크의 연결 및 허용 운동을 정한다. 기본 기구학 구조는 트리이며 폐루프의 모든 연결을 일반적인 부모/자식 관계로 중복 연결하는 방식과는 다르다. 모델을 읽고 프레임을 계산하는 일과 모터에 명령을 보내는 일도 별개다.

한 링크에 붙는 세 가지 모델: visual → collision → inertial → 공통 링크 프레임.그림 원본 크기로 보기

그림 M08.01-1. 각 칸은 서로 다른 역할/근거다. 나란히 비교할 항목이며 위아래가 시간 순서를 뜻하지 않는다. 직접 제작한 개념도이며 본문의 조건과 함께 읽는다.

링크 프레임의 원점이 항상 외형 중앙이나 질량중심일 필요는 없다. 관절 축과 조립 기준에 맞춰 놓을 수 있다. joint의 origin은 부모 링크에서 관절 기준을 배치하는 변환이고, axis는 그 관절 프레임에서의 회전/이동 축이다. q=0의 배치와 움직인 뒤의 링크 자세를 구분한다. 단위는 일반적으로 길이 m, 각도 rad, 질량 kg를 사용한다. 표현 프레임과 단위를 확인하지 않으면 모양이 맞아 보여도 기구학이 다를 수 있다.

각 링크 안의 visual은 화면에 그릴 형상과 재질을, collision은 충돌 계산에 쓸 형상을, inertial은 질량·질량중심·회전 관성을 기술한다. 세 요소는 같은 링크 프레임에 붙지만 목적과 원점이 따로다. visual을 복잡한 메시로 만들고 collision을 간단한 상자로 근사할 수 있다. 이 근사는 계산 비용과 빈 공간/접촉 오차의 절충이며 시각적으로 비슷하다는 이유로 충돌 품질을 보장하지 않는다. inertial의 값도 화면의 색이나 메시에서 항상 자동 추정되는 것이 아니다.

한 링크의 세 원점을 읽는다

가상 arm 링크는 x길이 0.2 m, y와 z길이 각각 0.1 m인 균질 상자다. 링크 원점은 상자의 왼쪽 끝 중앙이고, 상자 중심은 링크에서 (0.1,0,0) m다. visual/collision의 box는 각각 자기 원점 중심에 놓이므로 두 origin을 모두 이 위치로 둔다. 균질 질량 1 kg의 질량중심도 같은 곳이라고 가정하여 inertial origin에도 (0.1,0,0)을 적는다. 각 요소의 rpy는 0으로 두어 축이 링크와 같다고 명시한다.

균질 상자의 질량중심 축 관성은 각 축에 수직인 두 길이 제곱의 합에 m/12를 곱한다. a, b, c는 각각 x/y/z 길이이며 여기의 m은 질량 기호다.

Ixx=m12(b2+c2),Iyy=m12(a2+c2),Izz=m12(a2+b2).I_{xx}=\frac m{12}(b^2+c^2),\quad I_{yy}=\frac m{12}(a^2+c^2),\quad I_{zz}=\frac m{12}(a^2+b^2).

이번 값은 Ixx≈0.00166667, Iyy=Izz≈0.00416667 kg·m²다. 질량중심에 놓은 상자의 대칭 축과 정렬되어 ixy, ixz, iyz는 0이다. 일반 관성 텐서는 대칭 3×3이므로 대각 3개와 비대각 3개를 저장한다. inertial의 관성은 그 원점인 질량중심과 그 축 방향을 기준으로 읽는다. 링크 원점이 끝에 있다고 관성을 끝점 기준으로 바꾸어 그대로 넣지 않는다. 기준점 이동과 회전 변환은 M08.04에서 더 다룬다.

다음은 읽기 위한 완전한 교육용 URDF다. base는 기하 계산의 고정 기준으로 취급하며 전체 시뮬레이션의 고정/물리 설정을 제공하는 예는 아니다. 어떤 장치에도 적용하지 않는다.

<robot name="paper_arm">
  <link name="base"/>
  <link name="arm">
    <visual>
      <origin xyz="0.1 0 0" rpy="0 0 0"/>
      <geometry><box size="0.2 0.1 0.1"/></geometry>
    </visual>
    <collision>
      <origin xyz="0.1 0 0" rpy="0 0 0"/>
      <geometry><box size="0.2 0.1 0.1"/></geometry>
    </collision>
    <inertial>
      <origin xyz="0.1 0 0" rpy="0 0 0"/>
      <mass value="1"/>
      <inertia ixx="0.0016666667" ixy="0" ixz="0"
               iyy="0.0041666667" iyz="0" izz="0.0041666667"/>
    </inertial>
  </link>
  <joint name="hinge" type="revolute">
    <parent link="base"/><child link="arm"/>
    <origin xyz="0 0 0" rpy="0 0 0"/>
    <axis xyz="0 0 1"/>
    <limit lower="-1" upper="1" effort="1" velocity="2"/>
  </joint>
</robot>

hinge는 +z 회전이며 q=0에서 두 링크 프레임이 일치한다. 위치 범위는 [−1,1] rad, 기록된 effort는 회전 토크 N·m, velocity는 rad/s다. 이 선언이 실제 제어기와 물리 엔진에서 자동으로 모든 한계를 집행한다는 뜻은 아니다. 적용하는 도구와 구동 계층의 동작을 확인한다. q=0.5 rad라면 상자 중심의 base 좌표는 (0.1 cos0.5,0.1 sin0.5,0)≈(0.087758,0.047943,0) m다. visual 중심과 질량중심이 같은 이유는 이번 균질 가정이지 모든 모델의 기본 규칙이 아니다.

한 링크의 세 기준. 회색 표시 형상과 파란 충돌 근사 상자, 주황 질량중심은 역할이 다르다. link 원점을 형상의 중앙/COM과 자동으로 같다고 놓지 않는다. 축척이나 실제 관성값이 없는 개념도다.그림 원본 크기로 보기

그림 M08.01-2. 회색 표시 형상과 파란 충돌 근사 상자, 주황 질량중심은 역할이 다르다. link 원점을 형상의 중앙/COM과 자동으로 같다고 놓지 않는다. 축척이나 실제 관성값이 없는 개념도다. 직접 제작.

무엇을 통과했는지 구체적으로 남긴다

XML이 잘 닫혔다는 문법 확인, URDF의 링크 이름과 트리·관절 조건 확인, 시각 표시, 충돌 근사와 물리 파라미터 확인, 제어/하드웨어 인터페이스 확인은 다른 단계다. 표준 XML 파서가 성공해도 URDF 의미나 시뮬레이터의 물리 요구를 전부 검증한 것은 아니다. RViz에서 visual이 보였다는 사실도 collision과 inertial의 적합성을 입증하지 않는다. 공식 물리/충돌 튜토리얼을 이 역할 분리로 읽는다.

메시 크기를 바꾸거나 도구를 추가하면 질량·질량중심·관성을 다시 검토한다. 시각 요소만 변경한 파일이 물리 요소까지 바꿨다고 가정하지 않는다. 관절의 허용 범위와 model의 effort 숫자도 실제 제품의 연속/peak 정격과 별도 출처를 갖는다. 가상 값을 그럴듯하게 채워 파싱 성공으로 통과시키지 않고 어떤 근거로 정했는지 남긴다. 기존 3.1의 기구학 사슬과 2.7의 관성은 이 기본 모델을 더 큰 구조로 확장하는 상세 자료다.

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

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

    3.1 SO-101 기구학 모델

    목표 일부 관련

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

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

    2.4 충돌 형상 설계

    목표 일부 관련

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

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

    2.7 질량, 무게중심, 관성 텐서

    목표 일부 관련

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

  • 기존 요약 레슨 · 관련 기존 자료 · 보충 참고

    URDF에서 순기구학까지

    목표 일부 관련

    핵심 요약 레슨입니다. 자세한 유도·수식·코드는 연결된 상세 본문을 함께 읽으세요.

학습 범위와 한계

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

실습 필수

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

입력은 위 URDF와 균질 상자 가정이다. base는 종이 기하의 고정 프레임이며 실제 물리 시뮬레이션은 하지 않는다.

  1. link/joint와 visual/collision/inertial을 각 역할로 분류한다. hinge의 부모/자식·축과 링크 프레임에서 상자 중심까지의 관계를 그린다.
  2. 상자의 관성을 세 축에서 계산하고 단위를 적는다. q=0과 q=0.5 rad에서 상자 중심의 base 좌표를 구한다. inertial origin이 visual origin과 같은 이유를 설명한다.
  3. visual만 길이 0.4 m로 바꾼 변형에서 collision과 질량 정보도 자동으로 바뀌었다고 할 수 있는지 판정한다. XML 성공·화면 표시·물리/구동 검증에 필요한 추가 증거를 제안한다.

장비 실행은 하지 않는다. 막히면 origin이 속한 요소와 그 부모 프레임을 따로 표시한다. 실제 부품의 질량이나 정격을 예제 숫자로 대체하지 않는다.

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

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

학습 범위와 한계

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

평가·해설 필수

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

확인 문제 Q1

visual과 collision, inertial의 역할은 무엇인가? joint origin과 visual origin을 같은 의미로 읽으면 왜 문제가 되는가?

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

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

확인 문제 Q2

같은 크기의 균질 상자 질량만 2 kg으로 바꾸면 관성 세 값과 질량중심은 어떻게 달라지는가? 링크 원점이 끝에 있다는 이유로 inertial 관성을 끝점 기준으로 넣어도 되는가?

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

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

확인 문제 Q3

URDF가 XML 파서를 통과하고 RViz에 보인다. collision과 inertial이 없거나 근거 없는 값이어도 물리 시뮬레이션과 실제 구동이 검증됐다고 할 수 있는가? 추가 확인 단계를 제안하라.

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

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

학습 범위와 한계

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

참고 자료

학습 확인

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

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

학습 이동

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

전체 목차로 돌아가기 →

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