使用ROS節點——Node & Master——roscore、rosrun、rosnode


1、Node

ROS的世界里, 最小的進程單元就是節點( node) 。 一個軟件包里可以有多個可執行文
件, 可執行文件在運行之后就成了一個進程(process), 這個進程在ROS中就叫做節點。

2、Master

由於機器人的元器件很多, 功能龐大, 因此實際運行時往往會運行眾多的node, 負責感知世
界、 控制運動、 決策和計算等功能。 那么如何合理的進行調配、 管理這些node? 這就要利用
ROS提供給我們的節點管理器master, master在整個網絡通信架構里相當於管理中心, 管理着
各個nodenode首先在master處進行注冊, 之后master會將該node納入整個ROS程序中。
node之間的通信也是先由master進行牽線, 才能兩兩的進行點對點通信。 當ROS程序啟動
時, 第一步首先啟動master, 由節點管理器處理依次啟動node

3、啟動masternode

當我們要啟動ROS時, 首先輸入命令:

$ roscore

此時ROS master啟動, 同時啟動的還有 rosout parameter server ,其中 rosout 是負責日
志輸出的一個節點, 其作用是告知用戶當前系統的狀態, 包括輸出系統的errorwarning
等, 並且將log記錄於日志文件中, parameter server 即是參數服務器, 它並不是一個node
而是存儲參數配置的一個服務器

啟動node的語句是: 

$ rosrun pkg_name node_name

MasterNode之間以及Node之間的關系如下圖所示:

4、rosrunrosnode命令

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命令的詳細作用列表如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM