• 沒有找到結果。

2. 遠端呈現模擬系統

2.3 軟體工具

2.3.3 多執行緒技術

(multithreading) 的技巧來解決這問題。

利用執行緒來設計程式,除了提昇效率外,還可以避免讓程式太過複雜,使

(a) 一般程式設計時的執行順序和時間的關係

(b) 執行緒程式執行的順序和時間的關係

圖2.11 (a)一般程式設計時的執行順序和時間的關係和(b)執行緒程式執行的順 序和時間的關係

圖2.12 多執行緒之程式流程圖

第三章

基於之前的成果,本篇論主要著力於下列幾項:

3.1 輔助策略

(a) (b) (c)

置、頂點和判別邊線,則可判別出物體的方向。

若影像系統獲取一物體的影像,在經由影像處理過後,我們得到此物體在空 間中的位置、頂點座標以及邊線資訊 [4],如圖 3.2 所示,其為WTK中的座標 系統,但由於目前必須從虛擬場景中來求得,所以現在只擁有物體的中心點座標 以及邊線長度的資訊,這些需經一些計算以求得出其頂點座標,圖中 Point 1 到 Point 4 為此物體的上表面的頂點座標,Point 5 到 Point 8 為此物體的下表面的 頂點座標,由於我們要判別的是物體在空間中的方向,所以在這兩組座標點我們 只需選擇其中一組就可以,且因Y軸的資訊在這用不到,所以可以把這3維的座 標圖,轉換成隻看X-Z平面的的2維座標圖,如圖 3.3 所示。

圖 3.2 物體在空間中的頂點座標圖

圖 3.3 中所示,中心點到四個頂點的距離一樣,其距離都為 ,所以當中 心點確定後,無論物體的方向為何,其四個頂點座標一定會相對出現在圓心為中 心點,半徑為 的圓上面之其中四點;現在假設物體的中心點在

r

r

(

x z0, 0

)

,而此

時Point 1的座標點為

(

x z1, 1

)

,將x 和1 z1表示成參數形式,若此時中心點

(

x z0, 0

)

為 圓心,則其可用參數形式寫成:

x1=x0+rcosθ (3.1) z1=z0+rsinθ (3.2)

其中 是中心點和Point 1之間的距離,r θ 是參數。

圖 3.3 物體在空間中之 X-Z 平面圖

當物體延著Y軸旋轉一角度dθ 後,Point 1 的座標點變成為

(

x z2, 2

)

,其可表

利用了幾何建模與物理建模技術來建構出軟物體,以幾何模型的部分來描述物體 的外觀,並以彈簧模型來描述其物理特性。在所建構的虛擬家用機器人場景中,

互動的模擬是根據家用機器人與其互動的物體所發生的互動行為來設計,例如機 器手對物體的壓、夾、擡、放等操作,總結來說,要在虛擬實境中真實的模擬物 體的行為,其主要可分為三大部分,即為幾何建模、物理建模以及互動模擬來達 成,圖3.4所示為其概念圖[29],下面再針對這三大部分做描述。

圖3.4 虛擬物體建模概念圖

3.2.2 幾何建模

deformation),這是由 Sederberg 和 Parry 所提出的[21],FFD讓使用者將要改變 外形的幾何物體放置於一個3維的平行六面體的框架中,構成這平行六面體的頂 由Bezier方程式運算,計算幾何物體上各頂點的加權和 (weighted sum) 為多少,

然後在局部座標系統底下分配各頂點位置,讓幾何物體產生形變效果,因此改變 控制點的位置,即可讓框架中的幾何物體產生形變,這也是FFD這方法的優點,

它可以提供使用者一個直覺的方式直接控制它,來改變產生所想要的物體形狀。

圖3.5 平行六面體的框架

圖3.6 FFD框架之範例

在本論文模擬中,其所建構的軟物體都為基本的幾何物體形狀,和FFD的框 架外型近似,所以本論文採用了FFD的方法來實現,這方法在電腦繪圖中,常常 被運用來改變幾何物體的形狀,接著下面描述其所運用到的Bezier運算的描述方 法。

B. Bezier演算法

Bezier演算法早在1960年由一名汽車工程師 Pierre Bezier 所提出的,剛開始 被運用在輔助設計汽車工業裡,後來此方法就被廣泛的討論,接下來針對Bezier 曲線 (Bezier curve)、Bezier曲面 (Bezier surface) 和Bezier體積 (Bezier volume) 這三部份來做描述[20,24,27,32]。

現假設有 個控制點在3維空間中,其Bezier參數曲線方程式表示如下,下

由(3.14)可知Bi,3( )u 只

圖.3.7(d)為n=3的Bezier曲線範例,其中 、 、 和 為控制點,由(3.15)

(a) 未變化前的Bezier曲線

(b)將P1移到P1'位置

(c) 將P1移到P1"位置

圖3.8 控制點對Bezier曲線的影響:(a)未變化前的Bezier曲線,(b)將 移到 位置,和(c)將 移到 位置

P1 P1'

P1 P1"

II. Bezier曲面

組成一面曲面網格(surface patches),在圖3.9(d)是將曲面網格中間的四個控制點 沿著y軸方向一起向上移動後,所產生出來的曲面形狀。

(a) (b)

(c) (d)

圖3.9 4 個控制點的Bezier曲面例子:(a)控制點未位移前的曲面網格,(b)控制 點產生位移變化後的曲面網格,(c)控制點未位移前的Bezier曲面形狀,和(d) 控制點產生位移變化後的Bezier曲面形狀

×4

III. Bezier體積

由Bezier曲線和Bezier曲面的定義後,又延伸出Bezier體積方程式,用來描述

在三維空間中立體的幾何物體,在這利用了三個參數(即u、 和 )來描述,其

函數來實現FFD這方法,因為Bezier體積方程式可以很有效的描述行變效果,且 在本論文模擬中,其所建構的軟物體都為基本的幾何物體形狀,所以在這不使用 其他用在描述複雜幾何物體的數學描述方程式。上述的這些Bezier函數中,可利 用將其階數提高,也就是增加其控制點數目,即便可描述更複雜且更細部的精確 圖案,但卻會消耗更多時間在計算上,使整體效率降低,所以本論文為了提高模 擬效率,採用4 4 4× × 個控制點來實現形變物體。

(a) (b)

圖3.10 4 個控制點的Bezier體積例子:(a)控制點未位移前的Bezier體積的 形狀和(b)控制點產生位移變化後的Bezier體積的形狀

× ×4 4

3.2.3 物理建模

在虛擬實境中除了上述的幾何建模技術,用來描述物體的幾何外型外,還需 利用物理建模技術來描述物體的行為,在這是利用彈簧模型 (spring model) 來模 擬彈性物體的物理模型,其建構方式是在控制點間架設彈簧,而每個彈簧可以描 述如下:

F = − ⋅K

(

LR

)

(3.22)

3.3 動態行為

一個為碰觸點 (Haptic Interface Point),簡稱為 HIP,即為機器夾爪的頂點,另一 個為理想的碰觸點 (Ideal Haptic Interface Point),簡稱為 IHIP [12],也就是機器夾

爪剛好碰觸到物體表面時的那個點;當 HIP 位於在物體外面時,則會繼續去做 者去感受,後來 Zilles 和 Salisbury 就提出了一種方法來克服這問題[28],可是 這方法不是一個法則就可以處理各種形狀的物體,它是針對不同的物體形狀,採

第四章

製出來,最後完成整個場景,圖4.4為完成後的俯視圖,另外圖4.5 (a)-(f)為場景中 的幾個視角畫面,個分別為客廳的畫面、主臥室畫面、臥室畫面,廁所畫面、廚 房畫面、餐廳畫面。

建構完家庭場景後,接下來就是建構與機器人互動的物件,本論文朝向家用 娛樂方面來做發展,所以我們設計給予虛擬機器人的就是下棋任務,在這我們選 擇是玩直行棋遊戲,如圖4.6所示,棋盤上有四邊形立方體棋子和六邊形立方體 棋子,共有四粒棋子分兩種顏色,其遊戲規則:有兩個玩家,每個玩家持一種顏 色的棋子,在移動時只能直行走動,可以往前走或是往後退,但往前走時,走動 的步數不可超過對方的棋子位置,持續到其中一方玩家無路可退時,那方玩家就 算輸了這場遊戲。

圖4.1 家用機器人系統中的 Home robot

(a) 側視圖 (b) 前視圖

圖4.2 虛擬家用機器人: (a)側視圖和(b)前視圖

圖4.3 虛擬家庭場景的設計圖

圖4.4 虛擬家庭場景的俯視圖

(a)客廳 (b) 主臥室

(c) 臥室 (d) 廁所

(e) 廚房 (f) 餐廳

圖4.5 家庭場景畫面:(a)客廳, (b)主臥室, (c)臥室, (d)廁所, (e)廚房,和(f)餐廳

圖4.6 直行棋

4.2 輔助策略的功效表現

所發展的輔助策略是為了幫助使用者操控虛擬機器人來完成下棋的任務,另 一方面在家庭場景中也規劃出5個視角,以利使用者觀察操控,第一個視角就是 位於在機器人車身前面的視角,第二個視角是位於機器人的左側邊,第三個視角 是位於虛擬機器人後上方,第四個視角是位於棋盤上方俯視的視角,最後一個是 可移動的視角,這視角可以透過鍵盤的控制,移動到使用者自己想要的角度來觀 看,圖4.7(a)-(d)為機器夾爪和正立方體發生互動前,先利用輔助策略讓機器夾爪 旋轉到與物體邊線的正交方向,再與棋子產生互動行為,圖4.8 (a)-(h)為虛擬機器 人與棋子發生互動的過程,其順序首先是由一玩家操縱搖桿進而去控制虛擬機器 人,讓機器夾爪去移動藍色的棋子,另一位玩家則是操控鍵盤,讓另一位玩家可 以移動綠色的棋子。

(a) 互動前的前視圖 (b) 利用輔助策略後的前視圖

(c) 互動前的俯視圖 (d) 利用輔助策略後的俯視圖

圖4.7 輔助策略的表現:(a)互動前的前視圖, (b)利用輔助策略後的前視圖, (c)互動前的俯視圖,和(d)利用輔助策略後的俯視圖

(a) 與立方體棋子互動前之側視圖 (b) 機器夾爪旋轉後之側視圖

(c) 機器夾爪抓取立方體棋子 (d) 機器夾爪放鬆立方體棋子

(e) 與正六立方體棋子互動前之側視圖 (f) 機器夾爪旋轉後之前視圖

(h) 機器夾爪放鬆正六立方體棋子 (g) 機器夾爪抓取正六立方體棋子

圖4.8 虛擬機器人與棋子互動的過程:(a)與立方體棋子互動前之側視圖, (b) 機器夾爪旋轉後之側視圖, (c)機器夾爪抓取立方體棋子, (d)機器夾爪放鬆 立方體棋子, (e)與正六立方體棋子互動前之側視圖, (f)機器夾爪旋轉後之 前視圖, (g)機器夾爪抓取正六立方體棋子,和(h)機器夾爪放鬆正六立方體 棋子

4.3 物體模擬形變

建構軟物體方就比前面複雜許多,下面就分成幾個步驟來完成,首先第一步

驟我們先建構一六面體,如圖4.9所示,這物體是由3072個頂點所組成的,圖4.9(a)

圖觀察可知,當K值變大時,相同的擠壓深度其所回饋回來的力也就會隨之增大。

(a) 幾何模型 (b) 線架構模型

圖4.9 形變物體模型:(a)幾何模型和(b)線架構模型

(a)控制點與幾何模型 (b)控制點與物體的線架構模型

圖4.10 形變物體上的控制點:(a)控制點與幾何模型和(b)控制點與物體的線架構 模型。

圖4.11 虛擬機器人與軟物體互動前情形

(a) 壓 擠 之 互 動 行 為 (b) 控制點在壓擠動作中變化情形

(c) 側邊壓擠之互動行為 (d) 控制點在側邊壓擠動作中變化

(e) 夾擠之互動行為 (f) 控制點在夾擠動作中變化情形

(g) 抓取之互動行為

(h) 控制點在抓取動作中變化情形

圖4.12 機器夾爪與彈性物體的互動過程:(a)壓擠之互動行為, (b)控制點在壓擠 動作中變化情形, (c)側邊壓擠之互動行為, (d)控制點在側邊壓擠動作中 變化情形, (e)夾擠之互動行為, (f)控制點在夾擠動作中變化情形, (g)抓 取之互動行為,和(h)控制點在抓取動作中變化情形。

(a)X軸方向的回饋力 (b)機器夾爪頂點X軸位置

(c)Y軸方向的回饋力 (d)機器夾爪頂點Y軸位置

(e)Z軸方向的回饋力 (f)機器夾爪頂點Z軸位置

圖4.13 與軟物體發生互動行為時的位置和力資訊,其彈性係數 : (a)X軸方向的回饋力, (b)機器夾爪頂點X軸位置, (c)Y軸方向的回饋力, (d)機器夾爪頂點Y軸位置, (e)Z軸方向的回饋力,和(f)機器夾爪頂點Z軸 位置

500 ( / )

K = N m

(a)X軸方向的回饋力 (b)機器夾爪頂點X軸位置

(c)Y軸方向的回饋力 (d)機器夾爪頂點Y軸位置

(e)Z軸方向的回饋力 (f)機器夾爪頂點Z軸位置

圖4.14 與軟物體發生互動行為時的位置和力資訊,其彈性係數 : (a)X軸方向的回饋力, (b)機器夾爪頂點X軸位置, (c)Y軸方向的回饋力, (d)機器夾爪頂點Y軸位置, (e)Z軸方向的回饋力,和(f)機器夾爪頂點Z軸 位置

300 ( / )

K = N m

4.5 遠端操控模擬實驗

器人在虛擬場景中移動的座標點位置資訊,將這些相對遠端環境的位置資訊透過

圖 4.15 虛擬實境家用機器人遠端操控模擬系統架構圖

(a)未接觸到牆面 (b)接觸到牆面

(a)未接觸到牆面 (b)接觸到牆面

相關文件