---
description: >-
  URDF (Unified Robot Description Format) 기반 모델링 및 Gazebo Simulation을 수행 합니다.
  제공되는 데모 코드에서는 SPB 모델 대신 교육 목적으로 단순화된 URDF 모델을 제공합니다.
---

# Simulation

{% hint style="info" %}
제공되는 URDF Model은 실제 SPB와 형상은 다릅니다.&#x20;
{% endhint %}

SPB URDF 모델을 RVIZ에 확인하고 wheel joint를 움직여 봅니다. 우분투 노트북에서 아래와 같이 launch 파일을 실행합니다. (@PC) 실제 SPB을 움직이려는 것이 아니기 때문에 RPI에서 bringup 명령은 필요 없습니다. 우분투 노트북 만으로 시뮬레이션 수행합니다. 참고로  아래 ros2 명령을 수행하기 위해서는 새로운 터미널을 열때마다 source /opt/ros/humble/setup.bash 및 source \~/spb\_ws/install/local\_setup.bash 명령을 먼저 수행해야 합니다.&#x20;

```
ros2 launch slampibot_description spb_description.launch.py
```

Gazebo Simulation을 활용하여 Cartographer SLAM (Simultaneous Localization And Mapping)을 실행해 봅니다. 우분투 노트북에서 아래와 같이 launch 파일을 실행합니다. Robot Steering 에서 cmd\_vel를 조정하여 로봇을 움직여 봅니다. Rviz 상에 지도가 완성 될 때 까지 음영구역으로 로봇을 이동합니다. (@PC)

```
ros2 launch slampibot_gazebo spb_cartographer.launch.py
```

Gazebo Simulation을 활용하여 Navigation을 수행해 봅니다. 우분투 노트북에서 아래와 같이 launch 파일을 실행 합니다. Rviz상에 지도가 보이면 Gazebo Simulation 상 로봇 위치를 파악하여 동일하게 2D Pose Estimate를 합니다. 로봇이 지도상에 보이면 Navigation Goal을 지도위에서 설정하여 Gazebo Simulation상의 로봇이 자율주행 하도록 합니다. (@PC)

```
ros2 launch slampibot_gazebo spb_nav2.launch.py
```
