• 沒有找到結果。

系統內建的語音輔助功能 VoiceOver,可搭配特定的手勢在螢幕上點擊或滑動來操作,

讓視障者能聽到手機上的每個動作,雙連視障關懷基金會更提出了「捐出二手 iPhone 計 畫」,希望視障者族群能有更好的工具以提高生活的便利性。因此,本研究以 iOS 8.0 以 上之系統作為開發環境,使用 Swift 為程式語言製作原型 APP,以串連其他裝置提供導 航服務。

為了提供視障者準確的導航資訊,本研究使用由 Punch Through 公司所生產,一款 Arduino 相容的微型控制器-LightBlue Bean,搭配由 Honeywell 公司出的三維電子羅盤傳 感器 HMC5883L 來得知視障者的面向。LightBlue Bean 開發版有 8 個數位 I/O 腳位,其 中兩腳位可以做為類比訊號輸入,附有內建的 RGB LED、溫度計與加速度計(Bosch Sensortec 公司出產之 BMA250)。LightBlue Bean 使用 BLE(Bluetooth Low Energy, 低 功耗藍牙技術)作為連線方式,為了使用 Arduino 為開發環境,須先設定好驅動程式並 裝好 Bean Loader,開發過程中亦需使用 Bean Loader 來與 LightBlue Bean 連接並燒錄程 式,本研究除了從監控器監看資料之外,同時輔以 Processing 將結果視覺化以幫助修正,

交互關係如圖 24。另外根據不同的路口狀況,將使用 Beacon 提供導航資訊,本研究將 使用 Apple 所提供之 iBeacon API 於開發 APP 中。

圖 24 開發環境運作關係圖

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

31

3.2 GuidePin 之原型設計

3.2.1 電子羅盤的原理與校正

為了提供使用者正確的導航資訊,須優先取得使用者的面向(heading)資料,再進 一步根據環境給予提示。然而,多數智慧型手機皆有內建的電子羅盤,其由三維磁阻感 測器、雙軸傾角感測器和微型控制器(MCU)構成,三維磁阻感測器用來測量地球磁場,

傾角感測器是在磁力儀非水平狀態時進行補償;MCU 處理磁力儀和傾角感測器的信號 以及數據輸出和軟鐵、硬鐵補償(台灣 wiki)。三維電子羅盤應用了 Hall Effect,以造成 電流中電子的偏向來算得電壓變化的數據而得知方向。以 iOS 為例,可使用內建的「指 南針」取得磁北或正北,APP 開啟畫面如圖 25 左,須先傾斜手機並將畫面中的紅球掃 過白色圓框以完成校正動作,其目的為得到磁感量的最大值與最小值後,即可找出圓心 的偏移量並以軟體做修正,測量值組成的空間幾何結構實際上是一個圓球,因此所有的 採樣點都落在這個球的表面上,理論同 8 字校正法(圖 25 右)。

本研究設計之 GuidePin 使用磁阻傳感器 HMC5883L,可以透過 I2C 介面讀出三軸 的原始磁場強度值(gauss)再轉化為角度,其特點為帶有高分辨率的 HMC118X 系列磁

圖 25 指南針校正畫面,左為 iPhone,右為 Android 系統

阻傳感器,並附帶 Honeywell 專利的集成電路包括放大器、自動消磁驅動器、偏差校準、

能使羅盤精度控制在 1°~2°的 12 位模數轉換器。這些各向異性傳感器具有在軸向高靈 敏度和線性高精度的特點,其測量範圍從毫高斯到 8 高斯,為低磁場傳感器中靈敏度最 高和可靠性最好的傳感器(Honeywell 官方文件)。

在使用傳感器之前須對出廠元件做磁場校正,透過 Processing 將數據圖形化,可發 現偏移和比例誤差會得到一個偏離中心的橢圓球,因此要先確定校正係數,也就是將此 橢圓修訂呈圓球形並接近原點,其步驟如下:

1. 將傳感器在空間中穩定旋轉,得出 XYZ 的最大與最小值。

2. 用 -(最大值+最小值)/ 2 算各軸偏移,也就是原點相對於橢球心的偏移 3. 因只需要方向,可以令點 x 軸的比例係數 x_gain 為 1

4. Y 的比例係數,y_gain = x_gain *(Y_MAX-y_min)/(x_max-x_min)

z 的比例係數意同,z_gain = x_gain *(z_max-z_min)/(x_max-x_min)

其中 x_gain 可把 XYZ 的單位校正為 1 以方便計算。

本研究共使用三組傳感器,皆經過在上述方法與算式校正,圖 26 為其中一組傳感 器之雙軸修正過程。(1)校正前,偏離圓心且為橢圓(2)修正偏量至正中心 (3)調整 為正圓完成校正。

圖 26 HMC5883L 出廠校正

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

33

3.2.2 傾斜修正

1. 靜止狀態之修正

三維電子羅盤通常會搭配加速度計(G sensor)一起使用,主要可利用加速度計所 測得的物體傾角,來補償電子羅盤的數值,本研究將使用 GuidePin 內建之加速計感測器 -BMA250。在水平的情況下,下列式(3)讀取 X 與 Y 軸的輸出並帶入 arcTan(Y/X)

便可得方向角,若有傾斜角度的變異數則必須先通過三軸加速度傳感器檢測出三個軸上 重力加速度的分量,再通過式(1)與(2)計算出 Pitch 和 Roll。Pitch(Φ)定義為 x 軸 和水平面的夾角;Roll(θ)定義為 y 軸和水平面的夾角,如圖 27 所示方向皆為正方向。

運算流程如圖 28,當 MCU 接收到加速度計與電子羅盤的輸出後,透過公式算出方向角 度並作補償。公式如下(1)~(3)式。

(1) 𝑋𝐻 = 𝑋 ∗ sin 𝜑 + 𝑌 ∗ sin 𝜃 ∗ sin 𝜑 − 𝑍 ∗ cos 𝜃 ∗ sin 𝜑

(2) 𝑌𝐻 = 𝑌 ∗ cos 𝜃 + 𝑍 ∗ sin 𝜃

(3) Azimuth = arc tan𝑌𝑋𝐻

𝐻

圖 27 羅盤傾斜情況

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

34

2. 行走狀態之修正

GuidePin 透過上述計算加入加速度補償後可有效減少因傾斜而產生的影響,然而若 要將感應器套用在人的移動上,則須考慮因行走帶來的晃動、任意方向的變動或是環境 的干擾皆有可能帶來雜訊,此時可使用卡爾曼濾波器(Kalman Filter)來處理突波問題。

卡爾曼濾波器是一種資料處理的演算法(optimal recursive data processing algorithm),可 從前一個結果計算預測現在的最佳結果及下一個結果,最常應用在慣性導航系統中,例 如車體運行的軌跡或四軸飛行器的平衡等,有三項重要假設:

 被建模的系統是線性的(Linear Stochastic Difference equation)

 影響測量的雜訊屬於白雜訊(White Gaussian Noise)

 雜訊本質上是高斯分佈的(Gaussian Distribution)

本研究則是利用簡化的卡爾曼濾波器來校正加速度的值(如圖 29),其內容摘要如 下步驟:

(1) 假設現在的系統狀態是 k,首先利用上一個狀態最優的結果預測下一個狀態,

其中 A 和 B 是系統參數,U(k)是 k 時刻對系統的控制量。

X(k|k-1)=A X(k-1|k-1)+B U(k) ……….. (1)

圖 28 電子羅盤傾角修正流程

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

35

(2) 此時系統結果已更新,但對應於 X(k|k-1)的斜方差(covariance)還沒更新。

其中 P(k|k-1)是 X(k|k-1)對應的斜方差,P(k-1|k-1)是 X(k-1|k-1)對應 的斜方差,A’表示 A 的轉置矩陣,Q 是系統過程的斜方差。

P(k|k-1)=A P(k-1|k-1) A’+Q ……… (2)

(3) 計算卡爾曼增益 Kg(Kalman Gain),H 是測量系統的參數,R 為測量雜訊的斜 方差。

Kg(k)= P(k|k-1) H’ / (H P(k|k-1) H’ + R) ……… (3)

(4) 更新狀態(k)的最優化估算值 X(k|k),Z(k)是 k 時刻的測量值。

X(k|k)= X(k|k-1)+Kg(k) (Z(k)-H X(k|k-1)) ……… (4)

(5) 更新 k 狀態下 X(k|k)的斜方差。

P(k|k)=(I-Kg(k) H)P(k|k-1) ……… (5)

如此將 covariance 遞迴下去就可以一直計算出現在的最佳結果,而且只需要從上一 個保存的結果推算,本研究利用簡化卡爾曼濾波器的方法來處理雜訊,可看成在同一個 系統下建模,因此令當下與跟前一時刻的加速度值相同且沒有控制量,經模擬得出測量 產生的雜訊斜方差 R=1e-5 與處理過程產生雜訊的斜方差 Q = 1e-7,代入上述算式並於 Arduino 開發環境執行以完成卡爾曼濾波器濾波方法。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

36

為了比較與使用智慧型手機取值的結果,在不手持裝置的前提下,本研究比較了手 機掛置胸前如圖 30、配戴運動臂套與使用 GuidePin 之資料,並利用 iOS 提供給之沙盒

(sandbox)取得 iPhone 本機端資料。其中使用運動臂套因行走時的手部自然擺動會造 成數據發生過大的波動,因此不採用此種方法。如圖 31 為同時使用 GuidePin 與 iPhone 走一段直線並轉彎的數據圖,可看出 GuidePin(藍)較 iPhone(紅)穩定,圖中的高峰 轉折發生在轉彎時,可發現 iPhone 反應較快約 1.5 秒,而 GuidePin 因加入濾波效果反 應較慢,但數值變化程度緩和有助於給予使用者微調方向時的提示,故後續實驗皆採用 GuidePin,並針對步行速度與採樣頻率(sample rate )做調整,以符合視障者之行走與 轉向之速度。

圖 29 系統加入卡爾曼濾波器示意圖

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

37

3.2.3 裝置外型設計

為使 GuidePin 放置於身體不輕易晃動卻又能表現出面向處,本研究嘗試掛頸處、腰 間與胸前,發現置中於胸口是較佳的位置。設計之第一版原型使用 LightBlue Bean 公司 外包裝之海綿,並固定在名片夾上如圖 32,名片夾附有鋸齒夾可固定於領口。此原型設

圖 30 以 iPhone 內建指南針測試

圖 31 使用 iPhine 與 GuidePin 之比較

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

38

計以簡便為考量,按鈕採用明顯凸起款式並固定於同一側,方便視障者於行走中以觸覺 摸索如圖 32。

3.3 APP 功能與運作設計

3.3.1 APP 介面與功能

iPhone 在此導航機制中扮演資料處理的角色,透過藍芽接收 GuidePin 與 Beacon 的 訊號,經由與資料庫比對與運算後,將導航訊息提供給使用者。本研究優先專注於導航 機制與語音內容是否適當,因此在 APP 介面端皆由研究人員控制,使用者只須控制按鈕 與聆聽導航訊息。如圖 33 為 APP 之介面與功能簡介,為了監控與修正數值,介面上將 所有的狀態都印出,以便開發人員即時得知系統運作情形,例如連線狀態可得知是否與 GuidePin 連線,文字筐可印出 Beacon 訊號強度、羅盤取得之面向角度和資料庫對應訊 息等。針對不同的情況,亦設計了開關切換已進行交叉測試,例如比較手機與 GuidePin

圖 32 GuidePin 裝置圖

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

39

的感測器精準度,濾波器加入前後的效果比較。除此之外,為了在場域中更有效的建立 行路資訊,資料庫亦可透過雲端寫入,只需重新連線即可更新資料。

3.3.2 資料庫設計

針對不同的道路環境,系統需給予相對應的導航提示。根據本研究的策略設計,系 統除了自動推播外,會根據環境條件不同給予引導,例如建議調整至號誌燈在左或右側、

建議的過馬路面向。表 5 為佈建在路口的 Beacon 搭載的訊息量,除了基本的編號 “id”

之外,還有建議的面向角度 “degree',系統將判斷在此角度正負十五度的範圍內為直行。

後兩者皆為文字訊息,“navi_info”為進入可收訊範圍內即收到之導航訊息,若靠近路口,

則會先要求找尋參考點(範例為號誌燈)並按下按鈕開啟引導,此時便會報讀“passing”

的內容並且以“degree”記錄的值為目的協助調整面向。另一方面,若該 Beacon 非佈點於 圖 33 APP 介面與功能介紹

degree

60 單位為度數,範圍為 0~359。為該路口之建

60 單位為度數,範圍為 0~359。為該路口之建

相關文件