将ROS中的/sensor_msgs/NavSatFix数据导入google earth显示轨迹
2024-09-29 21:02:30
将ros中的gps_msg数据导入google earth显示轨迹
1. 获取GPS数据
- 将ros中发布的gps topic输出到文本中
rostopic echo -p /gpsData>gpsData
得到如下格式的数据
- 数据格式转换
因为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数据替换成我们自己的数据即可,具体步骤如下:
在Temporary Places单击右键add一个Folder
此处命名为sia
在sia处单击右键选择add->path
这里可以自行设置轨迹的线宽颜色等,然后在google earth 上按住鼠标左键拖动绘制你想要显示的轨迹,完成后点击ok
保存
sia文件夹处单击右键选择save place as...则可以在目标文件夹看到生成的kml文件替换gps数据
找到kml文件中的coordinate处,将其中的gps数据替换成自己的gps数据即可以看到轨迹
注意替换成自己数据时保证数据格式为lon,lat,alt lon,lat,alt lon,lat,alt lon,lat,alt ...这样的格式,即经纬高之间用‘,’隔开,不可包含空格等符号,否则显示错误轨迹,gps点与点的三个坐标之间使用空格或换行符均可。
3. 轨迹显示
点击File->open->选择替换成自己数据后的kml文件
这是导入一组实验数据后生成的轨迹,符合实测情况
最新文章
- vim使用笔记
- EF:oracle的number类型映射为C#的boolean类型
- 提取本地环境中部署RDLC的DLL
- split 分割 字符串(分隔符如:* ^ : | , .) 及注意点
- nginx(一)
- 解决UITableView上计时器(Timer)的滑动问题
- Adobe Flash builder 4.6破解教程(以win764bit为例)
- [猜数字]把两个数和告诉A,积告诉B,求这两个数是什么
- svn服务配置和日常维护命令
- SQLi filter evasion cheat sheet (MySQL)
- Effective Project Communications
- 从 Vue 1.x 迁移
- VC++时间函数总结
- Oracle数据库作业-4 查询
- 《C语言编写 学生成绩管理系统》
- 《Java并发编程实战》第十五章 原子变量与非堵塞同步机制 读书笔记
- Struts2 DMI的使用
- Xamarin.Forms-webservices访问
- python 安装 memcache
- axios全攻略