- 目前,TurtleBot3 官方支援 ROS1 Noetic 和 ROS2 Humble。2025年將分配更多資源,計劃在第一季完成對 Humble 的範例支持,並在第二季擴展對 Jazzy 的支持。下表概述了每個 ROS 發行版支援的功能。
- 此文於 April, 2025 中譯發布,對照英文線上手冊由 Chap 3 開始。內容不會即時修正,內容如有差異不同,請以 [英文線上手冊] 為主
功能支援 (V: 有,X: 無) | ROS1 Noetic | ROS2 Humble | ROS2 Jazzy(soon) |
---|---|---|---|
Teleop 遙控 | V | V | V |
SLAM 建圖定位 | V | V | V |
Navigation 導航 | V | V | V |
Simulation 模擬 | V | V | V |
Manipulation 機器手臂 | V | V | X |
Home Service Challenge家庭服務挑戰賽 | V | X | X |
Autonomous Driving自動駕駛挑戰賽 | V | V | X |
Machine Learning機器學習based on Melodic | X (port soon) | X | X |
C3. TB3 快速入門指南 #
C3.1. PC Setup(桌電/筆電) 設定 #
C3.1.1. 在 Remote PC 下載及安裝 Ubuntu #
首先要在 Remote PC(你的桌電或是筆電)上安裝 Ubuntu(一種 Linux 作業系統). 請先下載 Ubuntu 20.04 LTS Desktop 版及參考安裝步驟進行安裝.
C3.1.2. 在 Remote PC 安裝 ROS #
Ctrl+Alt+T 開啟 terminal 視窗,輸入以下指令,一次一行
- 請先參考這個 安裝腳本 script 檔
[Remote PC]
$ sudo apt update
$ sudo apt upgrade
$ wget https://raw.githubusercontent.com/ROBOTIS-GIT/robotis_tools/master/install_ros_noetic.sh
$ chmod 755 ./install_ros_noetic.sh
$ bash ./install_ros_noetic.sh
- 如果安裝失敗,請參考官方 ROS1 Noetic 安裝指南
C3.1.3. 安裝相關 ROS Packages #
[Remote PC]
$ sudo apt-get install ros-noetic-joy ros-noetic-teleop-twist-joy \
ros-noetic-teleop-twist-keyboard ros-noetic-laser-proc \
ros-noetic-rgbd-launch ros-noetic-rosserial-arduino \
ros-noetic-rosserial-python ros-noetic-rosserial-client \
ros-noetic-rosserial-msgs ros-noetic-amcl ros-noetic-map-server \
ros-noetic-move-base ros-noetic-urdf ros-noetic-xacro \
ros-noetic-compressed-image-transport ros-noetic-rqt* ros-noetic-rviz \
ros-noetic-gmapping ros-noetic-navigation ros-noetic-interactive-markers
C3.1.4. 安裝 TurtleBot3 Packages #
安裝所需的 TurtleBot3 Debian Packages
[Remote PC]
$ sudo apt install ros-noetic-dynamixel-sdk
$ sudo apt install ros-noetic-turtlebot3-msgs
$ sudo apt install ros-noetic-turtlebot3
補充資料:關於從原始碼,建立 TurtleBot3 套件的詳細資訊。 #
請確保事先刪除,任何同名的預編譯套件包,來避免多餘。
[Remote PC]
$ sudo apt remove ros-noetic-dynamixel-sdk
$ sudo apt remove ros-noetic-turtlebot3-msgs
$ sudo apt remove ros-noetic-turtlebot3
如果需要下載原始碼,以便自己 build package,請使用下列指令
[Remote PC]
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src/
$ git clone -b noetic https://github.com/ROBOTIS-GIT/DynamixelSDK.git
$ git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
$ git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3.git
$ cd ~/catkin_ws && catkin_make
$ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
C3.1.5. 網路設定 #

1. 將 PC 連上 WiFi,在 terminal 視窗輸入下方指令來找出 remote PC 的 IP 位址
[Remote PC]
$ ifconfig

2. 開啟檔案,使用以下指令來更新 ROS IP 設定
[Remote PC]
$ nano ~/.bashrc
3. 按 Ctrl + END 或 Alt + / 移動游標到最後一行。然後將檔案內的 ROS_MASTER_URI 的 localhost 以及 ROS_HOSTNAME 後面接的 IP 位址,更改為上面所得到的 remote PC(桌電/筆電) 的 IP 位址,如下圖所示。

4. source bashrc 檔的指令
[Remote PC]
$ source ~/.bashrc
C3.2. SBC 單板電腦設定 #
此節 SBC 建議使用樹莓派 4B
C3.2.1. 準備 microSD 卡及讀卡機 #

如果 PC 沒有 microSD 槽,請改用 microSD 讀卡機來燒錄映像檔。
C3.2.2. 下載 TB3 SBC OS image 映像檔 #
下載對應 SBC 的 ROS 版本。Noetic 版本的映像檔是基於 Ubuntu 20.04 產生。
下載 Raspberry Pi 3B+ ROS Noetic image
- SHA256 : a7c57e20f2ee4204c95315866f4a274886094f7c63ed390b6d06d95074830309
下載 Raspberry Pi 4B (2GB or 4GB) ROS Noetic image
- SHA256 : 9d48925a78381885916a6f3bb77891adbfae2b271b05fe2ae9a9b7ebd12c46cc
- 此映像檔跟 Raspberry Pi 4B with 8GB RAM 不相容
C3.2.3. 解壓縮 image 映像檔 #
將下載的 .img 檔解壓縮存到本地硬碟
C3.2.4. 燒錄 image 映像檔 #
可選擇你常用的映像檔燒錄工具,例如 Raspberry Pi Imager 或 Linux Disks utility 工具程式
C3.2.4.1. 使用 Raspberry Pi Imager #
- 從樹莓派官網下載燒錄工具 Raspberry Pi Imager
- 如何使用,可參考 Raspberry Pi Imager 詳細文件
如果使用 .deb 安裝 imager 出現 dependency error,請改用 snap install 方式安裝。(此版本非最新,可能跟以下的操作畫面有所不同)
[Remote PC]
$ sudo snap install rpi-imager
$ rpi-imager

步驟
- 按 CHOOSE OS
- 按 Use Custom 選擇儲存於硬碟的 .img 映像檔
- 按 CHOOSE STORAGE 選擇 microSD
- 按 WRITE 開始燒錄映像檔
C3.2.4.2. 使用 Disks Utility #
Disks utility 工具程式已經內含在 Ubuntu Desktop 版內,搜尋 Disks 就可找到開啟此程式。

步驟
- 在左邊控制面板選擇 microSD
- 選擇 Restore Disk Image 選項
- 開啟存在硬碟內的 .img 映像檔
- 按 Start Restoring… > Restore 按鍵
C3.2.5. Resize the Partition 調整分區大小 #
為了減少 recovery 映像檔的大小並減少將映像檔燒錄到 microSD 上的時間,recovery 檔的 partition 分區要被最小化。請調整分區大小以便使用未分配的空間。

步驟
- 從選單選擇 microSD 卡(mount 的位置會依系統而異)
- 右鍵單擊黃色分區
- 選擇 Resize/Move 選項
- 拖拉分區的右方邊界,一直到最右方底端
- 點擊 Resize/Move 按鍵
- 點擊上方的 Apply All Operations 綠色的勾選(V) 鍵
C3.2.6. 設置 WiFi 網路設定 #
1. 開新的 terminal(Ctrl + Alt + T),到 microSD 卡內的 netplan 目錄。
使用 superuser 權限 sudo 來編輯 50-cloud-init.yaml 檔
[Remote PC]
$ cd /media/$USER/writable/etc/netplan
$ sudoedit 50-cloud-init.yaml
檔案開啟後,把你的 wifi SSID 及密碼替換到 WIFI_SSID 及 WIFI_PASSWORD。

Ctrl + S 儲存檔案後,Ctrl + X 結束 nano editor

之後,樹莓派開機步驟順序:
a. 連接 HDMI 螢幕到樹莓派的 HDMI port
b. 連接鍵盤跟滑鼠到樹莓派的 USB port
c. 插入 microSD 卡
d. 連接電源(透過 USB or OpenCR)讓樹莓派開機
e. 登入 ID: ubuntu,密碼: turtlebot

C3.2.7. ROS 網路設置 #
請在 SBC(樹莓派) 操作以下步驟
1. 確認 WiFi IP address
[Turtlebot3 SBC]
$ ifconfig
2. 編輯 .bashrc 檔
[Turtlebot3 SBC]
$ nano ~/.bashrc
3. 找到 ROS_MASTER_URI 及 ROS_HOSTNAME 設定頁面,修改對應的 IP address 為你的系統正確位址。
[Turtlebot3 SBC]
export ROS_MASTER_URI=http://{IP_ADDRESS_OF_REMOTE_PC}:11311
export ROS_HOSTNAME={IP_ADDRESS_OF_RASPBERRY_PI_3}
4. Ctrl + S 存檔,Ctrl + X 結束 nano editor
5. 套用所有變更
[Turtlebot3 SBC]
$ source ~/.bashrc

C3.2.8. 新光達 LDS-02 的設定 #


2022 年版 TurtleBot3 標配的光達已經改為 LDS-02。請使用下列指令在 SBC(樹莓派) 上來設定 LDS-02 光達。
1. 安裝 LDS-02 driver 及更新 TB3 package
[Turtlebot3 SBC]
$ sudo apt update
$ sudo apt install libudev-dev
$ cd ~/catkin_ws/src
$ git clone -b noetic https://github.com/ROBOTIS-GIT/ld08_driver.git
$ cd ~/catkin_ws/src/turtlebot3 && git pull
$ rm -r turtlebot3_description/ turtlebot3_teleop/ turtlebot3_navigation/ turtlebot3_slam/ turtlebot3_example/
$ cd ~/catkin_ws && catkin_make
2. Export LDS_MODEL to bashrc 檔。LDS model 可以是 LDS-01 或 LDS-02。
[Turtlebot3 SBC]
$ echo 'export LDS_MODEL=LDS-02' >> ~/.bashrc
$ source ~/.bashrc
補充資料:使用手動方式設定 SBC 單板電腦。 #
手動安裝會比由 recovery 映像檔安裝,花更多時間,但可以更有彈性的安裝需要的 packages。手動方式不建議初學者採用。
1. 下載 Ubuntu 20.04.1(Focal) Preinstalled Server 映像檔
2. 解壓縮 image 映像檔
3. 燒錄 image 到 microSD 卡。可使用不同的映像檔燒錄工具,如 Raspberry Pi Imager 或 Linux Disks utility。

a. 按 CHOOSE OS
b. 按 Use Custom 選擇儲存於硬碟的 .img 映像檔
c. 按 CHOOSE STORAGE 選擇 microSD
d. 按 WRITE 開始燒錄映像檔
4. 樹莓派開機
a. 連接 HDMI 螢幕到樹莓派的 HDMI port
b. 連接鍵盤跟滑鼠到樹莓派的 USB port
c. 插入 microSD 卡
d. 連接電源(透過 USB or OpenCR)讓樹莓派開機
5. 設置樹莓派
a. 登入 ID: ubuntu,密碼: ubuntu,登入後會要求更改密碼
b. 打開自動更新設定檔
$ sudo nano /etc/apt/apt.conf.d/20auto-upgrades
6. 變更自動更新設定
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";
a. Ctrl + S 儲存檔案,Ctrl + X 結束
7. 設置 WiFi 網路設定
$ sudoedit /etc/netplan/50-cloud-init.yaml
8. 檔案開啟後,將下列內容添加到檔案的最後。然後將 WIFI_SSID 及 WIFI_PASSWORD 內容替換為你的 Wifi ID 及密碼,之後 Ctrl + S 儲存檔案,Ctrl + X 結束

9. SBC 重開機
$ sudo reboot
10. 設定 systemd,來避免開機無網路時會延遲開機。使用以下指令來 mask systemd 開機程序。
$ systemctl mask systemd-networkd-wait-online.service
11. 停用 Disable Suspend 及 Hilbernation
$ sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
12. 樹莓派重開機後,如果要在 Remote PC 上使用 SSH 連上樹莓派工作,可在 Remote PC 的 terminal 輸入以下指令來連接 SBC,預設密碼是 ubuntu 或使用新密碼
$ ssh ubuntu@{IP Address of Raspberry PI}
13. 安裝 ROS Noetic 版,在 SBC terminal 輸入下列指令,一次一行。
也可參考此腳本 script 檔,來了解安裝的細節
$ sudo apt-get update
$ sudo apt-get upgrade
$ wget https://raw.githubusercontent.com/ROBOTIS-GIT/robotis_tools/master/install_ros_noetic_rpi.sh
$ chmod 755 ./install_ros_noetic_rpi.sh
$ bash ./install_ros_noetic_rpi.sh
以上安裝如果失敗,可參考官方 official ROS Noetic installation guide 來處理。
14. 安裝及 Build ROS Packages
$ sudo apt install ros-noetic-rosserial-python ros-noetic-tf
$ sudo apt install ros-noetic-hls-lfcd-lds-driver
$ sudo apt install ros-noetic-turtlebot3-msgs
$ sudo apt install ros-noetic-dynamixel-sdk
$ cd ~/catkin_ws/src
$ git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3.git
$ cd ~/catkin_ws/src/turtlebot3
$ rm -r turtlebot3_description/ turtlebot3_teleop/ turtlebot3_navigation/ turtlebot3_slam/ turtlebot3_example/
$ cd ~/catkin_ws/
$ catkin_make -j1
$ source ~/.bashrc
15. 設定 OpenCR 的 USB port
$ rosrun turtlebot3_bringup create_udev_rules
16. 編輯 .bashrc 檔,要確認 ROS 網路設置的 Wifi IP 位址
$ nano ~/.bashrc
17. 修改 ROS_MASTER_URI 的 IP 及 ROS_HOSTNAME
export ROS_MASTER_URI=http://{IP_ADDRESS_OF_REMOTE_PC}:11311
export ROS_HOSTNAME={IP_ADDRESS_OF_RASPBERRY_PI_3}
18. 存檔及結束 nano editor
19. 2022 年起 TurtleBot3 標配的光達已經改為 LDS-02。請使用下列指令在 SBC(樹莓派) 上來設定 LDS-02 光達
$ sudo apt update
$ sudo apt install libudev-dev
$ cd ~/catkin_ws/src
$ git clone -b noetic https://github.com/ROBOTIS-GIT/ld08_driver.git
$ cd ~/catkin_ws && catkin_make
20. Export LDS_MODEL to bashrc 檔。LDS model 可以是 LDS-01 或 LDS-02。
$ echo 'export LDS_MODEL=LDS-01' >> ~/.bashrc
$ source ~/.bashrc
21. 套用所有變更
$ source ~/.bashrc
C3.3. OpenCR 控制板設定 #
1. 使用 microUSB 連接線連接樹莓派及 OpenCR

2. 樹莓派安裝所需套件以便上傳 OpenCR 韌體
[Turtlebot3 SBC]
$ sudo dpkg --add-architecture armhf
$ sudo apt-get update
$ sudo apt-get install libc6:armhf
3. 依照 TB3 的款式,設定 OpenCR_MODEL 參數名稱為 burger 或 waffle
[Turtlebot3 SBC]
$ export OPENCR_PORT=/dev/ttyACM0
$ export OPENCR_MODEL=burger_noetic
$ rm -rf ./opencr_update.tar.bz2
4. 下載韌體解壓縮,以便上傳
[Turtlebot3 SBC]
$ wget https://github.com/ROBOTIS-GIT/OpenCR-Binaries/raw/master/turtlebot3/ROS1/latest/opencr_update.tar.bz2
$ tar -xvf opencr_update.tar.bz2
5. 上傳韌體到 OpenCR
[Turtlebot3 SBC]
$ cd ./opencr_update
$ ./update.sh $OPENCR_PORT $OPENCR_MODEL.opencr
6. 以 Burger 為例,如果成功上傳韌體,會出現下列資訊

7. 如果上傳失敗,可以依下列指示,嘗試在 recovery mode 下重新上傳韌體。OpenCR 的 recovery mode 啟動順序如下。在 recovery mode 時,OpenCR 的 STATUS led 燈會定時的閃爍。
- 按住 PUSH SW2 鍵
- 按一下 Reset 鍵
- 然後鬆開 Reset 鍵
- 再鬆開 PUSH SW2 鍵

補充資料:使用 Arduino IDE 來上傳韌體步驟。 #
1. 如 PC 的 OS 是 Linux,下列指令可設定 USB ports 給 OpenCR 使用。如果是其他 OS(OSX or Windows),可跳過此步驟。
$ wget https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/99-opencr-cdc.rules
$ sudo cp ./99-opencr-cdc.rules /etc/udev/rules.d/
$ sudo udevadm control --reload-rules
$ sudo udevadm trigger
$ sudo apt install libncurses5-dev:i386
2. 安裝 Arduino IDE
3. 安裝好後,執行 Arduino IDE
4. 按 Ctrl 及 , 來打開 Preferences menu
5. 在 Additional Boards Manager URLs 輸入下列位址
https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/arduino/opencr_release/package_opencr_index.json

6. 打開 TurtleBot3 韌體。依你的平台選擇對應的韌體。
- Burger: File > Examples > turtlebot3 > turtlebot3_burger > turtlebot3_core
- Waffle/Waffle Pi: File > Examples > turtlebot3 > turtlebot3_waffle > turtlebot3_core
7. 打開 turtlebot3_core_config.h 檔,在 Line 21 行,去掉 NOETIC_SUPPORT defintion 註釋
8. 連接 OpenCR 板到 PC 上,從 Tools > Board 選單選擇 OpenCR > OpenCR Board
9. 從 Tools > Port 選單中,選擇連接 OpenCR 的 USB port
10. upload 圖示或 Ctrl+U 來上傳 TB3 韌體


11. 如果上傳失敗,可以依下列指示,嘗試在 recovery mode 下重新上傳韌體。OpenCR 的 recovery mode 啟動順序如下。在 recovery mode 時,OpenCR 的 STATUS led 燈會定時的閃爍。
- 按住 PUSH SW2 鍵
- 按一下 Reset 鍵
- 然後鬆開 Reset 鍵
- 再鬆開 PUSH SW2 鍵

C3.3.1. OpenCR 測試 #
你可以使用 PUSH SW1 及 PUSH SW2 按鍵,來檢查 TB3 是否正確組裝。這個流程,會測試左右兩個 Dynamixel 智能馬達設定,及 OpenCR 控制板韌體。

1. 在組裝好 TB3 後,將電池連上 OpenCR,打開電源開關,應會看到 OpenCR 板上的 Power LED 燈亮起
2. 將 TB3 放在平面地板上。為安全起見,建議空間的安全半徑為 1m。
3. 按住 PUSH SW1 鍵幾秒鐘,會讓 TB3 往前直行 30cm。
4. 按住 PUSH SW2 鍵幾秒鐘,會讓 TB3 原地旋轉 180 度。
C3.4. 硬體組裝 #

C3.4.1. TB3 組裝手冊 #
TB3 出貨時是盒裝,零配件是未組裝狀態。請下載相對應的 PDF 來組裝
C3.5.2. Bringup 啟動 TB3 #
1. 在 remote PC 上 Ctrl + Alt + T 開新 terminal,使用 SSH 連上樹莓派的 IP address。預設的密碼 turtlebot
[Remote PC]
$ ssh ubuntu@{IP_ADDRESS_OF_RASPBERRY_PI}
2. 啟動基礎套件開始 TB3 應用。${TB3_MODEL} 名稱需要置換為 burger,waffle,or waffle_pi
[Turtlebot3 SBC]
$ export TURTLEBOT3_MODEL=${TB3_MODEL}
$ roslaunch turtlebot3_bringup turtlebot3_robot.launch
3. 啟如果使用的 TB3 是 burger,terminal 視窗會出現訊息如下
[Turtlebot3 SBC]
SUMMARY
========
PARAMETERS
* /rosdistro: noetic
* /rosversion: 1.15.8
* /turtlebot3_core/baud: 115200
* /turtlebot3_core/port: /dev/ttyACM0
* /turtlebot3_core/tf_prefix:
* /turtlebot3_lds/frame_id: base_scan
* /turtlebot3_lds/port: /dev/ttyUSB0
NODES
/
turtlebot3_core (rosserial_python/serial_node.py)
turtlebot3_diagnostics (turtlebot3_bringup/turtlebot3_diagnostics)
turtlebot3_lds (hls_lfcd_lds_driver/hlds_laser_publisher)
ROS_MASTER_URI=http://192.168.1.2:11311
process[turtlebot3_core-1]: started with pid [14198]
process[turtlebot3_lds-2]: started with pid [14199]
process[turtlebot3_diagnostics-3]: started with pid [14200]
[INFO] [1531306690.947198]: ROS Serial Python Node
[INFO] [1531306691.000143]: Connecting to /dev/ttyACM0 at 115200 baud
[INFO] [1531306693.522019]: Note: publish buffer size is 1024 bytes
[INFO] [1531306693.525615]: Setup publisher on sensor_state [turtlebot3_msgs/SensorState]
[INFO] [1531306693.544159]: Setup publisher on version_info [turtlebot3_msgs/VersionInfo]
[INFO] [1531306693.620722]: Setup publisher on imu [sensor_msgs/Imu]
[INFO] [1531306693.642319]: Setup publisher on cmd_vel_rc100 [geometry_msgs/Twist]
[INFO] [1531306693.687786]: Setup publisher on odom [nav_msgs/Odometry]
[INFO] [1531306693.706260]: Setup publisher on joint_states [sensor_msgs/JointState]
[INFO] [1531306693.722754]: Setup publisher on battery_state [sensor_msgs/BatteryState]
[INFO] [1531306693.759059]: Setup publisher on magnetic_field [sensor_msgs/MagneticField]
[INFO] [1531306695.979057]: Setup publisher on /tf [tf/tfMessage]
[INFO] [1531306696.007135]: Note: subscribe buffer size is 1024 bytes
[INFO] [1531306696.009083]: Setup subscriber on cmd_vel [geometry_msgs/Twist]
[INFO] [1531306696.040047]: Setup subscriber on sound [turtlebot3_msgs/Sound]
[INFO] [1531306696.069571]: Setup subscriber on motor_power [std_msgs/Bool]
[INFO] [1531306696.096364]: Setup subscriber on reset [std_msgs/Empty]
[INFO] [1531306696.390979]: Setup TF on Odometry [odom]
[INFO] [1531306696.394314]: Setup TF on IMU [imu_link]
[INFO] [1531306696.397498]: Setup TF on MagneticField [mag_link]
[INFO] [1531306696.400537]: Setup TF on JointState [base_link]
[INFO] [1531306696.407813]: ————————–
[INFO] [1531306696.411412]: Connected to OpenCR board!
[INFO] [1531306696.415140]: This core(v1.2.1) is compatible with TB3 Burger
[INFO] [1531306696.418398]: ————————–
[INFO] [1531306696.421749]: Start Calibration of Gyro
[INFO] [1531306698.953226]: Calibration End
C3.5.3. 在 RViz 載入 TurtleBot3 #
1. Remote PC 開新的 terminal,啟動 robot state publisher
[Remote PC]
$ roslaunch turtlebot3_bringup turtlebot3_remote.launch
1. Remote PC 開新的 terminal,啟動 RViz。
- 如果使用 apt 方式安裝 TB3 packages, 可輸入下列指令
[Remote PC]
$ rosrun rviz rviz -d `rospack find turtlebot3_description`/rviz/model.rviz
- 如果使用 git clone 方式安裝 TB3 packages,可輸入下列指令。model name 需置換為 burger or waffle_pi
[Remote PC]
$ rosrun rviz rviz -d `rospack find turtlebot3_description`/rviz/{burger, waffle_pi}.rviz

C3.6. 基本操作 #
C3.6.1. Teleoperation 遙控 #
TurtleBot3 可用不同的設備來遙控。只要先確認 SBC 及 ROS 版本都有支援對應的 ROS packages。
C3.6.1.1. 鍵盤控制 #
1. 在 Remote PC 上新開 terminal,執行 turtlebot3_teleop_key node 以便進行遙控。如果 TURTLEBOT3_MODEL 參數未指定,請替換 ${TB3_MODEL} 為 burger 或 waffle 或 waffle_pi
[Remote PC]
$ export TURTLEBOT3_MODEL=${TB3_MODEL}
$ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
2. 如果節點開啟成功,terminal 會顯示訊息如下。
Control Your Turtlebot3
Moving around
w
a s d
x
w/x : increase/decrease linear velocity (Burger : ~ 0.22, Waffle and Waffle Pi : ~ 0.26)
a/d : increase/decrease angular velocity (Burger : ~ 2.84, Waffle and Waffle Pi : ~ 1.82)
space key, s : force stop
CTRL-C to quit
補充資料:如何預先定義好 TURTLEBOT3_MODEL 參數。 #
如果 TURTLEBOT3_MODEL 參數,已經預先定義在你系統的 .bashrc 檔內,則 export TURTLEBOT3_MODEL=${TB3_MODEL} 指令可以省略。當新的 terminal 開啟時,.bashrc 檔會自動載入。
- 在 .bashrc 檔內,定義 TurtleBot3 Burger 為預設 model 範例
$ echo 'export TURTLEBOT3_MODEL=burger' >> ~/.bashrc
$ source ~/.bashrc
- 在 .bashrc 檔內,定義 TurtlBot3 waffle_pi 為預設 model 範例
$ echo 'export TURTLEBOT3_MODEL=waffle_pi' >> ~/.bashrc
$ source ~/.bashrc
C3.6.1.2. RC-100 遙控器 #
ROBOTIS RC-100B 遙控器,已經預設在 TB3 Burger/Waffle/Waffle Pi OpenCR 控制板的韌體內。此遙控器須配合 BT-410 藍芽模組一起使用。TB3 Waffle Pi 款標配內含 RC-100B 遙控器及 BT-410 藍芽模組,Burger 款則需另購。當使用 RC-100 時,不需要執行任何特定節點,因為在韌體內,turtlebot_core node 節點會產生所需的 /cmd_vel topic,直接連接到 OpenCR 控制板。

1. 將 BT-410 藍芽模組連接到 OpenCR 的 UART1 port。參考英文線上手冊 chap 13.1.2. OpenCR 1.0 (https://emanual.robotis.com/docs/en/platform/turtlebot3/appendix_opencr1_0/)
2. 使用 RC-100 遙控 TB3
- Up / Down: 直線加速或減速
- Left / Right: 角速度加速或減速
C3.6.1.3. PS3 搖桿 #
1. 將 PS3 搖桿, 透過藍芽或是 USB 線,連到 remote PC(桌電或筆電)
2. 安裝使用 PS3 搖桿的 teleoperation packages
[Remote PC]
$ sudo apt install ros-noetic-joy ros-noetic-joystick-drivers ros-noetic-teleop-twist-joy
3. 啟動 PS3 搖桿 teleoperation node 遙控模式
[Remote PC]
$ roslaunch teleop_twist_joy teleop.launch
C3.6.1.4. XBOX 360 搖桿 #
1. 將 XBOX 360 搖桿, 透過無線連接器或是 USB 線連到 remote PC
2. 安裝使用 XBOX 360 搖桿所需的 teleoperation packages
[Remote PC]
$ sudo apt install xboxdrv ros-noetic-joy ros-noetic-joystick-drivers ros-noetic-teleop-twist-joy
3. 啟動 XBOX 360 搖桿 teleoperation node 遙控模式
[Remote PC]
$ sudo xboxdrv --silent
$ roslaunch teleop_twist_joy teleop.launch
C3.6.1.5. Wii Remote 搖桿 #
1. 將 Wii Remote 搖桿, 透過藍芽連到 remote PC
2. 安裝使用 Wii Remote 搖桿的 teleoperation packages
[Remote PC]
$ sudo apt install ros-noetic-wiimote libbluetooth-dev libcwiid-dev
$ cd ~/catkin_ws/src
$ git clone https://github.com/ros-drivers/joystick_drivers.git
$ cd ~/catkin_ws && catkin_make
3. 啟動 Wii Remote 搖桿 teleoperation node 遙控模式
[Remote PC]
$ rosrun wiimote wiimote_node
$ rosrun wiimote teleop_wiimote
C3.6.2. Topic Monitor #
1. 從 PC 下指令執行 rqt。如果 topic monitor 視窗沒有出現,可以選擇 plugin -> Topics -> Topic Monitor.
[Remote PC]
$ rqt

2. 當 topic monitor 載入後,預設 topic values 是沒有監控的。點擊每個 topic 前的 checkbox 方塊框打 V 來開始監控。

3. 點擊 checkbox 前的 ▶ 三角箭號圖示,來查看詳細的 topic 資訊

- /battery_state 顯示電池狀態的有關資訊,如當下的電壓,尚有電池容量。

- /diagnostics 顯示連接到 TB3 的各種零組件狀態,如 MPU9250、Dynamixel X 智能馬達、HLS-LFCD-LDS 光達、電池及 OpenCR 控制板

- /odom 顯示 TB3 的測距訊息。Topic 有 encoder 數據的方向及位置資料。

- /sensor_state 顯示 encoder 數值、電池、扭力等訊息

- /scan 顯示所有 LDS 光達的數據訊息,如 angle_max and min, range_max and min, indicates, ranges 等
