机器人编程趣味实践11-图形化调试工具(rqt)

举报
zhangrelay 发表于 2021/07/15 00:50:19 2021/07/15
【摘要】 机器人调试工具如果使用ssh,在终端运行和使用。 当然也有很多人性化调试工具,如rqt系列: 关键词:Python C++ Qt 未开启特定功能的界面如下: 本节以console为例作详细介绍。 目标 了解 rqt_console,一个用于查看日志消息的工具。 基础概念 rqt_console 是一个 图形化用户接口(GUI) 工具,用于查看 ROS ...

机器人调试工具如果使用ssh,在终端运行和使用。

当然也有很多人性化调试工具,如rqt系列:

关键词:Python C++ Qt

未开启特定功能的界面如下:

本节以console为例作详细介绍。

目标

了解 rqt_console,一个用于查看日志消息的工具。

基础概念

rqt_console 是一个 图形化用户接口(GUI) 工具,用于查看 ROS 2 中的日志消息。通常,日志消息会显示在终端中。 使用 rqt_console,可以随时间的推移收集这些消息,更有条理的方式仔细查看、过滤、保存,甚至重新加载保存的文件在不同的时间进行查阅。节点使用日志以多种方式输出有关事件和状态的消息。 对于用户而言,它们的内容通常是信息性的。

功能包

  1. rqt_concole
  2. turtlesim

实践

1 启程

两种方式打开rqt_console

第一种,rqt,然后在plugins->logging->console

第二种,

  • ros2 run rqt_console rqt_console

开启后,界面如下:

控制台的第一部分是显示来自系统的日志消息的位置。

(在中间,可以选择通过排除严重性级别来过滤消息。 还可以使用右侧的加号按钮添加更多排除过滤器。底部用于突出显示包含输入的字符串的消息。 也可以向此部分添加更多过滤器。)

好像上面第一个图和文字不对应啊……那么往后看……

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

  • ros2 run turtlesim turtlesim_node

先对比:

终端

图形化

2 消息显示

为了生成 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.1}}"

由于上述命令以稳定的速度发布主题,因此机器人不断地撞墙。 在 rqt_console 中,将看到一遍又一遍地显示警告严重性级别的相同消息,如下所示:

机器人位置如下:

在运行 ros2 topic pub 命令的终端中按 Ctrl+C 停止。

3 记录日志级别

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


  
  1. - Fatal
  2. - Error
  3. - Warn
  4. - Info
  5. - Debug

每个级别表示的内容没有确切的标准,但可以作如下假设:

  •   Fatal 致命消息表明系统将终止以尝试保护自己免受损害。
  •   Error 错误消息表明重大问题不一定会损坏系统,但会阻止系统正常运行。
  •   Warn 警告消息表示可能代表更深层次问题的意外活动或非理想结果,但不会直接损害功能。
  •   Info 信息消息指示事件和状态更新,作为系统按预期运行的可视化验证。
  •   Debug 调试消息详细说明了系统执行的整个逐步过程。

默认级别为Info信息。只会看到默认严重级别和更严重级别的消息。

通常,只有 Debug 消息被隐藏,因为它们是唯一比 Info 严重性低的级别。例如,如果将默认级别设置为警告,则只会看到严重性为警告、错误和致命的消息。

设置默认日志级别

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

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

现在不会看到上次启动turtlesim时控制台中出现的初始信息级别警告。 那是因为信息消息的优先级低于新的默认严重性,警告。

总结

如果需要仔细检查来自系统的日志消息,rqt_console 会非常有用。 可能出于各种原因想要检查日志消息,通常是为了找出哪里出了问题以及导致该问题的一系列事件。

小作业

  1. 阅读turtlesim/rqt源码
  2. 部分代码提示汉化

-Fin-


 

文章来源: zhangrelay.blog.csdn.net,作者:zhangrelay,版权归原作者所有,如需转载,请联系作者。

原文链接:zhangrelay.blog.csdn.net/article/details/117434107

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。