石建平,李培生,劉國平,劉 鵬
(1.貴陽學院 電子與通信工程學院,貴州 貴陽 550005;2.南昌大學 機電工程學院,江西 南昌 330031;3.河北地質(zhì)大學 寶石與材料工藝學院,河北 石家莊 050031)
機器人逆運動學問題是指已知機器人末端執(zhí)行器的位姿,求到達該位姿所需要的各關節(jié)變量值,該問題是機器人軌跡規(guī)劃、運動控制以及工作空間分析等問題的前提和基礎。因為逆運動學問題是一個從笛卡爾空間到關節(jié)空間的復雜非線性一對多映射,所以運動學逆解的求解是機器人學領域的技術難題之一。求解運動學逆解的主要方法包括封閉解法和數(shù)值解法兩大類[1]。
封閉解法通過代數(shù)或幾何的方式直接獲得關節(jié)變量的表達式,具有求解速度快、精度高且能夠求出所有逆解的優(yōu)勢。但封閉解法受機器人結構構型的限制較大,只有少部分結構構型滿足Pieper準則[1]的機器人的逆運動學問題才存在封閉解析解,方法的通用性較差。數(shù)值解法是求解復雜機器人運動學逆解的主要方法,常規(guī)的數(shù)值解法包括基于雅克比矩陣的迭代法、神經(jīng)網(wǎng)絡法等。雅克比矩陣迭代法計算過程復雜,且存在累積誤差以及對于奇異位形無法求解的問題;神經(jīng)網(wǎng)絡法需要大量的數(shù)據(jù)樣本來進行網(wǎng)絡學習,而訓練樣本的獲取并非易事。近年來,遺傳算法[2-3]、粒子群優(yōu)化算法[4-7]、差分進化算法[8-9]、類電磁機制優(yōu)化算法[10]及螢火蟲群算法[11]等智能優(yōu)化算法被用于機器人運動學逆解的求解并取得了良好的研究進展,為解決機器人逆運動學問題提供了有效的選擇方案。
克隆選擇算法(Clonal Selection Algorithm, CSA)[12]是人工免疫系統(tǒng)領域的一個研究熱點,CSA通過對免疫系統(tǒng)執(zhí)行免疫應答過程中抗體的克隆選擇與擴增、高頻變異與受體編輯等免疫機理的模擬,使得其具有較強的自學習、自組織和自適應能力,從而在諸多工程領域得到了廣泛應用。同其他群智能優(yōu)化算法一樣,CSA在解決復雜優(yōu)化問題時也存在容易陷入局部最優(yōu)而導致收斂質(zhì)量不高的問題。針對該問題,廣大科研工作者結合不同的應用領域?qū)SA進行了大量卓有成效的改進研究[13-18]。目前,CSA在機器人運動學逆解中的應用鮮有報道,本文在前期研究成果的基礎上,以基于CSA的機器人運動學逆解求解方法為研究背景,對CSA的改進與應用展開研究。
本文以6連桿平面冗余機械臂的運動學逆解求解為例展開算法的改進研究,機械臂模型以及建立的連桿坐標系如圖1所示。
根據(jù)D-H法可得從坐標系{i-1}到坐標系{i}的齊次變換矩陣為
(1)
式中:i=1,2,…,7;cθi=cos(θi),sθi=sin(θi),θi和li-1分別為機械臂的關節(jié)角和連桿長度(l0=0、θ7=0°)。
進一步可得冗余機械臂的運動學方程為
(2)
將通過式(1)得到的相鄰坐標系間的各齊次變換矩陣代入式(2)可得
(3)
由于有無窮多個逆解與一個給定的冗余機械臂末端位姿對應,若沒有約束條件,則逆解的選擇難以確定。實際應用中,除了對機械臂末端的位姿有精度上的要求外,通常還有機械臂從初始位姿運動到目標位姿的能耗性、柔順性、舒適度和安全性等指標要求。本文將機械臂末端的位姿精度要求作為約束條件,以機械臂從初始位姿運動到目標位姿的能量消耗最小為優(yōu)化目標,將機械臂的逆運動學問題轉(zhuǎn)換成一個最小約束優(yōu)化問題來解決。
對上述平面冗余機械臂而言,由式(3)可知,有ax=ay=nz=oz=pz=0及az=1恒成立。為了簡便計算優(yōu)化目標函數(shù),不需要考慮位姿矩陣中的常數(shù)元素。設期望的機械臂末端位姿矩陣為
定義位姿誤差函數(shù)為
(4)
式中λ為調(diào)整因子,用于平衡機械臂的姿態(tài)誤差與位置誤差。
(5)
式中θ=[θ1,θ2,θ3,θ4,θ5,θ6]。
于是,機械臂的逆運動學問題可轉(zhuǎn)換成如下的最小約束優(yōu)化問題來解決,
s.t.
g(θ)=Δ-Δmax≤0。
(6)
式中Δmax為位姿誤差函數(shù)的最大值。
本文利用罰函數(shù)法將上述約束優(yōu)化問題(6)轉(zhuǎn)換為無約束優(yōu)化問題進行處理,采用的約束處理方法為:
minf′(θ)=min(f(θ)+φ(θ)),
(7)
(8)
式中:f(θ)為原目標函數(shù)(即能耗最小優(yōu)化目標函數(shù));φ(θ)為罰函數(shù);f′(θ)為使用罰函數(shù)φ(θ)修正后的目標函數(shù)(即懲罰適應度函數(shù));α為懲罰系數(shù)。
由式(8)可知,機械臂末端執(zhí)行器的位姿誤差越大,對原目標函數(shù)的懲罰力度越大。
在前期研究中,筆者提出了具有雙層協(xié)同進化機制的改進CSA,即BCECSA算法(bilevel coevolutionary clonal selection algorithm)[18],該算法在混沌系統(tǒng)的參數(shù)估計中獲得較好的優(yōu)化效果。為了將改進的CSA用于有效解決冗余機械臂的逆運動學問題,本文在BCECSA算法架構的基礎上,對其底層進化策略和頂層進化策略分別進行了相關的改進研究,進一步提出了改進的BCECSA算法,即IBCECSA算法。
設抗體i用Xi=[xi1,xi2,…,xiD]表示,抗體i對應D維優(yōu)化問題的一個候選解。將目標函數(shù)視為抗原,用目標函數(shù)適應值表示抗體和抗原的親和度。親和度的大小反映了候選解的質(zhì)量,對于最小優(yōu)化問題,親和度越小,則候選解的質(zhì)量越高。IBCECSA算法的底層進化采用如下的進化方案:
(9)
(10)
其中:Pi表示抗體Xi經(jīng)歷的最佳歷史抗體,即抗體Xi在演化過程中所經(jīng)歷的最佳候選解;Pbest表示整個抗體種群的最佳歷史抗體,即種群迄今為止經(jīng)歷的最佳候選解;Pr1表示抗體Xr1經(jīng)歷的最佳歷史抗體,且索引r1滿足r1≠i≠best;r1、r2、r3、r4、r5為[0,1]內(nèi)均勻分布的隨機變量;ω為比例因子;ps1為選擇概率;t為當前迭代代數(shù),tmax為算法最大迭代代數(shù)。
根據(jù)式(9),算法按概率從兩個進化算子中選擇其中一個來產(chǎn)生下一代抗體i。其中,第一個進化算子是以種群最優(yōu)抗體Pbest和最佳歷史抗體Pr1的加權和為中心向量,以2×r2×(Pr1(t)-Pi(t))為隨機擾動向量在中心向量附近進行擾動搜索;該策略利用種群全局歷史最優(yōu)信息和隨機選擇抗體r1的個體歷史最優(yōu)信息來引導算法的尋優(yōu)搜索,能夠兼顧種群的收斂性與多樣性,達到有效平衡算法的全局探索與局部開發(fā)的目的。第二個進化算子是以Pbest×r3為中心向量,以ω×(r4×Pr1(t)-Pbest)為擾動向量進行局部的精細搜索,該方案直接利用種群最優(yōu)信息進行引導尋優(yōu),能夠加速算法的搜索速度;隨迭代代數(shù)增加而非線性遞減的比例因子ω能夠確保該策略逐漸加強在全局最優(yōu)抗體附近的局部深度開發(fā),有利于提高算法的收斂精度。綜上所述,算法的底層進化策略采用了由兩個進化算子構成的混合協(xié)同進化機制,兩個進化算子之間形成優(yōu)勢互補,在尋優(yōu)過程中能夠有效兼顧種群的多樣性與收斂性。
對按上述底層進化得到的下一代抗體Xi(t+1)的親和度進行實時評估,即計算該抗體的適應值。用F(·)表示適應值函數(shù),按式(11)和式(12)實時更新抗體i的歷史最佳抗體Pi和種群的歷史最佳抗體Pbest,使得算法的收斂速度得到進一步增強。
Pi(t+1)=
(11)
Pbest(t+1)=
(12)
與BCECSA算法一樣,IBCECSA算法的頂層進化采用克隆選擇進化方案。克隆選擇進化是在最佳歷史抗體群P(由所有的Pi構成)的基礎上進行的,具體的免疫操作包含克隆選擇、克隆擴增、抗體的高頻變異或受體編輯。本文將抗體群P按親和度從小到大進行排序(針對最小優(yōu)化問題),得到排序后的臨時抗體群P′。為了不破壞優(yōu)秀抗體的良好進化勢態(tài),選擇親和度較大的50%抗體(對應質(zhì)量較差的部分候選解)進行克隆免疫操作,克隆規(guī)模為:
(13)
式中:m為種群規(guī)模;Si為臨時抗體群P′中排序序號為i的抗體對應的克隆規(guī)模;mc為所有被選抗體的總克隆規(guī)模。
高頻變異和受體編輯是提高克隆體質(zhì)量的常用免疫操作。其中:高頻變異使得克隆體能夠在局部鄰域內(nèi)進行深度的開發(fā),能夠挖掘質(zhì)量更高的候選解;而受體編輯則賦予抗體在搜索空間內(nèi)進行全局探索的能力,從而有效避免算法早熟收斂現(xiàn)象的發(fā)生。為全面改善算法的搜索性能,高頻變異與受體編輯應當混合使用,本文采用的具體方案如下:
(14)
(15)
在大多數(shù)改進的克隆選擇算法中,常常針對親和度較好的部分抗體執(zhí)行免疫操作,這樣能夠加速算法的收斂速度,同時也使得抗體種群的多樣性較快喪失,增加了算法陷入早熟收斂的可能性。本文通過對親和度較差的部分抗體執(zhí)行免疫進化操作,使得該部分抗體的親和度趨于成熟的同時較好地保持了種群的多樣性,降低了抗體種群陷入早熟收斂而導致進化停滯的概率。
IBCECSA與BCECSA算法具有相同的算法架構,且都受克隆選擇學說的啟發(fā),但兩者的具體進化算子與免疫優(yōu)化思路有明顯區(qū)別。
首先,兩個算法的底層進化策略不同。IBCECSA算法采用雙策略混合協(xié)同進化的底層進化機制,其平衡全局搜索與局部搜索的能力比BCECSA算法更強,有效兼顧了種群的多樣性與收斂性。
其次,與BCECSA算法相比,IBCECSA算法的頂層克隆選擇進化環(huán)節(jié)更加簡化直接,且更加容易編程實現(xiàn)。此外,BCECSA算法采用對精英抗體執(zhí)行克隆免疫操作的方式,而IBCECSA算法采用了對親和度較差的部分抗體執(zhí)行克隆免疫操作,前者強調(diào)算法收斂速度的提升,而后者在穩(wěn)步改善抗體種群質(zhì)量的同時能夠更好地保持種群的多樣性。因此,IBCECSA算法具有更強的全局搜索能力。
最后,BCECSA算法的主要參數(shù)為放大系數(shù)β,而影響IBCECSA算法收斂質(zhì)量的主要參數(shù)為選擇概率ps1和ps2。放大系數(shù)β的不同取值直接改變BCECSA算法的函數(shù)總評估次數(shù),而選擇概率ps1和ps2的不同取值不影響IBCECSA算法的函數(shù)總評估次數(shù)。因此,IBCECSA算法的計算成本不受參數(shù)設置的影響。
綜上所述,IBCECSA算法的流程如圖2所示,其具體進化步驟描述如下:
(1)算法的參數(shù)設置與種群初始化。設置種群規(guī)模m、最大迭代次數(shù)tmax、克隆規(guī)模Si、選擇概率ps1和ps2等參數(shù),在可行域內(nèi)隨機初始化抗體種群。
(2)根據(jù)式(9)和式(10)對抗體i執(zhí)行底層進化操作,對于超出搜索空間邊界的抗體分量,參照文獻[18]執(zhí)行越界處理操作,根據(jù)式(11)和式(12)實時更新種群的歷史最優(yōu)信息。
(3)所有抗體執(zhí)行完底層進化操作則轉(zhuǎn)入步驟(4),否則按步驟(2)繼續(xù)對下一個抗體(即i=i+1)執(zhí)行底層進化操作。
(4)將最佳歷史抗體群P按親和度從小到大進行排序,根據(jù)式(13)選擇抗體群P中親和度較差的50%個抗體執(zhí)行克隆擴增。
(5)根據(jù)式(14)對所有克隆體執(zhí)行高頻變異或受體編輯免疫操作,對于超出搜索空間邊界的抗體分量,參照文獻[18]執(zhí)行越界處理操作,按式(15)實時更新抗體群P中對應抗體的最佳歷史信息。
(6)若迭代次數(shù)大于tmax,則輸出尋優(yōu)結果并退出算法循環(huán),否則返回步驟(2)繼續(xù)下一代的迭代進化操作。
為便于與BCECSA算法的收斂性能進行比較,本文采用文獻[18]中的10個基準測試函數(shù)來驗證IBCECSA算法的可行性和有效性,有關基準測試函數(shù)的詳細描述請參考文獻[15]或文獻[18]。IBCECSA算法中需要設置的關鍵參數(shù)為兩個選擇概率,即ps1和ps2。本文選擇基準測試函數(shù)f4和f8來討論上述兩個參數(shù)的設置問題。
設ps2(或ps1)取固定值0.5,ps1(或ps2)分別取0、0.1、0.2、0.3、0.4、0.5、0.6、0.7、0.8、0.9及1不同值;其余參數(shù):種群規(guī)模m=30,最大迭代次數(shù)tmax=200,抗體的克隆規(guī)模Si=5,函數(shù)維度D=30。各函數(shù)分別獨立運行30次,算法尋優(yōu)的平均適應值(Mean)、最優(yōu)適應值(Best)、最差適應值(Worst)、標準差(Std.)以及函數(shù)有效平均總評估次數(shù)(TNE)如表1所示。其中,有效平均總評估次數(shù)是指算法收斂于函數(shù)理論最優(yōu)值時的最小評估次數(shù)的平均值(對于未能收斂于函數(shù)全局最優(yōu)的情形,則根據(jù)算法結束循環(huán)迭代時的實際函數(shù)評估次數(shù)進行統(tǒng)計)。
表1 不同選擇概率的測試結果
由表1可知:當概率ps1<0.9時,算法能夠收斂于函數(shù)f4的理論最優(yōu)值;當概率ps1≥0.9時,算法不能收斂于函數(shù)f4的理論最優(yōu)值。隨著概率ps1的增加,算法對函數(shù)f4的計算成本逐漸增加,但概率ps2的改變對函數(shù)f4的尋優(yōu)收斂質(zhì)量及計算成本影響不大。對于函數(shù)f8,算法不能收斂其理論最優(yōu)值,當概率ps1<0.6時,算法的收斂精度與尋優(yōu)穩(wěn)定性不夠理想,且隨概率ps1的減小,算法的整體收斂質(zhì)量呈逐漸下降的趨勢;當概率ps2>0.4時,算法的收斂精度與尋優(yōu)穩(wěn)定性不夠理想,且隨概率ps2增大,算法的整體收斂質(zhì)量呈逐漸下降趨勢。綜述所述,概率ps1的取值區(qū)間建議為[0.6,0.9],概率ps2的取值區(qū)間建議為[0,0.4]。
根據(jù)上述分析,本文將IBCECSA算法的參數(shù)設置如下:種群規(guī)模m=30,最大迭代次數(shù)tmax=200,抗體的克隆規(guī)模Si=5,概率ps1=0.7,ps2=0.3。
為全面檢測IBCECSA算法的尋優(yōu)能力,考慮基準函數(shù)的維度D為30維和100維的情形,將IBCECSA算法的測試結果與CSA、FDCSA[15]及BCECSA算法的測試結果進行對比,各函數(shù)的試驗結果如表2所示(CSA及FDCSA算法的數(shù)據(jù)來源于文獻[15],BCECSA算法的數(shù)據(jù)來源于文獻[18])。IBCECSA算法對各函數(shù)的平均適應值收斂曲線如圖3所示。為便于觀察,圖3中除了函數(shù)f10外,其余函數(shù)的平均適應值取以10為底的對數(shù)。
表2 不同算法的測試結果對比
由表2的測試結果可知:IBCECSA和BCECSA算法能夠穩(wěn)定收斂于7個基準函數(shù)(f1-f7)的理論最優(yōu)值,F(xiàn)DCSA算法能夠穩(wěn)定收斂于3個函數(shù)(f1,f5,f6)的理論最優(yōu)值,而CSA算法只有1個函數(shù)(f5)能夠收斂于理論最優(yōu)值;IBCECSA、BCECSA及FDCSA算法在f8獲得了較高的收斂精度,但IBCECSA、BCECSA算法的尋優(yōu)穩(wěn)定性優(yōu)于FDCSA算法;IBCECSA、BCECSA算法在f9獲得了相同的收斂質(zhì)量且都優(yōu)于FDCSA算法;IBCECSA、BCECSA及FDCSA算法在f10獲得了相近的收斂質(zhì)量;IBCECSA、BCECSA及FDCSA算法在函數(shù)f8~f10上的整體收斂質(zhì)量遠優(yōu)于CSA。綜上可知,從算法的收斂質(zhì)量來看,IBCECSA、BCECSA算法的收斂質(zhì)量相當,兩者都優(yōu)于FDCSA算法;而IBCECSA、BCECSA及FDCSA算法的收斂質(zhì)量都遠優(yōu)于CSA算法,說明3個改進算法的改進策略是可行有效的。圖3進一步驗證了IBCECSA算法具有收斂精度高、魯棒性強的特點,且對高維復雜優(yōu)化問題具有較強的處理能力。
根據(jù)表2,對于所有測試函數(shù),IBCECSA和BCECSA算法的函數(shù)總評估次數(shù)遠小于CSA及FDCSA算法,使得在相同計算成本的前提下,IBCECSA和BCECSA算法的收斂速度更快、搜索效率更高;除了函數(shù)f8~f10外,BCECSA算法在其余函數(shù)上的計算成本明顯低于IBCECSA算法。
綜合以上分析,與其他改進的CSA相比,IBCECSA算法在收斂速度、收斂精度、尋優(yōu)穩(wěn)定性及計算成本等方面都具備相當?shù)母偁幜Α?/p>
(16)
Pi(t+1)=
(17)
Pbest(t+1)=
(18)
其中:Pi表示抗體θi經(jīng)歷的最佳歷史抗體;Pr1表示抗體θr1經(jīng)歷的最佳歷史抗體;Pbest表示整個抗體種群的最佳歷史抗體;其余參數(shù)與前述相同。
同樣,IBCECSA算法頂層進化策略中的式(14)和式(15)分別修改如下
(19)
(20)
其中:Pi′為臨時抗體群P′中排序序號為i的抗體;Pr2′、Pr3′分別為臨時抗體群P′中排序序號為r2與r3的抗體;Pik*為經(jīng)過高頻變異或受體編輯免疫操作后得到的成熟抗體;θmax、θmin分別為關節(jié)空間的上邊界向量和下邊界向量;其余相關說明與前述相同。
給定機械臂末端執(zhí)行器的期望位姿為
表3 IBCECSA和BCECSA算法的運動學逆解尋優(yōu)性能對比
表4 IBCECSA和BCECSA算法的最優(yōu)逆解比較
由表3可知,IBCECSA算法獲得了100%的運動學逆解尋優(yōu)成功率,與BCECSA算法相比,IBCECSA算法運動學逆解的各項尋優(yōu)指標具有明顯的優(yōu)勢;BCECSA算法的運動學逆解尋優(yōu)成功率為0%,說明BCECSA算法每次試驗的尋優(yōu)結果都無法滿足指定的位姿精度要求。由圖4可知,IBCECSA算法的平均適應值收斂曲線獲得了最低的下降位置,同樣說明了IBCECSA算法的整體收斂質(zhì)量優(yōu)于BCECSA算法。由表4進一步可知,BCECSA算法最優(yōu)逆解對應的g(θ)=9.438 541×10-5>0,即BCECSA算法的最優(yōu)逆解違反了約束條件;而IBCECSA算法最優(yōu)逆解對應的g(θ)=-4.305 329×10-7<0,即IBCECSA算法的最優(yōu)逆解滿足給定的位姿精度要求。從圖5可以直觀觀察BCECSA和IBCECSA算法的最優(yōu)逆解對應的機械臂實際位姿。
為有效解決冗余機械臂的逆運動學問題,受前期研究成果BCECSA算法雙層協(xié)同進化架構的啟發(fā),本文進一步提出了改進的BCECSA算法,即IBCECSA算法。IBCECSA算法采用了雙策略協(xié)同進化的底層進化方案以及與BCECSA算法不同的頂層免疫克隆選擇進化思路,使得其能夠更好地平衡算法的全局探索與局部開發(fā)。在基準函數(shù)仿真實驗中,IBCECSA算法獲得了與BCECSA算法相近的收斂精度與尋優(yōu)穩(wěn)定性,但在算法的計算成本與收斂速度方面略遜于BCECSA算法,這也說明IBCECSA算法保持種群多樣性的能力更強。以6連桿平面冗余機械臂的逆運動學求解為例展開試驗對比分析,結果表明IBCECSA算法獲得了很好的運動學逆解尋優(yōu)結果,可用于有效解決冗余機械臂的逆運動學問題。后續(xù)將研究基于IBCECSA算法的多目標優(yōu)化問題求解,進一步拓展算法的應用范圍。