官术网_书友最值得收藏!

2.2.4 為什么選擇ROS-2

考慮到機器人社區的需求,ROS-2的工作原理與ROS-1類似。ROS-2是獨立的發行版,不是ROS-1的一部分。但是,它又可以嵌入ROS-1軟件包中并與之協同工作。目前正在開發中的ROS-2,主要借助現代依賴庫和工具克服ROS-1存在的不足。ROS-1的特征棧是用C++編寫的,客戶端庫是用C++和Python編寫的(其中Python編寫的客戶端庫是用一種基于底層的方法構建的,該方法基于C++庫編寫),而ROS-2中的組件是用C語言編寫的。ROS-2中有一個用C語言編寫的獨立層,用來連接到ROS-2客戶端庫,客戶端庫主要包括rclcpp、rclpy和rcljava等。

ROS-2對各種網絡配置有了更好的支持,并能夠提供可靠的通信。ROS-2還消除了nodelet[1]http://wiki.ros.org/nodelet)的概念,支持多節點初始化。與ROS-1不同,ROS-2中有兩個非常有趣的特性:一是通過狀態機周期檢測節點的心跳;二是在添加或刪除節點和話題時發出通知。這些設計可以幫助提供系統的容錯性。此外,ROS-2很快將支持不同的平臺和架構。

至此我們已經了解了ROS-2與ROS-1的主要區別,下面讓我們相對詳細地介紹ROS-2的基本原理。

[1] nodelet是一個可以將多個節點捆綁在一起管理的功能包。——譯者注

主站蜘蛛池模板: 稷山县| 招远市| 光泽县| 绥宁县| 日喀则市| 明水县| 厦门市| 白山市| 永兴县| 榆树市| 天津市| 诏安县| 黄平县| 定西市| 山阳县| 长白| 黄陵县| 平罗县| 岗巴县| 冕宁县| 大英县| 邵东县| 浮梁县| 滁州市| 南靖县| 信丰县| 徐汇区| 峨边| 手机| 隆林| 株洲市| 连云港市| 盖州市| 合水县| 舞阳县| 四平市| 清远市| 定安县| 花莲县| 四会市| 长子县|