URDF

RViz는 내 로봇이 어떻게 생겼는지 어떻게 알까?

화면을 누르면 다음 장으로 넘어갑니다

왜 필요한가

여러 도구가 로봇의 몸을 알아야 합니다

12강에서 TF로 프레임 사이의 관계를 다뤘습니다. 그런데 바퀴가 몸통 어디에 붙어 있는지, 몸통이 얼마나 큰지는 누가 알려 줄까요? 로봇의 생김새를 파일 하나에 적어 두면 여러 도구가 같은 파일을 읽어 씁니다.

URDF

로봇을 XML 글로 적은 설계도

URDF(Unified Robot Description Format)는 로봇의 부품과 연결을 XML로 적는 형식입니다. 이 파일은 원기둥 하나로 된 가장 작은 로봇입니다. 길이 단위는 미터라서 높이 0.6m, 반지름 0.2m인 원기둥입니다.

두 가지 재료

재료는 link와 joint뿐

링크(link)는 몸통이나 다리 같은 부품 한 덩어리이고, 조인트(joint)는 두 링크를 잇는 관절입니다. 아무리 복잡한 로봇도 이 둘을 되풀이해 적습니다. link는 2편, joint는 3편에서 자세히 봅니다.

나무 모양

뿌리 link는 하나입니다

joint마다 부모(parent)와 자식(child) link를 적습니다. 그래서 URDF는 뿌리 하나에서 뻗는 나무 모양이 됩니다. 12강 4편의 TF 트리와 같은 모양이고, 실제로 이 나무가 그대로 TF가 됩니다(5편).

따라 하기

연습용 패키지를 설치합니다

sudo apt install ros-jazzy-urdf-tutorial ros-jazzy-joint-state-publisher-gui

urdf_tutorial에는 연습용 모델 파일과 그것을 띄우는 런치 파일이 들어 있습니다. 둘째 패키지는 관절을 손으로 움직이는 창입니다(6편).

따라 하기

원기둥 하나가 RViz에 뜹니다

ros2 launch urdf_tutorial display.launch.py model:=urdf/01-myfirst.urdf

도형의 기준점이 도형 한가운데라서 원기둥 절반이 격자 아래에 묻힙니다. 슬라이더 창도 함께 뜨지만, 움직이는 관절이 없어 비어 있습니다.

다음 편

link 하나에는 무엇을 적을까요?

2편몸통과 팔 13강 목록