• 沒有找到結果。

第一章 緒論

第三節 論文架構

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

第三節 論文架構

本論文共分為五個章節,各章內容簡述如下:

一、緒論

闡述本論文之研究動機與目的,並對論文做概括化介紹。

二、文獻回顧

本論文文獻回顧共分為三大部分,首先針對本研究所使用之行動裝置 系統 Android 進行回顧,第二部分為慣性導航,最後則是對本研究使 用之室內定位流程:步長估計、步伐偵測、行人航位推算、地圖匹 配、室內定位校正進行回顧。

三、研究方法

介紹本研究使用之方法,包含最小二乘擬合、改良式的 Wolf method、行人航位推算法與坐標校正方法。

四、實驗結果與分析

針對行動裝置室內定位結果進行分析比較,證明本研究提出之校正方 法可以有效運用於室內定位,提升室內定位品質。

五、結論與建議

根據提出之研究方法與實驗成果進行討論,並提出未來進行相關研究 之建議。

4

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y 第二章 文獻回顧

第一節 Android 系統

一、Android 系統架構

Android 系統為分層式架構,使用者於行動裝置所使用的應用程式即為 Android 軟體堆疊的結果。最上層為應用程式(Applications),中間層包含應 用程式框架(Application Framework)、函數庫(Libraries)與 Android 執行環境 (Android Runtime),最下層則為 Linux 核心(Linux kernel)。

圖 1 Android 階層圖(本研究自行整理)

使用者所使用的應用程式,如各類的遊戲、瀏覽器、通訊錄等,皆包含 於應用程式層。應用程式框架可以讓設計師完整存取標準應用程式介面,

方便日後重覆使用。不同應用程式可以有不同的特殊功能,而應用程式框 架則讓應用程式可以更容易的取得其他應用程式的特殊功能。而應用程式 框架主要元件包含:

 活動管理(Activity Manager):

控制 Android 應用程式的生命週期,應用程式為活動所組成,而活動管 理也同時管理著不同應用程式間的切換活動。

 內容管理者(Content Manager)

5

 資料管理(Resource Manager)

資料管理元件則用來讓應用程式存取其資源,例如圖形檔案的儲存。

 定位管理(Location Manager)

定位管理元件可以用來讓 Android 行動裝置追蹤位置資訊,或者提供 地圖的定位功能。

 通知管理(Notification Manager)

通知管理元件則是提供使用者一些重要的通知訊息而不打斷使用者正 在執行中的工作,例如社交軟體的訊息通知或電子郵件。

函數庫負責支援應用程式框架各元件的執行,這些函數庫由 C/C++語 言撰寫,其中包含如瀏覽器引擎的 WebKit、3D 繪圖的 OpenGL、資料庫的 SQLite 與多種媒體播放的函數庫(陳會安, 2015)。Android 執行環境層由虛 擬機器和核心 Java 函數庫組成,虛擬機器為 Google 針對行動裝置所做的 Java 執行環境,因為 Android 應用程式的撰寫語言為 Java,在 Android4.4 版本以前所使用的虛擬機器為 Dalvik VM,於 4.4 版新增更有效率 的 ART(Android Runtime),因此撰寫 Android 應用程式,編譯完成 Java 類別檔 後還須轉換成虛擬機的格式,才能在 Dalvik VM 或 ART 執行,每一個應用

二、Android Activity 生命週期

Android 生 命 週 期 意 即 活 動 狀 態 的 管 理 , 為 活 動 管 理 員 (Activit y Manager)的主要工作。Android 程式與其它程式有一個很大不同 在 於 ,

6

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

Android 程式主要是撰寫程式碼來回應應用程式狀態的改變,而非撰寫程式 碼來改變應用程式的狀態。生命週期可簡易分為:啟動、執行、暫停、停止、

移除。

圖 2 Android 生命週期(陳會安,2015)

陳會安(2015)簡單介紹了 Android 生命週期中每一個階段的特性與執行 時機,分述如下:

 啟動

執行應用程式及進入啟動狀態,依序呼叫 onCreate()、onStart()和 onResume() 方 法 後 會 進 入 執 行 狀 態 。 onCreate() 、 onStar t() 、 onResume()三個方法稱為「回撥方法」(Callback Method),開發者 透過撰寫程式碼於回撥方法下,來回應活動狀態的改變。

 執行

當應用程式顯示於介面上並且與使用者互動中即為執行 狀態,在 Android 系統中,任何時刻都會有一個應用程式處於執行狀態。處 於執行狀態的應用程式意味著擁有最高權限使用記憶體 與其他資 源來提升執行效率。

7

 轉換至執行狀態:呼叫 onRestart()、onStart()與 onResume ()轉 換至執行狀態。

 轉換至移除狀態:當記憶體過低或者使用者自行將程 式關閉 就會呼叫 onDestroy()轉換至移除狀態。

 移除

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

第二節 慣性導航系統

慣 性 導 航 系 統 (Inertial Navigation System, INS) 是 由 慣 性 導 航 單 元 (Inertial Navigation Unit,INU)所組成之完整三維航位推算系統。一套完整 的慣性導航系統包含一組慣性感測器(Inertial Measurement Unit,IMU)以及 導航處理器;慣性感測器包含三軸加速度儀與三軸陀螺儀,導航處理器則 對慣性感測器輸出之訊號進行積分獲得速度、位置與姿態資訊(如圖 3)。慣 性導航由於加速度儀與陀螺儀會持續累積誤差,因此慣性導航之誤差會隨 時間增加(Groves, 2013)。

圖 3 慣性導航系統結構(重繪自 Grove,2002) 一、加速度儀

圖 4 簡化之加速度儀(重繪自 Grove,2002)

加速度儀感測器(Accelerometer Sensor)之設計原理為透過兩端彈 簧來約束檢測器,當加速度儀沿著敏感軸向移動時,兩端彈簧將受到 擠壓或拉伸,因此檢測器與加速度儀之外殼產生相對運動,外殼與檢

9

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

此若結合兩種技術,將可以提供長時間、短時間高精度的定位成果,且在訊 號遮蔽的情況下仍然能完成導航定位工作(如圖 5)。

圖 5 INS/GNSS 組合結構(重繪自 Grove,2008)

慣性導航早期皆是為軍事平台而建,因此 INS ㄧ直是敏感度高且受管 制的導航系統(江凱偉,2005),例如慣性導航最早於 1942 年被德國運用於 V2 火箭上,1950 年代的彈道飛彈、1960 年代的太空阿波羅計畫。而近年 慣性導航趨勢為應用微機電技術 MEMS 製造的微型慣性導航裝置,其具有 體積小,耗電量低等特性,例如 Xioji Niu et al.(2012)使用 iPhone4 內建之慣 性感測器結合 GPS 實現車用導航的目標,研究中證實了行動裝置微機電系 統所獲得的訊號值,經過校正後可以當成慣性導航中的慣性元件來使用,

不僅可以提升 GPS 定位精度還可以彌補 GPS 因訊號遮蔽無法定位的困境,

亦可用來減少 GPS 的定位誤差。

除此之外,慣性導航系統亦廣泛的運用在地底測量、交通工具、機器人 技術中(Weston and Titterton, 2000)、船艦慣性導航(Ship’s Inertial Navigatio n Systems,SINS)、飛行器導航、水井探勘的測量或農業在收割季之應 用等 (Weston and Titterton, 2000)。Koifman et al.(1999)即針對低成本慣性導航裝 置進行研究,將其運用在飛機飛行動態上,並透過數學公式與卡爾曼濾波 校正低成本慣性導航裝置之訊號,最後得到的結果更證明了經過適當校正 的低成本慣性導航系統,在飛行動態上表現甚至比純慣性導航系統要佳。

11

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

第三節 行人航位推算

航位推算(Dead Reckoning)為一種相對導航技術,原理為從已知點起算,

透過持續計算坐標來更新位置資訊(Beauregard and Haas, 2006),如圖 6 所 示。而應用於行人上即稱為行人航位推算法(Pedestrian Dead Reckoning, PDR)。行人之移動距離可以透過使用加速度感測器偵測步伐並估計行人的 位移,而加速度感測器需放置於人體身上,才能偵測到人體移動所產生的 加速度變化(Pratama and Hidayat, 2012)。基本上一套完整的行人航位推算技 術需要包含:方位投影、濾波、步伐偵測與步長估計(Pratama and Hidayat, 2012),然而在 Pratama 與 Hidayat 的研究中排除了方位投影的步驟,因該研 究中所使用的 PDR 模式為簡易的推算模式。近幾年,行人航位推算法則透 過結合慣性元件被廣泛運用來針對 beacon-free 的個人定位。

圖 6 PDR 示意圖

PDR 的使用成本較其它定位方式低,其透過行動裝置獲得陀螺儀與加 速度儀資訊後,搭配地圖即可進行定位。然而造成誤差的因素包含使用者 行走頻率不同、步長大小差異與手持行動裝置習慣等皆會影響定位結果(如 圖 7),且 PDR 方法只要稍微有誤差,在後續的定位上誤差會持續累積,導 致結果誤差越來越大。因此在使用 PDR 進行定位同時,需要搭配有效的校 正方式才能將誤差限制於合理範圍內,提高定位的準確度。

12

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

圖 7 PDR 結構

在 PDR 公式中(如式 2-1)可以發現,PDR 方式推算坐標的原理與一般 坐標計算原理類似,差別在於 PDR 所使用的計算參數為步長 Step Length 與 旋轉角θ,其概念為由時間點 n 的坐標值推算到時間點 n+1 的坐標值。坐標 推算的過程中,步長 Step Length 的影響量大,若步長誤差過大,將導致往 後每一步的距離計算錯誤,使得坐標偏離,誤差也會累積,這是慣性導航誤 差量會隨時間增加的主要原因。

𝑋𝑋𝑛𝑛+1= 𝑋𝑋𝑛𝑛+ 𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆ℎ ∙ cos𝜃𝜃

𝑌𝑌𝑛𝑛+1 = 𝑌𝑌𝑛𝑛+ 𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆ℎ ∙ 𝑠𝑠𝑠𝑠𝑆𝑆𝜃𝜃 (2 − 1)

一般而言較少直接使用 PDR 進行導航定位工作,儘管 PDR 在短時間 內精度高,但隨著時間的增長,坐標將偏離正確位置。因此,PDR 常搭配 其它定位方法,使其能在合理的精度範圍內完成室內導航定位工作。 Liu et.al(2015)透過動態辨識方法來輔助 PDR,且結果顯示透過動態辨識法來輔 助 PDR 確實可以提高 PDR 之定位精度。Pratama et.al(2012)使用智慧型手 機完成 PDR,其著重於步伐長度之測試,透過不同的步長計算方法來獲取 PDR 坐標計算結果,然而其於研究中並無搭配坐標校正方法,因此其最終 定位結果閉合差,最小值亦達到 1.3913 公尺。Seco et.al(2009)亦使用 PDR 法計算坐標,其亦透過不同之步長計算方法來檢測 PDR 坐標計算結果(如 圖 8),其結果因沒有進行有效校正而不佳,在定位過程中仍有許多坐標偏 離真正行走範圍。

13

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

圖 8 Seco 坐標計算結果(Seco et.al., 2009)

在 PDR 方式推算的過程,可以使用不同的方式估計步長,步伐偵測也 有多種可行方案來尋找計算坐標的時間點,以下就步長估計與步伐偵測進 行回顧:

一、步長估計

步長估計的準確性會直接影響 PDR 坐標計算結果,若估計誤差過大,

將導致坐標迭代計算過程持續累積距離誤差。步長獲取之最簡易方式為直 接量測使用者步長,然而本研究之室內定位技術是以推廣普及室內定位為 出發點,因此必須有估計步長之系統,使任意使用者可以獲得自身步長的 估計長度。

Valérie Renaudin et al.(2012)提出一模型來估計步長,其認為可以透過給 定使用者身高,來尋找行走頻率與步長間的最佳線性關係,如式 2-2:

s = height ∙ �a ∙ 𝑓𝑓𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠+ b� + c

K = {a, b,c} ϵ R (2− 2) 式 2-2 中,height 代表使用者身高,𝑓𝑓𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠為行走頻率,K 則為方程式係數,

式 2-3 透過簡易最小二乘擬合方式,可以求得 a、b、c 三個係數(式 2-4),

而 K 集合則做為起始值𝑥𝑥0使用:

而 K 集合則做為起始值𝑥𝑥0使用: