9.1. 執行 SLAM nodes

[Remote PC端]: 執行 roscore

$ roscore

[TurtleBot 端]: 啟用基本套件來開始 TB3 應用

$ roslaunch turtlebot3_bringup turtlebot3_robot.launch

[Remote PC端]: 開啟一個新的 terminal 視窗, 啟動 SLAM 檔案

Tip:在執行指令前,必須先指定 TurtleBot3 的 model 模型名稱。${TB3_MODEL} 是表示所使用的 burger, waffle, waffle_pi 模型的名稱。如果你要永久設定 export setting,請參考 Export TURTLEBOT3_MODEL 網頁。

$ export TURTLEBOT3_MODEL=${TB3_MODEL}
$ roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping

Tip:當執行上述指令時,3D 視覺化工具 RViz 也會一起執行。如果你要分開執行 RViz,請使用下列指令之一。

  • $ rviz -d rospack find turtlebot3_slam/rviz/turtlebot3_gmapping.rviz

  • $ rviz -d rospack find turtlebot3_slam/rviz/turtlebot3_cartographer.rviz

  • $ rviz -d rospack find turtlebot3_slam/rviz/turtlebot3_hector.rviz

  • $ rviz -d rospack find turtlebot3_slam/rviz/turtlebot3_karto.rviz

  • $ rviz -d rospack find turtlebot3_slam/rviz/turtlebot3_frontier_exploration.rviz

備註:支援不同的 SLAM 方法

  • 在各種 SLAM 方法中,TB3 支援 Gmapping, Cartographer, Hector, 及 Karto 等方法。你可以使用 slam_methods:=xxxxx 選項來更改方法。

  • slam_methods 選項有 gmapping, cartographer, hector, karto, frontier_exploration 等, 你可以擇一使用

  • 舉例如果要選擇 Karto 方法,則指令為

    • $ roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=karto

備註:安裝跟 SLAM 套件相關的套件有

  • For Gmapping:

    • 跟 Gmapping 相關的套件已在執行 PC Setup 時就安裝了.

  • For Cartographer:

    • sudo apt-get install ros-kinetic-cartographer ros-kinetic-cartographer-ros ros-kinetic-cartographer-ros-msgs ros-kinetic-cartographer-rviz

  • For Hector Mapping:

    • sudo apt-get install ros-kinetic-hector-mapping

  • For Karto:

    • sudo apt-get install ros-kinetic-slam-karto

  • For Frontier Exploration:

    • Frontier Exploration 使用 gmapping 套件, 且下列套件也要一起安裝

    • sudo apt-get install ros-kinetic-frontier-exploration ros-kinetic-navigation-stage

Tip:我們測試了 Cartographer version 0.3.0。Cartographer 套件是由 Google 開發,在 ROS Melodic 版支援 0.3.0版,但在 ROS Kinetic 版是支援 0.2.0 版。如果你需要在 ROS Kinetic 跑 Cartographer version 0.3.0,你應該下載原始碼後,以下列方式來 build 建立套件。請參考 official wiki page 來了解更多資訊。

$ sudo apt-get install ninja-build libceres-dev libprotobuf-dev protobuf-compiler libprotoc-dev
$ cd ~/catkin_ws/src
$ git clone https://github.com/googlecartographer/cartographer.git
$ git clone https://github.com/googlecartographer/cartographer_ros.git
$ cd ~/catkin_ws
$ src/cartographer/scripts/install_proto3.sh
$ rm -rf protobuf/
$ rosdep install --from-paths src --ignore-src -r -y --os=ubuntu:xenial
$ catkin_make_isolated --install --use-ninja
$ source ~/catkin_ws/install_isolated/setup.bash
$ roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=cartographer

Last updated