本發(fā)明涉及智能定位領域,尤其涉及一種基于WiFiAware的輔助定位方法和系統(tǒng)。
背景技術:
隨著智能終端技術的發(fā)展,其具有的功能不斷豐富,給用戶的生活帶來了很多便利,尤其是導航功能。用戶通過開啟導航功能就能在陌生的環(huán)境中快速找到目標位置,不僅方便快捷,而且準確性高。然而現(xiàn)有智能終端的導航服務中,或是采用網(wǎng)絡定位,或是采用衛(wèi)星定位,這就要求用戶在使用相應功能的時候,必須保證網(wǎng)絡的順暢,衛(wèi)星定位功能可用。但在實際應用的過程中,常常會因為網(wǎng)絡信號差、智能終端電量不足等原因導致網(wǎng)絡信號不佳,衛(wèi)星定位功能不可用,此時,用戶就無法使用導航功能,無法獲得導航服務。
因此,現(xiàn)有技術還有待于改進和發(fā)展。
技術實現(xiàn)要素:
鑒于上述現(xiàn)有技術的不足,本發(fā)明的目的在于提供一種基于WiFiAware的輔助定位方法和系統(tǒng),旨在解決現(xiàn)有的智能終端在網(wǎng)絡信號不佳,衛(wèi)星定位功能不可用時,無法提供準確的定位服務和導航服務的問題。
本發(fā)明的技術方案如下:
一種基于WiFiAware的輔助定位方法,其中,包括:
步驟A、當前智能終端接收用戶指令開啟WiFiAware,并與周圍開啟WiFiAware的其它智能終端建立連接;
步驟B、獲取其它智能終端的經(jīng)緯度信息,并計算出當前智能終端與其它智能終端的相對距離;
步驟C、通過其它智能終端的經(jīng)緯度信息和當前智能終端與其它智能終端的相對距離計算出當前智能終端的經(jīng)緯度信息。
所述的基于WiFiAware的輔助定位方法,其中,所述步驟A具體包括:
步驟A1、當前智能終端接收用戶指令開啟WiFiAware;
步驟A2、當前智能終端探測周圍是否存在開啟WiFiAware的其他智能終端;
步驟A3、當探測到周圍存在開啟WiFiAware的其他智能終端時,則與周圍開啟WiFiAware的其它智能終端建立網(wǎng)絡連接。
所述的基于WiFiAware的輔助定位方法,其中,所述步驟B具體包括:
步驟B1、當前智能終端通過WiFiAware的服務接口向支持輔助定位服務的其它智能終端發(fā)出獲取其位置的請求;
步驟B2、當前智能終端獲取其它智能終端對所述位置請求的反饋信息,并對所述反饋信息進行解析;
步驟B3、通過解析得到的內容確定其它智能終端的經(jīng)緯度信息,并計算出當前智能終端與其它智能終端的相對距離并存儲。
所述的基于WiFiAware的輔助定位方法,其中,所述步驟B2中,所述反饋信息的類型為衛(wèi)星位置信息、網(wǎng)絡位置信息和無信息數(shù)據(jù)中的一種。
所述的基于WiFiAware的輔助定位方法,其中,所述步驟C中,當計算出的相對距離小于預設的相對距離閾值時,則判定當前智能終端與其它智能終端在同一位置。
所述的基于WiFiAware的輔助定位方法,其中,所述步驟C具體包括:
步驟C1、將已知量和未知量代入開放的地球表面距離計算公式,得到關于當前智能終端經(jīng)緯度信息的方程,其中,其它智能終端的經(jīng)緯度信息和當前智能終端與其它智能終端的相對距離為已知量,當前智能終端的經(jīng)緯度信息為未知量;
步驟C2、采用牛頓迭代法計算出所述方程的最優(yōu)解。
一種基于WiFiAware的輔助定位系統(tǒng),其中,包括:
連接模塊,用于當前智能終端接收用戶指令開啟WiFiAware,并與周圍開啟WiFiAware的其它智能終端建立連接;
獲取解析模塊,用于獲取其它智能終端的經(jīng)緯度信息,并計算出當前智能終端與其它智能終端的相對距離;
計算模塊,用于通過其它智能終端的經(jīng)緯度信息和當前智能終端與其它智能終端的相對距離計算出當前智能終端的經(jīng)緯度信息。
所述的基于WiFiAware的輔助定位系統(tǒng),其中,所述連接模塊包括:
指令接收單元,用于當前智能終端接收用戶指令開啟WiFiAware;
探測單元,用于當前智能終端探測周圍是否存在開啟WiFiAware的其他智能終端;
連接單元,用于當探測到周圍存在開啟WiFiAware的其他智能終端時,則與周圍開啟WiFiAware的其它智能終端建立網(wǎng)絡連接。
所述的基于WiFiAware的輔助定位系統(tǒng),其中,所述獲取解析模塊包括:
位置請求單元,用于當前智能終端通過WiFiAware的服務接口向支持輔助定位服務的其它智能終端發(fā)出獲取其位置的請求;
信息反饋單元,用于當前智能終端獲取其它智能終端對所述位置請求的反饋信息,并對所述反饋信息進行解析;
計算存儲單元,用于通過解析得到的內容確定其它智能終端的經(jīng)緯度信息,并計算出當前智能終端與其它智能終端的相對距離并存儲。
所述的基于WiFiAware的輔助定位系統(tǒng),其中,所述計算模塊包括:
方程建立單元,用于將已知量和未知量代入開放的地球表面距離計算公式,得到關于當前智能終端經(jīng)緯度信息的方程,其中,其它智能終端的經(jīng)緯度信息和當前智能終端與其它智能終端的相對距離為已知量,當前智能終端的經(jīng)緯度信息為未知量;
求解單元,用于采用牛頓迭代法計算出所述方程的最優(yōu)解。
有益效果:本發(fā)明通過WiFiAware獲取的其它智能終端的經(jīng)緯度信息和當前智能終端與其它智能終端的相對距離計算出當前智能終端的經(jīng)緯度信息,能夠使當前智能終端在沒有網(wǎng)絡信號或衛(wèi)星信號的條件下,通過WiFiAware獲取較為準確的當前智能終端的定位信息,方便進一步獲得有效的定位信息和導航信息。
附圖說明
圖1為本發(fā)明基于WiFiAware的輔助定位方法較佳實施例的流程圖。
圖2為圖1所述方法中步驟S1的具體流程圖。
圖3為圖1所述方法中步驟S2的具體流程圖。
圖4為圖1所述方法中步驟S3的具體流程圖。
圖5為本發(fā)明基于WiFiAware的輔助定位系統(tǒng)較佳實施例的結構框圖。
圖6為圖5所述方法中步驟100的具體結構框圖。
圖7為圖5所述方法中步驟200的具體結構框圖。
圖8為圖5所述方法中步驟300的具體結構框圖。
具體實施方式
本發(fā)明提供一種基于WiFiAware的輔助定位方法和系統(tǒng),為使本發(fā)明的目的、技術方案及效果更加清楚、明確,以下對本發(fā)明進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
請參閱圖1,圖1為本發(fā)明基于WiFiAware的輔助定位方法較佳實施例的流程圖,如圖所示,其包括步驟:
S1、當前智能終端接收用戶指令開啟WiFiAware,并與周圍開啟WiFiAware的其它智能終端建立連接;
S2、獲取其它智能終端的經(jīng)緯度信息,并計算出當前智能終端與其它智能終端的相對距離;
S3、通過其它智能終端的經(jīng)緯度信息和當前智能終端與其它智能終端的相對距離計算出當前智能終端的經(jīng)緯度信息。
在本實施例中,智能終端在自身網(wǎng)絡信號不佳或衛(wèi)星定位功能不可用時,通過WiFiAware獲周圍取它智能終端的經(jīng)緯度信息和當前智能終端與其它智能終端的相對距離,進而確定當前智能終端準確的定位,進而獲得準確的導航,有利于智能終端在自身無法準確定位時,也能通過其它智能終端的協(xié)助,獲得準確的定位。
作為優(yōu)選的實施例,圖2為圖1所述方法中步驟S1的具體流程圖,如圖所示,其包括步驟:
S11、當前智能終端接收用戶指令開啟WiFiAware;
S12、當前智能終端探測周圍是否存在開啟WiFiAware的其他智能終端;
S13、當探測到周圍存在開啟WiFiAware的其他智能終端時,則與周圍開啟WiFiAware的其它智能終端建立網(wǎng)絡連接。
在步驟S11中,用戶預先下載應用軟件(即實現(xiàn)本發(fā)明的方法的應用軟件,當然還可將本發(fā)明的功能應用在其他軟件中使用)至移動終端,當用戶或是電量不足,或是網(wǎng)絡不佳,無法獲取準確定位和導航時,當前智能終端接收用戶指令開啟WiFiAware;在步驟S12中,智能終端通過WiFiAware底層探測功能對周圍開啟WiFiAware的其他智能終端進行探測;在步驟S13中,當智能終端探測到周圍存在開啟WiFiAware的其他智能終端時,則與周圍開啟WiFiAware的其它智能終端建立網(wǎng)絡連接。所述指令可以為觸摸指令,也可為用戶預設的快捷指令,包括按下某個功能按鍵,如音量鍵;在預設的時長內,連續(xù)搖動手機兩次以上,預設時長可以為3s,5s,10s,優(yōu)選的,預設時長為5s。所述周圍是指,以當前智能終端所在位置為中心,半徑為40~60m的圓形范圍內,或是邊長為70~100m的正方形范圍內。所述周圍開啟WiFiAware的其它智能終端的個數(shù)可以是一個也可以是多個。
作為較佳的實施例,圖3為圖1所述方法中步驟S2的具體流程圖,如圖所示,其包括步驟:
S21、當前智能終端通過WiFiAware的服務接口向支持輔助定位服務的其它智能終端發(fā)出獲取其位置的請求;
S22、當前智能終端獲取其它智能終端對所述位置請求的反饋信息,并對所述反饋信息進行解析;
S23、通過解析得到的內容確定其它智能終端的經(jīng)緯度信息,并計算出當前智能終端與其它智能終端的相對距離并存儲。
在步驟S21中,當前智能終端通過WiFiAware的服務接口訂閱輔助定位服務,監(jiān)聽附近是否有支持所述助定位服務的其它智能終端,如果監(jiān)聽到支持所述輔助定位服務的其它智能終端,則向其發(fā)送請求來獲取其位置信息。支持所述輔助定位服務的其它智能終端通過廣播接口(Publish接口),廣播自身的服務內容,所述服務內容中并不包含任何與智能終端用戶身份、年齡、性別等有關的私人信息,僅僅是通過所述服務內容表達該智能終端可以提供自身的位置信息,這樣能夠有效的保護提供位置信息的智能終端用戶的隱私安全和信息安全,便于更多的智能終端用戶將自身的位置信息進行廣播,有利于當前智能終端進行更準確的定位和導航。當然,當前智能終端和其它智能終端都可以進行位置信息的發(fā)送和接收。
在步驟S22中,當前智能終端獲取其它智能終端對所述位置請求的反饋信息,并對所述反饋信息進行解析;所述反饋信息包括提供反饋信息的其它智能終端的經(jīng)緯度信息、協(xié)議信息和WiFi傳輸模型等。提供反饋信息的其它智能終端首先獲取自身的經(jīng)緯度信息,獲取所述經(jīng)緯度信息的過程為,所述提供反饋信息的其它智能終端首先讀取自身的位置信息,并判斷所述位置信息是否為較新的位置信息,當是時,則直接通過WiFiAware將所述位置信息及所訴位置信息的獲取方式(衛(wèi)星信息類型或是網(wǎng)絡信息類型)發(fā)送給當前智能終端;當否時,則提供反饋信息的其它智能終端首先申請衛(wèi)星定位來獲取自身位置信息,如果獲取成功,則首先標記為衛(wèi)星數(shù)據(jù)類型,然后將所述位置信息及位置信息的獲取方式通過WiFiAware發(fā)送給當前智能終端;如果衛(wèi)星定位無法請求成功,則重新請求網(wǎng)絡位置信息,如果獲取成功,則首先把位置信息標記為網(wǎng)絡信息類型,打包后將所述位置信息及位置信息的獲取方式通過WiFiAware發(fā)送給當前智能終端。如果網(wǎng)絡位置信息和衛(wèi)星位置信息都無法獲取,則直接回復無信息數(shù)據(jù)給當前智能終端。所述較新的位置信息是指,讀取位置信息時刻之前一定時長內提供反饋信息的其它智能終端獲取的自身位置信息,所述一定時長可以為12h、24h、48h。
在步驟S23中,當前智能終端通過解析得到的內容確定其它智能終端的經(jīng)緯度信息,并計算出當前智能終端與其它智能終端的相對距離并存儲。此時,所述其它智能終端即為提供反饋信息的其它智能終端。根據(jù)其他智能終端反饋的信息中是否存在協(xié)議時間,采用不同的方法計算當前智能終端與其它智能終端的相對距離。如果其它智能終端反饋的信息攜帶了802.11mc協(xié)議時間信息,則根據(jù)協(xié)議的RTT時間來計算當前智能終端與其它智能終端之間的距離。其中,RTT時間 = 當前時間 - 數(shù)據(jù)包中時間戳選項的回顯時間,所述時間戳回顯時間是某個數(shù)據(jù)包發(fā)出去的時間,已知數(shù)據(jù)包的接收時間(當前時間)和發(fā)送時間(回顯時間),就可以得到RTT時間的一個測量值。通過RTT時間計算距離的方式需要移動終端的芯片廠商來實現(xiàn),并通過應用調用相應接口獲得。如果其它智能終端反饋的信息未攜帶上述RTT時間信息,則通過讀取其它智能終端的Rssi信號強度值的方式,根據(jù)所述Rssi信號強度值計算出當前智能終端與它智能終端之間的相對距離。該過程主要采用WiFi傳輸?shù)墓_模型公式d=10^((ABS(RSSI)-A)/(10*n))進行距離計算,其中A和n參數(shù)需要根據(jù)采樣計算得知。智能終端的應用會在手機等智能終端中存儲不同平臺芯片的經(jīng)驗值,如高通、博通、MTK等芯片,同時讀取終端本身的芯片類型,不同平臺芯片取不同的參數(shù)值。如果無法在應用存儲中找出和其它智能終端設備類型匹配的參數(shù)值,則使用默認經(jīng)驗參數(shù)值。在計算對應的參數(shù)值時,會根據(jù)實際情況多次取值,該取值次數(shù)可以用戶自行設置(如5、6、10等),也可以為寫默認值(如設置為5次),首先去除該模型得到的最高值和最低值,然后再進行平均求出對應值。針對其他移動終端的情況采用不同點的算法獲取距離信息的針對性更強,數(shù)據(jù)可信度跟高,避免了采用單一方法計算帶來的誤差。此外,采用多次測量,去掉最大值和最小值,并對其余數(shù)據(jù)取平均值的方法能夠有效避免計算誤差,提高計算結果的可靠性。
此外,按照其它智能終端獲取位置信息的不同方式,將所述位置信息進行分類存儲,并將其按照衛(wèi)星位置信息、網(wǎng)絡位置信息和無信息數(shù)據(jù)進行標記;而出當前智能終端與其它智能終端的相對距離只需對結果進行儲存,不需標記獲取該距離的具體方法。
作為較佳的實施例,圖4為圖1所述方法中步驟S3的具體流程圖,具體包括步驟:
S31、將已知量和未知量代入開放的地球表面距離計算公式,得到關于當前智能終端經(jīng)緯度信息的方程,其中,其它智能終端的經(jīng)緯度信息和當前智能終端與其它智能終端的相對距離為已知量,當前智能終端的經(jīng)緯度信息為未知量;
S32、采用牛頓迭代法計算出所述方程的最優(yōu)解。
在步驟S31中,首先對當前智能終端與其它智能終端的相對距離的大小進行判斷,此時,所述其它智能終端即為提供反饋信息的其它智能終端。??紤]到其它智能終端在當前智能終端周圍,其與當前智能終端的距離不遠,當當前智能終端與其它智能終端的相對距離小于預設的相對距離閾值時,則判定當前智能終端與其它智能終端在同一位置。所述相對距離閾值可以是智能終端默認值,如10m、20 m、40 m等,也可以是用戶根據(jù)自身所在位置的情況設定的,如在周圍環(huán)境復雜難找的情況下,則將所述相對距離閾值設置為較小值,如5 m、8 m等;如在較為周圍環(huán)境較為開闊的情況下,則將所述相對距離閾值設置為較大值,如25 m、50 m等。這樣能夠方便用戶以最快的方式確定自己的位置。
而當當前智能終端與其它智能終端的相對距離不小于預設的相對距離閾值時,則判定當前智能終端與其它智能終端不在同一位置,則需通過進一步計算確定當前智能終端的位置。此時,首先確定反饋位置信息的其它智能終端的個數(shù)。當反饋位置信息的其它智能終端的個數(shù)為1個時,則只能以其反饋的經(jīng)緯度信息,作為當前智能終端位置的粗略估計。當反饋位置信息的智能終端的個數(shù)為多個時,則需對反饋位置信息的智能終端獲取經(jīng)緯度信息的方式進行判斷。如果當前智能終端獲取的經(jīng)緯度信息中,只有一個衛(wèi)星位置信息,則需要使用取得的網(wǎng)絡位置信息作為已知參數(shù)來進行計算。如果當前智能終端獲取的經(jīng)緯度信息中,包含1個衛(wèi)星位置信息,和1個以上網(wǎng)絡位置信息時,則在1個以上網(wǎng)絡位置信息中選擇1個網(wǎng)絡位置信息,并剔除掉其它的網(wǎng)絡位置信息,采用獲取的1個衛(wèi)星位置信息和1個網(wǎng)絡位置信息為已知參數(shù)來進行計算。如果當前智能終端獲取的經(jīng)緯度信息中,包含2個以上的衛(wèi)星位置信息,則剔除掉已獲取的網(wǎng)絡位置信息,并采用獲取的所有衛(wèi)星位置信息為已知參數(shù)來進行計算。
在計算過程中,已知量為其它智能終端的經(jīng)緯度信息和當前智能終端與其它智能終端的相對距離,未知量為當前智能終端的經(jīng)緯度信息為未知量,將已知量和未知量帶入開放的地球表面距離計算公式。其中,當前智能終端的經(jīng)緯度坐標為(x, y), 其它智能終端的經(jīng)緯度信息的經(jīng)緯度坐標為(LonB,LatB),d為計算出的當前智能終端與其它智能終端的相對距離,R為地球半徑,C為弧度,且
。
將其它智能終端的經(jīng)緯度信息及當前智能終端與其它智能終端的相對距離帶入上述兩個方程,可列出以下方程組,
在步驟S32中,采用牛頓迭代法計算出所述方程的最優(yōu)解。在求解的過程中,首先取出一個方程組,給定一組初始值x0,y0使方程組可以為0。設定自定義迭代次數(shù)N,自定義誤差為σ然后根據(jù)牛頓迭代法公式列出方程組的雅克比矩陣,求出雅克比矩陣的逆矩陣,最后利用牛頓迭代法計算出求出最優(yōu)解。所述迭代次數(shù)可以是智能終端自身默認的N=15,也可以是用戶設置的N=13,自定義誤差以是智能終端自身默認的σ=10-4,也可以是用戶設置的σ=10-6。最后,獲得較為合適的經(jīng)緯度的逼近值,足以幫助當前智能終端進行準確定位和導航。
基于上述方法,本發(fā)明還提供一種基于WiFiAware的輔助定位系統(tǒng),如圖5所示,其包括:
連接模塊100,用于當前智能終端接收用戶指令開啟WiFiAware,并與周圍開啟WiFiAware的其它智能終端建立連接;
獲取解析模塊200,用于獲取其它智能終端的經(jīng)緯度信息,并計算出當前智能終端與其它智能終端的相對距離;
計算模塊300,用于通過其它智能終端的經(jīng)緯度信息和當前智能終端與其它智能終端的相對距離計算出當前智能終端的經(jīng)緯度信息。
進一步的,如圖6所示,所述連接模塊100包括:
指令接收單元110,用于當前智能終端接收用戶指令開啟WiFiAware;
探測單元120,用于當前智能終端探測周圍是否存在開啟WiFiAware的其他智能終端;
連接單元130,用于當探測到周圍存在開啟WiFiAware的其他智能終端時,則與周圍開啟WiFiAware的其它智能終端建立網(wǎng)絡連接。
進一步的,如圖7所示,所述獲取解析模塊200包括:
位置請求單元210,用于當前智能終端通過WiFiAware的服務接口向支持輔助定位服務的其它智能終端發(fā)出獲取其位置的請求;
信息反饋單元220,用于當前智能終端獲取其它智能終端對所述位置請求的反饋信息,并對所述反饋信息進行解析;
計算存儲單元230,用于通過解析得到的內容確定其它智能終端的經(jīng)緯度信息,并計算出當前智能終端與其它智能終端的相對距離并存儲。
更進一步的,如圖8所示,所述計算模塊300包括:
方程建立單元310,用于將已知量和未知量代入開放的地球表面距離計算公式,得到關于當前智能終端經(jīng)緯度信息的方程,其中,其它智能終端的經(jīng)緯度信息和當前智能終端與其它智能終端的相對距離為已知量,當前智能終端的經(jīng)緯度信息為未知量;
求解單元320,用于采用牛頓迭代法計算出所述方程的最優(yōu)解。
綜上所述,本發(fā)明通過WiFiAware獲取的其它智能終端的經(jīng)緯度信息和當前智能終端與其它智能終端的相對距離計算出當前智能終端的經(jīng)緯度信息,能夠使當前智能終端在沒有網(wǎng)絡信號或衛(wèi)星信號的條件下,通過WiFiAware獲取較為準確的當前智能終端的定位信息,方便進一步獲得有效的導航信息。
應當理解的是,本發(fā)明的應用不限于上述的舉例,對本領域普通技術人員來說,可以根據(jù)上述說明加以改進或變換,所有這些改進和變換都應屬于本發(fā)明所附權利要求的保護范圍。