?

基于數字孿生的三維校園車輛漫游系統

2022-04-09 12:56王藝儒
電腦知識與技術 2022年6期
關鍵詞:數字孿生三維建模人機交互

王藝儒

摘要:隨著科技的發展與進步,數字孿生嶄露頭角。若具有足夠強大的技術,數字孿生技術可以完美地復制現實世界。因此數字孿生當前最大的應用方向就是車輛的智能駕駛,即車輛漫游。在現實世界,昂貴的測試金額以及具有限制的實驗場地讓智能駕駛止步不前,而數字孿生的出現,提高了智能駕駛的開發能力。該文對車輛在虛擬校園的漫游為主要內容。首先利用Cityengine和游戲引擎Unity3d對校園環境、車輛、樹木等場景進行建模。通過C#設計系統需要的代碼,讓用戶可以在虛擬校園下自由的控制車輛。最后收集車輛的信息、數據、參數等傳輸到網絡,進行人工交互功能。系統讓真實校園與虛擬校園成功地結合,節約了測試成本,為各大領域提供一種智能駕駛方法,為未來的數字孿生的發展奠定了基礎。

關鍵詞:數字孿生;Unity3d;三維建模;人機交互;C#

中圖分類號:TP391.9? ? ? 文獻標識碼:A

文章編號:1009-3044(2022)06-0094-03

開放科學(資源服務)標識碼(OSID):

1 數字孿生

1.1 什么是數字孿生

什么是數字孿生?數字孿生從基礎來看,就是利用某些軟件把現實生活中存在的物體情況通過數字化體現出來。就像谷歌,百度地圖等,它們將現實生活的建筑物、街道、樹木進行數字化智能化,然后將信息傳輸到每個人的手機上。

數字孿生被Grieves教授首次提出[1],隨著社會的發展,數字孿生的基本思想逐步形成,即虛擬空間中,將數字模型具有的信息和物理世界的實體互相映射,最后完美地復制出物理實體的活動軌跡及其生物特征。

隨著時代的進步與社會的發展,數字孿生逐漸被越來越多的專家提出,通過與物聯網,人工智能,大數據等領域結合并應用于各行各業。同時構思了越來越多以數字孿生為基礎的智能信息模式。

1.2 數字孿生下的車輛漫游

首先采集數據是重中之重。需到現場采集車輛內部的照片或圖片,車輛基本尺寸、校園風景、校園建筑、校園行走人員等,建立三維建模所需要用到的材質和圖片庫。需要對車輛等信息進行簡化繪制和建模。最后通過物聯網得到車輛參數與各結構數據,設計數據庫,界面設計,實現交互漫游,最后完成校園車輛漫游管理??偠灾?,就是充分利用物理模型、傳感器更新、車子運行歷史等數據,對車輛在不同環境和路線等進行仿真、監測、計算、調節、控制和集成,最后在虛擬空間中完成映射,從而反映相對應的實體車輛的活動周期過程[2]。

2 三維校園設計

隨著互聯網的發展,三維校園為眾多領域的工作人員帶來巨大的便利。想要成功構建與現實相似的三維校園,不同的應用技術有著不同的方法。當前主要的建模方法有:先畫出校園cad圖紙,然后導入3dmax進行建筑建模;直接利用Sketch Up 畫出模型最后渲染; ArcGIS Engine三維建模等。經過研究與實驗后,本文使用了專用于大規模城市仿真的 CityEngine 進行校園模型制作[3]。

2.1 三維校園實現過程

首先,校園建模所需的影像數據可以通過 CityEngine 中Get Map Data功能獲取,本文利用了Openstreetmap得到校園地圖具體的建筑信息,路網信息等。在建模前,要了解校園區域每一個建筑特點,例如顏色,高度,形狀等。通過得到的信息,找到相似的貼圖,最后編寫詳細的參數規則[4]。CityEngine中,建筑模型都是通過CGA規則進行描述的,當一個CGA被指定給一個圖形,那么這個建筑模型就會根據指定的圖形范圍來生成,如表1所示。

成功構建校園后,可以將整體建筑導出為fbx格式,進而導入Twinmotion軟件對植物,道路,人物等進行美化。同時在Twinmotion中在不同環境下對校園內部進行初級的動畫演示。最終結果如圖1所示。

3 車輛漫游實現

在虛擬的校園環境下,對車輛進行和現實相同的操作,通過虛擬現實技術漫游系統在車輛上的應用,利用腳本語言、碰撞檢測技術、界面設計,使用戶真實了解車輛功能和結構,設計和實現了虛擬車漫游展示系統[5]。

用戶可以像玩游戲一樣,駕駛汽車查看虛擬模型和各種相關數據信息。虛擬車輛與真實車輛也可以同步接收信息與狀態,從而讓虛、實狀態的同步,進而邁向自動駕駛領域。車輛漫游流程如圖2所示。

3.1 車輛漫游系統

本文選用Unity3d為開發工具,同時本身內置了種類非常多的組件,采用C#作為編輯語言,作為業界著名的開源游戲引擎,它可以讓使用人員感受到炫酷,現實化的三維游戲,人物,VR等交互界面[6]。因此它非常個人或小型團隊進行使用,如圖3所示。

3.2 車輛漫游跟隨視角

對車輛建模后,令相機跟隨車輛。例如按下Q,E可以左右旋轉視角;滾動鼠標滑輪可以放大或者縮小視角[7];

首先,新建C#腳本FollowPlayer并掛載相機上,設置跟隨物體的Tag值為Player;調整當前Scene視角對準跟隨物體,按下Ctrl + Shift + F,讓相機視角對準跟隨物體,設置好相關參數;之后運行場景,相機即可跟隨游戲物體移動。

3.3 車輛漫游的碰撞技術

碰撞技術對Unity3d來說非常重要。在虛擬三維的校園中,建筑物與正在行駛的車輛是相互獨立的。車輛在漫游過程中會自動避開障礙物。而碰撞技術也可以檢查物體之間是否發生物理接觸,同時根據物體的特點做出對應的碰撞響應[8]。在 Unity3d 里面要想實現碰撞,物體之間都要具有碰撞組件,同時運動的組件具有剛體。這樣可以詳細描繪車輛在漫游時不小心與墻壁,建筑物等相撞時具體的反應和狀態。

另外,車輪碰撞器(WheelCollider)是一種特殊的地面車輛碰撞器,是用Unity3d制作車輛漫游的關鍵,它可以模擬輪子的碰撞過程,車輛的物理引擎等。

在添加輪子時,可以給車輛添加碰撞器Rigidbody并調整質量。另外在車輛模型下建立名為PhysicalBody的空物體,用于存放車輛的碰撞器組件。同時再添加四個空物體組件代表車輛的四個輪子[9]。在PhysicalBody里添加名為Collider的空物體,用于給車輛添加碰撞器。最后給2個Collider添加BoxCollider組件,然后點擊Collider的屬性面板的Edit Collider調整位置和大小。再給4個輪子分別添加WheelCollider,根據Transform的數值調整輪子的位置和大小。

3.4 車輛的自動尋路

首先選擇校園場景,設置可通過區域與障礙區域。Inspector視圖窗口static旁的小三角形按鈕顯示下拉列表,選中navigation static。在菜單欄打開Navigation窗口。其中Bake窗口顯示的參數主要是尋路過程中不同地形的影響,可以根據需要進行修改。單擊Bake按鈕計算整體地形,得到的尋路數據會與目前的Scene相關聯[10]。

選中車輛,把得到的尋路組件給予車輛。在菜單欄上選擇Component→Nav Mesh Agent。最后利用C#寫出車輛運動的代碼,讓車輛移動到用戶指定的目的地。最后將代碼指定為車輛的腳本組件,實現了車輛的自動漫游。

4 車輛漫游的交互設計

車輛在漫游時進行人機交互,用戶在現實生活中控制真實車輛的數據,利用網絡將得到的數據發送給Unity3d,進而利用得到的參數與函數控制虛擬車輛[11]。同理可知,在虛擬校園中控制車輛,得到的數據也可以利用網絡發送給現實車輛。實現了用戶在不同環境下的車輛漫游過程,成功對現實與虛擬進行交互。GUI作為Unity3d的交互界面,它可以通過撰寫代碼,對腳本進行編寫。GUI的代碼需要寫在OnGUI()這個函數里,每當重啟GUI,都會執行這個方法。

首先,在Unity3d里面新建一個C#腳本,把它附加到某個虛擬物品上。然后將OnGUI()函數放在新創建的腳本里面。同時大多數GUI控件都需要一個Rect對象,這是因為每種控件都需要設置其位置和大小。其中,第二個參數可以為一個字符串,也可以為圖像。另外,Rect對象的四個參數分別代表:控件左上角x坐標,控件左上角y坐標,控件的寬度,控件的高度。

4.1 車輛漫游交互的功能

1) 利用Carsim或其他軟件,將現實的車輛信息數據收集起來,因此虛擬車輛中可以正確獲取相關的參數。Carsim以車輛動力學為基礎,將數據發送到服務器,最后控制虛擬場景,駕駛虛擬車輛。

2) 用戶可以切換不同景色,觀測校園下不同景色的車輛漫游過程[12]。代碼如下:

public class changeweather : MonoBehaviour

{

UniStormWeatherSystem_C UniStormSystem;

// Start is called before the first frame update

private void OnGUI()

{

Rect rect1 = new Rect(10, 20, 50, 30);

Rect rect2 = new Rect(10, 60, 50, 30);

Rect rect3 = new Rect(10, 100, 50, 30);

Rect rect4 = new Rect(10, 140, 50, 30);

if ( GUI.Button(rect1, “雨”))

{

UniStormSystem.GetComponent<UniStormWeatherSystem_C>().weatherForecaster = 12; //雨

}

if (GUI.Button(rect3, “晴天”))

{

UniStormSystem.GetComponent<UniStormWeatherSystem_C>().weatherForecaster = 8; //晴天

}

if (GUI.Button(rect4, “霧霾”))

{

UniStormSystem.GetComponent<UniStormWeatherSystem_C>().weatherForecaster = 1; //霧霾

}

}

void Start()

{

UniStormSystem = GameObject.Find(“UniStormSystemEditor”).GetComponent<UniStormWeatherSystem_C>();

}}

3) 在車輛漫游的過程中,可以利用MySql作為校園建筑的數據管理與開發的基礎。首先定義連接數據庫的字符串后連接數據庫,代碼如下:

public static MySqlConnection Connect()

{

MySqlConnection conn=new MySqlConnection(CONNECTIONSTRING);

try

{

conn.Open();

return conn;

}

catch (Exception e)

{

Console.WriteLine("打開數據庫錯誤!"+e);

return null;

}}

因此當用戶在虛擬校園漫游時,也可以利用數據庫,通過菜單查詢路過的建筑等物體信息。在車輛漫游的同時完成并實現信息的交互。

5 結束語

本文構建一種虛擬校園環境下的車輛漫游系統?,F實世界各種動態可以在虛擬環境里同步更新,同時虛擬校園也可以做各種測試、分析等結果,進而進行信息數據的傳輸。車輛在現實校園運行的同時,車輛的運動狀態,車輛信息采集后反饋給虛擬場景,從而完成虛、實狀態的同步,實現整個數字孿生系統仿真。

參考文獻:

[1] 朱睿.數字孿生驅動的螺線管裝配生產線運維系統設計與研究[D].南京:東南大學,2019.

[2] 葛雨明,汪洋,韓慶文.基于數字孿生的網聯自動駕駛測試方法研究[J].中興通訊技術,2020,26(1):25-29.

[3] 孫守清,陳宜金,陳俊美.基于CityEngine和SketchUp的快速精細三維建模[J].北京測繪,2021,35(7):880-883.

[4] 賀體剛,陳鑫.基于CityEngine建模技術的三維虛擬校園開發與制作[J].電子技術與軟件工程,2020(24):42-43.

[5] 李芳,邱利偉,王會艷.虛擬現實技術漫游系統在軌道車輛上的研究及應用[J].科技視界,2018(12):245-246.

[6] Cheliotis K.ABMU:an agent-based modelling framework for Unity3D[EB/OL].[2021-08-20]. https://www.sciencedirect.com/science/article/pii/S2352711021000881.

[7] Lin M,Shan L J,Zhang Y C.Research on robot arm control Based on Unity3D machine learning[J].Journal of Physics:Conference Series,2020,1633(1):012007.

[8] 李虹,陸培培.基于Unity3D的虛擬動畫系統設計[J].現代電子技術,2021,44(8):164-168.

[9] 彭俊江.基于Unity3D的軌道車輛虛擬設計系統研究[D].南昌:華東交通大學,2020.

[10] 王志崗.基于Unity3D的自動尋路導航系統的研究[J].電腦知識與技術,2019,15(36):209-211.

[11] Ruan Weihua.Design and Implementation of AR Vehicle Display Model Based on Unity3D[C]//International Information and Engineering Association.Proceedings of 2018 3rd International Conference on Mechatronics and Information Technology(ICMIT 2018).International Information and Engineering Association:計算機科學與電子技術國際學會(Computer Science and Electronic Technology International Society),2018:8.

[12] 萬平,彭俊江,肖乾,等.基于Unity3D的軌道車輛虛擬設計系統研究[J].華東交通大學學報,2021,38(1):106-112,142.

【通聯編輯:謝媛媛】

猜你喜歡
數字孿生三維建模人機交互
淺析大數據時代的機械設計發展趨勢
“數字孿生”改變行業規則的頂尖技術
圖書館未來的技術應用與發展
農用風力發電機葉片設計
某型柴油機虛擬維修系統研究
數控仿真系統三維建模技術研究
基于GIS的網絡三維系統的構建及應用
人機交互課程創新實驗
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合