周穎娟,周 波,何家健,玄甲輝
(1.東南大學 自動化學院,江蘇 南京 210096;2.江蘇自動化研究所 機器人事業(yè)部,江蘇 連云港 222000)
大型船舶長期處于呈堿性的海水中,不停地受到海水的沖刷,因此對船舶表面的涂層質量有著較高的要求。目前船舶制造業(yè)中大多使用人工噴涂的方法對船舶表面進行噴涂作業(yè),工人工作量大、工作環(huán)境惡劣且工作時間長,雖然噴涂效果基本能夠滿足噴涂要求,但是受人為因素影響較大,噴涂質量難以保障[1]。隨著工業(yè)機器人的快速發(fā)展,如果能夠利用機器人的優(yōu)勢,將噴涂機器人應用于大型船舶復雜表面的噴涂作業(yè),一定能夠改善工人工作環(huán)境,提高噴涂效率和涂層質量[2]。
工業(yè)機器人編程方式分為人工示教和離線編程兩種方式。人工示教編程方式需要機器人暫停作業(yè),要求操作人員有一定的經(jīng)驗技術,也難以實現(xiàn)較為復雜的運動軌跡[3],同時,使用在線示教進行大規(guī)模船舶外立面噴涂仍然需要操作人員高空作業(yè),存在著安全隱患。因此,人工示教編程已經(jīng)難以滿足工業(yè)生產(chǎn)要求。離線編程方式中技術人員無需對實際作業(yè)的機器人直接進行示教,而是通過軟件,間接遠程地進行軌跡規(guī)劃,編程過程中無需機器人暫停作業(yè),且能夠將人從惡劣的工作環(huán)境中解放出來,節(jié)約工作時間、提高噴涂效率[4]。
現(xiàn)有商業(yè)離線編程軟件一般由機器人廠商配套自己生產(chǎn)的機器人推出,如西門子公司開發(fā)的RobCAD,瑞士ABB公司所發(fā)布的RobotStudio[5],歐洲的FANUC和以色列的CompuCraft合作開發(fā)的FanucWorks離線編程軟件和RoboGuide離線編程系統(tǒng),德國KUKA機器人的KUKASim軟件模塊等。
然而,針對這種大型復雜船舶曲面,現(xiàn)有離線編程軟件存在以下問題:(1)船舶外立面噴涂工藝復雜、曲率變化多樣,現(xiàn)有的軌跡規(guī)劃算法無法滿足噴涂要求;(2)由于不同的機器人控制器中內(nèi)置了不同的機器人語言,針對不同機器人廠家需要使用不同的離線編程軟件,離線編程的通用性有待提高。
為解決以上問題,該文分別對非球形腕機器人正逆運動學解、區(qū)域分割、軌跡規(guī)劃、中間語言系統(tǒng)及后置處理等進行了研究,提出了一種針對大型船舶表面噴涂作業(yè)的離線編程與仿真系統(tǒng),實現(xiàn)了從工件導入到基于工件特點進行區(qū)域分割再到軌跡規(guī)劃生成中間語言程序最后轉換為機器人程序的完整流程,并設計實驗針對不同特點的工件進行了噴涂仿真。
針對大型船舶的噴涂作業(yè),項目中使用的噴涂機器人是川崎KJ264地面式噴涂機器人。該機器人CAD模型圖如圖1(a)所示。該噴涂機器人為六自由度機器人,有7個連桿,從基座開始標記為0,下一個連桿記作1,以此類推,每一個連桿固連一個坐標系用來描述其相對運動。完成噴涂作業(yè)首先要對機器人進行運動學建模,針對KJ264采用DH參數(shù)法[6]完成其運動學建模和正逆解計算,則相鄰連桿之間的關系為:
(1)
其中si=sinθi,ci=cosθi,λi=cosαi,μi=sinαi,ai為連桿長度,αi為連桿扭轉角,di為關節(jié)偏距,θi為關節(jié)旋轉角。連桿坐標系建立完成后,即可確定機器人運動學方程:
0T6=0T1·1T2·2T3·3T4·4T5·5T6
(2)
設計的機器人機構圖如圖1(b)所示,具體D-H參數(shù)見表1。其中a1=140.0,a2=1 100.0,a3=0,d4=1 400.0,d5=100,d6=105,β=60.0°。
(a)KJ264 CAD模型圖
表1 KJ264 D-H參數(shù)
逆解問題是運動學建模中的較為復雜的環(huán)節(jié),它是將給定的位置姿態(tài)轉換成為一組關節(jié)角。對于4、5、6三個關節(jié)軸線軸交于一點,滿足piper條件[7]的機器人,其逆運動學位置和姿態(tài)是解耦的,可求得其解析解;而對于不滿足該條件的機器人,其逆運動學無封閉形式解析解。
從圖1(b)可以看出KJ264手腕三個關節(jié)軸線Z3、Z4和Z5不相交于一點,不滿足piper條件,因此該機器人逆運動學無解析解。該文采用雅可比偽逆法[8-10]對其求運動學逆解。該方法實現(xiàn)簡單,在求解關節(jié)角時會依賴于前一個位姿,而在機器人作業(yè)中,前后兩個位姿相差不會過大,由前一個位姿只需要經(jīng)過少量迭代次數(shù)就可以到后一個位姿,因此使用雅可比偽逆法解決運動學中的逆運動學問題可以很好地滿足實時性以及精度要求。
該文設計了針對大型船舶表面的噴涂機器人離線軌跡規(guī)劃與仿真系統(tǒng),該系統(tǒng)的主要功能有:工件導入,針對工件各自的特點進行區(qū)域分割,軌跡規(guī)劃,生成中間語言程序,后置處理生成實際機器人程序,完整的系統(tǒng)流程如圖2所示。
圖2 系統(tǒng)流程
船舶曲面一般幾何形狀比較復雜,部分區(qū)域彎曲程度較大[11],而現(xiàn)有的噴涂模型都只適合用于彎曲程度比較小的曲面,針對船舶表面這種曲面,由于涂料的擴散等作用,所建立的噴涂模型會產(chǎn)生較大誤差。因此,對幾何形狀較為復雜的曲面進行區(qū)域分割,使得每個區(qū)域的彎曲程度均滿足要求。曲面的彎曲程度主要包括兩個方面:一是相鄰位置的彎曲程度,即局部高斯曲率值的大小;二是整個曲面上的彎曲程度,即整個曲面上的高斯曲率和的大小。對于彎曲程度不高的曲面要保證這兩個方面都不會過大。
該文使用三角片格式表示工件模型,該格式中,工件表面由許多三角片構成,而工件的曲率可以由三角片法向量之間的夾角表示。因此,采用基于區(qū)域生長的雙背離角區(qū)域分割算法[12]將其分為幾個曲率滿足要求的子區(qū)域。該算法的基本思想是以一個三角形為中心,向周圍三角形延伸,在延伸過程中,確保該區(qū)域內(nèi)所有相鄰三角形法向量之間的夾角小于定值β1;同時,區(qū)域內(nèi)任意兩個三角形法向量之間的夾角小于定值β2。如圖3所示,粗線部分為已合并區(qū)域S,記待判斷三角形為k,其法向量為nk,k在區(qū)域S內(nèi)所相鄰的三角形法向量為ni,區(qū)域內(nèi)任意三角形的法向量為nj,則每個子區(qū)域應滿足以下要求:
圖3 三角形延伸示意圖
S={Tk|acos-1(nk,ni)≤β1,acos-1(nk,nj)≤β2}
(3)
工件表面各點的噴涂效果除了與模型本身有關外,還和噴槍的移動速度v和行程間距d有關,這樣便可以建立d和v的優(yōu)化問題。在考慮噴涂效果時,主要考慮涂層的厚度和涂料的均勻性。因此,以涂層期望厚度和涂料均勻性為目標建立優(yōu)化目標函數(shù)。目標函數(shù)如下:
(4)
約束條件為:
v≤vmax,0≤d≤2R,qavg=qd
(5)
在建立了優(yōu)化問題之后,采用黃金分割法軌跡間距及噴涂速度等噴涂參數(shù)進行尋優(yōu)。
噴涂參數(shù)確定后,根據(jù)這些參數(shù)使用bounding-box包圍盒算法進行軌跡規(guī)劃,確定噴槍在待噴涂表面的軌跡。該算法是利用曲面的外包盒進行軌跡規(guī)劃,首先對曲面建立最小包圍盒,選取包圍盒的一個面作為特征面,再求取特征平面平行面與曲面的交線,然后在交線上等距采樣點,最后連接采樣點從而獲得軌跡。該算法針對平面工件和曲面工件均可使用,適用范圍較廣。
不同區(qū)域規(guī)劃得到的軌跡需要進行優(yōu)化連接成為工件表面的完整路徑。該文以得到最短軌跡長度為優(yōu)化目標,將軌跡組合連接問題建模為一個廣義旅行商問題(GTSP),從而將問題轉化為尋找一條最優(yōu)哈密頓通路,該通路能夠遍歷所有點群(每個點群包含兩個點,對應區(qū)域分割后每個子區(qū)域內(nèi)軌跡的兩個端點),僅訪問每個點群兩個端點中的任意一個且只能訪問一次,并采用蟻群算法完成噴涂路徑的排序和連接。
不同廠商的機器人控制器所適用的編程語言一般不同,分屬各廠商的離線編程軟件只能支持自己的語言[13]。當需要使用不同機器人進行離線編程時就要購買多個離線編程軟件,學習成本、購買成本都比較高。因此,該文設計了中間語言及后置處理子系統(tǒng),使得本系統(tǒng)最終生成的程序能夠直接應用于大多數(shù)型號的機器人,從而提高系統(tǒng)的實用性和兼容性。
中間語言子系統(tǒng)[14-15]的設計參考了工業(yè)機器人用戶編程指令中華人民共和國國家標準GB/T 29824-2013,將中間語言分為指令段、偽指令段和數(shù)據(jù)段三部分,其中指令段是中間語言的主體部分,用于實現(xiàn)各種運動控制功能以及輔助功能,包含運動指令、系統(tǒng)指令、控制指令、運算指令等;偽指令用來描述程序的功能屬性及結構信息等;數(shù)據(jù)段的功能是提供機器人的位置點信息,主要由類型,坐標系,名稱,坐標等單元組成。整個中間語言編譯系統(tǒng)分為兩個部分:詞法分析、語法分析,其中詞法分析將整個程序的字符序列解析為單詞序列,主要合法單詞包括關鍵字、變量名等;語法分析用于判斷中間語言程序是否合乎語法規(guī)則。
為了使得本系統(tǒng)生成的程序能直接適用于機器人,還設計了后置處理子系統(tǒng),通過該子系統(tǒng),經(jīng)過仿真驗證的中間語言程序能夠被轉換為實際所使用的機器人支持的語言程序,轉換后機器人語言程序可通過調(diào)用機器人提供的API傳輸?shù)綑C器人控制器中。
為驗證上述系統(tǒng)的有效性,采用C++編程語言對SolidWorks2014[16]進行二次開發(fā)生成動態(tài)鏈接庫,系統(tǒng)總共分為兩部分,通用編程與仿真模塊以及機器人噴涂作業(yè)模塊。
針對普通工件,所設計的噴涂場景如圖4所示,船舶工業(yè)中噴涂作業(yè)的工業(yè)級要求與仿真結果的比較如表2所示。設置膜厚為50 μm,噴涂仿真所得的實際平均膜厚為51.94 μm,標準偏差為1.53 μm,覆蓋率為99.80%,均大幅度優(yōu)于工業(yè)要求。
圖4 噴涂場景
表2 項目需求與仿真結果對比
此外,按照船舶表面部分區(qū)域彎曲程度較大的特點,設計了一個幾何形狀復雜的工件模型。使用該系統(tǒng)對其進行區(qū)域分割、路徑規(guī)劃,具體結果如圖5所示。圖5(b)為使用雙背離角區(qū)域分割算法進行區(qū)域分割的結果,該工件被分為了四塊曲率較小的區(qū)域。圖5(c)對區(qū)域1使用Bounding-box算法規(guī)劃的效果,工件表面的路徑即為機器人軌跡,方塊點及點上的坐標系體現(xiàn)了機器人的軌跡點以及機器人在該點的位姿。圖5(d)是將各區(qū)域軌跡連接組合形成的最終軌跡。
圖5 針對曲率變化復雜的工件的軌跡規(guī)劃效果
大型船舶工件尺寸較大,設計了長、寬、高為30 m*8 m*8 m的船舶模型,如圖6(a)所示。該模型和實際船舶類似,有著船艏、船艉曲率大,中間接近大直面的特點。仿真實驗結果如圖6所示,由于該工件較大,完整的軌跡圖中的軌跡過于密集,因此圖6(c)選取了區(qū)域1及區(qū)域2的部分軌跡展示實驗結果。
圖6 針對船舶外立面的軌跡規(guī)劃結果
由此可以看出,所提出的系統(tǒng)針對不同工件均得出了正確的噴涂路徑,且噴涂效果遠高于工業(yè)需求,證明了該方法的有效性。
針對大型船舶噴涂作業(yè)設計了完整的離線編程與仿真系統(tǒng),對非球形手腕機器人運動學逆解、區(qū)域分割、軌跡規(guī)劃、中間語言及后置處理進行了詳細的研究。在此基礎上基于SolidWorks和Visual Studio開發(fā)了針對大型船舶表面噴涂作業(yè)的離線編程與仿真軟件。將該軟件應用于普通工件、彎曲程度較大的工件、外形復雜的船舶表面等不同工件,均能生成正確的路徑,達到了提高噴涂效率、改善噴涂效果的目的,驗證了該系統(tǒng)的有效性和通用性。
針對船舶工件,船艏船艉連接處、區(qū)域分割后各子區(qū)域連接處的膜厚控制還需做進一步研究。