一種確定終端運動方向的方法和裝置制造方法
【專利摘要】本發明公開了一種確定終端運動方向的方法和裝置,屬于定位【技術領域】。該方法包括:根據第四加速度值、第五加速度值和第六加速度值,確定出終端在當前計步周期中運動對應的第一主坐標軸方向;獲取終端在第一主坐標軸方向上的第一相關值,以及終端在離當前時間最近的上一個計步周期中的運動方向和終端對應的第二主坐標軸方向上的第二相關值;根據第一相關值、第二相關值和終端在離當前時間最近的上一個計步周期中的運動方向,確定終端在當前計步周期中的運動方向。該裝置包括:第一獲取模塊,第一計算模塊,第一確定模塊,第二獲取模塊和第二確定模塊。本發明根據終端的加速度值確定終端的運動方向,提高了確定的準確度。
【專利說明】一種確定終端運動方向的方法和裝置
【技術領域】
[0001]本發明涉及定位【技術領域】,特別涉及一種確定終端運動方向方法和裝置。
【背景技術】
[0002]目前,隨著衛星導航技術的快速發展,具備導航功能的終端已經普及到每個用戶的生活中。當用戶出行時,可以通過終端中的導航功能獲取終端的運動方向,根據終端的運動方向為用戶指引方向。
[0003]現有技術中提供了一種確定終端運動方向的方法,可以為:終端獲取終端當前姿態相對于水平面的的俯仰角和翻滾角;根據該俯仰角和翻滾角計算終端的航向角,該航向角為終端與地球北極之間的夾角;如果該航向角在0° -180°范圍內,確定出終端的運動方向為向前,如果該航向角在-180° -0°范圍內,確定出終端的運動方向為向后。
[0004]在實現本發明的過程中,發明人發現現有技術至少存在以下問題:
[0005]現有技術中是根據終端的俯仰角和翻滾角確定終端的運動方向,然而如果終端的運動方向發生變化,而終端的俯仰角和翻滾角不發生變化,確定的終端的運動方向將出現錯誤;例如,用戶手持終端向后退,由于終端的俯仰角和翻滾角沒有發生變化,此時確定出終端的運動方向還是向前,從而確定出的終端的運動方向出現錯誤。
【發明內容】
[0006]為了使解決現有技術的問題,本發明提供了一種確定終端的運動方向的方法和裝置。技術方案如下:
[0007]一方面,本發明提供了一種確定終端的運動方向的方法,所述方法包括:
[0008]當檢測到用戶行進過程中完成一個計步周期時,獲取當前計步周期中終端在第一橫坐標軸上對應的第一加速度值,所述終端在第一縱坐標軸上對應的第二加速度值,以及所述終端在第一豎坐標軸上對應的第三加速度值,所述第一橫坐標軸、所述第一縱坐標軸和所述第一豎坐標軸分別為所述終端的內置坐標系的橫坐標軸、縱坐標軸和豎坐標軸;
[0009]根據所述第一加速度值、所述第二加速度值和所述第三加速度值,分別計算所述終端在第二橫坐標軸上對應的第四加速度值,所述終端在第二縱坐標軸上對應的第五加速度值,以及所述終端在第二豎坐標軸上對應的第六加速度值,所述第二橫坐標軸、所述第二縱坐標軸和所述第二豎坐標軸分別為地理坐標系的橫坐標軸、縱坐標軸和豎坐標軸;
[0010]根據所述第四加速度值、所述第五加速度值和所述第六加速度值,確定出所述終端在所述當前計步周期中運動對應的第一主坐標軸方向;
[0011]獲取所述終端在所述第一主坐標軸方向上的第一相關值,以及所述終端在離當前時間最近的上一個計步周期中的運動方向和所述終端對應的第二主坐標軸方向上的第二相關值,所述第一相關值為所述第一主坐標軸上的加速度與所述第六加速度值之間的相關值;
[0012]根據所述第一相關值、所述第二相關值和所述終端在離當前時間最近的上一個計步周期中的運動方向,確定所述終端在所述當前計步周期中的運動方向。
[0013]優選的,所述方法還包括:
[0014]計算所述終端當前姿態相對于水平面的俯仰角和翻滾角;
[0015]根據所述俯仰角和所述翻滾角計算所述終端當前姿態的方位角;
[0016]獲取所述電子羅盤輸入的方向值;
[0017]根據所述終端在所述當前計步周期中的運動方向、所述方位角和所述方向值,計算所述終端的航向角;
[0018]根據所述終端的航向角顯示所述終端在所述當前計步周期中的運動方向。
[0019]優選的,所述根據所述終端在所述當前計步周期中的運動方向、所述方位角和所述方向值,計算所述終端的航向角,包括:
[0020]如果所述終端在所述當前計步周期中的運動方向為向前,計算所述方向值與所述方位角的差,得到第一差值,將所述第一差值作為所述終端的航向角;
[0021]如果所述終端的運動方向為向后,計算所述方向值、所述方位角與180°的差,得到第二差值,將所述第二差值作為所述終端的航向角。
[0022]優選的,所述根據所述第四加速度值、所述第五加速度值和所述第六加速度值,確定出所述終端在所述當前計步周期中運動對應的第一主坐標軸方向,包括:
[0023]計算所述第四加速度值與所述第六加速度值之間的相關值,所述第五加速度值與所述第六加速度值之間的相關值;
[0024]如果所述第四加速度值與所述第六加速度值之間的相關值大于所述第五加速度值與所述第六加速度值之間的相關值,確定出所述終端在所述當前計步周期中運動對應的第一主坐標軸方向為所述第二橫坐標軸方向;
[0025]如果所述第四加速度值與所述第六加速度值之間的相關值不大于所述第五加速度值與所述第六加速度值之間的相關值,確定出所述終端在所述當前計步周期中運動對應的第一主坐標軸方向為所述第二縱坐標軸方向。
[0026]優選的,所述根據所述第一相關值、所述第二相關值和所述終端在離當前時間最近的上一個計步周期中的運動方向,確定所述終端在所述當前計步周期中的運動方向,包括:
[0027]判斷所述第一相關值的符號和所述第二相關值的符號是否相同;
[0028]如果相同,確定出所述終端在所述當前計步周期中的運動方向為所述終端在離當前時間最近的上一個計步周期中的運動方向;
[0029]如果不相同,確定出所述終端在所述當前計步周期中的運動方向為所述終端在離當前時間最近的上一個計步周期中的運動方向的相反方向。
[0030]另一方面,本發明提供了一種確定終端的運動方向的裝置,所述裝置包括:
[0031]第一獲取模塊,用于當檢測到用戶行進過程中完成一個計步周期時,獲取當前計步周期中終端在第一橫坐標軸上對應的第一加速度值,所述終端在第一縱坐標軸上對應的第二加速度值,以及所述終端在第一豎坐標軸上對應的第三加速度值,所述第一橫坐標軸、所述第一縱坐標軸和所述第一豎坐標軸分別為所述終端的內置坐標系的橫坐標軸、縱坐標軸和豎坐標軸;
[0032]第一計算模塊,用于根據所述第一加速度值、所述第二加速度值和所述第三加速度值,分別計算所述終端在第二橫坐標軸上對應的第四加速度值,所述終端在第二縱坐標軸上對應的第五加速度值,以及所述終端在第二豎坐標軸上對應的第六加速度值,所述第二橫坐標軸、所述第二縱坐標軸和所述第二豎坐標軸分別為地理坐標系的橫坐標軸、縱坐標軸和豎坐標軸;
[0033]第一確定模塊,用于根據所述第四加速度值、所述第五加速度值和所述第六加速度值,確定出所述終端在所述當前計步周期中運動對應的第一主坐標軸方向;
[0034]第二獲取模塊,用于獲取所述終端在所述第一主坐標軸方向上的第一相關值,以及所述終端在離當前時間最近的上一個計步周期中的運動方向和所述終端對應的第二主坐標軸方向上的第二相關值,所述第一相關值為所述第一主坐標軸上的加速度與所述第六加速度值之間的相關值;
[0035]第二確定模塊,用于根據所述第一相關值、所述第二相關值和所述終端在離當前時間最近的上一個計步周期中的運動方向,確定所述終端在所述當前計步周期中的運動方向。
[0036]優選的,所述裝置還包括:
[0037]第二計算模塊,用于計算所述終端當前姿態相對于水平面的俯仰角和翻滾角;
[0038]第三計算模塊,用于根據所述俯仰角和所述翻滾角計算所述終端當前姿態的方位角;
[0039]第三獲取模塊,用于獲取所述電子羅盤輸入的方向值;
[0040]第四計算模塊,用于根據所述終端在所述當前計步周期中的運動方向、所述方位角和所述方向值,計算所述終端的航向角;
[0041]顯示模塊,用于根據所述終端的航向角顯示所述終端在所述當前計步周期中的運動方向。
[0042]優選的,所述第四計算模塊,用于如果所述終端在所述當前計步周期中的運動方向為向前,計算所述方向值與所述方位角的差,得到第一差值,將所述第一差值作為所述終端的航向角;
[0043]如果所述終端的運動方向為向后,計算所述方向值、所述方位角與180°的差,得到第二差值,將所述第二差值作為所述終端的航向角。
[0044]優選的,所述第一確定模塊,包括:
[0045]計算單元,用于計算所述第四加速度值與所述第六加速度值之間的相關值,所述第五加速度值與所述第六加速度值之間的相關值;
[0046]第一確定單元,用于如果所述第四加速度值與所述第六加速度值之間的相關值大于所述第五加速度值與所述第六加速度值之間的相關值,確定出所述終端在所述當前計步周期中運動對應的第一主坐標軸方向為所述第二橫坐標軸方向;
[0047]第二確定單元,用于如果所述第四加速度值與所述第六加速度值之間的相關值不大于所述第五加速度值與所述第六加速度值之間的相關值,確定出所述終端在所述當前計步周期中運動對應的第一主坐標軸方向為所述第二縱坐標軸方向。
[0048]優選的,所述第二確定模塊,包括:
[0049]判斷單元,用于判斷所述第一相關值的符號和所述第二相關值的符號是否相同;
[0050]第三確定單元,用于如果相同,確定出所述終端在所述當前計步周期中的運動方向為所述終端在離當前時間最近的上一個計步周期中的運動方向;
[0051]第四確定單元,用于如果不相同,確定出所述終端在所述當前計步周期中的運動方向為所述終端在離當前時間最近的上一個計步周期中的運動方向的相反方向。
[0052]在本發明實施例中,當檢測到用戶行進過程中完成一個計步周期時,獲取當前計步周期中終端在第一橫坐標軸上對應的第一加速度值,終端在第一縱坐標軸上對應的第二加速度值,以及終端在第一豎坐標軸上對應的第三加速度值;根據第一加速度值、第二加速度值和第三加速度值,分別計算終端在第二橫坐標軸上對應的第四加速度值,終端在第二縱坐標軸上對應的第五加速度值,以及終端在第二豎坐標軸上對應的第六加速度值;根據第四加速度值、第五加速度值和第六加速度值,確定出終端在當前計步周期中運動對應的第一主坐標軸方向;獲取終端在第一主坐標軸方向上的第一相關值,以及終端在離當前時間最近的上一個計步周期中的運動方向和終端對應的第二主坐標軸方向上的第二相關值;根據第一相關值、第二相關值和終端在離當前時間最近的上一個計步周期中的運動方向,確定終端在當前計步周期中的運動方向,本發明中根據加速度值確定終端的運動方向,提高了確定終端運動方向的準確性。
【專利附圖】
【附圖說明】
[0053]圖1是本發明實施例1提供的一種確定終端的運動方向的方法流程圖;
[0054]圖2是本發明實施例2提供的一種確定終端的運動方向的方法流程圖;
[0055]圖3是本發明實施例3提供的一種確定終端的運動方向的裝置結構示意圖。
【具體實施方式】
[0056]為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方式作進一步地詳細描述。
[0057]實施例1
[0058]本發明實施例提供了一種確定終端的運動方向的方法,參見圖1,其中,該方法包括:
[0059]步驟101:當檢測到用戶行進過程中完成一個計步周期時,獲取當前計步周期中終端在第一橫坐標軸上對應的第一加速度值,終端在第一縱坐標軸上對應的第二加速度值,以及終端在第一豎坐標軸上對應的第三加速度值,第一橫坐標軸、第一縱坐標軸和第一豎坐標軸分別為終端的內置坐標系的橫坐標軸、縱坐標軸和豎坐標軸;
[0060]步驟102:根據第一加速度值、第二加速度值和第三加速度值,分別計算終端在第二橫坐標軸上對應的第四加速度值,終端在第二縱坐標軸上對應的第五加速度值,以及終端在第二豎坐標軸上對應的第六加速度值,第二橫坐標軸、第二縱坐標軸和第二豎坐標軸分別為地理坐標系的橫坐標軸、縱坐標軸和豎坐標軸;
[0061]步驟103:根據第四加速度值、第五加速度值和第六加速度值,確定出終端在當前計步周期中運動對應的第一主坐標軸方向;
[0062]步驟104:獲取終端在第一主坐標軸方向上的第一相關值,以及終端在離當前時間最近的上一個計步周期中的運動方向和終端對應的第二主坐標軸方向上的第二相關值,第一相關值為第一主坐標軸上的加速度與第六加速度值之間的相關值;
[0063]步驟105:根據第一相關值、第二相關值和終端在離當前時間最近的上一個計步周期中的運動方向,確定終端在當如計步周期中的運動方向。
[0064]在本發明實施例中,當檢測到用戶行進過程中完成一個計步周期時,獲取當前計步周期中終端在第一橫坐標軸上對應的第一加速度值,終端在第一縱坐標軸上對應的第二加速度值,以及終端在第一豎坐標軸上對應的第三加速度值;根據第一加速度值、第二加速度值和第三加速度值,分別計算終端在第二橫坐標軸上對應的第四加速度值,終端在第二縱坐標軸上對應的第五加速度值,以及終端在第二豎坐標軸上對應的第六加速度值;根據第四加速度值、第五加速度值和第六加速度值,確定出終端在當前計步周期中運動對應的第一主坐標軸方向;獲取終端在第一主坐標軸方向上的第一相關值,以及終端在離當前時間最近的上一個計步周期中的運動方向和終端對應的第二主坐標軸方向上的第二相關值;根據第一相關值、第二相關值和終端在離當前時間最近的上一個計步周期中的運動方向,確定終端在當如計步周期中的運動方向,本發明中根據加速度值確定終端的運動方向,彌補了用戶手持終端時終端位置與運動方向不一致時通過電子羅盤獲取到錯誤方向的缺陷,提高了定位的準確度和確定終端運動方向的準確性。
[0065]實施例2
[0066]本發明實施例提供了一種確定終端的運動方向的方法,參見圖2,其中,該方法包括:
[0067]步驟201:當檢測到用戶行進過程中完成一個計步周期時,獲取當前計步周期中終端在第一橫坐標軸上對應的第一加速度值,終端在第一縱坐標軸上對應的第二加速度值,以及終端在第一豎坐標軸上對應的第三加速度值;
[0068]在終端中內置坐標系,第一橫坐標軸、第一縱坐標軸和第一豎坐標軸分別為終端的內置坐標系的橫坐標軸、縱坐標軸和豎坐標軸。
[0069]在終端中為每個坐標軸設置一個加速度傳感器,該坐標軸上的加速度傳感器用于測量終端在運行過程中在該坐標軸方向上的加速度值。即,在終端中的第一橫坐標軸上設置第一加速度傳感器,該第一加速度傳感器用于測量終端在運動過程中在第一橫坐標軸方向上的加速度值;在終端中的第一縱坐標軸上設置第二加速度傳感器,該第二加速度傳感器用于測量終端在運行過程中在第一縱坐標軸方向上的加速度值;在終端中的第一豎坐標軸上設置第三加速度傳感器,該第三加速度傳感器用于測量終端在運動過程中在第一豎坐標軸方向上的加速度值。
[0070]當檢測到用戶行進過程中完成一個計步周期時,讀取第一加速度傳感器的值以獲取終端在第一橫坐標軸上對應的第一加速度值;讀取第二加速度傳感器的值以獲取終端在第一縱坐標軸上對應的第二加速度值;讀取第三加速度傳感器的值以獲取終端在第一豎坐標軸上對應的第三加速度值。
[0071]內置坐標系為以終端的中心點為原點,以終端的前方方向為橫坐標軸,以終端的右方方向為縱坐標軸,以終端的上方方向為豎坐標軸的坐標系。則第一橫坐標軸為終端的前方方向,第一縱坐標軸為終端的右方方向,第一豎坐標軸為終端的上方方向。
[0072]例如,終端可以為手機或者平板電腦等。
[0073]步驟202:根據第一加速度值、第二加速度值和第三加速度值,分別計算終端在第二橫坐標軸上對應的第四加速度值,終端在第二縱坐標軸上對應的第五加速度值,以及終端在第二豎坐標軸上對應的第六加速度值;
[0074]第二橫坐標軸、第二縱坐標軸和第二豎坐標軸分別為地理坐標系的橫坐標軸、縱坐標軸和豎坐標軸。
[0075]步驟202可以通過以下步驟⑴至⑷實現,包括:
[0076](I):計算終端當前姿態相對于水平面的俯仰角和翻滾角;
[0077]其中,俯仰角為終端中的第一橫坐標軸與水平面的夾角,翻滾角為終端中的第一縱坐標軸與水平面的夾角。
[0078]根據第一加速度值、第二加速度值和第三加速度值可以根據預設的公式計算終端當前姿態相對于水平面的俯仰角和翻滾角度。
[0079]具體地,根據第一加速度值、第二加速度值和第三加速度值,按照如下的公式(I)計算終端內置的坐標系中的第一橫坐標軸與水平面的夾角,即俯仰角β,以及根據第一加速度值、第二加速度值和第三加速度值,按照如下的公式(2)計算終端內置的坐標系中的第一縱坐標軸與水平面的夾角,即翻滾角a。
X
[0080]β =arcian I , ,( 1)
^/γ-+z-
Y
[0081]CC--1rcnn _=^2)
VX2+ Z2
[0082]其中,在公式(I)中,β為終端內置的坐標系中的第一橫坐標軸與水平面的夾角即俯仰角,在公式(2)中,α為終端內置的坐標系中的第一縱坐標軸與水平面的夾角即翻滾角,X為第一加速度值,Y為第二加速度值,Z為第三加速度值。
[0083](2):根據俯仰角、翻滾角、第一加速度值、第二加速度值和第三加速度值,計算終端在第二橫坐標軸上對應的第四加速度值;
[0084]根據俯仰角、翻滾角、第一加速度值、第二加速度值和第三加速度值,可以采用以下公式(3)計算在第二橫坐標軸上對應的第四加速度值ΧΗ。
[0085]Xh = X cos β +Y sin β sin α -Z cos β sin α (3)
[0086]其中,X為第一加速度值,Y為第二加速度值,Z為第三加速度值,β為俯仰角,α為翻滾角。
[0087](3):根據俯仰角、第二加速度值和第三加速度值,計算終端在第二縱坐標軸上對應的第五加速度值;
[0088]根據俯仰角、第二加速度值和第三加速度值,可以采用以下公式(4)計算終端在第二縱坐標軸上對應的第五加速度值ΥΗ。
[0089]Yh = Y cos β +Z sin β (4)
[0090]其中,Y為第二加速度值,Z為第三加速度值,β為俯仰角。
[0091](4):根據第一加速度值、第二加速度值、第三加速度值、第四加速度值和第五加速度值,計算終端在第二豎坐標軸上對應的第六加速度值;
[0092]根據第一加速度值、第二加速度值、第三加速度值、第四加速度值和第五加速度值,可以采用以下公式(5)計算終端在第二豎坐標軸上對應的第六加速度值ΖΗ。
[0093]Zh = ^jx2 +Y2 +Z2-Xl-Y^(5)
[0094]其中,X為第一加速度值,Y為第二加速度值,Z為第三加速度值,Xh為第四加速度值,Yh為第五加速度值。
[0095]步驟203:根據第四加速度值、第五加速度值和第六加速度值,確定出終端在當前計步周期中運動對應的第一主坐標軸方向;
[0096]步驟203可以通過第一種方式實現或者第二種方式實現,對于第一種實現方式,步驟203可以通過以下步驟(I)至(3)實現,包括:
[0097](I):計算第四加速度值與第六加速度值之間的相關值,第五加速度值與第六加速度值之間的相關值;
[0098]具體地,根據第四加速度值和第六加速度值,按照現有的相關運算算法,計算第四加速度值與第六加速度值之間的相關值;根據第五加速度值和第六加速度值,按照現有的相關運算算法,計算第五加速度值與第六加速度值之間的相關值。
[0099](2):如果第四加速度值與第六加速度值之間的相關值大于第五加速度值與第六加速度值之間的相關值,確定出終端在當前計步周期中運動對應的第一主坐標軸方向為第二橫坐標軸方向;
[0100]如果第四加速度值與第六加速度值之間的相關值大于第五加速度值與第六加速度值之間的相關值,確定出終端在當前計步周期中運動對應的第一主坐標軸的方向為第四加速度值對應的方向,也即終端在當前計步周期中運動對應的第一主坐標軸方向為第二橫坐標軸方向。
[0101](3):如果第四加速度值與第六加速度值之間的相關值不大于第五加速度值與第六加速度值之間的相關值,確定出終端在當前計步周期中運動對應的第一主坐標軸方向為第二縱坐標軸方向。
[0102]如果第四加速度值與第六加速度值之間的相關值不大于第五加速度值與第六加速度值之間的相關值,確定出終端在當前計步周期中運動對應的第一主坐標軸的方向為第五加速度值對應的方向,也即終端在當前計步周期中運動對應的第一主坐標軸方向為第二縱坐標軸方向。
[0103]對于第二種實現方式,步驟203可以通過以下步驟(A)至(G)實現,包括:
[0104](A):獲取終端在離當前時間最近的上一個計步周期中第二橫坐標軸上的第七加速度值和第二縱坐標軸上的第八加速度值,以及終端在離當前時間最近的下一個計步周期中第二橫坐標軸上的第九加速度值和第二縱坐標軸上的第十加速度值;
[0105]在每個計步周期中,終端計算終端在第二橫坐標軸上的加速度值和終端在第二縱坐標軸上的加速度值,并存儲計步周期、終端在第二橫坐標軸上的加速度值以及終端在第二縱坐標軸上的加速度值的對應關系。
[0106]在本步驟中,根據離當前時間最近的上一個計步周期,從計步周期、終端在第二橫坐標軸上的加速度值以及終端在第二縱坐標軸上的加速度值的對應關系中獲取終端在離當前時間最近的上一個計步周期中終端在第二橫坐標軸上的第七加速度值和終端在第二縱坐標軸上的第八加速度值;根據離當前時間最近的下一個計步周期,從計步周期、終端在第二橫坐標軸上的加速度值以及終端在第二縱坐標軸上的加速度值的對應關系中獲取終端在離當前時間最近的下一個計步周期中終端在第二橫坐標軸上的第九加速度值和終端在第二縱坐標軸上的第十加速度值。
[0107](B):分別計算第七加速度值與第六加速度值之間的相關值,第四加速度值與第六加速度值之間的相關值,以及第九加速度值與第六加速度值之間的相關值;
[0108]具體地,根據第七加速度值和第六加速度值,按照現有的相關運算算法,計算第七加速度值與第六加速度值之間的相關值;根據第四加速度值和第六加速度值,按照現有的相關運算算法,計算第四加速度值與第六加速度值之間的相關值;根據第九加速度值和第六加速度值,按照現有的相關運算算法,計算第九加速度值和第六加速度值之間的相關值。
[0109](C):從第七加速度值與第六加速度值之間的相關值、第四加速度值與第六加速度值之間的相關值以及第九加速度值與第六加速度值之間的相關值中選擇最大的相關值,確定為第一最大相關值;
[0110](D):分別計算第八加速度值與第六加速度值之間的相關值,第五加速度值與第六加速度值之間的相關值,以及第十加速度值與第六加速度值之間的相關值;
[0111]具體地,根據第八加速度值和第六加速度值,按照現有的相關運算算法,計算第八加速度值與第六加速度值之間的相關值;根據第五加速度值和第六加速度值,按照現有的相關運算算法,計算第五加速度值與第六加速度值之間的相關值;根據第十加速度值和第六加速度值,按照現有的相關運算算法,計算第十加速度值和第六加速度值之間的相關值。
[0112](E):從第八加速度值與第六加速度值之間的相關值、第五加速度值與第六加速度值之間的相關值,以及第十加速度值與第六加速度值之間的相關值中選擇最大的相關值,確定為第二最大相關值;
[0113](F):如果第一最大相關值大于第二最大相關值,確定出終端在當前計步周期中運動對應的第一主坐標軸方向為第二橫坐標軸方向;
[0114]如果第一最大相關值大于第二最大相關值,確定出終端在當前計步周期中運動對應的第一主坐標軸的方向為第四加速度值對應的方向,也即終端在當前計步周期中運動對應的第一主坐標軸方向為第二橫坐標軸方向。
[0115](G):如果第一最大相關值不大于第二最大相關值,確定出終端在當前計步周期中運動對應的第一主坐標軸方向為第二縱坐標軸方向。
[0116]如果第一最大相關值不大于第二最大相關值,確定出終端在當前計步周期中運動對應的第一主坐標軸的方向為第五加速度值對應的方向,也即終端在當前計步周期中運動對應的第一主坐標軸方向為第二縱坐標軸方向。
[0117]步驟204:獲取終端在第一主坐標軸方向上的第一相關值,以及終端在離當前時間最近的上一個計步周期中的運動方向和終端對應的第二主坐標軸方向上的第二相關值,第一相關值為第一主坐標軸上的加速度與第六加速度值之間的相關值;
[0118]如果第一主坐標軸方向為第二橫坐標軸方向,貝1J第一相關值為第四加速度值與第六加速度值之間的相關值;如果第一主坐標軸方向為第二縱坐標軸方向,貝1J第一相關值為第五加速度值與第六加速度值之間的相關值。
[0119]在每個計步周期中,終端計算確定終端的運動方向和終端對應的王坐標軸方向上的相關值,并存儲計步周期、終端的運動方向和終端對應的主坐標軸方向上的相關值的對應關系。
[0120]在本步驟中,根據離當前時間最近的上一個計步周期,從計步周期、終端的運動方向和終端對應的主坐標軸方向上的相關值的對應關系中獲取終端在離當前時間最近的上一個計步周期中的運動方向和終端對應的第二主坐標軸方向上的第二相關值。
[0121]步驟205:根據第一相關值、第二相關值和終端在離當前時間最近的上一個計步周期中的運動方向,確定終端在當如計步周期中的運動方向;
[0122]具體地,判斷第一相關值的符號和第二相關值的符號是否相同;如果相同,確定出終端的運動方向沒有發生變化,終端在當前計步周期中的運動方向和終端在離當前時間最近的上一個計步周期中的運動方向相同,也即終端在當前計步周期中的運動方向為終端在離當前時間最近的上一個計步周期中的運動方向;如果不相同,確定出終端的運動方向發生了變化,終端在當前計步周期中的運動方向和終端在離當前時間最近的上一個計步周期中的運動方向不相同,也即終端在當前計步周期中的運動方向為終端在離當前時間最近的上一個計步周期中的運動方向的相反方向。
[0123]由于終端在運動過程中,如果運動方向發生變化,則相關值的符號會發生變化,因此通過判斷第一相關值和第二相關值確定出終端的運動方向是否發生變化。
[0124]例如,第一相關值為-2,第二相關值為-8,終端在離當前時間最近的上一個計步周期中的運動方向為向前;則第一相關值的符號為第二相關值的符號為確定出第一相關值的符號和第二相關值的符號相同,確定出終端在當前計步周期中的運動方向和終端在離當前時間最近的上一個計步周期中的運動方向相同,也即終端在當前計步周期中的運動方向也為向前。
[0125]進一步地,獲取每個計步周期中的最大相關值,將每個計步周期中的最大相關值進行平均濾波,終端在運動過程中,最大相關值在穩定前進或者穩定后退時分別趨于不同的穩定值,因此,在終端運動方向發生變化時,最大相關值會發生一個變化,因此,根據最大相關值的符號確定終端在當前計步周期中的運動方向。
[0126]步驟206:計算終端當前姿態的方位角;
[0127]具體地,根據俯仰角和翻滾角,可以采用以下公式(6)計算終端當前姿態的方位角Θ。
β
[0128]Θ = arclan — (6)
a
[0129]其中,β為俯仰角,α為翻滾角。
[0130]步驟207:根據終端在當前計步周期中的運動方向、方位角和方向值,計算終端的航向角;
[0131]如果終端在當前計步周期中的運動方向為向前,獲取終端中的電子羅盤輸出的方向值,計算方向值與方位角的差,得到第一差值,將第一差值作為終端的航向角;
[0132]如果終端的運動方向為向后,獲取終端中的電子羅盤輸出的方向值,計算方向值、方位角與180°的差,得到第二差值,將第二差值作為終端的航向角。
[0133]在本發明實施例中,根據終端的運動方向確定終端的航向角,提高了航向角的準確性。
[0134]步驟208:顯示終端的航向角和終端在當前計步周期中的運行方向。
[0135]顯示終端的航向角和終端在當前計步周期中的運動方向,從而為用戶提供導航服務。
[0136]在本發明實施例中,當檢測到用戶行進過程中完成一個計步周期時,獲取當前計步周期中終端在第一橫坐標軸上對應的第一加速度值,終端在第一縱坐標軸上對應的第二加速度值,以及終端在第一豎坐標軸上對應的第三加速度值;根據第一加速度值、第二加速度值和第三加速度值,分別計算終端在第二橫坐標軸上對應的第四加速度值,終端在第二縱坐標軸上對應的第五加速度值,以及終端在第二豎坐標軸上對應的第六加速度值;根據第四加速度值、第五加速度值和第六加速度值,確定出終端在當前計步周期中運動對應的第一主坐標軸方向;獲取終端在第一主坐標軸方向上的第一相關值,以及終端在離當前時間最近的上一個計步周期中的運動方向和終端對應的第二主坐標軸方向上的第二相關值;根據第一相關值、第二相關值和終端在離當前時間最近的上一個計步周期中的運動方向,確定終端在當如計步周期中的運動方向,本發明中根據加速度值確定終端的運動方向,彌補了用戶手持終端時終端位置與運動方向不一致時通過電子羅盤獲取到錯誤方向的缺陷,提高了定位的準確度和確定終端運動方向的準確性。
[0137]實施例3
[0138]本發明實施例提供了一種確定終端的運動方向的裝置,參見圖3,其中,該裝置包括:
[0139]第一獲取模塊301,用于當檢測到用戶行進過程中完成一個計步周期時,獲取當前計步周期中終端在第一橫坐標軸上對應的第一加速度值,終端在第一縱坐標軸上對應的第二加速度值,以及終端在第一豎坐標軸上對應的第三加速度值,第一橫坐標軸、第一縱坐標軸和第一豎坐標軸分別為終端的內置坐標系的橫坐標軸、縱坐標軸和豎坐標軸;
[0140]第一計算模塊302,用于根據第一加速度值、第二加速度值和第三加速度值,分別計算終端在第二橫坐標軸上對應的第四加速度值,終端在第二縱坐標軸上對應的第五加速度值,以及終端在第二豎坐標軸上對應的第六加速度值,第二橫坐標軸、第二縱坐標軸和第二豎坐標軸分別為地理坐標系的橫坐標軸、縱坐標軸和豎坐標軸;
[0141]第一確定模塊303,用于根據第四加速度值、第五加速度值和第六加速度值,確定出終端在當前計步周期中運動對應的第一主坐標軸方向;
[0142]第二獲取模塊304,用于獲取終端在第一主坐標軸方向上的第一相關值,以及終端在離當前時間最近的上一個計步周期中的運動方向和終端對應的第二主坐標軸方向上的第二相關值,第一相關值為第一主坐標軸上的加速度與第六加速度值之間的相關值;
[0143]第二確定模塊305,用于根據第一相關值、第二相關值和終端在離當前時間最近的上一個計步周期中的運動方向,確定終端在當前計步周期中的運動方向。
[0144]優選的,裝置還包括:
[0145]第二計算模塊,用于計算終端當前姿態相對于水平面的俯仰角和翻滾角;
[0146]第三計算模塊,用于根據俯仰角和翻滾角計算終端當前姿態的方位角;
[0147]第三獲取模塊,用于獲取電子羅盤輸入的方向值;
[0148]第四計算模塊,用于根據終端在當前計步周期中的運動方向、方位角和方向值,計算終端的航向角;
[0149]顯示模塊,用于根據終端的航向角顯示終端在當前計步周期中的運動方向。
[0150]優選的,第四計算模塊,用于如果終端在當前計步周期中的運動方向為向前,計算方向值與方位角的差,得到第一差值,將第一差值作為終端的航向角;
[0151]如果終端的運動方向為向后,計算方向值、方位角與180°的差,得到第二差值,將第二差值作為終端的航向角。
[0152]優選的,第一確定模塊303,包括:
[0153]計算單元,用于計算第四加速度值與第六加速度值之間的相關值,第五加速度值與第六加速度值之間的相關值;
[0154]第一確定單元,用于如果第四加速度值與第六加速度值之間的相關值大于第五加速度值與第六加速度值之間的相關值,確定出終端在當前計步周期中運動對應的第一主坐標軸方向為第二橫坐標軸方向;
[0155]第二確定單元,用于如果第四加速度值與第六加速度值之間的相關值不大于第五加速度值與第六加速度值之間的相關值,確定出終端在當前計步周期中運動對應的第一主坐標軸方向為第二縱坐標軸方向。
[0156]優選的,第二確定模塊305,包括:
[0157]判斷單元,用于判斷第一相關值的符號和第二相關值的符號是否相同;
[0158]第三確定單元,用于如果相同,確定出終端在當前計步周期中的運動方向為終端在離當前時間最近的上一個計步周期中的運動方向;
[0159]第四確定單元,用于如果不相同,確定出終端在當前計步周期中的運動方向為終端在離當前時間最近的上一個計步周期中的運動方向的相反方向。
[0160]在本發明實施例中,當檢測到用戶行進過程中完成一個計步周期時,獲取當前計步周期中終端在第一橫坐標軸上對應的第一加速度值,終端在第一縱坐標軸上對應的第二加速度值,以及終端在第一豎坐標軸上對應的第三加速度值;根據第一加速度值、第二加速度值和第三加速度值,分別計算終端在第二橫坐標軸上對應的第四加速度值,終端在第二縱坐標軸上對應的第五加速度值,以及終端在第二豎坐標軸上對應的第六加速度值;根據第四加速度值、第五加速度值和第六加速度值,確定出終端在當前計步周期中運動對應的第一主坐標軸方向;獲取終端在第一主坐標軸方向上的第一相關值,以及終端在離當前時間最近的上一個計步周期中的運動方向和終端對應的第二主坐標軸方向上的第二相關值;根據第一相關值、第二相關值和終端在離當前時間最近的上一個計步周期中的運動方向,確定終端在當如計步周期中的運動方向,本發明中根據加速度值確定終端的運動方向,彌補了用戶手持終端時終端位置與運動方向不一致時通過電子羅盤獲取到錯誤方向的缺陷,提高了定位的準確度和確定終端運動方向的準確性。
[0161]需要說明的是:上述實施例提供的確定終端運動方向的裝置在確定終端運動方向時,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能模塊完成,即將裝置的內部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的確定終端運動方向的裝置與確定終端運動方向的方法實施例屬于同一構思,其具體實現過程詳見方法實施例,這里不再贅述。
[0162]本領域普通技術人員可以理解實現上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。
[0163]以上所述僅為本發明的較佳實施例,并不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
【權利要求】
1.一種確定終端的運動方向的方法,其特征在于,所述方法包括: 當檢測到用戶行進過程中完成一個計步周期時,獲取當前計步周期中終端在第一橫坐標軸上對應的第一加速度值,所述終端在第一縱坐標軸上對應的第二加速度值,以及所述終端在第一豎坐標軸上對應的第三加速度值,所述第一橫坐標軸、所述第一縱坐標軸和所述第一豎坐標軸分別為所述終端的內置坐標系的橫坐標軸、縱坐標軸和豎坐標軸; 根據所述第一加速度值、所述第二加速度值和所述第三加速度值,分別計算所述終端在第二橫坐標軸上對應的第四加速度值,所述終端在第二縱坐標軸上對應的第五加速度值,以及所述終端在第二豎坐標軸上對應的第六加速度值,所述第二橫坐標軸、所述第二縱坐標軸和所述第二豎坐標軸分別為地理坐標系的橫坐標軸、縱坐標軸和豎坐標軸; 根據所述第四加速度值、所述第五加速度值和所述第六加速度值,確定出所述終端在所述當前計步周期中運動對應的第一主坐標軸方向;獲取所述終端在所述第一主坐標軸方向上的第一相關值,以及所述終端在離當前時間最近的上一個計步周期中的運動方向和所述終端對應的第二主坐標軸方向上的第二相關值,所述第一相關值為所述第一主坐標軸上的加速度與所述第六加速度值之間的相關值;根據所述第一相關值、所述第二相關值和所述終端在離當前時間最近的上一個計步周期中的運動方向,確定所述終端在所述當前計步周期中的運動方向。
2.如權利要求1所述的方法,其特征在于,所述方法還包括: 計算所述終端當前姿態相對于水平面的俯仰角和翻滾角; 根據所述俯仰角和所述翻滾角計算所述終端當前姿態的方位角; 獲取所述電子羅盤輸入的方向值; 根據所述終端在所述當前計步周期中的運動方向、所述方位角和所述方向值,計算所述終端的航向角; 根據所述終端的航向角顯示所述終端在所述當前計步周期中的運動方向。
3.如權利要求2所述的方法,其特征在于,所述根據所述終端在所述當前計步周期中的運動方向、所述方位角和所述方向值,計算所述終端的航向角,包括: 如果所述終端在所述當前計步周期中的運動方向為向前,計算所述方向值與所述方位角的差,得到第一差值,將所述第一差值作為所述終端的航向角; 如果所述終端的運動方向為向后,計算所述方向值、所述方位角與180°的差,得到第二差值,將所述第二差值作為所述終端的航向角。
4.如權利要求1所述的方法,其特征在于,所述根據所述第四加速度值、所述第五加速度值和所述第六加速度值,確定出所述終端在所述當前計步周期中運動對應的第一主坐標軸方向,包括: 計算所述第四加速度值與所述第六加速度值之間的相關值,所述第五加速度值與所述第六加速度值之間的相關值; 如果所述第四加速度值與所述第六加速度值之間的相關值大于所述第五加速度值與所述第六加速度值之間的相關值,確定出所述終端在所述當前計步周期中運動對應的第一主坐標軸方向為所述第二橫坐標軸方向; 如果所述第四加速度值與所述第六加速度值之間的相關值不大于所述第五加速度值與所述第六加速度值之間的相關值,確定出所述終端在所述當前計步周期中運動對應的第一主坐標軸方向為所述第二縱坐標軸方向。
5.如權利要求1所述的方法,其特征在于,所述根據所述第一相關值、所述第二相關值和所述終端在離當前時間最近的上一個計步周期中的運動方向,確定所述終端在所述當前計步周期中的運動方向,包括: 判斷所述第一相關值的符號和所述第二相關值的符號是否相同; 如果相同,確定出所述終端在所述當前計步周期中的運動方向為所述終端在離當前時間最近的上一個計步周期中的運動方向; 如果不相同,確定出所述終端在所述當前計步周期中的運動方向為所述終端在離當前時間最近的上一個計步周期中的運動方向的相反方向。
6.一種確定終端的運動方向的裝置,其特征在于,所述裝置包括: 第一獲取模塊,用于當檢測到用戶行進過程中完成一個計步周期時,獲取當前計步周期中終端在第一橫坐標軸上對應的第一加速度值,所述終端在第一縱坐標軸上對應的第二加速度值,以及所述終端在第一豎坐標軸上對應的第三加速度值,所述第一橫坐標軸、所述第一縱坐標軸和所述第一豎坐標軸分別為所述終端的內置坐標系的橫坐標軸、縱坐標軸和豎坐標軸; 第一計算模塊,用于根據所述第一加速度值、所述第二加速度值和所述第三加速度值,分別計算所述終端在第二橫坐標軸上對應的第四加速度值,所述終端在第二縱坐標軸上對應的第五加速度值,以及所述終端在第二豎坐標軸上對應的第六加速度值,所述第二橫坐標軸、所述第二縱坐標軸和所述第二豎坐標軸分別為地理坐標系的橫坐標軸、縱坐標軸和豎坐標軸; 第一確定模塊,用于根據所述第四加速度值、所述第五加速度值和所述第六加速度值,確定出所述終端在所述當前計步周期中運動對應的第一主坐標軸方向; 第二獲取模塊,用于獲取所述終端在所述第一主坐標軸方向上的第一相關值,以及所述終端在離當前時間最近的上一個計步周期中的運動方向和所述終端對應的第二主坐標軸方向上的第二相關值,所述第一相關值為所述第一主坐標軸上的加速度與所述第六加速度值之間的相關值; 第二確定模塊,用于根據所述第一相關值、所述第二相關值和所述終端在離當前時間最近的上一個計步周期中的運動方向,確定所述終端在所述當前計步周期中的運動方向。
7.如權利要求6所述的裝置,其特征在于,所述裝置還包括: 第二計算模塊,用于計算所述終端當前姿態相對于水平面的俯仰角和翻滾角; 第三計算模塊,用于根據所述俯仰角和所述翻滾角計算所述終端當前姿態的方位角; 第三獲取模塊,用于獲取所述電子羅盤輸入的方向值; 第四計算模塊,用于根據所述終端在所述當前計步周期中的運動方向、所述方位角和所述方向值,計算所述終端的航向角; 顯示模塊,用于根據所述終端的航向角顯示所述終端在所述當前計步周期中的運動方向。
8.如權利要求7所述的裝置,其特征在于, 所述第四計算模塊,用于如果所述終端在所述當前計步周期中的運動方向為向前,計算所述方向值與所述方位角的差,得到第一差值,將所述第一差值作為所述終端的航向角; 如果所述終端的運動方向為向后,計算所述方向值、所述方位角與180°的差,得到第二差值,將所述第二差值作為所述終端的航向角。
9.如權利要求6所述的裝置,其特征在于,所述第一確定模塊,包括: 計算單元,用于計算所述第四加速度值與所述第六加速度值之間的相關值,所述第五加速度值與所述第六加速度值之間的相關值; 第一確定單元,用于如果所述第四加速度值與所述第六加速度值之間的相關值大于所述第五加速度值與所述第六加速度值之間的相關值,確定出所述終端在所述當前計步周期中運動對應的第一主坐標軸方向為所述第二橫坐標軸方向; 第二確定單元,用于如果所述第四加速度值與所述第六加速度值之間的相關值不大于所述第五加速度值與所述第六加速度值之間的相關值,確定出所述終端在所述當前計步周期中運動對應的第一主坐標軸方向為所述第二縱坐標軸方向。
10.如權利要求6所述的裝置,其特征在于,所述第二確定模塊,包括: 判斷單元,用于判斷所述第一相關值的符號和所述第二相關值的符號是否相同; 第三確定單元,用于如果相同,確定出所述終端在所述當前計步周期中的運動方向為所述終端在離當前時間最近的上一個計步周期中的運動方向; 第四確定單元,用于如果不相同,確定出所述終端在所述當前計步周期中的運動方向為所述終端在離當前時間最近的上一個計步周期中的運動方向的相反方向。
【文檔編號】G01C21/16GK104266646SQ201410460833
【公開日】2015年1月7日 申請日期:2014年9月11日 優先權日:2014年9月11日
【發明者】鄧中亮, 陸順保, 王克己, 曾輝, 方葉青, 鄭若彧, 楊易 申請人:北京郵電大學