Study/[ROS] URDF

ROS URDF 3D 모델 불러오기

soohwan_justin 2021. 9. 2. 16:16

이전 포스트에서 설명했듯이, URDF에서 기본적으로 제공하는 모델은 3개 뿐인데, 이들로 로봇을 모델링하는데는 한계가 있습니다. 

 

우리는 3D 모델링을 할 때 사용하는 STL, DAE 파일을 사용하여 URDF에 사용할 수 있습니다. DAE파일을 사용하는 경우, 해당 모델에 색깔도 적용이 됩니다.

 

저는 3D 모델링 시 Autodesk FUSION 360을 사용하는데, 이 프로그램은 STL파일 저장만 지원합니다.

 

이 경우, Blender를 사용하면 DAE 파일로 바꿔줄 수 있습니다.

 

Blender를 사용하여 STL파일을 import한 후, 색깔을 넣고, 스케일 및 위치 등을 조절하여 DAE 파일로 저장하면 됩니다.

 

1. file-import에서 stl 파일을 import 합니다.

 

 

제가 만든 STL파일은 단위가 밀리미터인데, Blender에서 불러오면 미터 단위로 바뀌는 현상이 있습니다. Blender를 별로 사용해보지 않아서 이유는 모르겠는데, 따라서 이 경우에는 스케일을 조절해줘야 합니다.

 

 

화면 왼쪽에서 scale을 클릭합니다.

 

 

그리고 오브젝트를 클릭하면 저렇게 하얀 원이 나오는데, 저 원을 드래그하면 조절을 할 수 있습니다. 한번 조절하고 나면 왼쪽 하단에 Resize가 나오는데, 저 값을 0.001로 설정하면 밀리미터 크기로 바뀝니다.

 

 

 

스케일이 작아져서 보이지 않으므로 이제 마우스 휠을 돌려서 확대해줍니다.

 

 

오브젝트를 오른쪽 클릭 후, 원점을 설정해줍니다.

 

 

화면 오른쪽의 Material Properties에서 색도 바꿔줄 수 있습니다. 색을 바꾸고, 왼쪽 메뉴에서 move를 클릭하여 위치를 원점으로 옮겨준 뒤, export하여 저장합니다.

 

 

URDF 파일에서 다음과 같은 식으로 사용하면 됩니다.

 

<?xml version="1.0"?>
<robot name="mira">
 
    <link name="base_link">
        <visual>
            <origin rpy="0.0 0 0" xyz="0 0 0"/>
            <geometry>
                <mesh filename="package://my_mira_description/models/meshes/wheel.dae"/>
            </geometry>
 
        </visual>
 </link>
 
</robot>