View Categories

TurtleBot3(ROS1)-Noetic-Chap3-快速入門

  • 目前,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 視窗,輸入以下指令,一次一行

[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
				
			

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. 網路設定 #

network configuration

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

[Remote PC]

				
					$ ifconfig
				
			
network configuration2

2. 開啟檔案,使用以下指令來更新 ROS IP 設定

[Remote PC]

				
					$ nano ~/.bashrc
				
			

3. 按 Ctrl + END 或 Alt + / 移動游標到最後一行。然後將檔案內的 ROS_MASTER_URI 的 localhost 以及 ROS_HOSTNAME 後面接的 IP 位址,更改為上面所得到的 remote PC(桌電/筆電) 的 IP 位址,如下圖所示。

network configuration3

4. source bashrc 檔的指令

[Remote PC]

				
					$ source ~/.bashrc
				
			

C3.2. SBC 單板電腦設定 #

此節 SBC 建議使用樹莓派 4B

C3.2.1. 準備 microSD 卡及讀卡機 #

micro sd reader

如果 PC 沒有 microSD 槽,請改用 microSD 讀卡機來燒錄映像檔。

C3.2.2. 下載 TB3 SBC OS image 映像檔 #

下載對應 SBC 的 ROS 版本。Noetic 版本的映像檔是基於 Ubuntu 20.04 產生。

C3.2.3. 解壓縮 image 映像檔 #

將下載的 .img 檔解壓縮存到本地硬碟

C3.2.4. 燒錄 image 映像檔 #

可選擇你常用的映像檔燒錄工具,例如 Raspberry Pi Imager 或 Linux Disks utility 工具程式

C3.2.4.1. 使用 Raspberry Pi Imager #

如果使用 .deb 安裝 imager 出現 dependency error,請改用 snap install 方式安裝。(此版本非最新,可能跟以下的操作畫面有所不同)

[Remote PC]

				
					$ sudo snap install rpi-imager
$ rpi-imager  
				
			
rpi imager

步驟

  1. 按 CHOOSE OS
  2. 按 Use Custom 選擇儲存於硬碟的 .img 映像檔
  3. 按 CHOOSE STORAGE 選擇 microSD
  4. 按 WRITE 開始燒錄映像檔

C3.2.4.2. 使用 Disks Utility #

Disks utility 工具程式已經內含在 Ubuntu Desktop 版內,搜尋 Disks 就可找到開啟此程式。

disks

步驟

  1. 在左邊控制面板選擇 microSD
  2. 選擇 Restore Disk Image 選項
  3. 開啟存在硬碟內的 .img 映像檔
  4. 按 Start Restoring > Restore 按鍵

C3.2.5. Resize the Partition 調整分區大小 #

為了減少 recovery 映像檔的大小並減少將映像檔燒錄到 microSD 上的時間,recovery 檔的 partition 分區要被最小化。請調整分區大小以便使用未分配的空間。

gparted

步驟

  1. 從選單選擇 microSD 卡(mount 的位置會依系統而異)
  2. 右鍵單擊黃色分區
  3. 選擇 Resize/Move 選項
  4. 拖拉分區的右方邊界,一直到最右方底端
  5. 點擊 Resize/Move 按鍵
  6. 點擊上方的 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。

ros2 sbc netcfg

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

network setup

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

sbc setup3

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  
				
			
ros1 sbc netcfg

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

lds small
LDS-01 光達
lds ld08 small
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。

rpi imager

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 結束

ros2 sbc netcfg

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

opencr setup

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 為例,如果成功上傳韌體,會出現下列資訊

shell01

7. 如果上傳失敗,可以依下列指示,嘗試在 recovery mode 下重新上傳韌體。OpenCR 的 recovery mode 啟動順序如下。在 recovery mode 時,OpenCR 的 STATUS led 燈會定時的閃爍。

  • 按住 PUSH SW2 鍵
  • 按一下 Reset 鍵
  • 然後鬆開 Reset 鍵
  • 再鬆開 PUSH SW2 鍵
bootloader 19

補充資料:使用 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
				
			
ide1

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 韌體

o2
o3

11. 如果上傳失敗,可以依下列指示,嘗試在 recovery mode 下重新上傳韌體。OpenCR 的 recovery mode 啟動順序如下。在 recovery mode 時,OpenCR 的 STATUS led 燈會定時的閃爍。

  • 按住 PUSH SW2 鍵
  • 按一下 Reset 鍵
  • 然後鬆開 Reset 鍵
  • 再鬆開 PUSH SW2 鍵
bootloader 19

C3.3.1. OpenCR 測試 #

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

opencr models

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

C3.4. 硬體組裝 #

turtlebot3 models

C3.4.1. TB3 組裝手冊 #

TB3 出貨時是盒裝,零配件是未組裝狀態。請下載相對應的 PDF 來組裝

C3.4.2. TB3 組裝影片 #

如果難以由 PDF 手冊進行組裝,請參考以下 Youtube 組裝影片。(PS: 採智科技可以提供 TB3 組裝服務,請你在訂購時先跟我們的業務確認。)

C3.5. Bringup 開始啟動 TB3 #

C3.5.1. 執行 roscore #

Remote PC 開新 terminal

[Remote PC]

				
					$ roscore
				
			

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
				
			
2022 run 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 控制板。

rc100b with bt410

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
				
			
rqt 1

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

rqt 2

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

rqt 3
  • /battery_state 顯示電池狀態的有關資訊,如當下的電壓,尚有電池容量。
rqt 4
  • /diagnostics 顯示連接到 TB3 的各種零組件狀態,如 MPU9250、Dynamixel X 智能馬達、HLS-LFCD-LDS 光達、電池及 OpenCR 控制板
rqt 5
  • /odom 顯示 TB3 的測距訊息。Topic 有 encoder 數據的方向及位置資料。
rqt 6
  • /sensor_state 顯示 encoder 數值、電池、扭力等訊息
rqt 7
  • /scan 顯示所有 LDS 光達的數據訊息,如 angle_max and min, range_max and min, indicates, ranges 等
rqt 8