URDF 파일이란?

URDF는 Unified Robot Description Format의 줄임말이다.

로봇의 관절과 같은 Joint와 Link들 간의 관계를 정의하고 관성, 재료, 모델파일 등을 포함한다. 로봇을 제작하는 데 있어서 TF를 구성하는데 필수적인 요소이다.

 

Fusion360 URDF export

Fusion에서 컴포넌트로 전환 후 로봇의 Rotation와 Rigid 구속을 완료했다면 다음과 같은 화면일 것이다.

이제 Fusion360에서 URDF를 추출해 주는 애드온을 설치해주어야 한다.

애드온 파일은 깃허브에 있으며, "dheena2k2" 님께서 기존 ROS1에서의 Fusion2urdf를 수정하여 ROS2버전에 맞춘 것이라고 한다.

ROS1 버전도 테스트해봤으며 정상적으로 작동했다.

 

*ROS1에서 사용할 예정이라면 

 

GitHub - syuntoku14/fusion2urdf: A Fusion 360 Script to export URDF

A Fusion 360 Script to export URDF. Contribute to syuntoku14/fusion2urdf development by creating an account on GitHub.

github.com

 

 

*ROS2에서 사용할 예정이라면

 

GitHub - dheena2k2/fusion2urdf-ros2: A Fusion 360 Script to export URDF for ROS2

A Fusion 360 Script to export URDF for ROS2. Contribute to dheena2k2/fusion2urdf-ros2 development by creating an account on GitHub.

github.com

 

버전에 맞게 잘 설치해 준다.

설치과정은 깃허브에 자세히 나와있다.

다만 윈도우 cmd에서 Copy-Item 커맨드가 먹지 않는다.(Window 11기준)

따라서 애드온 파일을 Fusion360의 애드온 경로에 직접 추가하였다.

 

주의할 점은 Fusion360의 언어를 영어로 설정해 주는 것이다.

UTF-8 포맷이 깨져서 들어가기 때문에 영어로 해두는 게 속편 하다.

 

설치하고 애드온을 RUN 하면 지정한 경로에 URDF파일과 다양한 예제를 포함한 패키지가 생성된다.

별 다른 일이 없다면 이 패키지를 ROS2 워크스페이스에 넣고 빌드만 해주면 즉시 사용가능하다.

진짜 파워풀하다...

xacro에서 urdf로 확장자 변경해 주기

xacro 확장자는 앞서 설명하지는 않았지만, urdf에서 반복되는 코드를 줄이고 재사용성을 높여주는 역할을 한다.

xacro에서 urdf로 확장자를 변경해 주면 내부에 코드도 달라지게 된다.

예전에는 ROS1에서 xacro 패키지를 이용해서 바꾼 적도 있지만 한 줄 커맨드로 변환하면 된다.

xacro [파일명].xacro > [파일명].urdf

  커맨드를 입력한 경로에 urdf파일이 생성된다.

 

변환된 결과 확인

변환된 결과를 같이 생성된 패키지로 확인해 볼 수 있다.

패키지에는 두 개의 런치파일이 포함되어 있다.

Rviz와 Gazebo가 있으니 각각 실행해 본다.

 

*RVIZ 런치파일 실행

/joint_state_publisher_gui
/robot_state_publisher
/rviz2
/transform_listener_impl_55749c815a40

로봇의 Joint_state로부터 자세변환에 대한 정보가 잘 전달되고 있다.

옆에 있는 GUI의 바를 움직이며 조인트의 변화를 관찰할 수 있다.

 

*Gazebo 런치파일 실행

/gazebo
/joint_state_publisher
/robot_state_publisher

세 개의 노드가 실행된다.

로봇의 tf를 정의하는 /robot_state_publisher, 조인트의 움직임을 전달하는 /joint_state_publisher 그리고 Gazebo노드이다.

각 노드의 역할은 Rviz 실행결과와 동일하다.