• 沒有找到結果。

模糊邏輯系統之推論引擎

第四章 模糊邏輯系統

4.1 模糊系統之理論背景

4.2.4 模糊邏輯系統之推論引擎

模糊推理機制是依據近似推理的概念所發展出來的,主要負責模糊控制器 內的模糊推理運算,也是模糊邏輯控制器的核心單元之一。此機構不僅可以處 理明確命題,更可以解決模糊命題。因此,近似推理也較傳統推論的嚴正推理 更合理也更具有彈性。近似推理又可分為下列兩種模糊推理機構[29]:

1. Generalized Modus Ponens(GMP) 2. Generalized Modus Tollens(GMT)

對於 GMP 和 GMT 兩種推理機構之描述,如表 4-2 所示。

表 4-2 兩種推論機構之描述

GMP(Generalized Modus Ponens) GMT(Generalized Modus Tollens) 事實:X is A’ Min-Min-Max 模糊推論、Larsen 的乘積(Product)模糊推論、Tsukamoto 模糊推 論法與 Takagi-Sugeno…等推論。

由以上可知,模糊系統的架構不需要推導受控體複雜的數學模型,利用 單簡的語言控制法就能達到傳統控制的動作,目前已有不少的產品,尤其是家 電產品,逐漸採用模糊控制來開發系統。

第五章 整合 DNA 演化法與 Q-Learning 之適應性學習方法

本章將結合 DNA 演化法與 Q-Learning 之適應性學習方法,並規劃出環境報 酬值來產生不同的學習範圍,以及所設計出的適應函數來評估此環境問題的績 效。

5.1 整合學習方法之架構

本論文提出以 DNA 演化法與 Q-Learning 之學習架構,其架構圖如圖 5-1 所 示。

圖 5-1 DNA 演化法與 Q-Learning 之學習架構

此整合學習法主要是透過 DNA 編碼及操作方式來演化模糊系統的權重值,

其中 DNA 操作方式採用傳統遺傳演算法的選擇、交配、突變的方式,而適應函 數的選擇就非常重要,加上 Q-Learning 本身屬於評估機制,並且可以判別執行動

作的好壞而給予適當的報酬,因此本論文把 Q-Learning 之 Q-value 納入適應函數 當中的一部份。而本論文的實現方式是透過軟體模擬的方式將模糊系統權重值給 演化完成,並且軟體模擬本身也是模擬移動機器人能夠閃避障礙物並達到搜尋目 標物的目標,模擬完成後將其演化好的模糊參數下載到所採用的 Sputnik 移動機 器人身上,並且實現時環境必須與軟體模擬的環境是等比例的,實現時所使用的 方法的細節將在下一節詳細說明。

5.2 整合 DNA 演化法與 Q-Learning 之適應性學習方法的設計

此整合性學習方法對於一未知且複雜的環境具有良好的學習能力,而所使用 的 DNA 編碼方式、Q-Learning 之 Q-value 及 reward 設計方式,以及適應函數設 計方式等,以下針對各部份作說明。

DNA 演化:DNA 遺傳演算法之主要架構如圖 5-2:

圖 5-2 DNA 遺傳演算法架構

DNA 遺傳演算法的架構跟傳統遺傳演算法很相近,差別在於 DNA 的編碼 方式及基因操作方式有所不同,而基因操作方式除了傳統遺傳演算法的操作方 式外,還包括細菌(bacterial)操作、酵素(enzyme)操作,及病毒(virus)操作等。

生物學(biological)DNA 由核甘酸(nucleotide)分類成四個基底(T, C, A, and G) 所組成的,而且 DNA 的四個基底可以組合出不同的基因,每一個氨基(amino) 酸(acid)由三個核甘酸的基底組合並表示之,且三個核甘酸的基底組合稱之為密 碼子(codon),就是某一基因的代碼。密碼子有 64 種類型,但只有 20 種氨基酸 可以對應到 64 種密碼子的類型,因此密碼子及氨基酸的對應關係如表 5-1 所示:

表 5-1 密碼子與氨基酸之對應關係

而本論文所使用的 DNA 染色體的基因當作是移動機器人所行走的角度,其

本論文實現方式是以亂數產生十條染色體,而每一條染色體的的基因由四

人的各個距離感測器之間的大小並取出距離最小的感測器,以進行下一步各種不

適應函數(Fitness Function):適應函數是 DNA 染色體演化的依據,適應函 數的選擇必須符合實際環境的情況來設計,否則會有演化失敗的情形產生,而 適應函數是愈大愈好,其設計方式如(5.7)所示:

(5.7)

其中, f _goal是當移動機器人成功的搜尋到目標物時,所給定的一個正整 數,表示適應函數會增大。而移動機器人在搜尋目標物時最理想的情況就是不 但能成功地閃避障礙物,並以最短路徑達成搜尋目標物的目標,其中若移動機 器人成功閃避障礙物時,其 Q-value 之參數r(reward)通常會落入sSSFS

sNSSFSsFSFSsSSSS等空間中,使得r值都為正值,而使 (5.3)式會一直累增,並且使(5.2)式所計算出的 Q-value 會讓適應函數變大,

_

step number為移動機器人所行走的步數,行走的步數愈少,表示行走的路徑

愈短,因為適應函數愈大愈好,所以以 1 _

step number 方式來考慮移動機器人的 最短路徑。

以上整體學習演算法的過程以流程圖表示如下頁所示:

1 _

fitness Q _ f goal

step number

= ⋅ +

圖 5-5 學習演算法流程圖

本章所探討之整合學習法,其中 Q-Learning 是根據報酬值來使移動機器人 進行閃避障礙物的學習,而 DNA 遺傳演算法之適應函數是使移動機器人能夠 收斂到最短路徑,因此整合學習法之模擬與實現將在下個章節來表示之。

此族群執行結束

計算染色體之輸出動作及執行 動作

初始化

選擇其中一條DNA染色體

回傳報酬值及更新Q-value

演算法操作結束

結束

遺傳操作

第六章 移動機器人之模擬與實驗

本章節將會針對移動機器人模擬與實驗細節進行說明,本論文實現方式是 先利用模擬器來進行整合演算法之學習,而模擬完成的參數就會下載到實體機器 人身上進行實驗結果的驗證。

6.1 移動機器人之軟硬體架構

本論文所使用的移動機器人我們可以在個人電腦上利用 Visual C++或 Visual Basic 來進行程式撰寫,而所撰寫的程式是透過集線器來跟移動機器人進行無線 網路的傳遞,如圖 6-1 所示。

圖 6-1 移動機器人之操作平台

6.1.1 移動機器人軟體說明

本論文採用 Dr.Robot 公司所開發之 sputnik 智慧型機器人,並且使用 WiRobot SDK ActiveX 元件來對硬體裝置進行溝通,而 ActiveX 技術是 Microsoft 實行分散式物件導向的關鍵技術,用來建立彼此通訊的應用程式,可以允許一

個應用程式嵌入物件或文件到另一個應用程式,像是可以嵌入媒體播放程式、

Web 瀏覽器到人機介面上等。只要在一致的平台介面,便能夠成為插入運作的 軟體元件,具有跨網路與跨程式語言的特性,使得應用程式能夠更簡潔迅速的 發展,但 ActiveX 只能在視窗環境中使用,並不適用於其它作業平台。

Dr.Robot 公司是透過 SDK(Software Development Kit,全名為軟體開發元件) 來開發出 API 函數提供我們使用 PC 來針對 sputnik 智慧型機器人進行控制,並 且 PC 與 sputnik 之間的傳輸是透過無線網路。而我們所使用的 API 函數是透過 WiRobot SDK ActiveX 元件來與硬體作溝通,在 WiRobot SDK ActiveX 元件中 有兩個控制項 WiRobotSDKMultiActiveX.ocx 及 MSWINSCK.ocx,其中 WiRobotSDKMultiActiveX.ocx 負責將 API 函數轉換為硬體控制指令,

MSWINSCK.ocx 則負積將硬體指令透過無線網路模組傳遞給數位訊號處理器 (Digital Signal Processing),以執行控制行為,sputnik 之通訊架構如圖 6-2 所示。

圖 6-2 sputnik 通訊傳輸架構圖

6.1.2 移動機器人硬體說明

本論文所採用 Dr.Robot 公司所開發之 sputnik 智慧型機器人,如圖 6-3 所 示。

圖 6-3 sputnik 智慧型機器人

Sputnik 之輪型平台的兩具 12V DC 馬達,可提供機械人的 18cm 車輪 300 oz.inch(21.6 kg.cm)的扭力,讓最高速可達 1m/s,每個車輪都有高解析度(每轉 1200 格)的增量編碼器(quadrature encoder),提供車輪移動的機密量測及控制。

sputnik 智慧型機器人本身重 6.1 kg,可以承受 10 kg 的載重,在頭部方面,sputnik 具有 5 個 Servo,並且全部有 7 個自由度(degree of freedom, DOF),可動式電子 頭部有 5 個 DOF,移動平台有 2 個 DOF,電子頭部的眼睛可以上下左右轉動 攝影(pan/tilt),眼罩及嘴巴可以獨立的關閉及張開,同樣的,脖子的機械結構,

也可以自行的上下轉動。整體的頭部行為是由多媒體控制卡、彩色影像模組及 伺服馬達進行硬體控制,整體頭部架構圖如圖 6-4 所示。

圖 6-4 sputnik 頭部架構圖

有關 sputnik 頭部所使用的伺服馬達,Dr.Robot 公司是採用 Hitec R/C 伺服 馬達,由於頭部裝置 5 顆伺服馬達,其型號則分別採用 3 顆 HS-322HD、1 顆 HS-475HB 及 1 顆 HS-645MG,伺服馬達外觀圖如圖 6-5、6-6、6-7 所示。

圖 6-5 HS-322HD 圖 6-6 HS-475HB 圖 6-7 HS-645MG

此伺服馬達的控制信號是一個脈波寬度調變(PWM)的控制信號,經由其責 任週期(Duty Cycle)的比例來控制伺服馬達的位置,而伺服馬達本身是由一個連

續脈波信號的控制,並且每秒接收 60 次的脈波,脈衝的寬度決定了伺服馬達 的轉角位置,圖 6-8 所示為脈衝寬度 1.5 ms 時伺服馬達的轉角位置在中間,圖 6-9 為 0.5 ms 時伺服馬達在最左端 0 度角的位置,圖 6-10 為 2.5 ms 時伺服馬達

在最右端 180 度角的位置。

圖 6-8 伺服馬達在 90 度的位置

圖 6-9 伺服馬達在 0 度的位置

圖 6-10 伺服馬達在 180 度的位置

Sputnik 輪型平台裝置有 2 顆 12V 之 DC 馬達,當在軟體中下指令給 DC 馬達時,由前面軟體說明所提到,系統是透過 WiRobot SDK ActiveX 元件中的 兩個控制項 WiRobotSDKMultiActiveX.ocx 及 MSWINSCK.ocx,其中 WiRobotSDKMultiActiveX.ocx 負責將下達的指令轉換為硬體控制指令,

MSWINSCK.ocx 負責將硬體控制指令透過無線網路傳遞給 DSP,使 DSP 產生 脈波訊號,但 DSP 所產生的脈波訊號還不足以推動 DC 馬達,必須使用 DC 馬 達控制模組 MDM5253 將脈波訊號給放大才能推動 DC 馬達,而所使用之 MDM5253 如圖 6-11 所示。

圖 6-11 MDM5253

MDM5253 本身具有位置及電流迴授的功能,並且使用 PWM 來進行功率 放大,才能推動 DC 馬達,而在圖 6-12 說明 PWM 責任週期與推動 DC 馬達之 輸出的關係。其中,輸出電流的平均值為零表示責任週期為 50%;輸出的方向 (表馬達旋轉方向)發生於責任週期是否大於 50%;輸出的大小(表馬達轉速大小) 發生於責任週期與 50%是否有所不同。

圖 6-12 MDM5253 之 PWM 控制的波形

DC 馬達控制模組 MDM5253 本身有六個通道 CH0~CH5,其中 CH0 與 CH1 是控制 sputnik 的左輪與右輪的馬達,而馬達的轉速、反應速度以及位置是 透過 PID 控制器來進行控制,圖 6-13 為 DC 馬達使用 PID 控制器之架構圖:

圖 6-10 MDM5253 之 PWM 控制 圖 6-13 DC 馬達控制系統架構

其中,PID 控制器的轉移函數如(6.1)式所示:

( ) ( )

I

P D

K U s K K S

E s = + + S (6.1) 而馬達目前的位置與速度,要經由電位計(Potentiometer)來回傳訊號給系統,

電位計本身是量測馬達旋轉位置的元件,它是利用計算脈波數做為馬達旋轉角 度的控制,因此整體的 DC 馬達控制系統形成一閉迴路控制系統,以使馬達能

正常運作。

有關於 sputnik 智慧型機器人所使用的感測器部份,sputnik 裝置有三個超 音波感測器(Ultrasonic sensor)及七個紅外線感測器(Infrared sensor),這兩種感

有關於 sputnik 智慧型機器人所使用的感測器部份,sputnik 裝置有三個超 音波感測器(Ultrasonic sensor)及七個紅外線感測器(Infrared sensor),這兩種感

相關文件