《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > 基于模糊控制的移動機(jī)器人FPGA實現(xiàn)

基于模糊控制的移動機(jī)器人FPGA實現(xiàn)

2009-01-05
作者:包 明,張 睿,余成波

??? 摘 要: 針對輪式移動機(jī)器人尋線行走的跟蹤控制要求,提出一種通用的移動機(jī)器人行走模糊控制設(shè)計方法,并以FPGA為核心器件,通過硬件描述語言(VHDL)實現(xiàn)移動機(jī)器人模糊控制系統(tǒng),充分發(fā)揮模糊控制及可編程邏輯器件的優(yōu)點(diǎn)。實驗表明,該移動機(jī)器人具有自動糾偏、尋線準(zhǔn)確、高集成度和高可靠性的特點(diǎn)。
??? 關(guān)鍵詞: 模糊控制;機(jī)器人;FPGA;VHDL;尋線

?

??? 移動機(jī)器人是一種集環(huán)境感知、動態(tài)決策與規(guī)劃、行為控制與執(zhí)行等多項功能于一體的智能化機(jī)器系統(tǒng),具有大延遲、高度非線性的特點(diǎn)。其建立精確的數(shù)學(xué)模型十分困難,在進(jìn)行路徑跟蹤控制時,參數(shù)的變化對系統(tǒng)模型影響較大。傳統(tǒng)的機(jī)器人運(yùn)動控制常采用PID控制器,將機(jī)器人的航向角誤差和誤差變化率作為控制器的輸入,控制器的輸出作為機(jī)器人的駕駛角。而在實際中,機(jī)器人的航向角還與其速度、轉(zhuǎn)動慣量、重心位置、前后輪側(cè)偏系數(shù)、驅(qū)動輪直徑和摩擦力、實際道路情況等諸多變化且很難確定的因素有關(guān)。這使得控制器參數(shù)設(shè)定和調(diào)整極為困難。針對這些問題,本文在輪式移動機(jī)器人尋線跟蹤控制中,提出移動機(jī)器人的模糊控制算法,并且利用現(xiàn)場可編程門陣列(FPGA)器件來實現(xiàn)模糊算法的控制器。使得該控制器集成度高、速度快、效率高,易于現(xiàn)場實現(xiàn)多重配置,易于實現(xiàn)可編程片上系統(tǒng)(SoPC)。由于整個控制系統(tǒng)由硬件實現(xiàn),因此能滿足機(jī)器人實時性、快速性和精確性的控制要求。
1 移動機(jī)器人結(jié)構(gòu)
1.1 機(jī)器人行進(jìn)機(jī)構(gòu)

??? 機(jī)器人應(yīng)能在任意區(qū)域內(nèi)沿引導(dǎo)線行進(jìn),自動繞開障礙并停在指定地點(diǎn)。機(jī)器人在地面上的移動方式為三車輪式,前輪輔助后輪驅(qū)動的差動式行走方式。前輪為隨動輪(萬向輪),僅僅起到支撐車體的作用,無任何導(dǎo)向作用。后輪分別為兩個獨(dú)立的驅(qū)動輪,利用它們的轉(zhuǎn)速差來控制機(jī)器人的運(yùn)動方向。這種組合的特點(diǎn)是結(jié)構(gòu)簡單、易于控制,而且當(dāng)兩個驅(qū)動輪以相同速度、相反方向轉(zhuǎn)動時,車體能繞兩個驅(qū)動輪連線的中點(diǎn)自轉(zhuǎn),易于定位。對驅(qū)動輪采用直流步進(jìn)電機(jī)進(jìn)行驅(qū)動。步進(jìn)電機(jī)構(gòu)成的驅(qū)動系統(tǒng)具有結(jié)構(gòu)簡單、運(yùn)行可靠、控制方便、控制性能好等特點(diǎn),常作為一種數(shù)字伺服執(zhí)行元件廣泛應(yīng)用于數(shù)控機(jī)床、自動化儀表、機(jī)器人等領(lǐng)域,不但可以構(gòu)成開環(huán)控制系統(tǒng),還可以應(yīng)用于閉環(huán)、半閉環(huán)伺服控制系統(tǒng)中,尤其在強(qiáng)調(diào)速度控制、位置控制的伺服系統(tǒng)中。
1.2 檢測裝置
??? 在機(jī)器人行進(jìn)機(jī)構(gòu)底盤上的前后方分別安裝一排光纖或光電傳感器用于引導(dǎo)線的檢測,如圖1所示。根據(jù)前后排傳感器的在線檢測狀態(tài),可以計算出此刻機(jī)器人相對于引導(dǎo)線(白線)的偏移量和偏離角度。也就是指機(jī)器人車體中心軸線和場地引導(dǎo)線中心線的夾角。

?


??? 在圖1中前后排各有9個光纖傳感器,后排的9個傳感器檢測點(diǎn)安裝在兩個驅(qū)動輪的軸線上,檢測機(jī)器人與引導(dǎo)線的偏移量。前排的9個傳感器檢測點(diǎn)檢測機(jī)器人與引導(dǎo)線的偏離角度。為了擴(kuò)大機(jī)器人的偏差糾錯能力,檢測點(diǎn)安裝成非線性的排列結(jié)構(gòu),且相對于引導(dǎo)線中心線成對稱分布,中間的三個檢測點(diǎn)分布在引導(dǎo)線的中間和左右兩邊,以便使檢測點(diǎn)相對于引導(dǎo)線的位置變化較為敏感。其余兩側(cè)的12個檢測點(diǎn)分布較為分散,主要是為了在機(jī)器人轉(zhuǎn)彎或偏差過大時“捕捉”引導(dǎo)線。
2 模糊控制器設(shè)計
??? 根據(jù)移動機(jī)器人的結(jié)構(gòu)和剛體平動原理,對于兩輪驅(qū)動的移動機(jī)器人,主要控制其角速度和線速度,前者完成移動機(jī)器人的轉(zhuǎn)向控制,后者實現(xiàn)機(jī)器人前進(jìn)速度的控制,利用機(jī)器人兩個獨(dú)立驅(qū)動輪的轉(zhuǎn)速來控制機(jī)器人的運(yùn)行和運(yùn)動方向。輪式機(jī)器人作為被控對象,具有大慣性、純滯后、時變的特點(diǎn)。過去常用PID 算法,如果條件稍有變化,系統(tǒng)參數(shù)(T、KP、Ti、Td)必須改變,否則難以達(dá)到滿意的效果。而模糊控制基于模糊集合理論,模仿人的控制經(jīng)驗,運(yùn)用模糊推理方法根據(jù)輸出直接映射出被控對象的控制量,它不依賴于被控對象的數(shù)學(xué)模型而實現(xiàn)其控制,具有魯棒性好的特點(diǎn),很適合輪式機(jī)器人這樣的大慣性非線性系統(tǒng)。因此采用模糊控制算法對輪式機(jī)器人進(jìn)行控制。
??? 為了滿足機(jī)器人沿引導(dǎo)線行走的目的,可以根據(jù)光電檢測傳感器檢測車體偏離引導(dǎo)線的大小來調(diào)整左右驅(qū)動步進(jìn)電機(jī)的行進(jìn)速度,隨時調(diào)整機(jī)器人的行進(jìn)路線,從而使機(jī)器人沿引導(dǎo)線行進(jìn)。下面根據(jù)移動機(jī)器人的行走方式,介紹模糊算法控制器的設(shè)計方法。
??? 首先把移動機(jī)器人車體底盤上的前后光電檢測傳感器進(jìn)行編號(如圖1所示)。這些檢測點(diǎn)的編號可作為機(jī)器人偏離引導(dǎo)線的狀態(tài)值, 對于本系統(tǒng)模糊控制器采用雙變量二維控制方法,控制器的兩輸入為前后光電檢測點(diǎn)的輸入編號;輸出為左右步進(jìn)電機(jī)驅(qū)動脈沖數(shù)。模糊控制器的輸入量的模糊子集選取為:{LB,LS,ZO,RS,RB},對應(yīng)意義為{左大,左小,中心,右小,右大}。輸出量的模糊子集選取為:{NB,NM,NS,ZO,PS,PM,PB},其對應(yīng)為{負(fù)大,負(fù)中,負(fù)小,零,正小,正中,正大}。
??? 根據(jù)控制規(guī)則及相應(yīng)的控制變量隸屬度定義, 給出了如圖2所示的輸入變量前檢測點(diǎn)位置(BF)和后檢測點(diǎn)位置(BA)的隸屬度函數(shù)。輸出變量左、右步進(jìn)電機(jī)轉(zhuǎn)速的隸屬度函數(shù)如圖3所示。通過仿真實驗分析,得到左電機(jī)轉(zhuǎn)速控制規(guī)則表(右電機(jī)轉(zhuǎn)速控制規(guī)則表相似)如表1。

?

?

?


??? 在完成以上模糊控制器的模糊輸入量、模糊推理決策模塊后,再進(jìn)行模糊輸出接口設(shè)計。模糊輸出接口是將輸出的模糊控制量轉(zhuǎn)化為精確量后去控制執(zhí)行機(jī)構(gòu),使被控對象的值接近參考值。反模糊化采用重心法, 通過多次實驗進(jìn)行修正,得到如表2所示的左步進(jìn)電機(jī)轉(zhuǎn)速控制信號輸出表(用十六進(jìn)制數(shù)表示)。右步進(jìn)電機(jī)轉(zhuǎn)速控制信號輸出表也可用類似方法得到。

?


??? 從以上模糊控制器的設(shè)計過程可知,根據(jù)機(jī)器人車體底盤上的前后光電檢測點(diǎn)的狀態(tài)作為輸入量進(jìn)行模糊化,在模糊規(guī)則約束下經(jīng)模糊推理,得到精確的控制變量。模糊控制器承擔(dān)的任務(wù)實際上是從輸入映射到模糊控制表對應(yīng)的輸出量。實際應(yīng)用模糊控制場合時大多數(shù)采用查表法來設(shè)計模糊控制器,通過離線計算與實際控制經(jīng)驗而得到一個表示輸入量精確值與輸出量精確值之間的控制表,然后將得到的控制表移植到計算機(jī)、其他專用或通用模糊控制芯片中,這種映射在查表時是一一對應(yīng)的邏輯關(guān)系;現(xiàn)場控制時,只需要用軟件或硬件電路來查找控制表,獲得所需的控制量去控制執(zhí)行機(jī)構(gòu)。
3 模糊控制器的FPGA實現(xiàn)
??? 現(xiàn)場可編程門陣列(FPGA)是近年來發(fā)展迅速的大規(guī)模可編程邏輯器件,它具有設(shè)計周期短、片內(nèi)資源豐富、可無限次加載和現(xiàn)場可編程等特點(diǎn)。在FPGA上實現(xiàn)模糊控制器是一種介于專用集成電路(ASIC)和通用處理器之間的方案,具有電子產(chǎn)品的高速度、高可靠性、小型化、集成化、低功耗、保密性能好、具有自主知識產(chǎn)權(quán)、產(chǎn)品上市快等優(yōu)勢。
??? 用可編程邏輯器件完成模糊控制器的任務(wù)有多種方法,可以用VHDL語言設(shè)計一個ROM將模糊控制輸出表的數(shù)據(jù)寫入其中,也可以把模糊控制輸出量用邏輯表達(dá)式表示出來,通過脈沖分配器驅(qū)動步進(jìn)電機(jī)。根據(jù)表2用VHDL語言設(shè)計的ROM模糊控制輸出模塊如下:
??? LIBRARY ieee;
?? ?USE ieee.std_logic_1164.all;
?? ?USE ieee.std_logic_arith.all;
?? ?USE ieee.std_logic_unsigned.all;
?? ?ENTITY Fuzzy_rom IS
PORT (BF_b,BA_b:IN STD_LOGIC_VECTOR(3 downto 0);
??????? nena??:IN?STD_LOGIC;
?? ???? L_out??:OUT INTEGER RANGE 0 TO 6000);
END Fuzzy_rom;
ARCHITECTURE a OF Fuzzy_rom IS
?? ?SIGNAL?addr:STD_LOGIC_VECTOR(7 downto 0);
BEGIN
?? ?addr<=BA_b&BF_b;
?? ?L_out<=
?? ?16#DB6#? when addr=X″00″ and nena=′0′ else
?? ?16#CBC#? when addr=X″01″ and nena=′0′ else
?? ?16#BF4#? when addr=X″02″ and nena=′0′ else
?? ?16#BCC#? when addr=X″03″ and nena=′0′ else
?? ?16#BB8#? when addr=X″04″ and nena=′0′ else
?? ?16#BAE#? when addr=X″05″ and nena=′0′ else
?? ?16#B72#? when addr=X″06″ and nena=′0′ else
?? ?16#AE1#? when addr=X″07″ and nena=′0′ else
?? ?16#A6E#? when addr=X″08″ and nena=′0′ else
??????????????????????????……
??? 16#10BE# when addr=X″85″ and nena=′0′ else
??? 16#FFC#? when addr=X″86″ and nena=′0′ else
??? 16#FA2#? when addr=X″87″ and nena=′0′ else
??? 16#D73#? when addr=X″88″ and nena=′0′ else
??? 16#0000#;
END a;
????在ROM模糊控制模塊中,輸入變量BF_b和BA_b為前后光電檢測點(diǎn)狀態(tài)的編碼信號,作為模糊控制輸出表的地址碼(一個字節(jié)),由它來決定模糊控制輸出表的數(shù)據(jù),即步進(jìn)電機(jī)轉(zhuǎn)速的周期。周期值越大,頻率越小,步進(jìn)電機(jī)的轉(zhuǎn)速就越慢;反之步進(jìn)電機(jī)的轉(zhuǎn)速就快。圖4所示為ROM模塊的仿真波形。

?


??? 該模糊控制器在QuartusII集成開發(fā)環(huán)境中,利用Cyclone系列中的EP1C6器件進(jìn)行了設(shè)計和仿真,并組成測試系統(tǒng)進(jìn)行測試。實踐證明,該移動機(jī)器人具有自動糾偏、尋線準(zhǔn)確、高集成度和高可靠性的特點(diǎn)。用可編程邏輯器件設(shè)計的模糊控制,設(shè)計方便、修改容易,它可以和其他功能模塊電路同時用FPGA來完成,可以充分發(fā)揮模糊控制及可編程器件的優(yōu)點(diǎn),使兩種先進(jìn)的技術(shù)有機(jī)結(jié)合。除了以上介紹的機(jī)器人行走控制器外,還有其他單元電路,如紅外光電檢測電路、超聲波檢測電路、光電碼盤檢測和電機(jī)驅(qū)動電路,以及可以隨時接收上位機(jī)發(fā)出指令的通訊模塊電路。為了實現(xiàn)機(jī)器人可靠的行進(jìn),檢測電路的設(shè)計顯得非常重要。
參考文獻(xiàn)
[1] 齊昕,鞏憲鋒,王長松.基于模糊算法的機(jī)器人行進(jìn)控制[J].機(jī)電工程技術(shù),2006,35(1):21-24.
[2] 黃永志,陳衛(wèi)東.兩輪移動機(jī)器人運(yùn)動控制系統(tǒng)的設(shè)計與實現(xiàn)[J].機(jī)器人,2004,26(1):40-44.
[3] 陳文光,饒益花,單長虹.基于可編程器件的模糊控制器[J].微電子學(xué)與計算機(jī),2004,21(5):41-43.
[4] 包明,包奎.基于FPGA的搬運(yùn)機(jī)器人控制系統(tǒng)[J].電子技術(shù)應(yīng)用,2005,31(12):59-61.
[5] KIM D.An Implementation of Fuzzy Logic Controller on the Reconfigurable FPGA Systems[J].IEEE ransactions on?Industrial Electronics,2000,47(3):703-715.
[6] Altera Corporation.QuartusII development software handbookv5.1[DB/OL].[2005-09-3].http://www.Altera.com.cn/literature/hb/qts/quartusii_hand_book.pdf.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 污视频网站免费观看 | 风流放荡的艳妇小说 | 深夜国产 | 日韩欧美亚洲每日更新网 | 午夜影院免费观看视频 | 成人免费网站在线观看 | 午夜高清影院 | 免费性爱视频 | 啪免费视频 | 未成人禁止视频高清在线观看 | 涩涩色中文综合亚洲 | 国产成人青草视频 | 国内精品久久久久影院蜜芽 | h黄漫画免费网站 | 99视频在线精品免费 | 中文在线日本免费永久18近 | 成人高清视频免费观看 | 亚洲久操 | 欧美变态口味重另类牲 | 综合网天天操天天射 | 成年免费大片黄在线观看com | 亚洲成av人影片在线观看 | 狠狠久久综合伊人不卡 | 亚洲国产日韩无在线播放 | 夜间福利在线观看 | 欧美黄色高清 | 亚洲国产综合精品 | 中文字幕网站 | 国产东北男同志videos网站 | 青青网在线视频 | 91精品在线观看视频 | 成人免费视频无遮挡在线看 | 亚洲国产成人综合 | 日韩影视在线观看 | 伊人亚洲综合网 | 国产精品99久久免费观看 | 黄在线看| 欧美二级 | 男人吃奶吃奶啪啪gif | 亚洲国产成人久久一区二区三区 | 国产一区二区三区播放 |