動態虛擬駕車平台研發及其在駕駛員心理負擔之腦波估測與應用

 

 

研究生:黃騰毅   指導教授:林進燈

國立交通大學電機與控制工程學系

 

 


研究主題

 

在國外的研究中顯示(Basar, 1980; Brandt, 1997; Carter et al, 1998; Chapman et al, 1995; Jung et al, 1995-2001),許多災害的發生都是因為缺乏警覺性,注意力不集中,或者不當的決策時機所造成的,尤其是在港口船舶的導航上,機場塔台飛機秩序的管制上,鐵公路運輸駕駛員和工廠的安全監控者身上。錯誤的發生往往是在警覺性和注意力短暫的疏忽過程中所導致。相關的研究顯示,在單調的工作場合中,人類的警覺性跟注意力並不會一直維持在清醒的狀態下,尤其是在違反生理睡眠週期的情形中。在現階段的電腦控制介面設計上,對於一些需要人類親自做出決策的工作項目,都簡單的假設使用者可以一直維持在清醒的狀態,可以有能力解決非預期性發生的問題,而且也不考慮不同人、時、事對心理工作負荷承受力所造成的變化,當越仰賴這樣的行為設計的同時,我們就越容易遭受到因為失神所引起的意外事件。

 

而隨著醫學、生物科技、電機資訊等領域的快速發展,我們對人體也因此有了更深層的了解,雖然直到今日,人類的奧妙仍像是一巨大謎團,但由已知人腦的組織與架構,以及人體中可量測到的訊號與反應,已經足以讓研究人員思考腦波、肌電波等生理訊號和精神狀況的關係。

 

本研究藉由動態模擬與虛擬實境在汽車駕駛等方面之模擬驗證,測量人體於心理工作負荷,研究不同虛擬動態車輛駕駛環境下,駕駛者承受工作壓力負荷時之生理反應跡象,並比較所搜集之人體生理系統資料與實驗所獲得之生理反應,並建立出受測者的即時身體和精神上的心理負荷模型及其偵測技術。

 

以虛擬實境模擬駕駛環境,可以防止在真實車輛中量測腦波帶來的不便性,以及成本的消耗,而且在外界環境之中帶來的干擾過多,影響腦波的情形太複雜而難以估計,在虛擬實境裡可以使駕駛者只針對較少的環境變化而量測,使得到的腦波較單純而更容易分析。且在研究多種狀況下的實驗,虛擬實境可以讓場景較快產生要實驗的環境狀況,而實車則需要較多時間去得到需要的環境。而最重要的就是安全的問題,在實體車子裡有很多危及安全的實驗都不能實行,對我們而言分析駕駛者的心理工作負荷、疲勞度…等,在實車上更是危險。所以我們採用成本較低廉、時間較節省、干擾源較少及安全性較高的虛擬實境動態實驗方式進行駕駛員心理負擔之腦波估測研究。

 

研究說明

在我們的研究上主要是建立一動感駕駛平台,以及設計腦波的實驗。

 

動感模擬平台

在汽車的動態模型之中,我們探討了一些有關於汽車轉向、引擎加速及懸吊系統的問題

 

1. 汽車轉向

在汽車的轉向中,是由前輪轉一角度,後輪跟著一起前進的,而我們寫的場景程式裡,雖可以得到前輪轉的角度,但是我們還需要車體真正轉的角度,以及前進的距離。要求得這兩項重要的參數,我們以車子轉彎的瞬間,移動的軌跡中,分析其幾何的變化來求得。假設汽車轉彎時,是以內側後輪為支點而旋轉,而在前輪順著它自己轉的角度前進的時候,後輪包含支點的輪子也會跟著被拖行一段距離,而後輪所前進的距離及方向,我們採用近似的方法,假設支點在移動的瞬間,是以筆直朝原來的方向移動一段距離。

 

用這樣的關係和已知的條件:以瞬時速度外側車輪移動距離為v,車輪轉α度,加上前後輪距l,輪軸長w。求出車體真正轉的角度β,和支點輪移動的距離z

 

1a)為車子右轉的假設圖,經過簡化可以留下我們需要的資訊如圖1b),接著做輔助線以求得z、β,如圖1c)所示。

以四邊形上下兩邊相等,可求得β。

以四邊形左右兩邊相等,可求得z

 

1、(a)右轉假設圖b)右轉簡化圖c)右轉加輔助線

 

 

2. 傳動系統

從引擎到車輪之間,可分成幾個部分:引擎→變速箱,變速箱→傳動軸,傳動軸→輪軸,輪軸就轉動車輪。在以下分別探討這幾部分中,扭力和加速度的關係。

 

引擎→變速箱:由引擎開始傳輸至傳動系統之實際扭力必須扣除用來加速所有轉動元件之慣量,在這裡我們只考慮一些主要的元件慣量。應用牛頓第二定律,從引擎輸出扭力Te,扣除用來加速引擎慣量Ie aeIe=引擎轉動慣量,ae=引擎之轉動加速度),而成為變速箱的輸入扭力Tc為:

Tc = Te - Ie ae

 

變速箱→傳動軸:變速箱輸出的扭矩會經由齒輪比Nt而放大,但也會由於齒輪及各軸之慣性損失而有所降低,若變速箱之慣量可由其輸入端之值來決定,其損失可表示成It aeIt=變速箱之轉動慣量,轉動加速度和引擎相同),那麼輸出至傳動軸之扭力Td可以下式估算:

Td =( Tc - It ae) Nt

 

傳動軸→輪軸:輸入至傳動軸的扭力,扣除用來加速傳動軸轉動的慣量Id ad後(Id=傳動軸之轉動慣量,ad=傳動軸之轉動加速度),經過最終傳動比率Nf放大後,會等於輸入到輪軸上之扭力Ta,此扭力亦會等於地面上之牽引力Fx之扭矩Fx rr=車輪半徑),加上加速車輪及輪軸之轉動慣量Iw awIw=車輪及輪軸之轉動慣量,aw =車輪之轉動加速度)。

Ta =( Td - Id ad) Nf = Fx r + Iw aw

 

接下來把上列一些式子串起來,讓引擎輸出扭力可以直接和地面上之牽引力做關連,利用齒輪比和加速度的關係把整個式子簡化,其關係為:

ad = Nf aw ae = Nt ad = Nt Nf aw

 

又由於車輪前進之加速度ax為車輪旋轉加速度aw乘以車輪半徑r,因此可得:

 

其中NtfNt Nf

 

至於傳動系統諸元件:變速箱、傳動軸、差速器及輪軸,因機械和黏性損失所產生之效率降低,在我們的場景建構之中暫不考慮這個問題。由上列的方程式,可以分成兩部分:(1)右邊第一項為引擎扭力乘以整體齒輪比,再除以輪胎半徑。此分項代表在地面上之穩態牽引力,以此克服空氣動力及滾動阻力之道路負載力量,用來加速或爬坡。(2)右邊第二項代表由引擎及傳動系統各元件慣量所產生之牽引力損失,括弧內之項代表經由元件及車輪間數值齒輪之平方放大後,各元件的慣量。

 

3. 懸吊系統

以場景中的懸吊系統來說,其主要功能在於:(1)提供垂直的柔度,使得車子在不平坦的道路移動的時候,車子的姿態可以改變的很平順。(2)對由縱向力(加速、減速)、側向力(轉向)及車身傾斜所產生之負載轉移的影響,做出合適的反應,在懸吊系統上,我們採用最簡易的方法來模擬它,就是在四個輪子上各加一個彈簧及阻泥來代表它,而加諸在各彈簧上的力為承受車子本身的重力,再加上加速時所產生之力矩的變化。以下分為縱向及橫向負載的轉移來探討。

 

3.1 縱向力

車子受到縱向力的時候,其受力的關係如圖2所示,在此我們忽略空氣阻力、滾動阻力等,單純只考慮車子受到縱向加速力、地形坡度θ的影響,施加給前輪Ff及後輪Fr之力的變化。

2、車身受縱向力關係圖

 

在圖中的車子上,W為作用於車子質心之車重,大小等於車子的質量M乘以重力加速度g,在此斜坡上W分為兩個分量,一個是垂直路面的餘弦分量Wcosθ,另一則是平行路面之正弦分量Wsinθ。而車子的質心距離地面的高度為h,與前輪軸的水平距離為b,後輪軸則為c,兩輪軸中間的距離為L。而受到Fx之力為受到向前加速的反作用力,它也會作用於質心,大小等於M˙axax為前進之加速度)。

 

各車軸所承受之負載包含一靜態分量,以及受到其他力量的作用所產生之由前輪到後輪(或後輪到前輪)的負載轉移,可由車輪與地面之接觸點之力矩和來求得。假設圖中車子未在傾斜上加速,那麼對A點之力矩和為零,如下所示:

 

化簡可求得前輪之負載Ff

後輪之負載Fr可由B點的力矩和來求出:

 

3.2 橫向力

如圖3所示為車子右轉時受到橫向力作用時的受力情形,與縱向力的分析一樣,考慮轉向加速力及地形傾斜角φ的影響,以得到左側車輪Fi與右側車輪Fo受到的負載。

3、車身受橫向力關係圖

 

在圖中車子的質心位於車子的中間,與兩旁車輪的水平距離,剛好等於兩側車輪的距離t之一半。而FY為車子向右加速之反作用力,它會作用於質心,其大小會等於M˙ayay為向右位移之加速度)。另外由於路面傾斜φ度的關係,我們把車重W也分成水平Wsinφ和垂直Wcosφ路面兩分量。

 

各車軸所承受負載之靜態分量,以及受力所產生之由右輪到左輪(或左輪到右輪)的負載轉移,亦由車輪與地面之接觸點之力矩和來求得。假設圖中車子未在傾斜上加速,那麼對C點之力矩和為零,如下所示:

化簡可求左輪之負載Fi

右輪之負載Fo可由D點的力矩和來求出:

 

接下來把由縱向力得到的負載,及橫向力得到的負載合併成四個輪子各自的負載。首先把式子再做一些簡化,令bcL/2,則受到縱向力車子的前輪負載變成:

後輪則為:

 

在合併的時候,除了把兩輪受到的負載除以一半(如縱向方面的前輪,要分給左前輪跟右前輪)之外,對應在同一輪的值相加之後也要再平均。另外,兩邊的式子還必須做一點變化:

 

縱向負載要部分加上路面橫向的傾斜:

W => W cosφ

橫向負載要部分加上路面縱向的傾斜:

W => W cosθ

合併之後的左前輪的負載Fif為:

右前輪的負載Fof

左後輪的負載Fir

右後輪的負載For

 

從這些式子可以看出,在各輪的負載數值上,可分為三個分量。(1)左邊第一分量為車子靜態負載,為車子本身的重量垂直於路面的分量。(2)左邊第二項為車子左右兩邊之動態負載,會隨車子轉向及路面傾斜而加到左右兩側。(3)右邊第一項為車子前後之動態負載,會跟著車子前後加速及路面傾斜而影響前後兩側。

 

經由推導之後,我們可以得知在各輪上的負載,與彈簧壓縮x所產生之力kxk為彈性係數)及阻泥力CV,可推算出懸吊系統震盪之加速度。

 

腦波實驗之設計

 

在本章中將介紹駕駛場景的設計,以及用來量測腦波之實驗規劃。

1.  無盡直線道路製作

在建構走不到盡頭的直線道路時,最重要的是道路3D物件的製作,我們只需完成一段路,而讓這段路最前端和最後端的物件能夠完全連接起來。要完全能夠密合,可以在製作物件的時候,將其自身複製一份,把複製那段路的最前端連到本身的最末端,再調整連接處到完全密合即可。

 

用測量場景參數的方法,測出路的長度。之後在場景裡依據路的長度連接幾段同樣的路,鎖定一段路程讓車子只能在裡面跑,當車子跑出那段路的時候把車子的座標減去路的長度,這樣就可以讓駕駛者覺得一直跑在一段連續的道路上了。

4、直線道路

 

2.  連續隨機彎路的製作

在建構彎路時,利用做直線道路的方法,多做幾段彎曲度不同的道路,並且把每一段最後彎了幾度記下來,在彎曲度上要注意,每一段路相同的距離,彎的角度要盡量一樣,這樣比較有利於之後車子與欄杆間距的量測。

 

用測量場景參數的方法,測出每段路的起始點和終點的垂直距離與水平距離。在連接每段路的時候,用隨機的方法選出一段路,根據量到的距離與已知的角度,連接起來。

 

車子在場景中移動的時候,通常放固定的路段數,每經過一段路時,會把最前面的路移除,再隨機選一個彎路加到路的最底端,這樣就可以讓車子一直在場景中移動,而且不會有後面的路會碰到前面路的問題。

5、彎路

 

3.  隨選地形資料的建立

WTK的場景中,要得知一3D物件與另一3D物件的距離,可以使用WTK的函示WTnode_rayintersect(),此函示功能在於給定一個起點座標、偵測方向、及測量物件,從起點循著偵測方向出發,若是有碰到偵測物件,則會給一個距離,否則回傳NULL。在一般場景裡,要得知車子的四個輪子距離地面的高度,需偵測四次,越複雜的地形偵測時間越久。所以在較複雜的地形時,預先建立好地形高度的資料,將可以節省很多運算的時間,使得場景速度可以加快。

 

我們所建構的地形資料庫是把欲偵測的地形用一方形區域框起來,把這區域平均切割成1000X1000個小區域,再紀錄每個小區域的高度。而在決定用多大區域框起來之前,必須先求得上下左右的邊界值,先利用WTK提供的函示WTnode_getradius() 得到中心點到最遠端的距離,用此來求出最遠有可能會到達的邊界,接著使用WTnode_rayintersect(),在每一個小區域的上空由高到低偵測是否有地形存在。

 

量測左邊界之方法為:從中心點出發,有偵測到地形時,就持續向左邊筆直前進,若是偵測到無地形時,先向上下附近的區域偵測,有地形的時候就繼續從此區域向左邊移動,若是附近都沒有,就從上面最遠的邊界開始向下偵測,若是又碰到地形就繼續前進,若是偵測到最下面的邊界都沒有地形時,其右邊的區域即是最左的邊界了。其他三邊的也是一樣。

 

找到邊界後,接著就在邊界裡用WTnode_rayintersect(),由高到低求出每一小區域的高度,在得到所有的高度後,如圖6a)所示有些地區如圍牆、草叢、森林等,都得不到其高度的資訊,原因在於他們在建構的時候,都沒有使用到水平的面,這樣由高處垂直往下偵測的時候,自然就碰不到了。為了要克服這個問題,必須要從水平的方向再進行高度資料的修正。

 

在水平偵測方面,分成上下及左右來回的偵測。如圖6b)以向左為例:由已建好的地形資料庫中,從最右邊開始向左,先找到一凹地,這凹地邊界的定義為,相鄰兩點的高度差距在一距離以上,通常這差這距離會使得車子無法向上通行。接著從凹地最右邊開始,從此地區的高度加上一距離,當作WTnode_rayintersect()偵測的原點,向左邊偵測,若是碰到障礙物時,則把偵測原點放到障礙物前幾格做第二次確認,其原點座標一樣是當時的高度加一距離,若是偵測到的距離和障礙物的座標吻合時,即可以把他的高度加到地形資料庫裡,加上去的高度只要是車子無法通行的高度即可。接著移動到障礙物的後面,向左繼續做重複的動作,直到碰到凹地的最左邊為止,之後再尋找下一個凹地,重複以上的偵測直到地形最左邊的邊界。做第二次的確認動作,可以防止在偵測時碰到坡地或其他特殊的情形,而產生判斷錯誤。

6a測量地形高度(b)二度確認地形資料

 

7a)是我們採用的場景之一,圖7b)為第二次製作地形高度的結果,顏色從藍到紅為高度愈來愈高,白色的部分是空的部分。而圍牆、草叢、樹林也確實加入到高度資料之中。

7a)場景3Db)地形資料

 

4.  比較

直接偵測場景和使用地形高度資料的比較,在同一部電腦中使用預先建立好地形資料庫的場景,每秒鐘會比直接偵測的多10-25個畫數(frame),只是在建地形資料的時候會很久,不過只需建立一次,建好之後輸出到檔案之中,下次開啟時就可以直接讀檔輸入了。其缺點是當遇到騎樓、涼亭、地下室等地形,就會受到限制,必須把地形的3D物件做修改,讓他可以偵測到車子可走的地區,若是直接偵測的方法,將不受此限制。

 

在另一方面,地形高度資料可以讓使用者很快的知道附近的地形,讓他可以多做一些應用,若是要增加多一點的動態方程式在車子上,直接偵測地形的將會變的更慢。

 

5.  實驗設計

在長途高速開車中是最容易產生疲倦與昏睡的駕駛狀況,亦最容易發生嚴重肇事傷亡,因此如何偵測到駕駛者長途高速駕駛的精神狀態與心理負荷並給予適當的警示,是一項相當實際且有意義的課題。我們將初步的由簡入繁以虛擬實境六軸平台產生快速道路場景,並且同步測量駕駛者在快速道路上可能遭遇的突發狀況,以及實際量測駕駛者因為長途駕駛所引起的精神狀態(清醒、失神、疲倦等)的生理訊號,我們所設計的長途高速駕車實驗規劃如下:

 

(1) 實驗的基本快速道路場景如圖4-1所示:為一左右各為兩線道的四線道快速道路,左邊有行道樹,右邊則為寬闊的平原。

(2) 駕駛者需要維持車子開在第三車道(由左邊數來)的中心點上,車子時速則維持在100km/hr

(3) 車子必須要能夠隨機的左右漂移,以迫使駕駛者集中注意力在維持車子在中心車道上。

(4) 系統的效能(performance)估計以車子是否偏移車道的中心線的距離為準則,一般而言,當駕駛者的精神狀態越清醒時、則車子可以很容易的維持在車道的中心線上,反之,當駕駛者精神狀態有出現失神、疲勞以及昏睡時、車子則不容易維持在車道中心線。

 

車子受到左右漂移之力,以車子的方向和道路之方向來比較,方向差愈多受到之漂移力愈大,其力的方向以車子偏向左右的方向為主,在受測者精神不好時,會使車子更易撞到兩旁護欄。

 

人體最想睡覺的時間,除了晚上睡覺時間之外,就屬中午吃飽飯後了。而我們量測腦波資料就選在中午吃飽飯後開始,在戴電極帽及打電極膠的時候,一邊告訴受測者要開車於哪一線道上,眼睛要注視車道前方的中間不要亂飄,一邊讓受測者練習駕駛。完成量測前的準備後,開始一個小時的時間,在昏暗的房間裡不受任何人的干擾開車。另外在實驗中會拍攝受測者的臉部,以供對照之用。

 

而選擇的受測者,年齡在20歲到40歲之間,並有道路駕駛之經驗,每個人至少作兩次的實驗,一次為建立心裡工作負荷之模型,一次則為測試之用。

 

研究成果

 

在駕駛者開車之警覺性的研究上,我們設計了容易使駕駛者疲勞的實驗,並運用獨立元素分析(ICA)、時頻分析、主要元素分析(PCA)等技術,建構一駕駛員心理負擔之系統,以腦波進行駕駛員心理負擔之估測。

 

在我們的研究中包含:實驗設計流程、腦波訊號分析方法、ICA演算法以及具有線上學習能力的自我建構類神經模糊網路等,並且利用虛擬實境六軸平台產生不同的動態駕駛場景,量測並分析駕駛者在不同的精神狀態下(清醒、失神、疲倦等)的生理訊號,並建構動態心理工作負荷(Dynamic Mental Workload)模型。

 

在本章之中將介紹駕駛者心理負擔之腦波的分析,如何判斷駕駛者疲勞的狀態,腦波(EEG)量測之資料,以及運用線性回歸的方法,估計及預測受測者在駕駛場景中心裡工作負荷的情形。

 

1.  量測之資料

在量測的資料之中有一部份是由場景端輸出至腦波量測儀器之中,以提供發生特殊事件時與當時的腦波同步之用,這樣就可以知道發生何種事情,以及當時腦波的狀況。我們以此來量測車子在場景中的狀況,我們把道路分成255個等分如圖8,把車子中間左側和道路左邊護欄的距離,以此數值0-255輸出。根據這個距離就可以知道車子在道路中的位置,而又開車時會有一外力一直把車子向外推,就可依據此數值來看受測者的精神狀況。

8、行車狀況圖

 

我們使用電極帽來量測之生理訊號,其中包含使用10-20系統定位之31個電極用來量測EEG,以及2個電極用來量測EOG(心電圖),主要是分析EEGEOG是分析時用來輔助濾除心跳對EEG之影響。

 

2.  實驗分析

整個從資料的輸入到建立受測者之心理負荷模型,其流程圖如圖9所示。資料取得後,利用獨立成分分析演算法(Independent Component AnalysisICA)等先濾除掉一些雜訊,再估測出各EEG每兩秒鐘的能量狀況,在每個訊號中找出主要跟人體疲勞度有關的EEG,接著利用PCAPrincipal Component Analysis)降階,之後用線性回歸的方法建立模型(linear regression model)。

9、分析流程圖

 

3.  實驗結果

在我們的研究中,採用CzPz兩點之EEG power spectrum和車子之偏移量加上multiple linear regression model 估計和預測行車的狀況,只使用此兩點是因為其EEG power spectrum和車子之偏移量的關係值較高,此外,使用較少的電極可提高實用性。在時間和頻率的分析後,我們得到各時間的EEG power spectrum,取實驗中連續45分鐘的時間,每隔兩秒(500點)的區間中,會有1350EEG功率的估測在60個頻率上(160Hz)。接著在所有取對數值的EEG頻譜中,使用PCA找出最大變化的方向(軸),藉由將EEG頻譜資訊投影在PCA主軸的方式,取出相對應最大特徵值排序的投影量,做訓練行車狀況模型的輸入值。

 

所有的模型都是由各受測者的一次實驗中訓練得到,另一次實驗的資料則用來測試,而從訓練時得到之PCA的參數,將會在測試的資料時以相同的方法使用。而線性回歸模型是用50階的線性多項式,成本函數(cost function)用誤差的最小平方(least-square-error)。

 

在一次實驗中訓練出模型,再用同一筆資料作測試,估測出各時間之行車的狀況(車子離車道中心之偏移量),並與真實的情形比較,兩者再取Correlation Coefficient的值r約為0.88。若是用另一次實驗數據當測試為圖10,算出之r值約為0.7

 

在十次的實驗中,以訓練的資料當測試得到r值的平均為0.90±0.034,而以另一次實驗當作測試得到之r值的平均則為0.53±0.116,這結果顯示我們使用少數的EEG來估測行車狀況雖然尚可改善,然其可行性相當高。

10、測試資料之估測

 

結論與未來展望

 

我們以虛擬實境平台為基礎,以非侵入式的方法,利用量測所得之腦波進行心理工作負荷估測。我們設計一系列駕駛車輛之場景,並量測與分析駕駛者在開車時之警覺性,本論文完成之重點如下:

 

1)在模擬駕駛場景中,我們製作了一些場景如:可連續行駛沒有盡頭的直線道路,隨機出現的彎路,以及在城鎮的場景。在複雜的場景也使用到地形資料的建立並比較。在車子的動態方面,我們設計了可換檔之引擎,在加速上會受到引擎扭力的影響,並以近似的方法,推導出車子的在轉向時的情況,與懸吊系統受力的情形,以建構逼真的虛擬汽車駕駛環境。

2)在腦波量測與分析實驗方面,設計了長程駕車時之警覺性實驗,我們利用人類在中午吃飽飯會容易想睡覺的特點,加上長時間開車在單調的路上,會讓人很容易覺得疲倦的特性。利用量到的腦波與開車的狀況,建構一駕駛員心理負荷估測系統,此系統展示了未來實用化的潛力。

 

  在未來的發展上,可再規劃更逼真的場景,以供實驗之用;在車子的動態上,可以發展更高階的動態特性,如碰撞與接觸不同地面等情況,並建立各種動態的模組,以直接使用於未來的場景中;而在場景中的互動上,可以再增加多種事件,如有其它車子或遇到行人…等突發情形。並利用加速規等工具,量測六軸平台的動態與真實車輛之差異。在心理負荷模型建構方面,可改善估測之準確性,並設計不同的實驗,探討不同的心理狀況,以發展能夠進行即時分析生理訊號的方法,開發出實用的腦機介面。並設計一些與安全性無關的實驗,例如人類看見圖像或文字在解讀上的速度,以探討虛擬世界與真實世界的差異性。