• ROS小工具学习与使用


    ROS小工具学习与使用

    rqt的使用

    1. rqt_bag工具
      rqt_bag <your bagfile> #使用rqt_bag查看你的rosbag
      
      • 1

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

      在这里插入图片描述

      参考文献:

      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
      
      • 1
      • 2
      • 3

      打开例子:

      $ ./catkin_make.sh
      
      • 1

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

      在这里插入图片描述

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

      在这里插入图片描述

      日志等级说明

      日志等级按以下优先顺序排列:
      Fatal
      Error
      Warn
      Info
      Debug
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6

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

      终端消息解读

      在这里插入图片描述

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

      【注】:

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

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

      在这里插入图片描述

      :当发布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日志ROS_INFO需要知道的一些东西

    3. bag数据回放注意事项

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

  • 相关阅读:
    剪映failed to initialize,cuda.is_available()为false解决
    【实践篇】Redis最强Java客户端(三)之Redisson 7种分布式锁使用指南
    清水模板是什么材质?
    如何科学的进行Android包体积优化
    竞赛 题目:基于深度学习的手势识别实现
    学会二阶思维,你就能像巴菲特一样思考了
    多线程环境下的单例模式
    12月2日第壹简报,星期五,农历十一月初九
    基于SSM的大学餐厅菜品推荐和点评系统设计与实现
    微信小程序开发详细步骤是什么?
  • 原文地址:https://blog.csdn.net/qq_39607707/article/details/127707796