王占山, 徐 朋
(1.蘇州工業(yè)職業(yè)技術(shù)學院,江蘇 蘇州 215104,E-mail:feifei0001feifei@163.com;2.燕山大學 機械工程學院,河北 秦皇島 066004)
在移動機器人應用領(lǐng)域中,路徑優(yōu)化問題占有相當重要的比重。如何在具有障礙物的復雜環(huán)境下,迅速求解并規(guī)劃出一條從起點到終點距離最短、路徑最精確的優(yōu)化路徑是目前移動機器人領(lǐng)域研究的熱點問題[1-3]。目前移動機器人路徑優(yōu)化主要是基于PID控制的蟻群算法。傳統(tǒng)的PID控制器對其非線性、時變、耦合及參數(shù)和結(jié)構(gòu)不確定的復雜過程,其控制能力較差[4]。依據(jù)數(shù)學模式去調(diào)整PID控制器需要用復雜的數(shù)學計算,且PID控制器比例增益KP是固定的,因而導致PID控制器缺少適應能力,而蟻群算法也有穩(wěn)定性不強,容易收斂于局部極值的缺點[5-6]。
在移動機器人控制及路徑優(yōu)化算法研究方面,N Khan等[7]研究了移動機器人的動態(tài)系統(tǒng)為非線性時,依據(jù)線性控制方法提出幾個控制策略,例如利用PI及PD的參數(shù)調(diào)整方式求解,以及將自調(diào)式PID控制器應用于移動機器人,但依舊難以解決控制器適應能力弱的缺點。趙高杰等[8]提出一種變步長的蟻群優(yōu)化算法,某種程度上解決了移動機器人在柵格狀態(tài)下的路徑優(yōu)化問題,但是算法中的弗洛蒙信息素被限制,導致路徑在非柵格狀態(tài)下容易出現(xiàn)輕微波動,影響移動機器人的優(yōu)化效果。Kim等[9]提出一種動態(tài)環(huán)境下探索移動機器人路徑優(yōu)化的新方法,但是該方法在局部路徑優(yōu)化及避障礙方面誤差較大,不太適合實際應用環(huán)境。Jyoti等[10]發(fā)展出一種智能型基因算法,找尋最佳路徑,從而完成移動機器人到達終點的目標并完成避障任務,但是仿真證明其誤差收斂性較差,收斂于零的速度較慢。熊君麗等[11]提出一種移動機器人基于動態(tài)窗口控制的改進蟻群路徑優(yōu)化算法,有效解決了移動機器人局部路徑和全局路徑動態(tài)規(guī)劃問題,但是其所提出的蟻群算法搜索時間偏長的問題依舊沒有完美解決。陸州等[12]提出一種包括克隆、疫苗接種、選擇否定等具免疫思想的移動機器人路徑搜索及優(yōu)化方法,有效解決了移動機器人的全局規(guī)劃問題,但其建立的坐標工作模型不適合人工智能時代移動機器人的自適應控制問題[13-14]。
基于以上問題,本文提出一種基于自適應性控制的類免疫路徑優(yōu)化算法,在移動機器人的路徑優(yōu)化、避障及誤差收斂性等方面進行全面分析[15-17]。本文首先介紹了移動機器人的三維結(jié)構(gòu)模型,然后提出了基于自適應小腦模型控制器設(shè)計的類免疫算法流程,分析了避障策略和運動模型[18-20]。最后通過仿真及實驗說明了本文所提方法的正確性。
自適應移動機器人的結(jié)構(gòu)如圖1所示,采用四肢移動結(jié)構(gòu)反向安裝,框架起到支撐作用,內(nèi)部安裝有電源裝置、驅(qū)動模塊、控制模塊以及空間姿態(tài)傳感器,頂部安裝有燕尾槽,可以用于固定搭載物體。在運動過程中,利用空間姿態(tài)傳感器,實時監(jiān)測自適應移動機器人與地面的傾角狀態(tài),傳輸?shù)娇刂颇K,根據(jù)各種工況下的運動模式進行計算分析,主動調(diào)整四肢移動結(jié)構(gòu)高度,從而保證移動過程中的平穩(wěn)性。
圖1 自適應移動機器人內(nèi)部結(jié)構(gòu)示意圖
自適應移動機器人移動結(jié)構(gòu),主要由主動輪式結(jié)構(gòu),連桿機械臂,主動電缸組成。主動輪式結(jié)構(gòu)為驅(qū)動行進機構(gòu),由步進電機,行星減速器,驅(qū)動輪組成,結(jié)構(gòu)緊湊,動力強勁。連桿機械臂分為下支臂和上支臂,二者之間通過轉(zhuǎn)軸連接,可以相互轉(zhuǎn)動,在連桿機械臂上安裝有主動電缸。當?shù)孛娓叨绕鸱鼤r,主動電缸根據(jù)檢測參數(shù)計算獲得的伸縮量,主動驅(qū)動電缸伸縮,從而為自適應機器人提供平穩(wěn)支持,保證在運輸貴重、危險等對穩(wěn)定性要求較高的物體的平穩(wěn),具體結(jié)構(gòu)如圖2所示。
圖2 移動結(jié)構(gòu)示意圖
(1) 抗體群的產(chǎn)生:在類免疫算法求解全局路徑規(guī)劃問題中,最重要的就是抗體群的決定。一條無障礙物的可行路徑包括起點,終點和中間點,在類免疫算法中,可以將一條路徑上的所有節(jié)點集合視為一個抗體。算法一開始先以隨機均勻的方式產(chǎn)生這些抗體群,也就是產(chǎn)生數(shù)個可能的最佳解,經(jīng)由類免疫系統(tǒng)的演化,演化出最佳記憶細胞,也就是最佳路徑。
(2) 親合度的定義:在類免疫演算求解全局路徑規(guī)劃問題上,親合度的定義為路徑的距離,也就是路徑節(jié)點中,從起點到終點路徑的總長度。
綜合以上所述,應用類免疫算法求解全局最佳路徑規(guī)劃可分成以下幾個步驟完成:
步驟1:建立Grid-based的環(huán)境模型,包括起點、終點和靜態(tài)障礙物。
步驟2:設(shè)定類免疫算法的執(zhí)行參數(shù),編碼,和迭代數(shù)目。
步驟3:類免疫抗體的初始化,也就是產(chǎn)生最佳路徑的候選解。
步驟 4:計算每個抗體的親合度。
步驟5:進行株落選擇并更新抗體基因,使類免疫算法能演算化最佳記憶細胞。
步驟6:判斷結(jié)束條件是否成立,若成立則輸出類免疫算法得到的最佳解,否則,繼續(xù)下一次迭代,回到步驟4。
由類免疫算法得到的路徑是不連續(xù)的,從機器人的控制器角度而言,這個不連續(xù)的路徑必須被平滑化,以獲得連續(xù)平滑的軌跡。有了平滑化后的軌跡,即可由上述設(shè)計的類免疫控制器來追蹤平滑處理后的連續(xù)軌跡,實現(xiàn)路徑追蹤的目的。要解決這個路徑平滑化的問題,目前使用最多的是利用B-spline內(nèi)插法來完成所規(guī)劃的路徑平滑化目標。本計劃將在軟件上實現(xiàn)B-spline路徑平滑技術(shù),并整合在類免疫路徑規(guī)劃器內(nèi),完成路徑平滑的目標,如圖3所示,其中P為控制點。以下僅針對B-spline曲線的基本特性和數(shù)學模型做簡要的說明。
圖3 平滑化前后的路徑比較
本論文提出了類免疫算法及其在移動機器人的整合應用,包括調(diào)整控制器參數(shù),設(shè)計最佳控制器和設(shè)計最佳全局路徑規(guī)劃器,并結(jié)合B-spline路徑平滑器,以驗證這些方法的有效性和優(yōu)點。并使自主性移動機器人順利的從起點到終點,追蹤平滑的路徑,順利的避開障礙物,到達目的地,完成全局路徑規(guī)劃的任務。主要分成三個部份:
(一) 設(shè)計最佳控制器:以類免疫算法快速的調(diào)整控制器參數(shù),并設(shè)計最佳運動控制器。
(二) 全局路徑規(guī)劃:在靜態(tài)環(huán)境已知的情況下,針對機器人不同的任務,規(guī)劃出最佳的路徑。
(三)路徑平滑化與變形:由全局路徑規(guī)劃器所得到的路徑通常都是由數(shù)個不連續(xù)的線段所組成,以運動控制的角度來看,追蹤這些不連續(xù)的點,機器人必須在不連續(xù)點停住,再追蹤下一個點,這會增加到達目標的時間。所以路徑必須經(jīng)過平滑化,本論文采用B-spline路徑平滑器,使機器人能夠順利的追蹤平滑化的路徑,到達終點。
建立一個多輸入多輸出的小腦模式控制器,其輸出為:
zCMAC=F(s)
F:RLRn是CMAC輸入變量s=[s1,…,sL]T∈S?RL的S集合與輸出變量zCMAC=[zCMAC1,…,zCMACn]T∈Z?Rn的Z集合的非線性函數(shù)。為了模仿人類小腦的運作,系統(tǒng)輸入輸出透過具有關(guān)聯(lián)記憶空間A,在空間A內(nèi)的任何元素都由0或1組成。依輸入型態(tài)而定,在數(shù)學上可借助一對函數(shù)映像描述關(guān)系式來描述小腦模式控制器輸入與輸出之間的關(guān)系:
G:S→A;saG(s)=a(s)∈A
(1)
P:ARn;aaP(a)
(2)
選擇函數(shù)P產(chǎn)生輸出zCMAC∈Rn如下:
zCMAC=P(a)=(aTW)T
(3)
式中:a∈RM為關(guān)聯(lián)向量;W≡[w1,…,wn]∈RM×n是小腦模式控制器的權(quán)重矩陣。
為達到實時控制及穩(wěn)定控制系統(tǒng)的目的,結(jié)合模糊集合以及小腦模型,提出模糊小腦模型控制器,并借助參數(shù)化的方式實時修正其輸出。
考慮雙輸入變量的問題,具有N個模糊規(guī)則的模糊系統(tǒng),將被設(shè)計成如下的型式:
(4)
(5)
其中:
(6)
此方程式可以被簡化為:
zAFCMAC=(hTAW)T
(7)
(8)
(9)
在方程式(7),矩陣A(是由CMAC決定)及向量h(由模糊規(guī)則決定,因應數(shù)入而改變),而權(quán)重向量w是可調(diào)變的。
由上述類免疫算法判斷出移動機器人的移動軌跡,需要為機器人在行走途中能自主判斷突發(fā)的障礙物并進行避障動作制定避障策略,待避障結(jié)束后再回到軌跡追蹤模式繼續(xù)朝目的地前進。本章將聚焦討論于避障策略,并利用Kinect傳感器判斷障礙物,判斷方式為圖4表示。
圖4 避障計算方式
圖4中A為移動機器人到障礙物間距離,B為中線到障礙物邊界的距離加上移動機器人寬度,C為所需移動的距離,已知A與B時就能計算出C,就能準確地計算出需要轉(zhuǎn)動多少角度,以及移動多少距離,方能避開障礙物。當傳感器偵測到接近障礙物時,開始進行位移控制并藉此達成避障功能。
移動機器人的幾何架構(gòu)如圖5所示。
圖5 移動機器人幾何架構(gòu)圖
圖5中r為輪子的半徑,V為輪子的移動速度,L為機器人中心點至每個輪子的距離,δ為移動機器人的輪子1與卡氏坐標x的夾角,機器人因運動產(chǎn)生偏轉(zhuǎn)角以θ表示。
參考圖5移動機器人幾何架構(gòu)圖,可推導出機器人之運動學模型如下:
(10)
將上式寫成輪的速度向量矩陣可得下式:
(11)
定義系統(tǒng)的控制輸入訊號u如下:
(12)
其中:
(13)
將(13)整理成非線性系統(tǒng)的形式:
(14)
其中:
(15)
設(shè)定移動機器人、目標軌跡及AFCMAC的初始參數(shù):
設(shè)移動機器人的初始參數(shù),L為輪子至中心點距離,r為輪子半徑,δ為車身出發(fā)的角度:
L=0.23m,r=0.05m,δ=π/4 rad
目標軌跡初始參數(shù):
初始坐標:[x0y0θ0]=[0 m 0 m 0 rad]
目標函數(shù):
[xryrθr]=[cos(t) m sin(t)m 0 rad],0≤t≤6移動機器人起點,隨著時間t變化,以此設(shè)計圓形軌跡追蹤。
AFCMAC的初始參數(shù):
表1 圓形軌跡初始參數(shù)
圖6-圖8分別表示圓形追蹤軌跡仿真、圓形軌跡追蹤誤差仿真、移動機器人各輪轉(zhuǎn)速仿真。其中,圖6分別表示了移動機器人基于AFCMAC控制的類免疫算法和基于PID控制的蟻群算法路徑仿真,通過與期望軌跡仿真對比可以看到基于AFCMAC的類免疫算法與期望軌跡有著更好的吻合度,基于PID控制的蟻群算法相比期望軌跡吻合度相對較差,有一定誤差。所以充分證明本文所提算法的正確性。
圖6 圓形追蹤軌跡仿真
由仿真圖7可知,移動機器人的位置誤差和姿態(tài)誤差都快速趨近于零,說明基于AFCMAC控制的類免疫算法在移動機器人運動誤差精度方面是符合要求的。由仿真圖8可知移動機器人各輪轉(zhuǎn)速曲線均處于平滑狀態(tài),從運動控制角度進一步說明本文基于AFCMAC控制的類免疫算法是合理和正確的。
圖7 圓形軌跡追蹤誤差仿真
圖8 移動機器人各輪轉(zhuǎn)速仿真
為從實驗角度來驗證本文所用基于AFCMAC控制的類免疫算法的正確性,現(xiàn)以某公司生產(chǎn)的移動機器人樣機圍繞圓形軌跡進行實驗驗證,實驗場景如圖9所示。
圖9 實驗場景圖
首先設(shè)定反饋時間及目標軌跡的初始參數(shù):
反饋時間初始參數(shù):
tf=0.1 s
式中:tf為嵌入式系統(tǒng)獲取移動機器人電機反饋的時間。
目標軌跡初始參數(shù):
初始坐標:
[x0y0θ0]=[0 m 0 m 0 rad]
目標函數(shù):
[xryrθr]=[r1·cosωrtmr2·sinωrtm0 rad]
其中:
角速度ωr=1/(rad·s-1),短軸長r1=100 m,長軸長r2=150 m。
實驗數(shù)據(jù)仿真圖分別如圖10和圖11所示。
圖10 圓形軌跡追蹤軌跡實驗圖
圖11 追蹤誤差實驗圖
由圖10可以看出基于AFCMAC控制的類免疫算法的移動機器人進行圓形軌跡追蹤,能夠精確到達目標參考點,并由圖11看出三個參數(shù)最終可以收斂到誤差趨近于零的結(jié)果,進一步從實驗角度證明了本文所用方法的正確性。實驗結(jié)果如下:
(1) 本文提出一種移動機器人基于自適應性小腦控制為核心的類免疫路徑優(yōu)化算法,通過不停迭代演化出最佳記憶細胞,然后通過自適應性小腦控制器實現(xiàn)移動機器人的最優(yōu)路徑規(guī)劃。
(2) 通過避障策略及移動機器人的幾何架構(gòu)圖推導出運動學模型,基于運動學模型進行移動機器人的路徑仿真和誤差仿真。
(3) 最后,通過仿真分析對比及實驗驗證,證明本文所提基于自適應性小腦控制的類免疫路徑優(yōu)化算法相比于基于PID控制的蟻群算法在移動機器人路徑規(guī)劃方面有著更高的優(yōu)化精度和誤差迭代收斂性。