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的过程 和 安装ROS,唯一不同地方是我没有遇到 2.3 中的报错。
首先要确保本地语言支持UTF-81
2
3sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
1 | 运行sudo pip install rosdep |
在ROS环境下会出现这个报错,改为 sudo apt-get install python3-xyz
ROS2安装指定包,和ROS1一样,例如 sudo apt-get install ros-humble-irobot-create-msgs
确保能对正确的ROS 2发行版运行rosdep: `rosdep install -y -r -q —from-paths src —ignore-src —rosdistro