ROS小工具学习与使用

ROS小工具学习与使用

rqt的使用

  1. rqt_bag工具

    rqt_bag <your bagfile> #使用rqt_bag查看你的rosbag
    

    例如:可以查看第一帧GPS的rawdata信息,如下图:

    ROS小工具学习与使用_第1张图片

    参考文献:

    1、http://wiki.ros.org/rqt_bag

    2、rosbag与rqt_bag的常用

  2. rqt_console和rqt_logger_level工具

    rqt_console:属于ROS日志框架(logging framework)的一部分,用来显示节点的输出信息。

    rqt_logger_level:允许我们修改节点运行时输出信息的日志等级(logger levels)(包括 DEBUG、WARN、INFO和ERROR)。

    现在用实例在rqt_console中的输出信息,同时在rqt_logger_level中修改日志等级。在启动例子之前先在另外两个新终端中运行rqt_console和rqt_logger_level:

    # 在终端直接运行
    $ rqt_console
    $ rqt_logger_level
    

    打开例子:

    $ ./catkin_make.sh
    

    因为默认日志等级是INFO,所以你会看到例子启动后输出的所有信息,如下图所示:

    ROS小工具学习与使用_第2张图片

    【注】:默认输出等级为INFO, 不输出Debug信息,可以打开rqt_logger_level配置输出等级, 选择节点 /lio_sam_gpsOdometry, logger: ros.lio_sam, levels改为Debug,如下图:

    ROS小工具学习与使用_第3张图片

    日志等级说明

    日志等级按以下优先顺序排列:
    Fatal
    Error
    Warn
    Info
    Debug
    

    【注】:Fatal是最高优先级,Debug是最低优先级。

    终端消息解读

    ROS小工具学习与使用_第4张图片

    解释一下输出信息:第一个为系统时间戳。第二个为消息的输出的时候时钟源的时间(仿真时间),当ros系统设置了use_sim_time true的时候,这个为播放的bag包的时间,没有bag数据包播放时会卡住,这里可以参考博客:ros::Rate 设定的帧率循环进入一次就卡住。

    【注】:

    这里对仿真时间做进一步说明:

    如果设置了ros时钟仿真参数(use_sim_time true),发布一个时间的clock话题(/clock),就可以控制ros系统的时间,效果如下:

    ROS小工具学习与使用_第5张图片

    :当发布clock话题的节点没有运行,会出现什么反应?

    :当其他所有节点线程遇到延时,执行rospy.sleep,rate.sleep等函数时,会一直卡住,while循环不跳出。一直等待 ,直到时钟初始化。

    当然你都无法直接分辨是哪天,这都是从1970-01-01 00:00:00 UTC开始算起的时间,单位为秒。国内北京时间UTC+8.0所以时间戳是从1970-01-01 08:00:00开始。

    通过rqt_console查看

    要想看懂时间戳,下面就轮到rqt_console登场了,如下图stamp显示的就是转换过后的时间戳

    ROS小工具学习与使用_第6张图片

    【注】:双击每条消息任意位置可以查看消息的所有详细信息。

    配置过滤哪些消息,可根据等级,消息内容,时间范围,节点以及话题来滤除,如下图:

    在这里插入图片描述

    配置高亮哪些消息,可根据等级,消息内容,时间范围,节点以及话题来设置,如下图:

    在这里插入图片描述

    参考博客:关于ROS日志ROS_INFO需要知道的一些东西

  3. bag数据回放注意事项

    从包文件重新发布时不要忘记使用模拟时间:使用模拟时间

你可能感兴趣的:(ROS,ROS,自动驾驶)