【ROS2】初级:CLI工具-使用 rqt_console 查看日志

目标:了解 rqt_console ,一种用于内省日志消息的工具。

 教程级别:初学者

 时间:5 分钟

 目录

  •  背景

  •  先决条件

  •  任务

    •  设置

    • 在 rqt_console 上的 2 条消息

    •  日志级别 3

  •  摘要

  •  下一步

 背景

rqt_console 是用于在 ROS 2 中内省日志消息的 GUI 工具。通常,日志消息会显示在您的终端上。使用 rqt_console ,您可以随着时间的推移收集这些消息,更密切、更有组织地查看它们,过滤它们,保存它们,甚至重新加载保存的文件以在不同的时间内省察。

节点使用日志以多种方式输出有关事件和状态的消息。它们的内容通常是信息性的,为了用户。

 先决条件

您将需要安装 rqt_console 和 turtlesim。

始终不要忘记在您打开的每个新终端中获取 ROS 2 的源。

任务

 1. 设置

启动 rqt_console 在新终端中使用以下命令:

ros2 run rqt_console rqt_console

打开 rqt_console 窗口:

aed2537ece79a7d1dcd81db75b917ded.png

控制台的第一部分是系统日志消息显示的地方。

在中间,您可以通过排除严重性级别来过滤消息。您还可以使用右侧的加号按钮添加更多排除过滤器。

底部区域用于突出显示包含您输入的字符串的消息。您也可以在此区域添加更多过滤器。

现在使用以下命令在新终端中启动 turtlesim :

2 消息在 rqt_console 上 

为了生成日志消息供 rqt_console 显示,让乌龟撞墙吧。在新的终端中,输入下面的 ros2 topic pub 命令(在主题教程中有详细讨论):

ros2 topic pub -r 1 /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0,y: 0.0,z: 0.0}}"

由于上述命令正在以稳定的速度发布主题,乌龟不断地撞向墙壁。在 rqt_console 中,您将反复看到带有 Warn 严重性级别的相同消息,如下:

8c0681cd56af4d3d6bbc0e8b6435bc7c.png

189506108803d767303b8e9cf9755923.png

在您运行 ros2 topic pub 命令的终端中按 Ctrl+C ,以防止您的乌龟撞墙。

3. 日志级别

ROS 2 的日志级别按严重性排序:

Fatal
Error
Warn
Info
Debug

没有确切的标准来指示每个级别代表什么,但可以安全地假设:

  • Fatal 条消息表明系统将终止运行,以保护自己免受损害。

  • Error 条消息表明存在重大问题,这些问题不一定会损坏系统,但却阻止了系统的正常运行。

  • Warn 消息表示出现了意外活动或非理想的结果,这可能代表有更深层次的问题,但并不直接损害功能性。

  • Info 条消息表示事件和状态更新,作为系统按预期运行的视觉验证。

  • Debug 条消息详细描述了系统执行的整个逐步过程。

默认级别为 Info 。您只会看到默认严重性级别及以上级别的消息。

通常,只有 Debug 消息被隐藏,因为它们是唯一比 Info 级别轻微的。例如,如果您将默认级别设置为 Warn ,您只会看到 Warn 、 Error 和 Fatal 级别的消息。

3.1 设置默认日志记录器级别 

您可以在首次运行 /turtlesim 节点时使用重映射设置默认记录器级别。在您的终端中输入以下命令:

ros2 run turtlesim turtlesim_node --ros-args --log-level WARN

现在,当您启动 turtlesim 时,您将不会看到上次在控制台中出现的初始 Info 级别消息。这是因为 Info 消息的优先级低于新的默认严重性级别 Warn 。

 摘要

如果您需要仔细检查系统的日志消息, rqt_console 可以非常有帮助。您可能出于多种原因想要检查日志消息,通常是为了找出问题所在以及导致该问题的一系列事件。

 下一步

下一个教程将教您如何使用 ROS 2 Launch 一次启动多个节点https://docs.ros.org/en/jazzy/Tutorials/Beginner-CLI-Tools/Launching-Multiple-Nodes/Launching-Multiple-Nodes.html。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/773149.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Python实战因果推断】21_倾向分1

目录 The Impact of Management Training Adjusting with Regression 之前学习了如何使用线性回归调整混杂因素。此外,还向您介绍了通过正交化去偏差的概念,这是目前最有用的偏差调整技术之一。不过,您还需要学习另一种技术--倾向加权。这种…

东哥教你如何用Orange Ai pro为家里做一个垃圾分类检测机器

前言 最近入手了一块香橙派(Orange Ai Pro)的板子,他们的口号是:为AI而生,这让一个算法工程师按捺不住了, 之前主要是在RKNN和ESP32等设备上部署AI模型,看到官方介绍的强大AI算力,很…

how to use Xcode

Xcode IDE概览 Xcode 页面主要分为以下四个部分: 工具栏(ToolBar area):主要负责程序运行调试,编辑器功能区域的显示 / 隐藏;编辑区(Editor area):代码编写区域&#xf…

前端面试题(CSS篇二)

一、请解释一下 CSS3 的 Flex box(弹性盒布局模型),以及适用场景 相关知识点: Flex是FlexibleBox的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。 任何一个容器都可以指定为Flex布局。行内元素也可…

Unity之VS脚本自动添加头部注释Package包开发

内容将会持续更新,有错误的地方欢迎指正,谢谢! Unity之VS脚本自动添加头部注释Package包开发 TechX 坚持将创新的科技带给世界! 拥有更好的学习体验 —— 不断努力,不断进步,不断探索 TechX —— 心探索、心进取&…

Swift 中的方法调用机制

Swift 方法调用详解:与 Objective-C 的对比、V-Table 机制、Witness Table 机制 在 iOS 开发中,Swift 和 Objective-C 是两种常用的编程语言。尽管它们都能用于开发应用程序,但在方法调用的底层机制上存在显著差异。本文将详细介绍 Swift 的…

CD4017 – 带解码输出的十进制计数器

CD4017 IC 是一个十进制计数器,它有 10 个输出,分别代表 0 到 9 的数字。计数器在(14号引脚)每个时钟脉冲上升时增加 1。计数器达到 9 后,它会在下一个时钟脉冲时从 0 重新开始。 引脚名称管脚 #类型描述VD…

【常用工具】Linux命令行Restful接口调试神器——curl脚本

最近的工作经常要涉及到在Linux服务器端和外部系统联调接口,由于Postman无法在命令行使用,这里浅记一个curl脚本模板: #!/bin/bash # 请求标题 TITLE # token信息 TOKEN # url信息 URL # 请求方式 METHODPOST # Restful请求报文 BODYecho -e…

暑假学习DevEco Studio第2天

学习目标: 掌握页面跳转 学习内容: 跳转页面 创建页面: 在“project”窗口。打开“entry>src>main>ets”,右击“pages”,选择“New>ArkTS File”,命名“Second”,点击回车键。 在页面的路由&#xff0…

Go语言--函数类型、匿名函数和闭包

在Go语言中,函数也是一种数据类型,我们可以通过 type 来定义它,它的类型就是所有拥有相同的参数,相同的返回值的一种类型。 语法 通过type给函数类型起名,然后通过名字进行函数的调用 好处:多态 通过统…

【营销策划模型大全】私域运营必备

营销策划模型大全:战略屋品牌屋、电商运营模型、营销战略、新媒体运营模型、品牌模型、私域运营模型…… 该文档是一份策划总监工作模型的汇总,包括战略屋/品牌屋模型、营销战略模型、品牌相关模型、电商运营模型、新媒体运营模型和私域运营模型等&…

​​服务拆分的原则

目录 一、单一职责原则 二、服务自治原则 三、单向依赖 一、单一职责原则 单⼀职责原则原本是面向对象设计中的⼀个基本原则, 它指的是⼀个类应该专注于单⼀功能. 不要存在多于⼀个导致类变更的原因 在微服务架构中, ⼀个微服务也应该只负责⼀个功能或业务领域, 每个服务应该…

C++ | Leetcode C++题解之第216题组合总和III

题目&#xff1a; 题解&#xff1a; class Solution { private:vector<vector<int>> res;void backtracking(int k, int n, vector<int> ans){if(k 0 || n < 0){if(k 0 && n 0){res.emplace_back(ans);}return;}int start (ans.size() 0 ?…

恒创科技:HTTP错误码403禁止意味着什么,怎么修复它?

HTTP错误码403禁止意味着客户端无权访问特定网页或服务器。403 错误表示客户端存在问题&#xff0c;无论用户使用的是哪种网络浏览器&#xff0c;都可能发生这种情况。幸运的是&#xff0c;阻止服务器允许访问特定页面的问题通常可以修复。以下是一些常见原因和相应的解决方案。…

【Android源码】Gerrit安装

前言 如果你打开 https://android.googlesource.com/platform/manifest&#xff0c;就会发现&#xff0c;google官方管理Android源码&#xff0c;使用的是Gerrit。Android系统源码是非常大的&#xff0c;用Git肯定是不适合。对于大型项目&#xff0c;得用Gerrit&#xff0c;今…

背包问题(一)

一.P3985 不开心的金明(01背包变式) 解析: 一开始没有看数据范围,直接当01背包直接写了,结果最后4个测试点RE,一看到数据范围就老实了,1e9的数据,数组直接炸,所以不能直接使用一维的01背包.看了一下题解,部分人是通过极差对数据进行分类,按照300进行分开,使用贪心和dp一起做. …

7_1_SVPWM概述

1、SPWM 正弦脉宽调制法&#xff08;SPWM&#xff09;是将每一正弦周期内的多个脉冲作自然或规则的宽度调制&#xff0c;使其依次调制出相当于正弦函数值的相位角和面积等效于正弦波的脉冲序列&#xff0c;形成等幅不等宽的正弦化电流输出。 通过调整占空比使等效电流近似为正弦…

DT浏览器很好用

DT浏览器是一款简单的浏览器&#xff0c;又是强大的浏览器&#xff0c;界面简洁大方&#xff0c;软件使用流畅。DT浏览器的网址收藏&#xff0c;人工智能写作&#xff0c;书法笔记等功能与众不同。DT浏览器的图文识别功能和笔记本搭配使用&#xff0c;可以对内容编辑修改和保存…

时序模型综述论文

时序模型综述论文&#xff1a; A Survey of Time Series Foundation Models: Generalizing Time Series Representation with Large Language Model