[ROS] Gazebo model 제작하기

Nodazi·2024년 1월 11일
0

ROS

목록 보기
11/21
post-thumbnail

🚙1.Model 구성 살펴보기.

Gazebo에서 사용할 3D모델을 직접 구성하여 여러가지 속성의 동작에 대해서 알아보자.
박스형태의 간단한 모델을 제작해보자.

🚖1.1 SDF 파일

🚖model.sdf

<?xml version='1.0'?>
<sdf version="1.4">
    <model name="box_model">
        <pose>0 0 0.5 0 0 0</pose>
        <static>false</static>
        <link name="link">
            <inertial>
                <mass>1.0</mass>
                <inertia>
                    <ixx>0.083</ixx>
                    <ixy>0.0</ixy>
                    <ixz>0.0</ixz>
                    <iyy>0.083</iyy>
                    <iyz>0.0</iyz>
                    <izz>0.083</izz>
                </inertia>
            </inertial>
            <collision name="collision">
                <geometry>
                    <box>
                        <size>1 1 1</size>
                    </box>
                </geometry>
            </collision>
            <visual name="visual1">
                <geometry>
                    <box>
                        <size>1 1 1</size>
                    </box>
                </geometry>
            </visual>
            <visual name="visual2">
                <pose>0 0 1 0 0 0</pose>
                <geometry>
                    <cylinder radius="0.25" length="1.5"/>
                </geometry>
            </visual>
        </link>
    </model>
</sdf>

sdf파일에는 urdf와 비슷하게 물체의 속성 (무게, 크기, 재질 등)을 결정하는 코드를 작성 할 수 있다.
위 코드 같은 경우 아래의 사진과 같은 모델을 gazebo에서 확인 할 수 있다.

sdf 파일은 collision속성과 visual속성이 존재한다.
collision은 말그대로 충돌 범위를 설정 할 수 있고,
visual은 시각적인 정보만 담고 있다. 그렇기 때문에 어떤 객체에 visual만 설정하고 collision속성을 같게하여
보이는 것과 충돌하게 할 수도 있고 visual만 설정하여 보이지만 충돌하지 않는 객체를 생성 할 수 있다.
이러한 점을 위에서 만든 모델로 확인해보자.
코드의 collision이라는 이름을 가지는 충돌범위와 visual를 동일하게 정의하였고,
visual2의 경우 visual 만 정의하였다.

그렇기 때문에 해당 model 위에 자동차 모형을 떨어뜨리면 실린더 모양의 구조물을 통과하는 모습을 확인 할 수 있다.

⚙️1.2 Config 파일

⚙️model.config

<?xml version="1.0"?>

<model>
    <name>Box Model</name>
    <version>1.0</version>
    <sdf version="1.6">model.sdf</sdf>

    <author>
        <name>Nodazi</name>
        <email>dk3146@naver.com</email>
    </author>

    <description>
        A simple box model
    </description>
</model>

Config 파일은 해당 모델의 name, version ,author등 의 요소를 기입할 수 있다.

profile
GoGoSing

0개의 댓글

Powered by GraphCDN, the GraphQL CDN