網絡故障(network failure)是指由于硬件的問題、軟件的漏洞、病毒的侵入等引起網絡無法提供正常服務或降低服務質量的狀態。 因為我們在使用ROS進行機器人開發的時候,比如調試智能汽車的時候,當硬件資源有限或者不能直接進行開發計算時,經常會配置主從機。 節點可以運行在不同的計算平臺上,但在 ROS 中只允許一個 Master。在多機系統中,Master只能運行在一臺機器上,其他機器需要通過SSH與Master取得聯系。 以兩臺電腦為例介紹分布式多機通信的配置步驟:(主機:ucar_mini,從機:xiaolong-Inspiron-5580) 一、設置IP地址 1. 首先需要確保ROS多機系統中的所有計算機都在同一個網絡上。 ifconfig 查看主機地址: ifconfig 查看從機地址: 2.在主機系統/etc目錄下的hosts文件中添加從機的IP地址和對應的計算機名: 在從系統/etc目錄下的hosts文件中添加主機的IP地址和對應的計算機名: 3.設置好后,在兩臺電腦上用ping命令測試網絡是否連通。 下圖顯示雙向網絡暢通無阻,說明底層網絡通信沒有問題。 (可以ping后加IP或名字) 二、設置 ROS_MASTER_URI 因為系統中只能有一個Master,所以Slave需要知道Master的位置。 在slave隱藏的.bashrc文件(ctrl+h打開)中添加如下內容: ROS_HOSTNAME 添加從機地址; ROS_MASTER_URI 添加主機地址。 三、多機通信測試 1.我們可以通過ssh切換到host端來控制slave上的host。 2.在host端啟動master和小龜節點,在slave端啟動keyboard節點進行控制。 (這時候你可能會因為電腦性能的影響,發現數據傳輸慢或者控制效果差) 四、expansion 當我們汽車主板的計算資源不是很好的時候,我們可以用這個ssh在主機上啟動master,在slave上進行各種計算,rviz可視化等(當然我們的multi -計算機通信不限于兩臺計算機設備)。同時,我們還可以通過NFS和VNC進行遠程調試。 參考本文內容: 《ROS機器人開發實踐》-胡春旭 如有錯誤或不足,歡迎留言指正!
當今,越來越多的業務應用運行于網絡架構之上,保障網絡的持續、高效、安全的運行,成為網絡管理者面臨的巨大挑戰。 |
溫馨提示:喜歡本站的話,請收藏一下本站!