俎漢杰
(浙江工商大學(xué),浙江 杭州 310018)
21世紀(jì)以來,世界各國的綜合國力競爭更明確地建立在高科技水平的基礎(chǔ)上[1]。在先進(jìn)機(jī)械制造技術(shù)、現(xiàn)代控制技術(shù)以及信息技術(shù)的有力支撐下,機(jī)器人技術(shù)飛速發(fā)展,成為現(xiàn)代高科技領(lǐng)域中的重要組成部分[2]。世界上主要發(fā)達(dá)國家都大力發(fā)展機(jī)器人技術(shù),以提高生產(chǎn)率和降低人工成本,從而在激烈的國際競爭中占據(jù)有利地位。隨著綜合國力不斷增長,我國的機(jī)器人技術(shù)也飛速發(fā)展,在機(jī)器人本體制造、機(jī)器人控制以及多機(jī)器人協(xié)調(diào)等方面都取得了豐富的研究成果[3]。以機(jī)械臂為主的工業(yè)機(jī)器人是工業(yè)生產(chǎn)線和復(fù)雜場景中作業(yè)的核心單元。而執(zhí)行、高效完成復(fù)雜任務(wù)依賴多個(gè)機(jī)械臂的協(xié)調(diào)和配合[4]。因此,單個(gè)機(jī)械臂本體的設(shè)計(jì)和多機(jī)械臂協(xié)調(diào)作業(yè)的研究對(duì)提高我國機(jī)器人技術(shù)水平具有非常重要的意義。
該文的核心研究目標(biāo)是多個(gè)機(jī)械臂的協(xié)作作業(yè)。要完成該研究工作,就要依賴于單個(gè)機(jī)械臂本體的結(jié)構(gòu)設(shè)計(jì)、機(jī)械臂運(yùn)動(dòng)過程中的路徑規(guī)劃。因此,先給出單個(gè)機(jī)械臂的本體結(jié)構(gòu)設(shè)計(jì),如圖1所示。
圖1 機(jī)械臂本體的結(jié)構(gòu)設(shè)計(jì)
由圖1 可知,機(jī)械臂的主體部分是1 個(gè)三臂長的結(jié)構(gòu)。在視圖方向上,處在垂直方向上的機(jī)械臂構(gòu)成單元是第一段臂長,其長度為300 mm,寬度為60 mm;第二段臂長與第一段臂長通過第一關(guān)節(jié)O1相連,第二段臂長的長度為200 mm;第三段臂長與第二段臂長通過第二關(guān)節(jié)O2相連,第三段臂長的長度為150 mm;第一段臂長的下方配置1 個(gè)底座,底座可以直接放在運(yùn)動(dòng)小車上,從而使機(jī)械臂整體具有移動(dòng)能力,如果不需要機(jī)械臂整體具有移動(dòng)能力,就將底座放置平穩(wěn),使其具有靜態(tài)穩(wěn)定性,便于各段機(jī)械臂作業(yè);第三段機(jī)械臂的末端可以連接作業(yè)裝置,例如焊槍、機(jī)械手等,從而使機(jī)械臂具有最終的作業(yè)處理能力(要根據(jù)執(zhí)行任務(wù)的目標(biāo)來決定配置相應(yīng)的作業(yè)裝置)。
考慮機(jī)械臂在復(fù)雜場景中作業(yè),必須具有整體的移動(dòng)能力。因此,該文考慮機(jī)械臂底座安放在運(yùn)動(dòng)小車上的情況。為了確保機(jī)械臂運(yùn)動(dòng)的安全性和平穩(wěn)性,需要對(duì)配置了運(yùn)動(dòng)小車的機(jī)械臂整體進(jìn)行路徑規(guī)劃(基于人工勢場法的機(jī)器人路徑規(guī)劃)。
在移動(dòng)機(jī)器人的行進(jìn)過程中,始終要向任務(wù)目標(biāo)前進(jìn),即便因路徑可行性問題可能出現(xiàn)短時(shí)間的偏離或遠(yuǎn)離,但是總體上是不斷向目標(biāo)位置靠近的,相當(dāng)于被目標(biāo)位置吸引。在移動(dòng)機(jī)器人的行進(jìn)過程中,會(huì)遇到界限、阻擋以及動(dòng)態(tài)障礙物等。出于機(jī)器人自身安全起見,必須躲避、遠(yuǎn)離或者繞開這些界限、阻擋和障礙物。因此,這些界限、阻擋以及障礙物相當(dāng)于不斷地給移動(dòng)機(jī)器人提供排斥力。移動(dòng)機(jī)器人運(yùn)動(dòng)的過程就是在引力和排斥力的綜合作用下,不斷調(diào)整和優(yōu)化路線的過程,以確保這個(gè)路線是最短、最佳或最合理的。
基于人工勢場法的路徑規(guī)劃就是根據(jù)引力和斥力的產(chǎn)生原理,由規(guī)劃者人為地給目標(biāo)、障礙分別施加引力范圍和斥力范圍。當(dāng)然,在算法執(zhí)行的過程中,引力范圍和斥力范圍是由程序施加的。引力作用一般是終點(diǎn)位置提供給機(jī)器人的,通過程序設(shè)定也可以在場景中設(shè)置必須經(jīng)過的點(diǎn),這些點(diǎn)也為機(jī)器人提供引力作用。斥力作用就比較明顯,機(jī)器人不能行走通過的區(qū)域、必須躲避的障礙物都對(duì)機(jī)器人具有斥力作用。人工勢場法通過明確這些作用效果,在整個(gè)場景中形成明確的引力范圍和斥力范圍,再結(jié)合可以行進(jìn)的路徑信息就可以進(jìn)行路徑規(guī)劃了。
與目標(biāo)位置的引力作用效果相比,障礙物等形成的斥力作用效果對(duì)機(jī)器人的運(yùn)行安全性具有更大的影響。因此,在人工勢場法的執(zhí)行過程中,針對(duì)每個(gè)可能產(chǎn)生斥力作用效果的點(diǎn)位都要外加一個(gè)最小安全距離。當(dāng)機(jī)器人距離障礙物接近這個(gè)最小安全距離時(shí),算法就會(huì)報(bào)警,提示機(jī)器人躲避或者繞行。
從斥力的形成過程也可以明顯看出,斥力的作用效果與機(jī)器人到障礙物之間的距離是成反比的。這個(gè)距離越近,障礙物對(duì)機(jī)器人提供的排斥作用就越明顯。這個(gè)距離越遠(yuǎn),障礙物對(duì)機(jī)器人提供的排斥作用就削弱。根據(jù)上述對(duì)斥力、斥力形成過程以及斥力作用效果的分析構(gòu)建斥力函數(shù),如公式(1)所示。
式中:Wr為障礙物形成的斥力場所具有的勢能;η為障礙物形成的斥力場的特征正常數(shù);σ為移動(dòng)機(jī)器人到斥力源之間的實(shí)際距離;σ0為斥力源形成的斥力范圍的距離。
由公式(1)可知,斥力源對(duì)移動(dòng)機(jī)器人形成的斥力作用不會(huì)一直存在,當(dāng)二者之間的距離超過了斥力源的作用范圍時(shí),移動(dòng)機(jī)器人受到斥力源的斥力作用效果就是0。如果二者之間的距離恰好介于斥力源的作用范圍內(nèi),就需要根據(jù)公式(1)中的第一個(gè)算式計(jì)算移動(dòng)機(jī)器人受到的實(shí)際斥力。在這個(gè)過程中,當(dāng)移動(dòng)機(jī)器人和斥力源的距離接近0 時(shí),移動(dòng)機(jī)器人受到斥力源的作用效果將達(dá)到最大。
構(gòu)建人工勢場法的基礎(chǔ)包括斥力源的斥力作用以及目標(biāo)位置、必經(jīng)點(diǎn)所提供的引力作用。從算法的角度來看,為了確保移動(dòng)機(jī)器人不偏離正確的行駛位置,移動(dòng)機(jī)器人距離引力源的距離越遠(yuǎn),引力源所提供的引力就越大。根據(jù)上述對(duì)引力、引力形成過程以及引力作用效果的分析構(gòu)建引力函數(shù),如公式(2)所示。
式中:Wa為目標(biāo)位置、必經(jīng)點(diǎn)對(duì)移動(dòng)機(jī)器人所形成的引力場的勢能;Ka為引力源形成的斥力場的特征正常數(shù);X為移動(dòng)機(jī)器人在整個(gè)場景中所在的實(shí)際位置;Xg為移動(dòng)機(jī)器人需要到達(dá)的目標(biāo)位置;σ(X,Xg)為移動(dòng)機(jī)器人的當(dāng)前實(shí)際位置和目標(biāo)位置或必經(jīng)點(diǎn)之間的距離,σ(X,Xg=|X-Xg);Fa為移動(dòng)機(jī)器人受到的實(shí)際的吸引力,F(xiàn)a=Ka×σ(X,Xg)。
引力源給移動(dòng)機(jī)器人提供的引力作用效果的方向始終是指向目標(biāo)位置的。當(dāng)機(jī)器人距離目標(biāo)位置較遠(yuǎn)時(shí),引力的作用效果就比較大。隨著機(jī)器人越來越靠近目標(biāo)位置,這個(gè)引力的作用效果就不斷變小。當(dāng)機(jī)器人到達(dá)目標(biāo)位置時(shí),這個(gè)引力作用效果降至0。
通過復(fù)雜場景下多機(jī)械臂在移動(dòng)中完成協(xié)作作業(yè)的試驗(yàn)來驗(yàn)證該文研究工作的有效性。
為了完成移動(dòng)機(jī)器人作業(yè)的可視化研究,選擇C++程序設(shè)計(jì)語言結(jié)合OpenGL 的融合開發(fā)技術(shù)。OpenGL 是行業(yè)領(lǐng)域中最廣泛接納的2D/3D 圖形API。OpenGL ?是獨(dú)立于視窗操作系統(tǒng)或其他操作系統(tǒng)的,也是網(wǎng)絡(luò)透明的。在CAD、內(nèi)容創(chuàng)作、能源、娛樂、游戲開發(fā)、制造業(yè)、制藥業(yè)以及虛擬現(xiàn)實(shí)等行業(yè)領(lǐng)域中,OpenGL ?幫助程序員在PC、工作站以及超級(jí)計(jì)算機(jī)等硬件設(shè)備上開發(fā)高性能、極具沖擊力的高視覺表現(xiàn)力圖形處理軟件。
在OpenGL 的基礎(chǔ)上還有OpenInventor、Cosmo3D 以及Optimizer 等多種高級(jí)圖形庫。其中,OpenInventor 應(yīng)用最廣泛,該軟件是基于OpenGL 面向?qū)ο蟮墓ぞ甙?,提供?chuàng)建交互式3D 圖形應(yīng)用程序的對(duì)象和方法,提供了預(yù)定義的對(duì)象和用于交互的事件處理模塊,創(chuàng)建和編輯3D 場景的高級(jí)應(yīng)用程序單元,具備打印對(duì)象和用其他圖形格式交換數(shù)據(jù)的能力。
復(fù)雜場景下多器人協(xié)作完成物料搬運(yùn)的仿真結(jié)果如圖2所示。由圖2 可知,場景中存在復(fù)雜的障礙信息(用多個(gè)圓錐表示)。場景中同時(shí)存在3 個(gè)機(jī)械臂,被抓取和搬運(yùn)的物料是1 根長度較長的圓柱形物料。如果1 個(gè)機(jī)械臂搬運(yùn),就無法保持平衡。根據(jù)作業(yè)任務(wù)的難度,最后選擇2 個(gè)機(jī)械臂完成抓取任務(wù)。
圖2 仿真試驗(yàn)場景一
在抓取物料后,2 個(gè)相互配合的機(jī)械臂要通過路徑規(guī)劃離開復(fù)雜的場景,結(jié)果如圖3所示。
圖3 仿真試驗(yàn)場景二
對(duì)比圖2 和圖3 可知,背景場景、障礙信息都沒有發(fā)生變化,2 個(gè)協(xié)作配合的機(jī)械臂在底座下配置運(yùn)動(dòng)小輪并基于人工勢場法的路徑規(guī)劃成功地躲避障礙,而長圓柱形物料也一直平穩(wěn)地把持在2 個(gè)機(jī)械臂的手爪中。
通過這組仿真試驗(yàn)充分證明了該文設(shè)計(jì)的機(jī)械臂本體結(jié)構(gòu)的合理性、路徑規(guī)劃方法的有效性、多機(jī)械臂完成協(xié)作作業(yè)和躲避障礙行進(jìn)的技術(shù)可行性。
機(jī)器人技術(shù)是代表時(shí)代發(fā)展方向的關(guān)鍵科學(xué)技術(shù),是衡量機(jī)械制造業(yè)、控制技術(shù)發(fā)展水平以及國家綜合科技實(shí)力的重要標(biāo)尺。該文設(shè)計(jì)了1 個(gè)三分段機(jī)械臂的本體結(jié)構(gòu),并基于人工勢場法分別構(gòu)建了斥力函數(shù)和引力函數(shù),為機(jī)器人作業(yè)過程中的路徑規(guī)劃奠定了基礎(chǔ)。在仿真試驗(yàn)的過程中,以復(fù)雜場景為作業(yè)背景,以3 個(gè)可移動(dòng)的機(jī)械臂協(xié)作作業(yè)為試驗(yàn)對(duì)象。試驗(yàn)結(jié)果表明,該文設(shè)計(jì)的機(jī)械臂結(jié)構(gòu)合理,多機(jī)械臂協(xié)作作業(yè)較好地完成了復(fù)雜場景下的物料抓取和搬運(yùn)任務(wù)。