在諸如智能手機等移動計算設備上通常包含移動導航與位置跟蹤系統(tǒng)。例如,移動計算設備可以用于利用例如移動計算設備上的全球定位系統(tǒng)(GPS)電路系統(tǒng)并且參考地理地圖在位置間引導用戶。然而,由于網(wǎng)絡和/或GPS連接的需要,此類系統(tǒng)經(jīng)常限于室外應用。室內(nèi)導航與位置跟蹤解決方案經(jīng)常跟蹤移動計算設備的位置,而不依賴于GPS和/或外部傳感器。
移動計算設備典型地包括多個慣性傳感器,所述慣性傳感器采集數(shù)據(jù),所述數(shù)據(jù)可通過例如板上慣性測量單元(IMU)來分析以確定用戶的各個環(huán)境(context),諸如用戶的估計位置?!巴扑愣ㄎ?Dead reckoning)”是一種典型的基于先前確定的定位、估計的速度和經(jīng)過的時間段來計算用戶當前定位的過程,其中先前確定的定位、估計的速度和經(jīng)過的時間段可基于慣性傳感器生成的傳感器數(shù)據(jù)來確定。板上慣性傳感器如加速度計和磁力計使得移動計算設備能夠?qū)τ脩舻倪~步進行計數(shù)并且取得羅盤讀數(shù)用于導航目的(即,用于行人推算定位)。行人推算定位(PDR)允許在消耗較少的功率(例如,與GPS導航相比)以及需要較少的先驗信息的同時進行室內(nèi)導航。
附圖說明
本文中所描述的概念在附圖中是通過舉例而不是限制的方式示出的。為了圖示的簡潔和清晰,在圖中示出的元素不一定是按比例繪制的。在認為適當?shù)那闆r下,附圖標記在各圖中重復以指示對應的或相似的元素。
圖1是用于確定用戶位置的移動計算設備的至少一個實施例的簡化框圖;
圖2是圖1的移動計算設備的至少一個實施例的簡化框圖;
圖3是用戶在各個方位上握持圖1的移動計算設備的簡化圖示;以及
圖4-6是可通過圖1的移動計算設備執(zhí)行的用于確定用戶位置的方法的至少一個實施例的簡化流程圖。
具體實施方式
雖然易于得到本公開的概念的各種修改和替代形式,其具體實施例在附圖中通過示例的方式示出且將在本文中進行詳述。然而,應當理解的是,無意將本公開的概念限于所公開的具體形式,而是相反,意在涵蓋所有與本公開和隨附權(quán)利要求一致的修改方案、等同方案和替代方案。
在說明書中提到“一個實施例”、“實施例”、“示例性的實施例”等表示,所描述的實施例可以包括具體的特征、結(jié)構(gòu)或特性,但是每個實施例可以必然或者可以不必然包括該具體的特征、結(jié)構(gòu)或特性。而且,這些措辭不一定是指同一實施例。此外,當結(jié)合實施例來描述具體的特征、結(jié)構(gòu)或特性時,應認為,無論是否明確地說明,與其它實施例相結(jié)合實現(xiàn)這些特征、結(jié)構(gòu)或特性在本領域技術(shù)人員的知識范圍內(nèi)。另外,應當意識到,呈“A、B和C中的至少一項”的形式的列表中所包含的項可以意指(A);(B);(C):(A和B);(B和C);或者(A,B和C)。類似地,以“A、B或C中的至少一項”的形式列出的項可以意指(A);(B);(C):(A和B);(B和C);或者(A,B和C)。
公開的實施例在一些情況下可以通過硬件、固件、軟件或其任意組合來實現(xiàn)。公開的實施例還可以實現(xiàn)為由一個或多個暫態(tài)或非暫態(tài)機器可讀(例如,計算機可讀)存儲介質(zhì)載有或者存儲的指令,這些指令可以由一個或多個處理器讀取和執(zhí)行。機器可讀存儲介質(zhì)可以具體實施為用于存儲或傳輸機器可讀形式的信息的任何存儲設備、機構(gòu)或其它物理結(jié)構(gòu)(例如,易失性或非易失性的存儲器、介質(zhì)磁盤或其它介質(zhì)設備)。
在附圖中,按具體的布置和/或順序顯示出了一些結(jié)構(gòu)或方法特征。然而,應當意識到,不要求這些具體的布置和/或順序。相反,在一些實施例中,這些特征可以按不同于示例性的附圖中所示的方式和/或順序布置。另外,在具體的圖中包含結(jié)構(gòu)或方法特征不意在暗示在全部實施例中都需要該特征,在一些實施例中,可能不需要該特征,或者該特征可以不與其它特征結(jié)合。
現(xiàn)在參考圖1,示出了用于使用行人推算定位技術(shù)來確定用戶位置的移動計算設備100。在使用時,如下文更詳細描述的,移動計算設備100被配置為采集并處理來自移動計算設備100的多個傳感器的傳感器數(shù)據(jù)。例如,傳感器可以采集與移動計算設備100的加速度、方位和/或其它慣性特性相關聯(lián)的數(shù)據(jù)?;趥鞲衅鲾?shù)據(jù)的分析,移動計算設備100確定移動計算設備100的用戶邁出物理步(physical step)的時間點(即,在步行、慢跑、跑步或具有另一步態(tài)的同時)。移動計算設備100確定用戶的各種朝向(例如,原始朝向、估計朝向等)、移動計算設備100和用戶的方位(例如,相對于彼此和/或相對于先前的方位)以及用戶所行進的距離(例如,基于用戶的估計步長)。進一步,如下文所論述,在示例性的實施例中,移動計算設備100使用卡爾曼濾波器來估計用戶的朝向,并且適當?shù)靥幚矸沁~步運動(例如,由用戶將移動計算設備100傾斜和旋轉(zhuǎn))。應當意識到,本文所描述的技術(shù)對于室內(nèi)和室外位置跟蹤兩者都是有用的且同樣適用。
移動計算設備100可以具體實施為能夠執(zhí)行本文所描述的功能的任意類型的計算設備。例如,移動計算設備100可具體實施為智能手機、蜂窩電話、可佩戴計算設備、個人數(shù)字助理、移動因特網(wǎng)設備、平板計算機、上網(wǎng)本、筆記本、超級本、膝上型計算機和/或任何其它移動計算/通信設備。如圖1所示,示例性的移動計算設備100包括處理器110、輸入/輸出(“I/O”)子系統(tǒng)112、存儲器114、數(shù)據(jù)存儲設備116以及一個或多個傳感器118。當然,在其它實施例中,移動計算設備100可包括其它或額外的組件,例如那些常見于典型的計算設備的組件(例如,各種輸入/輸出設備和/或其它組件)。另外,在一些實施例中,一個或多個示例性的組件可以并入另一組件的一部分或者以其它方式形成另一組件的一部分。例如,在一些實施例中,存儲器114或其部分可以并入處理器110中。
處理器110可以具體實施為能夠執(zhí)行本文所描述的功能的任意類型的處理器。例如,處理器可以具體實施為單核或多核處理器、數(shù)字信號處理器、微控制器或其它處理器或處理/控制電路。類似地,存儲器114可以具體實施為能夠執(zhí)行本文所描述的功能的任何類型的易失性或非易失性的存儲器或數(shù)據(jù)存儲設備。在操作中,存儲器114可以存儲在移動計算設備100操作期間使用的各種數(shù)據(jù)和軟件,諸如操作系統(tǒng)、應用、程序、庫和驅(qū)動器。存儲器114可以經(jīng)由I/O子系統(tǒng)112與處理器110通信耦合,I/O子系統(tǒng)112可以具體實施為便利于移動計算設備100的處理器110、存儲器114和其它組件的輸入/輸出操作的電路系統(tǒng)和/或組件。例如,I/O子系統(tǒng)112可以具體實施為或者以其它方式包括存儲器控制器集線器、輸入/輸出控制集線器、固件設備、通信鏈路(即,點對點鏈路、總線鏈路、電線、線纜、光導、印刷電路板跡線等)和/或便利于輸入/輸出操作的其它組件和子系統(tǒng)。在一些實施例中,I/O子系統(tǒng)112可以形成片上系統(tǒng)(SoC)的一部分,且與處理器110、存儲器114和移動計算設備的其它組件一起并入到單個集成電路芯片上。
數(shù)據(jù)存儲設備116可具體實施為任意類型的一個或多個設備,其配置為用于數(shù)據(jù)的短期或長期存儲,諸如例如存儲器器件和電路、存儲器卡、硬盤驅(qū)動器、固態(tài)驅(qū)動器或其它數(shù)據(jù)存儲設備。在示例性的實施例中,數(shù)據(jù)存儲設備116和/或存儲器114可以存儲用戶邁步模型130、傳感器數(shù)據(jù)、取得的數(shù)據(jù)(例如,用戶位置路經(jīng)點)、和/或在移動計算設備100的操作期間有用的其它各種數(shù)據(jù),如下文結(jié)合圖2所論述的。
在示例性的實施例中,傳感器118能夠采集與移動計算設備100的加速度、方位和/或其它慣性特性相關聯(lián)的數(shù)據(jù)。當然,在一些實施例中,傳感器118可以采集可由移動計算設備100在執(zhí)行本文所描述的功能時所使用的其它數(shù)據(jù)。在各個實施例中,傳感器118可以具體實施為或者以其它方式包括例如慣性傳感器、接近度傳感器、光學傳感器、光傳感器、音頻傳感器、溫度傳感器、運動傳感器、壓電傳感器、壓力傳感器和/或其它類型的產(chǎn)生可用于確定計算設備100的用戶的位置的數(shù)據(jù)的傳感器,如下文更詳細論述。例如,在示例性的實施例中,傳感器118包括加速度計124、陀螺儀126和磁力計128。當然,在其它實施例中,傳感器118可以包括多個加速度計、陀螺儀和/或磁力計和/或如上文所述的其它傳感器。加速度計124可以具體實施為被配置為測量移動計算設備100的加速度和/或其它運動(例如,沿著移動計算設備100的三維軸線中的每一個)的任何傳感器、電路系統(tǒng)和/或其它組件。陀螺儀126可以具體實施為被配置為測量移動計算設備100相對于預定義坐標系的角方位的任何傳感器、電路系統(tǒng)和/或其它組件。也即,陀螺儀126可以測量移動計算設備100的側(cè)傾、俯仰和/或橫擺。磁力計128可以具體實施為被配置為測量可用于確定移動計算設備100所指向(例如,相對于正北)的方向的磁場和/或其它信息的任何傳感器、電路系統(tǒng)和/或其它組件(例如,羅盤)。當然,移動計算設備100還可以包括被配置為便利于傳感器118的使用的組件和/或設備(例如,慣性測量單元)。
在一些實施例中,計算設備100還可以包括通信電路系統(tǒng)120。通信電路系統(tǒng)120可具體實施為能夠?qū)崿F(xiàn)移動計算設備100與其它遠程設備之間經(jīng)由網(wǎng)絡(未示出)的通信的任何通信電路、設備或其組合。通信電路系統(tǒng)120可被配置為根據(jù)例如網(wǎng)絡類型使用任意一個或多個通信技術(shù)(例如,無線或有線通信)以及關聯(lián)的協(xié)議(例如,以太網(wǎng)(Ethernet)、WiMAX等)來實現(xiàn)此類通信,網(wǎng)絡可具體實施為能夠便利于移動計算設備100與遠程設備之間的通信的任何類型的通信網(wǎng)絡。
在一些實施例中,計算設備100還可以包括一個或多個外圍設備。外圍設備122可以包括任意數(shù)量的附加的外圍設備或接口設備。外圍設備122中所包含的具體的設備可取決于例如移動計算設備100的類型和/或期望用途。
現(xiàn)在參考圖2,在使用中,移動計算設備100建立了用于確定用戶位置的環(huán)境200。如下文所論述,移動計算設備100估計用戶的朝向,并且基于用戶的估計朝向、用戶的估計步長以及用戶的先前位置(例如,在邁出邁步之前用戶的位置,用戶的朝向是針對該邁步而計算的)來確定用戶的估計位置。應當意識到,在一些實施例中,移動計算設備100可以響應于用戶的每個物理步(physical step)而確定用戶的朝向和/或估計用戶的位置。如下文更詳細描述的,對于用戶的一個或多個邁步的確定朝向和/或用戶的確定的位置可以基于各種標準被忽略或以其它方式細化(refine)。
移動計算設備100的示例性的環(huán)境200包括傳感器處理模塊202、朝向確定模塊204和位置確定模塊206。另外,傳感器處理模塊202包括邁步檢測模塊208和慣性測量模塊210,并且朝向確定模塊204包括原始朝向估計模塊212、運動管理模塊214和卡爾曼濾波器模塊216。此外,位置確定模塊206包括步長估計模塊218和位置細化模塊220。環(huán)境200的各個模塊可具體實施為硬件、軟件、固件或其組合。另外,在一些實施例中,一個或多個示例的模塊可以是獨立的模塊或者形成另一模塊的一部分。例如,在一些實施例中,位置細化模塊220可與位置確定模塊206分離。
傳感器處理模塊202分析或處理由傳感器118所采集的數(shù)據(jù)。具體地,邁步檢測模塊208檢測用戶何時邁出物理步。例如,在一些實施例中,邁步檢測模塊208基于從加速度計124所采集的傳感器數(shù)據(jù)來判定用戶是否已經(jīng)邁出物理步(例如,通過分析移動計算設備100的加速度的大小的變化)。在其它實施例中,邁步檢測模塊208可以基于另一組傳感器118所采集的傳感器數(shù)據(jù)來檢測用戶的物理步。應當意識到,在一些實施例中,邁步檢測模塊208可具體實施為步程計或類似模塊。
慣性測量模塊210被配置為處理與移動計算設備100的慣性特性相關聯(lián)的傳感器數(shù)據(jù)。例如,慣性測量模塊210可以將傳感器數(shù)據(jù)轉(zhuǎn)換成能夠由朝向確定模塊204使用的格式。在一些實施例中,慣性測量模塊210可具體實施為慣性測量單元(IMU),其被配置為處理移動計算設備100的加速度計124、陀螺儀126、磁力計128和/或其它傳感器118所采集到的數(shù)據(jù)以確定移動計算設備100的運動特性,諸如例如加速度、傾斜角和方位。應當意識到,慣性測量模塊210可具體實施為獨立的模塊或者形成移動計算設備100的一個或多個其它模塊的一部分。
朝向確定模塊204分析各種數(shù)據(jù)以估計用戶的朝向,這可被位置確定模塊206用來確定和/或跟蹤用戶的位置。如上所論述,在示例性的實施例中,朝向確定模塊204包括原始朝向估計模塊212、運動管理模塊214和卡爾曼濾波器模塊216。
原始朝向估計模塊212基于所感測的移動計算設備100的慣性特性和/或已處理的傳感器數(shù)據(jù)(例如,來自慣性測量模塊210)以及用戶已經(jīng)邁出物理步的指示(例如,來自邁步檢測模塊208)來確定移動計算設備100的“原始(raw)”朝向。在示例性的實施例中,原始朝向估計模塊212基于例如所感測的移動計算設備100的慣性特性來確定移動計算設備100和/或用戶的方向朝向以及相對于移動計算設備100的先前方位的移動計算設備100的方位。例如,原始朝向估計模塊212可以確定移動計算設備100在當前邁步處的方位相對于移動計算設備100在先前步(例如,用戶的緊接上一步)處的方位的變化。如下文所描述,在一些實施例中,原始朝向估計模塊212將所感測的移動計算設備100的加速度轉(zhuǎn)換到地球參照系且對加速度進行積分以確定移動計算設備100的方向速度(directional velocity)。應當意識到,在一些情形下,原始朝向估計模塊212假設移動計算設備100和用戶以相同的速度行進,并且因此移動計算設備100的速度的大小和/或方向的估計可近似用戶的速度的大小和/或方向。在示例性的實施例中,移動計算設備100的方向朝向被確定為移動計算設備100的所確定的速度的方向,或者以其它方式基于移動計算設備100的所確定的速度的方向。然而,在其它實施例中,移動計算設備100的所確定的速度的大小還可用于確定移動計算設備100的方向朝向(directional heading)。
在一些情況下,用戶可以將移動計算設備100握持在她的前方,使得移動計算設備100被保持在相對于用戶固定的方位。在那些情形下,移動計算設備100的運動通常限于邁步運動(即,與用戶的邁步運動有關)。然而,在典型的情形下,用戶可以通過隨意的方式握持移動計算設備100,使得安裝定位(即,移動計算設備100被握持的方位)可以隨時間而變化。例如,用戶可以將移動計算設備100從縱向方位(即,相對于用戶為零度)轉(zhuǎn)變成橫向方位(即,相對于用戶為九十度),將移動計算設備100置于她的衣袋中,傾斜移動計算設備100(例如,向前/下或者向后/上),和/或以其它方式重新定位移動計算設備100。應當意識到典型的PDR實現(xiàn)方式在處置這些非邁步運動同時最小化/減少誤差(即,當與地面實況相比時)方面有難度。
運動管理模塊214負責那些非邁步運動(例如,由用戶傾斜以及旋轉(zhuǎn)移動計算設備100)以使得朝向確定模塊204能夠更精確地估計用戶的朝向。為這樣做,運動管理模塊214可以檢測用戶的手的運動。具體地,在示例性的實施例中,如果運動管理模塊214檢測到移動計算設備100相對于在先前步處移動計算設備100的方位的傾斜(即,在非水平面中旋轉(zhuǎn)),則運動管理模塊214將檢測到的物理步忽略。如下文所述,移動計算設備100利用卡爾曼濾波器來估計用戶的朝向。因此,換言之,運動管理模塊214防止與檢測到的邁步相關聯(lián)的數(shù)據(jù)被卡爾曼濾波器處理,或者卡爾曼濾波器以其它方式拒絕該數(shù)據(jù)。如果移動計算設備100在后續(xù)的步中沒有相對的傾斜,則運動管理模塊214可再次允許數(shù)據(jù)發(fā)送到卡爾曼濾波器且由其處理。應當意識到,在一些實施例中,運動管理模塊214可以建立相對傾斜閾值量,要將邁步忽略則運動必須超過該閾值量。這些實施例可以負責到與例如邁步運動和/或不影響朝向估計的精確度的運動所共有的少量傾斜。在一些實施例中,如果不進行如上文所述的補償,則這些引起移動計算設備100傾斜的運動會導致狀態(tài)轉(zhuǎn)換誤差εk,其不近似于高斯噪聲或白噪聲。
運動管理模塊214還負責沿水平面的旋轉(zhuǎn)運動。應當意識到,移動計算設備100沿水平面的大的旋轉(zhuǎn)移動可以或者可以不與用戶的移動相關聯(lián)并且因此可以或者可以不與用戶的朝向相關聯(lián)。例如,大的旋轉(zhuǎn)移動(例如,九十度)可與用戶轉(zhuǎn)彎相關聯(lián),與用戶將移動計算設備100相對于她自身自旋相關聯(lián),或者與那些移動的組合相關聯(lián)。如果不存在與水平旋轉(zhuǎn)相關聯(lián)的傾斜和/或存在不超過基準閾值的傾斜,則運動管理模塊214不能阻止數(shù)據(jù)被如上所述卡爾曼濾波器處理。
應當意識到,如果以其他方式不予負責,則移動計算設備100相對于用戶的移動會導致對用戶做出不精確的朝向估計。在示例性的實施例中,如果水平旋轉(zhuǎn)運動超過基準閾值(例如,七十五度,九十度,一百度等),則運動管理模塊214不再信任與如下文所述的移動計算設備100的相對方位(Ok-Ok-1)相關聯(lián)的測量。在一個具體的實施例中,基準閾值是九十度旋轉(zhuǎn),因為在單個物理步中九十度轉(zhuǎn)彎是不自然的且因此是不常見的。因此,運動管理模塊214將卡爾曼濾波器重新初始化并且通過增大該濾波器的狀態(tài)協(xié)方差P來增大卡爾曼濾波器的誤差容限。換言之,運動管理模塊214可以充當至少部分地處置下文所述的卡爾曼濾波器的初始化和參數(shù)的自適應控制器。應進一步意識到,在一些情形下,運動管理模塊214可以不負責(或者可以不完全負責)移動計算設備100的非邁步運動。
卡爾曼濾波器模塊216基于移動計算設備100的原始朝向和移動計算設備100的方位變化(即,移動計算設備100的方位相對于先前步處的方位)應用卡爾曼濾波器,來確定用戶的朝向。如上所述,卡爾曼濾波器模塊216可以拒絕來自卡爾曼濾波器的各種數(shù)據(jù)(例如,與運動管理模塊214相結(jié)合)并且可以在各個時間點將卡爾曼濾波器初始化(例如,在用戶的第一個測量/檢測到的步之前)和/或重新初始化。在示例性的實施例中,卡爾曼濾波器模塊216應用卡爾曼濾波器來基于下面參考圖3所描述的示例性的PDR模型估計用戶的實時朝向。
現(xiàn)在參考圖3,用戶300被示出以各種朝向(Hk-1,Hk,Hk+1)在不同的物理步302、304、306處且在相對于參照系的各個方位(Ok-1,Ok,Ok+1)握持移動計算設備100。在示例性的步驟302、304、306中,應當意識到,Ok是在步k處移動計算設備100在水平面中的方位,Hk是在步k處用戶的朝向,并且Rk是在步k處設備方位與用戶的朝向之間的相對角。更具體地,在第一步302中,用戶300具有相對于參照系為零度的朝向Hk-1,移動計算設備100具有零度的方位Ok-1,限定在它們之間的相對角Rk-1是零度。在第二步304中,用戶300具有零度的朝向Hk,移動計算設備100具有九十度的方位Ok,并且相對角Rk是九十度。進一步,在第三步306中,用戶300具有四十五度的朝向Hk+1,移動計算設備100具有135度的方位Ok+1,相對角Rk+1是九十度。
應當意識到,在步k處,Hk=Ok+Rk,并且可以在根據(jù)Hk-Hk-1=(Ok-Ok-1)+(Rk-Rk-1)的PDR模型中計算在步k處用戶的朝向變化。在示例的PDR模型中,Ok-Ok-1表示在步k處移動計算設備100的方位的變化(即,相對于步k-1),并且可通過慣性測量模塊210基于所感測的移動計算設備100的慣性特性來確定。此外,Rk-Rk-1表示在步k處用戶300與移動計算設備100之間的相對角的變化(即,相對于步k-1)。在多數(shù)情形下,Rk-Rk-1是零,因為在PDR期間大多數(shù)用戶不頻繁地改變移動計算設備100的安裝定位/方向。
應當意識到,可應用卡爾曼濾波器來基于定義的狀態(tài)轉(zhuǎn)換函數(shù)和測量函數(shù)yk來估計濾波器狀態(tài)xk。在示例的實施例中,濾波器狀態(tài)xk被定義為用戶的朝向Hk。換言之,xk=Hk?;谏鲜龅腜DR模型,狀態(tài)轉(zhuǎn)換函數(shù)被定義為xk=xk-1+Ok-Ok-1+εk,其中εk是在步k處的狀態(tài)轉(zhuǎn)換誤差。另外地,如上所述,xk是在步k處用戶的確定的朝向,并且Ok是在步k處移動計算設備100的方位。在示例性的實施例中,狀態(tài)轉(zhuǎn)換誤差包括與確定Ok-Ok-1相關聯(lián)的測量誤差以及移動計算設備100的定位/方向改變誤差Rk-Rk-1。應當意識到,在示例性的實施例中,卡爾曼函數(shù)假設Rk-Rk-1=0(例如,為確保濾波器的穩(wěn)定性)。然而,因為可能并不是這樣,所以運動管理模塊214處置Rk-Rk-1≠0的情形,如上所述。另外地,測量函數(shù)yk可定義為yk=xk+δk,其中yk是如上所述的移動計算設備100的原始朝向,并且δk是與移動計算設備100的加速度的積分相關聯(lián)的測量誤差。
返回圖2,在示例性的實施例中,卡爾曼濾波器模塊216通過應用具有如上所述的狀態(tài)轉(zhuǎn)換函數(shù)xk=xk-1+Ok-Ok-1+εk和測量函數(shù)yk=xk+δk的線性卡爾曼濾波器來確定用戶的估計朝向。在其它實施例中,卡爾曼濾波器模塊216可以應用卡爾曼濾波器的其它變形來確定用戶的朝向。例如,在一些實施例中,卡爾曼濾波器模塊216可以應用具有狀態(tài)轉(zhuǎn)換函數(shù)xk=Hk-Hk-1=Ok-Ok-1+εk和測量函數(shù)yk=xk+Hk-1+δk的卡爾曼濾波器,其中Hk是在步k處用戶的估計朝向,xk是在步k處估計的朝向變化,Ok是在步k處移動計算設備的方位,εk是在步k處的狀態(tài)轉(zhuǎn)換誤差,yk是在步k處移動計算設備的確定的方向朝向(例如,方向速度),并且δk是在步k處與移動計算設備的加速度的積分相關聯(lián)的測量誤差。在另外的實施例中,卡爾曼濾波器模塊216和/或朝向確定模塊204可以另外地或者可選地基于上述PDR模型而應用另一濾波器(例如,用于估計的另一離散濾波器)。
位置確定模塊206基于用戶的確定的朝向、用戶的估計步長以及在先前物理步處用戶的位置來確定用戶的估計位置。例如,位置確定模塊206可以確定,用戶位于沿用戶的確定的朝向的方向遠離先前位置一段與用戶步長對應的距離。如上所述,在示例性的實施例中,位置確定模塊206包括步長估計模塊218和位置細化模塊220。
步長估計模塊218基于用戶邁步模型130來確定用戶的估計步長。根據(jù)具體的實施例,用戶邁步模型130可以是用于估計用戶的步長的一般模型(例如,通用模型),或者用戶邁步模型130可以是用戶特定模型。在一些實施例中,多于一個的用戶邁步模型130可用來估計用戶的步長(例如,一般模型與用戶特定模型的組合)。此外,在一些實施例中,可以生成用戶特定的用戶邁步模型130,或者在用戶的“訓練期間(training period)”后,適配一般模型。例如,移動計算設備100可請求用戶邁出某數(shù)量的步且測量所行進的距離。另外,在一些實施例中,用戶邁步模型130可包括各種步長,取決于用戶是在步行、慢跑、跑步或以其它方式邁步,這可以基于傳感器118所采集的傳感器數(shù)據(jù)的分析來確定。在其它實施例中,步長估計模塊218可以基于移動計算設備100的傳感器118所采集的數(shù)據(jù)來確定用戶的估計步長(例如,使用或者不使用用戶邁步模型130)。
位置細化模塊220被配置為基于各種因素來對用戶的估計位置進行細化。如上所述,可通過運動管理模塊214和/或卡爾曼濾波器模塊216來將卡爾曼濾波器重新初始化(例如,響應于移動計算設備100的旋轉(zhuǎn)運動超過對于水平旋轉(zhuǎn)運動的基準閾值)。應當意識到,在重新初始化之后,卡爾曼濾波器需要一定時間段來收斂且變得穩(wěn)定。因此,在其中卡爾曼濾波器正在收斂中的時間點所確定的用戶位置可能取決于用戶的移動而是不精確的。
因此,在示例性的實施例中,位置細化模塊220響應于確定卡爾曼濾波器已經(jīng)重新初始化且已經(jīng)收斂,而對用戶的所確定的估計位置進行細化。例如,一旦用戶在卡爾曼濾波器重新初始化后已經(jīng)邁出閾值量的步數(shù)(例如,兩步、三步、五步、十步、二十步、五十步等),位置細化模塊220可以針對重新初始化后的一個或多個邁步而對用戶的估計位置進行細化。在示例性的實施例中,位置細化模塊220“反推(backstep)”用戶的位置,這是通過在重新初始化后從最新的步(例如,閾值步)返回到第一步重新計算用戶的朝向以對用戶的朝向進行更新,以及通過用從重新初始化后的第一步到用戶所邁出的最后一步(例如,閾值步)的已更新的用戶的朝向來重新計算用戶的位置。在反推一次或多次后,卡爾曼濾波器穩(wěn)定化(即,除非其再次被重新初始化)。應意識到,在其它實施例中,位置細化模塊220可以其它方式對用戶的確定的朝向和/或位置進行細化。
現(xiàn)在參考圖4-6,在使用時,移動計算設備100可以執(zhí)行用于確定用戶的位置(例如,使用PDR)的方法400。示例性的方法400開始于圖4的框402,其中移動計算設備100判定是否跟蹤用戶的定位/位置(即,是否開始PDR)。如果是這樣,則移動計算設備100在框406中初始化跟蹤。例如,在框406中,移動計算設備100基于如上所述的適當?shù)膮?shù)、狀態(tài)轉(zhuǎn)換函數(shù)和測量函數(shù)來初始化卡爾曼濾波器。當然,在初始化期間,移動計算設備100可以從存儲器114或數(shù)據(jù)存儲設備116取回用戶邁步模型130,初始化移動計算設備100的傳感器118以及一個或多個模塊(例如,慣性測量模塊210),和/或執(zhí)行其它初始化和配置程序。
在框408中,移動計算設備100感測移動計算設備100的慣性和/或其它特性。例如,如上所述,移動計算設備100可以感測移動計算設備100的加速度、角方位(例如,側(cè)傾、俯仰和橫擺)、磁場和/或其它慣性、方向或其它特性(例如,與PDR分析相關的特性)。在框410中,移動計算設備100分析所采集的傳感器數(shù)據(jù)(例如,通過IMU)以檢測例如用戶何時邁出物理步。傳感器數(shù)據(jù)可被進一步分析以確定如上文所描述的各種特性(例如,移動計算設備100的原始朝向)。
在框412中,移動計算設備100判定移動計算設備100的用戶是否已邁出物理步。如果為否,則方法400返回框408,其中移動計算設備100繼續(xù)從移動計算設備100的傳感器118采集數(shù)據(jù)。換言之,移動計算設備100等待直至用戶的步被檢測到。如果移動計算設備100判定出用戶已經(jīng)邁步,則移動計算設備100在框414中確定用戶的原始朝向(即,移動計算設備100的方向朝向)。如上所述,在這樣做時,移動計算設備100可以基于所感測的移動計算設備100的加速度來確定移動計算設備100的水平速度。
特別地,移動計算設備100通過如上所述的傳感器118來感測移動計算設備100的加速度。應當意識到,所感測的加速度是相對于移動計算設備100的參照系或者對移動計算設備100的加速度進行感測的傳感器118的參照系來定義的。在示例性的實施例中,移動計算設備100借助于定義了兩個參照系之間的映射的旋轉(zhuǎn)矩陣,將所感測的加速度從移動計算設備100的參照系轉(zhuǎn)換成地球參照系。例如,地球參照系中的新加速度aet可以根據(jù)aet=Atat來確定,其中At是旋轉(zhuǎn)矩陣,at是移動計算設備的所感測的加速度。應當意識到,旋轉(zhuǎn)矩陣可利用任何適合的算法或技術(shù)來計算。
在示例性的實施例中,移動計算設備100通過將地球參照系中的加速度在短時間段上積分(或求和)來確定移動計算設備100的速度(即,向量)。將意識到,在較長的時間段內(nèi)的積分或求和通常將引入大的誤差δk,如上所述。因此,在一些實施例中,移動計算設備100在極小的時間段Δt上對加速度求和,以試圖近似移動計算設備100的瞬時速度且最小化誤差的引入。地球參照系中的速度vet可根據(jù)vet=∑aetΔt來確定。在示例性的實施例中,移動計算設備100將地球參照系中的速度投影到水平面(例如,與用戶已經(jīng)邁步的表面相符的水平面)以確定移動計算設備100沿用戶已邁步的方向的水平速度。將意識到,在示例性的實施例中,所確定的水平速度是如本文所述的原始朝向。如上所表明,在一些實施例中,移動計算設備100的方向朝向可以忽略所確定的水平速度的大小。
在框418中,移動計算設備100判定是否檢測到傾斜(即,非水平旋轉(zhuǎn))。如果是,則移動計算設備100在框420中忽略檢測到的步,并且方法400隨后返回到框408,在框408中,移動計算設備100等待直至檢測到另一步。如上所述,應當意識到,移動計算設備100可使用基準閾值并且僅當傾斜量超過基準閾值才忽略用戶的步。
如果沒有檢測到傾斜或者傾斜沒有超過基準閾值,則方法400前進到圖5的框422,其中移動計算設備100判定是否已經(jīng)檢測到大的旋轉(zhuǎn)。如果是,則移動計算設備100在框424中將卡爾曼濾波器重新初始化。在這樣做時,移動計算設備100可以在框426中修正濾波器參數(shù)。例如,如上所述,移動計算設備100可以增大卡爾曼濾波器的狀態(tài)協(xié)方差以增大卡爾曼濾波器的誤差容限。如上所述,移動計算設備100可以對于構(gòu)成“大的”旋轉(zhuǎn)的水平旋轉(zhuǎn)運動量建立基準閾值。換言之,如果移動計算設備100旋轉(zhuǎn)了超過閾值的量,則移動計算設備100將卡爾曼濾波器重新初始化,然而,如果移動計算設備100沒有旋轉(zhuǎn)超過閾值的量,則移動計算設備100在框426中不將卡爾曼濾波器重新初始化。如上文所述,移動計算設備100如此充當自適應控制器,其可以根據(jù)移動計算設備100的旋轉(zhuǎn)運動來調(diào)節(jié)卡爾曼濾波器的參數(shù)。
無論移動計算設備100是否將卡爾曼濾波器重新初始化,移動計算設備100在框428中估計用戶的朝向。如上所述,要這樣做,在框428中,移動計算設備100可基于移動計算設備100的確定的方位變化Ok-Ok-1、移動計算設備100的確定的原始朝向yk以及濾波器參數(shù)(例如,基于卡爾曼濾波器是否已經(jīng)重新初始化的狀態(tài)協(xié)方差)來應用卡爾曼濾波器。特別地,分別如框432和424所示,移動計算設備100可以應用具有狀態(tài)轉(zhuǎn)換函數(shù)xk=xk-1+Ok-Ok-1+εk以及測量函數(shù)yk=xk+δk的卡爾曼濾波器,如上所述。應當意識到,卡爾曼濾波器的輸出是狀態(tài)xk,其被定義為用戶的朝向,如上所述。此外,在一些實施例中,移動計算設備100可應用不同的濾波器用于確定用戶的朝向(例如,上述卡爾曼濾波器的變種)。
在框436中,移動計算設備100確定用戶的步長(即,用戶的步幅在水平方向上的長度)。例如,移動計算設備100可以基于如上所述的用戶邁步模型132來確定用戶的步長。在圖6的框438中,移動計算設備100基于用戶的朝向和用戶的步長來確定用戶的位置。在一些實施例中,移動計算設備100可以確定用戶位于沿用戶的朝向的方向遠離用戶在先前步處的用戶先前確定的位置一段距離(即,邁步長度)。
在框440中,移動計算設備100判定是否細化用戶的位置。如上所述,響應于檢測到移動計算設備100的大量的水平旋轉(zhuǎn),可以將卡爾曼濾波器重新初始化。在那些情形下,卡爾曼濾波器可能花費一定量的時間/步數(shù)再次收斂且變得穩(wěn)定。因此,移動計算設備100可以確定將用戶的確定的位置細化(例如,反推)在卡爾曼濾波器重新初始化之后的閾值步數(shù)。在框442中,移動計算設備100細化用戶的位置。在示例性的實施例中,移動計算設備100通過反推用戶的朝向和位置計算來這樣做。例如,在框444中,移動計算設備100可以反推(backstep)用戶的位置且計算新位置。特別地,移動計算設備100可以在重新初始化后從最后的一步返回到第一步來重新計算用戶的朝向,以更新用戶的朝向。另外地,移動計算設備100可以借助于從重新初始化后的第一步到用戶所邁出的最后一步(例如,閾值步)的已更新的用戶的朝向,來重新計算用戶的位置。方法400返回圖4的框408,其中移動計算設備100等待檢測用戶的下一步。
如本文所描述的,移動計算設備100使用朝向估計、卡爾曼濾波器和用于用戶的非邁步運動(例如,傾斜和大的旋轉(zhuǎn))的自適應控制,在逐步的基礎上跟蹤用戶的位置。響應于檢測到用戶的邁步,基于用戶的先前位置、估計的用戶的朝向以及用戶的估計步長來計算用戶的新位置。計算設備100的與用戶的邁步運動(移動計算設備100相對于用戶的傾斜和旋轉(zhuǎn))無關的移動,由移動計算設備100適當?shù)靥幹?。此外,在一些情形下,移動計算設備100可以如上所述細化用戶的確定的位置。
示例
下面提供了本文公開的技術(shù)的示例性的示例。技術(shù)的實施例可以包括下面所描述的任意一個或多個示例以及示例的任意組合。
示例1包括用于確定用戶的位置的移動計算設備,所述移動計算設備包括:多個慣性傳感器,其感測所述移動計算設備的慣性特性;傳感器處理模塊,其基于所述多個慣性傳感器感測到的所述移動計算設備的慣性特性來檢測所述移動計算設備的用戶已經(jīng)沿一方向邁出物理步;原始朝向估計模塊,其基于感測到的慣性特性來確定所述移動計算設備沿所述方向的方向朝向以及所述移動計算設備的方位相對于在所述用戶的先前物理步處所述移動計算設備的先前方位的變化;卡爾曼濾波器模塊,其應用卡爾曼濾波器以基于所確定的方向朝向以及所述移動計算設備的方位的變化來確定所述用戶的朝向;以及位置確定模塊,其基于所確定的用戶的朝向、用戶的估計步長以及在先前物理步處用戶的先前位置來確定用戶的估計位置。
示例2包括示例1的主題,并且其中檢測所述用戶已經(jīng)邁出物理步、確定所述移動計算設備的方向朝向以及所述移動計算設備的方位的變化、應用卡爾曼濾波器以確定所述用戶的朝向以及確定所述用戶的估計位置包括:針對所述用戶邁出的多個相繼物理步處的每一個物理步,檢測所述用戶已經(jīng)邁出物理步、確定所述移動計算設備的方向朝向以及所述移動計算設備的方位的變化、應用卡爾曼濾波器以確定所述用戶的朝向、以及確定所述用戶的估計位置。
示例3包括示例1和示例2中的任一個的主題,并且進一步包括運動管理模塊,其(i)響應于檢測到用戶已經(jīng)邁出物理步而判定所述移動計算設備是否已經(jīng)沿非水平方向傾斜,以及(ii)響應于判定出所述移動計算設備已經(jīng)沿所述非水平方向傾斜而忽略所檢測到的物理步。
示例4包括示例1-3中的任一個的主題,并且進一步包括運動管理模塊,其(i)判定所述移動計算設備是否已經(jīng)沿水平面旋轉(zhuǎn)了超過基準閾值的量,以及(ii)響應于判定出所述移動計算設備已經(jīng)沿所述水平面旋轉(zhuǎn)了超過所述基準閾值的量而將所述卡爾曼濾波器重新初始化。
示例5包括示例1-4中的任一個的主題,并且其中所述基準閾值是九十度旋轉(zhuǎn)。
示例6包括示例1-5中的任一個的主題,并且其中將所述卡爾曼濾波器重新初始化包括:增大所述卡爾曼濾波器的狀態(tài)協(xié)方差以增大所述卡爾曼濾波器的誤差容限。
示例7包括示例1-6中的任一個的主題,并且進一步包括位置細化模塊,其響應于判定出如下項而對用戶的確定的估計位置進行細化:(i)卡爾曼濾波器已經(jīng)重新初始化,以及(ii)在卡爾曼濾波器重新初始化后用戶所邁出的物理步數(shù)目超過基準閾值。
示例8包括示例1-7中的任一個的主題,并且其中對確定的估計位置進行細化包括:響應于判定出在重新初始化后用戶所邁出的物理步數(shù)目已達到基準閾值,基于在用戶達到基準閾值所在的步時的所確定的朝向來更新在重新初始化后直至用戶達到基準閾值所在的步為止的每個物理步的用戶的朝向;以及基于用戶的更新后的朝向來重新計算用戶的估計位置。
示例9包括示例1-8中的任一個的主題,并且其中應用卡爾曼濾波器包括應用具有狀態(tài)轉(zhuǎn)換函數(shù)xk=xk-1+Ok-Ok-1+εk以及測量函數(shù)yk=xk+δk的線性卡爾曼濾波器,其中:xk是在步k處所確定的用戶的朝向,Ok是在步k處移動計算設備的方位,εk是在步k處的狀態(tài)轉(zhuǎn)換誤差,yk是在步k處所確定的移動計算設備的方向朝向,以及δk是在步k處與移動計算設備的加速度的積分相關聯(lián)的測量誤差。
示例10包括示例1-9中的任一個的主題,并且其中應用卡爾曼濾波器包括應用具有狀態(tài)轉(zhuǎn)換函數(shù)xk=Hk-Hk-1=Ok-Ok-1+εk以及測量函數(shù)yk=xk+Hk-1+δk的線性卡爾曼濾波器,其中:Hk是在步k處用戶的估計朝向,xk是在步k處的估計的朝向變化,Ok是在步k處移動計算設備的方位,εk是在步k處的狀態(tài)轉(zhuǎn)換誤差,yk是在步k處所確定的移動計算設備的方向朝向,以及δk是在步k處與移動計算設備的加速度的積分相關聯(lián)的測量誤差。
示例11包括示例1-10中的任一個的主題,并且其中在多個相繼物理步處的第一物理步之前,卡爾曼濾波器模塊將卡爾曼濾波器初始化。
示例12包括示例1-11中的任一個的主題,并且其中確定所述移動計算設備沿所述方向的方向朝向包括確定所述移動計算設備沿所述方向的速度。
示例13包括示例1-12中的任一個的主題,并且其中確定所述移動計算設備沿所述方向的速度包括:通過所述多個慣性傳感器中的慣性傳感器來感測所述移動計算設備的加速度;將所感測的來自所述慣性傳感器的參照系的加速度轉(zhuǎn)換成地球參照系的加速度;以及基于所述地球參照系的加速度來確定所述移動計算設備沿所述方向的速度。
示例14包括示例1-13中的任一個的主題,并且其中確定所述移動計算設備沿所述方向的速度包括:確定將所述慣性傳感器的參照系映射到地球參照系的旋轉(zhuǎn)矩陣;將所確定的旋轉(zhuǎn)矩陣應用于所感測的加速度以確定所述移動計算設備在地球參照系中的加速度;對地球參照系中的加速度進行積分以確定在地球參照系中的速度;以及將所確定的地球參照系中的速度投影到用戶在其上物理地邁步的水平面上。
示例15包括示例1-14中的任一個的主題,并且其中位置確定模塊基于用戶邁步模型來確定用戶的估計步長。
示例16包括在移動計算設備上確定用戶位置的方法,所述方法包括:通過所述移動計算設備且基于感測到的所述移動計算設備的慣性特性來檢測所述移動計算設備的用戶已經(jīng)沿一方向邁出物理步;通過所述移動計算設備,基于感測到的慣性特性來確定所述移動計算設備沿所述方向的方向朝向以及所述移動計算設備的方位相對于在用戶的先前物理步處所述移動計算設備的先前方位的變化;通過所述移動計算設備應用卡爾曼濾波器,以基于所確定的用戶的方向朝向以及所述移動計算設備的方位的變化來確定用戶的朝向;以及通過所述移動計算設備基于所確定的用戶的朝向、所述用戶的估計步長以及在先前物理步處用戶的先前位置來確定所述用戶的估計位置。
示例17包括示例16的主題,并且其中檢測所述用戶已經(jīng)邁出物理步、確定所述移動計算設備的方向朝向以及所述移動計算設備的方位的變化、應用卡爾曼濾波器以確定所述用戶的朝向以及確定所述用戶的估計位置包括:針對所述用戶邁出的多個相繼物理步處的每一個物理步,檢測所述用戶已經(jīng)邁出物理步、確定所述移動計算設備的方向朝向以及所述移動計算設備的方位的變化、應用卡爾曼濾波器以確定所述用戶的朝向、以及確定所述用戶的估計位置。
示例18包括示例16和17的主題,并且進一步包括:通過所述移動計算設備,響應于檢測到所述用戶已經(jīng)邁出所述物理步而判定所述移動計算設備是否已經(jīng)沿非水平方向傾斜;以及通過所述移動計算設備,響應于判定出所述移動計算設備已經(jīng)沿所述非水平方向傾斜而忽略檢測到的物理步。
示例19包括示例16-18的主題,并且進一步包括:通過所述移動計算設備,判定所述移動計算設備是否已經(jīng)沿水平面旋轉(zhuǎn)了超過基準閾值的量;以及通過所述移動計算設備,響應于判定出所述移動計算設備已經(jīng)沿著所述水平面旋轉(zhuǎn)了超過所述基準閾值的量而將所述卡爾曼濾波器重新初始化。
示例20包括示例16-19的主題,并且其中預定閾值是九十度旋轉(zhuǎn)。
示例21包括示例16-20的主題,并且其中將所述卡爾曼濾波器重新初始化包括增大所述卡爾曼濾波器的狀態(tài)協(xié)方差以增大卡爾曼濾波器的誤差容限。
示例22包括示例16-21的主題,并且進一步包括:通過所述移動計算設備,響應于判定出如下項而對所確定的所述用戶的估計位置進行細化:(i)卡爾曼濾波器已經(jīng)重新初始化,以及(ii)在卡爾曼濾波器重新初始化后用戶所邁出的物理步的數(shù)目超過基準閾值。
示例23包括示例16-22的主題,并且其中對所確定的估計位置進行細化包括:響應于在重新初始化后用戶所邁出的物理步的數(shù)目達到所述基準閾值,基于在用戶達到所述基準閾值所在的步時的所確定的朝向來更新在重新初始化后直至用戶達到基準閾值所在的步為止的每個物理步的用戶的朝向;以及基于用戶的更新后的朝向來重新計算用戶的估計位置。
示例24包括示例16-23的主題,并且其中應用卡爾曼濾波器包括應用具有狀態(tài)轉(zhuǎn)換函數(shù)xk=xk-1+Ok-Ok-1+εk以及測量函數(shù)yk=xk+δk的線性卡爾曼濾波器,其中:xk是在步k處所確定的用戶的朝向,Ok是在步k處移動計算設備的方位,εk是在步k處的狀態(tài)轉(zhuǎn)換誤差,yk是在步k處所確定的移動計算設備的方向朝向,以及δk是在步k處與移動計算設備的加速度的積分相關聯(lián)的測量誤差。
示例25包括示例16-24的主題,并且其中應用卡爾曼濾波器包括應用具有狀態(tài)轉(zhuǎn)換函數(shù)xk=Hk-Hk-1=Ok-Ok-1+εk以及測量函數(shù)yk=xk+Hk-1+δk的線性卡爾曼濾波器,其中:Hk是在步k處用戶的估計朝向,xk是在步k處的估計的朝向變化,Ok是在步k處移動計算設備的方位,εk是在步k處的狀態(tài)轉(zhuǎn)換誤差,yk是在步k處所確定的移動計算設備的方向朝向,以及δk是在步k處與移動計算設備的加速度的積分相關聯(lián)的測量誤差。
示例26包括示例16-25的主題,并且進一步包括:通過移動計算設備,在多個相繼物理步中的第一物理步之前,初始化卡爾曼濾波器。
示例27包括示例16-26的主題,并且其中確定所述移動計算設備沿所述方向的方向朝向包括確定所述移動計算設備沿所述方向的速度。
示例28包括示例16-27的主題,并且其中確定所述移動計算設備沿所述方向的速度包括:通過所述移動計算設備的慣性傳感器來感測所述移動計算設備的加速度;確定將所述慣性傳感器的參照系映射到地球參照系的旋轉(zhuǎn)矩陣;將所確定的旋轉(zhuǎn)矩陣應用于所感測的加速度以確定所述移動計算設備在地球參照系中的加速度;對地球參照系中的加速度進行積分以確定地球參照系中的速度;以及將所確定的地球參照系中的速度投影到用戶在其上物理地邁步的水平面上。
示例29包括示例16-28的主題,并且其中確定所述移動計算設備沿所述方向的速度包括:確定將所述慣性傳感器的參照系映射到地球參照系的旋轉(zhuǎn)矩陣;將所確定的旋轉(zhuǎn)矩陣應用于所感測的加速度以確定所述移動計算設備在地球參照系中的加速度;對地球參照系中的加速度進行積分以確定在地球參照系中的速度;以及將所確定的地球參照系中的速度投影到用戶在其上物理地邁步的水平面上。
示例30包括示例16-29的主題,并且進一步包括:通過移動計算設備,基于用戶邁步模型來確定用戶的估計步長。
示例31包括計算設備,包括:處理器;以及存儲器,其中存儲有多條指令,所述指令當通過處理器執(zhí)行時使得所述計算設備執(zhí)行示例16-30中任一示例所述的方法。
示例32包括一個或多個機器可讀存儲介質(zhì),包括存儲于其中的多條指令,所述指令響應于被執(zhí)行使得計算設備執(zhí)行示例16-30中任一示例所述的方法。
示例33包括用于確定用戶的位置的移動計算設備,所述移動計算設備包括:用于基于感測到的所述移動計算設備的慣性特性來檢測所述移動計算設備的用戶已經(jīng)沿一方向邁出物理步的單元;用于基于感測到的慣性特性來確定所述移動計算設備沿所述方向的方向朝向以及所述移動計算設備的方位相對于在所述用戶的先前物理步處所述移動計算設備的先前方位的變化的單元;用于應用卡爾曼濾波器以基于所確定的方向朝向以及所述移動計算設備的方位的變化來確定所述用戶的朝向的單元;以及用于基于所確定的用戶的朝向、用戶的估計步長以及用于在先前物理步處用戶的先前位置來確定用戶的估計位置的單元。
示例34包括示例33的主題,并且其中用于檢測所述用戶已經(jīng)邁出物理步的單元、用于確定所述移動計算設備的方向朝向以及所述移動計算設備的方位的變化的單元、用于應用卡爾曼濾波器以確定所述用戶的朝向的單元以及用于確定所述用戶的估計位置的單元包括:針對所述用戶邁出的多個相繼物理步中的每一個物理步,用于檢測所述用戶已經(jīng)邁出物理步的單元、用于確定所述移動計算設備的方向朝向以及所述移動計算設備的方位的變化的單元、用于應用卡爾曼濾波器以確定所述用戶的朝向的單元、以及用于確定所述用戶的估計位置的單元。
示例35包括示例33和34中的任一個示例的主題,并且進一步包括:用于響應于檢測到用戶已經(jīng)邁出物理步而判定所述移動計算設備是否已經(jīng)沿非水平方向傾斜的單元,以及用于響應于判定出所述移動計算設備已經(jīng)沿所述非水平方向傾斜而忽略所檢測到的物理步的單元。
示例36包括示例33-35中的任一個示例的主題,并且進一步包括:用于判定所述移動計算設備是否已經(jīng)沿水平面旋轉(zhuǎn)了超過基準閾值的量的單元;以及用于響應于判定出所述移動計算設備已經(jīng)沿所述水平面旋轉(zhuǎn)了超過所述基準閾值的量而將所述卡爾曼濾波器重新初始化的單元。
示例37包括示例33-36中的任一個示例的主題,并且其中預定閾值是九十度旋轉(zhuǎn)。
示例38包括示例33-37中的任一個示例的主題,并且其中用于將所述卡爾曼濾波器重新初始化的單元包括:用于增大所述卡爾曼濾波器的狀態(tài)協(xié)方差以增大所述卡爾曼濾波器的誤差容限的單元。
示例39包括示例33-38中的任一個示例的主題,并且進一步包括用于響應于判定出如下項而對用戶的確定的估計位置進行細化的單元:(i)卡爾曼濾波器已經(jīng)重新初始化,以及(ii)在卡爾曼濾波器重新初始化后用戶所邁出的物理步數(shù)目超過基準閾值。
示例40包括示例33-39中的任一個示例的主題,并且其中用于對確定的估計位置進行細化的單元包括:用于響應于判定出在重新初始化后用戶所邁出的物理步數(shù)目已達到基準閾值,基于在用戶達到基準閾值所在的步時的所確定的朝向來更新在重新初始化后直至用戶達到基準閾值所在的步為止的每個物理步的用戶的朝向的單元;以及用于基于用戶的更新后的朝向來重新計算用戶的估計位置的單元。
示例41包括示例33-40中的任一個示例的主題,并且其中用于應用卡爾曼濾波器的單元包括用于應用具有狀態(tài)轉(zhuǎn)換函數(shù)xk=xk-1+Ok-Ok-1+εk以及測量函數(shù)yk=xk+δk的線性卡爾曼濾波器的單元,其中:xk是在步k處所確定的用戶的朝向,Ok是在步k處移動計算設備的方位,εk是在步k處的狀態(tài)轉(zhuǎn)換誤差,yk是在步k處所確定的移動計算設備的方向朝向,以及δk是在步k處與移動計算設備的加速度的積分相關聯(lián)的測量誤差。
示例42包括示例33-41中的任一個示例的主題,并且其中用于應用卡爾曼濾波器的單元包括用于應用具有狀態(tài)轉(zhuǎn)換函數(shù)xk=Hk-Hk-1=Ok-Ok-1+εk以及測量函數(shù)yk=xk+Hk-1+δk的線性卡爾曼濾波器的單元,其中:Hk是在步k處用戶的估計朝向,xk是在步k處的估計的朝向變化,Ok是在步k處移動計算設備的方位,εk是在步k處的狀態(tài)轉(zhuǎn)換誤差,yk是在步k處所確定的移動計算設備的方向朝向,以及δk是在步k處與移動計算設備的加速度的積分相關聯(lián)的測量誤差。
示例43包括示例33-42中的任一個示例的主題,并且進一步包括用于在多個相繼物理步的第一物理步之前初始化卡爾曼濾波器的單元。
示例44包括示例33-43中的任一個示例的主題,并且其中用于確定所述移動計算設備沿所述方向的方向朝向的單元包括用于確定所述移動計算設備沿所述方向的速度的單元。
示例45包括示例33-44中的任一個示例的主題,并且其中用于確定所述移動計算設備沿所述方向的速度的單元包括:用于通過移動計算設備的慣性傳感器來感測所述移動計算設備的加速度的單元;用于將所感測的來自所述慣性傳感器的參照系的加速度轉(zhuǎn)換成地球參照系的加速度的單元;以及用于基于所述地球參照系的加速度來確定所述移動計算設備沿所述方向的速度的單元。
示例46包括示例33-45中的任一個示例的主題,并且其中用于確定所述移動計算設備沿所述方向的速度的單元包括:用于確定將所述慣性傳感器的參照系映射到地球參照系的旋轉(zhuǎn)矩陣的單元;用于將所確定的旋轉(zhuǎn)矩陣應用于感測加速度以確定所述移動計算設備在地球參照系中的加速度的單元;用于對地球參照系中的加速度進行積分以確定在地球參照系中的速度的單元;以及用于將所確定的地球參照系中的速度投影到用戶在其上物理地邁步的水平面上的單元。
示例47包括示例33-46中的任一個示例的主題,并且進一步包括用于基于用戶邁步模型來確定用戶的估計步長的單元。