容秀嬋,鄒湘軍, ,李承恩,林俊強(qiáng),姚書(shū)杰,鄒天龍
(1. 華南農(nóng)業(yè)大學(xué)工程學(xué)院,廣州市,510642; 2. 佛山市中科農(nóng)業(yè)機(jī)器人與智慧農(nóng)業(yè)創(chuàng)新研究院,廣東佛山,528200)
我國(guó)果園面積和水果產(chǎn)量均居世界第一,但我國(guó)果園管理總體水平與國(guó)際先進(jìn)國(guó)家相差比較大,尤其是果園機(jī)械化、信息化和智能化管理技術(shù)差距更大[1]。為了適應(yīng)不斷發(fā)展的林果產(chǎn)業(yè)種植生產(chǎn)規(guī)模,果園全生命周期管理的技術(shù)創(chuàng)新及革新是目前亟需解決的難題之一[2-3]。我國(guó)果園多是在丘陵山地、平原、農(nóng)田上,山路崎嶇,地形變化大,導(dǎo)致果園作業(yè)難以智能化、機(jī)械化進(jìn)行,如施肥、采摘、運(yùn)輸產(chǎn)品等。其次,農(nóng)業(yè)機(jī)械化水平仍比較落后,地形復(fù)雜,難以制定比較方便、通用的機(jī)械工具。因此,依托虛擬現(xiàn)實(shí)的建模與仿真技術(shù)[4-6],構(gòu)建虛擬果園場(chǎng)景,發(fā)展信息化、智能化、機(jī)械化果園,是加速縮短與發(fā)達(dá)國(guó)家差距的迫切需要,對(duì)于加快推進(jìn)農(nóng)業(yè)農(nóng)村現(xiàn)代化具有重要的意義[7]。同時(shí)信息化技術(shù)、虛擬現(xiàn)實(shí)技術(shù)、交互技術(shù)的不斷發(fā)展[8-9],與虛擬現(xiàn)實(shí)技術(shù)相結(jié)合的虛擬環(huán)境實(shí)驗(yàn)平臺(tái)成為虛擬仿真技術(shù)發(fā)展的新方向[10],能有效加強(qiáng)信息化、智能化場(chǎng)景管理水平以及節(jié)約成本。
虛擬現(xiàn)實(shí)技術(shù)不僅推動(dòng)工業(yè)的發(fā)展,還可以對(duì)農(nóng)業(yè)的發(fā)展具有一定的推廣作用,通過(guò)該技術(shù)建立與農(nóng)業(yè)相關(guān)的數(shù)據(jù)庫(kù),農(nóng)業(yè)生產(chǎn)可視化[11-12]。華南農(nóng)業(yè)大學(xué)鄒湘軍等[13]開(kāi)發(fā)了采摘機(jī)械手虛擬設(shè)計(jì)與仿真系統(tǒng),實(shí)現(xiàn)了虛擬環(huán)境下的機(jī)械手對(duì)目標(biāo)定位和采摘仿真實(shí)驗(yàn)。羅陸鋒等[14]基于虛擬現(xiàn)實(shí)平臺(tái)EON開(kāi)發(fā)出采摘機(jī)器人虛擬仿真系統(tǒng),葡萄采摘的成功率在85%以上,此平臺(tái)驗(yàn)證了通過(guò)虛擬機(jī)器人采摘葡萄進(jìn)行算法驗(yàn)證及訓(xùn)練,驗(yàn)證了虛擬平臺(tái)內(nèi)對(duì)現(xiàn)實(shí)采摘算法開(kāi)發(fā)過(guò)程的效率提升,有效縮短開(kāi)發(fā)周期。劉旭泰[15]利用Unity3D構(gòu)建了番石榴采摘的虛擬環(huán)境,用于檢測(cè)所設(shè)計(jì)的末端執(zhí)行器的工作性能。Henten等[16]搭建了黃瓜采摘機(jī)器人采摘仿真平臺(tái)。Saudreau等[17]提出一種根據(jù)氣候數(shù)據(jù)對(duì)水果溫度動(dòng)態(tài)進(jìn)行建模的方法,該模型基于蘋(píng)果樹(shù)的三維虛擬表示,并將三維虛擬樹(shù)與基于物理的果實(shí)溫度動(dòng)態(tài)模型聯(lián)系起來(lái)。
綜上所述,以果園場(chǎng)景平臺(tái)搭建為例,針對(duì)目前果園的需求與流程,以Unity3D為場(chǎng)景的開(kāi)發(fā)平臺(tái),結(jié)合典型開(kāi)源關(guān)系型數(shù)據(jù)庫(kù)MySQL為三維模型特征信息參數(shù)存儲(chǔ)載體,并建立哈希索引列。在數(shù)據(jù)驅(qū)動(dòng)下,快速構(gòu)建出符合需求的三維模型,實(shí)現(xiàn)了大量三維模型的快速檢索調(diào)用。以果園場(chǎng)景為例,將天氣系統(tǒng)仿真場(chǎng)景數(shù)據(jù)、多種類(lèi)果樹(shù)模型數(shù)據(jù)、實(shí)景掃描地形數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)中,構(gòu)建果園場(chǎng)景數(shù)據(jù)庫(kù),快速創(chuàng)建虛擬果園場(chǎng)景仿真平臺(tái)。該平臺(tái)還留有六自由度機(jī)械臂關(guān)節(jié)運(yùn)動(dòng)的通用接口,以及拖拉機(jī)、收割機(jī)等運(yùn)動(dòng)控制腳本,方便后期用戶(hù)做試驗(yàn)仿真時(shí)使用。
隨著虛擬仿真技術(shù)的廣泛應(yīng)用,在虛擬仿真過(guò)程中需要對(duì)大量數(shù)據(jù)傳輸和存儲(chǔ)。采用系統(tǒng)與數(shù)據(jù)庫(kù)連接的方法,從而達(dá)到系統(tǒng)與數(shù)據(jù)庫(kù)的雙向交互,該方法具有簡(jiǎn)單、高效等特點(diǎn)。由3ds Max建立并渲染后的三維模型,保存為虛擬引擎軟件Unity3D可支持導(dǎo)入的FBX、OBJ等格式文件。再添加一些場(chǎng)景元素,即可搭建逼真的虛擬場(chǎng)景平臺(tái)?;谥R(shí)的果園虛擬場(chǎng)景系統(tǒng)的搭建,以數(shù)據(jù)庫(kù)為場(chǎng)景模型存儲(chǔ)方式,其整體架構(gòu)設(shè)計(jì)如圖1所示。
圖1 虛擬果園仿真平臺(tái)系統(tǒng)整體架構(gòu)Fig. 1 Overall architecture of the virtual orchard simulation platform system
果園場(chǎng)景數(shù)據(jù)庫(kù)的主要設(shè)計(jì)過(guò)程如下。
1) 歸納整理果園場(chǎng)景中主要實(shí)體的特征值,提取后構(gòu)建果園知識(shí)庫(kù)[18]。本文的果園知識(shí)獲取主要通過(guò)人工方式,從文獻(xiàn)收集、實(shí)例模型中整理出果園各實(shí)體的特征等設(shè)計(jì)知識(shí),提煉后構(gòu)建果園知識(shí)庫(kù)。
2) 果園知識(shí)參數(shù)化建模。模型參數(shù)化設(shè)計(jì)主要是由一個(gè)或幾個(gè)參數(shù)約束其調(diào)用后實(shí)例化的對(duì)象模型信息,此參數(shù)集合與設(shè)計(jì)對(duì)象的模型特征信息存在對(duì)應(yīng)關(guān)系,通過(guò)修改參數(shù)值可以驅(qū)動(dòng)原有模型生成具備變化的模型。根據(jù)果園知識(shí)庫(kù),將其主要特征值進(jìn)行參數(shù)化建模,并構(gòu)建果園場(chǎng)景特征信息數(shù)據(jù)庫(kù)。
3) 利用三維建模軟件3ds Max對(duì)果園中的三維場(chǎng)景模型建模,將虛擬場(chǎng)景模型保存為FBX、OBJ等格式文件即可導(dǎo)入U(xiǎn)nity3D中進(jìn)行渲染優(yōu)化,并構(gòu)建果園三維模型庫(kù)。
4) 將Unity3D與數(shù)據(jù)庫(kù)雙向通信交互,并構(gòu)建果園場(chǎng)景數(shù)據(jù)庫(kù),用戶(hù)可根據(jù)需求快速檢索調(diào)用所需的虛擬場(chǎng)景模型。例如,通過(guò)參數(shù)調(diào)用成熟蘋(píng)果的模型實(shí)例化,從數(shù)據(jù)庫(kù)中隨機(jī)調(diào)用成熟的蘋(píng)果材質(zhì);從數(shù)據(jù)庫(kù)中隨機(jī)調(diào)用蘋(píng)果的三維模型;從數(shù)據(jù)庫(kù)中計(jì)算獲取成熟蘋(píng)果的生長(zhǎng)概率分布等。
參數(shù)化建模是計(jì)算機(jī)輔助設(shè)計(jì)技術(shù)在長(zhǎng)期發(fā)展過(guò)程中產(chǎn)生的課題,它是實(shí)現(xiàn)智能化設(shè)計(jì)的必要技術(shù)。數(shù)據(jù)量龐大、種類(lèi)繁多、存儲(chǔ)方式、檢索、分類(lèi)調(diào)用、數(shù)據(jù)管理及可移植性,是參數(shù)化建模亟需解決的難題之一。虛擬場(chǎng)景模型的存儲(chǔ)、檢索的關(guān)鍵在于充分利用模型的特征信息。虛擬場(chǎng)景模型的特征信息主要包括幾何特征、形狀特征和紋理特征等,現(xiàn)階段提取特征的方法包括人工設(shè)計(jì)特征描述提取技術(shù)和基于學(xué)習(xí)的特征描述符提取技術(shù)。本文參數(shù)化建模階段采用人工設(shè)計(jì)特征描述提取技術(shù),根據(jù)三維模型的外表特征,構(gòu)建參數(shù)化模型。
數(shù)據(jù)庫(kù)設(shè)計(jì)是將數(shù)據(jù)實(shí)體以及實(shí)體間的關(guān)系進(jìn)行結(jié)構(gòu)化設(shè)計(jì),本文采用關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)存儲(chǔ)。關(guān)系型數(shù)據(jù)庫(kù)是由二維表及它們之間的聯(lián)系組成的數(shù)據(jù)組織,其原則包括原子性(automaticity)、一致性(consistency)、隔離性(isolation)和持久性(durability)。關(guān)系型數(shù)據(jù)庫(kù)擁有技術(shù)發(fā)展更成熟、更標(biāo)準(zhǔn)的數(shù)據(jù)模式和接口應(yīng)用更廣泛等優(yōu)點(diǎn),更適用于建立參數(shù)化模型數(shù)據(jù)庫(kù)[19]。結(jié)合關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)MySQL,其擁有輕量級(jí)、性能高、開(kāi)源[20]等特點(diǎn),對(duì)于中小型系統(tǒng),可降低成本,提升管理調(diào)用效率及可移植性[21]。
對(duì)果園場(chǎng)景進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì),對(duì)虛擬果園場(chǎng)景的數(shù)據(jù)進(jìn)行組織整理,對(duì)數(shù)據(jù)內(nèi)部結(jié)構(gòu)及模型特征進(jìn)行歸納總結(jié),實(shí)現(xiàn)虛擬場(chǎng)景模型數(shù)據(jù)和相關(guān)聯(lián)屬性數(shù)據(jù)的邏輯組織。最后根據(jù)模型數(shù)據(jù)的需求,對(duì)三維模型特征進(jìn)行預(yù)處理,通過(guò)定義每個(gè)虛擬場(chǎng)景模型的特征,建立該數(shù)據(jù)實(shí)例化后的某種唯一確定屬性。關(guān)系數(shù)據(jù)庫(kù)將對(duì)全部模型數(shù)據(jù)和特征數(shù)據(jù)建立關(guān)系表進(jìn)行管理,對(duì)模型文件的管理以表中存儲(chǔ)磁盤(pán)路徑的方式實(shí)現(xiàn)。
針對(duì)傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)對(duì)果園場(chǎng)景三維模型存儲(chǔ)和管理存在較多的瓶頸問(wèn)題,綜合提高數(shù)據(jù)的插入和查詢(xún)功能,MySQL中通常選擇“B-Tree”數(shù)據(jù)結(jié)構(gòu)作為存儲(chǔ)和索引結(jié)構(gòu),而使用B-Tree在二維表中存儲(chǔ)大量的虛擬場(chǎng)景模型URL地址信息時(shí),由于URL地址信息數(shù)據(jù)過(guò)長(zhǎng),存儲(chǔ)內(nèi)容占用過(guò)多內(nèi)存空間,導(dǎo)致檢索效率慢、內(nèi)存消耗大。本系統(tǒng)采用CRC32(循環(huán)冗余校驗(yàn))的方法,將虛擬場(chǎng)景模型URL地址信息轉(zhuǎn)為一定長(zhǎng)度的哈希值。在果樹(shù)表的urL_crc32列建立哈希索引列,每當(dāng)查詢(xún)?cè)撃P退谖恢脮r(shí),以int實(shí)數(shù)類(lèi)型索引查詢(xún)其哈希值,提升檢索效率,并快速調(diào)用對(duì)應(yīng)三維模型。
哈希算法是一種將任意長(zhǎng)度的二進(jìn)制值串映射為固定長(zhǎng)度的二進(jìn)制值串的規(guī)則,而通過(guò)原始數(shù)據(jù)映射之后得到的二進(jìn)制值串就是哈希值。如表1所示,在MySQL中,只有Memory引擎默認(rèn)支持哈希索引。如果存在多個(gè)hash值相同,發(fā)生哈希碰撞,那么該索引將以鏈表方式存儲(chǔ)。
表1 MySQL引擎支持的索引Tab. 1 Indexes supported by MySQL engine
如圖2所示,通過(guò)普通查找URL地址信息的時(shí)間與先轉(zhuǎn)化為哈希值在做查找的實(shí)驗(yàn)對(duì)比。當(dāng)數(shù)據(jù)量增加到30 000行時(shí),能明顯看出哈希查找效率較高。
圖2 查找對(duì)比試驗(yàn)Fig. 2 Search comparative experiment
果園場(chǎng)景擁有多種類(lèi)型模型,而每種模型各自擁有多種形態(tài)變化,利用特征值加以區(qū)分及調(diào)用各種模型數(shù)據(jù),如圖3所示。
1) 地形分為丘陵山地、平原、農(nóng)田等,通過(guò)獲取不同地形的高度圖,利用高度圖該特征區(qū)分地形的不同;
2) 果實(shí)模型分為蘋(píng)果、菠蘿、香蕉等,通過(guò)果實(shí)的大小、果皮的顏色、質(zhì)量、表面的粗糙程度等特征區(qū)分類(lèi)別。通過(guò)人工設(shè)計(jì)特征描述提取技術(shù),預(yù)處理果實(shí)的特征為參數(shù)型數(shù)據(jù),并存儲(chǔ)到數(shù)據(jù)庫(kù)中,在Unity3D建模時(shí),輸入該果實(shí)的特征數(shù)據(jù),在相對(duì)應(yīng)位置建立該特征對(duì)應(yīng)的模型;
3) 果樹(shù)模型的特征分為枝葉的疏密程度,樹(shù)枝大小不同,樹(shù)葉大小及形狀等;果實(shí)在果樹(shù)上的分布按照選取的生長(zhǎng)掛果情況,按隨機(jī)算法,使果實(shí)模型實(shí)例化分布在果樹(shù)模型上。
4) 天氣模型可分為陰天、雨天、大風(fēng)、霧霾、打雷等天氣系統(tǒng)數(shù)據(jù),用戶(hù)可自由選擇影響場(chǎng)景的任意一種天氣模型;
5) 光照按照光照強(qiáng)度可分為強(qiáng)光照、中度光照、弱光照等,按照光照種類(lèi)可分為人造光,自然光等。
圖3 果園場(chǎng)景模型庫(kù)Fig. 3 Orchard scene model library
2.3.1 真實(shí)地形模型創(chuàng)建
可利用Unity3D自帶的地形組件——Terrain組件進(jìn)行自定義地形塑造操作:對(duì)部分地形進(jìn)行凸起操作使其變成山丘,山峰,對(duì)部分地形進(jìn)行凹陷使其形成低洼或地形裂縫,但自定義地形建模不能真實(shí)反映當(dāng)?shù)毓麍@的情況,且地形不夠自然、優(yōu)化,本文通過(guò)獲取所需位置的真實(shí)地形數(shù)據(jù),構(gòu)建真實(shí)自然的虛擬場(chǎng)景地形。
獲取目的地的地形數(shù)據(jù),以惠州鎮(zhèn)隆為例,如圖4、圖5所示。生成該地區(qū)的高度圖(Height map),經(jīng)過(guò)格式轉(zhuǎn)換為.raw文件即可導(dǎo)入U(xiǎn)nity3D中的Terrain組件當(dāng)中。該地形數(shù)據(jù)與現(xiàn)實(shí)地形一一對(duì)應(yīng),其仿真度高,數(shù)據(jù)量少,導(dǎo)入時(shí)間短。
圖4 Terrain.party獲取地形數(shù)據(jù)Fig. 4 Terrain.party gets terrain data
由于導(dǎo)入進(jìn)去的地形是mesh網(wǎng)格,要將其轉(zhuǎn)化為Unity3D地形工具才可使用。在制作地形的時(shí)候通常是直接刷出整個(gè)地形,但是在實(shí)際使用中由于地形過(guò)大,我們不能直接把整個(gè)地形完全加載,這樣對(duì)內(nèi)存的消耗很高,所以需要一小塊一小塊的加載地形.這時(shí)就需要把制作好的地形分割成幾塊后,再來(lái)動(dòng)態(tài)加載。該平臺(tái)將其分割成16塊地形分類(lèi)。并進(jìn)行篩選分類(lèi)保存至相應(yīng)位置,即可在一塊大地形中保存多種不同的真實(shí)地形模型,如圖6所示。
圖5 真實(shí)地形三維模型Fig. 5 3D model of real terrain
圖6 地形分割Fig. 6 Terrain segmentation
2.3.2 果樹(shù)建模
由于果實(shí)在樹(shù)上的分布多樣性,本文利用Unity3D中的射線(xiàn)碰撞檢測(cè),構(gòu)建多種分布的果樹(shù)。在虛擬空間的某一相對(duì)于果樹(shù)模型的正交平面上發(fā)射若干個(gè)射線(xiàn),并通過(guò)改進(jìn)組合碰撞檢測(cè)隨機(jī)算法獲取果實(shí)分布點(diǎn),通過(guò)選取果實(shí)分布特征值,對(duì)分布點(diǎn)進(jìn)行二次計(jì)算使之符合所選的特征分布情況。構(gòu)建了20種的分布方式,在隨機(jī)實(shí)例化不同的果實(shí),每一種果實(shí)構(gòu)建出兩百多棵的果樹(shù),并存儲(chǔ)相關(guān)信息到數(shù)據(jù)庫(kù)當(dāng)中。圖7為其中一種果實(shí)分布的蘋(píng)果樹(shù)三維模型,圖8為菠蘿樹(shù)三維模型。為了方便后續(xù)做采摘仿真等實(shí)驗(yàn),采用的是果與樹(shù)組成果樹(shù)模型。
圖7 蘋(píng)果樹(shù)三維模型Fig. 7 3D model of apple tree
圖8 菠蘿樹(shù)三維模型Fig. 8 3D model of pineapple tree
在虛擬場(chǎng)景中,靜態(tài)模型之間相互接觸后,會(huì)出現(xiàn)穿模的現(xiàn)象,不符合在真實(shí)世界中物體之間互不干涉互不穿透的實(shí)體物理特性,如圖9所示。
圖9 球碰撞體Fig. 9 Sphere collider
使用基于物體空間的層次包圍盒碰撞檢測(cè)方法,使虛擬場(chǎng)景模型具備物理特性,該方法是對(duì)虛擬場(chǎng)景模型進(jìn)行完全的包圍,通過(guò)計(jì)算判斷虛擬場(chǎng)景模型的三維包圍盒之間是否發(fā)生接觸。常見(jiàn)的三維干涉檢測(cè)包圍盒主要分為4種:球包圍盒、軸向包圍盒、方向包圍盒、6-Dop盒,其中球包圍盒的球體碰撞是碰撞檢測(cè)技術(shù)中較為簡(jiǎn)單和計(jì)算消耗較少的,主要應(yīng)用球狀的且具有旋轉(zhuǎn)操作的規(guī)則模型檢測(cè),它的數(shù)學(xué)原理是通過(guò)判斷三維空間中坐標(biāo)點(diǎn)與球包圍盒的球心的距離[22]。一般適用于球形零件或者場(chǎng)景中的非主要影響因子之間的干涉檢測(cè)。有助于減少系統(tǒng)的計(jì)算量,增加系統(tǒng)的流暢度。
為了實(shí)現(xiàn)物體的交互與仿真,需要在虛擬環(huán)境下構(gòu)建事件觸發(fā)器。在良好的物理引擎的支持下,使用碰撞體可以逼真地模擬出現(xiàn)實(shí)物體的碰撞關(guān)系,而且碰撞體可以作為觸發(fā)器引發(fā)事件的發(fā)生。在Unity3D中內(nèi)置有6種基本的碰撞體組件:盒子碰撞器(Box Collider)、球碰撞器(Sphere Collider)、膠囊碰撞器(Capsule Collider),車(chē)輪碰撞器(Wheel Collider)、網(wǎng)格碰撞器(Mesh Collider)、地形碰撞器(Terrain Collider),本文通過(guò)對(duì)果實(shí)添加球碰撞體(Sphere Collider),能更好地還原果實(shí)實(shí)體物理特性。
2.3.3 光照強(qiáng)度
Unity3D內(nèi)置的光源包括Directional Light(平行光),Point Light(點(diǎn)光源),Spotlight(聚光燈),Area Light(區(qū)域光),Reflection Probe(反射探頭),Light Probe Group(光照探頭組)等,本平臺(tái)使用直接光照(Directional Light),其原理與太陽(yáng)光近似,不受position與scale的影響,Rotation會(huì)影響到光線(xiàn)照射的方向。光源發(fā)出的光線(xiàn)只經(jīng)過(guò)虛擬場(chǎng)景中物體對(duì)象一次反射后就進(jìn)入攝像機(jī)。通過(guò)定義光照強(qiáng)度的特征值,調(diào)節(jié)Directional Light 中的intensity值,使實(shí)例化光源數(shù)據(jù)分為強(qiáng)度光照、中度光照、弱光照等多個(gè)光照等級(jí),如表2所示。根據(jù)光照模型的特征取值不同,構(gòu)建光照4×3矩陣模型
式中:a——光照強(qiáng)度的intensity值,數(shù)據(jù)類(lèi)型為float型;
b——光距離值,數(shù)據(jù)類(lèi)型為float型;
R、G、B——矩陣數(shù)值在0~255之間,數(shù)值大小表示允許通過(guò)色彩數(shù)值,也稱(chēng)為灰度值,灰度越大,相應(yīng)色彩越深;
α——透明度。
表2 Directional Light intensity值Tab. 2 Directional Light intensity data
以時(shí)間為依據(jù),下列是果園場(chǎng)景中部分時(shí)間所使用的光照矩陣的值
早上6:10時(shí)的光照矩陣值
早上8:12時(shí)的光照矩陣值
中午12:56時(shí)的光照矩陣值
傍晚19:05時(shí)的光照矩陣值
系統(tǒng)采用Unity3D場(chǎng)景平臺(tái)開(kāi)發(fā)工具(圖10),后端程序使用C#語(yǔ)言。后臺(tái)數(shù)據(jù)庫(kù)采用MySQL,基于Unity3D虛擬果園系統(tǒng)開(kāi)發(fā)設(shè)計(jì)。該系統(tǒng)分為三部分,測(cè)試的服務(wù)端、客戶(hù)端和數(shù)據(jù)庫(kù)??蛻?hù)端和服務(wù)端都是基于Unity3D平臺(tái)開(kāi)發(fā)的。服務(wù)器主要實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的交互。Unity3D開(kāi)發(fā)一般使用PlayerPrefs來(lái)存儲(chǔ)數(shù)據(jù),但其數(shù)據(jù)量過(guò)于龐大,結(jié)構(gòu)過(guò)于復(fù)雜、維護(hù)成本過(guò)高且過(guò)程繁瑣,因此選用使用數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)數(shù)據(jù)。
圖10 系統(tǒng)架構(gòu)Fig. 10 System structure
系統(tǒng)應(yīng)用于果園場(chǎng)景仿真,主要分為以下幾塊:果園種植分布,果園天氣系統(tǒng),果園果實(shí)果樹(shù)仿真系統(tǒng),果園道路分布系統(tǒng),果園澆灌系統(tǒng),果園收獲仿真系統(tǒng)等。主要針對(duì)果園種植分布作解釋說(shuō)明,建立果園果樹(shù)的株行距要根據(jù)果園的綜合情況而定,如土壤質(zhì)地、肥力、水源條件、管理水平以及選用的品種等。在果園環(huán)境良好、果園管理水平較高的前提下,可用較小的株行距,如蘋(píng)果種植的株行距設(shè)置為2 m×3 m。根據(jù)氣候與土壤肥力及品種不同而異,可以采用不同的種植規(guī)格。通過(guò)查閱文獻(xiàn),得到果園種植的參數(shù)[23]如表3所示。
表3 種植參數(shù)Tab. 3 Indexes supported by MySQL engine
利用虛擬漫游功能更加地了解農(nóng)業(yè)自然以及農(nóng)田的布局,是虛擬果園場(chǎng)景渲染平臺(tái)的關(guān)鍵。場(chǎng)景漫游主要分為兩種:人工漫游和自動(dòng)漫游。本系統(tǒng)選用人工漫游功能。
在虛擬果園環(huán)境中通過(guò)控制攝像機(jī)完成漫游模式,利用C#編寫(xiě)的腳本與UI界面按鈕交互完成。通過(guò)設(shè)定一個(gè)旋轉(zhuǎn)中心,通過(guò)鼠標(biāo)滾輪控制視角的遠(yuǎn)近、按住鼠標(biāo)滾輪鍵拖動(dòng)鼠標(biāo)控制視角繞旋轉(zhuǎn)中心的旋轉(zhuǎn)、鍵盤(pán)點(diǎn)擊控制視角平移。
鼠標(biāo)滾輪控制視角縮進(jìn)與拉遠(yuǎn)的定義
本體的描述語(yǔ)言,也稱(chēng)之為表示語(yǔ)言、構(gòu)建語(yǔ)言或者標(biāo)記語(yǔ)言,種類(lèi)較多,例如OKBC、OCML、XOL、OWL等。李景就其中13種重要的本體表示語(yǔ)言進(jìn)行深入的比較分析,得出結(jié)論是:Loom、CycL和OWL是較佳的Ontology表示語(yǔ)言[9]。
Ds=Csmr×Smr
(1)
式中:Ds——視角移動(dòng)前后位置的偏差,m;
Csmr——虛擬環(huán)境中視角縮進(jìn)拉遠(yuǎn)的縮放系數(shù);
Smr——鼠標(biāo)滾輪滾動(dòng)量,有正負(fù)值,m。
鼠標(biāo)移動(dòng)控制視角旋轉(zhuǎn)的算法
(2)
式中:θx——視角在水平面上繞旋轉(zhuǎn)中心轉(zhuǎn)動(dòng)的角度,rad;
θy——視角在垂直面上繞旋轉(zhuǎn)中心轉(zhuǎn)動(dòng)的角度,rad;
Smy——鼠標(biāo)縱向垂直移動(dòng)量,mm;
Csmx——鼠標(biāo)橫向移動(dòng)量轉(zhuǎn)換為視角轉(zhuǎn)動(dòng)角度的轉(zhuǎn)換系數(shù),rad/mm;
Csmy——鼠標(biāo)縱向移動(dòng)量轉(zhuǎn)換為視角轉(zhuǎn)動(dòng)角度的轉(zhuǎn)換系數(shù),rad/mm。
鍵盤(pán)點(diǎn)擊控制視角移動(dòng)的算法
(3)
式中:Kbi——檢測(cè)鍵盤(pán)按鍵是否按下;
bi——鍵盤(pán)對(duì)應(yīng)按鈕編號(hào)。
(4)
式中:DK——視角位移量,m;
Db——視角平移單位量,m。
系統(tǒng)針對(duì)用戶(hù)的不同,可選擇兩種模式:自定義建模和自動(dòng)建模方式。由于更能模擬真實(shí)果園場(chǎng)景,本文在自動(dòng)建模方式中,給果樹(shù)排列添加了一個(gè)偏差值,使其更能反映真實(shí)果園的狀態(tài)。還添加雜草等干擾因素。自定義建模,是根據(jù)需求添加果樹(shù)模型的個(gè)數(shù)、位置。虛擬果園場(chǎng)景渲染平臺(tái)運(yùn)行結(jié)果如圖11、圖12所示,實(shí)現(xiàn)了虛擬果園場(chǎng)景平臺(tái)自定義果樹(shù)建模以及自動(dòng)排列果樹(shù)場(chǎng)景仿真,分別展示了丘陵山地、平原、田地不同場(chǎng)景不同果樹(shù)的場(chǎng)景平臺(tái)。交互方式主要通過(guò)鍵盤(pán)鼠標(biāo)實(shí)現(xiàn)不同漫游模式,模擬不同角度觀察場(chǎng)景平臺(tái)模型,呈現(xiàn)出一定的環(huán)境效果。
圖11 蘋(píng)果果園場(chǎng)景虛擬仿真平臺(tái)Fig. 11 Virtual simulation platform of apple orchard scene
圖12 菠蘿果園場(chǎng)景虛擬仿真平臺(tái)Fig. 12 Virtual simulation platform of pineapple orchard scene
虛擬果園場(chǎng)景平臺(tái)登陸與注冊(cè)界面,登錄后可獲取當(dāng)?shù)氐奶鞖狻囟?,通過(guò)Dropdown組件選擇自定義模式/自動(dòng)模式,果樹(shù)模型,以及地形,如圖13所示,可根據(jù)需求檢索導(dǎo)出所需要的果樹(shù),鼠標(biāo)點(diǎn)擊場(chǎng)景任意位置可添加此三維模型,也可多次添加模型,見(jiàn)圖14。
圖13 蘋(píng)果果園場(chǎng)景虛擬仿真平臺(tái)(自定義建模)Fig. 13 Virtual simulation platform of apple orchard scene(Custom modeling)
圖14 香蕉果園下雨場(chǎng)景虛擬仿真平臺(tái)Fig. 14 Banana orchard rain scene virtual simulation platform
為了試驗(yàn)本系統(tǒng)的實(shí)用性,選擇20不同案例進(jìn)行測(cè)試,測(cè)試結(jié)果見(jiàn)表4。該平臺(tái)能保證仿真系統(tǒng)運(yùn)行的流暢度,給用戶(hù)最佳的體驗(yàn)。
表4 平臺(tái)試驗(yàn)情況統(tǒng)計(jì)Tab. 4 Statistical of platform test
為了按照不同用戶(hù)要求及場(chǎng)景參數(shù),自動(dòng)批量化快速生成多個(gè)虛擬場(chǎng)景迎合用戶(hù)生產(chǎn)仿真需求,對(duì)三維模型特征信息進(jìn)行提取、參數(shù)化建模,進(jìn)而存儲(chǔ)到數(shù)據(jù)庫(kù)當(dāng)中,建立哈希索引列加快檢索的方法,提高大量虛擬場(chǎng)景模型存儲(chǔ)、檢索的效率,該方法能有效地加快模型查詢(xún)效率,快速建立虛擬場(chǎng)景模型。也能為后期虛擬場(chǎng)景模型新增提供了快速存儲(chǔ)的方式。本文以果園場(chǎng)景平臺(tái)搭建為例,針對(duì)試驗(yàn)場(chǎng)景平臺(tái)虛擬仿真問(wèn)題,為提高工作效率,最大限度減少人力、物力和時(shí)間的浪費(fèi),運(yùn)用了哈希索引,MySQL數(shù)據(jù)庫(kù)結(jié)合虛擬現(xiàn)實(shí)平臺(tái),實(shí)現(xiàn)了虛擬場(chǎng)景中果園場(chǎng)景中三維模型的構(gòu)建、三維場(chǎng)景模擬及人機(jī)交互界面的搭建,對(duì)虛擬場(chǎng)景平臺(tái)提供了計(jì)算機(jī)輔助支持。仿真結(jié)果表明,該系統(tǒng)可以較好地支持場(chǎng)景平臺(tái)的虛擬設(shè)計(jì)與仿真,且三維模型檢索效率也有所提高,縮短了農(nóng)業(yè)領(lǐng)域的開(kāi)發(fā)周期,也可為其他場(chǎng)景搭建的虛擬設(shè)計(jì)提供技術(shù)借鑒。該平臺(tái)還留有六自由度機(jī)械臂關(guān)節(jié)運(yùn)動(dòng)的通用接口,以及拖拉機(jī)、收割機(jī)等運(yùn)動(dòng)控制腳本,方便后期用戶(hù)做實(shí)驗(yàn)仿真時(shí)使用。
中國(guó)農(nóng)機(jī)化學(xué)報(bào)2022年8期