ROS 1 |
ROS 2 |
使用 TCPROS ( TCP/IP 的自定义版本)通信协议 |
使用 DDS (数据分发系统)进行通信 |
使用 ROS Master 进行集中式发现和注册。如果主节点发生故障,完整的通信管道容易发生故障 |
使用 DDS 分布式发现机制。 ROS 2 提供了一个自定义 API 来获取有关节点和主题的所有信息 |
ROS 只能在 Ubuntu OS 上运行 |
ROS 2 与 Ubuntu 、 Windows 10 和 OS X 兼容 |
使用 C++ 03 和 Python2 |
使用 C++ 11 (可能可升级)和 Python3 |
ROS 仅使用 CMake 构建系统 |
ROS 2 提供了使用其他构建系统的选项 |
是否具有使用单个 CMakeLists 调用的多个包的组合生成 .txt |
支持包的独立构建,以更好地处理包间依赖关系 |
消息文件中的数据类型不支持默认值 |
消息文件中的数据类型现在可以在初始化时具有默认值 |
roslaunch 文件是用 XML 编写的,但功能有限 |
roslaunch 文件是用 Python 编写的,以支持更可配置和有条件的执行 |
即使使用实时操作系统,也无法确定性地支持实时行为 |
支持通过 RTPREEMPT 等 |