將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文件
這是導入一組實驗數據后生成的軌跡,符合實測情況