國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
52
肆、 系統建置與測詴
本研究將分三個部分進行系統建置,包含實際 RFID 定位環境佈置,及伺服 器端以及手機端的程式運作,伺服器端將以 RFID 之定位系統[34],提供手機讀 取 RFID 相關座標,手機端則透過讀取定位出來之座標檔案,配合三軸重力感測 儀等硬體設備,以決定虛擬物件在畫面中呈現位置及大小,將分以下幾個部份 說明。
一、 軟硬體介紹
(一)硬體介紹
硬體名稱 規格型號 用途
HTC 智慧型手機 Android 1.5 處理、顯示設備
主動式 RFID 標籤 RF code M100 tag 定位使用
RFID 讀取器 RF code mantis II 讀取 RFID 標籤訊號
CPU Intel 1.83GHz 處理資料
記憶體 2 Gigabytes 處理資料
硬碟 200 Gigabytes 存放資料
表 4.1:硬體介紹表。資料來源:本研究整理。
‧
(1)Borland C++ builder:BCB 為 Borland 公司在 1987 年推出的 C++程式 開發工具,具備視覺化的表單設計工具,便於使用者撰寫 Windows GUI 應用程 式、Console 應用程式、Service 應用程式等,本研究用於撰寫取得 RFID 訊號 及定位程式的開發。
(2)Eclipse IDE: 一個多用途的開發工具帄台,並且安裝 ADT(Android Development Tools plugin),ADT 為 Google 提供之基於 Eclipse 的 Android 開發工具擴充套件,本研究將使用此帄台作為 Android 的開發環境。
(3)TAVIS:RFID 廠商提供的 RFID 讀取器驅動程式,在伺服器安裝,可透 過伺服器啟動 RFID 讀取器,進而可讀取到 RFID 標籤的訊號。
(3)JRE 和 JDK 6:Java 運行環境(JRE)及開發環境 (JDK),由於 Android 是以 java 語言進行開發,在開發帄台上需安裝必要的環境以進行編譯。
(4)Android SDK 1.5:Android 的 SDK(軟體開發套件)提供了開發工具和必 要的應用程式開發介面(API),以 Java 語言配合 Eclipse 開發 Android 帄台上 的應用程式,及包含 Android 手機模擬器(Emulator),目前最新版本為 Android SDK 2.2,由於需配合實際使用硬體上的支援限制,本研究將以 SDK 1.5 進行開 發。
(5)XML(Extensible Markup Language):利用 XML 可自訂標籤名稱、描述 資料及可在不同帄台互通的特性,作為用以做為手機和伺服器端的資料傳輸格 式,本研究將在 XML 中定義使用者及標的物的位置座標格式以及關於標記點的
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
54
相關資訊,傳遞位置座標數值及顯示內容。
二、 系統流程
圖 4.1:系統流程圖,本研究整理
以系統流程圖(圖 4.1)來看,分為伺服器端及手機端兩部份系統流程,伺 服器端將進行 RFID 定位工作,首先必頇在 RFID 定位程式中設定 RFID 參考及追 蹤標籤之 ID 編號,且繪製標籤所在位置之座標圖,完成後伺服器將驅動 RFID 讀取器讀取 RFID 訊號,進一步連結 RFID 讀取器將訊號傳回伺服器,以利用訊 號強度計算出位置座標,最後產生位置座標檔案。
而手機端首先必頇安裝本研究所開發的應用程式,此應用程式將會利用手 機上的攝影鏡頭檢視現實場景的畫面,且利用電子羅盤、三軸感應器判斷使用 者之移動檢視方位,開啟應用程式後,即開始進行 RFID 定位,此時手機將會連
‧
手機將透過解析 XML 中之<X-Y>座標,進一步計算手機與標的物的角度距離 關係,最後在顯示在手機畫面中,以下將說明如何利用座標求出手機與標的物 的角度關係,及如何計算虛擬物件在畫面的位置:
(一)手機指北方位夾角
Android 帄台中可利用三軸陀螺儀感應使用者持取手機面對的角度,本研 究將利用此方式判斷使用者的視野方向,由於手機鏡頭位於手機後方,所以將 利用以 Z 軸為中心旋轉的值判斷使用者查看手機畫面時所面向的角度,此旋轉 角度直在 Android SensorManager.SENSOR_ORIENTATION 類別中,參數名稱為 value[0],此角度數值為以正北方算起 0~360o,如(圖 4.2)中所示,此值定義 為θ1,計算方法中以 Pdegree 表示。
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
56
圖 4.2:手機朝向角度示意圖。資料來源:本研究整理。
(二)標的物與正北方位的夾角
手機與標的物間,若以正北為準,可利用 RFID 定位給予手機與標的物的
<X-Y>座標,首先手機座標定義為(x1,y1),標的物座標為(x2,y2),利用此座標 計算出 X 截距(Xlength)及 Y(Ylength)截距值,再以反正切函數tan-1θ計算角 度,以手機若面向正北來說,即是標的物相對於手機的角度,以(圖 4.3)中為 例,標的物約位於手機之東北方 45 度角,此值定義為θ2,計算方法中以 Tdegree(target degree)表示。其公式為:
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
57
圖 4.3:座標圖中標的物夾角。資料來源:本研究整理。
(三)標的物與手機朝向角度的夾角
以上定義了兩個角度,手機鏡頭所面對的角度θ1及標的物相對於手機的夾 角θ2,可以利用此角度之相差,判斷並決定標的物是否出現在手機鏡頭視角中,
以dif 表示θ1-θ2。公式為:
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
58
圖 4.4:手機朝向角度,與標的物之夾角。資料來源:本研究整理。
(四)角度計算及定位方法
整合以上所列之角度及範圍,將可以下列方式計算,作為判斷虛擬物件的 顯示角度,且求出之dif 數值範圍為正向(向右)0~180o,負向(向左)-(0~180o)。
if(Tdegree>=Pdegree)
{
if(Tdegree >( Pdegree +180))
{
dif= Tdegree -360-Pdegree;
} else
‧
dif= Tdegree -Pdegree;
} } else
{
if(Tdegree >=( Pdegree -180))
{
dif= Tdegree -Pdegree;
} else
{
dif=360-Pdegree + Tdegree;
}
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
60
向左角度範圍:
圖 4.5:手機可視範圍。資料來源:本研究整理。
(六)顯示位置計算方法
螢幕上將以畫素(pixel)決定虛擬物件在畫面上顯示位置,其中位置以 (x,y)=(xposition,yposition)表示,計算位置公式中以 Xpixel 定義為螢幕寬 所含畫素,Ypixel 為螢幕長所含畫素,以本研究使用之手機為例,螢幕大小為 長 320*寬 480(pixel)(圖 4.6),系統建置時將以此數值做為計算。
另外xdegree 及 ydegree 則為透過鏡頭可觀察到之視線角度,考量不同設 備之鏡頭視角不同,在公式中以變數表達,而本研究所使用之手機鏡頭,參考
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
61
標準鏡頭視角及實際測量結果,所涵蓋視角範圍左右寬約 47 度,上下長約 30 度,將以此數值帶入公式計算,利用此角度大小劃分螢幕,公式中表達為 、 。
而為使虛擬物件上下左右顯示位置可與標的物在實際環境中之位置配合,
將利用先前所求出之 dif 計算, 即可計算出虛擬物 件 在 畫 面 中 顯 示 之 x 位 置 , y 位 置 的 計 算 方 式 將 利 用 SensorManager.SENSOR_ORIENTATION 類別中另一參數 value[1],此數值為手機 以 X 軸為中心旋轉的角度,用來判斷使用者持取手機朝上下傾斜之角度,以ydif 定義此角度名稱,利用 可計算出虛擬物件顯示之 y 位置,如此一來當使用者持取手機做上下左右之旋轉移動,虛擬物件之位置將 可做相對應的位置變換,顯示實際標的物的位置,達成擴增實境的效果,計算 公式為:
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
62
圖 4.6:螢幕虛擬物件位置計算。資料來源:本研究整理。
虛擬物件除了對應實際位置調整在螢幕中位置,虛擬物件本身可進一步對 應標的物與手機間的實際距離顯示距離拉長或縮短的效果,當距離縮短時,可 將虛擬物件放大顯示,反之當距離拉長時,虛擬物件及縮小顯示,計算的方式 首先同樣利用定位出之(x,y)座標,以距離公式計算兩者間實際距離,若手機為 點 A(x1,y1),標的物為點 B(x2,y2)則兩者距離 AB 為:
顯示上可以此距離對虛擬物件之長寬大小做等比例的調整,其中調整後之 寬表示為 xWidth,長表示為 yHeight,且虛擬物件顯示最小長寬為 xMinWidth 及yMinHeight,最大顯示長寬為 xMaxWidth 及 yMaxHeight,而調整大小的距離
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
63
範圍為 Distance,舉例而言如在 30 公分到 300 公分之內,虛擬物件做最大及 最小的顯示,則Distance 為 300-30=270 公分,例外若實際距離超過虛擬物件 大小可視的範圍,將以最大的距離設為 MaxDistance,如例子中為 300 公分,
這樣可以以下列公式達到虛擬物件大小隨距離等比例調整的效果:
四、 系統建置
(一)RFID 定位環境建置
(1)在實際環境中擺放追蹤標籤與連接 RFID 讀取器:首先將 RFID 讀取器連 結網路及電源(圖 4.7),由於實際系統設備僅有兩台讀取器,將採對角線方式 配置;在地面上以間隔 60cm,5 個為一列依序擺放 20 個標籤,形成一個矩形格 子狀(圖 4.8),並且在手機後方加上 RFID 標籤(圖 4.9)。
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
64
圖 4.7:RFID 讀取器連結圖。資料來源:本研究整理。
圖 4.8:RFID 標籤實際配置圖。資料來源:本研究整理。
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
65
圖 4.9:手機結合 RFID 標籤。資料來源:本研究整理。
(2)伺服器端設定讀取器驅動程式:伺服器端以 TAVIS 驅動 RFID 讀取器讀 取訊號(圖 4.10),首先選擇「Concentrator」→「Settings」,將 IP 位址設 定為該伺服器的 IP(圖 4.11),再來必頇設置 RFID 讀取器的 IP 位址,在「Devices」
中按左上方的星號,新增兩台讀取器設備,完成之後按上方啟動按鈕,在狀態 顯示為「Started」時即為啟動成功(圖 4.12)。
圖 4.10:開啟 TAVIS 設定圖。資料來源:本研究整理。
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
66
圖 4.11:設置伺服器之 IP 位址。資料來源:本研究整理。
圖 4.12:啟動 RFID 讀取器。資料來源:本研究整理。
(3)執行伺服器端 RFID 定位主程式 LANDMARC.exe:開啟後會出現含格子圖 之系統畫面,首先需依據實際配置的參考標籤,點選「Reference tag」,將相 對應的 ID 編號繪入格子圖中,由於格子圖示以畫素(pixel)表示標籤實際所在 的位置數值,且每格以 30pixel 繪製,而實際擺放的標籤位置間隔為 60 公分,
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
67
所以將間隔兩個格子繪入代表參考標籤的藍色點(圖 4.13)。
圖 4.13:繪製參考標籤位置。資料來源:本研究整理。
(4)選取 tracking tag 選項,系統將以紅點表示欲追蹤之標籤,輸入追蹤 標籤所含之 ID 編號(圖 4.14),完成後按下「Locating」按鍵即可開始定位,
並產生位置座標之 XML 檔。
圖 4.14:設定追蹤標籤之 ID 標號。資料來源:本研究整理。
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
68
五、 系統畫面呈現
(1)首先進入應用程式後,可輸入欲搜尋之標的物名稱,如輸入「target」,
伺服器將回傳對應該標籤名稱的位置座標,在系統起始畫面中(圖 4.15),有一 輸入框讓使用者可輸入欲搜尋標的物標籤名稱,按下「Start AR view」按鈕後,
即可進行擴增實境畫面的呈現。
圖 4.15:開啟程式畫面。資料來源:本研究整理。
(2)以下將以如(圖 4.16)中之位置做為系統操作的範例,右下角紅點為手 機的位置,左上方為標的物,進入系統時若標的物的實際位置並不在手機攝影 鏡頭之視角內,系統將以左右箭號提醒使用者需以何方位旋轉視角,而畫面右
(2)以下將以如(圖 4.16)中之位置做為系統操作的範例,右下角紅點為手 機的位置,左上方為標的物,進入系統時若標的物的實際位置並不在手機攝影 鏡頭之視角內,系統將以左右箭號提醒使用者需以何方位旋轉視角,而畫面右