GPS數據類型(ROS) Label: Research

轉載自ROS傳感器之GPS簡介

一. 傳感器分類

在自動駕駛或者機器人領域,傳感器的使用按照測量對象劃分,可分爲兩大類,一類是測量自身狀態,另一類測量環境狀態。前者主要包含GPS,IMU和編碼器;後者主要有激光雷達、毫米波雷達和相機。這裏的狀態主要是指位置和速度,有些傳感器可以測量其他狀態,例如相機可以實現物體的分類。本篇介紹GPS傳感器,以及在ROS系統中如何表示GPS數據。

二. 作用

GPS傳感器,全稱Global Positioning System,源自美國軍方,是現在使用比較廣泛的四種全球定位系統之一,其他三種分別是歐盟的“伽利略”系統,俄羅斯的“格洛納斯”系統,以及中國北斗衛星導航系統。

三. 系統組成

GPS與其他傳感器有一個顯著的不同點,其他傳感器基本上是一個單獨的硬件模塊,而GPS是一個系統,其架構圖如下:

 如圖所示,GPS系統包含三個部分:空間部分,地面監控部分,用戶部分。空間部分主要是衛星羣,向用戶部分發送位置、時間等信息;地面監控部分,監視控制空間部分;用戶部分接受空間部分發送的信息,根據信息計算本身的三維位置、速度和時間等。日常生活中,我們常說的GPS、或者GPS傳感器其實是指GSP客戶部分,即GPS接收機。爲敘述方便,無特別說明,以下所說的gps均指用戶部分。

四. 位置表示

既然要表示位置,那一定會有座標系,GPS所採用的座標系又稱爲WGS84座標系,其原點爲地球質心,z軸爲國際時間局(BIH)1984.0定義的協議地極(CTP)方向,X軸指向BIH1984.0的協議子午面和CTP赤道的交點,Y軸與Z軸、X軸垂直構成右手座標系。其數據主要包含經緯度和高度。不清楚這個座標系具體是什麼樣的,也沒關係,只需要知道GPS設備反饋的經緯度位置,是基於一個標準座標系就行了,關於經緯度的概念,網上也有很多,這裏不再詳述,感興趣的同學可以自行深入研究。

五. 數據格式

我們知道了gps設備可以測量經緯度、時間和速度等信息,那麼這些信息是以什麼樣的格式表示呢。這裏引入NMEA0183,全稱National Marine Electronics Association,即美國國家海洋電子協會,這裏知道他是gps設備最通用的數據輸出格式就行了。NMEA0183定義了很多語句,不同的語句包含了不同的信息,目前大部分gps設備都是兼容NMEA0183的,許多與之配套的軟件也是遵從此協議進行解析。關於NMEA0183協議,這裏也不做深入介紹,感興趣的同學可以自行研究。

六. ROS中GPS數據格式

1. nmea_msgs/Sentence

首先安裝nmea_msgs包,然後可以使用rosmsg指令查看此消息,命令如下:

sudo apt install ros-melodic-nmea-msgs
rosmsg show nmea_msgs/Sentence

ros內置消息中除基本數據類型之外,基本都會包含header消息頭,header包含seq、stamp以及frame_id,分別表示序列號、時間戳和幀id,seq一般從0開始,每次增加1,表示消息序列id;stamp爲時間戳,表示ros消息產生的時間。frame_id表示消息發佈者,這裏的frame常表示座標系,例如gps、imu和lidar等。

sentence表示GPS裸數據,一般是從驅動文件中直接讀取出來,其格式遵守NMEA0183,基於此,可以參考NMEA0183格式,編寫解析程序。

2. sensor_msgs/NavSatFix

如果是安裝ros desktop full版本,sensor_msgs包默認是安裝過得,所以不需要在安裝,指令:

rosmsg show sensor_msgs/NavSatFix

header同nmea_msgs/Sentence,status代表全球定位系統類型及其狀態,latitude緯度,longitude經度,altitude高度,position_covariance位置協方差,後面幾項表示位置協方差類型。sensor_msgs/NavSatFix數據結構是通過解析nmea_msgs/Sentence結構而獲取的。

3. sensor_msgs/TimeReference

指令如下:

rosmsg show sensor_msgs/TimeReference

header同上,time_ref表示外部源時間,source表示外部源名稱。

4. geometry_msgs/TwistStamped

指令如下:

rosmsg show geometry_msgs/TwistStamped

header同上,twist代表速度,線速度和角速度。

ROS中GPS數據主要包含這四類,分別是gps 裸數據ros封裝,位置,時間以及速度。並不是所有的GPS設備都有這四類數據的,具體看GPS硬件設備。

七. 小結

本篇介紹的GPS基本概念,GPS測量的數據,以及數據在ROS中如何表示。下篇將結合幾個實際GPS驅動程序,展示在ROS中如何獲取以及發佈GPS數據。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章