# 11.2.1.4. TB3 的虛擬 SLAM

我們可以在 Gazebo 模擬器中來進行虛擬 SLAM，而無須使用實體的機器人來實作。在Gazebo 中，你可以選擇上面提到的各種地圖環境和機器人模型來進行模擬，而 SLAM 相關指令將使用在 SLAM 章節中使用的 ROS 套件。

**虛擬SLAM執行程序**&#x20;

以下指令是使用 TurtleBot3 Waffle Pi 模型和 turtlebot3\_world 地圖環境的範例。&#x20;

* 啟動 Gazebo 模擬器

```
$ export TURTLEBOT3_MODEL=waffle_pi
$ roslaunch turtlebot3_gazebo turtlebot3_world.launch
```

* &#x20;啟動 SLAM

```
$ export TURTLEBOT3_MODEL=waffle_pi
$ roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping
```

* 遠端遙控 TB3

```
$ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
```

* 儲存地圖

```
$ rosrun map_server map_saver -f ~/map
```

在運行相關套件及在虛擬空間中移動機器人，你可以建立如下方所示的地圖。

<div align="left"><img src="https://3058168660-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LkXc5k_SFaP9gK2gsU8%2F-Ll0D5xCT7Hgaidj8tPb%2F-Ll0OzMVHB7-Mt1gYg00%2Fvirtual_slam.png?alt=media&#x26;token=88235d1f-5e23-4384-aefd-c5f07368a45d" alt=""></div>

<div align="left"><img src="https://3058168660-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LkXc5k_SFaP9gK2gsU8%2F-Ll0D5xCT7Hgaidj8tPb%2F-Ll0P2hgp8zNnQG914-n%2Fmap.png?alt=media&#x26;token=7a3f46ca-32b3-43f6-b48e-3b90bdb64c3b" alt=""></div>
