예상시간: 장애물 세팅: 2시간 30분
장애물 탐지 드론: 6시간
먼저 Gazebo sim의 물체에 대해서 알아봐야 한다.
Link: 하나의 Body에 물리적인 정보를 담고 있다. Link에는 visual 요소와 collision 요소가 포함되어 있다. Link는 Joint를 통해 합칠 수 있다. 다만, 각 Body의 visual 요소와 collision 요소는 따로따로 설정해야 한다.
Collision: Collision 요소는 물체의 충돌 범위를 설정한다.
Visual: 말 그대로 시각적인 정보를 설정한다.
Gazebo sim에 장애물 설치하기
원래 Gazebo sim에 장애물 설치할 수 있는 좋은 UI가 있다. 허나, 해당 UI를 선택하면 size를 어떻게 바꾸는지 잘 몰라서 코드로 짜보기로 했다.

코드로 장애물을 설치하는 방법은 다음과 같다.
월드 파일 찾기
보통 아래 경로에 있다.
# 파일 경로 (본인의 PX4 설치 경로에 따라 다를 수 있음)
code ~/PX4-Autopilot/Tools/simulation/gz/worlds/default.sdf
Xml 파일 교체하기
열면 Xml 파일이 있을텐데 마지막 <\world> 직전에 해당 블록을 삽입하면 된다.
<model name='huge_wall'>
<static>true</static>
<pose>7 0 5 0 0 0</pose> <link name='link'>
<collision name='collision'>
<geometry>
<box>
<size>1 10 10</size> </box>
</geometry>
</collision>
<visual name='visual'>
<geometry>
<box>
<size>1 10 10</size>
</box>
</geometry>
<material>
<ambient>0.5 0.5 0.5 1</ambient>
<diffuse>0.5 0.5 0.5 1</diffuse>
<specular>0.8 0.8 0.8 1</specular>
</material>
</visual>
</link>
</model>
아래는 두께가 1 가로가 10 세로가 10 사이즈인 벽을 설치하는 과정이다. 여기 보면 collision이랑 geometry section이 있는데 각각 보이는 범위와 충돌 범위이다.
저장 후 종료하면 다음과 같이 벽이 생기는 것을 알 수 있다.
