主题统计

  • 概述
  • 如何计算统计数据
  • 统计数据种类
  • 行为
  • 同ROS 1的比较
  • 支持
  • 参考

概述

ROS 2为任何订阅所接收的消息提供综合统计功能。这允许用户收集订阅统计信息,同时可以更好地描述系统的性能或帮助诊断当前问题。

按照接收到的消息耗时和周期提供相关度量标准。对于每一项数据,本功能提供平均值、最大值、最小值、标准偏差和样本计数等统计数据。 这些统计数据是在一个移动窗口中计算的。

如何计算统计数据

统计功能使用固定内存在固定周期内通过libstatistics_collector包中的工具加以计算。每个新消息的接收将会被作为现在度量窗口的新样本。

  • 平均值采用移动平均值1的方法进行计算
  • 最大、最小值和样本数在采集到新样本时进行更新
  • 标准才使用Welford在线算法2

统计数据种类

  • 接收消息的间隔时间

    • 单位:毫秒
    • 使用系统时钟计算接收到的两条消息间的间隔时间
  • 接受消息的传播耗时
    • 单位:毫秒
    • 要求消息在报头字段中填充时间戳,以便计算单条消息从发布端发送到达消息接收端的耗时

行为

主题的统计默认是不启用的。需要通过订阅配置选项,为特定节点启用此功能,才能收集上述相关的统计数据。
数据以statistics_msg/msg/MetricsMessage的形式发布到一个可配置的主题(默认为1秒发送至/statistics)。

注意
发布周期也将作为样本采集用的窗口周期。

为了采集消息的间隔时间,我们在消息报头字段中加入了消息时间戳,因此我们有时需要空数据以保持消息间隔的一致性。如果没有在消息中找到相关的时间戳,所有的统计值都会是NaN。通过发布空数据而不是不进行消息发布,我们就可以避免信号缺失,并明确表示该数值无法被测定。
每个窗口的第一个样本不进行测定,因为要计算统计信息,我们至少需要知道前一个消息的到达时间。

同ROS 1的比较

类似于ROS 1的话题统计,所有消息耗时和消息间隔都会被计算,从发送端开始计算。其他的ROS 1指标例如丢失的消息数量或流量,目前没有提供。

支持

本功能现在仅在ROS 2 Foxy版本C++库rclcpp中支持。未来的支持计划可参照以下issue3

参考


  1. Moving Average ↩︎

  2. Welford在线算法 ↩︎

  3. Topic Statistics Improvements #917 ↩︎

ROS2学习(十).ROS概念 - 主题的统计相关推荐

  1. ROS2学习(四).ROS 2 核心概念

    ROS 2 概念速览 官方文档 图(Graph)的概念 节点(Node) 客户端库(Client Libraries) 发现机制(Discovery) 参考 ROS2的核心概念主要有: 图 节点 客户 ...

  2. ROS2学习(七).ROS概念 - ROS客户端库(Ros Client Library)

    ROS客户端库 概述 支持的客户端库 通用功能:RCL 语言特有功能 同ROS 1的比较 小结 参考 概述 客户端库是开发者用以开发ROS代码时使用的API,使用客户端库,开发者将接触到ROS的相关概 ...

  3. ROS学习笔记(十)——ROS试用练习(一)

    ROS学习笔记(十)--ROS试用练习 在此说明:之前使用的ROS是indigo,前两天电脑"炸"了,所以换了kinetic. 一.ROS文件系统导览 1.1如果你想找到turtl ...

  4. 统计学习的基本概念和分类

    前言 一.统计学习的概念 1.统计学习应用领域 #pic_center =80%x80% 2.统计学习的概念 统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科. 以 ...

  5. ROS学习十、无人机通信模块mavros(1)常用的mavros消息类型

    ROS学习十.无人机通信模块mavros(1)常用的mavros消息类型 前言 数传 全局位置 IMU惯导 本地位置 飞控命令 设置飞行位点.速度.加速度 系统状态 系统时间 其它 前言 mavros ...

  6. 2017年深度学习十大趋势预测

    2017年深度学习十大趋势预测 本文作者曾经多次预测了技术发展的趋势,最近的一次预测是"2011年软件发展的趋势与预测".10项预言中,准确地命中了6项,比如JavaScript ...

  7. OpenCV与图像处理学习十二——图像形状特征之HOG特征

    OpenCV与图像处理学习十二--图像形状特征之HOG特征 一.图像特征理解 1.1 颜色特征 1.2 纹理特征 1.3 形状特征 1.4 空间关系特征 二.形状特征描述 2.1 HOG特征 2.1. ...

  8. ROS2学习笔记之turtlesim(小乌龟)介绍

    Turtlesim Turtlesim 是一个用于学习 ROS 2 的轻量级模拟器,因为其有个乌龟,所以也经常被称为小乌龟. turtlesim package 默认并不在 ROS 系统中,需要额外安 ...

  9. 软考高项之学习笔记——质量成本概念

    软考高项之学习笔记--质量成本概念 一.常见混淆概念 二.质量成本相关概念解释 1.质量成本概念 2.一致性成本 3.非一致性成本 三.历年真题 一.常见混淆概念 质量成本.一致性成本.非一致性成本. ...

最新文章

  1. LeetCode 274. H-Index
  2. 线程安全和线程不安全的简述及辅助记忆
  3. linux下mongo工具,linux – 从另一台机器上使用mongodb工具(mongodump,mongorestore)
  4. android robust加固,Robust spectroscopic optical probe
  5. 小甲鱼 c语言 17课
  6. wpf使用Chart控件绘制线图
  7. 同比 数据模型 环比_同比环比累计
  8. Android BottomNavigationView的使用
  9. CodeForces 949A Zebras
  10. 使用VMware 5.5.3在Ubuntu Edgy上安装VMware Tools
  11. 如何成为更好的软件架构师?
  12. 原子操作Atomic类
  13. 用寄存器HAL库完成LED流水灯程序以及通过MDK5模拟示波器观察波形
  14. 巧用“sfc scannow”命令扫描修复Win8系统
  15. 【python MySQL 笔记】MySQL 查询
  16. Check官方使用教程——翻译
  17. 【Linux】常用命令汇总
  18. 互联网生活有三大定律,摩尔定律、梅特卡夫定律和颠覆定律。
  19. css水平垂直居中各种方法实现方式
  20. 特步2020年总收入81.72亿元,主品牌下半年显著复苏

热门文章

  1. 计算机应用基础第2版在线作业1,计算机应用基础(第2版)在线作业(1)
  2. ansys流固耦合分析与工程实例模型文件_平板射流冲击流固耦合分析
  3. android开发之bitmap转数组的方法
  4. Android Studio生成aar包的方法以及解压aar包的方法
  5. Java接口和Java抽象类有什么不同
  6. 大表ddl工具online-schema-change使用
  7. PostgreSQL 10.1 手册_部分 I. 教程_第 2 章 SQL语言
  8. 深度有趣 | 30 快速图像风格迁移
  9. AssetBundle Workflow
  10. iOS:通过URL构件UIImage