之前把ROS2的一些概念,像node,topic,service,action,parameter,都写过了,这一篇写点qos相关的。
qos
QoS (Quality of Service) 是一个广泛用于网络通信中的概念,指的是一组技术和服务,旨在确保在网络中传输数据时能够满足预定的性能标准。QoS 的目标是保证数据传输的可靠性、带宽、延迟、丢包率等方面的要求,尤其在需要高实时性或带宽保证的应用中(如视频通话、语音通话、实时游戏等)尤其重要。
在 ROS 2 中,QoS 主要用于控制和管理发布/订阅模型中的通信质量。具体来说,ROS 2 的通信模型依赖于 DDS(Data Distribution Service),而 DDS 提供了灵活的 QoS 设置选项,使得开发人员可以根据需求调整消息传递的行为。
ROS 2 中常见的 QoS 设置有以下几种:
- Reliability(可靠性):
- Reliable:确保消息被成功传递,如果接收方没有接收到消息,系统会进行重试。
- Best effort:尽力而为,消息不进行重试,适用于丢包可以接受的场景。
- Durability(持久性):
- Transient Local:确保消息在发布后,即使订阅者稍后才连接,也能接收到这些消息。
- Volatile:消息不持久,只会在订阅者连接时传递。
- History(历史记录):
- Keep last:只保留最近的一定数量的消息。
- Keep all:保留所有的消息。
- Depth(深度):
- 这决定了在发布者和订阅者之间缓存多少消息,通常与历史设置一起使用。
- Lifespan(生存期):
- 指定消息的有效时间,超过这个时间消息会被丢弃。
- Time-based Filtering(基于时间的过滤):
- 控制消息发送的频率和时间窗口,防止过多的消息在短时间内到达接收方。
当然,这些是硬概念相关的;不过,这些,在音视频通信里边有过,有兴趣,可以去这里看看。下一篇,写点跟代码相关的。
3240

被折叠的 条评论
为什么被折叠?



