楊 光, 陳祝平, 肖 煒
(集美大學機械工程學院,福建 廈門 361021)
目前,水藻對水質(zhì)污染和生態(tài)環(huán)境的破壞現(xiàn)象日益嚴重,引起國內(nèi)外的廣泛關(guān)注。加拿大、韓國、日本等國都開發(fā)了專門從事回收海面或江面水藻的環(huán)保船,江蘇省航道局與江蘇省船舶設(shè)計研究所共同開發(fā)的60噸打撈船[1]。這些機械打撈設(shè)備都是大型的,在相對比較小的湖泊中較難應(yīng)用。小型清藻機的研制對于清理小型湖泊的水藻相對于人工可以節(jié)省大量的人力資源,在環(huán)境保護方面起到重要作用。
清藻機為單臂多關(guān)節(jié)結(jié)構(gòu),其打撈作業(yè)依靠各關(guān)節(jié)和耙爪的運動實現(xiàn),其運動準確性和效率成為打撈作業(yè)的重要因素。3ds max是享譽世界的一款功能強大的三維動畫軟件,可以方便地實現(xiàn)三維視頻效果,它與同類的動畫設(shè)計軟件相比有許多獨特的特點:更為便利的動畫制作,更為簡潔的材質(zhì)動畫,豐富方便的造型功能和制作特技動畫的功能[2-3],適合清藻機的運動分析。
本文利用CAXA軟件對結(jié)構(gòu)進行建模,并基于多關(guān)節(jié)反向運動學,研究小型機械打撈裝置運動,包括在3ds max程序中對其運動結(jié)構(gòu)進行分層次,形成IK鏈,完成多關(guān)節(jié)連接的運動仿真。
清藻機主要部件為底座、大臂固定盤、大臂、小臂和耙爪,大臂的俯仰通過安裝在底座上的大臂液壓油缸和大臂活塞桿驅(qū)動,小臂的俯仰通過安裝在大臂上的小臂液壓油缸和小臂活塞桿驅(qū)動,耙爪的俯仰由安裝在小臂上的耙爪液壓油缸和耙爪活塞桿以及兩個連桿來實現(xiàn)。清藻機零部件和靜態(tài)裝配模型在CAXA軟件中完成。首先,在CAXA軟件中逐個建立清藻機系統(tǒng)零件模型,包括清藻機的大臂、小臂、耙爪和液壓油缸等并用鉸鏈連接,保證被連接部件只具有一個繞鉸鏈銷軸中心旋轉(zhuǎn)的自由度,并進行干涉檢查。機構(gòu)的伸展長度設(shè)計為約3米,以保證打撈范圍。清藻機典型零件圖如圖1所示,裝配體如圖2所示。
CAXA實體設(shè)計軟件支持內(nèi)核級、通用級和其他CAD軟件3個層次的零件格式,種類較多,利用 CAXA建模之后,文件以“*.3ds”格式輸出到3ds max軟件中,以便完成運動仿真。在輸出時,輸出視向、輸出光源和輸出背景3個環(huán)境選項無需進行輸出,因為這3個因素在導入3ds max中以后對仿真結(jié)果沒有影響,但會造成操作的復雜不便。
圖1 清藻機零件模型
圖2 清藻機裝配模型
反向運動IK是在一個鏈級對象中可以由子級對象的移動控制父級對象的旋轉(zhuǎn),如果給子級對象的動作創(chuàng)建關(guān)鍵幀,則父級對象會自動產(chǎn)生關(guān)鍵幀。反向運動將機器的運動類似于鏈接的骨骼運動,從執(zhí)行裝置即末端來控制機器的運動。在層次關(guān)系上,用子對象來帶動父對象的運動,可實現(xiàn)復雜運動軌跡的仿真,在設(shè)置物體朝向目標對象運動的動畫時,非常有效,是現(xiàn)代設(shè)計中的先進方法。反向運動可以通過調(diào)整幾個關(guān)節(jié)的姿勢來確定機構(gòu)在不同關(guān)鍵幀處的姿勢,進一步利用解析法或迭代法在這些關(guān)鍵幀之間自動進行插值計算[4-6]。IK系統(tǒng)與骨骼系統(tǒng)相結(jié)合,設(shè)計真實的的人物骨骼、動物骨骼以及機械運動時,體現(xiàn)出不可替代的優(yōu)勢。清藻機工作對象為海面浮萍等植物,反向運動鏈為:耙爪→小臂→大臂→大臂固定盤→底座。
反向運動首先要建立研究對象的層級關(guān)系。層級是對象之間的一種層次關(guān)系,這種關(guān)系分不同級別,就好比一個人,由頭、四肢、軀體等部位組成,而四肢又由手腕、手臂、大腿、小腿、腳等部分組成。在一次運動中,例如屈臂動作,上臂的運動帶動了小臂的運動,進而帶動了手的運動,這就是一種層次關(guān)系[6]。在建立清藻機的層次關(guān)系時,將連桿,活塞桿及油缸忽略,這樣層次較簡單,同時不影響表現(xiàn)整個運動過程。清藻機的層次關(guān)系如圖3所示。
層次關(guān)系建立后,首先要進行軸點的設(shè)置,將各個部件的旋轉(zhuǎn)軸點調(diào)整到正確的位置,調(diào)整后如圖4所示。
圖3 層級設(shè)置
圖4 調(diào)整軸點
IK解算器的工作方式為:IK 鏈的末端是目標,隨時重新定位目標或設(shè)置目標動畫時可以采用鏈接、參數(shù)關(guān)聯(lián)或約束,無論目標如何移動,IK解算器都嘗試移動鏈中最后一個關(guān)節(jié)的樞軸(終端效應(yīng)器),以便滿足目標的要求。IK解算器可以對鏈的部分進行旋轉(zhuǎn),以便擴展和重新定位終端效應(yīng)器,使其與目標相符。3ds max提供了 4個 IK解算器插件,分別為歷史獨立型 HI(History-Independent)解算器、歷史依賴型HD(History-dependent)解算器、IK肢體解算器、樣條線IK解算器[3]。
HI解算器在時間上不依賴于上一個關(guān)鍵幀計算得到的 IK 解決方案,因此無論在第 2000幀處還是在第 10 幀處使用 HI 解算器,其速度都一樣快。對于大部分的動畫 HI解算器是首選的解決方案,它能夠?qū)崟r地計算 IK的值。用法是選擇一個骨節(jié)后,選擇 Animation>IK Solver>HI Solver命令,然后點擊另一個骨節(jié),如果選擇的是原骨節(jié)的子級,則在子級骨節(jié)的起始端會出現(xiàn)一個藍色的控制柄,如果點擊的原骨節(jié)的父級,那么控制柄會出現(xiàn)在原骨節(jié)的起始端。移動這個藍色的控制柄,其父級的骨節(jié)會產(chǎn)生旋轉(zhuǎn),它的子級骨骼跟隨它移動。一個骨骼鏈上可以有多個HI解算器,刪除控制柄就可以刪除當前的IK設(shè)定。清藻機運動仿真采用HI解算器,選擇耙爪,依次設(shè)置IK解算器,HI解算器,再選擇大臂,就做出了一條IK鏈。
利用“自動關(guān)鍵點”設(shè)置關(guān)鍵點動畫是最基本、也是最常用的一種動畫制作方法,通過啟動“自動關(guān)鍵點”按鈕開始創(chuàng)建動畫,然后在不同時間點上更改對象的位置、進行旋轉(zhuǎn)或縮放,或者更改任何相關(guān)的設(shè)置參數(shù),都會相應(yīng)的自動創(chuàng)建關(guān)鍵幀并存儲關(guān)鍵點值。
清藻機運動仿真的時間長度設(shè)置為800幀。然后定義初始姿態(tài):點擊自動關(guān)鍵點,選中 IK鏈后,進行X、Y、Z方向的移動,然后選中耙爪,利用旋轉(zhuǎn)操作對耙爪進行旋轉(zhuǎn),這樣就設(shè)定好0幀時的姿態(tài)。清藻機的初始狀態(tài)如圖5(a)所示。
清藻機運動仿真是耙爪通過IK鏈進行X、Y、Z方向的移動以及通過銷完成自身的旋轉(zhuǎn)。在各關(guān)鍵幀處依次實現(xiàn)機構(gòu)的伸展運動,打撈動作,收回動作,卸料動作及歸位動作等。關(guān)鍵動作為:
在60幀處,設(shè)置關(guān)鍵點,選中IK鏈,控制IK鏈沿X軸向前移動,沿Z軸向下移動,實現(xiàn)機構(gòu)的伸展運動。選擇耙爪,利用旋轉(zhuǎn)操作控制耙爪繞Y軸向下旋轉(zhuǎn)運動。在120幀處,設(shè)置關(guān)鍵點,選中IK鏈,控制IK鏈沿X軸向前移動,沿Z軸向下移動。選擇耙爪,利用旋轉(zhuǎn)操作控制耙爪繞Y軸向上旋轉(zhuǎn)運動。這兩個關(guān)鍵點表示的是打撈前機構(gòu)的伸展過程。
在180幀處,設(shè)置關(guān)鍵點,選擇耙爪,利用旋轉(zhuǎn)操作控制耙爪繞Y軸向上旋轉(zhuǎn)運動。選中IK鏈,控制IK鏈沿X軸向后移動,沿Z軸向上移動。此處完成的是打撈動作。
在240幀處,設(shè)置關(guān)鍵點,選擇IK鏈,控制IK鏈沿X軸向后移動,沿Z軸向上移動,實現(xiàn)機構(gòu)的收回動作。
在300幀處,選擇IK鏈,拉至360幀處,繼續(xù)移動IK鏈,并選擇耙爪進行旋轉(zhuǎn)運動,防止打撈出的垃圾掉出。
在500幀處,選擇IK鏈,按鈕使機構(gòu)沿X、Z軸運動到后卸的正確位置,選擇耙爪進行旋轉(zhuǎn)運動,實現(xiàn)垃圾的后卸動作。
卸料動作完成之后,要使機構(gòu)回到最初的位置,將時間滑塊拉至500幀處,選擇IK鏈,控制IK鏈沿X軸向前、Z軸向下的運動。在600幀、700幀和750幀處IK鏈的運動操作類似。在750幀和795幀處選擇耙爪旋轉(zhuǎn),使機構(gòu)回到最初的位置,這樣就完成了清藻機打撈作業(yè)過程的運動仿真,其關(guān)鍵幀動作如圖5所示。
若需要清藻機完成其他方位的打撈工作,可以對大臂固定盤實施繞豎直軸的轉(zhuǎn)動動作。使用HI 解算器做運動仿真時,如果發(fā)現(xiàn)動作不平滑,可以增加迭代次數(shù)或者降低閾值來平滑動作。
圖5 清藻機作業(yè)過程仿真
“曲線編輯器”可以記錄和編輯仿真運動的軌跡[3]。IK鏈的位置軌跡如圖6所示。軌跡視圖的水平坐標為幀數(shù),豎直坐標為位置尺寸,直線表示的是IK鏈Z位置的軌跡。曲線上的點表示人為設(shè)置的關(guān)鍵點。兩條曲線分別表示IK鏈X位置和Y位置的軌跡,是通過幀數(shù)和位置尺寸拾取關(guān)鍵點并通過插值完成的。圖7為耙爪在三維場景中的運動軌跡。
圖6 IK鏈位置軌跡
圖7 耙爪軌跡
通過軌跡曲線,可以查看整個運動狀態(tài)或分析比較不同構(gòu)件的運動特征。如果需要查看任意點的時間和位置,可以在軌跡曲線上直接插入新的關(guān)鍵點,非常方便。
本文通過 CAXA設(shè)計軟件建立清藻機的三維模型、組裝零件和進行干涉檢查,通過3ds max軟件建立層次鏈接,利用多關(guān)節(jié)反向運動學對清藻機進行運動仿真分析,表達出 IK鏈的運動軌跡,為分析清藻機打撈作業(yè)過程及進一步優(yōu)化設(shè)計提供了依據(jù)。同時,還可以完成產(chǎn)品的動畫制作、產(chǎn)品展示、廣告設(shè)計等工作,具有良好的實用性。
[1]唐一平. Advanced manufacturing technology [M]. 北京: 科學出版社, 2000: 78- 95.
[2]陳 敏, 沈耀仁. 三維建模與三維動畫仿真技術(shù)的應(yīng)用[J]. 機械設(shè)計與制造, 2005, (8): 143-144.
[3]Murdock K L著. 3dsMax9寶典[M]. 田玉敏等譯.北京: 人民郵電出版社, 2008: 212-295.
[4]吳志敏, 熊 銳. 工業(yè)機械手運動學仿真[J]. 裝備制造技術(shù), 2009, (1): 20-21.
[5]王毅剛, 吳子朝, 陳曉雕. 一種解析的反向運動學方法[J]. 計算機應(yīng)用研究, 2009, 26(6): 2368-2373.
[6]陳偉海, 陳泉柱, 張建斌, 等. 線驅(qū)動擬人臂機器人逆向運動學分析[J]. 機械工程學報, 2007, (4):12-20.