Node & Master——roscore、rosrun、rosnode
1、Node
在ROS的世界裡, 最小的程序單元就是節點( node) 。 一個軟體包裡可以有多個可執行文
件, 可執行檔案在執行之後就成了一個程序(process), 這個程序在ROS中就叫做節點。
2、Master
由於機器人的元器件很多, 功能龐大, 因此實際執行時往往會執行眾多的node, 負責感知世
界、 控制運動、 決策和計算等功能。 那麼如何合理的進行調配、 管理這些node? 這就要利用
ROS提供給我們的節點管理器master, master在整個網路通訊架構裡相當於管理中心, 管理著
各個node。 node首先在master處進行註冊, 之後master會將該node納入整個ROS程式中。
node之間的通訊也是先由master進行“牽線”, 才能兩兩的進行點對點通訊。 當ROS程式啟動
時, 第一步首先啟動master, 由節點管理器處理依次啟動node。
3、啟動master和node
當我們要啟動ROS時, 首先輸入命令:
$ roscore
此時ROS master啟動, 同時啟動的還有 rosout 和 parameter server ,其中 rosout 是負責日
志輸出的一個節點, 其作用是告知使用者當前系統的狀態, 包括輸出系統的error、 warning等
等, 並且將log記錄於日誌檔案中, parameter server 即是引數伺服器, 它並不是一個node,
而是儲存引數配置的一個伺服器
啟動node的語句是:
$ rosrun pkg_name node_name
Master
4、rosrun和rosnode命令
rosrun命令的詳細用法如下:
$ rosrun [--prefix cmd] [--debug] pkg_name node_name [ARGS]
rosrun將會尋找PACKAGE下的名為EXECUTABLE的可執行程式, 將可選引數ARGS傳入。
例如在GDB下執行ros程式:
$ rosrun --prefix 'gdb -ex run --args' pkg_name node_name
rosnode命令的詳細作用列表如下: