圖十四、 傳播距離為無窮遠,波前(wavefront)為平面波(plane wave)[8]。
本專題中,我們提出一個創新的落點預測演算法,此概念源自飛蛾撲火的原 理。飛蛾屬夜行昆蟲,它們生活在地球長達數億年的時間,並演化出一種獨特的 羅盤導航系統,以光線來做為方向判定的依據[6, 7, 18, 19]。飛蛾會根據光波的 傳遞方向,調整自身的飛行方向。在數億年前的地球,飛蛾依靠著月光和星光來 定位方向,由於星光來自非常遙遠的地方,我們若以光學的波前(Wavefront)[8]
來思考,將月光、星光的波前視為平面波(Plane Wavefront),當飛蛾要直線飛
8m 10 85 .
3 ×
θ θ θ θ
圖十五、 飛蛾與月光傳遞方向維持固定角度之示意圖。
從地球歷史的角度而言,人類的祖先約在七十九萬年前才掌握了控制火的能 力[17],與飛蛾數億年演化的歷史相比,人類使用火、蠟燭、電燈等近光源(Nearby Light Source)的歷史其實非常短暫。由於飛蛾飛行的羅盤導航系統來自數億年 的演化,無法即時適應人類充滿燈光的夜世界,火光、燭光、燈光等近光源的波 前為球面波(Spherical Wavefront)[8],當飛蛾飛行經過近光源時,根據自身的 飛行行為,如圖十六所示,與光波傳遞方向維持一個固定夾角,結果形成了一個 螺旋旋轉方向,直撲火光。
圖十六、 飛蛾飛行與光波維持一固定夾角,形成螺旋式軌跡並直撲火光[18, 19]。
我提出一個想法: 如果蠟燭是會移動的,那飛蛾勢必有能力追蹤蠟燭。假設 棒球飛行方向是光波前進方向,而自走車是飛蛾,自走車移動方向與棒球移動方 向固定一個相同角度,則兩者移動方向的延長線必定會有交點,此交點就是棒球 的落點。圖十七說明了飛蛾飛行行為與機器捕手的對應關係。從圖十八可以清楚 看到,自走車將會逐步移動至預測落點。
圖十七、 假設自走車代表飛蛾,球的飛行方向代表光波傳遞方向。
圖十八、 以飛蛾撲火之角度校正方式,追蹤移動目標、取得預測落點。
為了持續追蹤球並計算座標角度,我們設計了一個數學模型來實現飛蛾飛行 的角度校正行為。如圖十九所示,根據圓周角定理得知,只要圓周角其中直徑兩 端點保持不變,改變第三點在圓周上的位置,所形成的圓周角恆為固定角度
2
1 θ
θ = 。
圖十九、 圓周角定理。
如圖二十(a)所示,當時間點T=n,我們將機器自走車與飛球座標Ball1(n)假 設為直徑兩端點,透過圓的直徑式求得圓方程式C1。如圖二十(b)所示,當時間 點前進至T=n+1,攝影機取得下一瞬間的飛球座標Ball1(n+1),我們以兩座標
)
1(n
Ball 與Ball1(n+1)求得一直線方程式L1,透過直線方程式L1與圓方程式C1求 得一交叉點P1,此交叉點P1即為時間點T=n+1的預測落點。如圖二十(c)所示,
機器車將移動前往交叉點P1,與球體飛行方向維持固定角度,如同飛蛾撲火一 般。系統將利用此圓周角數學模型,持續計算出每一時刻的預測點,機器自走車 將會持續移動前往預測點,直到機器自走車與飛球座標重疊為止,表示成功攔截 飛球。
(a) (b) (c)
3D Flying Ball Centroid
Newtonian Mechanics
Predict Fall Point
Find Intersect Point
Newtonian Mechanics
Moth Flight-to-Light Tracking Algorithm
設 T 為本系統攝影機幀率(Frame Interval Time),我們可求得 X,Y,Z 三分量 的初速度分別為(12)、(13)、(14)式:
上式(12)、(13)、(14)之 frame(n).x, frame(n).y 與 frame(n).z 分別代表第 n 張 frame 中的飛球座標( X, Y, Z)。
(18)
三 三 三
三、 、 、系統整合與實驗分析 、 系統整合與實驗分析 系統整合與實驗分析 系統整合與實驗分析
本章節分為軌跡預測模擬、軌跡預測分析及系統整合實驗三部分,詳細內容 將分述如下:
3.1. 軌跡預測 軌跡預測 軌跡預測 軌跡預測模擬 模擬 模擬 模擬
我們建立了三十筆飛球軌跡資料,分別進行飛蛾演算法及混合式演算法的模 擬實驗。在此假設機器車行走速度為 100mm/s。
3.1.1. 飛蛾演算法模飛蛾演算法模飛蛾演算法模飛蛾演算法模擬結果擬結果擬結果 擬結果
在本小節中,我們使用飛蛾預測演算法進行預測模擬。我們分別在 X-Y 平面 與 X-Z 平面使用飛蛾演算法預測模型(如圖二十所示)。圖二十三(a)、(b)、(c)、(d) 為四筆棒球落點預測之模擬結果。圖二十三中的紅線為棒球飛行軌跡、藍色點代 表飛蛾演算法之預測點、黃色線為機器車移動的軌跡。根據飛蛾趨光性的飛行行 為,假設機器自走車移動方向與飛球飛行方向維持一個固定角度。機器自走車將 持續追蹤飛球,並攔截飛球。最後紅色線、藍色點與黃色線重疊在一起,表示機 器自走車成功攔截飛球。
(a) (b)
(c) (d) 圖二十三、 飛蛾演算法之預測模擬結果。
3.1.2. 複合式演算法模擬結果複合式演算法模擬結果複合式演算法模擬結果複合式演算法模擬結果
在本小節中,我們結合飛蛾預測演算法與重力加速度計算,詳細預測流程如
圖二十一所示。圖二十四為兩棒球落點預測之模擬結果。圖二十四(a)、(c)和(b)、
(d)分別為實驗軌跡的三維圖及剖面圖。圖二十四中的紅線為棒球飛行軌跡、藍 色點代表飛蛾演算法之預測點、黃色線為機器車移動的軌跡、綠色方點為重力加 速度計算之預測落點。
系統預測分為兩大階段,系統第一階段以重力加速度計算棒球落點,如圖二 十四中綠色方點所示。系統第二階段將執行飛蛾預測演算法,持續追蹤飛球並微 調預測落點,有效降低第一階段落點預測之誤差。根據飛蛾趨光性的飛行行為,
假設機器自走車移動方向與飛球飛行方向維持一固定角度。系統將持續更新預測 落點,機器自走車則持續移動並追蹤飛球,最後紅色線、藍色點與黃色線同時重 疊在一起,機器自走車成功接住飛球。
(a) Simulation #1: 3D-silde (b) Simulation #1: 2D-silde
(c) Simulation #2: 3D-silde (d) Simulation #2: 2D-silde 圖二十四、 複合式演算法之預測模擬結果。
3.2. 軌跡預測分析 軌跡預測分析 軌跡預測分析 軌跡預測分析
在本系統中,透過改良式的拋體運動演算法,在未使用 Kalman Filter 的狀 態,投出球後能快速預測出球體的飛行落點,並在球飛行過程中,模仿飛蛾趨光 性之飛行行為,持續追蹤飛球並微調獲得更準確的預測落點。本章節我們分析 Kalman Filter 與本專題所提出之預測方法,我們分別將三十筆飛球軌跡資料輸入 至 Kalman Filter、飛蛾預測演算法及複合式演算法共三種預測系統,進行準確度 分析。
3.2.1. 以不同投球距離進行分析以不同投球距離進行分析以不同投球距離進行分析以不同投球距離進行分析
(a) (b) (c) 圖二十五、 在不同投球距離下,飛蛾演算法與 Kalman Filter 預測誤差比較:
(a)X 軸、(b) Y 軸、(b) Z 軸。
(a) (b) (c) 圖二十六、 在不同投球距離下,複合式演算法與 Kalman Filter 預測誤差比較:
(a)X 軸、(b) Y 軸、(b) Z 軸。
我們以三十筆平均球速為 2.06m/s 的棒球軌跡進行分析。如圖二十五所示,
隨著投球距離的增加,我們發現預測誤差有提升的趨勢,飛蛾演算法與 Kalman Filter 在 X、Y 軸方向的預測表現穩定,其落點預測誤差皆相當接近。但在 Z 軸 的預測誤差有明顯的差距,第一個解釋是 Z 軸方向的棒球軌跡變化較劇烈。棒球 軌跡一般可歸類成拋物線軌跡,投出球後會先朝上飛行至最高點,受地吸引力影 響而往下掉落。Kalman Filter 適用於預測線性變化的對象,但棒球軌跡在 Z 軸的 移動方向變化較劇烈、不穩定,因此可能產生較大的預測誤差。第二個解釋是受 到計算時間的影響,Kalman Filter 所需的運算時間較長,處理快速移動或移動方 向不穩定的目標物,較容易產生預測失誤。相較於飛蛾演算法,由於飛蛾演算法 是透過維持固定角度以持續追蹤飛球,僅需計算圓方程式與直線方程式之交點 (如圖二十),運算複雜度較低,所需預測時間較短,當棒球飛行路線產生變化,
飛蛾演算法能依照球路變化,修正預測落點並持續追蹤。
觀察圖二十六,我們發現複合式演算法展現優異的預測能力。複合式演算法 由兩階段組成,第一階段透過牛頓力學重力加速度估測棒球落點,第二階段以飛 蛾演算法追蹤棒球,並降低第一階段預測誤差。複合式演算法屬於平面式的落點 預測,所有的預測點皆在地面,因此我們不需考慮 Z 軸方向的預測誤差,這樣 的預測落點非常適用於機器自走車的設計和結合。
3.2.2. 以不同球速進行分析以不同球速進行分析以不同球速進行分析以不同球速進行分析
(a)
(b)
(c)
圖二十七、 在不同球速下,三種預測方法之誤差比較:
(a)X 軸、(b) Y 軸、(b) Z 軸。
我們以三十筆棒球軌跡進行分析,投球距離固定為 5m,球速分別為 1.8m/s, 2.4m/s, 3.0m/s, 4.5m/s, 7.5m/s, 15m/s 及 24m/s。如圖二十七所示,我們發現隨著 球速的增加,飛蛾演算法則展現較穩定的預測能力,複合式演算法與 Kalman Filter 的預測誤差則都有上升的趨勢。當球速高於 7.5m/s,複合式演算法的預測 能力開始降低,並產生巨大誤差。我們的解釋是受到攝影機每秒捕捉的影像張數 限制(Frame Per Second = 30),當球速提高時,攝影機所捕捉到球體座標數量會減 少,造成複合式演算法在第一階段預測產生巨大的誤差,雖然第二階段透過飛蛾 演算法降低誤差,但還是來不及追到球,如圖二十八所示。
圖二十八、 當球速過快,複合式演算法產生較大預測誤差。
3.3. 系統整合實驗 系統整合實驗 系統整合實驗 系統整合實驗
本專題使用兩台 NTSC 攝影機與一台筆電(Core 2/2.0Ghz),以 wxDevC++、
OpenCV、wxWidgets 與 gnuplot 等為發展環境。我們以棒球與網球進行投球實驗,
系統偵測取得飛球座標後,將立刻計算三維軌跡和座標,快速取得棒球落點位 置,以便機械捕手提早移動至落點並接住球。
3.3.1. 攝影機參數校正攝影機參數校正攝影機參數校正攝影機參數校正
首先透過雙部攝影機拍攝不同姿態角度之棋盤格,計算特徵點座標與圖像座 標的關係。取得攝影機本身的內、外部參數後,利用內、外部參數計算出該部攝 影機的投影矩陣。獲得兩台攝影機各自的投影矩陣後,即可將擷取到的二維影像 座標轉換成三維影像座標。
(a) (b)
圖二十九、 雙攝影機校正程式之動作畫面: (a)左攝影機、(b)右攝影機。
3.3.2. 移動球體移動球體移動球體移動球體偵測與偵測與偵測與球心座標取得偵測與球心座標取得球心座標取得 球心座標取得
3.3.2. 移動球體移動球體移動球體移動球體偵測與偵測與偵測與球心座標取得偵測與球心座標取得球心座標取得 球心座標取得