Ros1和Ros2的差异

1在Ros2中无法使用一些Ros1的工具如Gazebo plotjuggler(但2022年humble版本,在ros2上可以使用gazebo了)

2 目前Ros1和Ros2的通信机制都是基于发布-订阅者模式进行拓展。但Ros1存在master概念(roscore),Publisher要将发布话题的消息发送给master缓存,再由subscriber订阅话题,master将对应的消息发送给订阅者,。目前这种模式存在以下弊端:1一旦master崩溃或突然关闭, publisher所在结点A和subscriber所在结点B不能够再进行通信。2 master结点崩溃或退出那一时刻,结点A和结点B不知道。

而Ros2使用的时DDS机制(Data Distribution Service分布式数据传输服务)

DDS机制是将数据存储在一个分布式缓存中,并在需要时将其传输到目标节点上。DDS还提供了多种QoS(Quality of Service)参数设置,以满足不同应用场景下对可靠性、延迟、带宽等方面的需求。

Ros1中机制通信模式分为同步模式和异步模式,在同步模式中程序所设置的缓冲区大小将会生效。举例:结点A和B正在运行,若结点B突然崩溃或退出,A会把消息继续发送到缓冲区,十分钟后B再次运行,重新加入结点群,B能接收到A这十分钟内发布的消息。而在异步模式下,B会错过这十分钟内的消息,直接等待A下一次发布的消息。

Ros2中DDS可以通过设置相应的QoS参数来实现数据的可靠传输。其基本原理是在发送端保证数据被正确地发送到接收端,并在接收端保证所有数据都能够正确地接收到。

常见的可靠传输QoS参数包括:

Reliability QoS:用于控制数据是否需要被确保送达,以及错误处理方式。

History QoS:用于控制缓存历史记录条数、生命周期和清除策略。

Durability QoS:用于控制消息持久性,即消息是否会在发布者故障后仍然存在。

Deadline QoS:用于控制订阅者接收消息的最后期限,超过该期限未能收到消息则认为该消息已过期。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值