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 수보다 하나 적습니다.
다음 편