前言
学习ROS2的路,并不能通过学习ROS1代替,因为ROS2的“内核”不同于ROS1,必须认认真真从头开始重新学习。
Ubuntu版本:20.04
ROS版本:Foxy
学习笔记回顾
- ROS2学习笔记(一)获取文档
- ubuntu20.04 安装ROS2和ROS1共存
- ROS2学习笔记(二)从turtlesim学习ROS2节点
- ROS2学习笔记(三)从turtlesim学习ROS2主题
- ROS2学习笔记(四)从turtlesim学习ROS2服务
- ROS2学习笔记(五)从turtlesim学习ROS2参数
- ROS2学习笔记(六)从turtlesim学习ROS2动作
1.rqt_console工具
rqt_console
是一个图形化工具,用于查看ROS2中的日志消息。一般情况下,日志消息都会在终端内刷新。通过使用rqt_console
工具,可以更加清晰的收集日志消息,更有调理的查看和保存日志,并且可以回放保存的文件数据。
2.启动rqt_console工具
$ ros2 run rqt_console rqt_console
界面如下所示:
界面一共分为三个框,上面的部分用于显示系统中的日志消息。
中间的部分用于选择严重性级别来过滤日志消息。还可以通过右侧的加号添加更多的过滤器。
下面的部分用于突出显示包含我输入的字符串的日志消息。
3.启动小海龟模拟器
$ ros2 run turtlesim turtlesim_node
4.发送海龟移动的指令
现在我们通过给海龟发送移动的指令,让海龟撞在模拟器边界上,从而产生日志消息。
$ 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}}"
发送了该命令后,小海龟会不断的撞墙,从而会以稳定的速度收到Warn
日志信息:
关闭发送指令终端。
5.日志严重性等级
ROS2的日志有严重性分级:
Fatal # 表明系统将终止,以防止自己受到伤害
Error # 表明问题重大,但是不一定会损害系统,但会阻止程序运行
Warn # 表明警告问题,可能有意外或更深层次的问题,但是不会彻底损害功能
Info # 表明事件消息的提示,系统按预期运行
Debug # 表明了系统执行的整个逐步过程
6.设置日志默认严重性
可以通过运行/turtlesim
,通过重映射设置默认严重性为Warn:
$ ros2 run turtlesim turtlesim_node --ros-args --log-level WARN
这时,我将看不到Info
级别的问题,只有Warn
严重性以上的问题。
总结
学会使用rqt_console
查看日志消息,可以让自己更快的定位到问题所在。
Reference:
https://docs.ros.org/en/foxy/Tutorials/Rqt-Console/Using-Rqt-Console.html
结语
本文也是基于笔者的学习和使用经验总结的,主观性较强,如果有哪些不对的地方或者不明白的地方,欢迎评论区留言交流~
为了能和读者进一步讨论问题,建立了一个微信群,方便给大家解答问题,也可以一起讨论问题。
加群链接