ROS1和ROS2的区别

总结下来,主要区别主要有三点:
1、架构的颠覆
ROS1的架构下,所有节点需要使用Master进行管理,也就是说要启动节点之前,必须向ROS_Master进行注册才可以使用。
ROS2使用基于DDS的Discovery机制,和Master说拜拜,不需要使用roscore来启动Master,直接启动节点即可。
2、API重新设计
ROS1中的大部分代码都基于2009年2月设计的API。
ROS2重新设计了用户API,但使用方法类似,ROS2可以使用Python3。
3、编译系统的升级
ROS1使用rosbuild、catkin管理项目。
ROS2使用升级版的ament、coclon。
两者的底层都是Cmake。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ROS (Robot Operating System) 是一个为机器人开发设计的开源操作系统,它提供了一套丰富的软件框架,用于处理传感器数据、控制和通信。ROS 分为两个主要版本:ROS 1 和 ROS 2。 **ROS 1(Eloquent Elks)**: - 发布于2009年,是ROS的第一个稳定版本,主要用于科研和教育领域。 - 使用了主/从架构,即节点之间通过发布/订阅机制进行通信。 - 采用的是Transport层的TCP/IP协议,导致网络延迟较高,不适合大规模部署和实时性要求高的应用。 - 语言绑定丰富,支持C++、Python等,但不支持动态类型加载,可能导致代码冗余。 **ROS 2(Dashing Diademata)**: - 发布于2017年,作为对ROS 1的重大改进,旨在提供更好的性能、可靠性和安全性。 - 改用了DDS (Data Distribution Service for Real-Time Systems) 作为底层通信机制,提供了更低的延迟和更高的吞吐量。 - 使用了现代C++标准和包管理工具,提高了开发效率。 - 引入了服务(Services)和动作(Actions),增强了交互性和并发处理能力。 - 通过Node.js支持动态类型加载,更利于模块化开发。 **主要区别**: 1. **通信机制**:ROS 2的DDS协议提供了更好的实时性能,而ROS 1的TCP/IP有较大延迟。 2. **语言和API**:ROS 2主要使用C++,并通过Node.js支持动态类型,ROS 1则以C++为主,Python也有广泛支持。 3. **设计哲学**:ROS 2更加注重系统性和安全性,适合工业级应用。 4. **迁移成本**:虽然ROS 2有许多变化,但通过Ros2Bridge可以一定程度上与ROS 1进行互通,但全面迁移可能需要较大的工作量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值