劉 可 李 可 宿 磊 王 琨 張秋菊
(1.江南大學江蘇省食品先進制造裝備技術重點實驗室, 無錫 214122; 2.江南大學機械工程學院, 無錫 214122)
機器人在農業(yè)采摘、分揀、碼垛等方面的廣泛應用極大地促進了農業(yè)機械化發(fā)展。機器人運動軌跡規(guī)劃是機器人學研究的一個重要方面,合理的運行軌跡可以使機器人快速準確地完成指定作業(yè)任務。機器人的三維路徑規(guī)劃是指按照任務要求,機器人在復雜空間環(huán)境中按照某種規(guī)則尋找出從起點到終點的一條路徑[1-2]。目前常用的機器人三維空間路徑規(guī)劃算法有人工勢場法[3-5]、A*算法[6-8]、模糊邏輯法等[9]。人工勢場法是在空間中放置一個虛擬力場代替障礙物,通過力場的排斥與吸引控制機器人運動,這種算法在障礙物與目標點較近時容易陷入局部最優(yōu)解。A*算法可以適用于高維空間,但是隨著維數(shù)的增加,很難達到算法的時空要求。模糊邏輯算法將專家知識轉換為控制信號,符合人類思維習慣,但模糊規(guī)則很難總結,應變性較差。
蟻群算法[10]在解決機器人三維路徑規(guī)劃問題上顯示出良好的適應性,但與其他啟發(fā)式優(yōu)化算法一樣,其算法參數(shù)的選擇對優(yōu)化結果有較大影響。蟻群算法傳統(tǒng)的參數(shù)選取方法主要是經驗選擇法、實驗試湊法、正交實驗設計法等。傳統(tǒng)的參數(shù)選擇方法具有一定的局限性,經驗選擇法依賴于知識和經驗,實驗試湊法費時、低效,正交實驗設計法沒有考慮參數(shù)間的耦合性。近年來,國內外陸續(xù)有學者使用一些智能優(yōu)化算法對蟻群算法的參數(shù)進行選取,如遺傳算法(Genetic algorithms, GA)[11]、粒子群算法(Particle swarm optimization, PSO)等[12]。然而這些方法又引入了更多的參數(shù)選擇問題,如GA算法中的交叉算子、變異算子,PSO算法中的慣性權重、學習因子等,使得整個尋優(yōu)算法更加復雜。
蟻群算法參數(shù)的不確定性和各參數(shù)間的耦合性,使得如何確定蟻群算法的最優(yōu)參數(shù)成為一個重要問題。遷移學習是近年來提出的一種新的機器學習方法,可以將在源領域和源任務中認知和學習的信息應用到目標領域和目標任務,完成或者改善目標任務的學習效果。在工程實踐中,為每個任務收集數(shù)據或者尋找參數(shù)所需時間成本極大,甚至是不可實現(xiàn)的,因此從以往任務中遷移已有知識、進而解決目標任務是十分必要的。使用遷移學習中的參數(shù)遷移方法可以將已有的參數(shù)知識引入到新任務中,使相似領域中的參數(shù)信息可以有效重用。LAWRENCE等[13]提出了一種基于高斯過程的多任務信息向量機,通過共享多任務相同的高斯先驗知識來學習高斯過程參數(shù)。洪佳明等[14]提出了基于領域相似性的遷移學習方法。YOAV等[15]提出根據目標任務在模型遷移網絡中的位置確定新目標任務的模型參數(shù)。許夙暉等[16]提出了基于極限學習機參數(shù)遷移的域適應算法,使目標域的極限學習機分類器參數(shù)最大限度與源領域的分類器參數(shù)分布相同。
針對蟻群算法在機器人三維路徑規(guī)劃中的參數(shù)尋優(yōu)問題,本文采用參數(shù)遷移[17]的方法對蟻群算法進行參數(shù)優(yōu)化,降低算法復雜性,利用先驗知識有效解決蟻群算法進行三維路徑規(guī)劃時的參數(shù)選擇問題。
環(huán)境建??梢詫⒄鎸嵉娜S環(huán)境用數(shù)學模型代替,其建立方法對路徑規(guī)劃算法的時效性有很大影響。機器人在復雜工作環(huán)境內作業(yè),完成碼垛、采摘等工作,環(huán)境模型的建立有多種方法。本文采用山峰式環(huán)境模型模擬機器人工作環(huán)境,將真實的機器人三維環(huán)境用抽象的山峰圖形表示。為簡化之后的蟻群算法路徑規(guī)劃,以機器人自身基坐標系為基礎,建立環(huán)境模型坐標系OXYZ。
在建立坐標系后,還需對環(huán)境模型柵格化[18-20]。柵格化是將機器人運行空間沿X、Y、Z方向分解為多個大小相同的網格,每個網格就是一個單元。將環(huán)境模型進行劃分時,對每個單元設置標識,根據單元格內是否有障礙物,分為填充柵格、未填充柵格、半填充柵格。為了機器人運行過程中的安全,將半填充柵格與填充柵格標記為不可通行柵格,未填充柵格標記為可通行柵格。不可通行柵格取值為0,可通行柵格取值為1。經過處理后的機器人三維環(huán)境模型就可以用一個只有0和1的三維矩陣表示。
圖1為機器人實際工作環(huán)境,圖2為所建立的三維環(huán)境模型。將圖1工作空間中的其他設備與障礙物以山峰代替。圖2中曲面表面為機器人環(huán)境輪廓,曲面以下為機器人工作環(huán)境中的障礙物。
圖1 機器人工作環(huán)境Fig.1 Robot working environment
因為機器人末端執(zhí)行器在運行時會夾持工件或工具,需要與障礙物保持一定的安全距離,所以需要對環(huán)境模型進行擴張?zhí)幚?,增加障礙物高度,即在原地圖的基礎上,Z方向每單元增加一定高度H。
圖2 機器人三維環(huán)境模型Fig.2 Robot 3D environment model
機器人三維路徑規(guī)劃的本質就是在滿足一定約束的情況下找出環(huán)境中有效的最優(yōu)路徑。采用柵格法建立的環(huán)境模型,將機器人末端執(zhí)行器的可通過區(qū)域、不可通過區(qū)域簡化為柵格,那么機器人的三維路徑規(guī)劃問題就轉變?yōu)樵谝粋€可通過柵格集合中尋找一個滿足規(guī)劃要求的柵格子集問題,從而得到符合要求的最短路徑。
蟻群算法主要有狀態(tài)轉移規(guī)則、信息素更新規(guī)則兩個過程,其主要運行參數(shù)為α、β、ρ、Q,其具體控制作用在以下公式中體現(xiàn)
(1)
τij(t+1)=ρτij(t)+Δτij
(2)
(3)
τij(t)——在路徑ij上的殘留信息素
ηij——點j處對i處的啟發(fā)值
α——殘留信息素參數(shù)
β——啟發(fā)式因子參數(shù)
N——螞蟻處于點i時下一步的可行點集
Δτij——時間t到t+1的新增信息素值
ρ——信息素衰減系數(shù)
Lk——螞蟻搜尋的路徑長度
Q——新增信息素強度
參數(shù)ρ的值直接影響路徑規(guī)劃效率,ρ過大,蟻群算法的全局搜索能力會提高,收斂速度變慢;ρ過小,全局搜索能力變小。
為了簡化算法設計,結合機器人路徑規(guī)劃的最短路徑和最小時間要求,將螞蟻的運動方式簡化為分層前進方式,對應到環(huán)境模型中,X方向每次前進一層到達下一平面的某一可行點,在下一平面的Y方向和Z方向進行路徑點搜索,尋找可行路徑點,以此類推,最后到達目標點,得到一條路徑。螞蟻運動包括前進,左、右移動,上、下移動5種方式,在路徑規(guī)劃算法中,螞蟻的運動就對應著機器人末端執(zhí)行器的移動。對應這種簡化的機器人運動方式,螞蟻從平面Ra移動到平面Ra+1時,允許左移或者右移yc(yc={0,1,2}),允許上移或下移zc(zc={0,1,2}),路徑點選取方法如圖3所示。
圖3 路徑點選取原則Fig.3 Path point selection principle
(2)計算可行點集p中任一點的啟發(fā)值ηij。
(4)
式中S——根據式(1)給出的概率分布所選出的最大值
q0——區(qū)間[0,1]中的常數(shù)
q——區(qū)間[0,1]中均勻分布的隨機數(shù)
啟發(fā)式函數(shù)是機器人三維路徑規(guī)劃算法中的重要部分,直接影響到算法能否進行快速、高效的路徑規(guī)劃。路徑中所需要考慮的各種因素都需要在路徑規(guī)劃算法中體現(xiàn)。本文的機器人三維路徑規(guī)劃算法要求安全、路徑最短、時間最少和運動平滑性。根據算法要求,任一點的啟發(fā)值公式為
η(x,y,z)=S(x,y,z)[D(x,y,z)]w1[F(x,y,z)]w2
(5)
式中S(x,y,z)——安全因素,考慮下一點是否可達
D(x,y,z)——距離時間因素,要求所規(guī)劃路徑盡可能短,時間盡可能少
F(x,y,z)——運動平滑因素,要求所規(guī)劃的路徑盡可能地平滑,避免出現(xiàn)拐點引起機器人抖動
w1、w2——權重
w1、w2取值由實驗測試獲得,本文使用正交實驗法,當w1=10、w2=5時,路徑尋優(yōu)效果較好。
考慮機器人路徑中的安全因素S(x,y,z),在三維環(huán)境建模時,對柵格的標記將柵格分為不可通行柵格集N{p1,p2,…,pi}和可通行柵格集Y{p1,p2,…,pj},S(x,y,z)的取值為
(6)
距離時間因素D(x,y,z)考慮路徑盡可能短,時間盡可能少。因為機器人勻速運動,所以路徑最短即代表所用時間最小。使用D(x,y,z)表示下一平面上可行點集中任意一點(x,y,z)到出發(fā)點(xs,ys,zs)的距離,值越大表示選擇該點的路徑總長度越短。D(x,y,z)的計算公式為
(7)
式中K1——常數(shù)
機器人在實際運動過程中如果路徑較為曲折,那么其自身的減速器等硬件容易出現(xiàn)震顫等問題,因此在路徑規(guī)劃算法中需要考慮其路徑的平滑性,期望其盡可能的在同一高度運行。因此,本文在啟發(fā)函數(shù)中加入運動平滑因素F(x,y,z),計算公式為
(8)
式中zG——下一平面可行點集中的任一點的Z方向坐標值
K2——常數(shù)
fi,j=(lj-li,j)/lj
(9)
式中l(wèi)i,j——蟻群模型mj在使用參數(shù)組pi時規(guī)劃出的路徑長度
lj——蟻群模型mj在使用參數(shù)組pj規(guī)劃時的路徑長度
遷移性能參數(shù)fi,j可以衡量任務mi的參數(shù)遷移到任務mj時的性能,并且兩個任務間的遷移具有不相等性,即fi,j≠fj,i。遷移性能參數(shù)fi,j≥0時,代表正向遷移,遷移的任務參數(shù)比原始參數(shù)有更好的性能。fi,j<0代表負向遷移,遷移后尋找的路徑變差。
所有源任務之間的遷移性能參數(shù)可以得到遷移矩陣An,An=[ai,j]的定義為
(10)
G=(P,An)可以描述源任務之間的遷移性能,將其進行擴展使其包括目標任務。目標任務集為包括目標任務tn+1在內的集合,目標參數(shù)集為包含目標任務參數(shù)組的集合。對于目標任務tn+1,為其隨機分配一組參數(shù)pn+1=(αn+1,βn+1,ρn+1,Qn+1),計算各源任務對目標任務的遷移性能參數(shù)=(1,2,…,n)。
(11)
(12)
(13)
求解權值矩陣W可得
W=(QTQ+)-1QTF
(14)
求出權值矩陣W后,利用映射函數(shù)=W求出。則該映射函數(shù)矩陣的第n+1行即為目標任務求得的最優(yōu)參數(shù)組n+1。
本文所提出的基于蟻群算法參數(shù)遷移的機器人三維路徑規(guī)劃方法整體思路如圖4所示。
圖4 基于蟻群算法參數(shù)遷移的機器人三維路徑規(guī)劃算法流程圖Fig.4 Flow chart of robot 3D path planning method based on ant colony parameter transfer algorithm
以Fanuc LR Mate200iD型機器人為對象,對其末端執(zhí)行器軌跡進行路徑規(guī)劃仿真,機器人如圖5所示。Fanuc LR Mate200iD型機器人是6自由度串聯(lián)工業(yè)機器人,其控制器為Fanuc R-30iB Mate型。
圖5 Fanuc LR Mate200iD型機器人Fig.5 Fanuc LR Mate200iD robot
在進行機器人仿真作業(yè)任務時,機器人控制系統(tǒng)需要先得到末端執(zhí)行器的規(guī)劃路線,根據逆運動學解出機器人6個關節(jié)的關節(jié)角,驅動機器人模型在仿真環(huán)境中完成指定任務動作,機器人三維仿真模型如圖6所示。為驗證本文提出的基于蟻群算法參數(shù)遷移的機器人三維路徑規(guī)劃算法的有效性,使用三維環(huán)境模型地圖進行仿真實驗。
圖6 機器人三維模型Fig.6 Robot 3D model
圖7 機器人源任務與目標任務環(huán)境模型Fig.7 Robot source task and target task environment models
根據圖6所示機器人模型所處環(huán)境和工況的不同,使用本文提出的三維環(huán)境建模方法對機器人不同作業(yè)任務時的環(huán)境進行建模,得到如圖7所示的仿真地形圖。圖7a~7e作為源任務的環(huán)境仿真模型,圖7f作為目標任務的環(huán)境仿真模型。圖中柵格下方代表障礙物,X、Y方向每個單元格代表實際的機器人運動距離(15 mm)。各任務都是給定運動的起始點與終止點,使用蟻群算法尋找一條最短路徑。
為了驗證本文所提出算法的有效性,將使用參數(shù)遷移選擇蟻群參數(shù)方法與使用傳統(tǒng)參數(shù)選擇方法進行對比。使用隨機試湊法和實驗試湊法兩種傳統(tǒng)參數(shù)選擇方法為目標任務尋找最優(yōu)參數(shù),再以參數(shù)遷移方法尋找最優(yōu)參數(shù)。本仿真實驗的目的是將源任務的經驗知識通過處理遷移到目標任務上,給出一組最優(yōu)解,使得目標任務可以快速規(guī)劃出一條最短路徑,并驗證其方法的有效性和快速性。
不同源任務參數(shù)之間的遷移性能如表1所示,map1~map5是源任務1~5的環(huán)境模型,map6是目標任務的環(huán)境模型。
表1 源任務之間的遷移性能Tab.1 Transfer performance between source tasks
表1中行代表源任務,列代表被遷移的任務,各任務之間的遷移性能由遷移參數(shù)fi,j表示。因為蟻群算法尋優(yōu)過程的隨機性,取10次實驗數(shù)據的平均值作為結果代入遷移公式進行計算。從表中可以看出,參數(shù)遷移的遷移性能參數(shù)不具有對稱性,即fi,j≠fj,i。雖然各個源任務選取的都是經驗參數(shù),但各組經驗參數(shù)也具有一定的優(yōu)劣區(qū)別,如各源任務參數(shù)對任務3的遷移均為正向遷移,說明源任務3的原始經驗參數(shù)略差。
表2為各源任務參數(shù)對目標任務的遷移性能。為目標任務分配一組隨機參數(shù),計算各源任務對目標任務的遷移性能。可以看出源任務3對目標任務的遷移性能最優(yōu)。
表2 源任務對目標任務的遷移性能Tab.2 Transfer performance of source tasks to target tasks
方法1使用隨機試湊法為目標任務蟻群算法分配一組隨機參數(shù)計算路徑長度;方法2為通過實驗試湊法為目標任務分配一組經驗參數(shù),計算其蟻群優(yōu)化后的路徑長度;方法3通過參數(shù)遷移將源任務的經驗參數(shù)代入,計算經過參數(shù)遷移后的蟻群路徑規(guī)劃長度。方法3中經過參數(shù)遷移后得到的目標任務優(yōu)化參數(shù)為:α=1.302 7,β=8.423 3,ρ=0.415 2,Q=174.058 2。
因為蟻群算法具有隨機性,同一組參數(shù)得到的優(yōu)化結果可能也具有隨機性,所以每組數(shù)據均取10次平均值作為結果,得到3種方法的優(yōu)化對比曲線,如圖8所示。
圖8 性能對比Fig.8 Performance comparison diagram
從圖8可以看出,使用參數(shù)遷移得到的蟻群參數(shù)進行路徑規(guī)劃,路徑長度明顯較短,平均為148.662 1 mm,經過參數(shù)遷移所尋找到的優(yōu)化參數(shù),相較于經驗參數(shù)得到的機器人三維路徑更優(yōu),而隨機參數(shù)所得到的三維路徑效果都較差。從時間上考慮,本文所提出的使用參數(shù)遷移尋找蟻群算法優(yōu)化參數(shù),用時只需120 s左右,而使用實驗試湊法尋找優(yōu)化參數(shù),1 000組數(shù)據大概需要3×104s,參數(shù)遷移可以極大地提高蟻群三維路徑尋優(yōu)算法中選取優(yōu)化參數(shù)的速度。以上實驗將參數(shù)遷移方法與經驗參數(shù)和隨機參數(shù)進行對比,驗證了將已有知識遷移到目標任務的有效性。
為進一步驗證使用參數(shù)遷移算法選擇蟻群參數(shù)的有效性,本文實驗還使用其他一些智能優(yōu)化算法選擇蟻群算法參數(shù)作為實驗對比。本文選擇基于遺傳算法的蟻群參數(shù)選擇方法和基于粒子群算法的蟻群參數(shù)選擇方法作為對比。其中遺傳算法中各參數(shù)設定為:染色體種群個數(shù)為100,染色體節(jié)點數(shù)為4,交叉概率Pc=0.2,變異概率PN=0.2,最大進化次數(shù)K=60。粒子群算法中各參數(shù)設定為:粒子數(shù)100,學習因子c1=c2=0.1,最大迭代次數(shù)為100。每種算法取10次實驗平均值作為結果進行對比。遺傳算法和粒子群算法的適應度函數(shù)為使用蟻群算法進行路徑尋優(yōu)的目標函數(shù),即為蟻群算法路徑規(guī)劃后的路徑長度。
表3為3種智能優(yōu)化算法在蟻群參數(shù)優(yōu)化中的性能比較,從表3可知,蟻群算法可能有多組優(yōu)化效果較好的參數(shù)組,不同的參數(shù)組可能具有相近的路徑規(guī)劃性能。使用參數(shù)遷移、粒子群、遺傳3種優(yōu)化算法選擇蟻群參數(shù)進行三維路徑規(guī)劃,結果如圖9所示。
表3 3種智能優(yōu)化算法在蟻群參數(shù)優(yōu)化中的性能比較Tab.3 Performance comparison of three intelligent optimization algorithms for optimization of ant colony parameters
圖9 3種算法的路徑規(guī)劃結果Fig.9 Three algorithm path planning results
從路徑規(guī)劃性能上看,使用參數(shù)遷移得到的優(yōu)化參數(shù)在進行蟻群算法路徑規(guī)劃時,具有明顯比遺傳算法和粒子群算法選擇的優(yōu)化參數(shù)更優(yōu)的規(guī)劃效果。從時間上看,參數(shù)遷移尋找蟻群優(yōu)化參數(shù)需要121.415 3 s,遠遠小于遺傳算法的2.424 8×104s和粒子群算法的7.563 3×104s,這是因為遺傳算法和粒子群算法作為一種智能優(yōu)化算法,在粒子或染色體的適應度計算過程中需要反復調用蟻群算法,消耗了大量時間。
針對6自由度機器人末端執(zhí)行器三維路徑規(guī)劃中蟻群算法參數(shù)設置問題進行了研究,提出了一種基于蟻群算法參數(shù)遷移的機器人三維路徑規(guī)劃算法。使用參數(shù)遷移算法,將源任務的經驗蟻群參數(shù)知識合理遷移到目標任務,得到目標任務的蟻群優(yōu)化參數(shù)組合,進而完成機器人三維路徑規(guī)劃任務。仿真實驗表明,參數(shù)遷移顯著節(jié)省了機器人蟻群算法三維路徑規(guī)劃任務需要的時間,路徑規(guī)劃所需時間從數(shù)小時減少到2 min左右,并提高了三維路徑規(guī)劃的性能。相較于傳統(tǒng)參數(shù)選擇法和其他智能優(yōu)化算法,參數(shù)遷移可以快速得到蟻群算法的優(yōu)化參數(shù)組合,這種方案可以有效解決機器人三維路徑規(guī)劃問題。