關於衛星定位,你想知道的一切
5G和北斗,是國之重器。北斗作為衛星定位系統,目前在國際上已處於領先地位,而且已經滲透到我們工作和生活的方方面面。本文將簡要介紹衛星定位的原理和應用情況,方便大家對北斗、衛星定位有更多的瞭解。
衛星定位的原理
衛星定位系統的英文是Global Navigation Satellite System(GNSS),雖然直接翻譯過來是導航衛星系統,但它真正提供的能力是定位,能定位後,導航就變得相對簡單了。衛星定位的原理,是利用衛星播發時間訊號,當裝置接收到後,可以根據訊號發射時間和本地時間,計算出訊號傳輸時間,再結合光速獲得衛星-裝置距離。
有了多顆衛星的訊號,可以列出一組方程,求解4個未知數:裝置的三維座標x/y/z,以及本地時間與GNSS系統的時間差。
式中的代表衛星j的三維座標,這個座標可以透過衛星星曆計算獲得。
星曆是描述衛星執行軌道的一組引數,衛星軌道是一個橢圓,透過幾個引數和時間,可以唯一確定衛星的準確位置。
星曆的獲取有兩種方式,一種是衛星直接播發,這種方式的好處是定位過程不依賴衛星訊號以外的任何輸入,即使沒有網路也可以定位成功,但問題是衛星鏈路頻寬很小,要下載完整星曆,需要30秒左右的時間,早期的手機和一些車載裝置定位過程很慢,就是由於這個原因。
另一種方式,是透過網際網路播發,這種方式叫A-GNSS,具體的傳輸協議叫SUPL(Secure User Plane Location),這種資料一般不對應用層透出,在手機上,作業系統會在底層定時請求SUPL資料,然後將獲得的星曆注入GNSS晶片。有了A-GNSS,裝置就可以在秒級獲得定位,不需要任何等待過程,目前所有的手機都支援這種方式。A-GNSS的服務提供商,主要是通訊運營商,以及一些定位服務商,比如谷歌、千尋等。
衛星不間斷的向地面廣播訊號,這個訊號主要包括以下資訊:
-
衛星編號。用於從星曆中查詢衛星軌道,再結合時間戳獲得當前衛星位置
-
當前時間戳。用於獲得衛星位置,另一方面計算偽距。偽距是(本地時間-訊號發射時間)*光速,之所以叫偽距,是因為本地時間與衛星時間不同步,所以這個距離並不是真正的裝置-衛星距離。
-
星曆資料。用於計算衛星位置。
像其他所有的通訊技術一樣,這些資訊也是以報文的形式傳送的,以GPS為例,衛星會每隔6秒發出一個包,而這個包會分解為資料位-CA碼序列-載波波形,透過天線發射到地面。地面裝置持續鎖定衛星,在解算時,計算每顆衛星當前時刻的時間戳(用最近一次收到的時間戳加上報文偏移量),然後進行位置解算。
載波的頻率是1.5G左右,波長20釐米左右,比行動通訊的波長稍長一些,所以訊號的穿透性還是比較好的(波長越長,越容易繞開障礙物),可以穿透比較薄的牆壁或屋頂,所以在一些情況下即使無法直接看到天空,也是能定位的。但是衛星訊號是從上往下,在室內很難穿越多層建築。
衛星定位的另一個特點是可以解算出速度,其依據是多普勒頻移原理(與交警用的測速儀原理一樣)。當訊號源與接收裝置存在相對運動時,接收到的訊號頻率會發生變化。
頻率變化量與相對速度存在如下公式:
其中,公式左邊是頻差和波長,v是裝置運動速度(向量),vj是衛星運動速度(向量),1j是衛星的投影方向,dt'是本地裝置的頻漂速度。只要測量了4顆星的頻差,就可以解出本地裝置的運動速度(與裝置姿態無關)。
除了定位和測速,定位衛星還可以完成全球授時(解算過程中獲得本地鐘差),這也是目前成本最低的高精度授時方法,比絕大部分裝置自帶的時鐘都要準確。
一般而言,偽距測量值精度不如頻率測量精度高(偽距定位精度在10米左右,而多普勒定速精度可以達到0.2米/秒以內,授時精度在20ns),原因是偽距測量容易受到多種路徑誤差影響(後面會介紹),而頻率測量的干擾因素少很多。
衛星定位發展歷程
最早的衛星定位系統,是美國在1960年代開發的子午儀系統,後續在70年代開發出了GPS定位系統,目前的GPS系統由24顆衛星構成。除了GPS,世界多國也開發出了自己的衛星定位系統,主要的有中國的北斗系統、歐盟的伽利略系統、俄羅斯的格洛納茲系統,此外日本和印度在開發區域定位系統。
除了天上的衛星,各定位系統還需要地面站對衛星的執行進行監測,包括健康度、軌道引數(計算完成後要注入衛星實現全球播發)、訊號質量等,另外還需要對衛星進行控制。
各種衛星定位系統使用的技術類似,大多采用中軌道衛星(MEO,衛星高度2萬公里),少數採用了地球同步軌道(GEO,衛星高度4萬公里)和地球傾斜同步軌道(IGSO)。同時,訊號播發大多采用CDMA技術,實現在同一個頻率上傳輸多顆衛星的訊號。為了讓地面裝置能夠較好的接收來自幾萬公里外的訊號,訊號的資料速率都比較低,比如GPS L1頻段的資料傳輸速率只有50位元組/s,根據夏農定理,C=B*log2(1+S/N), 在頻率頻寬B固定的情況下,隨著傳輸速率C的降低,接收端在訊雜比(S/N)比較低的時候也可以解出正確的訊號,有利於持續的鎖定、跟蹤衛星訊號。
與其他定位系統相比,北斗的特點主要有:
-
亞太地區覆蓋好。北斗系統由3顆地球同步衛星、3顆地球傾斜軌道同步衛星和24顆中軌道衛星構成,與GPS相比,北斗有6顆星持續覆蓋亞太地區,極大提升了亞太地區可見衛星的顆數,一方面提高定位成功率,另一方面也能提升精度(改善了GDOP,減少了誤差)。
-
北斗的同步衛星可用來進行通訊,地面裝置可以將短報文傳送到衛星(只用GEO衛星支援短報文)上,然後轉發給目標終端,這種通訊是免費的,但是需要專門的天線和裝置(需要將訊號發射到4萬公里遠的地方,普通手機肯定是不行的)。
多個衛星定位系統的訊號同時被收到時,所有的衛星可以一同參與解算(每增加一個系統,只需增加一個新的引數,即這個系統相對於GPS系統的時間差),使得定位精度可以獲得提升。目前手機上無法選擇參與定位的星座或者衛星,所以我們無法指定只用北斗或者不用GPS定位。
我們對比了手機端GNSS定位時,使用不同系統的佔比,可以看出GPS和格洛納茲由於發展的比較早,在手機晶片側的滲透率比較高,因此被使用的比例也最高,其次就是北斗。
按參與定位的衛星顆數統計,北斗排在第二位,僅次於GPS。
因為各系統技術類似,其定位精度也是類似的,北斗也不例外,水平定位誤差一般在10米以內。垂直定位精度一般會差一些,主要是由於衛星都分佈在裝置的一側,垂直方向上的誤差難以修正。
衛星定位接收機構成
衛星定位接收機的原理圖如上圖所示,主要的模組包括:
1. 天線
用於接收衛星訊號。由於衛星訊號微弱,天線當然是越大越好,但是由於接收機需要移動,天線尺寸受到制約。天線的主要作用是放大訊號和抑制多徑,主要的型別有以下幾種
左邊的是比較常見的天線,內部是陶瓷天線,外部帶磁鐵,可以吸附在車頂;中間的是專業天線,旁邊帶扼流圈,可以抑制來自四周和地面反射的訊號,只接收從天頂方向來的訊號,這種天線的效果最好,一般用於專業研究和高精測繪;右側是手機天線,長度只有幾釐米,效果最差。
衛星訊號的電磁波是圓極化的(傳播時在垂直於傳播方向的一個平面上波動),因此,採用圓極化天線(如平面的陶瓷天線)接收效果最好。但手機上天線尺寸太小,只能採用線極化天線,訊號捕獲能力大幅下降,再加上缺乏訊號遮蔽(扼流圈),極易受到多徑效應以及其他訊號干擾。
2. 射頻前端
這個模組主要是將原始訊號進行下變頻、功率放大以及濾波,提取真正有用的訊號,便於解碼處理。
3. 基帶處理
這個模組是對衛星訊號進行解碼,獲得衛星報文。每顆衛星的訊號需要一個單獨的通道進行處理,如果有100顆衛星,2個頻段,那可能需要200個通道才能有效處理這些資訊。通道數越多,可以獲得的衛星觀測值也就越豐富,定位精度也就越高。
解碼的過程,分為搜尋-鎖定-跟蹤三步,首先生成每顆衛星的偽碼,然後與訊號進行自相關操作,相關度達到一定程度就可以鎖定衛星,然後進行碼鎖定、位同步、幀同步,最終提取出報文。這個過程要持續進行,因為多普勒效應,訊號的頻率會不斷變化,所以本地生成的偽碼也要不斷變換頻率去適配衛星的變化。一旦失去鎖定,就會丟失訊號,也就無法定位了。
4. PVT解算
PVT包括Position,Velocity和Time。這一步是真正進行定位的步驟,是利用基帶解碼獲得的報文,提取出時間戳、星曆等資訊,代入公式進行計算,然後將計算結果輸出給應用程式。
定位誤差來源與精度提升
衛星定位雖然已經很準確了,但是在某些場景下,還是無法滿足需求,比如,叫車的時候定位點離車輛有一定距離、步導的時候難以區分方向甚至會定位到馬路對面、靜止的時候定位點總數飄來飄去、室內的時候定位點亂飄。這需要從衛星訊號的發射、傳輸、接收過程來解釋。
衛星訊號從發射到被裝置接收,需要經過大氣層,其中,大氣電離層有數千公里厚,這部分大氣非常稀薄,但是存在大量被電離的電子,這部分電子會讓電磁波變慢一點,從而產生延遲。在對流層,也會產生一定的延遲。在地表附近,由於各種建築、山體、水面的影響,衛星訊號可能被反射或折射(多徑效應),產生延遲。
在衛星訊號發射側和接收側,也有很多系統相關的誤差,比如時鐘偏差、處理延遲等,這些延遲加上傳輸延遲,使得衛星訊號的傳輸時間,並不是準確的等於物理距離/光速,另一方面,衛星的星曆也有誤差,衛星位置和真實位置存在偏差,最終造成了定位結果產生偏差。
要提升定位精度,需要想辦法消除這些誤差,主要有以下幾種方案。
雙頻GNSS
不同頻率的電磁波透過電離層時會有不同的延遲,人們發現,對兩個或多個頻率的觀測值進行線性組合,可以消除電離層誤差,從而能提升精度。這就是雙頻GNSS定位的原理。小米8是業界第一款支援雙頻GNSS定位的手機,後續各大廠商均進行了跟進,一些高階手機均採用雙頻定位。消除電離層誤差後,定位精度可以提升到5米以內。
地基/星基增強
星曆誤差、衛星時鐘誤差、甚至是電離層和對流層誤差都是可以觀測或建模的,一旦計算出了實時的誤差值,就可以透過一個單獨的通道進行播發,接收裝置在定位過程中使用這些修正項,就可以提升定位精度。播發的通道一般有兩種,一種是直接透過衛星播發,稱為SBAS(Satellite-Based Augmentation System),好處是覆蓋廣,但裝置需要增加額外的訊號接收通道;另一種是地基增強,比如透過網際網路,這需要裝置具備聯網能力。
這些增強方式對於精度提升是有限的,還是有很多誤差項無法消除,比如電離層誤差。
高精定位-差分定位(RTK)
RTK是Real - time kinematic的縮寫,是一種差分定位。其原理是利用一個參考站提供基準觀測值,然後用裝置的觀測值與基準站的觀測值進行差分,差分後可以消掉星曆誤差、衛星鐘差、電離層誤差,再進行星間差分後可以進一步消除掉裝置的鐘差,最終可以算出裝置相對基準站的相對座標,如果基準站位置已知,就可以完成準確的絕對座標,精度可以達到釐米級甚至毫米級。
RTK能提升精度的另一個原因是引入了載波相位觀測,相比偽距觀測值,載波相位觀測值的誤差更小。
使用RTK,需要在附近20km內有參考站(距離太遠,電離層誤差不一樣,做差分無法完全消除誤差),同時需要持續不斷的獲得參考站的觀測資料(一般透過網際網路傳輸,使用RTCM協議),因此相對普通的定位,RTK定位成本較高,但對於一些對精度要求很高的場景,比如車道級定位、自動駕駛等,是必不可少的。
RTK服務一般由專業服務商提供,如千尋、六分,這些服務商在全國範圍內部署了數千個基準站,持續對訂閱使用者播發資料。
高精定位-精密單點定位(PPP)
RTK需要佈設密集的參考站,有沒有辦法不依賴參考站?PPP(precise point positioning)就是一種方法,它的原理是對每一種誤差進行準確建模,最終求解出衛星和裝置之間的準確距離。為了確定準確的誤差,PPP定位時需要不斷的迭代內部引數,而且,一些衛星的誤差只有當衛星位置變化後才能體現出來,所以PPP需要比較長的收斂時間,一般需要30分鐘才能收斂到理想的精度,如何更快的收斂是目前學術界的一個研究熱點。
組合定位
衛星定位的一個最大問題,就是丟失衛星訊號後如何定位,這就需要其他定位方式來補充。組合定位是利用衛星訊號和其他定位技術,比如慣性導航,來完成定位,二者相互配合。最簡單的一個例子,就是衛星定位是有一個最高頻率的,一般最多是10Hz,在兩次定位之間,可用慣導來進行位置推算,獲得更高頻率的位置輸出。而組合導航最重要的作用,是提升精度,比如,利用卡爾曼濾波方法,用慣導計算推算位置,用衛星定位提供觀測量,對推算位置進行修正,這可以讓定位結果更加平滑,而且可以對異常的衛星觀測量進行過濾或降權。
手機上的衛星定位
在移動網際網路出現以前,衛星定位終端是一個很專業的領域,只有測繪、軍事等領域會應用這種技術,定位需要使用專用的接收機,比如Trimble、ublox等。隨著智慧手機將衛星定位晶片整合,衛星定位的應用得到爆發式增長,終端數量一下子提升到幾十億量級,也產生了海量的位置資料。
手機上的衛星定位與專業接收機,還是存在比較大的差異,主要體現在:
-
手機受限於尺寸,天線比較小,對原始訊號的捕獲、鎖定、去噪能力都比較差,造成接收到的訊號質量天然不如專業接收機。
-
手機上晶片成本比較低,支援的通道數比較有限,一次定位能夠解碼的衛星數量和系統數量都比較少,主要是單頻,少數是雙頻,沒有三頻。
-
手機上對功耗、效能開銷的要求比較高,不能花費大量資源在定位上,解算演算法的複雜度比較低,效果也比較有限,精度比較差。
蘋果手機
蘋果手機的定位能力是完全封閉的,對外只透出定位結果,外部基本無法拿到任何定位相關的原始觀測量,比如衛星數量、型別等。好訊息是,iPhone12終於開始支援北斗了。從蘋果的API上,外界甚至無法區分定位結果到底是來自衛星定位還是網路定位(目前僅能透過速度的符號來判斷,但蘋果對此沒有任何承諾)。所以,基於蘋果手機,我們基本無法做出最佳化,蘋果手機上高德地圖的定位點都是iOS底層直接提供的。
安卓手機
安卓手機比蘋果手機開放的多,在定位能力方面提供了一系列API:
-
可以單獨獲取衛星定位結果或網路定位結果,也可以同時進行兩種定位。
-
提供了NMEA格式(一種衛星定位結果的規範化表達)的結果資料,可以獲取每顆衛星的ID、型別、訊號強度,以及xDOP等細粒度的誤差描述。
-
提供了GnssStatus來描述每顆衛星的狀態,內容比NMEA更全面。
-
提供了GnssMeasurement來描述原始觀測量,包括偽距測量值、載波相位測量值、衛星鎖定狀態等。
-
提供了GnssClock描述本地時鐘的狀態。
-
提供了GnssNavigation透出最原始的未解碼報文。
有了這些資訊,透過一些App就可以實時看到當前的衛星狀態,例如Androits gps test, GPStest等
另外,我們還可以進行衛星定位的軟解算,對衛星定位結果進行修正,甚至替代。我們主要嘗試解決兩類問題:
-
定位不準:對衛星定位結果進行質量判斷,識別其中的大誤差點,最佳化精度,或者最佳化精度半徑,使下游使用定位點的時候,能夠差異化的處理。
定位不準的原因,主要是來自衛星訊號中含有誤差,而影響最嚴重,也是最難抑制的,就是多徑造成的影響。
另一類定位不準的問題,是系統將其他定位結果偽造為衛星定位結果。比如,將網路點冒充為衛星定位點。
-
無法定位:系統不輸出定位結果時,嘗試進行軟體解算。
無法定位最主要的原因,是訊號接收條件不好,比如室內遮擋、高架遮擋、高樓遮擋。在開闊地帶無法定位,一般是裝置Bug,重啟裝置後一般都能解決。
衛星定位未來展望
隨著移動使用者量持續增長,以及物聯網的大範圍普及,衛星定位技術還會持續快速發展。
在衛星側,將出現低軌定位衛星(距地面幾百公里)。傳統上的定位衛星由於要覆蓋較大的地理範圍,高度一般都比較高,執行在中軌軌道上。隨著火箭發射技術的革命,衛星發射成本急劇下降,向太空發射大批次低成本衛星的方案成為可能。比如spacex已經發射了上千顆“星鏈”衛星。
低軌衛星進行定位有幾個好處:
-
距離近,訊號更強,裝置側接收到的衛星訊號更好。
-
可以傳輸更多的資料,比如各種修正資料。
-
位於電離層底部,電離層誤差小。
-
衛星仰角變化快,PPP定位可以更快收斂。
在裝置側,高精定位將大範圍普及,華為P40是首個支援RTK的智慧手機,可以做到0.5米的精度。高通也即將釋出支援RTK的移動晶片,在2021年上半年,更多支援RTK的智慧手機將會上市。
在應用側,高精定位的應用場景會不斷湧現,現在的一些典型應用場景包括:
-
傳統測繪
-
精準農業,機械化自動化種植和收割
-
車道級導航和自動駕駛
-
共享單車的精準停放
-
無人機導航
參考資料
北斗官方網站
GPS官方網站
伽利略官方網站
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69941357/viewspace-2731124/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【譯】關於你想知道的package-lock.json的一切PackageJSON
- Flutter關於TextField你能知道的一切Flutter
- LBS基站定位和GPS衛星定位對比
- 關於《密碼法》,你想知道的都在這裡密碼
- 你想知道的關於 Refs 的知識都在這了
- 你需要知道的關於 Go 包的一切Go
- 我所知道的關於 script 標籤的一切
- 關於 @synchronized,這兒比你想知道的還要多synchronized
- Android關於Path你所知道的和不知道的一切Android
- Android關於Canvas你所知道的和不知道的一切AndroidCanvas
- Android關於Paint你所知道的和不知道的一切AndroidAI
- Android關於Color你所知道的和不知道的一切Android
- 關於微信小程式,你想知道的他們都問了微信小程式
- 關於Vue v-model你需要知道的一切Vue
- 關於 v-model 你需要知道的這一切!
- 關於 Linux 程式你所需要知道的一切Linux
- 關於微軟HoloLens 你想知道的都在這兒了微軟
- 【定位不準的煩心事系列】第1篇:談談衛星定位的位置干擾
- [譯] 關於 Yarn 和 npm 你所需要知道的一切YarnNPM
- 關於客戶旅程地圖:你需要知道的一切地圖
- 關於Bonree ONE 2.0,那些運維人不知道的一切運維
- 關於 Android 程式保活,你所需要知道的一切Android
- Android Fragment完全解析,關於碎片你所需知道的一切AndroidFragment
- [譯] 關於 Angular 的變化檢測,你需要知道的一切Angular
- 關於takin-data,你想知道的都在這裡(一)啟動命令篇
- 關於莉莉周的一切
- Android Service完全解析,關於服務你所需知道的一切(上)Android
- 關於鎖的快速定位
- 關於視訊的編解碼與傳輸技術,你想知道的都在這裡
- [譯] 關於 Flutter 頁面路由過渡動畫,你所需要知道的一切Flutter路由動畫
- [譯]關於 Parcel 你所需要知道的一切:快速的 Web 應用打包工具Web
- 關於Python閉包的一切Python
- [譯]關於ReactRouter4的一切React
- [譯] 關於 React Router 4 的一切React
- 隧道、高架、電離層干擾衛星定位結果?千尋位置展開高精度定位路測
- 學好機器學習,這裡有你想要的一切機器學習
- 通用GPS衛星定位平臺漏洞成災使用者位置資訊告急
- 從容應對問題再發:關於JVM記憶體,你想知道的都在這裡JVM記憶體