ros2.0是一个跨平台的机器人开发框架,它在ros1.0的基础上进行了重构和改进,以适应更多的应用场景和需求。ros2.0的架构可以分为以下几个层次:
OS层: ros2.0支持多种操作系统,包括Linux、Windows、macOS、RTOS等,也支持没有操作系统的裸机.。
中间层: ros2.0采用基于RTSP协议的DDS (Data-Distribution Service) 作为中间层,DDS是一种用于实时和嵌入式系统发布-订阅式通信的工业标准,它提供了点对点的通信模式,不需要像ros1.0那样借由master节点来完成两个节点间通信,这使得系统更加容错和灵活。
接口层: ros2.0提供了两个主要的接口层,分别是rmw (ros middleware interface) 和rd (ros dient libraries) 。rmw是相对底层的接口层,直接和DDS交互,C语言实现:rc是对mw相对高层的抽象,C/C++实现。此外,还有一个ros to dds组件,主要为用户直接访问DDS层提供接口。
应用层: ros2.0支持用C++或者Python来编写应用程序,也支持其他语言的绑定。应用程序可以通过r或者ros to dds来调用中间层的功能。
如果项目需要实时性和分布通信支持,ROS 2.0提供了更好的解决方案
安装
安装参考 安装ROS2的过程,唯一不同地方是我没有遇到 2.3 中的报错。
截至目前有两个ROS 2的版本还没有到项目终止日期 (EOL end-of-life),一个是最新的发布版本为Iron Irwini,发布时间是2023年5月23日,EOL date是2024年11月,另一个是Humble Hawksbil,发布时间是2022年5月23日,EOL date是到2027年5月,比较后我选择了Humble这个版本来学习。
ament_cmake
是cmake的增强版
ROS2安装指定包,和ROS1一样,例如 sudo apt-get install ros-humble-irobot-create-msgs