## Node - 在ROS的世界裡,最小的進程單元就是節點(node)。一個軟體包裡可以有多個可執行文件,可執行文件在運行之後就成了一個進程(process),這個進程在ROS中就叫做節點。 - 從程式角度來說,node就是一個可執行檔(通常為C++編譯產生的可執行檔、Python腳本)被執行,載入到了記憶體之中; - 從功能角度來說,通常一個node負責者機器人的某一個單獨的功能。由於機器人的功能模組非常複雜,我們往往不會把所有功能都集中到一個node上,而會採取分散式的方式,把雞蛋放到不同的籃子裡。 - 例如有一個node來控制底盤輪子的運動,有一個node驅動攝像頭獲取圖像,有一個node驅動激光雷達,有一個node根據傳感器信息進行路徑規劃……這樣做可以降低程序發生崩潰的可能性,試想一下如果把所有功能都寫到一個程式中,模組間的通訊、異常處理將會很麻煩。 ## Master - 由於機器人的元件很多,功能龐大,實際運作時往往會運作眾多的node,負責感知世界、控制運動、決策和運算等功能。那麼如何合理的進行調配、管理這些node?這就要利用ROS提供給我們的節點管理器master, master在整個網路通訊架構裡相當於管理中心,管理各個node。node首先在master處註冊,之後master會將該node納入整個ROS程式中。node之間的通訊也是先由master進行“牽線”,才能兩兩的進行點對點通訊。當ROS程式啟動時,第一步先啟動master,由節點管理器處理依序啟動node。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up