ROS1和ROS2的区别

1、ros1 组件用c++/python,ros2 组件用c/python;
2、ros1 只支持Linux和MacOS,而 ros2 支持Linux/Windows/MacOS/RTOS;
3、ros1 的通讯基于TCPROS/UDPROS,强依赖于master节点的处理,而 ros2 基于DDS(分布式架构);
4、ros2 支持实时控制;
5、ros2 广泛使用C++11,和Python3.5以上;
6、ros2 使用了新的编译系统 Ament;
7、在 ros2 上通过ros_bridge和 ros1 进行通信; 
8、ros2 使用托管启动:用户可以指定节点启动顺序; 
9、ros2 取消了 nodelet 的概念,支持多节点初始化;
10、ros2 launch文件使用 python 编写,相比于 xml 拓展了功能性。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值