将ROS中的/sensor_msgs/NavSatFix数据导入google earth显示轨迹

9 篇文章 2 订阅


1. 获取GPS数据

将ros中发布的gps topic输出到文本中

rostopic echo -p /gpsData>gpsData

得到如下格式的数据

%time,field.header.seq,field.header.stamp,field.header.frame_id,field.status.status,field.status.service,field.latitude,field.longitude,field.altitude,field.position_covariance0,field.position_covariance1,field.position_covariance2,field.position_covariance3,field.position_covariance4,field.position_covariance5,field.position_covariance6,field.position_covariance7,field.position_covariance8,field.position_covariance_type
1542617612195115368,1897,1542617612195115368,gps,0,0,23.048503491,113.403629414,-42.1641540527,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0
1542617612215240178,1898,1542617612215240178,gps,0,0,23.048503491,113.403629414,-42.1640319824,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0
1542617612235951974,1899,1542617612235951974,gps,0,0,23.0485034911,113.403629414,-42.163860321,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0
1542617612255293910,1900,1542617612255293910,gps,0,0,23.0485034912,113.403629414,-42.1639022827,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0

数据格式转换
因为google earth支持的kml文件中需要导入longitude,latitude,altitude 格式的数据,所以需要对生成的数据文件进行处理,这里我使用python和正则表达式写了个小程序实现数据格式的转换

import re
f_in = open(r'/home/nico/gpsData')
f_out = open(r'/home/nico/gps_kml','w')
a=f_in.readlines()
for line in a[1:]:
     m=re.match(r'^(\w*\,){6}([\d\-]*\.\d*)\,([\d\-]*\.\d*)\,([\d\-]*\.\d*)(\,\d*\.\d*){9}(\,\d*)$',line)
     lon=m.group(3)
     lat=m.group(2)
     alt=m.group(4)
     gpsData = lon+','+lat+','+alt+' '    
     f_out.write(gpsData)
f_in.close()
f_out.close()

输出的gps_kml文件即为转换后的结果

2. 将GPS数据导入kml模板显示轨迹点

因为要在google earth中显示轨迹,需要导入kml文件,链接中包含相关语法教程这里使用一个比较简便的方法,从google earth 中生成一个kml模板,把其中的gps数据替换成我们自己的数据即可,具体步骤如下:
在地图标注中我的标注单击右键添加文件夹
此处命名为test
在这里插入图片描述
然后添加一个轨迹文件,这添加一个矩形
在这里插入图片描述
然后导处为kml格式
在这里插入图片描述
替换gps数据
用Notepad++打开文件,找到test.kml文件中的coordinate处,将其中的gps数据替换成自己的gps数据即可以看到轨迹

在这里插入图片描述
在箭头所指向的位置替换我们刚才获得gps_kml中的数据

3.轨迹显示

然后导入,结果如下:
在这里插入图片描述

  • 0
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值