joint 종류

고개는 돌고 다리는 붙어 있다. 그 차이는 어디에 적을까?

joint란

부모와 자식 link를 잇습니다

조인트(joint)에는 <parent>와 <child>로 잇는 두 link를 적고, type으로 어떻게 움직이는지 적습니다. 1편에서 본 나무의 화살표 하나가 바로 joint 하나입니다.

origin

자식은 부모 기준 어디에 붙나

joint의 <origin>은 부모 프레임 기준으로 자식 프레임이 놓일 자리입니다. 여기서는 y로 −0.22m(로봇의 오른쪽), z로 0.25m(위)입니다. rpy를 안 적으면 자식은 부모와 같은 방향을 봅니다.

그림은 로봇을 앞에서 본 모습이라 로봇의 오른쪽이 화면 왼쪽입니다.

종류

움직임에 따라 네 가지

자주 쓰는 type은 이 넷입니다. 평면 위를 움직이는 planar, 아무 방향으로나 움직이는 floating도 있지만 입문 단계에서는 거의 쓰지 않습니다.

axis

axis로 도는 축을 정합니다

<axis xyz="0 0 1">은 joint 프레임의 z축, 곧 위를 향한 축을 중심으로 돈다는 뜻입니다. 고개가 팽이처럼 좌우로 돕니다. prismatic이면 이 축을 따라 미끄러집니다.

axis를 안 적으면 기본값 1 0 0(x축)이 쓰입니다.

limit

범위가 있으면 limit을 꼭

revolute와 prismatic은 <limit>이 꼭 있어야 합니다. lower·upper는 revolute면 라디안, prismatic이면 미터입니다. effort(힘)와 velocity(속도) 최댓값도 함께 적습니다.

정리

R2D2 모델의 관절을 세어 봅니다

urdf_tutorial의 06-flexible.urdf에 든 joint입니다. 움직이는 joint 8개는 6편에서 슬라이더로 직접 움직여 봅니다. 나무 모양이라 joint 수는 늘 link 수보다 하나 적습니다.

다음 편

왼쪽 다리와 오른쪽 다리, 두 번 적어야 할까요?

4편반복은 어떻게 줄일까? 13강 목록