蔡青松,吳 強(qiáng),杜康熙,謝自強(qiáng),王肖鋒
(1.天津市先進(jìn)機(jī)電系統(tǒng)設(shè)計(jì)與智能控制重點(diǎn)實(shí)驗(yàn)室,天津 300384;2.天津理工大學(xué)機(jī)電工程國(guó)家級(jí)實(shí)驗(yàn)教學(xué)示范中心,天津 300384)
近年來(lái)小型搬運(yùn)機(jī)器人及其相關(guān)技術(shù)已成為機(jī)器人領(lǐng)域的研究熱點(diǎn)。它能夠進(jìn)入惡劣環(huán)境中,廣泛應(yīng)用于災(zāi)后救援、航天應(yīng)用及環(huán)境科考等作業(yè)中。尤其是在快遞業(yè)的分揀及搬運(yùn)中,小型搬運(yùn)機(jī)器人正受到越來(lái)越多的青睞。
搬運(yùn)機(jī)器人要實(shí)現(xiàn)在未知環(huán)境中作業(yè),需具備自主行駛和自動(dòng)避障功能,還需可靠的搬運(yùn)執(zhí)行機(jī)構(gòu)和環(huán)境感知能力。由于超聲波傳感器方向性好、結(jié)構(gòu)簡(jiǎn)單、探測(cè)距離遠(yuǎn)且成本低廉,因此廣泛應(yīng)用于機(jī)器人環(huán)境探測(cè)中。另外,對(duì)于搬運(yùn)機(jī)器人來(lái)說(shuō),合適的機(jī)器人驅(qū)動(dòng)結(jié)構(gòu)也是更好的完成工作任務(wù)的重要保證,履帶式良好的行進(jìn)能力和環(huán)境適應(yīng)能力能讓搬運(yùn)機(jī)器人更好的完成搬運(yùn)任務(wù)。
近些年,許多學(xué)者對(duì)履帶式機(jī)器人進(jìn)行了避障算法研究。王隨平[1]等人針對(duì)深?;顒?dòng)的履帶機(jī)器人提出的改進(jìn)型人工勢(shì)場(chǎng)法進(jìn)行避障控制,對(duì)聲吶采集到的環(huán)境信息是采用D-S理論推算出障礙物準(zhǔn)確位置再根據(jù)改進(jìn)型的人工勢(shì)場(chǎng)法進(jìn)行方向控制從而實(shí)現(xiàn)避障;王曉東[2]等人在差動(dòng)式驅(qū)動(dòng)結(jié)構(gòu)履帶機(jī)器人上引入了模糊控制算法,使用定性的規(guī)則來(lái)進(jìn)行避障控制;王隨平[3]等人對(duì)深海履帶機(jī)器人提出了模糊與遺傳算法相結(jié)合的方法建立了局部避障規(guī)劃;劉同林[4]等人提出了協(xié)同轉(zhuǎn)向方法,用于履帶式機(jī)器人避障;楊小菊[5]等人針對(duì)移動(dòng)機(jī)器人在未知環(huán)境中的不確定性,利用Matlab構(gòu)建了多傳感器仿真試驗(yàn)移動(dòng)平臺(tái),在Simulink中搭建移動(dòng)機(jī)器人運(yùn)動(dòng)學(xué)模型,利用多傳感器采集環(huán)境中的障礙物信息與目標(biāo)物的方位角,設(shè)計(jì)了具有避障功能的模糊控制算法。
本文設(shè)計(jì)了一種能夠自動(dòng)搬運(yùn)的小型履帶式機(jī)器人,并提出了一種模糊算法來(lái)實(shí)現(xiàn)機(jī)器人自動(dòng)避障。該算法無(wú)需對(duì)環(huán)境物體建立數(shù)學(xué)模型,只需對(duì)輸入量即機(jī)器人與障礙物之間的距離進(jìn)行模糊化,利用語(yǔ)言變量表達(dá)的定性的模糊規(guī)則來(lái)實(shí)現(xiàn)避障控制。針對(duì)驅(qū)動(dòng)履帶輪的直流電機(jī)建立了數(shù)學(xué)模型,并利用積分分離PID算法進(jìn)行仿真,實(shí)驗(yàn)驗(yàn)證了直流電機(jī)的性能可靠。
機(jī)器人車體選用的是雙履帶式小車。后方履帶輪為主動(dòng)輪,由兩個(gè)直流電機(jī)驅(qū)動(dòng),前方履帶輪為隨動(dòng)輪。前端立有支撐架,上下各有兩個(gè)舵機(jī)與鐵鏈連接,下方舵機(jī)用于控制叉車的升降,實(shí)現(xiàn)貨物的搬運(yùn)卸載。前方及左右方各安有一個(gè)超聲波傳感器。機(jī)器人系統(tǒng)參數(shù)如表1所示。
表1 機(jī)器人系統(tǒng)參數(shù)
系統(tǒng)選用意法半導(dǎo)體公司設(shè)計(jì)的ARM架構(gòu)處理器STM32F103芯片,系統(tǒng)功能框圖如圖1,機(jī)器人實(shí)物如圖2所示。
圖1 系統(tǒng)框圖
圖2 機(jī)器人實(shí)物圖
系統(tǒng)主要由傳感器模塊、電機(jī)驅(qū)動(dòng)模塊、舵機(jī)驅(qū)動(dòng)模塊、電源模塊及顯示模塊構(gòu)成。電源模塊將12 V電源分別轉(zhuǎn)換成系統(tǒng)所需的3.3 V、5 V和12 V,用于給單片機(jī)和系統(tǒng)外設(shè)供電。超聲波探測(cè)機(jī)器人與障礙物之間的距離并返回模擬信號(hào),經(jīng)AD轉(zhuǎn)換后送給單片機(jī),經(jīng)處理后傳給數(shù)碼管顯示距離信息,并通過(guò)控制器輸出端口驅(qū)動(dòng)舵機(jī)和直流電機(jī)工作。
機(jī)器人選用型號(hào)為TQD-08-5013的實(shí)驗(yàn)室機(jī)器人小車,機(jī)器人采用模塊化拼裝,材料選用輕質(zhì)鋁合金材質(zhì)。機(jī)器人驅(qū)動(dòng)方式為雙履帶式,其布局結(jié)構(gòu)如圖3所示。
以方形鐵板為主,上下共兩層,通過(guò)連接桿件形成上下兩層主體結(jié)構(gòu),以便安裝履帶式輪組。上層主要放置系統(tǒng)的控制板和電機(jī)驅(qū)動(dòng)芯片,下層放置電池盒和驅(qū)動(dòng)叉車的電機(jī)模塊。下層板前端安裝突出結(jié)構(gòu),用于安裝前方超聲波傳感器模塊。
圖3 機(jī)器人俯視圖
車體左右各有一履帶輪組,套有兩條履帶。每組4個(gè)行動(dòng)輪,分為一個(gè)主動(dòng)輪、一個(gè)隨動(dòng)輪和兩個(gè)支撐輪。主動(dòng)輪在車體后方,由大功率直流電機(jī)驅(qū)動(dòng),其表面有凹凸結(jié)構(gòu),可以帶動(dòng)履帶轉(zhuǎn)動(dòng)。
叉車機(jī)構(gòu)由若干桿件連接組成立式桅桿結(jié)構(gòu),用于固定前方兩個(gè)光滑滑桿。桅桿結(jié)構(gòu)上下各裝有一個(gè)舵機(jī),下方電機(jī)為驅(qū)動(dòng)電機(jī),上方為隨動(dòng)電機(jī)。在兩電機(jī)輸出軸上套有鏈條,在鏈條上安裝鐵叉,用來(lái)搬運(yùn)貨物。最下端安裝限位開(kāi)關(guān),用來(lái)檢測(cè)叉車的位置。
履帶機(jī)器人硬件系統(tǒng)主要有單片機(jī)最小系統(tǒng)、電源模塊、電機(jī)控制模塊、傳感器模塊及叉車搬運(yùn)模塊。傳感器模塊主要負(fù)責(zé)環(huán)境信息采集;叉車模塊主要負(fù)責(zé)搬運(yùn)貨物;履帶模塊主要由兩個(gè)直流電機(jī)驅(qū)動(dòng)履帶轉(zhuǎn)動(dòng)實(shí)現(xiàn)機(jī)器人移動(dòng)。
超聲波傳感器具有頻次高、波長(zhǎng)短及方向性好等特點(diǎn),因此本設(shè)計(jì)選用型號(hào)為HC-SR04的超聲波傳感器,其主要由發(fā)送部分、接收部分、控制部分和電源構(gòu)成。HC-SR04型號(hào)超聲波傳感器電源為5 V,靜態(tài)電流為2 mA,感應(yīng)角度左右各15°,探測(cè)距離為2~450 cm,精度為0.2 cm。
舵機(jī)用來(lái)帶動(dòng)車叉上下運(yùn)動(dòng)實(shí)現(xiàn)搬運(yùn)貨物,選用TA8428K芯片驅(qū)動(dòng),采用脈寬調(diào)制 (PWM)方法控制,通過(guò)改變脈沖的寬度或占空比從而實(shí)現(xiàn)調(diào)壓。舵機(jī)的輸入信號(hào)與輸出的角度之間的線性度很好。本叉車采用型號(hào)為S135的舵機(jī),其速度為0.15秒/60度,扭力為1.9 kg·cm,驅(qū)動(dòng)電壓12 V,可從電源模塊直接引出12 V獨(dú)立給舵機(jī)供電。
機(jī)器人兩側(cè)履帶輪各配有一個(gè)直流電機(jī),由雙端輸出的L298N芯片驅(qū)動(dòng),其采用雙H半橋式電路,輸入為非反相式,每個(gè)H橋可以提供2 A的電流輸出,峰值為3 A,電源電壓為2.5~48 V,邏輯部分為5 V供電,工作溫度為-25~130℃,圖4為L(zhǎng)298N驅(qū)動(dòng)電機(jī)的電路圖。
圖4 電機(jī)驅(qū)動(dòng)電路圖
電源模塊采用12 V的電源盒供電。兩個(gè)電機(jī)和舵機(jī)需要12 V電源供電,STM32F103C8T6芯片需3.3 V供電,超聲波傳感器、限位開(kāi)關(guān)均需5 V供電,L298N邏輯電平4.5~46 V。由于系統(tǒng)需多種電壓驅(qū)動(dòng),為降低成本簡(jiǎn)化電路,通過(guò)型號(hào)為HW-DY02的DC12V轉(zhuǎn)5 V、3.3 V的轉(zhuǎn)換模塊引出各電壓。轉(zhuǎn)換模塊采用兩個(gè)AMS1117芯片,一個(gè)是AMS1117-5.0,輸出 5 V電壓;另一個(gè)是 AMS1117-3.3,輸出3.3 V電壓。圖 5是 AMS1117-3.3芯片外圍電路。AMS1117-5.0芯片電路與AMS1117-3.3的類似,這里不再展示其電路圖。
圖5 AMS1117-3.3芯片外圍電路
履帶機(jī)器人系統(tǒng)的開(kāi)發(fā)軟件采用Keil uvision5。首先分別編寫各個(gè)模塊的程序,再將各個(gè)模塊組合起來(lái)。單片機(jī)系統(tǒng)上電后對(duì)每個(gè)模塊初始化,在主函數(shù)中執(zhí)行主程序后等待中斷,響應(yīng)中斷執(zhí)行中斷服務(wù)程序后退出中斷。程序流程圖如圖6。
主函數(shù)主要是機(jī)器人行進(jìn)函數(shù)和超聲波掃描函數(shù)。當(dāng)前方超聲波傳感器檢測(cè)到有物體時(shí),返回一個(gè)高電平給CPU,觸發(fā)中斷,此時(shí)查詢限位開(kāi)關(guān)信號(hào)端button=1是否成立,即叉斗是否在底端。若是,則遇到的是貨物,CPU調(diào)用搬運(yùn)程序進(jìn)行搬貨;若不是,則遇到的是障礙物,CPU調(diào)用避障程序,此時(shí)分別給左右超聲波的控制端Trig發(fā)送高電平,若有返回信號(hào)觸發(fā)定時(shí)器開(kāi)始測(cè)距。測(cè)得的數(shù)據(jù)經(jīng)CPU進(jìn)行處理后,調(diào)用電機(jī)程序避障。
模糊控制的基本思想是利用計(jì)算機(jī)來(lái)實(shí)現(xiàn)人的控制經(jīng)驗(yàn),而這些經(jīng)驗(yàn)多是用語(yǔ)言表達(dá)的模糊性控制規(guī)則[6]。本文設(shè)計(jì)了一種基于模糊控制的避障算法,將傳感器探測(cè)到的障礙物距離遠(yuǎn)近通過(guò)模糊化處理作為其危險(xiǎn)程度指標(biāo),設(shè)計(jì)了一個(gè)三輸入單輸出模糊控制器。
圖6 程序流程圖
4.1.1 控制器的輸入與輸出設(shè)計(jì)
由于傳感器探測(cè)距離的限制、并且考慮到實(shí)際任務(wù),將系統(tǒng)的閾值設(shè)為[5 cm,30 cm],機(jī)器人左、前、右3個(gè)方向的傳感器探測(cè)到的障礙物距離分別用LD、FD、RD來(lái)表示,模糊距離變量的語(yǔ)言值為:很近 (C)、近 (N)、中(M)、遠(yuǎn) (F)、很遠(yuǎn) (VF)。由于高斯型函數(shù)曲線較為平滑,所以隸屬度函數(shù)采用高斯函數(shù),LD隸屬度函數(shù)具體設(shè)計(jì)如圖7,F(xiàn)D和RD與其類似不再展示。
圖7 LD隸屬度函數(shù)
機(jī)器人本身有兩個(gè)電機(jī)需要控制,為了簡(jiǎn)化系統(tǒng),由兩個(gè)電機(jī)的速度差來(lái)實(shí)現(xiàn)機(jī)器人的轉(zhuǎn)彎角度Angle作為控制器的輸出,范圍為 [-15°,+15°],負(fù)數(shù)表示向左轉(zhuǎn),正數(shù)表示向右轉(zhuǎn),0代表直線行進(jìn),輸出值的絕對(duì)值表示轉(zhuǎn)角大小。模糊轉(zhuǎn)角控制變量的語(yǔ)言值為:左大 (TTL)、左中(TL)、左小 (TSL)、零 (TC)、右小 (TSR)、右中(TR)、右大 (TTR),隸屬度函數(shù)如圖8。
圖8 Angle隸屬度函數(shù)
4.1.2 建立模糊控制規(guī)則
根據(jù)Fuzzy Set理論,建立定性推理原則[7]。模糊推理規(guī)則采用Mamdani的max-min合成法,反模糊化采用面積中心法[8]。模糊規(guī)則采用 IF-THEN條件語(yǔ)言,針對(duì)避障環(huán)境設(shè)計(jì)了23條規(guī)則。模糊控制規(guī)則是輸入距離信息與輸出轉(zhuǎn)角信息一種映射關(guān)系,本質(zhì)上是一種反應(yīng)式控制方法,具有普遍的適用性,不僅能夠用于靜態(tài)環(huán)境,還可用于實(shí)時(shí)動(dòng)態(tài)的環(huán)境。
4.1.3 軟件模擬仿真
首先在Matlab中設(shè)定機(jī)器人的起始位置為 (0,0)、目標(biāo)位置 (10,10),障礙物分布如圖13。機(jī)器人與目標(biāo)物的角度為45°,在設(shè)定測(cè)距范圍內(nèi),計(jì)算障礙物與機(jī)器人的角度并逐一與目標(biāo)角度比較。當(dāng)障礙物角度大于45°時(shí),則認(rèn)為障礙物在機(jī)器人的左方;等于45°則可以確定障礙物在機(jī)器人的前方;小于45°則認(rèn)為障礙物在機(jī)器人的右方。將測(cè)得的障礙物距離和機(jī)器人與目標(biāo)物體的角度信息送入模糊控制器。經(jīng)過(guò)多次仿真,不斷調(diào)整各個(gè)模塊的參數(shù),最后將數(shù)據(jù)整理得到機(jī)器人的避障仿真結(jié)果如圖9所示。
圖9 機(jī)器人仿真結(jié)果
由仿真結(jié)果可以看出,機(jī)器人基本能夠沿著目標(biāo)方向前進(jìn),并且能有效避開(kāi)障礙物,尤其對(duì)矩形障礙物避障效果較好,說(shuō)明該算法對(duì)避障的控制可行有效。但是對(duì)多個(gè)障礙物時(shí)的避障不是很好,如在前3個(gè)障礙物時(shí)機(jī)器人雖然對(duì)左方兩個(gè)障礙物進(jìn)行了避障但過(guò)于靠近右方的一個(gè)障礙物。
履帶輪由兩個(gè)直流電機(jī)驅(qū)動(dòng),對(duì)電機(jī)轉(zhuǎn)速的控制直接關(guān)系到機(jī)器人避障的準(zhǔn)確性和可靠性。由實(shí)際運(yùn)行情況看,履帶輪往往不能按控制器輸出量運(yùn)行。分析了系統(tǒng)受到的擾動(dòng)因素,如搬運(yùn)過(guò)程中機(jī)器人移動(dòng)、貨物重量的變化以及舵機(jī)本身啟停狀態(tài)的變化導(dǎo)致系統(tǒng)受到的擾動(dòng),對(duì)直流電機(jī)引入了積分分離PID控制算法,修正電機(jī)轉(zhuǎn)速。
4.2.1 建模
普通PID控制,當(dāng)擾動(dòng)幅度較大時(shí),或者是給定值大幅度改變時(shí),由于短時(shí)間內(nèi)會(huì)產(chǎn)生很大偏差,加上系統(tǒng)有滯后,常會(huì)產(chǎn)生較大的偏差或出現(xiàn)飽和現(xiàn)象,往往會(huì)造成超調(diào)和長(zhǎng)時(shí)間的振蕩[9]。針對(duì)這些問(wèn)題對(duì)電機(jī)控制采用了積分分離PID,即偏差較大時(shí),取消積分作用,以免由于積分作用使系統(tǒng)穩(wěn)定性降低,超調(diào)量增大;當(dāng)被控量接近給定值時(shí),引入積分控制,以便消除凈差,提高控制精度[10]。PID算法可表示為式 (1)。
式中,u(k)為控制器輸出的控制量,本文選用電機(jī)的驅(qū)動(dòng)電壓作為控制量,u(k)即為電壓值;e(k)為電機(jī)的轉(zhuǎn)速誤差;控制器參數(shù)Kp、Kd、Ki分別為比例、積分和微分系數(shù),β為積分項(xiàng)的開(kāi)關(guān)系數(shù)。
利用電樞電壓平衡方程和轉(zhuǎn)矩平衡方程,建立狀態(tài)方程及傳遞函數(shù)關(guān)系。電樞電壓平衡方程為:
式中,ua為直流電機(jī)電樞電壓,Ra、La分別為電樞電阻、電樞電感,ia為電樞電流,ε為電樞反電勢(shì),φ為每極磁通,n為轉(zhuǎn)子轉(zhuǎn)速,Ce為電勢(shì)常數(shù)。
轉(zhuǎn)矩平衡方程:
式中,J為轉(zhuǎn)速慣量,M、ML為電磁轉(zhuǎn)矩和負(fù)載轉(zhuǎn)矩,CM為直流電機(jī)的轉(zhuǎn)矩常數(shù)。
對(duì)式 (2)做拉氏變換可得電樞電流與電壓之間的傳遞函數(shù):
對(duì)式 (4)做拉氏變換可得轉(zhuǎn)子轉(zhuǎn)速與動(dòng)態(tài)轉(zhuǎn)矩(MML)之間的傳遞函數(shù):
將式 (3)、(5)代入式 (6)得電磁轉(zhuǎn)矩與電樞電壓之間的傳遞函數(shù):
由式 (7)、(8)建立精確數(shù)學(xué)模型,形成一個(gè)有反饋的閉環(huán)二階控制系統(tǒng),得轉(zhuǎn)速與電樞電壓的傳遞函數(shù):
為機(jī)電時(shí)間常數(shù)。
即為S135直流有刷電機(jī)以電樞電壓為輸入,以轉(zhuǎn)速為輸出的傳遞函數(shù)。
4.2.2 運(yùn)動(dòng)仿真
基于MATLAB/Simulink對(duì)建立的直流電機(jī)閉環(huán)控制系統(tǒng)模型進(jìn)行了仿真。普通PID控制器4個(gè)參數(shù)分別為Kp=5,Kd=20,Ki=0.08,積分分離PID控制器4個(gè)參數(shù)分別為Kp=10,Kd=0.2,Ki=0.01,仿真結(jié)果如圖10所示。
圖10 PID仿真結(jié)果
仿真結(jié)果表明,在n=500 r/min的參考轉(zhuǎn)速下,普通PID存在較大的超調(diào)量,并且會(huì)產(chǎn)生一定的振蕩,調(diào)整時(shí)間延長(zhǎng)。在實(shí)際控制過(guò)程中,對(duì)電機(jī)的響應(yīng)速度影響較大,系統(tǒng)趨于穩(wěn)定的時(shí)間增加,響應(yīng)遲緩。采用積分分離PID控制,響應(yīng)速度快且平穩(wěn),系統(tǒng)整體趨于穩(wěn)定。在實(shí)際控制過(guò)程中,電機(jī)達(dá)到目標(biāo)速度的時(shí)間短且過(guò)渡平穩(wěn),使得機(jī)器人避障的可靠性提高。
實(shí)驗(yàn)使用安裝在前、左、右的3個(gè)方向的超聲波傳感器模塊對(duì)機(jī)器人與障礙物間的距離進(jìn)行測(cè)量,得出的距離信息經(jīng)AD轉(zhuǎn)換后送給單片機(jī)控制系統(tǒng),計(jì)算處理后將控制信號(hào)發(fā)送給驅(qū)動(dòng)履帶輪的兩個(gè)電機(jī),
從而控制履帶機(jī)器人行走及避障。由于條件和設(shè)備有限,已通過(guò)軟件對(duì)模糊避障算法進(jìn)行了仿真,不再進(jìn)行實(shí)地測(cè)試,實(shí)驗(yàn)只針對(duì)如前進(jìn)、轉(zhuǎn)彎、后退、避障等性能以及積分分離PID對(duì)電機(jī)的控制進(jìn)行驗(yàn)證。實(shí)驗(yàn)過(guò)程如圖11中的 (a)、(b)、(c)、(d)、(e)、(f)、(g)、(h)。
圖11 智能機(jī)器人運(yùn)行過(guò)程圖
實(shí)驗(yàn)結(jié)果表明,履帶機(jī)器人能利用多個(gè)超聲波傳感器測(cè)距,由單片機(jī)來(lái)控制舵機(jī)和電機(jī)分別實(shí)現(xiàn)叉車搬運(yùn)及自動(dòng)避障功能。在實(shí)驗(yàn)過(guò)程中,機(jī)器人運(yùn)行平穩(wěn),并且搬運(yùn)、避障時(shí)電機(jī)能夠快速響應(yīng),說(shuō)明采用積分分離PID控制算法的電機(jī)具有良好的可靠性。
本文基于模糊避障算法實(shí)現(xiàn)機(jī)器人的避障任務(wù),仿真結(jié)果表明,模糊控制算法解決非線性系統(tǒng)具有一定優(yōu)勢(shì);積分分離PID算法提高了對(duì)電機(jī)的控制效果,從而提高了機(jī)器人避障的可靠性。實(shí)驗(yàn)表明,在簡(jiǎn)單的環(huán)境中,履帶機(jī)器人可以靈活、準(zhǔn)確避開(kāi)障礙物,到達(dá)目標(biāo)點(diǎn),滿足機(jī)器人避障要求。但由仿真以及實(shí)驗(yàn)結(jié)果可看出,當(dāng)遇到不規(guī)則或障礙物與機(jī)器人正前方有一定角度時(shí),探測(cè)不是很靈敏,甚至?xí)采险系K物,導(dǎo)致機(jī)器人避障不理想。因此需進(jìn)一步修正模糊算法模型,以及改進(jìn)機(jī)器人硬件設(shè)計(jì),如增加傳感器數(shù)量、采用更大探測(cè)角的傳感器,并設(shè)計(jì)上位機(jī)結(jié)合計(jì)算機(jī)進(jìn)行實(shí)驗(yàn),測(cè)試履帶式搬運(yùn)機(jī)器人整體的可靠性。