Profile - TW041


TW041

智慧型下棋機器人



Semi-Finals


[print]


Project Paper - view as Preliminary(2010/07/21), Final(2010/11/01), Draft, Latest

1. 設計介紹 (Preliminary Paper)

1.1 設計的目的

機器人技術與產業也已是世界各國列為前瞻優先發展的新科技產業,全世界在機器人研發投入相當多的人力與成本,尤其是日本在機器人產業發展最為全面,工業局推估機器人產值在2009年可達到400億元,預期在2015年時,全台智慧型機器人產業產值將由目前的200餘億元,大幅成長至2500億元。機器人產業是結合機械、自動化、電機、電子、資訊軟體、通訊及創意內容等相關技術,為一高度技術整合且高附加價值的明星產業,可預期的是機器人也即將進入家庭環境成為一般民眾生活的一部分,對於國家發展與國家經濟及工業整體發展具有關鍵性指標的地位。

一般的樂高模型完成之後是『靜』態模型,玩家可以自由想像,沈浸於觀賞之中。樂高於20069月上旬推出教育用LEGO Mindstorms NXTMindstorms是將配備微處理器的LEGO公司的塑料積木組裝起來,通過個人電腦制作的程序來控制的機器人,將模型加上馬達等動力元件,就可以進化為『動』態模型,有了動作,玩家可以有更多的玩法。本作品首先目的在於利用Altera DE0為主要控制板,用來取代樂高Mindstorms NXT主機,如圖(1.1)所示,如此可以提高樂高機器人之教育性與擴充性。

(1.1)Altera DE0為基礎之樂高機器人發展平台

本作品利用樂高積木設計開發一「下棋機器人」,如圖(1.2)所示,該機器人會陪使用者下井字遊戲,該遊戲人工智慧主要利用最佳解優先搜尋法,以考慮自己和使用者最佳著手為前提,選擇了一步對自己有利且傷害性降到最低的棋步,這當中的優點是可以非常穩健的在下每一步棋。並利用VHDL硬體描述語言撰寫與硬體相關之介面程式,包含馬達定位控制來控制棋盤位置、觸碰開關等訊息接收來與使用者互動、文字轉聲音可以講話傳遞訊息。透過NIOS II強大的處理器,可很容易大規模的系統整合,更可以減少設計產品周期,並可有效地提升系統的即時性。

(1.2)下棋機器人平台

1.2 應用領域

機器人技術與產業已是世界各國列為前瞻優先發展的新科技產業,全世界在機器人研發投入相當多的人力與成本,尤其是日本在機器人產業發展最為全面,機器人產業為一高度技術整合且高附加價值的明星產業,可以預期在不久的將來機器人也將進入家庭環境,成為一般民眾生活的一部分,對於國家經濟及工業整體發展有關鍵性指標的地位。智慧型機器人產業尚屬起步階段,根據經濟部的資料顯示,目前的智慧型機器人大多集中於保全、清潔、娛樂和互動上面的應用,未來可以結合不同領域的發展。機器人的關鍵技術涵蓋機械結構設計、馬達設計與控制、即時影像/語音處理、感測電路設計與實現、嵌入式系統軟硬體設計、微處理器應用與IC設計、智慧型控制技術、機電整合等等的專業知識,是一個需要系統整合才能有效發展的研究領域。智慧型機器人產業已是全球矚目的焦點之一。

 

1.3 目標的使用者

統計台灣三大都會區寂寞人口達107萬,生活型態趨向「單身化」,再加上快節奏的都市生活步調、緊張的社會關係,使得生活感受產生更多壓力,「寂寞」因而變成為都市男女的集體感傷。近年來,台灣開始出現「第四級幸福產業」,其目的主要讓消費者有幸福、親密感、滿足、被關懷,並找到歸屬的產業,其中結合人本、人道關懷之互動式機器人便佔有舉足輕重之地位。本作品「下棋機器人」具備智慧、互動與情感科技特性,並具備聲音與情緒表達特性,提供休閒娛樂、歸屬撫慰等功能,陪伴使用者下棋達成增進休閒娛樂之目標。

(Revision: 6 / 2010-09-13 20:55:46)

2. 功能描述 (Final Project Paper)

本作品在Altera DE0 多媒體平台上,實現了可與人產生互動的井字遊戲下棋機器人,並藉由井字遊戲人工智慧演算法作為核心運算程式,讓該機器人具有會思考的能力,可根據玩家剛下過的最新棋局變化來產生對應的棋步,穩健地與玩家互動下棋。井字遊戲下棋機器人之硬體部分包含觸碰開關、CMOS影像模組、直流伺服馬達,用來當做Altera DE0 多媒體平台與玩家遊戲互動的介面裝置,透過玩家按下觸碰開關來表示玩家已完成下棋動作,輪到Altera DE0 多媒體平台下棋;再透過CMOS影像模組來偵測玩家的下棋位置,使Altera DE0 多媒體平台能夠得知玩家所下的棋局;再透過直流伺服馬達移動棋盤位置及完成放球動作,使得整個作品與玩家的對奕過程顯得相當擬人化,有助於提升遊戲的趣味性。本作品主要有以下幾個部分:

(A) 下棋機器人機構設計:一般的樂高模型完成之後是「靜態模型」,若將模型加上馬達等動力元件,就可以進化為「動態模型」,並藉由感應器即可使NXT樂高機器人模型就能夠具備互動的效果,針對周遭環境的變化,產生不同的對應動作。本作品利用樂高積木為主架設所需之下棋機器人,並利用伺服馬達來控制移動棋盤位置與下棋等動作。

(B) CMOS影像模組:此影像模組會擷取高畫質數位影像進來,本作品使用友晶科技TRDB_DC2 130萬像素相機模組,其影像格式為Bayer Pattern的原始資料格式。當影像資料擷取後,所擷取的資料為RAW格式,須將此格式轉換為RGB格式,再利用RGB成分多寡來判別顏色。

(C) 馬達驅動控制模組:本作品共需要驅動三顆伺服馬達,在此選用LB1836馬達驅動IC,其可直接以PWM信號控制馬達轉速與方向,而PWM信號之責任週期主要利用模糊控制法則推導設計,因為模糊控制其特色較偏重於人類的經驗及對問題特性的掌握程度,而不主張用繁雜的數學分析及數學模式來解決問題,因此在面對系統具有不確定性、時變性和非線性等複雜狀態時一樣也能提供良好的控制效果。

(D) 光學解碼器模組:一個標準的編碼器通常使用光學感測的方式將位置的運動轉換成為一連串的脈衝訊號。在做法上是利用在感測端裝上二組的光電晶體,並且讓兩者的排列相位相差成90。當圓盤轉動時,就會造成相位相差90度的兩個方波訊號,其中A脈波與B脈波兩個訊號為互成90度相位差的方波,且其相位之超前和落後與正反轉有關,將此信號將送入解碼電路中,利用計數電路來計算上下數的脈波數,使FPGA晶片可以得知目前馬達的角度位置來進行控制器的設計。

(E) 文字轉聲音模組:語音合成技術或稱為文字轉語音技術可以說是一種使機器能自動朗讀文字檔案的技術,其中包含了文字前處理、語言學分析、韻律生成及波形合成似各處理模組,使用者不需要針對特定文字內容預錄語音,只要將文字內容輸入電腦,電腦即會自動處理。此模組讀取串列ASCII碼,因而須將並列ASCII碼轉成串列形式輸出。

(F) 遊戲人工智慧模組:凡是研究如何製造出智慧機器或智慧系統,來模擬人類智慧活動的能力,以實現人造智慧的一門科學,即稱為人工智慧系統。井字遊戲是一種規格很簡單的雙人遊戲,只要在畫有「井」字的空格裡,一方畫「O」,另一方畫「X」,誰先畫完一橫列、一直行或對角線,誰就獲勝。本作品採用最佳解優先搜尋法,這個搜尋法只根據最佳化的評估函數,來選擇下一個搜尋的節點,當評估函數的準確度愈高,則愈可能找到最佳的節點。

(Revision: 4 / 2010-09-13 20:58:26)

3. 效能參數 (Final Project Paper)

在分析系效能參數前,須先了解智慧型下棋機器人整個系統的組成成份與各個元件的運算速度,以便達到FPGA晶片資源最佳分配。在智慧型下棋機器人系統組成成份已在功能描述提及,根據元件特性,可將各個元件分成三大類:輸入元件、輸出元件以及運算元件,底下依據這三類元件做資源分配與系統效能分析。

(一) 輸入元件系統效能參數需求:

1.CMOS影像模組:此模組使用友晶科技TRDB_DC2 130萬像素影像感測模組,根據此模組規格書可將此模組操作頻率設定為25MHZ。表(3.1)為CMOS影像模組系統資源使用列表。

2.光學解碼器模組:藉由光學解碼模組可得馬達旋轉角度,根據所設計的模糊控制法則與馬達電器特性所制定出光學解碼器操作頻率為500HZ。表(3.2)為光學解碼器模組系統資源使用列表。

本次使用硬體電路如AD轉換電路與PWM產生電路等其他周邊感應器控制電路,極適合本作品使用。

表(3.1)、CMOS影像模組系統資源使用列表

表(3.2)、光學解碼器模組系統資源使用列表

(二) 輸出元件系統效能參數需求:

1.馬達驅動控制模組:伺服馬達的轉速控制是經由控制PWM訊號的責任周期所決定,為了使馬達較快、精準與穩定的到達定位點,本作品使用模糊控制法則來完成。表(3.3)為馬達驅動控制模組系統資源使用列表。

2.文字轉聲音模組:此模組讀取串列ASCII碼,因而須將並列ASCII碼轉成串列形式輸出。表(3.4)為文字轉聲音模組系統資源使用列表。

表(3.3)、馬達驅動控制模組系統資源使用列表

表(3.4)、文字轉聲音模組系統資源使用列表

 

(三) 運算元件系統效能參數需求:

1.遊戲人工智慧模組:此模組使用最佳解優先搜尋法得到一評估函數,再根據此函數來決定下一棋步為何。此模組所需使用到的數學運算包含了加法、減法、乘法與比較等運算。並且運算速度越快,使用者等待時間越短,因而操作頻率並無限制。表(3.5)為遊戲人工智慧模組系統資源使用列表。

2.模糊控制法則:由於模糊控制法則包括許多複雜數學運算並且有些參數須透過手動的方式調整,因而模糊控制法則是以NIOS II的C語言的方式實現。其中數學運算包含了乘法、除法與小數點運算,在NIOS II建構時,如果沒有乘法、除法與浮點運算硬體的加入,則是透過語言合成的方式來完成這些運算,但往往運算時間過長而無法達到所需的系統效能,因此在NIOS II CPU建構時可將乘法、除法與浮點運算硬體功能加入,使其達到所需系統效能。表(3.6)為智慧型下棋機器人加入乘法、除法與浮點運算硬體整體資源使用列表。

表(3.5)、遊戲人工智慧模組系統資源使用列表

表(3.6)、智慧型下棋機器人系統資源使用列表

   

 

(Revision: 4 / 2010-09-13 21:01:32)

4. 設計架構 (Preliminary Paper)

4.1 硬體架構

本作品「智慧型下棋機器人」硬體架構圖如圖(4.1)所示,Altera DE0 多媒體平台搭載了Altera Cyclone III 系列中的EP3C16 FPGA,是一套輕薄型的開發板,十分適合本作品使用,其中音模組可以使機器人說話與使用者產生互動,伺服馬達X與Y用來控制移動棋盤位置,伺服馬達B用來控制機器人下棋動作,CMOS影像模組用來偵測棋盤訊息,LED模組用來顯示棋盤訊息,及觸碰感應器用來下達下棋動作。

圖(4.1)、下棋機器人之硬體架構圖

4.2 軟體架構

SOPC程式設計結合了微控制器的程式開發容易與FPGA高效能的優點,因此在系統開發過程中可根據使用者的需求規劃,當需具有高效率功能的區塊時則以FPGA形式來開發完成,當需使用複雜運算時則以微控制器的內部高階程式來完成。本作品使用ALTERA公司的Cyclon III EP3C16F484C6N FPGA晶片做為開發平台,根據此晶片的特性、智慧型下棋機器人所需使用的外部電路元件以及其動作流程三項因素,可規劃出晶片內部程式的分配,其結果如下:

(A) 以FPGA形式的程式區塊:

CMOS影像資料擷取模組:主要負責讀取棋盤訊息,讓FPGA晶片讀取玩家目前的最新棋步,藉以計算出下一步的最佳下棋位置,然後做出相對應的處理。CMOS影像資料擷取模組的架構圖如圖(4.2)所示,此模組功能主要是將CMOS影像感測器所擷取到的影像做分析, CMOS影像感測器會偵測井字遊戲的九宮格,而九宮格所在位置由參數X11、X12、X21、X22、X31、X32、Y11、Y12、Y21、Y22、Y31與Y32來決定,以參數的形式建立九宮格的位置使用者可以很彈性的方式建立所偵測到的位置。CMOS影像資料擷取模組腳位說明如表(4.1)所示。

圖(4.2)、CMOS影像資料擷取模組的架構圖

表(4.1)、CMOS影像資料擷取模組接腳說明

馬達驅動控制模組:負責控制伺服馬達的正反轉與轉速,其中轉速則透過PWM程式區塊來決定。馬達驅動控制模組的架構圖如圖(4.3)所示,此模組功能主要接收控制端的轉速以及轉向訊號,再經由此模組將其轉換成相對應的PWM訊號來控制馬達轉動。馬達驅動控制模組腳位說明如表(4.2)所示。

圖(4.3)、馬達驅動控制模組的架構圖

表(4.2)、馬達驅動控制模組接腳說明

光學解碼器模組:讀取伺服馬達旋轉角度的資料,並將此角度資料以並列的形式輸出。光學解碼器模組的架構圖如圖(4.4)所示,此模組功能主要讀取光學解碼器所回傳的相位A與相位B的訊號,此相位訊號便決定了馬達轉向,再來經由連續不斷的讀取此相位訊號的變換,也就是一連串的脈衝訊號,當正轉時CW腳位會有脈衝訊號輸出,反之反轉便由CCW腳位輸出脈衝訊號,每個脈衝訊號代表一個刻度的變化,也就是所謂的角度變化,如此便可求得馬達目前轉動角度,最後光學解碼器模組便將所累積的脈衝訊號經由count_out[15..0]輸出,以判斷目前馬達轉動角度。光學解碼器模組腳位說明如表(4.3)所示。

圖(4.4)、光學解碼器模組的架構圖

表(4.3)、光學解碼器模組接腳說明

文字轉聲音模組:此模組讀取串列ASCII碼,因而須將並列ASCII碼轉成串列形式輸出。文字轉聲音模組的架構圖如圖(4.5)所示,由於此語音IC讀取資料為串列ASCII碼將其轉成語音訊號,因而文字轉聲音模組主要功能是將並列輸入訊號將其轉換成串列輸出到語音IC,使用此模組前會先檢查此模組是否處於忙碌狀態,如果非忙碌狀態,此時便可將要傳算的ASCII碼經由data_in[7..0]輸入,並致能此模組,當致能後,此模組便處於忙碌狀態,開始處理串列資料輸出。文字轉聲音模組腳位說明如表(4.4)所示。

圖(4.5)、文字轉聲音模組的架構圖

表(4.4)、文字轉聲音模組接腳說明

遊戲人工智慧模組:主要利用最佳解優先搜尋法,作為演算法試算和找出最佳下棋位置的核心演算法,優點是可以非常穩健的在下每一步棋。這個搜尋法只根據最佳化的評估函數,來選擇下一個搜尋的節點。假設FPGA以「O」表示,玩家以「X」表示,本演算法模組的控制訊號架構圖如圖(4.6)所示,以下範例說明該遊戲人工智慧模組之時序圖分析,如圖(4.3)所示。,從結果中可以得知所設計之遊戲人工智慧模組可以成功地模擬人們玩井字遊戲過程。遊戲人工智慧模組腳位說明如表(4.5)所示。

圖(4.6)、井字遊戲演算法模組的架構圖

圖(4.7)、軟體模擬結果說明圖

表(4.5)、遊戲人工智慧模組接腳說明

(B) 以NIOS II來完成的程式流程,NIOS II核心的功能主要智慧型下棋機器人周邊電路控制與流程控制,本作品之完整程式流程圖如圖(4.8)所示。

圖(4.8)、下棋機器人之程式流程圖

(Revision: 6 / 2010-09-13 21:13:24)

5. 設計方法 (Final Project Paper)

當決定設計題目為”智慧型下棋機器人”後,便開始構思此系統該具備哪些功能,並如何實現與展現我們的作品。根據底下步驟逐步建構完成我們的作品:

步驟一:智慧型下棋機器人機構建造

完成互動式智慧型下棋機器人方式有多種,但為了兼顧娛樂性與老少咸宜,因此決定設計成下棋機器人專用機。再考慮機構與功能可方便彈性擴充,因而決定以FPGA與樂高積木來搭配完成此系統。在以樂高積木建構下棋機器人便須考慮需要哪些機構來完成智慧型下棋機器人的功能,其規畫如下:

1. XY平台的建置:透過2顆馬達的控制來完成棋盤的移動,而棋盤的移動可決定機器人下棋的位置、感測器讀取棋盤資料以及讓使用者放棋的位置。

2. 機器人下棋的方式:棋以色球的形式來實現,如此可透過放球馬達的控制來達到機器人下棋的功能。

步驟二:機電整合規劃

有了步驟一的機構,需再進一步規劃資料如何擷取,可分為底下幾個部分:

1. 棋盤資料擷取判斷:下棋是使用者與機器人間的互動,在此透過CMOS影像感測器讓機器人擷取到棋盤資訊。

2. 具光學編碼角度回授之馬達:機器人能夠將XY平台移至正確感測位置與下棋位置,須透過馬達角度感測器來完成,如此方可達到精確定位。目前常見馬達角度感測器為光學編碼器,而新一代樂高積木NXT便具備角度回授之伺服馬達可符合所需。

3. LED小棋盤顯示機器人判讀棋盤結果:機器人透過LED小棋盤告知使用者目前機器人所判讀到棋盤的資訊,此功能為輔助顯示使用。

4. 語音方式告知賽局結果:該賽局結束,除了使用者可自行判斷輸贏,也可進一步的讓機器人本身來判讀。在此採用語音的方式來告知使用者賽局結果。

5. 觸發開關:使用者透過觸發開關告知已下完棋步或新棋局的開始。

步驟三:系統方塊圖建置

 依步驟一與步驟二可規畫出智慧型下棋機器人的初步系統方塊圖,如圖(5.1)所示。

圖(5.1)、智慧型下棋機器人初步系統方塊圖

步驟四:FPGA晶片內部功能方塊圖規劃

 此系統所採用的FPGA晶片除了具備一般可規劃高性能軟核硬體電路外,還可同時內嵌高彈性NIOS II軟核處理器,如此便可根據使用者需求規劃FPGA內部各個功能模組,智慧型下棋機器人FPGA內部功能模組規劃如下:

1. FPGA軟核硬體電路模組:FPGA軟核硬體電路模組設計考慮除了具備高性能外,還須同時兼顧到讓NIOS II軟核處理器方便與模組同時存取,因此將所需建構的FPGA軟核硬體電路模組設計成致能啟動與忙碌運作形式。致能啟動功能使得NIOS II軟核處理器僅需將模組所需資料準備好,再透過致能訊號觸發模組運作,此時NIOS II軟核處理器便可處理其它程序,而不需等待模組運作完畢。忙碌運作功能在當NIOS II軟核處理器再次存取此模組時可透過忙碌運作接腳判斷前次資料處理是否結束,以避免資料碰撞產生。以FPGA軟核硬體電路實現模組包含:CMOS影像資料擷取模組、馬達光學解碼器模組、語音輸出模組、馬達驅動控制模組與遊戲人工智慧模組。

2. NIOS II軟核處理器:NIOS II軟核處理器與一般處理器的差異為NIOS II軟核處理器可根據使用者需求建構符合所需的微處理器,而不需花費大量的時間找尋一顆符合所需的微處理器。NIOS II軟核處理器在智慧型下棋機器人主要負責複雜數學運算與各個周邊電路模組的程序控制。為了使NIOS II軟核處理器在作數學運算可達到所需的效能,在建構時便須將硬體乘法、除法與浮點運算功能開啟來達到所需效能。以NIOS II軟核處理器實現功能包含模糊控制法則與各個周邊電路電路模組的程序控制。
根據步驟三的系統方塊圖建置與步驟四的FPGA晶片內部功能規畫,如此便可規畫出智慧型下棋機器人完整系統方塊圖,如圖(5.2)所示。

圖(5.2)、智慧型下棋機器人完整系統方塊圖

步驟五:所需驅動電路設計與製作

 為了與樂高下棋機器人機構搭配,因而部分電路須特別設計,以方便跟樂高下棋機器人整合,在此所設計電路包含如下:

1. LED驅動電路板:所選購LED元件為多色LED顆粒,如此透過不同顏色顯示來區分使用者與機器人所下的棋位置。

2. CMOS影像感測電路板:TRDB_DC2 130萬像素相機模組無法直接配置在樂高積木上,因而需將相機模組重新修改,以方便樂高積木的整合。

3. 馬達驅動電路板:所選用馬達驅動IC型號為LB1836,並且根據電壓規格來設計電源電路與介面電路。

步驟六:FPGA內部功能方塊圖設計

當完成步驟五的周邊電路設計後,可根據各個電路的規格來設計所需的FPGA軟核硬體電路模組,這部分已在4.2節軟體架構中有詳細介紹。再來是NIOS II軟核處理器的設計規劃,根據前面步驟的系統規劃可建置出NIOS II軟核處理器的方塊圖,如圖(5.3)所示,腳位說明如表(5.1)所示。

圖(5.3)、智慧型下棋機器人之NIOS II軟核處理器方塊圖

表(5.1)、智慧型下棋機器人之NIOS II軟核處理器接腳說明

 

 

步驟七:NIOS II軟核處理器中影像資料判讀演算法

 色彩是由多種不同頻率的電磁波所組合而成的,電磁波波長在400到700nm之間被我們稱為可見光,因為這是一般人眼可以看的到的部份,同時R、G、B是人眼視覺近似可見光性質所得到的三種基色(通稱三原色) ,故利用RGB色彩空間來表示顏色是很自然的一種方法。在RGB色彩空間中會因環境的光線變化而造成RGB數值讀取有很大的影響,因此為了降低環境光線變化的影響在此採用最小平方誤差來決定九宮格顏色數值的判斷。判斷方法如下所述:

1. 在智慧型下棋機器人開始賽局前先在九宮格的位置2擺放紅色色球以及位置8擺放藍色色球,然後讓機器人在當時的環境下讀取九宮格RGB三原色數值,如此機器人便得到環境因素所取得的紅色色球、藍色色球以及棋盤三種情況的RGB三原色數值,分別表示如下:

紅色色球:RR-紅球R基底值;RG-紅球G基底值;RB-紅球B基底值

藍色色球:BR-藍球R基底值;BG-藍球G基底值;BB-藍球B基底值

棋盤顏色:TR-棋盤R基底值;TG-棋盤G基底值;TB-棋盤B基底值

2. 往後機器人在對色球與棋盤判斷時便透過最小平方誤差來決定九宮格顏色數值的判斷,顏色判斷演算法如下所示:

a. 位置顏色表示:DRx-x位置R值;DGx-x位置G值;DBx-x位置B值

b. 與紅色色球差距:

c. 與藍色色球差距:

d. 與棋盤顏色差距:

e. 檢查DDR、DDB與DDT中最小數值者,當DDB最小,則該位置為置放紅色色球;當DDB最小,則該位置為置放藍色色球;當DDT最小,則該位置為未放置色球。

步驟八:NIOS II軟核處理器中馬達定位模糊控制法則

 為了使伺服馬達能夠達到快速穩定定位,在此設計一模糊控制器來達到馬達角度定位。在模糊控制器設計過程中,使用人們日常生活中常用之語言變數來取代明確之數值,其中模糊控制器的基本架構,共包括:模糊化機構、模糊規則庫、模糊推論引擎以及解模糊化機構等四個部分。針對直流馬達控制系統使用模糊控制設計,如圖(5.4)所示,其中模糊化的部份採用高斯型歸屬函數來進行模糊化,其控制規則描述如下:

而歸屬函數本論文採用高斯函數來形容描述,其歸屬函數共定義五個模糊語意分別為NB(負大)、NS(負小)、ZO(零)、PS(正小)與PB(正大)。在模糊控制設計下,依據(5-1)式之模糊規則型式,其規則庫大小需要根據實際嘗試所得的經驗慢慢建立而成,在建立方式主要目的為讓誤差 與誤差變化率 快速收歛至零,如表(5.2)所示之規則庫,接著經過模糊推論工廠,計算出相對應之激發量,並依據所激發到之模糊規則庫,便可利用重心法計算出輸出量。

圖(5.4)、模糊控制器方塊圖

表(5.2)、模糊規則庫

步驟九:系統整合測試

 完成各個步驟的建置後,便可進行最後整合測試,透過實際運作來找尋錯誤環節,當錯誤發生,再回頭修正先前步驟,值到系統運作無誤。

(Revision: 4 / 2010-09-13 20:48:24)

6. 設計特點 (Preliminary Paper)

本作品「智慧型下棋機器人」選用Altera DE0 多媒體平台來實現,主要設計特點有

  • 本作品可很容易延伸至四子棋、五子棋和黑白棋等棋類遊戲領域上。
  • 設計輕巧:Altera DE0 多媒體平台體積小,且提供大容量的FPGA與眾多使用者介面,所以十分適合運用在機器人設計上。
  • 棋盤影像資訊偵測:下棋機器人是否正確擷取棋盤訊息嚴重影響整個遊戲之流暢性,利用所搭載的EP3C16大容量的FPGA,藉由CMOS擷取棋盤畫面。
  • 採用NIOS II軟核心處理:根據設計需求可以靈活改變NIOS的外圍設備,使得硬體利用效率達到最高,達到彈性化、靈活性的系統設計。
  • 採用NIOS II軟核相關加速運算硬體:根據遊戲人工智慧演算法運算以及模糊控制法則所需複雜數學運算,為達到及時以及高效能運算,在軟核中加入加速運算硬體裝置,包含:Embedded Multipliers、Hardware Divide以及Floating Point Hardware。
  • 遊戲人工智慧演算法實現:透過遊戲人工智慧最佳解優先搜尋法實現,進而可以隨時調整遊戲人工智慧之難度,使得使用者能夠跟下棋機器人進行多盤對奕且保持可能互有勝負之刺激感。
  • 自訂模組:將重複性高與消耗時間的周邊電路透過硬體演算法實現,並且以致能啟動與忙碌運作形式建構各個周邊硬體模組,使NIOS II軟核可以方便以及同時存取所制定的周邊硬體模組,例如PWM產生電路、光學解碼電路。
(Revision: 3 / 2010-09-13 20:00:40)

7. 總結 (Final Project Paper)

在本次設計大賽過程中,我們在Altera DE0多媒體平台上,實現了可與人產生互動的井字遊戲下棋機器人,並藉由遊戲人工智慧演算法作為核心運算程式,讓該機器人具有會思考的能力,能依據玩家所下的最新棋局變化,判斷出最佳的下棋位置,進而跟玩家產生下棋遊戲的競爭與互動。這整個設計過程相當辛苦,包含機器人的設計、硬體介面的設計與軟體介面的撰寫,讓我們深深感受到Altera多媒體平台的強大整合性與靈活性,在不斷嘗試過程中,我們學習到更多的技術與知識,也讓我們熟悉很多軟硬體共同設計的技巧。最後,非常感謝友晶科技提供了這次競賽機會,我們可以有機會努力驗證實現自己的作品,儘管這一切都很辛苦,但都是值得的。從去年就打算參加今年比賽,因此在這一年慢慢的累積自己的實力,也同時了解,要做一個產品,可真不是件容易的事。還好Altera平台的整合性強大,有相當多的資源與IP,靈活性強,在學界也最具有代表,讓我對於硬體電路與系統整合這領域有了個敲門磚。

(Revision: 2 / 2010-09-13 19:58:51)