目标:启用 ROS 2 主题统计topic statistics 并查看输出统计数据。
教程级别:高级
时间:10 分钟
目录
背景
先决条件
任务
1 编写启用统计信息的订阅者节点
1.1 检查代码
1.2 CMakeLists.txt
2 构建并运行
3 观察已发布的统计数据
摘要
相关内容
背景
这是一个简短的教程,介绍如何在 ROS 2 中启用主题统计,并使用命令行工具(ros2topic)查看发布的统计输出。
https://docs.ros.org/en/jazzy/Tutorials/Beginner-CLI-Tools/Understanding-ROS2-Topics/Understanding-ROS2-Topics.html
ROS 2 提供了对任何订阅接收到的消息进行统计测量的集成功能,称为主题统计 topic statistics 。启用主题统计后,您可以表征系统的性能或使用数据来帮助诊断任何存在的问题。
有关更多详细信息,请参阅主题统计概念页面。
https://docs.ros.org/en/jazzy/Concepts/Intermediate/About-Topic-Statistics.html
先决条件
从二进制文件或源代码进行安装。
在之前的教程中,您学习了如何创建工作区、创建包以及创建 C++发布者和订阅者。
本教程假设您仍然拥有 C++ 教程中的 cpp_pubsub
包。
任务
1 编写启用统计信息的订阅者节点
导航到在上一个教程中创建的 ros2_ws/src/cpp_pubsub/src
文件夹,并通过输入以下命令下载示例对话代码:
cxy@ubuntu2404-cxy:~/ros2_ws/src/cpp_pubsub/src$ wget -O member_function_with_topic_statistics.cpp https://raw.githubusercontent.com/ros2/examples/jazzy/rclcpp/topics/minimal_subscriber/member_function_with_topic_statistics.cpp
现在将有一个名为 member_function_with_topic_statistics.cpp
的新文件。使用您喜欢的文本编辑器打开该文件。
#include <chrono> // 包含用于处理时间的库
#include <memory> // 包含用于动态内存管理的库
#include "rclcpp/rclcpp.hpp" // 包含ROS 2的C++客户端库
#include "rclcpp/subscription_options.hpp" // 包含订阅选项的库
#include "std_msgs/msg/string.hpp" // 包含标准字符串消息类型的库
class MinimalSubscriberWithTopicStatistics : public rclcpp::Node // 定义一个继承自rclcpp::Node的类MinimalSubscriberWithTopicStatistics
{
public:
MinimalSubscriberWithTopicStatistics() // 构造函数
: Node("minimal_subscriber_with_topic_statistics&#