• 沒有找到結果。

輪型移動機器人之路徑規劃與學習演算法應用於路徑追蹤之模糊控制器設計

N/A
N/A
Protected

Academic year: 2021

Share "輪型移動機器人之路徑規劃與學習演算法應用於路徑追蹤之模糊控制器設計"

Copied!
118
0
0

加載中.... (立即查看全文)

全文

(1)國立臺灣師範大學機電工程學系 碩士論文 指導教授:陳美勇博士 輪型移動機器人之路徑規劃與學習演算法應用於 路徑追蹤之模糊控制器設計 Path planning for a wheeled mobile robot and learning algorithms applied to tracking fuzzy controller design.. 研究生 : 陳威任 撰 中. 華. 民. 國. 1. 0. 5. 年. 0. 7. 月.

(2) 摘要 本研究主要是輪型機器人的路徑規劃與路徑追蹤。在路徑規劃方面,採 A*演算法具有最小花費函數搜尋結果之特色生成輪型移動機器人之最短路 徑,然而,此種設計方法應用於路徑規劃之結果將會產生大量轉折點以及過 於靠近障礙物之路徑,因此,採用了具有局部改變調整特性的 B-Spline 曲 線來調整 A*演算法不適用於輪型移動機器人追跡之區段路徑。在路徑生成 之後,接下來即是考慮路徑追蹤的課題。為設計路徑追蹤的控制器,我們必 須先了解輪型移動機器人的運動模型才可進行下一步之路徑追蹤控制器設 計。路徑追蹤方面採用輪型移動機器人之兩輪速度控制方法來完成目的,本 論文採用了模糊控制系統結合類神經網路之適應性模糊類神經網路技術,以 此方式可結合模糊控制之定性分析與類神經網路定量分析能力之特色,並具 備自我學習調整之能力,最後再加入遺傳演算法進行最佳化設計提高理想之 結果。 關鍵字:A*演算法、B-Spline 曲線、模糊控制、學習演算法。. i.

(3) Abstract The primary search in this content are path planning and path tracking of wheel mobile robot. For path planning, adopting A * algorithm with the feature of minimum cost function results to design the shortest path of wheeled mobile robots. However, the result of path planning with this method will generate a lot of turning points and too close to the obstacle on the path. Under this situation, then use B-Spline curve which has local change adjustment feature can adjust the segments of A * algorithm where are not suitable for wheeled mobile robot to track. After the path is generated, the next consideration is path tracking. To design tracking controller, we must know kinematics model of wheeled mobile robot, therefore it is required to derived of kinematics model beforehand. For path tracking, it is accomplished the purpose by adjusting the speed of two wheels of the mobile robot, this paper uses adaptive network-based fuzzy inference system technology which combines with fuzzy and neural network, it contains the feature of qualitative analysis capabilities of fuzzy control and quantitative analysis capabilities of neural network, and has ability of self-learning adjustment , then add genetic algorithm to optimize the ideal result. Keywords:A * algorithm, B-Spline curve, Fuzzy control, Learning algorithms.. ii.

(4) 誌謝 當寫到這部分的內容時,即表示研究生的生涯即將進入尾聲,回想研究 所的這些時間,深深體驗到了與大學時期一心只求標準答案絕然不同的學習 方式;面對一個問題時從思考該如何著手進行、接著在處理過程中從經歷了 數次的失敗吸取經驗直到問題解決後繼續思考是否有更理想之可行解,這種 從研究所過程中培養出來的學習態度與解決問題之能力可說是這段時間的 最大收穫。 接下來要感謝我的指導教授 陳美勇 博士能夠一直支持我自己所選擇 的研究內容並給予充足的研究資源,以及推薦學生參與各種國內外的研討會 以開拓個人視野並從中體悟到自己不足之處。而在論文完成之際,感謝我的 口試委員 郭景明 博士、練光祐 博士及 黃正民 博士,感謝三位口試委員 於百忙之中仍抽空前來對於我的論文內容進行指導,能夠使我了解需要修改 與補充的地方,如此使我的論文內容能夠更加完整。 再來還要感謝實驗室的成員,學長 秉剛 、 高遠 ,以及學弟 敬棋、 維斌、廷恩、岱桓能夠在這段時間一起共患難與共享樂,讓我的研究所生活 感到相當充實,並感謝助理 JuJu 在每一次完成英文研討會論文時都願意花 時間幫忙檢查我所寫的內容是否流暢;另一方面,感謝我在完成這一次論文 過程中參考論文或資料的所有作者,提供我研究之解決方式。 最後也是最重要的要感謝我的父母家人長期以來無怨無悔的付出與鼓 勵,無論遇到任何困境都能夠支持我並給予經濟上的支助讓我能夠全心投入 學業,若沒有你們我就沒有今日之成就,謝謝你們。. 陳威任 精密運動控制實驗室 2016/8/17. iii.

(5) 目錄 摘要…………………………………………………………………………i Abstract ………………………………………………………………...…ii 致謝………………………………………………………………………..iii 目錄………………………………………………………………………..iv 圖目錄…………………………………………………………………....viii 表目錄…………………………………………………………………..xiii. 第一章 緒論……………………………………………………………….1 1.1 前言……………………………………………………………1 1.2 文獻回顧…………………….………………………………..2 1.3 研究動機…………………………………………....………..7 1.4 本論文之貢獻……………….……………………………...11 1.5 論文架構……………………..….…………………..……...11 第二章 輪型移動機器人之路徑規劃………………………...................13 2.1 路徑規劃…………………….…………………..…………..13 2.2 最短路經搜尋法…………….….…..……….……………….13 2.3 B-Spline 曲線……………………….………………….……19 2.3.1 B-Spline 曲線定義…………………………....20 iv.

(6) 2.3.2 B-Spline 曲線模型特性…………......………………20 2.3.3 B-Spline 曲線的凸多邊形特性……………………27 2.3.4 B-Spline 曲線的局部控制特性……………………29 第三章 輪型移動機器人之運動模型建立……………...……................32 3.1 輪型機器人之結構分析並以約束條件推導運動模型….…34 3.1.1 輪型移動機器人完整約束之分析……………….…..35 3.1.2 非完整約束條件推導…………………..……………36 3.2 離散型輪型機器人運動模型………..………….….....……..37 3.3 軌跡追蹤模型之建立..............................................................39 第四章 模糊理論與控制應用…………………………………………...41 4.1 模糊理論…………………………………………………….42 4.1.1 模糊集合……………….……………..………….42 4.1.2 模糊邏輯…………………………………………44 4.1.3 模糊集合運算…………………….………………….45 4.2 模糊邏輯控制(Fuzzy Logic Control,FLC)………………..45 4.2.1 模糊推論系統.………………………..……………46 4.2.2 模糊化……………….……………………….……....46 4.2.3 模糊規則庫………………...…………..…………….48 4.2.4 歸屬函數資料庫………………….…..…..………….50 v.

(7) 4.2.5 推論引擎…………………………………..…………52 4.2.6 解模糊化機構…...…………………………..……….53 4.2.7 解模糊化之模糊模式…..…………………………..55 4.3 智慧型模糊控制…………………..………………………...57 第五章智慧型學習法應用於模糊控制器之改良……………………….58 5.1 類神經網路………………………………………………..58 5.2 適應性網路模糊推論系統……………………….……….60 5.3 基因演算法...………………………………………………..64 5.3.1 基因演算法之設定………….……………………… 65 5.3.2 基因演算法之程序…….…………………………… 67 5.3.3 基因演算法之使用時機............................................. 70 第六章 實驗設計與結果討論..……..……………..…………………….71 6.1 實驗設備介紹……………………………………………… 71 6.1.1 程式設計軟體……………...………………………..71 6.1.2 實驗硬體設備.............................................................74 6.1.3 模型分析與控制器參數定義......................................75 6.2 路徑追蹤控制規則…………………………………………75 6.2.1 控制規則設計之概念…………………………..…... 75 6.2.2 歸屬函數與模糊規則…………………..…………... 76 vi.

(8) 6.3 模糊控制之參數學習調整…………………………………79 6.4 輪型移動機器人之路徑規劃與追蹤實例分析……………80 6.4.1 模擬驗證……………….…….……………………..80 6.4.2 實驗測試……..............……………………………...86 第七章 結論與未來展望..……..…………………………………….98 參考文獻………………………………………………………………100. vii.

(9) 圖目錄 圖1-1. 網格地圖(a)方形網格(b)蜂巢狀網格……...…………………….2. 圖1-2. 簡易 A*最短路徑設計…………………..………………………..2. 圖1-3. B-spline 曲線……………………………..………………………2. 圖1-4. A* 演算法之路徑規劃結果………………………………..……3. 圖1-5. 改良後之 A*演算法之結果………………………………………3. 圖1-6. 以直線做為參考追蹤路徑之移動結果………………………….4. 圖1-7. 梯形速度控制法………………………………………………….5. 圖1-8. 兩輪圓弧運動之差速輪分析…………………………………….5. 圖1-9. 利用基因演算法之路徑追蹤結果(a)追蹤角速度(b)追蹤路徑…6. 圖1-10 模糊控制用於兩輪機器人之路徑追蹤……………………….…7 圖1-11 路徑追蹤兩輪之速度(a)右輪速度(b)左輪速度…………………7 圖1-12 神經元示意圖…………………………………………………….8 圖1-13 (a)模糊規則結構(b)類神經網路結構……………………………9 圖1-14 目標解關係圖………………………………………………...…11. 圖2-1. A*演算法用於路徑規劃之虛擬碼………….…………….……18. 圖2-2. A*演算法之路徑規劃結果…………………………………..…19. 圖2-3. 一階基底函數值分佈……………….……………………..……22. 圖2-4. 二階曲線(k=1)基底函數值分佈……………………………..…23 viii.

(10) 圖2-5. 二階曲線(k=2)基底函數值分佈…………………………..……24. 圖2-6. 三階曲線(k=1)基底函數值分佈…………………………..……25. 圖2-7. 三階曲線(k=2)基底函數值分佈……………………………..…25. 圖2-8. 三階曲線(k=3)基底函數值分佈…………………………..……26. 圖2-9. B-Spline 曲線圖……………………………………………...…27. 圖2-10 B-Spline 曲線生成之空間範圍,連續共線個數<k…….….……28 圖2-11 控制點連續共線的個數 k 生成直線…….……………….……29 圖2-12 基底函數曲線圖階 數 k=3,控制點數目(n+1)=6……….……..30 圖2-13 控制點移動與曲線變化示意圖………….…………………..…31 圖3-1. 輪型移動機器人之幾何模型…….………….……………….…32. 圖3-2. 機器人單步運動示意圖…………………………………...……37. 圖3-3. 機器人單步節點示意圖…………………………………...……37. 圖3-4. 輪型移動機器人與追蹤路徑關係圖...………………………..….40. 圖4-1. 傳統集合與模糊集合…………….………..……………………42. 圖4-2. 集合歸屬度分佈(x=2)……………………………………..…….44. 圖4-3. 模糊集合運算示意圖……………………….………….….……45. 圖4-4. 模糊推論系統架構圖…………………………………….……..46. 圖4-5. 模糊關聯性實例…………………………………………….…..48. 圖4-6. 模糊推論 T-norm 法………………………………..………...….52 ix.

(11) 圖4-7. 解模糊化之重心法……………………………………...………53. 圖4-8. 解模糊化之總和中心法…………………………..…………..54. 圖4-9. 解模糊化之最大均值法………………………………..…...…..55. 圖4-10 Mamdani 模糊模式推論圖……………………………..………56 圖4-11 TSK 模糊模式推論圖…………………………….………….…57 圖5-1. 類神經網路之方塊圖…………………………………...………59. 圖5-2. 多層前饋式類神經網路………………………………..…….…59. 圖5-3. ANFIS 架構圖………………………………………...…………62. 圖5-4. 染色體之二進位形式…………………………………………...65. 圖5-5. 基因演算法之族群……………………………………………...65. 圖5-6. 適應函數之相對關係………………………………………...…67. 圖5-7. 基因演算法流程圖…………………….…………………......…67. 圖5-8. 族群形式(染色體數目 4).........…………………………………68. 圖5-9. 輪排選擇法…...…………………………………………………69. 圖5-10 交配法(a)單點交配法(b)雙點交配法………………..…………69 圖5-11 突變………………...……………………………………………70 圖6-1. MATLAB 程式軟體(a)R2010a 版本(b)模糊工具箱(c)模糊工具箱指. 令…………………………….……………………………………….....71. 圖6-2. X80SV 輪型移動機器人……………………………………….72 x.

(12) 圖6-3. X80SV 輪型移動機器人之感測器安裝位置………………….72. 圖6-4. 輪型移動機器人之模型(a)尺寸大小(b)旋轉位置…………..…75. 圖6-5. 模糊輸入歸屬函數分佈…………….………………………..…76. 圖6-6. 模糊輸出歸屬函數分佈………………………………………...77. 圖6-7. 學習演算法應用於模糊控制之流程…………………………...79. 圖6-8. Sin 路徑追蹤型態………………………………………………80. 圖6-9. 機器人與追蹤路徑對應關係圖………………………………...80. 圖6-10 路徑上參考速度(a)左輪參考速度(a)左輪參考角速度………..81 圖6-11 模糊輸入誤差(a)距離誤差(b)角度誤差(c)參考視角誤差(d)左輪 輸出調節速度(e)左輪輸出速度調節變化量………………….......82 圖6-12 輸出速度大小(a)左輪輸出速度(b)左輪速度誤差(c)左輪輸出角 速度(d)左輪角速度誤差…………………………………………….83 圖6-13 ANFIS 結構圖…………………………………………………..84 圖6-14 ANFIS 之訓練(a)速度訓練資料(b)速度訓練誤差結果(c)角速度 訓練資料(d)角速度訓練誤差結果………………………………….84 圖6-15 GA 尋找刻度因子……………………………………………....85 圖6-16 輸出誤差(a)速度誤差(b)角速度誤差…………………………..85 圖6-17 實驗地圖……………………………………………...…………86 圖6-18 B-Spline 曲線路徑規劃結果…………………………………86 xi.

(13) 圖6-19 兩輪追蹤參考速度(a)左輪參考速度(b)右輪參考速度..............87 圖6-20 兩輪參考路徑追蹤速度……………...…………………………88 圖6-21 左輪參考速度與真實速度之差異……………...………………89 圖6-22 右輪參考速度與真實速度之差異………………………...……89 圖6-23 實驗地圖………………………………………………………...90 圖6-24 可行區域分析…………………………………………………...90 圖6-25 A*路徑規劃結果………………………………………………..91 圖6-26 B-Spline 路徑生成……………………………………………...91 圖6-27 兩輪追蹤 A*路徑之參考速度(a)左輪參考速度(b)右輪參考速 度………………………………………………………………….….92 圖6-28 A*路徑追蹤之兩輪參考速度關係……………………………93 圖6-29 兩輪追蹤參考速度(a)左輪參考速度(b)右輪參考速度………..94 圖6-30 兩輪參考路徑追蹤速度………………………………………...95 圖6-31 左輪參考速度與真實速度之差異……………………………...96 圖6-32 右輪參考速度與真實速度之差異……………………………...96. xii.

(14) 表目錄 表2-1. 最短路徑演算法之比較…………………………………………8. 表2-2. 搜尋範圍比較表………………………………………………....8. 表4-1. 傳統集合與模糊集合之比較…………………………………38. 表4-2. 最大-最小合成運算子推算…………………………………43. 表4-3. 常用之歸屬函數種類……………………………………….….45. 表6-1. 硬體設備…………………………...……………………………74. 表6-2. 感測器模組代碼位置…………………………………………74. 表6-3. 特感測器之位置資訊…………………………………………74. 表6-4. 輸出之歸屬函數值……………………………………………78. xiii.

(15) 第一章 緒論 1.1 前言 機器人是一種可以執行操作者規劃行程的機電控制系統,在現代先進科 技研究中,機器人應用發展已經受到許多研究人員的重視,並且在近年來已 逐步地從工業應用延伸到一般日常生活應用中,可視為是在未來生活應用發 展的重要趨勢,就目前常見的機器人依是否可移動之性質分為固定型機器人 與移動型機器人,前者依其結構組成方式可分為串聯型機器人與並聯型機器 人,主要以機械手臂為主,如[1][2][3];後者依移動結構分為步行移動機器 人與輪型移動機器人,而步行移動機器人需考慮複雜的機構設計問題以及行 走時質心隨時改變而須考慮平衡等問題,相關文獻如[4][5][6]則討論此內容, 相對於步行機器人,輪型機器人則具有較簡單的機構,以控制層面來說,我 們先行需要考慮的內容為機器人的組成結構與尺寸、感測器應用、數學模型 推導,最終就是考慮設計者欲完成目標之問題了,以現今應用層面來說,智 慧型自動吸塵器(又名掃地機器人)[7]則為耳熟能詳的實例之一。 本論文研究的主要內容為路徑規劃(於第二章做詳述)與路徑追蹤(於第 四、五章做詳述),路徑規劃採用 A*演算法來規劃環境中輪型移動機器人之 起始點到目標點之間的最短路徑,根據其演算法的內容所產生之路徑必定會 十分鄰近環境邊界且方向受限於組成地圖之單元網格形狀,如圖 1-1 所示[8], 簡易 A*路徑規劃如圖 1-2 所示,僅適用於理論理想路徑,不適用於真實機 器人之移動路徑,相關內容將於 2.1 節中做介紹;B-Spline 曲線具備局部可 調性與連續性的特色,可對 A*演算法路徑中不適合真實機器人做為尋跡的 區段作局部調整,圖形如 1-3 所示,其內容介紹於 2.2 節中。路徑追蹤採用 模糊控制方法控制輪型移動機器人之兩輪速度以達到追蹤目的,由於需考慮 速度問題,因此須清楚了解輪型移動機器人之運動模型如此才可進行控制器 1.

(16) 設計,因此在第三章將討論論型移動機器人之運動模型;關於模糊控制的設 計方式,就目前而言,尚未有一套完整理論可供依循,只能憑藉專家經驗不 斷的嘗試修正,因此本研究在第四章說明模糊控制理論之後,接著在第五章 將使用結合具有自我學習特性之類神經網路與模糊控制的適應性網路模糊 推論系統來調整模式參數,最後再利用遺傳演算法進行最佳化設計之步驟, 以達到最佳控制結果。. (a). (b). 圖 1-1 網格地圖(a)方形網格(b)蜂巢狀網格. 圖 1-2 簡易 A*最短路徑設計. 圖 1-3 B-spline 曲線. 1.2 文獻回顧 2.

(17) 輪型移動機器人之研究課題通常分為環境認知、路徑規劃、路徑追蹤與 行為控制四大部分。環境認知包含全局定位、障礙物偵測等等;路徑規劃根 據機器人對於環境的認知,從當前位置到目標位置之間規劃出一條能夠考慮 到安全避障且最佳化的路徑,如[9]提出 A*演算法規劃結果如圖 1-4 所示且 其內容後續利用地圖向量化方式與影像侵蝕方法限制機器人移動可行範圍 後之路徑規劃結果為圖 1-5 所示。. 圖 1-4 A* 演算法之路徑規劃結果[9]. 圖 1-5 改良後之 A*演算法之結果[9] 3.

(18) 路徑追蹤的主要任務即是考慮移動機器人實際位置和運動狀態的情況 下,能夠準確地追蹤一條預先規劃好之路徑。由於移動機器人動力學的高度 非線性和工作環境的不確定性,使得路徑追蹤往往成為了移動機器人研究中 最為艱鉅困難的任務。過去許多學者也對此課題做了研究,文獻[10]中提到 了最短路徑之概念並藉由建立多條直線視為下一個參考的追蹤目標如圖 1-6 所示,然而,此方法之結果顯示出其並非為最短路徑且追蹤下一條參考直線 過程中的行走路徑為不可預期之結果,是否能具備避障之效果仍有可議之空 間。. 圖 1-6 以直線作為參考追蹤路徑之移動結果[10] 文獻[11]提出追蹤不同路徑如直線、圓弧、貝茲曲線等線條並利用相對 應之合適的速度控制,而其追蹤過程僅將機器人視為一個質心點而忽略真實 機器人之尺寸,是其可改進之方向;文獻[12]提出速度控制(圖 1-7)與差速輪 (圖 1-8)之概念,並且考慮到在未知的位置與方向之下估測下一步狀態的方 式,其預測方式如(1-1)式: 4.

(19) 圖 1-7 梯形速度控制法[12]. 圖 1-8 兩輪圓弧運動之差速輪分析[12]. Dcum  Dcum  D.  cum   cum  . (1-1). 其中 D ,  分別為下一個時間變化 T 之移動距離與角度,並整理出(1-2)、 (1-3)與(1-4), 其中 p 表示前一次週期,. v D  D / T v   / T. (1-2). a D  (v D  v D p ) / T a  (v a  v a p ) / T. 5. (1-3).

(20) x  x  x  x  D cos( ) y  y  y  y  D sin( )     . (1-4). 此篇內容可做為輪型移動機器人模型推導之參考,但僅為理論說明缺少實例 分析;文獻[13]提出基因演算法控制,其結果圖顯示於圖 1-9,同[11]僅考慮 質心點之路徑追蹤,且其單純使用基因演算法進行路徑追蹤,根據其追蹤結 果觀察,可再嘗試進行改良。. (a). (b) 圖 1-9 利用基因演算法之路徑追蹤結果(a)追蹤角速度(b)追蹤路徑[13] 6.

(21) 在[14]中利用模糊控制與提供完整之路徑追蹤模型推導,其內容對於本 次論文研究有了相當大的啟發,其實際追蹤之結果如圖 1-10 與圖 1-11 所示。. 圖 1-10 模糊控制用於兩輪機器人之路徑追蹤[14]. (a). (b). 圖 1-11 路徑追蹤兩輪之速度(a)右輪參考速度與實際參考速度(b)左輪參考 速度與實際參考速度[14]. 1.3 研究動機 在 1-1 節中已針對本論文之路徑規劃與追蹤採取方式做一論述,並且在 1-2 節最後也提到了模糊控制的文獻回顧正適合用於本論文之研究。針對輪 型移動機器人動力學模型的高度複雜性和非線性特性,想要解決路徑追蹤之 7.

(22) 問題時,模糊邏輯控制正是適合採取的方式。在不確定的工作環境中,要了 解輪子和地面之間的接觸並且準確地建模通常是一件困難的事情,在眾多的 控制法則中,模糊控制的方法善於解決具有非完整性和不確定性的非線性子 系統的交互作用之問題,也特別適用在缺乏精確完整的模型情況下,將人們 的經驗規則直接運用於輪型移動機器人的驅動控制中,而在本論文考慮機器 人操作環境已知之下則更加適用。傳統模糊推論系統中,規則個數可由專家 決定或藉由實際的操作規則訂定規則數目,然而在實務應用上,並沒有明顯 的規則可供機器人使用,甚至缺乏系統專家來決定規則的前提與結論,此時, 規則庫的決定就必須依靠輸入/輸出的範例與試誤法(trail an error)來尋找最 適當的網路大小,以決定輸入/輸出關係和其規則數目。為了克服模糊控制 器的此種缺點,近年來許多學者已嘗試將模糊控制器與其它智慧型學習法做 整合設計,以漸少設計成本、增加控制效率與結果之準度,如類神經網路 (Neural Network)即模仿生物神經系統的運作,藉由大量的運算單元(神經元) 和位於運算單元間的眾多連結所組成(如圖 1-12 所示),這些運算單元乃是 以平行且分散的方式所運作,此一設計可被用來處理各種需要大量資料運算 的應用,今日已經廣泛地被應用在各領域,包含理工領域、生物領域到管理 學門都可以看到類神經網路的相關研究。. 圖 1-12 神經元示意圖 類神經網路相關論文如[15][16]利用倒傳遞類神經網路應用於路徑規劃 8.

(23) 的自我學習,文獻[17]使用區塊式立體匹配與訓練倒傳遞類神經網路將影像 轉換為立體資訊於機器人之室外導航,文獻[18]在傳統的模糊類神經網路加 入派翠網路和遞迴學習方式藉此減少參數學習計算量。. (a). (b) 圖 1-13(a)模糊規則(b)類神經網路結構 類神經網路與模糊邏輯控制目前均被成功地應用在不同領域之不同目 的上,其兩者如類神經網路的聚類分析[19]與模糊集合的概念常常被視為是 相似之概念,而模糊規則關係如圖 1-13(a)也視為相似於類神經網路之結構如 圖 1-13(b))所示,兩者相較之下結構十分相似,這隱含著兩者之間有一種巧 9.

(24) 妙的關係,而兩者之間之關係為何、應用方面的相似性與差異性,便是一個 值得思索的問題,此細節將於第四、五章進行詳細論述,簡單來說,兩者的 整合具有在一個輸入,輸出對應關係中增加系統智慧的能力。此外,在工程 應用或問題解決上,如何在兩者之間做一合適的選擇,也是常見的問題,而 在 1993 年 Jang[20]提出類神經網路與模糊邏輯控制整合之適應性網路模糊 推論系統(Adaptive Network-Based Fuzzy Inference System,簡稱 ANFIS),正好 結合了上述兩種概念之特色,更甚者該如何擷取兩者間的優點互補缺失並結 合基因演算法,進而發展一種新的模式則是本論文的研究重點。 基因演算法(Genetic Algorithm,簡稱 GA)屬於人工智慧學門中的一門科 學,用於解決最佳化問題的一種進化演算法,採用自然界中生物擇偶、交配、 突變等衍生方式並且加入一些限制條件以產生優良的下一代。基因演算法至 今已廣泛被應用在生物信息學、系統發生學、計算科學、工程學、經濟學、 化學、製造、數學、物理、藥物測量學和其他領域之中。以上各種應用皆為 尋找解決數學中的最大化(Maximation)、最小化(Minimization)或極值問題, 一般來說要處理這一類之問題,如果函數可微分則可用梯度最佳化搜尋法 (Optimization by using gradient method), 不 可 微 分 則 有 其 他 如 模 擬 退 火 (Simulated annealing)、隨機搜尋法(Random search)等方法。這些方法有一共 同的特性,及找到的結果可能是全域最佳解(Global optimum),也可能是區 域最佳解(Local optimum)如圖 1-14 所示。而基因演算法的最大優點是當它在 尋求最佳解的過程中可以避免陷入局部最佳點,因此它找到全域最佳解的機 會是蠻大的。這主要是拜有突變的能力所致。雖然利用基因演算法求解也不 一定每次都能找到最佳答案,但它總能在最佳答案附近出現,而不像其他方 法,大部分的機會都會落在次佳點,因此,本論文即基於基因演算法的這種 優勢而選取此種方法來做自我學習之控制器設計的參數最佳化程序。. 10.

(25) 圖 1-14 目標解關係圖. 1.4 本研究之貢獻 過去已有不少文獻針對輪型移動機器人之避障路徑規劃與路徑追蹤進 行深入之研究,即使如此,針對兩者進行整合並結合實驗驗證可行性之論文 內容則相對甚少,因此本論文即討論從路徑規劃與修改路徑到學習法控制器 的整合設計應用於機器人之路徑追蹤,路徑規劃方面採用 A*演算法進行初 始路徑規劃並利用 B-Spline 改良原先規劃之路徑;路徑追蹤方面,採用 ANFIS 結構來改良模糊控制器,最後利用 GA 來調整控制器輸入參數大小作 為最適合模糊輸入的大小值之最佳化程序,如此循序論述,最後再經由實例 驗證其效能與可行性。. 1.5 論文架構 本論文一共分為七個章節,內容分別如下。 第一章:緒論 說明本論文研究相關文獻回顧、研究動機。 第二章:輪型移動機器人之路徑規劃 介紹本論文所使用之路經規劃方法、數學原理介紹與可行路徑分析。 第三章:輪型移動機器人之運動模型建立 11.

(26) 推導輪型移動機器人的運動模型以用於後續之控制器設計。 第四章:模糊理論與控制應用 介紹模糊理論與控制方面的設計方式,討論其改良方向,並於下一章節中提 出改良方法。 第五章:智慧型學習法應用於模糊控制器之改良 利用適應性模糊類神經網路來解決模糊控制參數調整困難性,並利用遺傳演 算法做最後的最佳化設計。 第六章:實驗設計與結果討論 將控制器設計法則實際用用於輪型移動機器人與分析其可行性。 第七章:結論與未來展望 分析其實驗結果與未來可以改良之方向。. 12.

(27) 第二章 輪型移動機器人之路徑規劃 對於移動式機器人來說,在任一環境中移動時,要能夠確保機器人不會 與環境中的邊緣或障礙物產生碰撞將是需考慮的首要課題。對於處理機器人 的避障問題並非難事,可藉由機器人本身具備的感測器將偵測值回傳至對應 的動作(停止、轉彎或是倒退)即可達到避障目的。然而,此一設計步驟將會 使得機器人僅能安全的在環境中漫無目的的航行,因此標示目的地並規劃最 佳路徑讓機器人能夠依循指示前進將是進一步設計的課題。. 2.1 路徑規劃 路徑規劃是在有限的工作環境中尋找一條合理的路徑, 用來連接初始 位置(包括位置點與方位角)與目標位置,並可成功地避開障礙物,此為機器 人研究領域中的核心技術之一。現有的路徑規劃演算法,多數以設計最短路 徑為目標,而實際上最短路徑並非確保適用於真實機器人,其中包含行走時 間與安全性等因素,本論文內容則不考慮行走時間之因素,僅針對路徑安全 性來做分析,下一節將提出最短路徑規劃之方法。. 2.2 最短路經搜尋法 目前現有路徑規劃演算法中,以 Dijkstra 演算法[21]與 A*演算法[22] 最具代表性,此二演算法比較如表 2-1 所示[23][24]。Dijkstra 演算法主要用 於解決尋找最短路徑問題,但 Dijkstra 演算法屬於廣度搜尋法,當用於地 圖深度較大時演算法的搜尋深度會隨著地圖及節點擴大,使運算效率偏低。 反觀 A*演算法是採用啟發式評估(Heuristic Estimate)公式,將許多明顯為錯 誤的路徑排除,進而快速規劃出較佳路徑,Dijkstra 與 A*演算法搜尋範圍比 較如表 2-2 所示。以 Dijkstra 演算法規劃最短路徑將使得執行時間過長; A*演算法執行時間較短,但所規劃出路徑並非最短路徑,而是近似最短路 徑,不過考慮演算效率問題,以及兩者結果差異不大的考量,本論文採取 13.

(28) A*演算法進行輪型移動機器人之路徑規劃。 表 2-1 最短路徑演算法之比較 演算法. Dijkstra 演算法. A*演算法. 搜尋特性. 廣度搜尋法. 啟發式搜尋法. 搜尋節點數. 多. 少. 搜尋速度. 慢. 快. 花費時間. 長. 短. 搜尋路徑. 最短路徑 f (n)  g (n). 近似最短路徑 f (n)  g (n)  h(n). 比較項目. 花費函數. 表 2-2 搜尋範圍比較表[25]. Dijkstra’s 演算法. A*演算法. 無障礙. 有障礙. A*演算法是在 1968 年由 Hart 等三人[26]所提出,以最佳解優先搜尋方 式搜尋下一步的位置,屬於貪婪演算法(Greedy Algorithm)[27]之一,只要起 點與終點之間有路徑存在,則保證搜尋出最少花費成本之路徑,並有搜尋範 圍較小及執行時間短之優點,因此 A*演算法通常用在人工智慧遊戲中解決 14.

(29) 路徑搜尋問題[23,28]。 A*演算法規劃路徑之概念為產生出從定義起點n0到終點ng之路徑,將起 點之鄰近節點放入OPEN 陣列中,從OPEN 陣列中以啟發式評估函數公式 計算出各個鄰近節點之F(n),選擇最小F(n)節點為下一迭代起點,重覆迭代 至搜尋終點。啟發式評估函數其公式如下。 F(n) = G(n) + H(n). (2-1). 其中 F(n)代表從起點 no 至終點 ng 的整體花費,G(n)是 n0 到任一節點 n 之間 的最小花費,H(n)是節點 n 到 ng 之間所估算的最小花費,通常以 n 到 ng 直 線距離為代表[29,30,31];當不具備預估花費時,即 F(n)=G(n),則此演算法 會轉變為全域廣度搜尋的 Dijkstra 演算法;若 H(n)小於從節點 n 至終點的實 際花費時,則必定可以得到最短路徑;若 H(n)非常接近乃至於相等於實際花 費時,則此演算法會具備最佳的效率;但若 H(n)大於實際花費時,則不能保 證獲得最佳解,因此在實務操作上,多以該節點至終點的直線距離定為該節 點的 H(n),以確保能獲得最佳解。 A*演算法的演算過程包含兩大階段:搜尋與重構階段。在搜尋階段時, 演算法會從起點開始依照既定流程蒐集、計算與更新通過之節點資訊;重複 此過程直到抵達終點後,開始進入重構階段,將流程獲得之資訊還原成路徑。 為說明演算流程,本論文定義節點 n 為任何環境中可行的位置,起點與終點 則分別為 n0 與 ng,因此演算法即為尋找一條從 n0 開始至 ng 結束且花費最低 的路徑;一般而言,每個節點至少需要包含以下資訊:節點座標 n、來源節 點 c(n)、實際當前最低花費 G(n)與預估花費 H(n),其中來源節點是用來記錄 通過此節點的上一個節點,於重構階段時所需之資訊。A*演算法的流程如 下[9,29,32,33]: 步驟一:建立 OPEN 陣列與 CLOSE 陣列。OPEN 陣列是即將進行估算 之節點集合,CLOSE 陣列則為已計算完成之節點集合。初始時 OPEN 陣列 15.

(30) 為起始點 n0;CLOSE 陣列則為空集合。G(n)為起始點 n0 至任意節點 n 的實 際最低花費,故可得 G(n0)必為 0。在此步驟同時估算 H(n0),且因 G(n0)=0 得到 F(n0)=H(n0)。 步驟二:建構一個包含步驟三至步驟十的迴圈,當 OPEN 陣列非空集合 時進入迴圈,表示尚未抵達終點,或是若判斷無法產生至終點之路徑,則回 傳規劃失敗的訊息。 步驟三:從 OPEN 陣列找出可產生最小的 F(n)值的節點,並將它視為下 一步當前節點 x,判斷當前節點是否為終點 ng,若是則表示完成搜尋階段, 將其從目標節點 OPEN 陣列中移除並加入至 CLOSE 陣列,跳出由步驟二建 構的迴圈,直接進入步驟十一。 步驟四:搜尋在當前節點附近且可抵達的節點並定義其為 yi。 步驟五:建構一個迴圈包含步驟五至步驟十,在迴圈內針對每個節點 yi 進行判斷,直到所有鄰近的節點都判斷完畢。 步驟六:判斷節點 yi 是否已經在 CLOSE 陣列內,若是則進行下一個鄰 近節點的判斷,否則繼續下一個步驟。 步驟七:估算節點 yi 的 G(yi),此函數定義為通過當前節點 x 的實際花 費函數,並且可以表示成 G(yi)=G(x)+dis(x, yi),其中 dis()函數表示兩個節點 間的直線距離。 步驟八:設定一個布林參數 k 為 false,用來記錄節點資訊是否需要更新。 步驟九:判斷節點 yi 是否存在於 OPEN 陣列內,若不在則將節點 yi 加入 . OPEN 陣列,並將參數 k 設為 true,否則再次判斷其餘節點的 G ( yi ) 是否小於 當下被選擇節點 yi 本身具有的 G(yi),若小於則亦將參數 k 設為 true,以表示 節點的資料需要新增或修改。 步驟十:判斷參數 k,若為 false 則不進行任何動作直接回到步驟五;若 為 true 則進行資料更新,包含:設定節點 yi 的來源節點為 x,表示是由當前 16.

(31) . 節點 x 建立而得;G(yi)由 G ( yi ) 取代,表示有花費更低的路徑。 步驟十一:此為重構階段,將終點 ng 存入暫存路徑 P 的第一個位置, 即 P(1)= ng。 步驟十二:建構一個迴圈,依照 P(i+1)=c(P(i))逐步將 N 個節點資訊填 入暫存路徑,直到將起點加入至暫存路徑,即滿足 P(N)= n0。 步驟十三:將暫存路徑之順序翻轉,即 P(i)=P(N-i+1), i=1,2,…,N-1,便 得正確順序之路徑 P,即完成整個 A*演算法。 從上述流程可得知,搜尋階段為第一至第十步驟,為目標點搜尋之流程; 重構階段為第十一至第十三步驟,為最短路徑生成,而階段轉換位於第三步 驟的跳脫條件,由於重構階段相對簡單而且無巢狀迴圈,因此演算時間花費 集中於搜尋階段。此外,路徑是否能夠建立仰賴於搜尋階段的 OPEN 陣列之 節點數量,演算法過程一方面持續地消耗 OPEN 陣列之節點,同時將地圖的 節點加入至 OPEN 陣列內,一旦無節點可以加入 OPEN 陣列內,則 OPEN 陣列內之節點數量便會下降,若在被消耗殆盡前仍然無法接觸終點,意味著 路徑建立失敗,因此雖於步驟三建立非可預期長度之迴圈,但在正常操作下 並不會造成演算法無窮循環。為了更詳盡地說明整體的運作流程楚,本論文 提供此演算法之虛擬碼,表示於圖 2-1[9,22]。 由於 A*演算法必須建立於有限節點的平面上,並且需給予節點間的連 結,因此問題本身要能網格化或者建立拓樸圖方得使用;而網格化的細膩程 度直接權衡了路徑細膩度以及運算時間,這往往是開發者所需面臨之問題, 利用 A*演算法進行規劃從相同起始點分別抵達不同目標點之路徑相關結果 顯示於圖 2-2。. 17.

(32) A*(start, goal) CLOSE_Array := empty set OPEN_Array := {start} g[start] = 0 while OPEN_Array is not empty x = the node with lowest cost of f(n) in OPEN_Array if x = goal while came_from[x] is not start path.append(x) x = came_from[x] end_while return rev(path) end_if remove x from OPEN_Array add x to CLOSE_Array for each y in neighbor_nodes of x if y in CLOSE_Array continue end_if g_t = g[y]+dis(x,y) k = false if y is not in OPEN_Array add y to OPEN_Array k = true else if g_t < g[y] k = true end_if if k = true came_from[y] = x g[y] = g_t f[y] = g[y] + h(y, goal) end_if end_for end_while return failure. 圖 2-1 A*演算法用於路徑規劃之虛擬碼. 18.

(33) 圖 2-2 A*演算法之路徑規劃結果. 2.3B-Spline 曲線 路徑規劃往往無法以單一種演算法即可精確規劃出滿足使用者需求之 路徑,由前一節規劃出顯示於圖 2-2 之結果不僅缺少路徑連續特性且不適合 用於具有特定大小真實移動機器人之軌跡,為了克服這樣的問題,具有局部 調整特色的 B-Spline 曲線將顯得相當適用。 B-Spline 曲線為 basis spline 的縮寫,是由 Schoenberg 在 1946 年所提出, 規劃上較 Bezier 曲線[34]更具有彈性及使用上較 Cubic 曲線廣泛[35]。 B-Spline 曲線包含 Bezier 曲線的通用數學表示法,然而,Bezier 曲線具有兩 項主要缺點:1.若改變曲線中的任一控制點,則整條曲線皆會改變;2.曲線 19.

(34) 次數高時,計算較費時。因此,相較於 Bezier 曲線,具有局部控制的能力、 及曲線階數(Order)與控制點數可各別獨立設計特性的 B-Spline 曲線則顯得 具有較高的實用性,例如由四個控制點定義之 Bezier 曲線只能建立出三次曲 線,而 B-Spline 曲線則可建立一到三次不同的曲線。產生如此不同差別的主 要原因為 B-Spline 所選擇的基底函數與 Bezier 曲線選擇不同。. 2.3.1B-Spline 曲線定義 B-Spline 曲線定義如下: n. p(u ) . pN i. i , k (u ). (2-2). i 0. 其中 Pi 為控制點,i=0,1,…,n 共 n+1 個數目, N i ,k 為每個控制點的基底函數,. k 為生成曲線之階數,次數則為 k-1,則 N i ,k (t ) 以遞迴定義表示如下 1, ti  u  ti 1 N i ,1 (u )   others 0,. (2-3). u  ti t u N i ,k 1 (u )  i  k N i 1,k 1 (u ) t i  k 1  t i t i  k  t i 1. (2-4). 與 N i ,k (u ) . 其中 t i 稱為節點,而 ti  則稱為節點向量,節點向量的概念將於下一節中進行 說明。. 2.3.2 B-Spline曲線模型特性 B-Spline曲線設計中基底函數 N i ,k (t ) 是由節點向量所決定,在具有相同 的控制點的情形之下,若節點向量不同,基底函數則不相同,則生成的曲線 結果便會不同。通常節點向量的基本要求為其中元素xi 為單調遞增,即. xi  xi 1,大致上建立B-Spline曲線的節點向量分佈形式主要有均勻分佈、開 放式均勻分佈與非均勻分佈。均勻分佈形式的節點向量內節點值以等差級數 方式排列,且將第一個元素值設為零,例如(0 1 2 3 4 5 6)或(0 2 4 6 8 10),均 20.

(35) 勻分佈的節點向量會使得B-spline曲線全部的基底函數曲線形狀相同,且僅 在參數線上平移一個節點的增量值。若為當重複首尾曲線階數數目的節點數 時所生成之B-spline曲線的始末端將落於首末的控制點上,即為下一段落提 到的開放式均勻分佈節點向量。非均勻分佈的節點向量所形成之基底函數則 為不可預期之結果,由於第k階基底函數,非零值區間的邊界皆落在節點向 量的元素值上,因此非均勻分佈節點向量常形成許多形狀不同的基底函數曲 線。 開放式均勻分佈節點向量的k階B-spline曲線型式,其節點向量的起始和 倒數k個元素必須分別為最小和最大的k個重覆值,如此安排目的使曲線的參 數空間能有效的由tmin至tmax,這個特性即與均勻節點向量不同,以三階為例, 其開放式均勻節點向量分佈如[0 0 0 1 2 3 4 4 4]或[0 0 0 2/3 4/3 2 2 2],而其總 數量由階數與控制點數目所共同決定,一個由零開始的k階均勻節點向量, 若元素級數公差為1,其參數空間僅能使用到k-1 ≦ t≦ (n+k)-(k-1),因此在 曲線參數的兩端形成空的區域。例如同一組控制點數(n+1)=5,階數為3的開 放式均勻節點向量為[0 0 0 1 2 3 3 3],參數可由0至3全部使用到,但均勻節 n 1. 點向量[0 1 2 3 4 5 6 7]的範圍對 N i ,k (t ) 有定義之區間為0至7,但使  N i ,k ( t )  1 i 1. 之區間為2至5,故曲線上僅能使用之參數區間為2至5。開放式均勻節點向量 的數學定義如下:. T   t1. t 2  t n k 1 . t i  t i 1. (2-5). ti  0. 0  i  k 1. (2-6). ti  i  k  1. k in. (2-7). ti  n  k  2. n 1  i  n  k. (2-8). 21.

(36) 節點總數為n+k+1,通常使用者只須提供控制點數(在此為n+1個)與曲線階數 (此為k階)即可決定節點個數,其中當控制點數與曲線的階數相同時 (即 n+1=k),則B-Spline曲線將退化為Bezier曲線。以下將舉相同控制點之不同 階數之B-Spline生成曲線: 以n=4為例(5個控制點) (I)k=1 時(一階曲線) 節點總數為 n+k+1 = 4+1+1 = 6 節點向量為:{0, 1, 2, 3, 4, 5} = {t0, t1, t2, t3, t4, t5} 並代入(2-3)與(2-4)式 得基底函數值與圖形分佈如圖2-3 1, 0  u  1 N 0,1   0, others 1, 1  u  2 N 1,1   others 0, 1, 2  u  3 N 2,1   others 0, 1, 3  u  4 N 3,1   others  0, 4u5 others. 1, N 4,1   0,. 圖2-3 一階基底函數值分佈 n. 再利用式(2-2) p(u )   pi N i ,k (u ) i 0. 22.

(37) 得 0  u  1, p(u) N 0 ,0(u)P0  P0 1  u  2, p(u) N1,0(u)P1  P1 2  u  3, p(u) N 2 ,0(u)P2  P2 3  u  4, p(u) N 3,0(u)P3  P3 4  u  5, p(u) N 4 ,0(u)P4  P4. 隨著u在[0,5]之間做變化,所描繪出的不是一條曲線,只是5個控制點。 (II)k=2時(二階曲線) 節點總數為n+k+1=7 節點向量為:{0, 0, 1, 2, 3, 4, 4} = {t0, t1, t2, t3, t4, t5, t6} 代入(2.3)(2.4)得 u0 others. 1, N 0,1   0, 1, N1,1    0,. 0  u 1 others. 1, N 2,1   0, 1, N 3,1   0,. 1 u  2 others. 1, N 4,1   0,. 3u  4 others. 2u3 others. 圖形表示則為圖2-4. 圖2-4 二階曲線(k=1)基底函數值分佈 23.

(38) N 0, 2 . N1, 2. 1  u, 0  u  1 u0 1 u N 0,1 (u )  N1,1 (u )    00 1 0  0 , others . 0  u  1 u, u0 2u    N1,1 (u )  N 2,1 (u )  2 - u, 1  u  1 1 0 2 1 0, others . 其中在運算過程中,定義分母若出現0時則該項視為0。 同理可得 1 u  2 u  1,  N 2, 2  3  u , 2u3 0 , others  2u3 u  2,  N 3, 2  4  u , 3u  4  0, others  3 u  4 u - 3, N 4, 2   others  0,. 圖2-5 二階曲線(k=2)基底函數值分佈 n. P(u )   N i , p (u ) Pi  N 0,1 P0  N1,1 P1  N 2,1 P2  N 3,1 P3  N 4,1 P4 i 0. 0  u 1  P0 (1  u )  P1 (u ),  P (2  u )  P (u  1), 1  u  2  2  1  P2 (3  u )  P3 (u  2), 2  u  3  P3 (4  u )  P4 (u  3), 3  u  4. 由k=2時所生成的P(u)的曲線結果為所有控制點之連線。 24.

(39) (III)k=3時(三階曲線) 節點向量為{0, 0, 0, 1, 2, 3, 3, 3}={t0, t1, t2, t3, t4, t5, t6, t7} 4. P(u )   Pi N i ,3 (u ) i 0. k=1時基底向量 u0 others. 1, N 0,1   0, 1, N1,1   0,. u0 others 0  u 1 others. 1, N 2,1   0, 1, N 3,1   0,. 1 u  2 others. 1, N 4,1   0,. 2  u  3  others. 圖2-6 三階曲線(k=1)基底函數值分佈 k=2時基底向量 N 0, 2  0 N1, 2 . N 2, 2. N 3, 2. N 4, 2. 1  u , 0  u  1 t u u  t1 N1,1 (u )  3 N 2,1 (u )   t 2  t1 t3  t 2  0, others.  u  1, 0  u  1 u , 1  u  2 2  u, 2  u  3     2 - u, 1  u  2 0 , others 0 , others    0, others    u  1, 1  u  2   3  u , 2  u  3  0, others  u  2, 2  u  3  others  0,. 圖2-7 三階曲線(k=2)基底函數值分佈. 25.

(40) (1  u ) 2 , 0  u  1 u  t0 t u N 0, 2 (u )  3 N1, 2 (u )  (t3  u ) N1, 2   t 2  t0 t3  t1 others  0,  u (2  u )  u (1  u ) , 0  u  1  2  (2  u ) 2   , 1 u  2  2 , others  0 . N 0,3 . N1,3. N 2,3. N 3, 3. N 4,3.  u2 ,  2  u (2  u )  (3  u )(u  1)  ,  2  (3  u ) 2 ,  2  0, . 0  u 1 1 u  2 2u3 others.  (u  1) 2 ,  2  (u  1)(3  u )    (3  u )(u  2), 2  0,     . (u  2) 2 ,. 1 u  2 2u3 others 2u3. 0,. others. 圖2-8 三階曲線(k=3)基底函數值分佈 (IV)根據以上方法亦可求得k=4,則不進行詳細推導,直接考慮當k=5的 情況 (V)當k=5時(五階曲線) 節點向量為{0, 0, 0, 0, 0, 1, 1, 1, 1, 1}={t0, t1, t2, t3, t4, t5, t6, t7, t8, t9} 簡化先前繁雜的步驟如下 N 0,5  (1  u ) 4 N1,5  4u (1  u ) 3 N 2,5  6u 2 (1  u ) 2 ,. 0  u 1. N 3,5  4u 3 (1  u ) N 4,5  u 4. 26.

(41) 此 時 得 到 基 底 函 數 N i ,5 4 之 係 數 等 同 於 Bezier 曲 線 之 基 底 函 數 i 0  n Bi (u )   u i (1  u ) ni ,0  u  1 形式,因此當k達最大值,即k=n時,則B-Spline  0. 曲線就是Bezier曲線,因此,Bezier曲線可視為是B-Spline曲線之特例,針對 相同控制點之不同階B-Spline曲線結果表示於圖2-9。. (a). (b). (c). (d). 圖2-9 B-Spline曲線圖(a) 5控制點之2階圖形;(b) 5控制點之3階圖形; (c) 5控制點之4階圖形;(d)5控制點之5階圖形. 2.3.3 B-Spline曲線的凸多邊形特性 B-Spline曲線的可行區域分佈空間具備凸多邊形特性,對一個k階的 B-spline曲線,在控制點位置和階數k決定後的曲線分佈必落在其最近的k個 27.

(42) 控制點所連成的凸多邊形之中,如此便可以決定整條曲線的形狀與其可能生 成的區域。此特性常用於決定曲線的相交判斷,若兩條曲線的凸多邊形不發 生交集,則兩條曲線必不相交,否則再次考慮相交問題。圖2-10、圖2-11為 凸多邊形特性的示意圖。如圖2-10中為k=2的B-Spline曲線,其任兩個相鄰的 控制點所連之多邊形必為直線,故曲線分佈空間即為控制點所連成之折線; k=3時任三個相鄰的控制點則連成三角形,形成圖中陰影區域,其生成曲線 範圍將落於此陰影區域中,k=4亦同。此外階數愈高,曲線愈顯得平直,且 若控制點互相分佈在同一連線上,則此區域之曲線分佈將在此段連線上。由 圖2-11中可看出其控制點相關位置與其生成曲線之分佈範圍。. k=2. k=3. k=4. 圖2-10 B-Spline曲線生成之空間範圍,連續共線個數<k。 28.

(43) 圖2-11 控制點連續共線的個數 k生成直線。. 2.3.4 B-Spline曲線的局部控制特性 B-spline曲線的局部控制特性相當適用於機器人路徑規劃的應用。為了 能夠進行B-spline曲線的部分修改又不希望曲線的其他區段發生變動,利用 B-spline曲線基底函數具有參數子區間各自的分佈特性來進行區域性修改即 可達成此目標,例如k階的B-spline曲線每一個基底函數所包含的非零子區間 必介於1至k個節點向量所分割的子區間內。以圖2-12中的節點向量為例,向 量[X]=[0 0 0 1 2 3 4 4 4]、k=3將參數空間切割為(0~1)、(1~2)、(2~3)、(3~4), 四個子區間,而N1,3與N6,3僅分別在第1(0~1)及第4(3~4)個子區間具有非零值, N3,3,N4,3則個別在第1至3(0~3)和第2至4(1~4)子區間具有非零值。對圖2-12 範例,以式(2-2)展開則可寫成 P(t )  B1 N1,3 (t )  B2 N2,3 (t )  B3 N3,3 (t )  B4 N4,3 (t )  B5 N5,3 (t )  B6 N6,3 (t ) (2-9). 29.

(44) 圖2-12 基底函數曲線圖,開放式均勻節點向量[0 0 0 1 2 3 4 4 4], 階數k=3,控制點數目(n+1)=6。 當控制點B3移動時,則曲線在N3,3的非零子區間(0-3)中才會發生形狀上的改 變,由於圖中曲線為開放式均勻分佈節點向量,N3,3的極大值發生於子區間 的中間點t=1.5上,當參數值開始由0增加至3時,介於B1控制點及B4,B5控制 點間的曲線會發生變化。如圖2-13所示,B1至B4、B5中間部分的曲線便被重 新定義。由此歸納出如下結論: k 2. 當一k階的B-spline曲線中一控制點Bi被移動時,位於Bi兩旁的  個控制點間 之曲線形狀亦隨之變化。. 30.

(45) 圖2.13 控制點移動與曲線變化示意圖. 31.

(46) 第三章 輪型移動機器人之運動模型建立 前一章節已針對論型移動機器人的路徑規劃做出完整的分析,接下來則 探討機器人路徑追蹤之問題。由於本論文是採用控制機器人左右輪速度來達 到追蹤路徑之目的,因此了解機器人的移動特性是必要的,而這一章節將推 導輪型移動機器人移動過程之運動模型以作為速度控制器設計之依據。 本章節主要探討具有三輪式移動機器人(如圖 3-1 所示)之幾何結構與運 動約束,並進一步推導出輪型機器人之運動方程式。對於輪型移動機器人非 完整約束[36](Nonholonomic Constraints)是指約束方程式具有不可積分之性 質,這類系統的運動約束包含廣義座標的微分式,其中輪型機器人是非完整 約束系統的代表之一。 動態模型的推導可以真實地描述輸入力矩與系統變數的關係。本文藉由 機械系統的幾何約束以及非完整約束的本質特性,提出一套推導系統模型的 結構化方法。進而針對三輪式輪型機器人的剛體結構,建立一組適當的運動 模型。. 圖 3-1 輪型移動機器人之幾何模型 32.

(47) 3.1 輪型機器人之結構分析並以約束條件推導運動模型 在本研究中所使用之輪型機器人主要由四個剛體組成,分別為平台、機 器人左右固定輪以及後方自由輪。平台是機器人之主體結構,包含攝影鏡頭、 無線通訊模組、馬達驅動電路、電池與環境感測器如紅外線、超音波距離感 測器等皆安裝於此區域內;左右輪各別由獨立之伺服馬達操控且具有共同之 軸心,藉由對其之驅動來控制機器人進行相關運動,並以增量編碼器回授角 度資訊;自由輪則是用於平衡用,而不以動力驅動。 本章節之目的在於獲得機器人之運動方程式,因此需先分析其結構,再 以幾何與運動約束推導之。首先,針對機器人之每個剛體進行定義:令 body1 為平台,body2 與 body3 分別為機器人左右兩側之固定輪,body4 為自由輪, 其中自由輪在不考慮摩擦力的情況下對運動影響甚微,因此在推導過程中並 不加以考慮。此外,亦針對機器人之其他參數加以定義:r 為車輪之半徑, 而 L 則表示雙輪質心間距之一半。在三維之空間中,每個剛體需要以 6 個位 形變數描述其移動與轉動關係,故在本研究中以變數 x  ( xi , yi , zi , i ,  i ,i ), i  1, 2, 3. (3-1). 表示,其中(xi ,yi ,zi)描述該剛體在慣性座標軸之座標,(i ,  i ,i ) 則描述該剛體 之姿態角,分別為滾轉角(roll angle)、俯仰角(pitch angle)與方位角(yaw angle), 而 i 則是對應前述之剛體編號。由於姿態角是定義於機器人上,故與其運動 有關。在此定義 X 軸為機器人之移動方向,Z 軸為朝地心方向,Y 軸與 X、Z 軸互成右旋之座標系統,因此根據此定義可得 (i ,  i ,i ) 分別是對 X、Y、Z 軸 三軸旋轉之角度。 由(3-1)式得知此機器人架構包含 3 個剛體與各自的 6 個位形變數得出共 18 個位形變數,下一步將透過約束條件推導運動方程式。. 33.

(48) 3.1.1 輪型移動機器人完整約束之分析 完整約束又稱為幾何約束,為其方程式只跟位置、時間有關,跟速度無 關,並可藉由與其它完整約束方程式之間的關聯性來消除相關的變數以簡化 龐大的變數量。首先考慮機器人運動於平坦之二維平面,因此相對於地面之 高度不應有所變化,故可得到 3 組約束條件: z1  c1 z2  r. (3-2). z3  r. 其中 c1 為平台質心與地面之距離高度,r 為兩輪質心高度,即其半徑長。其 次,我們假定車體平台在機器人的運動過程中保持穩定,無左右側滾與前後 傾斜的現象發生,以下兩條的幾何約束將被成立。. 1  0 1  0. (3-3). 倘若左、右兩個車輪在滾動時與地面保持垂直方向運動,不會左右晃動,則 左、右兩輪(i=2,3)的滾動角將被設 0,故. 2  0 3  0. (3-4). 此外,由於剛體間的互相聯結,輪型機器人在運動時所有剛體的方向角應該 滿足以下的約束條件.  2  1  3  1. (3-5). 最後參考圖 3.1 之輪型機器人幾何結構圖,以平台質心(x1,y1)為基準,整理 各剛體間之位置關係之約束條件:. 34.

(49) x2  x1  d cos1  L sin 1 y 2  y1  d sin 1  L cos1 x3  x1  d cos1  L sin 1. (3-6). y3  y1  d sin 1  L cos1 透 過 (3-2) 到 (3-6) 式 幾 何 約 束 可 將 18 個 位 形 變 數 簡 化 成 5 個 變 數 如 ( x1 , y1 ,1 , 2 , 3 ) 大幅降低系統模型的複雜度。下一步將引入非完整約束條件. (速度約束)推導之,更能有效地掌握輪型機器人的運動特性。. 3.1.2 非完整約束條件推導 考慮車輪與地面間為純滾動狀態下,其移動速度會與本身之轉動角速度 和機器人之移動方向有關,即下列 4 個運動約束條件:. x 2  r2 cos 1 y  r sin  2. 2. 1. x3  r3 cos 1 y  r sin  3. 3. (3-7). 1. 從中可求得 x2 cos 1  y 2 sin 1  r2 x2 sin 1  x2 cos 1  0. (3-8). 從(3-6)與(3-7)可得: x3  x2  2 L sin 1 y3  y2  2 L cos 1. (3-9). 將(3-9)式微分後並移項可得: x3  x2  2 L cos 1  1 y 3  y 2  2 L sin 1  1. (3-10). 利用(3-7)代入(3-10)整理後可得: r3  r2  2L1. 速度約束條件經過積分後可變成幾何約束條件: 35. (3-11).

(50) 1 . r  3   2   c2 2L. (3-12). 其中 c2 為一常數,表示  1 之初始值。此外,從(3-7)可再得: x2  x3  2 x1  2d cos1 y 2  y3  2 y1  2d sin 1. (3-13). 分別將 x1 與 y1 移至等號左側並微分後得: 1 x 2  x3   d c o s1  1 2 1 y1   y 2  y 3   d c o s1  1 2. x1 . (3-14). 將運動約束條件 (3-7)代入後並整理而得到: wr 2  3 c o s1  d c o s1  1 2 w y1  r 2  3 s i n1  d c o s1  1 2. x1 . (3-15). 相較於平台座標 ( x1 , y1 ) ,左右輪軸之中心參考點 Pr ( xr , yr ) 更常為使用,且由 於車輪安裝於伺服馬達上,因此可以直接控制其運動,故在此令 2  u1 以及 .  3  u2 ,最終可以獲得機器人之運動模型:. 2  u1 3  u 2 r u1  u2  cos 1 2 r y r  u1  u 2  sin 1 2 r u1  u2  1  2L x r . 3.2 離散型輪型移動機器人運動模型[9] 36. (3-16).

(51) 在上一章節中,微分形式之運動模型已經導出,然而因實作要求需轉換 成離散系統,因此推導離散型差分方程式更能精確描述機器人之移動。首先, 考慮當取樣間隔足夠小時,機器人在間隔內之移動可視為圓周運動,因此其 運動示意圖可如圖 3-2 描述。由於 Dl 與 Dr 分別定義為左右輪在平面上之移 動軌跡,因此 Dl 與 Dr 是其在時間間隔內之移動量, R 則是內輪之旋轉半 徑,而 D 則對應至輪軸中心點 Pr ( xr , yr )。若考慮輪胎與地面間為純滾動狀態, 則輪胎移動速度會與其轉動的切線速度相同,而有以下之關係:. Dl  wr  2 Dr  wr  3. 圖 3-2 機器人單步運動示意圖. (3-17). 圖 3-3 機器人單步節點示意圖. 且移動量與機器人之方向角之關係可描述成 Dl  R. Dr  R  2 L . (3-18). 由於輪軸中心點 Pr 之旋轉半徑為 R  L ,故 D  R  L ,且經過代換後 可得:. D . Dl  Dr  2 37. (3-19).

(52) 此外,  亦可表示成:.  . Dr  Dl  2L. (3-20). 本論文加入參考點如圖 3-3,O 為旋轉中心,A 與 B 分別是移動之起點 與終點,C 是 A 與 B 沿移動切線交點,而 E 是起點 A 朝 x 軸方向延伸之一 點。此外, D' 定義為 A 與 B 之直線距離,假設 EAB 為  a ,則 xr 與 yr 可 以分別表示成:. xr  D' cos a  yr  D' sin  a . (3-21). 由圖 3-3 所知,EAC 是機器人在前一個時間點之方向角,即 EAC   n  1 , 而根據幾何關係可以得到 CAB   / 2 ,因此我們有. xr  D' c o s n  1   / 2.  n  1   / 2 yr  D' s i n. (3-22). 此外, D' 與 D 可以分別被描述成:    D'  2 s i n   R  L   2  D    R  L . (3-23). 因此我們可以得到: D' . s i n / 2 D  / 2. (3-24). 最終運動模型可以獲得並描述成: xr . s i n / 2    D c o s n  1    / 2 2  . s i n / 2    y r  D s i n  n  1    / 2 2   38. (3-25).

(53) 或者以差分之形式表示 xr n   xr n  1 . sin / 2    D cos n  1    / 2 2  . sin / 2    D sin n  1    / 2 2   Dr  Dl   r n    r n  1  2L y r n   y r n  1 . (3-26). 然而在實際應用上,需要將規劃路徑轉換成馬達參考之輸入,因此需要以逆 向運動學反推導出結果。由於路徑是規劃出來時, xr 、 yr 已經轉變為已 知,而目標是要獲得  2 與 3 ,在參考(3-24)後可得: D . ( / 2) x 2  y 2 s i n( / 2). (3-27). 因此再引入(3-17)至(3-19)後,即可獲得逆向運動學之最終結果:.  2 . D  L wr. D  L  3  wr. (3-28). 3.3 輪型移動機器人之路經追蹤運動模型推導 3.2 節已推導出實作時需要考慮到的離散數學運動模型,接著本節介紹 關於路徑追蹤之內容如圖 3-4 所示,其中(xd, yd)為機器人抵達欲追蹤路徑上 之座標, d 為路徑上任一點之方位角,路徑與機器人之間的位置方向誤差定 義為 ( xe , ye , e ) ,  e , e 為由機器人方向為基準所建立之參考座標上與追蹤路 徑上一點之切線與法線距離,由此兩參數定義兩輪中心位置與路徑間距離為 d e   e2   e2 以 及 由 機 器 人 自 身 位 置 方 向 判 斷 的 路 徑 點 方 向 的 夾 角 為. e  tan 1 ( e /  e ) ,由於  e 為追蹤角度誤差,可以由機器人本身為基準所建立 39.

(54) 之座標做為參考標準,因此 ( e , e , e ) 與卡氏座標上的座標轉換對應關係可表 示如(圖 3.4)所示[14].  e   cos      sin   e   e   0. sin  cos  0. 0  x d  x r  0  y d  y r  1   d   . (3-29). 圖 3-4 輪型移動機器人與追蹤路徑關係圖 在本章節推導完輪型移動機器人之運動模型,接著便可討論控制器設計 的問題,在下一章節將介紹本論文所使用的模糊控制的介紹,而其應用將於 第六章中做說明。. 40.

參考文獻

相關文件

The empirical results indicate that there are four results of causality relationship between Investor Sentiment and Stock Returns, such as (1) Investor

進而能自行分析、設計與裝配各 種控制電路,並能應用本班已符 合機電整合術科技能檢定的實習 設備進行實務上的實習。本課程 可習得習得氣壓-機構連結控制

請繪出交流三相感應電動機AC 220V 15HP,額定電流為40安,正逆轉兼Y-△啟動控制電路之主

蔣松原,1998,應用 應用 應用 應用模糊理論 模糊理論 模糊理論

我們提出利用讀取器與讀取器間的距離為參數來優化利用分層移除讀取器之方法的最佳 化技術 Distance Based Optimization for Eliminating Redundant Readers (DBO) ,此方法完全

(計畫名稱/Title of the Project) 提升學習動機與解決實務問題能力於實用課程之研究- 以交通工程課程為例/A Study on the Promotion of Learning Motivation and Practical

and Feng-Tsai Lin, “Analysis of the Transient Ground Surface Displacements Subject to a Point Sink in a Poroelastic Half Space,” Chung Hua Journal of Science and Engineering,

覺察與模仿 身-1-1 模仿身體操控活動 身-1-2 模仿操作各種器材的動作 協調與控制 身-2-1