- ROS機器人項目開發11例(原書第2版)
- (印)拉姆庫瑪·甘地那坦 郎坦·約瑟夫
- 422字
- 2021-01-26 17:17:29
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是一個可以將多個節點捆綁在一起管理的功能包。——譯者注