ROS学习笔记3 日志消息

来源:互联网 发布:淘宝质检报告 编辑:程序博客网 时间:2024/06/06 20:41

(1)日志消息
ROS日志系统的核心思想就是使程序生成一些简单的文本字符流。这些日志消息分为五个不同的严重级别:

    DEBUG    INFO    WARN    ERROR    FATAL
其中,DEBUG最为常见,FATAL是严重错误,导致程序无法运行。其它则在这两者之间。日志消息的生成:总共有5个基本的C++宏来产生日志消息,其中的每一个宏对应一个严重级别:
    ROS_DEBUG_STREAM(message)    ROS_INFO_STREAM(message)    ROS_WARN_STREAM(message)    ROS_ERROR_STREAM(message)    ROS_FATAL_STREAM(message)

上面的message可以是C++标准输出流的各种形式。

生成一次性日志消息

    ROS_DEBUG_STREAM_ONCE(message)    ROS_INFO_STREAM_ONCE(message)    ROS_WARN_STREAM_ONCE(message)    ROS_ERROR_STREAM_ONCE(message)    ROS_FATAL_STREAM_ONCE(message)

检查和清除日志文件
ROS的日志文件会自动积累,如果日志文件超过1GB就会提醒用户,但是不会自动删除。可以使用下面的语句来查看日志大小和删除ROS中的日志。
查看被ROS日志消耗的空间:

rosclean check
删除所有已经存在的日志文件:
rosclean purge

启用和禁用日志消息
ROS的C++程序默认只生成INFO或者更高级别的消息。
在实际中,可以根据需要对某个节点的日志级别进行设置,使用下面的命令:

rosservice call/node-name/set_logger_level ros.package-name level
    node-name 是期望设置日志级别的节点名称。    Package-name 是拥有这个节点的功能包的名称。    level 是DEBUG、INFO、WARN、ERROR和FATAL中的一个。

通过图形界面来设置日志级别
使用

    rqt_logger_level

启动节点ROS管理器和ROS参数服务器
在运行任何节点之前,都应该首先启动节点管理器和参数服务器,使用命令 roscore 可以完成这两项工作,运行roscore之后,启动来以下程序:
• ROS master 节点管理器
• ROS parameter server 参数服务器
• rosout logging nodes 日志节点
节点rosout会收集所有节点中的数据并写入文件。
话题/rosout 被节点rosout 订阅,rosout 节点向话题 /rosout_agg发布消息。

原创粉丝点击