typeScript 反射 wavedorm 观察者模式 bash cmd odbc usb Minjs LimeJS GMU jquery对象 datetimepicker赋值 java算法培训 idea整理代码 js数组截取前5个 yml文件注释 python语言入门 python下载安装教程 python基础代码 java环境 java框架 java安装环境 java8函数式接口 java得到当前时间 java安装与配置 java语言入门 pushstate js转int msdev HTML5从入门到精通 京东钱包客户端 管理文件 ps调整边缘抠头发丝 拼多多商家下载 网页之家 WVS 混凝土配合比计算软件 8700和8700k 服务器备份软件
当前位置: 首页 > 学习教程  > python

Python 读取bag包中gps数据

2021/2/6 23:54:14 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

Python 读取bag包中gps数据 查找超过3sGPS数据丢失的时间点 先查看下bag的topic信息,代码如下: #coding:utf-8 import rosbag bag_file ‘/home/ubuntu/01tools/draw_map/bags/20210129_170428.bag’ #bag包路径 bag rosbag.Bag(bag_file, “r”) inf…

Python 读取bag包中gps数据

查找超过3sGPS数据丢失的时间点

  1. 先查看下bag的topic信息,代码如下:

    #coding:utf-8

    import rosbag

    bag_file = ‘/home/ubuntu/01tools/draw_map/bags/20210129_170428.bag’ #bag包路径

    bag = rosbag.Bag(bag_file, “r”)

    info = bag.get_type_and_topic_info() #读取信息

    print(info)

    输出结果如下:
    在这里插入图片描述

  2. 以topic = /pb/gps_data

    bag_data = bag.read_messages(’/pb/gps_data’) #指定topic,如果不给定topic,则会遍历所有的topic

    for topic, msg, t in bag_data:

    ​ data = msg.pb_serialized

    ​ print(data)
    在这里插入图片描述

    1. 处理数据,并将数据以字符串形式放到list

      k=[]

      for topic, msg, t in bag_data:

      ​ data = msg.pb_serialized

      ​ # print(data)

      ​ result = data.strip("\n")

      ​ k.append([str(y) for y in result.replace(’\n’,’,’).replace(’:’,’,’).split(’,’)])

      print(k) 在这里插入图片描述

    2. 可以看到,k 中数据是一组一组的list,依次取每个list的角标就能拿到数据了,如果要计算,我的方法是把取出的结果放到新的list,然后做数值运算

      d = []

      for item in k:

      ​ d.append(int(item[7])) #将字符串转换为int类型,后边做运算

      print(d)

    3. 计算距上一次接收到数据的时间差,是否有数据中断

      n =len(d)

      for i in range(n-1):

      ​ dis = ((d[i+1])-(d[i]))

      ​ if dis >= 3000000: #计算接收传感器数据是否大于3s

      ​ print(d[i+1],d[i], dis)
      在这里插入图片描述
      很明显,有将近6分钟是没有接收到gps数据的

    4. 完整代码
      在这里插入图片描述


本文链接: http://www.dtmao.cc/news_show_2000180.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?