2025年12月8日 星期一

TurtleBot3 SLAM 安裝步驟

 好的,針對您詢問的 Cartographer ROS 在 TurtleBot3 上的安裝與配置步驟,由於 Cartographer 及其 ROS 整合套件通常需要從原始碼編譯才能在 ROS 2 Humble 上順利運行,我將提供一套完整的步驟。

請注意,以下步驟假設您已經在 Ubuntu 22.04 (Jammy Jellyfish) 上安裝了 ROS 2 Humble Hawksbill


🛠️ Cartographer ROS 在 TurtleBot3 上的安裝步驟 (ROS 2 Humble)

步驟 1: 建立或進入工作空間

首先,確保您的工作空間 (turtlebot3_ws) 已準備就緒。

Bash
# 建立工作空間目錄 (如果尚未建立)
mkdir -p ~/turtlebot3_ws/src
cd ~/turtlebot3_ws/src

步驟 2: 安裝依賴項

您需要安裝 Cartographer 及其 ROS 整合套件所需的一些系統依賴項。

Bash
# 安裝 Cartographer 的必要依賴項
sudo apt update
sudo apt install -y build-essential \
     cmake \
     git \
     google-mock \
     libboost-all-dev \
     libeigen3-dev \
     libgflags-dev \
     libgoogle-glog-dev \
     liblua5.3-dev \
     libprotobuf-dev \
     libsuitesparse-dev \
     libudev-dev \
     protobuf-compiler \
     python3-sphinx \
     python3-wstool \
     ros-humble-tf2-eigen \
     ros-humble-ros2-controllers

步驟 3: 下載原始碼

您需要下載三個主要的 Git 儲存庫:Cartographer 核心、Cartographer ROS 整合套件,以及 TurtleBot3 Cartographer 設定檔。

Bash
cd ~/turtlebot3_ws/src

# 1. 下載 Cartographer 核心函式庫 (用於 ROS 2 的分支)
git clone https://github.com/cartographer-project/cartographer.git

# 2. 下載 Cartographer ROS 整合套件 (用於 ROS 2 的分支)
git clone https://github.com/cartographer-project/cartographer_ros.git -b ros2

# 3. 下載 TurtleBot3 Cartographer 的配置檔案和啟動腳本
# 注意: 請確保您使用的是支援 Humble 的版本,這裡使用常見的 TurtleBot3 倉庫
git clone https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
git clone https://github.com/ROBOTIS-GIT/turtlebot3.git

# 確保 turtlebot3_cartographer 存在於 turtlebot3_simulations/turtlebot3_cartographer
# (如果您的原始錯誤訊息來自一個現有的工作空間,則此步可能已經完成)

步驟 4: 建構工作空間

返回工作空間的根目錄,並使用 colcon build 進行編譯。這一步將會編譯您下載的所有套件,包括 Cartographer。

Bash
cd ~/turtlebot3_ws

# 執行編譯
colcon build --symlink-install

注意: 編譯 Cartographer 可能需要較長時間,請耐心等待。如果出現編譯錯誤,請檢查步驟 2 的所有依賴項是否已安裝。


步驟 5: 來源環境設定

編譯成功後,您需要更新環境變數,讓 ROS 2 能夠找到新編譯的套件。

Bash
# 來源 ROS 2 環境
source /opt/ros/humble/setup.bash

# 來源您的工作空間環境
source install/setup.bash

重要: 每次開啟新的終端機來運行 ROS 2 命令時,您都必須執行這個 source install/setup.bash 命令。


步驟 6: 運行 Cartographer SLAM

現在,您應該能夠運行 Cartographer SLAM 了。Cartographer 在 TurtleBot3 上通常用於 Gazebo 模擬環境。

1. 設定環境變數 (指定 TurtleBot3 型號):

Bash
export TURTLEBOT3_MODEL=waffle_pi # 或者其他型號,如 burger

2. 啟動 Gazebo 模擬環境和 Cartographer SLAM:

Bash
# 啟動 Gazebo 模擬器和 Cartographer
ros2 launch turtlebot3_cartographer cartographer.launch.py use_sim_time:=True

(這個啟動檔案會啟動 Gazebo、載入 TurtleBot3 模型,並啟動 Cartographer 節點。)

3. 啟動遠端操作 (Teleop) 進行建圖:

您需要手動控制機器人在模擬環境中移動,讓 Cartographer 收集資料並建立地圖。

另一個已來源環境設定的終端機中執行:

Bash
ros2 launch turtlebot3_teleop teleop_keyboard.launch.py

(使用鍵盤控制機器人探索環境,您可以在 Rviz 視窗中看到地圖即時建立。 )


4. 配置調整 (Lua 檔案)

Cartographer 的所有 SLAM 參數都定義在 *.lua 檔案中。對於 TurtleBot3:

  • 配置檔案位置: 這些檔案通常位於您下載的 turtlebot3_cartographer 套件(在 turtlebot3_simulations 裡)的 config 資料夾中。

  • 調整參數: 如果您需要調整 SLAM 效能(例如,雷射掃描的解析度、回環閉合的頻率等),您可以編輯這些 Lua 檔案。在 TurtleBot3 範例中,您通常會編輯類似 turtlebot3_lds.lua 的檔案。

沒有留言:

張貼留言