呂健安
(惠州學(xué)院美術(shù)與設(shè)計學(xué)院,惠州 516007)
近年來,在工業(yè)自動化方面的發(fā)展趨勢是進一步模擬和控制工業(yè)機器人任務(wù),使其更加系統(tǒng)和有效的工作[1]。采用傳統(tǒng)方式對機器人任務(wù)進行編程和開發(fā)是非常繁瑣和耗時的,通常需要專業(yè)級的操作者才能完成,這也成為了制約中小制造企業(yè)使用機器人提高生產(chǎn)效率的主要因素[2]。因此,使用更加簡單、廉價和先進的技術(shù)來開發(fā)機器人任務(wù)成為當下的現(xiàn)實需要。在過去20年里,對計算機輔助設(shè)計的開發(fā)一般是通過真人示教完成的[3]。將計算機輔助設(shè)計(CAD)和專家知識庫結(jié)合起來,再進行系統(tǒng)化編程,可以極大提高制造企業(yè)在技術(shù)應(yīng)用上的自動化和通用性,使工業(yè)產(chǎn)品設(shè)計和機器手程序能夠無縫整合,推動現(xiàn)代工業(yè)向前發(fā)展。
目前,工業(yè)機器人系統(tǒng)廣泛使用CAD和嵌入式知識來設(shè)計機械臂,通過模擬操縱者的動作來實現(xiàn)機械臂的自動化[4]。但這些系統(tǒng)大都需要額外的軟件包和專用模塊來進行機器人任務(wù)的開發(fā),無法使用標準的CAD軟件包,由此大大增加了用戶的建模難度和使用成本[5]。通過將標準CAD機器人系統(tǒng)與CAD軟件相結(jié)合的方式,能較好的解決上述問題,它不僅能簡化使用方式,還能使用戶直觀地和機械臂進行交互,基于此,本研究提出一種基于標準CAD專家?guī)斓墓I(yè)機器人仿真平臺,該平臺能讓用戶按步驟來實現(xiàn)預(yù)期目標,如任務(wù)定義、機械臂的三維設(shè)計、可訪問性驗證、任務(wù)執(zhí)行時間優(yōu)化、圖形仿真、碰撞檢測等。本研究的目的是通過整合機器人系統(tǒng)和標準CAD專家知識庫,簡化CAD機器人仿真任務(wù)開發(fā)。
以SolidWorks為例,SolidWorks API作為一種CAD開發(fā)工具,已經(jīng)被廣泛應(yīng)用于設(shè)計和模擬各種工業(yè)級機械臂的軌跡運行[6]。比如,SolidWorks API可以提供基于真實機器人單元的三維模型來計算任務(wù)參數(shù)。同時,利用集成開發(fā)環(huán)境,參數(shù)的修改和重載也可以和用戶進行友好的交互[7]。本研究使用產(chǎn)品生命周期管理軟件(PLM)為SolidWorks API的應(yīng)用開發(fā)一系列步驟平臺可以對相關(guān)工業(yè)級任務(wù)進行仿真和驗證?;诒狙芯吭O(shè)計的平臺,用戶只需基本的機器人知識就能生成并控制機械臂的運動,實現(xiàn)和機械臂的交互,平臺工作流程如圖1所示。
1.1.1 數(shù)據(jù)采集
數(shù)據(jù)采集是機械臂離線編程的關(guān)鍵步驟,它基于各個機械臂組成部分物理模型的虛擬呈現(xiàn),本研究開發(fā)了一種CAD學(xué)習(xí)算法,它可以從虛擬環(huán)境中提取相關(guān)數(shù)據(jù)構(gòu)建三維模型,這種方式除了能實現(xiàn)任務(wù)定義之外,還能更好的將虛擬機械臂和任務(wù)進行綁定,讓它們協(xié)同工作。
1.1.2 環(huán)境相關(guān)的三維建模過程
圖1 SolidWorks GUI仿真流程圖
三維建模:利用CAD組件,各機器構(gòu)成單元可以基于體或面進行三維建模,這些組件包括,機械臂模型庫、末端執(zhí)行器、三維任務(wù)模型以及環(huán)境對象等[8]。一般而言,按體建模的機器臂的工作空間比按面建模的具有更多的幾何信息。不過,輔助三維對象也可以根據(jù)特定的需求進行面建模,值得注意的是,實際工作中以上對象的數(shù)據(jù)表示在精度上要比數(shù)據(jù)獲取仿真原型更高。
任務(wù)定義:自動化任務(wù)可以表示為二維或三維的點集,然后通過機床的末端執(zhí)行器訪問。點集軌跡可以分為兩種:離散型和連續(xù)型。離散型的軌跡任務(wù)包括點焊和鉆孔,連續(xù)型軌跡任務(wù)包括弧焊、激光切割、噴繪和拋光等[9]。
機械臂模型庫:該平臺包括整套機器人操縱器,這些操縱器的三維模型已經(jīng)整合進了SolidWorks的標準模型庫。同時,為了便于對新型機械臂模型進行整合,平臺保持接口開放。此外,為了便于在特定的虛擬場景中運行,該模型庫還包含了一些其他輔助模型,如:點焊工具、傳輸工具、表工具、鉆具、干燥工具、噴槍工具等。
1.2.1 智能軟件和VBA
智能軟件技術(shù)基于程序或控件集(如VBA)而開發(fā),程序或控件集的核心是嵌入到CAD模型中的專家知識,這些技術(shù)是構(gòu)成現(xiàn)代PLM系統(tǒng)的核心[9]。利用VBA通用控件,許多PLM系統(tǒng)都能實現(xiàn)機械行為的自動化,如CATIA、SolidWorks以及AutoCAD的二次開發(fā),因此,在工業(yè)仿真平臺上,可以認為對模型進行實質(zhì)操作的是以VBA為代表的控件集中關(guān)于裝配和運動學(xué)的相關(guān)算法。
1.2.2 學(xué)習(xí)過程
本研究平臺基于SolidWorks的VBA插件運行,目的是根據(jù)式(1)給出的任務(wù)定義,從圖像區(qū)域中提取軌跡s的實質(zhì)性轉(zhuǎn)換條件。
Ti表示末端執(zhí)行器坐標系統(tǒng)w.r.t.機器人基本框架的齊次矩陣。在Ti中,當最后一列向量通過賦值給出點集位置時,機械臂的運行方向就可以通過左上四階矩陣計算得到。
本研究平臺操作較為簡單,學(xué)習(xí)過程通過GUI接口優(yōu)化整合。首先,平臺需要一個有關(guān)任務(wù)的CAD三維模型和末端執(zhí)行器三維模型,其細節(jié)可以通過應(yīng)用程序的主GUI描述,用戶可以通過使用本平臺的GUI或SolidWorks自帶GUI來操作X、Y和Z軸,從而在圖形區(qū)域中移動末端執(zhí)行器的三維模型。
第一步,用戶需要獲取用于從圖形區(qū)域?qū)W習(xí)的關(guān)鍵信息,比如點(例如N點)坐標,機械臂將在這里進行鉆、點、焊等各種操作。我們需要從這些信息中提取每個點的方向,作為點所在表面的法向,以上數(shù)據(jù)最終表示為由4位二進制序列,3位表示位置,1位表示方向,這些數(shù)據(jù)可以用于下一階段的智能學(xué)習(xí),同時以偽代碼的形式轉(zhuǎn)換為P2P軌跡過程中涉及的步驟序列。
第二步,用戶需要在虛擬環(huán)境中調(diào)整末端執(zhí)行器的三維模型。該平臺在GUI環(huán)境下,可以對所有可能軸向的末端執(zhí)行器,進行替換和旋轉(zhuǎn)。在涉及如抓取等點對點(P2P)的軌跡任務(wù)時,此過程則要在兩個位置先后進行:預(yù)抓取與正式抓取位置。針對每個位置,我們都會得到一個式(2)中給出的變換矩陣,用于之后的軌跡規(guī)劃。
要實現(xiàn)精確完成工業(yè)任務(wù),仿真機器人至少必須能夠到達所有由用戶定義的任務(wù)點,因此,平臺必須對任務(wù)點的可訪問性進行驗證。在本研究中,任務(wù)的可訪問性驗證由工作空間的三維模型生成、任務(wù)點的表示和最后的干擾檢查三部分共同完成。
仿真策略的主要內(nèi)容包括任務(wù)點和工作空間。機器人操縱器工作空間的三維形態(tài)由其功能決定,包括DH設(shè)計參數(shù)、連桿長度和關(guān)節(jié)的運動范圍。由于多數(shù)操縱器都是前三個關(guān)節(jié)用于物體定位,后三個關(guān)節(jié)用于控制方向,因此本研究重點考慮對生成工作空間三維模型起決定作用的前三個關(guān)節(jié)[10]。通過與第一關(guān)節(jié)的配合,第二和第三關(guān)節(jié)主要可以在垂直平面上繪制草圖,第一關(guān)節(jié)通過擠壓和旋轉(zhuǎn),也可以用作體的創(chuàng)建,以上這些工作必須在SolidWorks API中事先定義,以達到生成精確三維模型的目的。利用相關(guān)算法,可以描述生成工作空間所涉及的主要步驟。另外,平臺還需通過一個虛擬三維容器來完成對所生成空間的有效性驗證。
各種操作任務(wù)的可達性與機械臂可訪問關(guān)節(jié)域的位置和方向成正比,通過SolidWorks的API函數(shù),GUI利用任務(wù)點的幾何特征和操縱器的三維工作空間模型來檢測干擾,干擾利用多個平行四邊形臨時物體進行檢測,前者圍繞任務(wù)點和機械臂工作空間創(chuàng)建,以觀察機器人是否能到達任務(wù)點[11]。如果任務(wù)點不可達,該平臺的圖形可訪問性驗證過程可以重新定義任務(wù)或重新定義機器人的DH參數(shù),直到任務(wù)完成。檢查任務(wù)可達性的步驟包括:
1)從CAD模型中獲取任務(wù)點數(shù)據(jù);
2)圍繞任務(wù)點創(chuàng)建虛擬三維對象;
3)通過持續(xù)位移到任務(wù)點位置來導(dǎo)航工作空間的三維模型;
4)在目標點和工作空間三維模型中檢測干擾。
考慮到建立一個包含完成機器人任務(wù)所有必要階段工業(yè)框架的復(fù)雜性,本研究需要對仿真平臺進行時間優(yōu)化,用以提高仿真工作效率。
在機械化制造工廠里,完成一項特定任務(wù)的周期時間取決于機械臂關(guān)節(jié)之間的連接距離,前者又與末端執(zhí)行器所需遍歷任務(wù)點的順序有關(guān)。
點集的位置可以映射為坐標空間中機械臂的動作軌跡,最終讓機械臂完成特定任務(wù),因此,優(yōu)化中可以考慮利用遍歷距離表示機械手臂的逆運動學(xué)模型IKM函數(shù)。實際上,優(yōu)化問題可轉(zhuǎn)換為一個在每兩個連續(xù)的軌跡點之間尋找最小距離的問題,而且,機械臂逆運動學(xué)模型節(jié)點的任何最優(yōu)解還受機械臂位置和方向的影響,因此,本研究提出一種包含目標函數(shù)的算法,它包含了任務(wù)點的實現(xiàn)順序、每個任務(wù)點機械臂的逆運動學(xué)模型、以及在操作器和任務(wù)點之間的相對位置和方向,最后,根據(jù)關(guān)節(jié)在各連續(xù)點之間的位移和對應(yīng)關(guān)節(jié)的平均速度,計算出最小周期時間。
如果是一個包含n自由度(degree of freedom)的操縱器,那么在任務(wù)空間中則必須訪問n個離散點[12]。操縱器必須在任務(wù)完成后返回初始位置,關(guān)節(jié)空間和操作空間之間的函數(shù)關(guān)系可以用式(3)來表示。
機器人從k點到k+1點所花費的任務(wù)時間由式(4)定義:
其中的m=1,2,…,n表示在任務(wù)點k-1可能的IKM配置序號,l=1,2,…,n表示在任務(wù)點k可能的IKM配置序號。
σ用于表示操縱器任務(wù)點的相對位置和方向,同時也用于確定從任務(wù)幀到固定幀的轉(zhuǎn)換方式,rj是第j個關(guān)節(jié)的平均速度。任務(wù)所需總周期時間由式(5)給出。
其中的N+1表示每兩個連續(xù)配置之間的位移量,以及回歸到初始配置的次數(shù),初始配置與任務(wù)點無關(guān)。完整的任務(wù)時間優(yōu)化函數(shù)可表示如下:
由式(6)所給出的最小周期時間tmin的計算需要對所有可能的解進行仔細檢驗,因為它是各種變量的函數(shù)。該函數(shù)的參數(shù)數(shù)量眾多,關(guān)聯(lián)解決方案的數(shù)量龐大,因此,會大大增加函數(shù)計算的復(fù)雜性。
一個操縱器逆運動學(xué)模型配置的標準6自由度的數(shù)量是24,通過操縱器最后三個關(guān)節(jié)的軸相交,可以把數(shù)量降至16。由此,在每個任務(wù)點可能的IKM配置可以定義為2d,其中d從1、2、3、4四個數(shù)中選取,所有任務(wù)點的IKM配置數(shù)量為(2d)N。任務(wù)點排列的可能數(shù)由N!決定,考慮到問題的對稱性,以及操縱器w.r.t的位置和方向的數(shù)量和用以進行區(qū)域采樣的網(wǎng)格數(shù)有關(guān),任務(wù)點的數(shù)量可以減少到一半,例如,同樣四個任務(wù)點,訪問順序1-2-3-4與4-3-2-1相同。
遺傳算法(GA)是一種尋找最優(yōu)解的全局搜索算法,主要受到自然選擇機制的啟發(fā)而得名[13]。在本研究提出的方法中,每個染色體由四個相互連接的部分組成:點的訪問順序,每個點上操縱器逆運動學(xué)模型(IKM)的配置,點的相對位置以及點的方向,然后根據(jù)目標函數(shù)(6),選取近似最優(yōu)解。其中任務(wù)點的訪問順序由整型字母進行編碼,以避免突變操作中的未知沖突。
為了輔助遺傳優(yōu)化,本研究還開發(fā)了一種特定算法來糾正在交叉操作中導(dǎo)致相同基因的二進制位。對于操縱器的逆運動學(xué)模型(IKM)配置及其相對位置和方向,選擇相應(yīng)的二進制序列進行編碼表示。從遺傳算法的角度來講,本研究平臺的可選種子數(shù)量范圍從6到1萬。優(yōu)化過程依賴于式(6)所給出的目標函數(shù),該函數(shù)基于每個解,即染色體,能產(chǎn)生的周期時間,然后,平臺再對具有高度適應(yīng)性的最小時間解決方案,進行復(fù)制。
選擇約束基于等級,在該等級中,10%的最優(yōu)秀基因序列保持不變,從而使遺傳既不發(fā)生突變,也不會將之前的突變遺傳到下一代,以保證最好的解決方案得到保留。通過在平臺相應(yīng)位置定義的交叉變異概率,可以對與剩余種群相對應(yīng)的染色體進行復(fù)制。實際操作過程中,單點獨立交叉比兩點交叉表現(xiàn)更優(yōu)秀,因為兩點交叉容易產(chǎn)生非均勻的染色體,容易導(dǎo)致檢索最小時間解決方案失敗。
為了檢驗仿真優(yōu)化效果,我們對該平臺的點焊和噴繪功能分別進行了仿真測試。從對工業(yè)車身實施的總計4個點的點焊仿真情況來看,該平臺能夠找到涉及點焊精度的六個主要參考點X、Y、Z、θ、ψ、φ的最優(yōu)坐標值(本例中,分別是170.35mm、172.42mm、315.12mm、83.72°、178.47°和217.36°),實現(xiàn)點焊的精確仿真。從對工業(yè)車門的噴繪過程仿真情況來看,在忽略放置位置和定向區(qū)域的前提下,在給定一個固定訪問點序列的前提下,機械手臂能實施從第一傳送帶上抓取、精確繪制并放置于第二傳送帶的系列重復(fù)動作,成功實現(xiàn)噴繪的仿真操作。需要說明的是,機械臂實施抓取和放置操作并非絕對精確,因為從實際生產(chǎn)情況來看,放置位置和定向區(qū)域一般被流水線上級操作限制在了一定的范圍之內(nèi),因此噴繪仿真過程的計算并不涉及以上兩個參數(shù)。
本文中,我們介紹了一種用于工業(yè)機器人仿真設(shè)計優(yōu)化的軟件平臺,該平臺的使用分為配置初始化、連接、核心定義、優(yōu)化、模擬和任務(wù)驗證等幾個步驟。通過這些步驟,用戶可以方便的定義和模擬機械臂的相關(guān)任務(wù),然后將其映射到實際環(huán)境中,這樣可以有效解決時間優(yōu)化的相關(guān)問題,避免沖突。所有的定義步驟可以在部分程序集或完整程序集文檔中執(zhí)行。
通過用戶圖形界面(GUI),平臺可以提供許多實用工具,可以處理包括但不限于鉆孔、噴繪、點焊、拾取和放置以及其他對象操作任務(wù)在內(nèi)的多種自動化任務(wù)。該平臺與SolidWorks 的GUI完全集成,進一步提高了平臺的使用有效性。利用遺傳算法,平臺通過尋找基于最小周期時間的最優(yōu)解,實現(xiàn)對任務(wù)的自動時間優(yōu)化,在優(yōu)化過程中,本研究還考慮了影響任務(wù)時間的四個主要部分:訪問順序、逆向運動學(xué)模型IKM參數(shù)配置、相對位置和定位以及任務(wù)點集。仿真結(jié)果表明,該平臺的CAD學(xué)習(xí)算法在簡化可訪問性驗證以及軌跡生成方面是實用和高效的。
該平臺目前只支持對單個機械手臂進行仿真和控制,因此,如何通過增加平臺功能模塊,實現(xiàn)多路機械手臂的并行處理,增強和擴展平臺的功能,將是本研究后續(xù)的發(fā)展方向。