竇汝桐 ,于慎波 ,孫 鳳 ,夏鵬澎 ,橫井浩史 ,姜銀來
(1.沈陽工業(yè)大學(xué)機(jī)械工程學(xué)院,遼寧 沈陽 110870;2.電氣通信大學(xué)機(jī)械與智能系統(tǒng)工程學(xué)院,東京 182-8585)
隨著老齡化社會的加劇,仿人機(jī)械臂的發(fā)展可以彌補(bǔ)年輕勞動力的短缺,解決老齡化社會帶來的家庭服務(wù)和醫(yī)療陪護(hù)等社會問題[1-2].
工作空間作為機(jī)械臂運(yùn)動學(xué)分析中必不可少的環(huán)節(jié),其大小代表了機(jī)械臂的工作范圍,是衡量機(jī)械臂工作性能的重要指標(biāo)[3].Yin 等[4]采用工作空間描述的方式,篩選出液壓挖掘機(jī)反鏟臂的最優(yōu)設(shè)計(jì)方案.東輝等[5]利用提出的工作空間密度函數(shù),通過迭代的方式求解平面冗余機(jī)器人的逆運(yùn)動學(xué)解.Xu等[6]提出一種5 自由度(DOF)機(jī)械臂,并依據(jù)工作空間為機(jī)械臂設(shè)置軌跡規(guī)劃任務(wù).趙智遠(yuǎn)等[7]基于工作空間分析,為9-DOF 超冗余機(jī)械臂確定出36 種構(gòu)型方案.因此,機(jī)械臂工作空間的研究對機(jī)械臂設(shè)計(jì)與任務(wù)規(guī)劃具有重要意義.
目前,工作空間的求解分為幾何法、解析法和數(shù)值法:幾何法可以獲得工作空間的剖截面或剖截線,具有簡單、直觀的特點(diǎn),適用于平面機(jī)械臂工作空間的求解,但對多自由度機(jī)械臂工作空間的描述不夠準(zhǔn)確[8];解析法是基于雅克比矩陣奇異性與工作空間邊界之間的關(guān)系,獲得工作空間邊界曲面的方法,可以準(zhǔn)確地計(jì)算出工作空間的邊界及其表達(dá)式,但求解過程十分復(fù)雜,一般適用于關(guān)節(jié)數(shù)少于3 的機(jī)械臂[9];數(shù)值法則是基于概率統(tǒng)計(jì)學(xué),采用隨機(jī)抽取盡可能多的關(guān)節(jié)變量組合,獲得機(jī)械臂末端位置的點(diǎn)集,進(jìn)而近似代替機(jī)械臂的工作空間[10].
蒙特卡洛法作為工作空間求解的一種數(shù)值方法,具有算法簡單和通用性強(qiáng)等優(yōu)點(diǎn)[11-12].蒙特卡洛法在計(jì)算機(jī)械臂工作空間時(shí)存在隨機(jī)點(diǎn)分布不均的缺點(diǎn)[13-14],尤其是機(jī)械臂工作空間的邊界位置,使得機(jī)械臂工作空間的邊界位置模糊,造成機(jī)械臂工作空間的缺失.為提高機(jī)械臂工作空間的精度,需要大量新增隨機(jī)點(diǎn)云去充實(shí)機(jī)械臂工作空間的邊界,但新增的隨機(jī)點(diǎn)多數(shù)落入了工作空間的內(nèi)部,造成了新增隨機(jī)點(diǎn)云的大量浪費(fèi)[15],并對機(jī)械臂工作空間的精度提升并不明顯.針對蒙特卡洛法的不足,一種改進(jìn)蒙特卡洛法被提出[16-17],該方法利用蒙特卡洛法生成一個(gè)種子空間,在工作空間內(nèi)點(diǎn)云數(shù)量較少的區(qū)域內(nèi)部隨機(jī)選取一個(gè)參考點(diǎn),結(jié)合正態(tài)分布方法擴(kuò)展并加密該參考點(diǎn)處隨機(jī)點(diǎn)云的數(shù)量,提高工作空間的精度.該方法在工作空間求解中,由于參考點(diǎn)為隨機(jī)選取,不一定位于區(qū)域中心位置,并且擴(kuò)展了該點(diǎn)處加密點(diǎn)云的范圍,使得該區(qū)域內(nèi)存在點(diǎn)云數(shù)量得不到充分加密和外溢點(diǎn)云的浪費(fèi)問題.
針對蒙特卡洛法在求解機(jī)械臂工作空間時(shí)存在的不足,提出一種降密蒙特卡洛法,并研究該方法中各參數(shù)設(shè)置對工作空間精度的影響.降密蒙特卡洛法通過準(zhǔn)確加密每個(gè)區(qū)域內(nèi)點(diǎn)云數(shù)量,均勻提高工作空間內(nèi)部點(diǎn)云密度,使工作空間內(nèi)部與邊界分明;并針對邊界點(diǎn)云數(shù)量少和邊界模糊的缺點(diǎn),采用擴(kuò)展各關(guān)節(jié)角度范圍的方式,通過多次迭代提高工作空間邊界點(diǎn)云的密度和擴(kuò)展工作空間邊界范圍,最終達(dá)到在保證工作空間精度的同時(shí),減少新增點(diǎn)云浪費(fèi)的目的,從而提高求解工作空間的效率.
仿人機(jī)械臂作為機(jī)器人的執(zhí)行機(jī)構(gòu),具有工作空間范圍大、靈活性高、較好的避障性和擬人化的執(zhí)行動作等優(yōu)點(diǎn),被學(xué)者們廣泛關(guān)注.為了提高人機(jī)交互的舒適性和親和力[18-19],本課題組提出了一種具有人體手臂構(gòu)型的7-DOF 仿人機(jī)械臂,如圖1 所示,該機(jī)械臂由肩、肘和腕關(guān)節(jié)模塊組成,θi為對應(yīng)關(guān)節(jié)的角度值,i=1,2,···,D,D為機(jī)械臂關(guān)節(jié)數(shù).肩關(guān)節(jié)模塊由3 個(gè)電機(jī)并聯(lián)驅(qū)動3 個(gè)關(guān)節(jié),肘和腕關(guān)節(jié)模塊分別由2 個(gè)電機(jī)并聯(lián)驅(qū)動2 個(gè)關(guān)節(jié).各模塊之間采用并行通訊,相互獨(dú)立工作,共同完成機(jī)械臂的規(guī)劃任務(wù).由于仿人機(jī)械臂各關(guān)節(jié)模塊采用電機(jī)加鋼絲繩的繩索驅(qū)動方式以及多電機(jī)并聯(lián)驅(qū)動多關(guān)節(jié)的布局方式,使得該機(jī)械臂具有重量輕、結(jié)構(gòu)緊湊、輸出比高和擬人化運(yùn)動程度高等優(yōu)點(diǎn).該機(jī)械臂擁有7 個(gè)電機(jī)和7 個(gè)自由度,全長690 mm,自重2.2 kg,可夾持重量1.5 kg,其自重與承載比高達(dá)22∶15.
仿人機(jī)械臂各關(guān)節(jié)的關(guān)節(jié)限位如表1 所示,其各關(guān)節(jié)的正方向如圖1 中標(biāo)注所示.
表1 仿人機(jī)械臂關(guān)節(jié)限位Tab.1 Joint limit of humanoid robot arm
仿人機(jī)械臂的運(yùn)動學(xué)分析是機(jī)械臂工作空間求解和運(yùn)動學(xué)控制的基礎(chǔ).正運(yùn)動學(xué)是已知機(jī)械臂的各關(guān)節(jié)角度去推算機(jī)械臂末端執(zhí)行器在笛卡爾坐標(biāo)系下的位置與姿態(tài).根據(jù)7-DOF 仿人機(jī)械臂構(gòu)型和標(biāo)準(zhǔn)D-H(Denavit-Hartenberg)建模方法,建立仿人機(jī)械臂運(yùn)動學(xué)坐標(biāo)系如圖2 所示.圖2 中:dbs為肩關(guān)節(jié)到基座的距離,dse為肘關(guān)節(jié)到肩關(guān)節(jié)的距離,dew為腕關(guān)節(jié)到肘關(guān)節(jié)的距離,awt為機(jī)械臂末端到腕關(guān)節(jié)的距離.
圖2 仿人機(jī)械臂運(yùn)動學(xué)坐標(biāo)系Fig.2 Kinematics coordinate system of humanoid robot arm
根據(jù)仿人機(jī)械臂各連桿之間的坐標(biāo)系關(guān)系,推出機(jī)械臂各連桿D-H 參數(shù)如表2 所示.其中:di為相鄰2 個(gè)關(guān)節(jié)之間的連桿偏移量,ai為相鄰2 個(gè)關(guān)節(jié)之間的連桿長度,αi為相鄰2 個(gè)連桿坐標(biāo)系之間的扭轉(zhuǎn)角度.
表2 仿人機(jī)械臂D-H 參數(shù)Tab.2 D-H parameters for humanoid robot arm
仿人機(jī)械臂相鄰兩連桿之間的位姿變換矩陣為
式 中:cθi=cos θi,sθi=sin θi,cαi=cos αi,sαi=sin αi.
仿人機(jī)械臂的正運(yùn)動學(xué)模型為
式中:[nxnynz]T為機(jī)械臂末端執(zhí)行器坐標(biāo)系的x7軸相對于基坐標(biāo)系中的方向矢量,[oxoyoz]T為機(jī)械臂末端執(zhí)行器坐標(biāo)系的y7軸相對于基坐標(biāo)系中的方向矢量,[axayaz]T為機(jī)械臂末端執(zhí)行器坐標(biāo)系的z7軸相對于基坐標(biāo)系中的方向矢量,Px、Py和Pz分別為機(jī)械臂末端執(zhí)行器在笛卡爾坐標(biāo)系中的空間位置點(diǎn),該位置點(diǎn)的集合即為機(jī)械臂工作空間.
蒙特卡洛法是一種基于概率統(tǒng)計(jì)的非確定性數(shù)值計(jì)算方法,因其誤差與計(jì)算維數(shù)無關(guān),常被學(xué)者們用來求解多關(guān)節(jié)機(jī)械臂的工作空間.蒙特卡洛法求解步驟如下:
步驟1建立機(jī)械臂正運(yùn)動學(xué)數(shù)學(xué)模型T,并確定機(jī)械臂各關(guān)節(jié)限位[θimin,θimax].
步驟2基于隨機(jī)函數(shù)rand(·)生成N個(gè)[0,1]間的隨機(jī)變量,并計(jì)算出各關(guān)節(jié)的隨機(jī)關(guān)節(jié)角度為
步驟3將各關(guān)節(jié)隨機(jī)值自由匹配為N組,代入正運(yùn)動學(xué)方程,獲得機(jī)械臂末端執(zhí)行器參考點(diǎn)的位置坐標(biāo)P(x,y,z).
步驟4基于機(jī)械臂基座標(biāo),繪制每個(gè)參考點(diǎn)的位置坐標(biāo),獲得機(jī)械臂工作空間的點(diǎn)云圖.
根據(jù)蒙特卡洛法生成的機(jī)械臂工作空間初始隨機(jī)點(diǎn)云Pinit以及體素網(wǎng)格法[20],將初始點(diǎn)云分割為若干矩形區(qū)域,每個(gè)矩形區(qū)域被稱為體素.體素網(wǎng)格法的具體步驟如下:
步驟1建立隨機(jī)點(diǎn)云的包圍盒.根據(jù)隨機(jī)點(diǎn)云Pinit的位置坐標(biāo)獲得Pinit在各軸向的極值xmax、ymax、zmax、xmin、ymin和zmin,并計(jì)算出點(diǎn)云各軸向長度l=|xmax-xmin|、w=|ymax-ymin| 和h=|zmax-zmin| .為了避免初始隨機(jī)點(diǎn)云沒有覆蓋到工作空間的邊界,造成工作空間的缺失,本文引入擴(kuò)展因子 φ 擴(kuò)大隨機(jī)點(diǎn)云的邊界范圍,如圖3(a)所示,并通過式(3)確定隨機(jī)點(diǎn)云的擴(kuò)展范圍長度d.
圖3 隨機(jī)點(diǎn)云的劃分和索引標(biāo)注Fig.3 Division of random point clouds and voxel labeling
式中:φ ∈[0,1],當(dāng)φ=0 時(shí),d=0,此時(shí)包圍盒不擴(kuò)展,當(dāng)φ=1 時(shí),d為包圍盒最小邊長的1/4.
擴(kuò)展因子 φ 的選擇與初始隨機(jī)點(diǎn)云的范圍相關(guān),當(dāng)初始隨機(jī)點(diǎn)云數(shù)量少,覆蓋工作空間范圍小時(shí),φ 值應(yīng)取較大值,有利于更全面地覆蓋工作空間的實(shí)際邊界;反之亦然.
通過擴(kuò)展范圍長度d確定包圍盒的實(shí)際邊界值,如式(4)所示,并建立包圍盒,如圖3(b)所示.
步驟2分割包圍盒為若干體素.根據(jù)包圍盒各軸向極值范圍,將包圍盒分別沿x、y和z軸分割為nx、ny和nz等份,如圖3(c)所示,計(jì)算出各軸向體素的邊長為lb、wb和hb,如式(5)所示,并推算出每個(gè)體素的邊界極值坐標(biāo),為后續(xù)初始隨機(jī)點(diǎn)云的劃分奠定基礎(chǔ).
步驟3標(biāo)記體素索引n.為了更好地識別每個(gè)體素的位置,提出了體素索引n的標(biāo)記規(guī)則,其中n∈{1,2,3,···}.體素標(biāo)記采用統(tǒng)一編號規(guī)則:首先,沿x軸正方向,從1 開始標(biāo)記直到最后一個(gè)體素nx;其次,沿y軸正方向移動一個(gè)體素,繼續(xù)沿x軸順序標(biāo)注,直到標(biāo)記整個(gè)底層的最后一個(gè)體素nxny;然后,沿z軸正方向移動一個(gè)體素,繼續(xù)前2 步操作,并順序標(biāo)注索引;依此類推直至標(biāo)記最后一個(gè)體素nxnynz,如圖3(d)所示.
在工作空間加密過程中,通過設(shè)置體素最低精度閾值Nε以及準(zhǔn)確加密體素內(nèi)點(diǎn)云數(shù)量的方法,使加密后機(jī)械臂工作空間內(nèi)部點(diǎn)云密度均衡的同時(shí),減少新增點(diǎn)云數(shù)量的浪費(fèi),算法1 步驟如下:
步驟1依照體素索引n,搜索體素內(nèi)初始隨機(jī)點(diǎn)云數(shù)量低于精度閾值Nε的體素,并記錄該體素內(nèi)的點(diǎn)云數(shù)量Nn.將體素索引值n的點(diǎn)云坐標(biāo)和點(diǎn)云數(shù)量Nn保存在數(shù)據(jù)庫Database_1 中;同時(shí),將體素n內(nèi)點(diǎn)云坐標(biāo)所對應(yīng)的機(jī)械臂各關(guān)節(jié)的角度值θ1、θ2、···、θi保存到數(shù)據(jù)庫Database_2 中(第1~10 行).
步驟2針對數(shù)據(jù)庫Database_1 中保留的體素索引n及該體素內(nèi)包含的點(diǎn)云數(shù)量Nn,確定出體素n所需加密點(diǎn)云數(shù)量為Nneed=Nε-Nn(第17 行).為了準(zhǔn)確加密體素內(nèi)點(diǎn)云數(shù)量,減少新增點(diǎn)云的浪費(fèi),提取數(shù)據(jù)庫Database_2 中體素n對應(yīng)所有點(diǎn)云的關(guān)節(jié)角度,并按照關(guān)節(jié)順序依次探索出體素n內(nèi)各關(guān)節(jié)的極值(第18 行).通過體素n所需加密點(diǎn)云數(shù)量Nneed和各關(guān)節(jié)的極值θimin和θimax獲得機(jī)械臂關(guān)節(jié)i的Nneed個(gè)新增關(guān)節(jié)角度值(第19 行)為
根據(jù)自由匹配原則,將式(6)隨機(jī)生成的關(guān)節(jié)角 度匹配成Nneed組,并將Nneed組關(guān)節(jié)角度值代入式(2)中,獲得機(jī)械臂正運(yùn)動學(xué)解(第20 行).
步驟3判斷新增點(diǎn)云的坐標(biāo)是否包含在體素n內(nèi),如果包括在內(nèi),則按照索引n保存在數(shù)據(jù)Database_3 中,并將點(diǎn)云所對應(yīng)各關(guān)節(jié)角度按照索引n并入數(shù)據(jù)庫Database_2(第22~25 行);如果不包括,則重復(fù)之前操作.為了避免工作空間邊界處的體素始終無法達(dá)到所需點(diǎn)數(shù)而造成的資源浪費(fèi),設(shè)置重復(fù)加密次數(shù)為2 次后停止加密運(yùn)算(第27~29 行).
算法1:均勻加密工作空間內(nèi)部點(diǎn)云密度
由于機(jī)械臂關(guān)節(jié)極值范圍的約束,機(jī)械臂工作空間邊界體素的實(shí)際有效加密范圍小于體素實(shí)際范圍,因此,邊界體素在平均加密點(diǎn)云過程中實(shí)際增加點(diǎn)數(shù)較少,造成機(jī)械臂工作空間的精度不夠準(zhǔn)確.為了提高機(jī)械臂工作空間邊界的點(diǎn)云密度和擴(kuò)展初始點(diǎn)云中沒有涉及到的機(jī)械臂工作空間邊界,提出了擴(kuò)展關(guān)節(jié)角度Je參數(shù)和最大循環(huán)次數(shù)Cm參數(shù).該加密工作空間邊界點(diǎn)云密度算法(算法2)步驟如下:
步驟1針對加密后體素內(nèi)點(diǎn)云數(shù)量仍然少于Nε的體素視為工作空間的邊界體素.依據(jù)數(shù)據(jù)庫Database_1 和Database_3 中邊界體素n所包含的點(diǎn)云數(shù)量,確定邊界體素n所需加密點(diǎn)云數(shù)量Nnneed(第3 行).如果體素n內(nèi)點(diǎn)云數(shù)量為1 時(shí),提取出體素n在數(shù)據(jù)庫Database_2 中的各關(guān)節(jié)值θi作為被擴(kuò)展關(guān)節(jié);否則,探索出該體素在Database_2 中各關(guān)節(jié)的極值θimin和θimax,并作為被擴(kuò)展關(guān)節(jié)的最大值和最小值(第9、13 行).通過擴(kuò)展關(guān)節(jié)角度Je獲得各關(guān)節(jié)擴(kuò)展后的極值θi_newmin和θi_newmax(第10、11、14、15 行)為
將各關(guān)節(jié)擴(kuò)展后的極值θi_newmin和θi_newmax代入式(6),獲得Nnneed組機(jī)械臂新增關(guān)節(jié)角度(第17 行).
步驟2由于新增關(guān)節(jié)角度是通過擴(kuò)展關(guān)節(jié)獲得,所以Nnneed組內(nèi)各關(guān)節(jié)角度不一定都符合機(jī)械臂的各關(guān)節(jié)極值范圍(如表1 所示).對于符合關(guān)節(jié)極值范圍的關(guān)節(jié)組,運(yùn)用式(2)求解機(jī)械臂正運(yùn)動學(xué)解,并將運(yùn)動學(xué)解的坐標(biāo)和解的數(shù)量按照索引n并入數(shù)據(jù)Database_3 中;對于不符合關(guān)節(jié)極值范圍的關(guān)節(jié)組,則放棄求解正運(yùn)動學(xué)解(第18~24 行).
步驟3由于邊界體素n受到機(jī)械臂關(guān)節(jié)極值的約束以及實(shí)際有效加密范圍小于體素極值范圍的影響,導(dǎo)致邊界體素的有效新增點(diǎn)云數(shù)量較少.因此,通過設(shè)置最大循環(huán)次數(shù)Cm,并結(jié)合實(shí)際增加點(diǎn)云數(shù)量與所需點(diǎn)數(shù)量Nnneed的差值,通過多次迭代增加邊界體素內(nèi)的點(diǎn)云密度及實(shí)際有效范圍,并將新增點(diǎn)云并入數(shù)據(jù)庫Database_3 中,直到實(shí)際增加點(diǎn)數(shù)等于所需點(diǎn)數(shù),或者達(dá)到最大循環(huán)次數(shù)Cm停止(第5~24 行).最大循環(huán)次數(shù)Cm還可以有效避免因擴(kuò)展關(guān)節(jié)范圍導(dǎo)致新增關(guān)節(jié)角度始終不符合機(jī)械臂關(guān)節(jié)極值范圍,而造成的算法無效循環(huán).
算法2:加密工作空間邊界點(diǎn)云密度
通過降密蒙特卡洛法可以解決工作空間內(nèi)隨機(jī)點(diǎn)云的分布不均勻和工作空間邊界模糊問題,最終達(dá)到在保證工作空間精度的同時(shí),減少新增點(diǎn)云浪費(fèi)的目的,從而提高求解工作空間的效率.
以本課題組提出的7-DOF 仿人機(jī)械臂為例,研究了降密蒙特卡洛法中各參數(shù)對機(jī)械臂工作空間精度的影響.為了獲得仿人機(jī)械臂在各軸向的實(shí)際邊界極值作為降密蒙特卡洛法的求解參照,利用蒙特卡洛法經(jīng)過多次采樣計(jì)算去趨近機(jī)械臂工作空間的邊界極限,如圖4 所示.當(dāng)隨機(jī)點(diǎn)云數(shù)量低于5 ×107個(gè)時(shí),工作空間各軸向極值點(diǎn)不具備一定的規(guī)律性,這也符合蒙特卡洛法的隨機(jī)特性;當(dāng)隨機(jī)點(diǎn)云數(shù)量大于5 × 107個(gè)時(shí),各軸向極值點(diǎn)趨于一條直線,基本可以達(dá)到真實(shí)的機(jī)械臂邊界值,但在小范圍內(nèi)仍然有隨機(jī)性波動.即使采樣隨機(jī)點(diǎn)數(shù)量達(dá)到1 ×108個(gè)時(shí),采樣工作空間的各軸向極值點(diǎn)也均未達(dá)到機(jī)械臂工作空間的實(shí)際極值點(diǎn).
圖4 蒙特卡洛法趨近工作空間邊界Fig.4 Workspace boundary approaching by Monte Carlo method
為了獲得準(zhǔn)確的工作空間邊界范圍,將圖4 中所有采樣測試點(diǎn)云在各軸向極值點(diǎn)的極值作為仿人機(jī)械臂工作空間的實(shí)際極值點(diǎn),如表3 所示.
表3 機(jī)械臂實(shí)際工作空間范圍Tab.3 Actual workspace range of robot arm m
降密蒙特卡洛法中各參數(shù)對機(jī)械臂工作空間精度影響的研究方法為通過固定其他參數(shù)數(shù)值,逐步遞增單一參數(shù)數(shù)值,獲得降密蒙特卡洛法中機(jī)械臂工作空間的各軸向極值范圍,并與表3 中實(shí)際極值范圍對比,獲得平均誤差率 εa,如式(8).
式中:xMax、xMin、yMax、yMin、zMax、zMin為機(jī)械臂工作空間各軸向?qū)嶋H極值點(diǎn).
通過平均誤差率 εa的變化規(guī)律來判斷該參數(shù)對機(jī)械臂工作空間范圍的影響程度.由于包圍盒的擴(kuò)展因子φ與機(jī)械臂的工作空間范圍相關(guān),所以選取包圍盒擴(kuò)展因子φ為固定值0.3.
首先,研究初始隨機(jī)點(diǎn)云Pinit參數(shù)對工作空間精度的影響.根據(jù)工作空間的初始范圍,初步將空間延各軸向劃分為10 個(gè)體素,即各軸向分割體素nx、ny和nz均為10;根據(jù)分割體素空間的大小,保證每個(gè)體素內(nèi)的隨機(jī)點(diǎn)云數(shù)量不少于600 個(gè),即精度閾值Nε為600;設(shè)置最大循環(huán)次數(shù)Cm為5 次,保證邊界體素內(nèi)隨機(jī)點(diǎn)云數(shù)量能更好地滿足精度閾值Nε的要求;擴(kuò)展關(guān)節(jié)角度Je為0°;并分別設(shè)置初始隨機(jī)點(diǎn)云Pinit為5×103、1×104、5 ×104、1× 105個(gè).通過降密蒙特卡洛法獲得機(jī)械臂工作空間各軸向的極值點(diǎn),如表4所示,其中,初始隨機(jī)點(diǎn)云Pinit為5×103、1 × 104、5×104、1×105個(gè),對應(yīng)總隨機(jī)點(diǎn)云數(shù)量分別為228 000、230 300、240 006、255 988 個(gè).根據(jù)表4中數(shù)據(jù)可知,隨初始隨機(jī)點(diǎn)云Pinit數(shù)量的逐步增加,其平均誤差率 εa并不具備一定的規(guī)律性,且總隨機(jī)點(diǎn)云數(shù)量增幅最小.因此,初始隨機(jī)點(diǎn)云Pinit對機(jī)械臂工作空間精度的影響不大.
表4 初始點(diǎn)云數(shù)量對工作空間精度的影響Tab.4 Influence of initial point cloud quantity on workspace precision
其次,研究包圍盒各軸向分割體素nx、ny和nz參數(shù)對工作空間精度的影響.根據(jù)Pinit對工作空間的影響不大,綜合考慮計(jì)算效率與初始工作空間點(diǎn)云覆蓋率,確定參數(shù)Pinit為5 × 104個(gè);參數(shù)Nε、Cm和Je保持原有設(shè)置,依次為600、5 次、0°;并設(shè)置參數(shù)nx、ny和nz同時(shí)依次均為6、10、14 和18.通過降密蒙特卡洛法獲得機(jī)械臂工作空間各軸向的極值點(diǎn),如表5 所示,其中各軸向分割體素6、10、14、18 對應(yīng)總隨機(jī)點(diǎn)云數(shù)量分別為1.5 × 105、2.4 × 105、7.9 × 105、1.5 × 106個(gè).根據(jù)表5 中隨各軸向分割體素?cái)?shù)量的逐步增加,其平均誤差率則表現(xiàn)出大幅減小的趨勢,且總隨機(jī)點(diǎn)云數(shù)量增加幅度較小.因此,增加各軸向分割體素nx、ny和nz數(shù)量顯著提高機(jī)械臂工作空間精度.
表5 體素?cái)?shù)量對工作空間精度的影響Tab.5 Influence of voxel quantity on workspace precision
再次,研究精度閾值Nε參數(shù)對工作空間精度的影響.參數(shù)Pinit仍為5 ×104;根據(jù)參數(shù)nx、ny和nz對工作空間精度的影響較大,選取nx、ny和nz均為18;Cm和Je分別保持為5次和0°;分別設(shè)置Nε為300、600 和900.獲得機(jī)械臂工作空間的各軸向極值點(diǎn)如表6 所示,其中,精度閾值為300、600、900 對應(yīng)總隨機(jī)點(diǎn)云數(shù)量分別為7.6 × 105、1.5 × 106、2.3 × 106個(gè).由表6 可知,隨精度閾值的逐步增加,其平均誤差率表現(xiàn)出逐漸減小的趨勢,但總隨機(jī)點(diǎn)云數(shù)量增幅較大.因此,精度閾值Nε參數(shù)對機(jī)械臂工作空間精度有一定提高.
表6 精度閾值對工作空間精度的影響Tab.6 Influence of precision threshold on workspace precision
然后,研究最大循環(huán)次數(shù)Cm對工作空間精度的 影響.Pinit仍 為5 × 104,根據(jù)Nε對工作空間精度有一定的提高,選取Nε為600;nx、ny、nz和Je保持為18 和0°,分別設(shè)置Cm為5、8、16 次.獲得機(jī)械臂工作空間的各軸向極值點(diǎn),如表7 所示,其中最大 循環(huán)次數(shù)5、8、16 次對應(yīng)總隨機(jī)點(diǎn)云數(shù)量分別為1 539 000、1 544 400、1 555 800 個(gè).根據(jù)表7,隨最大循環(huán)次數(shù)的逐步增加,其平均誤差率逐漸減小,且總隨機(jī)點(diǎn)云數(shù)量的增加并不明顯.因此,最大循環(huán)次數(shù)Cm對機(jī)械臂工作空間精度有較小的提高.
表7 最大循環(huán)次數(shù)對工作空間精度的影響Tab.7 Influence of maximum cycle number on workspace precision
最后,研究擴(kuò)展關(guān)節(jié)角度Je對工作空間精度的影響.固定Pinit=5 × 104,nx、ny和nz均為18,Nε為600;考慮到參數(shù)Cm對工作空間的影響較小,選取Cm為5 次,分別設(shè)置Je為0°、2.5°、5.0°、7.5°、10.0°和12.5°.通過3 次樣條曲線插值方法,獲得相應(yīng)參數(shù)機(jī)械臂工作空間的平均誤差率曲線和總隨機(jī)點(diǎn)云數(shù)量Nall曲線如圖5 所示,根據(jù)總隨機(jī)點(diǎn)云數(shù)量曲線可知,隨著擴(kuò)展角度的增大,總隨機(jī)點(diǎn)云數(shù)量不斷減少,這是因?yàn)殡S著擴(kuò)展角度的不斷增大,新增的關(guān)節(jié)角度組中不符合關(guān)節(jié)極限范圍的關(guān)節(jié)組就越多(如算法2),導(dǎo)致總體數(shù)量減少;根據(jù)平均誤差率曲線可知,隨著擴(kuò)展角度的增大,在0°~4° 內(nèi)平均誤差率變小,可以提高機(jī)械臂工作空間精度,但超過4° 后誤差率逐步增大,對工作空間精度提升起到反向作用.因此,擴(kuò)展關(guān)節(jié)角度Je在0°~4° 內(nèi)對機(jī)械臂工作空間精度提高較大.
圖5 擴(kuò)展關(guān)節(jié)角度對工作空間精度的影響Fig.5 Influence of extended joint angle on workspace precision
通過降密蒙特卡洛法中各參數(shù)對工作空間精度影響的研究可知:各軸向分割體素nx、ny和nz與擴(kuò)展關(guān)節(jié)角度Je對工作空間精度影響較大,其次是精度閾值Nε,最后是最大循環(huán)次數(shù)Cm和初始隨機(jī)點(diǎn)云Pinit,并不是擴(kuò)展角度Je參數(shù)越大對工作空間精度提升越明顯.因此,在使用該方法求解工作空間時(shí),需要優(yōu)先確定各軸向分割體素nx、ny、nz與擴(kuò)展關(guān)節(jié)角度Je,通過提高分割體素nx、ny、nz與設(shè)置較小的擴(kuò)展關(guān)節(jié)角度Je,使工作空間的解快速接近于精確值;其次,通過提高精度閾值Nε,增加工作空間整體密度,使工作空間的解更加接近于精確值;最后確定最大循環(huán)次數(shù)Cm和初始隨機(jī)點(diǎn)云Pinit,通過小幅調(diào)節(jié)這2 個(gè)參數(shù),使工作空間的解趨近于精確值.該方法中參數(shù)優(yōu)先級的確定和調(diào)節(jié)方式為降密蒙特卡洛法快速、準(zhǔn)確求解工作空間提供了優(yōu)選策略.
根據(jù)降密蒙特卡洛法中各參數(shù)對工作空間精度的影響程度,設(shè)置參數(shù)Pinit為1 × 105,nx、ny和nz均為23,Nε為1 200,Cm為16 次,Je為2.5°,驗(yàn)證降密蒙特卡洛法的有效性.降密蒙特卡洛法中仿人機(jī)械臂工作空間的極值范圍如表8 所示,其總隨機(jī)點(diǎn)云為6.11 × 106個(gè).相比于蒙特卡洛法中工作空間各軸向極值的極值點(diǎn),降密蒙特卡洛法的平均誤差率εa=0.022 42%,其各軸向極值點(diǎn)的誤差保持在10-4左右,精度可達(dá)0.1 mm 級,在ymin和zmin2 處極值點(diǎn)已經(jīng)超過了表3 中的參照極值點(diǎn),但總隨機(jī)點(diǎn)數(shù)卻少于1 × 108個(gè),降幅為93.89%.根據(jù)降密蒙特卡洛法中各參數(shù)對機(jī)械臂工作空間精度影響的研究可知,隨著機(jī)械臂工作空間平均誤差率的升高,該算法所需的總隨機(jī)點(diǎn)云將會大幅減少,其優(yōu)勢更加明顯.因此,降密蒙特卡洛法與蒙特卡洛方法相比,在保證工作空間精度的同時(shí),可以大幅減少點(diǎn)云數(shù)量,提高工作空間的求解效率,且通過平均誤差率驗(yàn)證了降密蒙特卡洛法的有效性.
表8 降密蒙特卡洛法中工作空間范圍及其誤差率Tab.8 Workspace range and error rate by density-reducing Monte Carlo method
根據(jù)降密蒙特卡洛法求得仿人機(jī)械臂工作空間示意如圖6 所示,從圖6 可知:7-DOF 仿人機(jī)械臂工作空間接近于球體,具有較大的工作范圍,各平面投影無空洞與空腔,工作空間邊界線平滑連續(xù).
圖6 仿人機(jī)械臂工作空間示意Fig.6 Humanoid robot arm workspace
相比于改進(jìn)蒙特卡洛法,通過設(shè)置相同的求解工作空間參數(shù),對比降密蒙特卡洛法與改進(jìn)蒙特卡洛法的差異.2 種方法中Pinit為5 × 104,nx、ny和nz均為10,Nε為600;降密蒙特卡洛法中Je為2.5°,改進(jìn)蒙特卡洛法采用體元內(nèi)的隨機(jī)點(diǎn)作為正態(tài)分布中心點(diǎn),方差為2.5°;最大循環(huán)次數(shù)Cm分別為2 次和4 次,工作空間的求解結(jié)果如表9 所示.根據(jù)表9 可知:降密蒙特卡洛法相比于改進(jìn)蒙特卡洛法在循環(huán)次數(shù)為2 次和4 次時(shí),工作空間的平均誤差率分別降低0.138 53%和0.113 29%,總隨機(jī)點(diǎn)云數(shù)量降幅分別為44.83%和64.52%,其求解耗時(shí)也大幅下降.因此,降密蒙特卡洛法相比于改進(jìn)蒙特卡洛法在保證工作空間精度的同時(shí),有效減少隨機(jī)點(diǎn)云數(shù)量的浪費(fèi),提高了求解機(jī)械臂工作空間的工作效率.
表9 降密蒙特卡洛法與改進(jìn)蒙特卡洛法對比Tab.9 Comparison between density-reducing Monte Carlo method and improved Monte Carlo method
1)分析了蒙特卡洛法和改進(jìn)蒙特卡洛法在求解機(jī)械臂工作空間時(shí)存在的不足,提出了一種降密蒙特卡洛法,該方法在保證機(jī)械臂工作空間精度的同時(shí),可以減少工作空間隨機(jī)點(diǎn)云的數(shù)量,提高求解工作空間的效率.
2)研究了降密蒙特卡洛法中各參數(shù)對機(jī)械臂工作空間的影響程度,解釋說明了各軸向分割體素nx、ny和nz與擴(kuò)展關(guān)節(jié)角度Je對工作空間精度的影響較大,需要優(yōu)先確定其參數(shù)值;精度閾值Nε參數(shù)對工作空間精度有一定的提高;最后設(shè)置最大循環(huán)次數(shù)Cm和初始隨機(jī)點(diǎn)云Pinit參數(shù).所提出方法中參數(shù)的確定優(yōu)先級,為降密蒙特卡洛法快速、準(zhǔn)確求解工作空間提供了優(yōu)選策略.
3)以7-DOF 仿人機(jī)械臂例,驗(yàn)證了降密蒙特卡洛法的有效性,為后續(xù)仿人機(jī)械臂任務(wù)規(guī)劃奠定了理論基礎(chǔ).