將ROS中的/sensor_msgs/NavSatFix數據導入google earth顯示軌跡


將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文件

這是導入一組實驗數據后生成的軌跡,符合實測情況


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM