777精品久无码人妻蜜桃,国产日本精品视频在线观看 ,国产亚洲99久久精品熟女av,brazzersvideosex欧美最新版,人人爽人人人爽人人爽

2025全球時空智能大會
5月21-22日 北京
開幕在即!WGDC25全球時空智能大會完整日程公布
即刻注冊  鎖定席位
分享
Scan me 分享到微信

【手機(jī)定位原理揭秘第二期】GPS定位實現(xiàn)原理解析

手機(jī)定位原理實現(xiàn)

  本文作者:chuanming。更多內(nèi)容請關(guān)注:Map_technology。

  什么是GPS定位?

  我們手機(jī)上的GPS定位,是衛(wèi)星定位的一種約定俗成的說法,衛(wèi)星定位的全稱來說應(yīng)該叫做GNSS(Global Navigation Satellite System)定位。GPS只是GNSS的一種,是美國部署的一套全球衛(wèi)星系統(tǒng)。這套系統(tǒng)給個簡單的描述,就是

  天上有24顆衛(wèi)星在不斷的繞地球運動(圖1),

  每顆衛(wèi)星不斷發(fā)送“我是誰,我在哪里”的信號

  接收機(jī)(比如手機(jī)GPS芯片)收到了多顆衛(wèi)星發(fā)出的這樣的信號,根據(jù)信號傳播時間推算出離衛(wèi)星的距離,進(jìn)而解出了接收機(jī)自己的位置,順便可以得到當(dāng)前準(zhǔn)確時間(圖2)。

 圖1

  圖2

  關(guān)于GPS基本原理問答

  如果對這個原理稍微琢磨一下,就很容易出現(xiàn)不可理解之處,比如:

  有人問,為什么能保證每時每刻都能定位呢?如果天上就兩顆衛(wèi)星,又如何唯一解算出設(shè)備位置?這就是天上為什么部署24顆衛(wèi)星的原因,這種部署方式就可以保證無論何時天空中都能接收到>=4顆衛(wèi)星的信號。

  有人問,求解3D坐標(biāo)只要三顆衛(wèi)星就夠了,為什么要四顆呢?問題就在于接收機(jī)(手機(jī))的時鐘和衛(wèi)星的時鐘是存在時間差的,我們需要解算出這兩個時鐘的真正時間差,否則便無法算出傳播時間,也無法根據(jù)傳播時間來反算傳播距離,最終便無法定位。也就是說,我們要解的未知數(shù),不是三個,而是四個。

  有人問,既然衛(wèi)星信號在衛(wèi)星定位成功后,每秒都會定位一次,這足以說明信號傳播是沒有障礙的,那么為什么要花這么長的時間來搜星?這是個好問題,不過這個問題很復(fù)雜,一言蔽之就是最主要的時間用在了“等待電文”上,所謂電文就是衛(wèi)星用來循環(huán)播報當(dāng)前位置的信號(這里澄清下,衛(wèi)星并不是如我們想的這樣,每秒播報一次當(dāng)前的位置,而是時刻發(fā)送連續(xù)循環(huán)的信號,要不然也不會有接收機(jī)能實現(xiàn)每秒幾十次GPS定位了),這個信號播報周期為30秒,從而GPS的冷啟動一般來說,至少要30秒才能完成。

  有人問,為什么在汽車的導(dǎo)航上看到GPS的軌跡運動非常連續(xù)平滑,而手機(jī)上卻是每秒跳一次,手機(jī)能否每秒定位n多次?這個要分兩方面說,第一這個肯定是可以做到的,因為GPS衛(wèi)星發(fā)射的信號是連續(xù)的,他不是每秒廣播一個衛(wèi)星位置,而是傳輸一個軌道參數(shù),基于這個信息,就可以重構(gòu)衛(wèi)星的完整飛行軌跡,從而只要接收方愿意,它可以做到每秒解算幾十次位置;第二從目前來看手機(jī)GPS模塊因為成本和收益的折衷,設(shè)計成每秒定位一次,基本也是夠用的。當(dāng)然,作為一個完美主義的手機(jī)APP開發(fā)者,你如果真的反感每秒跳動的位置,也可以基于每秒一次的位置,用濾波來進(jìn)行平滑推算,使得視覺效果非常平滑,這樣看上去也就能以假亂真了。

  中國的北斗是怎么回事?

  先拋出一個常見的問題,既然說GPS總共24顆星,那么按道理地球某個半球最多也就能接收到12顆衛(wèi)星(比如東半球的接收機(jī),不可能接收到正在西半球天空中的衛(wèi)星發(fā)射過來的信號),但是看看GPS軟件的截圖(iOS沒有,Android可以用GPS Test之類的)就會發(fā)現(xiàn),可見衛(wèi)星遠(yuǎn)大于10顆,這是為什么?

  上圖中,可見22顆衛(wèi)星,鎖定使用了20顆衛(wèi)星,左面的國旗揭露了奧秘,是的,現(xiàn)在手機(jī)的所謂GPS接收模塊中,很多都擁有多種衛(wèi)星的接收能力,實際可用的衛(wèi)星主要是三種:GPS、格洛納斯、北斗。多個衛(wèi)星系統(tǒng)共同定位,產(chǎn)生比單一GPS更好的定位效果。

  如何確定你的手機(jī)支持哪些衛(wèi)星呢?作為一個使用者,可以直接下載GPS軟件來看國旗的顏色來大致了解,作為一個開發(fā)者,可以獲取GPS的衛(wèi)星偽隨機(jī)碼作為編號,具體可參看Android中關(guān)于GPSStatus類的描述。

  之所以多套衛(wèi)星定位系統(tǒng)存在的原因,要從部署衛(wèi)星定位系統(tǒng)的初衷說起。一個國家部署衛(wèi)星定位系統(tǒng),主要目的是為了在作戰(zhàn)中,能精確定位,便于精確調(diào)度進(jìn)行打擊。當(dāng)然在和平年代(比如說當(dāng)代中國),這種衛(wèi)星系統(tǒng)更普遍地出現(xiàn)在民用領(lǐng)域,如車載導(dǎo)航儀等。

  那么就會有人問,既然這樣,為什么要另起爐灶,部署那么多套呢?比如中國為什么不沿用GPS,而要花大量人力做一套北斗系統(tǒng)呢?原因就是GPS衛(wèi)星的部署者(美國軍方)是可以對信號設(shè)置干擾的,一旦干擾產(chǎn)生,普通的接收機(jī)便無法正確定位,而美國由于知道具體的干擾加密策略,它可以無損解密,依然正常定位。從技術(shù)角度說,形成GPS壟斷難度并不大(當(dāng)然這樣也確實非常損人品),這樣的后果卻是很不可想象的——首先對中國主權(quán)構(gòu)成很大的威脅,其次各行各業(yè)的正常生產(chǎn)也都會受到極大的影響。因此,一個有實力的國家,都應(yīng)該有一套屬于自己的衛(wèi)星導(dǎo)航系統(tǒng)。

  自從2000年中國發(fā)射了第一個北斗導(dǎo)航衛(wèi)星至今,已經(jīng)有17顆衛(wèi)星在天空中默默地提供定位服務(wù),目前北斗只能在亞太地區(qū)提供局部的定位能力,當(dāng)所有35顆衛(wèi)星都發(fā)射完畢后,就可以提供全球范圍的定位服務(wù),屆時北斗系統(tǒng)的定位能力便可正式比肩GPS。

  關(guān)于GPS搜星的速度討論

  剛才說到GPS定位慢,這個確實不假。接下來我們細(xì)致的討論下,為什么慢,以及在手機(jī)里是如何解決這個問題的。

  搜星時間長,主要是兩個因素構(gòu)成的:第一是GPS信號的解調(diào),可以認(rèn)為需要用類似窮舉的方式解出來真正的信息;第二是GPS衛(wèi)星發(fā)送30秒一次的循環(huán)電文,這個循環(huán)電文已經(jīng)包含了這段時間每一瞬間的衛(wèi)星位置,一般總得一個循環(huán)完成后,才能收集到足夠可以推算設(shè)備位置的信息。對于冷啟動來說,后者是免不了的,前者則取決于接收機(jī)軟硬件的優(yōu)劣,這就是所謂GPS在沒有任何知識的情況下啟動至少要持續(xù)30秒的原因。

  但實際上,有時候打開地圖軟件,都是看到瞬間定位,而有時候則可能幾分鐘乃至幾十分鐘都無法定位成功,這又是為什么?

  地圖APP定位成功,不一定都是GPS定位

  首先,WIFI定位已經(jīng)可以做到很不錯的精度,甚至在室內(nèi)可以做到5M,這個精度已經(jīng)不比GPS差了,在室外,WIFI定位也可以做到20M量級,也就是比GPS稍稍差一些,在高樓林立的區(qū)域,WIFI定位的精度會比GPS更好。

  其次,在新版Android和市面上可見的iOS系統(tǒng)上,刻意屏蔽了“GPS是否定位成功”這么一個信息,表現(xiàn)為一旦使用定位,位置圖標(biāo)即展現(xiàn),并且不閃爍(老Android系統(tǒng),會有閃爍來表達(dá)GPS沒有定位成功),以至于用戶無法知道到底這個定位結(jié)果是誰產(chǎn)生的。

  我們之前的討論說起過,WIFI定位,是可以瞬間完成的,所以這一切產(chǎn)生了“GPS”定位很快的錯覺。

  衛(wèi)星分布狀態(tài)不一定允許快速定位

  如果你在一個朝北的窗口,開始搜星,那么衛(wèi)星分布很可能是這樣的,你會注意到,可見衛(wèi)星都在樓的北側(cè)(南側(cè)的信號都被樓本身給遮擋了),因此這些衛(wèi)星的排列區(qū)域就非常有限,極端的情況下,衛(wèi)星既少,信號又弱,又是線性排列,GPS接收機(jī)就很難解算出一個高質(zhì)量的位置,遠(yuǎn)不如那些在空曠區(qū)域的定位速度快。

  另外也要說明一點,有人會問,為什么當(dāng)時可見的有5顆乃至更多的衛(wèi)星依然不能定位?這也是衛(wèi)星分布情況導(dǎo)致的,如果衛(wèi)星信號強(qiáng)度很弱(用專業(yè)術(shù)語就是信噪比很弱,這個在Android系統(tǒng)里是可以得到的),或者盡管衛(wèi)星很多,但是分布形態(tài)不夠分散,那也會讓接收機(jī)很為難,如果沒有十足的把握,接收機(jī)是不會認(rèn)為定位成功的。給出個幾百米誤差的定位結(jié)果(不過實際上手機(jī)GPS也經(jīng)常干出這種事情),豈不是自砸招牌嗎?

  A-GPS等加速搜星措施的應(yīng)用

  我們經(jīng)常聽說A-GPS這個概念,因為A-GPS需要網(wǎng)絡(luò)運營商的參與,所以這個概念容易和網(wǎng)絡(luò)定位混淆,其實A-GPS不是基站定位,基站定位只是其中的一個步驟,A-GPS最終的精度和普通定位精度是一樣的。只不過A-GPS可以從運營商這里做粗略定位后,將其發(fā)送給A-GPS服務(wù)器下載當(dāng)時的衛(wèi)星信息,以至于不用等待漫長的衛(wèi)星軌道信息廣播完畢后,才能知道衛(wèi)星的位置。這樣即使是冷啟動,也能根據(jù)從網(wǎng)絡(luò)傳回來(而不是從衛(wèi)星廣播傳過來)的衛(wèi)星參數(shù)來迅速參與位置計算。在用戶看來,搜星時間自然就大大縮短了。

  但是這些加速措施,有時候并不好使,比如你在網(wǎng)上搜索gps.conf為關(guān)鍵字,有鋪天蓋地的帖子,大意就是Root后改這個文件,里面有A-GPS服務(wù)器的配置,改后即“秒定”。這類帖子多,足以說明搜星慢是個很大的痛點,但仔細(xì)一看就會發(fā)現(xiàn),搞A-GPS幾乎沒有一個公認(rèn)的辦法可以通殺。這又是為什么?

  問題在于三點:

  第一,A-GPS首先要運營商支持,使之至少可以按照標(biāo)準(zhǔn)協(xié)議,提供一個粗略定位結(jié)果,但運營商是否積極、免費地支持呢?這個問題,留給讀者讀調(diào)研,你去看看中國運營商的主頁吧。

  第二,A-GPS需要網(wǎng)絡(luò)流量可用,這樣才可以連到A-GPS定位服務(wù)器上。這個環(huán)節(jié)基本沒問題。

  第三,A-GPS的服務(wù)器需要是可用,建議你看看gps.conf里寫的A-GPS服務(wù)器到底是啥,是不是谷歌的服務(wù)器呢?如果是的話,那么A-GPS在國內(nèi)不可用也就可以理解了。

  這就是一個系統(tǒng)的依賴太多導(dǎo)致不work的典型例子,于是乎,手機(jī)廠商自然對此是很不滿意的。隨著高通芯片的大面積鋪開,其主導(dǎo)的xtra輔助定位系統(tǒng)開始迅速流行,這個機(jī)制繞開了基站運營商,而是直接基于網(wǎng)絡(luò)流量(3G、4G、WIFI)從芯片廠商這里得到衛(wèi)星信息。比如在搭載高通最近這些年方案的手機(jī)上(典型例子是三星Galaxy S5),利用xtra方案,確實可以實現(xiàn)冷啟動秒定,非常震撼。

  出現(xiàn)這個后來者居上的局面,也是可以理解的,GPS能迅速定位,是手機(jī)和芯片的重要賣點(相比之下用戶不會因為運營商不支持A-GPS就放棄運營商),所以手機(jī)和芯片廠商自然就會全力以赴的想辦法解決這個問題。

  GPS的痛點與機(jī)會:精度

  如果要論GPS的問題,比較公認(rèn)的是三個:第一是初始定位慢,但這個問題現(xiàn)在已經(jīng)也好很多了,在輔助定位如xtra可用的機(jī)器上,GPS即使冷啟動也是很快的,第二是室內(nèi)沒法用,但GPS原理就是那樣,你要指望在室內(nèi)可用是不現(xiàn)實的,何況室內(nèi)的WIFI定位精度也不錯,所以這個問題也還可以忍受。第三是GPS在室外某些區(qū)域的精度比較差,尤其是高樓區(qū)域,有時候可能有幾百米的誤差,這就很讓人頭疼了。

  GPS誤差產(chǎn)生的原因

  GPS的誤差,通俗的說主要由兩種誤差造成,第一種是電離層和接收設(shè)備的誤差,不過,這個誤差相對日產(chǎn)應(yīng)用來說還不是那么致命,因為在空曠區(qū)域下,用手機(jī)進(jìn)行GPS定位,這樣的誤差基本都在10米以內(nèi)。要改善這個誤差,需要改進(jìn)手機(jī)的天線和芯片,比如雙頻差分GPS接收機(jī),其精度就比普通手機(jī)GPS精度要高,可以做到一米以內(nèi),是不是非常厲害呢?不過話說回來,精度在5米之類的,也是不錯的,所以手機(jī)廠商解決這個問題的動力并不是太強(qiáng)。第二種誤差是遮擋、多徑效應(yīng)產(chǎn)生的誤差,這個誤差才是真正致命的,可以達(dá)到幾百米,甚至上公里。

  下圖是在上海陸家嘴金融貿(mào)易區(qū)某高樓下繞著高樓行走的真實軌跡(黃色)和GPS軌跡(紅色)的對比,是否讓你感到觸目驚心?

  下圖是上海延安路高架下在靜安區(qū)的真實軌跡(黃色)和GPS軌跡(綠色)對比。

生GPS偏差的原因很多,高樓區(qū)域和高架下發(fā)生GPS誤差的原因并不完全相同。我們遇到大部分GPS較大偏差,是高樓引起的,高樓林立區(qū)域(用學(xué)術(shù)界的說法就是城市峽谷地帶)GPS偏差的原因是GPS接收機(jī)的測距機(jī)制導(dǎo)致的。下圖大致說明了這個問題:

  圖中右面有個高樓,接收機(jī)(手機(jī))收到的某衛(wèi)星的信號,實際由兩個分支構(gòu)成,一部分是直射,一部分是發(fā)射到墻上再反射回來的衛(wèi)星,GPS可能會被這樣的信號所欺騙,甚至以為右面那部分信號才是直射過來的信號,于是就導(dǎo)致了它計算信號傳播時間就錯了,最終定位發(fā)生很大偏差。

  GPS能知道自己算錯了嗎?

  如果你是個開發(fā)者,就會知道,各種手機(jī)系統(tǒng)幾乎都提供對GPS定位獲取誤差的API接口,那么GPS能知道自己算錯了嗎?它又是如何計算其誤差的呢?

  答案很復(fù)雜,一句話沒法把這個問題說清楚,得分四種場景:

  如何改善高樓區(qū)域的GPS定位精度?

  筆者先給出結(jié)論,純粹靠端,并且把接收機(jī)當(dāng)成黑盒,是無法做到的。

  近年,學(xué)術(shù)界研究這玩意的Paper并不少,大致思路是兩類:

  第一個思路,真是實打?qū)嵉脑诙松献觯话呀邮諜C(jī)當(dāng)成黑盒,而深入修改定位邏輯。顯然這類事情最多也只是極少數(shù)對驅(qū)動精通的人能做,app開發(fā)者是做不了的——試問Android和iOS開放了GPS接收機(jī)內(nèi)部解算邏輯了嗎?沒有。其實這和radio內(nèi)部是黑盒一樣的,你見過哪個開發(fā)者聲稱能改善手機(jī)拍照性能、改善音頻播放音質(zhì)、改善信號質(zhì)量嗎?iOS根本沒把基本功能的實現(xiàn)邏輯開放出來,怎么改善?說能改善的都是耍流氓。

  第二個思路,有可能能在手機(jī)上做,相關(guān)Paper一般基于樓的輪廓建立反射模型,舉個例子,附近不是有個樓嗎?這個樓多高,樓的地面輪廓是什么,我們都知道了,然后就根據(jù)衛(wèi)星的細(xì)節(jié)情況(如方位、仰角、信噪比、是否參與定位)來猜測某些衛(wèi)星發(fā)射到手機(jī)的信號,是不是會受到干擾,如果兩者連線穿過了樓,那么我們就有理由認(rèn)為,這個衛(wèi)星信號的傳播距離可能比實際的要長,從而我們就把定位結(jié)果朝這個衛(wèi)星的位置做一些修正。

  就第二個思路,要想做好也是很困難的,因為這個思路從原理上說,有很多想當(dāng)然的前提。比如,當(dāng)時用戶真實的位置并不知道,所以判斷是否有反射也就無從談起,只能將其作為隱變量來迭代求解。其他的坑也很多,如樓的數(shù)據(jù)從哪里搞來?誰要說可以人肉采集的,那我想先問一個問題,先不說樓高度如何測量,你在人肉測繪樓輪廓的時候,是不是也用GPS了?那你是如何保證當(dāng)時樓輪廓的測量結(jié)果是準(zhǔn)確的呢?

  不過,判斷GPS是否真正的飄,這個比確定設(shè)備在GPS漂移時的真正位置,還是要容易一些的。首先GPS本身就給個半徑出來,這個半徑雖然不準(zhǔn),但也可以作為參考。其次GPS還有大量的衛(wèi)星分布細(xì)節(jié)信息,是足以結(jié)合云端的統(tǒng)計結(jié)果來判斷是否漂移的。只要能識別出GPS定位的真正誤差,其意義就已經(jīng)很大了,如在導(dǎo)航中,就會避免誤偏航,在定位中,就可以用WIFI定位結(jié)果來替代GPS,做到真正的雙向融合。不過,這個工作對開發(fā)者的模式識別功底,還是挺考驗的,哪位同學(xué)能把這個事情搞定的,我們歡迎你加入百度,和我們一起把定位做得更好。

     如果您對您所在行業(yè)有很深認(rèn)知,也想在我們的平臺上說點什么,我們歡迎您來投稿!

喜歡您正在閱讀的內(nèi)容嗎?歡迎免費訂閱泰伯每周精選電郵。 立即訂閱

參與評論

【登錄后才能評論哦!點擊

  • {{item.username}}

    {{item.content}}

    {{item.created_at}}
    {{item.support}}
    回復(fù){{item.replynum}}
    {{child.username}} 回復(fù) {{child.to_username}}:{{child.content}}

更多精選文章推薦