1.大連理工大學(xué)機(jī)械工程學(xué)院 大連 116024 2.中冶節(jié)能環(huán)保有限責(zé)任公司 北京 100088
橋式起重機(jī)(以下簡(jiǎn)稱橋機(jī))是一種在倉(cāng)庫(kù)、車間、碼頭等場(chǎng)所應(yīng)用廣泛的起重運(yùn)輸機(jī)械。當(dāng)前,對(duì)一些具有高度危險(xiǎn)性和對(duì)人體產(chǎn)生健康威脅的如核廢料處理、金屬冶煉等工作場(chǎng)所[1],橋機(jī)無(wú)人化運(yùn)行的重要性越來越凸顯。
科學(xué)合理的對(duì)橋機(jī)或其下吊載的運(yùn)行路徑進(jìn)行規(guī)劃是解決其操控?zé)o人化的重要問題。劉少有[2]等借助真機(jī)操作,實(shí)地探查理論的可行性,這種方法雖然能及時(shí)獲取反饋和調(diào)整原有理論,但卻造成了能源、成本和時(shí)間上的浪費(fèi),使得整體研究的效果不佳;更多的學(xué)者則是借助計(jì)算機(jī)技術(shù),建立數(shù)據(jù)模型,用數(shù)據(jù)仿真作為研究橋機(jī)運(yùn)行的媒介。在此方面,國(guó)內(nèi)外學(xué)者做了大量的研究,魏云平[3]等在Matlab 仿真平臺(tái)對(duì)橋機(jī)的二維柵格地圖路徑拐點(diǎn)作等效距離處理,得到了改進(jìn)遺傳算法后的最優(yōu)路徑;杜文正[4]等將機(jī)器人路徑規(guī)劃技術(shù)引入到橋機(jī)負(fù)載運(yùn)動(dòng)的軌跡規(guī)劃中,將轉(zhuǎn)載場(chǎng)地的三維空間信息轉(zhuǎn)化為二維柵格地圖,利用遺傳算法進(jìn)行了運(yùn)動(dòng)軌跡的優(yōu)化仿真;Frank Taylor[5]等借助虛擬現(xiàn)實(shí)技術(shù)驗(yàn)證了利用橋機(jī)進(jìn)行重型機(jī)械虛擬裝配的有效性,確定了虛擬環(huán)境中橋機(jī)附加載荷后的模擬運(yùn)動(dòng)與實(shí)際橋機(jī)附加載荷后運(yùn)動(dòng)間存在相關(guān)性。國(guó)內(nèi)外學(xué)者的研究主要集中在二維平面的仿真研究,在空間三維領(lǐng)域以及模擬顯示方面,橋機(jī)的運(yùn)行規(guī)劃研究仍顯不足。
本文提出了基于Unity 3D 平臺(tái)的橋機(jī)智能運(yùn)行仿真方法,在Unity 3D 中實(shí)現(xiàn)橋機(jī)的三維可視最優(yōu)路徑運(yùn)行模擬,本方法充分利用了Unity 3D 強(qiáng)大的圖形渲染功能、物理模擬功能和碰撞檢測(cè)功能等,通過對(duì)引擎功能進(jìn)行優(yōu)化和二次改進(jìn),實(shí)現(xiàn)了更強(qiáng)的仿真效果。
橋機(jī)三維模型的設(shè)計(jì)在SolidWorks 環(huán)境下完成,采用3D Max 軟件作為整機(jī)模型的轉(zhuǎn)化工具,保留了零件的原層級(jí)結(jié)構(gòu)和空間位置排列且很好的兼容Unity 平臺(tái),模型流程設(shè)計(jì)見圖1。同時(shí),借助3D Max 軟件進(jìn)行紋理設(shè)置和模型優(yōu)化,在保留主要幾何信息的基礎(chǔ)上最大程度的減少多邊形的數(shù)量,經(jīng)過優(yōu)化后,模型大小縮減為原來的近1/4。
圖1 仿真模型設(shè)計(jì)流程圖
如圖2 所示,利用3D Max 軟件在建筑、室內(nèi)設(shè)計(jì)領(lǐng)域的優(yōu)勢(shì)建立虛擬廠房模型,整合CAD 圖紙和材質(zhì)、貼圖、紋理等資源,形成與橋機(jī)匹配的場(chǎng)地模型,模型主要包括廠房、室內(nèi)配套設(shè)備和作為障礙的物料件等。
圖2 虛擬廠房模型
為了將橋機(jī)模型中的零件有組織的加入數(shù)據(jù)庫(kù)并建立合理的層級(jí)結(jié)構(gòu),需要對(duì)整機(jī)模型進(jìn)行重構(gòu)。根據(jù)需要,將模型規(guī)劃為邏輯結(jié)構(gòu)和空間結(jié)構(gòu),這兩種結(jié)構(gòu)也是模型數(shù)據(jù)庫(kù)中應(yīng)用最為廣泛的結(jié)構(gòu)[6]。在邏輯結(jié)構(gòu)中,共同完成某一功能的模型有組織地組合在一起,當(dāng)控制信號(hào)到來時(shí),模型同時(shí)響應(yīng),縮短信號(hào)傳遞路徑,減少傳遞時(shí)間,模型的功能被有機(jī)地聯(lián)系起來。在空間結(jié)構(gòu)中,相鄰空間域的模型組合在一起,保證渲染時(shí)模型剔除的快速性和繪制紋理的連續(xù)性,縮短時(shí)間,提高計(jì)算效率。根據(jù)兩種結(jié)構(gòu)特點(diǎn),橋機(jī)整機(jī)模型的運(yùn)動(dòng)節(jié)點(diǎn)被設(shè)置為邏輯結(jié)構(gòu),相鄰非運(yùn)動(dòng)節(jié)點(diǎn)設(shè)置為空間結(jié)構(gòu)[7],如圖3 所示。
圖3 橋機(jī)模型層級(jí)結(jié)構(gòu)圖
樣機(jī)內(nèi)的運(yùn)動(dòng)模型通過Transform 節(jié)點(diǎn)建立父子聯(lián)系,以樣機(jī)小車運(yùn)動(dòng)為例,小車的位置建立在上一層級(jí)的內(nèi)置坐標(biāo)系下,即相對(duì)整機(jī)的Transform 節(jié)點(diǎn)為基準(zhǔn)。鋼絲繩的運(yùn)動(dòng)特性在邏輯上隸屬于小車,但考慮到繩索視覺上的柔性本性,本文將部分繩索節(jié)點(diǎn)作為小車子物體,其他節(jié)點(diǎn)以世界坐標(biāo)為基準(zhǔn),吊鉤同樣建立在世界坐標(biāo)系下,且繩節(jié)點(diǎn)和吊鉤保持旋轉(zhuǎn)Rot 和搖擺Sw 特性,由此構(gòu)成節(jié)點(diǎn)逐層嵌套結(jié)構(gòu),運(yùn)動(dòng)通過Transform節(jié)點(diǎn)傳遞下去[8]。如圖4 所示。
圖4 小車節(jié)點(diǎn)及其對(duì)應(yīng)結(jié)構(gòu)
尋路地圖可以看做是一組存儲(chǔ)地圖信息的數(shù)據(jù)結(jié)構(gòu),目前大多數(shù)A*算法都是基于具有對(duì)稱性的柵格地圖,如圖5 所示,這種地圖在小范圍環(huán)境內(nèi)應(yīng)用效果較好,在大型地圖,尤其是存在大面積均質(zhì)化地形環(huán)境時(shí),由于其尋路網(wǎng)格節(jié)點(diǎn)較多,占用系統(tǒng)資源過大,搜索效率下降[9]。
圖5 柵格地圖
導(dǎo)航網(wǎng)格地圖是一種用凸多邊形集合表示的地圖類型,如圖6 所示,凸多邊形保證軌跡均落在導(dǎo)航網(wǎng)格內(nèi)部,不會(huì)經(jīng)過其他單元,凸多邊形內(nèi)的任一兩點(diǎn)連線均被認(rèn)為是可行路徑,也是最短路徑[10,11]。采用這種網(wǎng)格時(shí),減少了搜索節(jié)點(diǎn),提高了搜索效率,無(wú)人化的橋機(jī)車間屬于非開放性大面積空間,采用導(dǎo)航網(wǎng)格尋路可以取得較好的效果。
圖6 導(dǎo)航網(wǎng)格示意圖
基于導(dǎo)航網(wǎng)格的A*尋路過程如圖7 所示,與基于柵格地圖尋路算法相比,花費(fèi)值g 和估計(jì)值h 的定義標(biāo)準(zhǔn)發(fā)生了改變,且最終路線獲取需要借助拐點(diǎn)法等路徑獲取算法取得。
如圖8 所示,粗箭頭為最終的路徑方向,路徑線進(jìn)入三角形的邊稱為穿入邊,路徑線出去的邊稱為穿出邊,每個(gè)三角形的花費(fèi)(g 值)采用穿入邊和穿出邊的中線距離,估計(jì)值(h 值)使用該三角形的中心點(diǎn)到目標(biāo)點(diǎn)的距離[12,13]。
圖7 A*尋路算法示意圖
圖8 三角網(wǎng)格應(yīng)用圖
算法經(jīng)過前兩方面的步驟之后,形成的并不是最終的最優(yōu)路徑點(diǎn),而是一條從起點(diǎn)到終點(diǎn)的由相鄰三角形構(gòu)成的聯(lián)通區(qū)域,圖9a 中粗線條是需要生成的導(dǎo)航線路,圖9b 中虛線是導(dǎo)航網(wǎng)格中的多邊形臨邊,稱為多邊形的穿出邊,導(dǎo)航線路需要通過路徑點(diǎn)生成算法找出,常用拐角點(diǎn)算法。
圖9 路徑點(diǎn)生成示意圖
首先找到起始點(diǎn)A 所在的多邊形和穿出邊的兩個(gè)端點(diǎn),由起點(diǎn)連接兩個(gè)端點(diǎn)形成兩個(gè)線段左線和右線,如圖10a 所示。
繼續(xù)尋找下一穿出邊的兩個(gè)端點(diǎn),判斷新的左點(diǎn)和右點(diǎn)是否在左線和右線形成的扇面區(qū)域,如果在,則根據(jù)新的左點(diǎn)和右點(diǎn)更新左線和右線,如圖10b 所示,當(dāng)只有一個(gè)新點(diǎn)不在扇面區(qū)域時(shí),則保留相應(yīng)線段,只更新另一新點(diǎn)對(duì)應(yīng)的線段。
繼續(xù)前一步驟,直到下一個(gè)穿出邊的兩個(gè)端點(diǎn)出現(xiàn)在左線左側(cè)或者右線右側(cè),此時(shí),當(dāng)前左點(diǎn)(或右點(diǎn))即為拐點(diǎn),如圖10d 所示。
重復(fù)以上步驟,直到找出通向目標(biāo)點(diǎn)的所有拐點(diǎn)為止。
圖10 拐點(diǎn)計(jì)算示意圖
可以看出,基于導(dǎo)航網(wǎng)格的A*尋路算法產(chǎn)生的路徑,能直接穿越開放空間,遇到障礙物時(shí)具有拐點(diǎn)特性,即貼墻繞行,對(duì)比柵格地圖,更符合室內(nèi)空間路徑運(yùn)行的特點(diǎn),更具合理性。
Unity 3D 自帶的導(dǎo)航網(wǎng)格尋路系統(tǒng),能夠設(shè)置障礙區(qū)和通行區(qū)等地形屬性,并借助尋路主體(NavMesh Agent)實(shí)現(xiàn)尋路,但這種網(wǎng)格地圖屬于靜態(tài)網(wǎng)格,存在最大的兩個(gè)問題,一是地圖必須依靠實(shí)體模型,無(wú)法獨(dú)立的在空間移動(dòng),二是無(wú)法動(dòng)態(tài)更新地圖環(huán)境內(nèi)存在的障礙物信息,為了實(shí)現(xiàn)橋機(jī)在空間的路徑規(guī)劃仿真,借助Nav Mesh Components 組件解決這兩個(gè)問題,該組件將導(dǎo)航網(wǎng)格的生成作為一個(gè)腳本文件獨(dú)立出來,在空物體上掛載該腳本,并在初始地形層生成一定規(guī)格的導(dǎo)航網(wǎng)格后便可自由移動(dòng),而且能動(dòng)態(tài)更新地圖所轄的障礙物信息,保障了橋機(jī)在空間運(yùn)行時(shí)對(duì)路徑信息的獲取。
橋機(jī)帶載運(yùn)動(dòng)時(shí)具有空間特性,起升和水平運(yùn)動(dòng)是其工作狀態(tài),且往往這兩種狀態(tài)是獨(dú)立的,因?yàn)樵谝揽夸摻z繩作為起升吊具時(shí),起升運(yùn)動(dòng)和水平運(yùn)動(dòng)的疊加會(huì)導(dǎo)致吊物的搖擺[14],增加額外的力矩,尋路精度也會(huì)下降,故本文對(duì)橋機(jī)的空間運(yùn)行作如下的處理:1)起升運(yùn)動(dòng)和水平運(yùn)動(dòng)為串聯(lián)動(dòng)作;2)大、小車保持協(xié)同運(yùn)動(dòng)。
有了以上兩條考慮,橋機(jī)的空間運(yùn)行,也即吊物的運(yùn)動(dòng),將在空間的每一層級(jí)展開,利用Nav Mesh Components 組件,可以獲取任一層空間的最優(yōu)路徑信息??紤]到吊物及吊具等跟隨大、小車運(yùn)動(dòng),如何保證吊物與最優(yōu)路線的匹配是運(yùn)動(dòng)完成的關(guān)鍵,Nav Mesh Agent 是掛載了尋路代碼的執(zhí)行體,稱之為尋路主體,它依附于網(wǎng)格,且具有位置、速度、加速度和停止距離等控制參數(shù)。合理地協(xié)同尋路主體與大、小車的運(yùn)動(dòng),可以很好的利用尋路主體的參數(shù)實(shí)現(xiàn)橋機(jī)的運(yùn)行控制,本文通過添加代碼,將尋路主體的運(yùn)動(dòng)分解為大、小車的X、Y 雙向運(yùn)動(dòng),并保持小車與尋路主體在水平投影的位置同步。大車部分代碼如下:
為了驗(yàn)證橋機(jī)空間軌跡優(yōu)化運(yùn)行的可行性,參照GB/T 14405—2011《通用橋式起重機(jī)》賦予橋機(jī)相應(yīng)運(yùn)行數(shù)據(jù),見表1。在仿真車間環(huán)境中,給定起始點(diǎn)和終點(diǎn)條件,研究在不同高度處運(yùn)行時(shí)橋機(jī)的模擬效果。
表1 橋機(jī)運(yùn)行基本參數(shù)表
依據(jù)標(biāo)準(zhǔn),對(duì)于無(wú)空中人行通道的廠房,橋機(jī)的額定起重量小于50 t時(shí),廠房跨度與橋機(jī)跨度差值取1.5 m,故該橋機(jī)運(yùn)行的廠房通道尺寸為100 m×24 m。
圖11 為在不同高度處的橋機(jī)仿真運(yùn)行效果圖,圖11a 和圖11c 為橋機(jī)在1.2 m 高度處繞障礙運(yùn)行效果,圖11b 和圖11d 為橋機(jī)在4.5 m 高度處繞障礙運(yùn)行效果。根據(jù)橋式起重機(jī)的運(yùn)行基本參數(shù),本文設(shè)置的大、小車協(xié)同速度為60 m/min,起升速度為20 m/min,加速度統(tǒng)一為0.5 m/s2,得到仿真時(shí)間如表2 所示,其中,平面運(yùn)行模式消耗時(shí)間是指在不同高度處繞障礙所用時(shí)間,是結(jié)合地形環(huán)境和軌跡規(guī)劃算法給出的時(shí)間比較,全流程運(yùn)行模式則是起重機(jī)從復(fù)位點(diǎn)開始將被吊物體放置目的地所用總時(shí)間,反映了總體效率的比較。
圖11 橋機(jī)仿真運(yùn)行效果圖
表2 橋機(jī)運(yùn)行仿真時(shí)間
本文以橋機(jī)為研究對(duì)象,搭建車間環(huán)境,利用Unity 3D 虛擬現(xiàn)實(shí)工具,實(shí)現(xiàn)了橋機(jī)的空間軌跡仿真運(yùn)行。聯(lián)系實(shí)際和模擬結(jié)果,可以得出如下結(jié)論:若只考慮繞障礙用時(shí),橋機(jī)運(yùn)行時(shí)間主要受車間障礙物的分布影響,在復(fù)雜環(huán)境內(nèi)的用時(shí)與頂層直接跨越用時(shí)差距不大,這反映了路徑規(guī)劃算法產(chǎn)生的效用,不過,拐點(diǎn)較多仍是實(shí)際運(yùn)行需考慮的問題;而全流程運(yùn)行模式下用時(shí)差距較大,主要是因?yàn)楦叨炔畹拇嬖诤痛怪逼鹕哪J綆淼臅r(shí)間消耗。在無(wú)人車間內(nèi)橋機(jī)運(yùn)行時(shí),應(yīng)對(duì)復(fù)雜環(huán)境時(shí),應(yīng)盡量發(fā)揮規(guī)劃算法的作用,增大規(guī)劃路徑運(yùn)行時(shí)間占工作用時(shí)的比重,避免無(wú)用高度的產(chǎn)生。
可以看出,通過加入智能化路徑運(yùn)行,廠房?jī)?nèi)部空間可以得到極大利用,同時(shí),借助VR 的沉浸式和交互性環(huán)境,可以事先規(guī)劃出方案,作為無(wú)人化車間設(shè)計(jì)的有效補(bǔ)充,為實(shí)際無(wú)人化車間和橋機(jī)的智能運(yùn)行的應(yīng)用及研究提供平臺(tái)。