Profile - TW082


TW082

自主性撿球機器人



Semi-Finals


[print]


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

1. 設計介紹 (Preliminary Paper)

設計目的

本作品在建構一隻全視覺自主撿球機器人。機器人本身可以做即時目標物影像追蹤與辨識,並且可以透過控制多維度的機器手臂來擷取物體,減少了地形上的死角,讓再刁鑽的環境都可以輕鬆拾取,也大大提升機器人的可用範圍。

應用領域:

     此研究可應用於需要幫忙收集物品的各種場所,例如各種小型球類(棒球網球高爾夫球等)的比賽、垃圾物收集或環境清潔上。

目標的使用者:

        目前本作品設計的目標為一般消費者或是球類運動比賽得主辦單位,撿球機器人可以安置家中,幫忙將室內各種雜物逐一歸位,可以讓辛苦一整天的上班族,回家便有個乾淨舒適的環境,大大減輕上班族的負擔,也可以提升居家生活的品質,而在比賽場地上,當選手在練球或比賽時,可以利用其中間的休息時間可以讓機器人將球帶回,讓選手們充分的利用休息時間,也可以有效地節省時間。

採用DE1的原因:

        本作品會同時使用影像辨識、機器手臂控制、語音播放等功能,而Altera DE1多媒體平台整合了非常多的硬體資源,如AudioSDRAMSD CardFlashLCD等,並擁非常高的穩定性,所以由DE1多媒體平台來開發設計本作是非常適合。

                         

 

 

 

(Revision: 4 / 2010-06-30 23:41:48)

2. 功能描述 (Final Project Paper)

本作品在功能設計部份,可分為四大項,分別說明如下:

1. 機器人的車輪馬達控制器設計。

2. 機器人的機構設計。

3. 機械人的手臂設計。

4. 機械人的視覺機構設計。

 

1.機器人的車輪馬達控制器設計

  在輪胎馬達的控制系統設計上,如圖1所示。由Nios II處理器下達馬達命令給PWM模組,如圖2所示,產生相對應的PWM電壓,並透過馬達驅動晶片(motor driver)來放大PWM電壓之後,再來推動左右輪馬達。此時Nios II處理器可以透過表1所示之馬達控制命令表,並經由圖3之馬達回授電路,將馬達的轉速傳回給Nios II處理器來做輪子的轉速控制,藉以控制機器人移動之快慢,甚至進一步的讓機器人做轉彎的動作。如圖4所示。

 

2. 機器人的機構設計。

在車身方面利用ABS板來組合,我們將車身做在長約45公分高70公分的心型形狀上,可分四層。第一層用來放置DE2-70TRDB-D5M鏡頭,第二層放置機械手臂、驅動電路。第三層放置電池、第四層LTM螢幕。如圖5所見。

 

3. 機械人的手臂設計。

  機器手臂的部分,採用型號為RX-28RX-64的伺服馬達來設計機器手臂,並且在手臂前端部分做成夾子形狀,以利夾取目標物。如圖6所見。RX-28RX-64馬達的控制方法相同,主要差別為扭力的不同。主要的控制命令如下表所示。使用REG WRITE單控指令來測試單顆馬達的最大轉速跟角度,而使用SYNC WRITE廣播指令來控制機器手臂的動作並搭配下圖之伺服馬達驅動電路來傳送指令至伺服馬達上。主要下達命令方式是使用UART協定來傳輸指令給伺服馬達。舉例來說:假設我們要使手臂向右轉,先選擇要使用的控制命令碼,並將其放入命令陣列中。接著設定馬達的速度及角度用16進位表示並寫入命令陣列中,最後將命令陣列利用UART傳送到伺服馬達上使其做出右轉的動作。

 

4. 機械人的視覺機構設計。

  TRDB-D5M鏡頭方面,我們用ABS板去固定方向,並利用2RX28馬達來控制鏡頭的視覺角度。我們會將鏡頭拍到的影像輸出在LTM上,並將畫面上有橘色的部分做二值化,這個二值化的部份就是我們機器人要去夾取的目標物。

 

 

 

 

 

                                                                                

                                                                         

                                               圖1. 機器人馬達系統方塊圖

                                         

                                                              

                                                     

                                                                                  2. 車輪馬達PWM控制器方塊圖             

                                                                                    

                         

                                        圖3. 車輪馬達回授訊號電路圖

                       

                                                                            圖 4.馬達速度控制器流程

                                                                                       

                                                                                            圖 5. 機器人平台圖

                              

                                                                                           圖 6. 機器手臂完整圖

                     

                                                                               1. 輪胎馬達程式控制表                                

                                          

                                                                               表 2. 伺服馬達程式控制表

 

 

 

(Revision: 2 / 2010-09-17 22:57:09)

3. 效能參數 (Final Project Paper)

  圖1為影像經過NIOS處理過後所需要的時間,我們用6張圖來重複確認處理的時間是否相同,我們從此圖可以得知當A1.bmp讀入時在二值化中處理的時間約為0.34秒,在膨脹中的時間約為2.759秒,在侵蝕中的時間約為2.745秒,經由二值化、膨脹、侵蝕處理之後,此時的目標物就可以比較明確的判斷出來,所以我們在將此圖丟入我們所設計的尋找目標物程式中,它會判斷出目標是否為我們所要的目標物,對此目標物做出總面積與中心點位置的數據,以便得知機器人與該目標物的距離。這個時候我們就可以下達指令給輪胎,使輪胎驅動走至手臂可以夾取目標物的距離,來做撿球的動作。表1為各截取影像所經過二值化、膨脹、侵蝕與面積中心的時間。

                                         

                                                                                                                     圖 1. 影像經過NIOS處理所需時間                                           

 

                   

                                                                

                                                                                                                     1.各圖經過二值化、膨脹、侵蝕與面積中心的時間。

 

 

 

 

 

            

 

 

 

(Revision: 2 / 2010-09-17 23:30:17)

4. 設計架構 (Preliminary Paper)

 本作品設計的系統架構圖如圖1所示                          

影像處理系統方塊圖如圖2所示

核心部分採用DE1 FPGA開發板作為系統處理核心,並在開發平台上撰寫C軟體語言以及硬體Verilog程式語言,來做影像辨識、馬達控制以及策略分析。在週邊設計馬達驅動電路來控制機器手臂與移動平台的輪子。

                    

                                         圖1系統架構圖

本作品設計多個影像前處理模組(Image preprocessing module),將影像透過CMOS鏡頭擷取進SDRMA儲存時,就先做好灰階、二值化、邊緣偵測等影像前處理。本作品也設計一影像後處理模組(Image post-processing module)來處理在螢幕上標是目標物位置資訊。在進行影像處理時會透過Avalon Bus 上的CMOS Master與LTM Master來加速影像的擷取與顯示處理速度,讓影像可以即時的顯示在LTM上面,完全不佔用Nios的處理時間。

                           

 圖2 影像硬體處理系統方塊圖

(Revision: 3 / 2010-09-18 17:42:37)

5. 設計方法 (Final Project Paper)

     本作品設計方法如圖1所示。將影像利用TRDB-D5M擷取進DE2-70的記憶體前,利用Quartus II所設計好的硬體電路,將影像進行灰階、二值化、侵蝕與膨脹等前處理,並將結果送入給Nios II處理器內判斷目標物大小。之後在再由Nios II根據目標物的中心點與面積,來判斷機器人與目標物之間的距離,此時Nios II會發送控制命令給兩個輪子的馬達,使得機器人靠近目標物,等到機器人手臂的距離達到可以夾取目標物的距離時,並下指令讓機器人去夾取目標物。利用COMS鏡頭擷取影像,並透過COMS Master 將影像儲存在SDRAMNIOS讀取SDARM裡的影像並加以處理,並將處理結果在儲存在SDRAM內。LTM則透過LTM Master將影像顯示在LTM。上Motor Top下達指令給Mctop,始Mctop發出PWM訊號來驅動輪胎轉動。控制伺服馬達的指令則透過Arm UART來傳送大到機械手臂。2為本作品利用SOPC為基礎所完成的系統設計圖。

                                         

                                                                                                        1      

                                                                                         

                                                                             圖 2. SOPC概念圖

 

 

                     

 

                            

(Revision: 3 / 2010-09-18 00:06:29)

6. 設計特點 (Preliminary Paper)

本設計作品特性:

1.       本作品需要使用到的硬體週邊有FPGA晶片、SDRAMCMOS攝影機、LTM液晶顯示器與伺服馬達等周邊,在硬體周邊整合控制上,有一定的難度。

2.       在影像處理上,本作品擬採用軟硬體共同設計的方式,設計多組影像處理加速器電路來搭配Nios II處理器,透過Avalon bus來加速影像辨識。

3.       在機器手臂控制上,本作品擬在FPGA內設計一組Fuzzy控制器,來控制手臂,讓手臂動作能夠更平滑流暢。

4.       在機器人策略控制上,本作品須要能同時控制多個伺服馬達、處理影像資訊、與語音撥放等功能,因此本作品擬採用uC/OS作業系統來做系統的多工處理。

5.       本作品是全自主機器人,需要把所有感測設備與驅動設備都放置在機器人身上,因此在設計與控制上的難度是非常高的。

6.       本作品可以輔助自動去收集撿球的動作,以節省人們的時間。

7.       用處理器來處理影像資料是最花費時間,因此本作品在設計上會以Nios II處理器的custom_instruction功能設計多個影像處理指令來加速Nios II處理器的功能。

(Revision: 2 / 2010-06-30 22:15:10)

7. 總結 (Final Project Paper)

     在這次比賽中學到了透過AlterNios來撰寫C語言控制影像處理的技巧,例如:影像做灰階、二值化、低通濾波器、侵蝕、膨脹、尋找中心點、篩選面積大小,再設計一影像後處理模組來處理在螢幕上標示目標物位置資訊,還有熟悉硬體語言的一些基本撰寫,DE1與輪胎馬達間透過Verilog語言的控制PWM與速度及位置的控制,控制其馬達的轉速與馬達的正反轉來控制其旋轉方向及角度,而伺服馬達則分別以單顆跟多顆控制交替方式來進行不同方向的控制,使其得以更精準的抓取目標物。最後在透過Verilog將影像、輪胎與伺服馬達間透過硬體語言的控制Altera DE1平台來進行三者間的聯繫,在未來,我們希望可以透過avalon bus技術來達到硬體加速,以增加機器人的處理速度來達到可以判斷即時的環境,並且使撿球機器人的影像的辨識能力提高,使其在於判斷影像時能更加的精準且迅速,並且希望能在影像擷取後與機器人間的搭配能更佳的流暢,在手臂部分能更加精準地進行拾取與迅速,並且能讓輪胎的控制與回溯能夠順利測試成功並配合適當的程式碼去攥寫,讓機器人可以順利的執行特定動作,透過AlteraDE1平台,可以使我們做將機器人做更多的變化。

(Draft / 2010-09-17 23:52:42)