iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0
自我挑戰組

一個營建系學生的韌體之路-自走車篇系列 第 11

【AMR_Day11】ROS2 基本功- Node

  • 分享至 

  • xImage
  •  

前情提要

Day10提到了workspace & packages,workspace就是一個專案資料夾,packages則是專案內的程式包。
在開始建立自己撰寫的packages前,可以先夠過官方提供的turtlesim了解其他ROS2概念:

  1. workspace
  2. packages
  3. nodes
  4. topics
  5. Launch
  6. services
  7. parameters
  8. actions

ROS2 系統概念圖


上圖包含了3個Nodes、1個Topic、1個Service,從動圖可以稍微看出彼此的關係。

Node 節點

ROS中,節點是最最最基本的元素,它能夠過topics、services、actions、parameters的方式完成接收/發送資訊的工作,一個完整的機器人系統會包含許多節點,節點不一定是實體,例如:控制速度的程式可以是一個節點、機器手臂可以是一個節點,一個執行檔(executables,一個cpp或py的程式檔案)可以包含一個或多個節點。
執行檔: executable,一個cpp或py的程式檔案,或一個軟體執行檔(gazebo、rviz2)

ros2 run

依然以turtlesim為例,開啟一個執行檔,生成有小烏龜的圖形界面。

ros2 run turtlesim turtlesim_node

ros2 node list

ros2 node list #列出所有正在執行的節點

https://ithelp.ithome.com.tw/upload/images/20230926/20140433OQC94yiKu2.jpg
可以看到目前有一個名字預設為turtlesim的節點,如果想改名可以用Remapping的方式

ros2 run turtlesim turtlesim_node --ros-args --remap __node:=my_turtle

ctrl+c中止turtlesim舊節點,開啟新的my_turtle節點。
https://ithelp.ithome.com.tw/upload/images/20230926/20140433Iz4Sv0MFOR.jpg

ros2 node info

ros2 node info /my_turtle #得到目前節點的相關資訊

https://ithelp.ithome.com.tw/upload/images/20230926/20140433odI5G53RFf.jpg
裡面包含了訂閱者(topics)、發布者(topics)、services和actions的詳細資訊。

可以在run一個鍵盤(上下左右鍵)控制節點來控制小烏龜移動

ros2 run turtlesim turtle_teleop_key

https://ithelp.ithome.com.tw/upload/images/20230926/20140433lRIaNCJamc.jpg
想要的話也可以對他們使用上面屬於node的指令

關於node的指令

ros2 node list #列出所有正在執行的節點
ros2 node info #得到目前節點的相關資訊

如果忘記的話可以打完ros2 node後按鍵盤的tab跳出提示~

明天是topics和services~~


上一篇
【AMR_Day10】ROS2 基本功- Workspace & Packages
下一篇
【AMR_Day12】ROS2 基本功-Topic
系列文
一個營建系學生的韌體之路-自走車篇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言