Download as pdf or txt
Download as pdf or txt
You are on page 1of 46

ROS的基礎實作

目錄
• ROS資料架構介紹
• 建立ROS工作區
• ROS節點撰寫
• Turtlesim實作
• Launch檔撰寫

1
ROS資料架構介紹
ROS資料架構介紹
• 安裝目錄與工作空間

安裝目錄 工作空間

3
ROS資料架構介紹
• 新專案與工作空間的文件設置

ROS 工作空間內的標準資料夾結構

4
ROS資料架構介紹
• Node & Package

Node & Package

5
ROS資料架構介紹
• Package 的官方資料結構標準

6
ROS資料架構介紹
• ROS 專案典型的文件組織系統

7
建立ROS工作區
新增 ROS 專案與工作空間
• 新增 ROS 專案所需的資料夾

指令:$ mkdir -p ~/project_name/catkin_ws/src

9
新增 ROS 專案的 Package
• 切換目錄到 ROS 專案的 src 資料夾

指令:$ cd ~/project_name/catkin_ws/src

10
新增 ROS 專案的 Package
• 建立一個 ROS 專案 的 Package

指令 : $ catkin_create_pkg package_name
dependency1 dependency2

11
新增 ROS 專案的 Package
• 在 package 中建立需要使用到的資料夾

指令 : $ cd practice

指令 : $ mkdir script launch

12
配置使用 ROS 專案的工作環境
• 切換目錄到 ROS 專案中的 catkin_ws

指令 : $ cd ~/project_name/catkin_ws

13
配置使用 ROS 專案的工作環境
• 建立 ROS 專案的工作空間

指令 : $ catkin_make
14
配置使用 ROS 專案的工作環境
• 編輯 Terminal 視窗的環境設定檔

指令 : $ sudo gedit ~/.bashrc


15
配置使用 ROS 專案的工作環境
• 在環境設定檔最下方輸入指令

16
安裝所需套件
• 指令:$sudo apt upgrade
• 指令:$ sudo apt install net-tool

17
配置使用 ROS 專案的工作環境
• 載入編輯過後的 Terminal 環境設定檔

指令:$ source ~/.bashrc

18
ROS節點撰寫
Nodes
• node

20
使用Python撰寫ROS Node
• 在先前建立的script資料夾建立hello.py

指令:gedit hello.py

21
使用Python撰寫ROS Node
• 寫入以下程式碼

• 執行roscore

22
使用Python撰寫ROS Node
• 執行hello.py

• 執行結果

23
使用Python撰寫ROS Node
• 使用rosnode list查看執行中的node

• rosnode其他指令
rosnode list 列出所有正在執行中的節點
rosnode info 指定特定節點,並列出該節點的所有屬性
rosnode kill 結束執行某特定節點
rosnode ping 偵測某一節點是否正在執行

24
Topic
• topic

25
使用Python撰寫Publisher
• 在先前建立的script資料夾建立talker.py並寫
入以下程式碼

26
使用Python撰寫Publisher
• Talkert程式碼解析

27
使用Python撰寫Publisher
• Talkert程式碼解析

28
使用Python撰寫Publisher
• 將talker.py改成可執檔

• 執行檔案

29
使用Python撰寫Publisher
• 使用rostopic 指令查看傳輸情況

• rostopic其他指令
rostopic list 列出所有現在有實際公布的訊息主題
rostopic echo 回傳某一主題的內容
rostopic hz 回傳某一主題更新的頻率,以每秒幾次計算
rostopic info 列出某一主題的屬性
30
使用Python撰寫Subscriber
• 在先前建立的script資料夾建立listener.py並
寫入以下程式碼

31
使用Python撰寫Subscriber
• listener程式碼解析

32
使用Python撰寫Subscriber
• 將listener.py改成可執檔

• 執行檔案

33
Turtlesim實作
Turtlesim實作
• 執行turtlesim_node

35
Turtlesim實作
• 執行turtle_teleop_key並使用rostopic 指令查
看資訊

36
rqt 工具的基礎使用方法
• 開啟rqt

37
rqt 工具的基礎使用方法
• Node Graph

38
rqt 工具的基礎使用方法
• Plot

39
rqt 工具的基礎使用方法
• Plot

40
Launch檔撰寫
Launch檔撰寫
• 在launch資料夾建立turtlesim_teleop.launch
並寫入以下程式碼

42
Launch檔撰寫
• 執行檔案

43
Launch檔撰寫
• 用rqt查看程式碼對應關係

44
作業
• 撰寫一個node控制turtlesim畫出圓形(提示:msgs為
geometry_msgs.msg中的Twist;topic為'/turtle1/cmd_vel')

• 撰寫一launch檔同時啟動talker及listene兩個node,並將傳
輸內容改為學號

• 程式碼請截圖放在word檔內,並與實際動作影片壓縮成一
個檔案,上傳至數位學習平台,檔名與word檔格式相同

45

You might also like