雷 文, 陳清奎, 朱肖龍, 高 博, 厚國旺
(山東建筑大學 機電工程學院,濟南 250100)
“農(nóng)業(yè)機械學”這門課程的實踐性很強,傳統(tǒng)的教學難以讓同學們掌握農(nóng)業(yè)機械的基本知識,對于各種現(xiàn)代化的農(nóng)業(yè)機械的基本結(jié)構(gòu)的了解也僅能從圖片與文字素材上獲取,并且大部分的農(nóng)機設(shè)備的主要零部件均包裹在殼體內(nèi)部,學生無法觀察其內(nèi)部結(jié)構(gòu)以及工作狀態(tài)時的內(nèi)部原理. 虛擬現(xiàn)實技術(shù),是一種融合計算機圖形學技術(shù)、人機交互技術(shù)、多媒體技術(shù)、網(wǎng)絡(luò)技術(shù)及仿真技術(shù)等多種科學技術(shù)的新型技術(shù),具有沉浸感、交互性和構(gòu)想性[1]. 如果將其應(yīng)用在農(nóng)業(yè)機械教學中,將會實現(xiàn)傳統(tǒng)教學中不具備或難以完成的教學功能,并能解決實踐教學中的產(chǎn)品成本高、工作場所受限制等一系列問題.
然而,目前由于虛擬現(xiàn)實技術(shù)在農(nóng)業(yè)機械教學上的應(yīng)用還不廣泛,專門針對農(nóng)業(yè)機械的軟件屈指可數(shù),盡管近年來不少國內(nèi)外研究者圍繞虛擬農(nóng)業(yè)機械進行了研究,但是取得的成果甚微. 朱鐘祥等人[2]以聯(lián)合收獲機的底盤為例,利用虛擬現(xiàn)實軟件EON及其二次開發(fā)技術(shù)實現(xiàn)了聯(lián)合收獲機底盤部件的交互性裝配. 李潤聲等人[3]以棉花制缽機的動畫制作為案例,研究了虛擬仿真技術(shù)在農(nóng)業(yè)機械課程教學中的應(yīng)用,缺點在于過分強調(diào)了虛擬仿真技術(shù)對農(nóng)業(yè)機械課程教學的必要性,但卻沒能給出有效的解決方式. 吳升等人[4]以Unity3D為開發(fā)平臺,實現(xiàn)了甘蔗種植生長周期虛擬展示以及種植過程中對農(nóng)機設(shè)備的交互操作,可以推廣應(yīng)用于其他農(nóng)作物的虛擬生產(chǎn)作業(yè)培訓系統(tǒng)的開發(fā).以上研究雖然將虛擬現(xiàn)實技術(shù)應(yīng)用在農(nóng)業(yè)機械教學中,但是所開發(fā)的軟件只針對某一種農(nóng)機設(shè)備或某一類農(nóng)作物的生產(chǎn)作業(yè),存在著資源不完善的問題,無法勘破農(nóng)業(yè)機械教學中的難題. 基于以上不足,本文開發(fā)出一個全面、完善的仿真教學系統(tǒng),涵蓋了耕地機械、整地機械、播種機械、植保機械、收割機械的拆裝與設(shè)備維修保養(yǎng)及工作原理展示,并且學生可以在系統(tǒng)實時生成的三維場景中操作機械設(shè)備,模擬生產(chǎn)勞作.
本系統(tǒng)的主體設(shè)計目的是以建構(gòu)主義學習理論為基礎(chǔ),結(jié)合《農(nóng)業(yè)機械學》的課程特點,為學習者塑造一定的情景,學習者能在其中自主地學習專業(yè)知識,即在虛擬農(nóng)場的三維場景之下,學習者通過操作鼠標、鍵盤可以清楚的查看場景中的每一個角落、每一臺設(shè)備和每一處細微結(jié)構(gòu),并且場景中的每一臺設(shè)備與每一個區(qū)域標示都是一個觸發(fā)點,點擊即可進入到相應(yīng)的教學界面,實現(xiàn)相關(guān)項目的知識點教學,見圖1.
《農(nóng)業(yè)機械學》所涉及的內(nèi)容主要是田間作業(yè)機械,而且側(cè)重于生產(chǎn)機械化所必須的典型設(shè)備的構(gòu)造、原理、生產(chǎn)作業(yè)等[5],所以本系統(tǒng)的關(guān)鍵點在于每種農(nóng)機設(shè)備教學模式的設(shè)計. 從“老師易教,學生易學”的角度出發(fā),系統(tǒng)的設(shè)置應(yīng)以交互操作為主、演示教學為輔,并且為了讓老師了解學生在自主學習狀態(tài)下的學習情況和出現(xiàn)的問題以及學生對自我知識點的審核,在知識點功能模塊的基礎(chǔ)上還應(yīng)構(gòu)建考核功能模塊.

圖1 “虛擬農(nóng)場”背景下“農(nóng)業(yè)機械學”系統(tǒng)的設(shè)計圖
虛擬農(nóng)場農(nóng)業(yè)機械學仿真教學系統(tǒng)最終要實現(xiàn)場景漫游、農(nóng)機設(shè)備教學與典型農(nóng)作物生產(chǎn)線的全方位展示,因此可將其劃分為3個大模塊,然后根據(jù)教學需要再將這3個模塊進行逐次劃分. 故該系統(tǒng)的開發(fā)主要有以下4個任務(wù):
(1) 建立農(nóng)場的三維虛擬場景. 場景模型數(shù)據(jù)庫與農(nóng)機設(shè)備模型數(shù)據(jù)庫的建立.
(2) 實現(xiàn)虛擬農(nóng)場的漫游行走.(3) 實現(xiàn)主要農(nóng)機設(shè)備的教學.(4) 實現(xiàn)典型農(nóng)作物的生產(chǎn)流程.
虛擬農(nóng)場里的主要農(nóng)業(yè)機械可分為耕地、整地、播種、植保、收割5大類,每種設(shè)備的組成結(jié)構(gòu)、工作原理、維修保養(yǎng)方式都大不相同,因此系統(tǒng)開發(fā)的難點在于前期對每臺設(shè)備完整資料的收集與整理.
針對虛擬農(nóng)場農(nóng)業(yè)機械學仿真教學系統(tǒng)開發(fā)的側(cè)重點與任務(wù)需求,該教學系統(tǒng)主要需要具備如下功能:① 農(nóng)場的漫游和實體模型的可視化; ② 交互式的虛擬拆裝; ③ 設(shè)備工作原理演示; ④ 交互式的維修保養(yǎng);⑤ 自定義設(shè)備的工作參數(shù); ⑥ 知識點的檢驗; ⑦ 模擬勞作.
虛擬農(nóng)場仿真教學系統(tǒng)的設(shè)計按照軟件工程設(shè)計的思路,貫徹分層布局和模塊組成的思想[6],從系統(tǒng)功能分析入手,設(shè)計系統(tǒng)各個功能模塊. 根據(jù)需要實現(xiàn)場景漫游、農(nóng)機設(shè)備教學、機械化生產(chǎn)線3個功能模塊的開發(fā),生成界面友好、操作簡單、實用性強的教學系統(tǒng),全面地實現(xiàn)滲透式的教學培訓. 整個系統(tǒng)總體結(jié)構(gòu)框架如圖2所示.
虛擬農(nóng)場仿真教學系統(tǒng)的主體在于農(nóng)機設(shè)備,了解每臺設(shè)備的結(jié)構(gòu)和工作原理是整個系統(tǒng)開發(fā)的目的,分析不同農(nóng)機設(shè)備的工作特性,將其劃分為主要組成模塊,以玉米聯(lián)合收獲機為例,玉米聯(lián)合收獲機由摘穗臺模塊 (撥禾機構(gòu)、切割裝置、輸送裝置、摘穗機構(gòu))、脫離系統(tǒng)模塊 (剝皮機構(gòu)、分離機構(gòu)、清糧裝置等)、底盤模塊 (行走裝置、動力裝置、傳動系統(tǒng)、駕駛室與操縱控制)、卸糧裝置模塊等4個模塊組成. 將每臺設(shè)備結(jié)構(gòu)進行模塊劃分的原因,是在學生進行拆裝學習時,能分塊操作,對設(shè)備結(jié)構(gòu)有清晰而全面的認識.

圖2 虛擬農(nóng)場仿真教學系統(tǒng)總體結(jié)構(gòu)
本系統(tǒng)以Unity3D為開發(fā)平臺,應(yīng)用Solidworks、3Ds Max建模軟件來構(gòu)建三維虛擬農(nóng)場的場景模型數(shù)據(jù)庫與農(nóng)機設(shè)備模型數(shù)據(jù)庫,并通過Photoshops軟件來處理紋理貼圖和設(shè)計界面. 最后將資源融合到Unity虛擬現(xiàn)實平臺內(nèi),在Unity中進行場景搭建、模型大小設(shè)置以及效果調(diào)試等操作,并編寫相關(guān)代碼實現(xiàn)交互功能,最后對項目進行打包發(fā)布. 其具體開發(fā)步驟如圖3所示.
為了使學生在操作虛擬農(nóng)場農(nóng)業(yè)機械學仿真教學系統(tǒng)時實現(xiàn)各項功能,UI界面上設(shè)置了可操作的按鈕,使用者可以通過這些按鈕來“立體化”學習相關(guān)知識點,如拆裝玉米聯(lián)合收獲機. 根據(jù)功能分析,主場景設(shè)置為二級界面,由于三維場景中只能完成場景漫游,因此農(nóng)機設(shè)備的教學模塊或者機械化生產(chǎn)作業(yè)模塊的實現(xiàn)就需要點擊場景中的標示,即虛擬按鈕,從而加載到下一級界面. 創(chuàng)建好的虛擬農(nóng)場界面如圖4所示.

圖3 虛擬農(nóng)場仿真教學系統(tǒng)開發(fā)流程
虛擬農(nóng)場農(nóng)業(yè)機械學仿真教學系統(tǒng)是一個數(shù)據(jù)龐大,結(jié)構(gòu)復雜的綜合系統(tǒng),包含多種模型組件. 農(nóng)場的場景模型數(shù)據(jù)庫的模型包括:地形、農(nóng)作物、房屋建筑、自然指示牌、道路、天空等. 農(nóng)業(yè)機械設(shè)備模型數(shù)據(jù)庫的模型包括:耕地機械、整地機械、播種機械、植保機械、收割機械,其具體表現(xiàn)為:拖拉機、旋耕機、播種機、噴霧機械、小麥聯(lián)合收獲機、玉米聯(lián)合收獲機、采棉機、蘋果分級機、青貯收獲機、干燥機、鏵式犁、農(nóng)機配套附件等.
系統(tǒng)采用Solidworks和3Ds Max共同來完成場景模型與農(nóng)機設(shè)備模型的構(gòu)建. 模型的面數(shù)制約著系統(tǒng)渲染處理的響應(yīng)速度和系統(tǒng)的逼真性,當模型的面數(shù)越高時,能獲得更強的沉浸感,但是系統(tǒng)所占內(nèi)存就會越大,導致響應(yīng)變慢,所以為了兼顧視覺與效率的平衡,需要對模型進行優(yōu)化處理[7],圖5為優(yōu)化處理前后的青貯收獲機的對比圖. 本系統(tǒng)的模型采用的優(yōu)化方式如下:
(1) 對于各種復雜農(nóng)機設(shè)備,在保留模型的幾何形狀特征的同時對模型的重要細節(jié)局部優(yōu)化,忽略次要部分,即用簡單的輪廓來代替復雜的形狀[8]. 如青貯收獲機,分析其工作原理,對其基本組成模塊的各部分機構(gòu),如割臺機構(gòu)、切割調(diào)質(zhì)裝置、輸送裝置等進行精確化建模,對其他次要部分進行簡化處理,刪除一些隱藏的面.

圖4 界面展示
(2) 系統(tǒng)中各種農(nóng)機設(shè)備的模型從Solidworks以.stl的格式導入到3Ds Max之后,四邊面會被轉(zhuǎn)變?yōu)槿敲?模型的三角面數(shù)及頂點數(shù)會急劇增加,例如青貯收獲機的三角面數(shù)就高達90多萬. 利用 3Ds Max中內(nèi)置的腳本語言MaxScript,編寫一個后綴為.ms文件并運行程序,3DS Max將自動的把模型中的三角面轉(zhuǎn)換為四邊面,根據(jù)此種方式,青貯收獲機的模型的面數(shù)銳減到了40多萬. .ms文件的具體內(nèi)容如下:



圖5 優(yōu)化處理前后的青貯收獲機的對比圖
(3) 使用紋理來代替細節(jié)描述,將二維圖像映射到幾何形狀上減少環(huán)境模型的多邊形數(shù)目. 系統(tǒng)對較簡單的模型采用直接貼圖渲染的方式,如農(nóng)場的地面、建筑物的花紋、農(nóng)作物、維修工具等; 而對各種復雜的農(nóng)機設(shè)備模型,系統(tǒng)采用則外部指定式貼圖坐標的方式,分別對模型的每一個對象都進行貼圖渲染.
系統(tǒng)交互功能的實現(xiàn)最主要是交互腳本的設(shè)計,只有當場景中的農(nóng)機設(shè)備、標示框按鈕等被賦予腳本組件并關(guān)聯(lián)之后,才能實現(xiàn)相關(guān)的交互操作. Unity3D支持Java和C#兩種腳本語言,其中C#的應(yīng)用更為廣泛,因此本平臺采用C#語言編寫腳本來進行復雜的場景邏輯控制. 以二級界面虛擬農(nóng)場場景中的“玉米聯(lián)合收獲機”觸發(fā)按鈕為例,點擊之后進入到三級的玉米聯(lián)合收獲機教學模塊界面,其功能實現(xiàn)創(chuàng)建順序如下:
(1) 新建一個名為yumishouhuoji的C#腳本程序,在程序中定義兩個變量:canvas_scence02,canvas_yumi03,創(chuàng)建名為enter_yumi03的函數(shù),并在其中添加實現(xiàn)的功能代碼語句; 實現(xiàn)代碼如下:

(3) 給子物體yumishouhuoji添加一個Button組件,將PS處理過的玉米聯(lián)合收獲機的提示文本框貼圖以Sprite類型添加到Button組件里的Source Image中,并將這個按鈕組件的On click作為事件接口與canvas_scence02、enter_yumi03關(guān)聯(lián)上.
(3) 給子物體yumishouhuoji添加一個Button組件,將PS處理過的玉米聯(lián)合收獲機的提示文本框貼圖以Sprite類型添加到Button組件里的Source Image中,并將這個按鈕組件的On click作為事件接口與canvas_scence02、enter_yumi03關(guān)聯(lián)上.
本系統(tǒng)依照一般網(wǎng)絡(luò)游戲的漫游方式,即按住鍵盤上的“W”、“A”、“S”、“D”鍵,可以在虛擬農(nóng)場中進行“前”、“左”、“后”、“右”的漫游操作,從而對場景進行全方位的瀏覽; 同時鼠標點擊2.5D熱點地圖上的區(qū)域,可以快速的進行場景切換,農(nóng)場的區(qū)域效果如圖6所示.

圖6 虛擬農(nóng)場的區(qū)域效果圖
系統(tǒng)中的每一種農(nóng)機設(shè)備的教學由拆裝教學模塊、拆裝練習模塊、工作原理模塊、故障檢測模塊以及維修保養(yǎng)模塊組成. 其中拆裝教學模塊是以動畫播放的形式來將每種設(shè)備的主要組成結(jié)構(gòu)來進行拆卸、裝配的演示說明; 針對拆裝練習模塊,設(shè)置了工具欄和零件欄,以交互的方式來完成每種設(shè)備的主要組成結(jié)構(gòu)的拆卸與裝配的訓練. 以小麥聯(lián)合收獲機為例,其各個功能模塊截圖如圖7所示.
系統(tǒng)中的每一種農(nóng)作物的機械化生產(chǎn)作業(yè)教學由耕地作業(yè)、播種作業(yè)、植保作業(yè)、收獲作業(yè)等4大模塊組成. 耕地作業(yè)以小麥機械化生產(chǎn)作業(yè)為例,其操作時效果如圖8所示.

圖7 小麥聯(lián)合收獲機教學展示
本文利用計算機建模與仿真技術(shù)、虛擬現(xiàn)實及可視化技術(shù),以現(xiàn)代農(nóng)場為原型,從虛擬仿真教學的角度出發(fā),在Unity平臺上開發(fā)了虛擬農(nóng)場農(nóng)業(yè)機械學仿真教學系統(tǒng),實現(xiàn)了真實的機械化生產(chǎn)作業(yè)的虛擬可視化,并且對各種主要農(nóng)機設(shè)備的拆裝、維修保養(yǎng)及工作原理進行了在線展示. 操作者可以通過虛擬環(huán)境內(nèi)反復對各種農(nóng)機進行拆裝以及故障維修訓練,掌握各式農(nóng)機的內(nèi)部結(jié)構(gòu)、工作原理、維修保養(yǎng)等方面的知識,并且該系統(tǒng)考核模塊的設(shè)置更是對學生知識理解程度的檢驗. 應(yīng)用結(jié)果表明,該系統(tǒng)實現(xiàn)了“老師易教,學生易學”的教學目的,“畫面感”的場景設(shè)置提高了學生的學習興趣,有效促進學生對知識點的深層次理解以及實踐能力的增強,是農(nóng)業(yè)機械教學模式的新突破.

圖8 耕地作業(yè)
1 鄒湘軍,孫健,何漢武,等. 虛擬現(xiàn)實技術(shù)的演變發(fā)展與展望. 系統(tǒng)仿真學報,2004,16(9):1905-1909.
2 朱忠祥,陳莉,李山山,等. 基于虛擬現(xiàn)實的聯(lián)合收獲機底盤虛擬裝配關(guān)鍵技術(shù). 農(nóng)業(yè)機械學報,2013,44(S2):262-267.
3 李潤聲,林衛(wèi)國,王樹才. 虛擬仿真技術(shù)在農(nóng)業(yè)機械課程教學中的應(yīng)用. 農(nóng)業(yè)工程,2015,5(3):112-114.
4 吳升,郭新宇,賀誼,等. 基于Unity3D的甘蔗種植虛擬教育培訓系統(tǒng)設(shè)計與實現(xiàn). 中國農(nóng)業(yè)科技導報,2014,16(6):96-102.
5 李兵. 農(nóng)業(yè)機械學省級精品課程建設(shè)的教學實踐. 安徽農(nóng)業(yè)科學,2015,43(25):391-392. [doi:10.3969/j.issn.0517-6611.2015.25.141]
6 楊雪松. 基于Unity 3D的發(fā)動機虛擬拆裝系統(tǒng)研究. 機械,2016,(1):32-35. [doi:10.3969/j.issn.1674-8530.15.0065]
7 王秀萍,程文明,梁曉波,等. 基于VR的起重運輸機械培訓仿真系統(tǒng)的研究. 機械設(shè)計與制造,2015,(7):223-226.
8 萬華明,楊麗,鄒湘軍,等. 基于VR技術(shù)的幾何建模與優(yōu)化. 蘇州科技學院學報(自然科學版),2009,26(4):20-24.