呂慶文,樊樹海,趙玲玲,徐文浩
JACK交互式實驗平臺的設(shè)計與開發(fā)
呂慶文1,2,樊樹海1,2,趙玲玲1,徐文浩1
(1. 南京工業(yè)大學(xué) 工業(yè)工程系,江蘇 南京 210009;2. 麻省理工學(xué)院 信息質(zhì)量項目“數(shù)據(jù)質(zhì)量與信息安全”實驗室,美國 馬薩諸塞州 02139)
為實現(xiàn)虛擬仿真實驗平臺的遠(yuǎn)程仿真和在線控制,基于JACK附帶的開放式編程接口和定制化仿真接口進行了交互式實驗平臺的設(shè)計,設(shè)計了交互式仿真系統(tǒng)結(jié)構(gòu)模型,并對JACK的2種開放式編程接口進行了比較。通過定制化仿真接口CPort模塊,開發(fā)了基于JACK/VB的交互系統(tǒng),并應(yīng)用于工廠生產(chǎn)實踐。
交互式實驗平臺;遠(yuǎn)程仿真;實驗教學(xué);JACK
虛擬仿真實驗是現(xiàn)代實驗教學(xué)的重要方式,可以降低教學(xué)成本,解決實驗技術(shù)難度高、實際操作性差等問題,提高實驗教學(xué)質(zhì)量和效率[1-2]。目前,桌面虛擬現(xiàn)實技術(shù)在虛擬仿真實驗教學(xué)中應(yīng)用最為廣泛,參與者可通過操作安裝有仿真平臺的個人計算機完成仿真實驗。然而在現(xiàn)行的教學(xué)中,常出現(xiàn)教學(xué)設(shè)備接口不一致、重復(fù)投資以及仿真實驗硬件和軟件方面的問題[3]。遠(yuǎn)程仿真技術(shù)解決了上述問題,實現(xiàn)了教學(xué)資源的共享,使學(xué)生可以不受時間、地點以及硬件設(shè)備的限制,自主進行虛擬仿真實驗[4-5]。
目前已有許多成熟的虛擬仿真軟件,如JACK,SAMMIE,IGRIP,CATIA等。這些軟件具備比較完備的仿真能力,但在遠(yuǎn)程仿真方面仍有進一步開發(fā)的需要[6]。本文基于JACK進行虛擬仿真實驗平臺的開放性設(shè)計與開發(fā),通過JACK附帶的開放式編程接口和定制化仿真接口,拓展虛擬仿真平臺的仿真功能,以達(dá)到遠(yuǎn)程仿真和在線控制的目的。
JACK是一款由美國賓夕法尼亞大學(xué)開發(fā)的三維仿真軟件,具有完備的虛擬人體模型數(shù)據(jù)庫以及較多的工效評估分析模塊,主要通過動態(tài)仿真獲取作業(yè)數(shù)據(jù)。
JACK動態(tài)仿真的實現(xiàn)完全依靠腳本語言。JACK的底層代碼開發(fā)環(huán)境為C語言,包括Tcl/Tk腳本和JackScript腳本。Tcl/Tk腳本用來編寫JACK界面及操作平臺、建立和修改模型,以及模型限制條件的設(shè)計。JackScript腳本是在Python語言基礎(chǔ)之上編寫的一組函數(shù),主要用于對模型的運動及運動分析進行控制,負(fù)責(zé)模型控制函數(shù)的編寫[7-8]。
基于JACK的交互式仿真系統(tǒng)總體設(shè)計結(jié)構(gòu)模型[9]如圖1所示。
圖1 JACK交互式仿真系統(tǒng)結(jié)構(gòu)模型
JACK交互式仿真系統(tǒng)設(shè)計為3個模塊,頂層為能夠設(shè)計出用戶界面的外部模塊;中間層為連接外部模塊和仿真模塊的通信模塊,是JACK交互式仿真系統(tǒng)的關(guān)鍵模塊;底層為仿真模塊即JACK虛擬仿真平臺,負(fù)責(zé)執(zhí)行用戶的仿真指令。JACK與外部程序建立通信的方法[10-11]包括:
(1)JackScript:實現(xiàn)方法包括:①動態(tài)鏈接庫(調(diào)用C語言編寫的共享庫中的函數(shù));②套接字通信(通過Socket接口建立雙向通信線路);③管道通信(進程通信,實現(xiàn)數(shù)據(jù)轉(zhuǎn)換);④文件傳輸(訪問文本文件)。
(2)Tcl/Tk:在遠(yuǎn)程仿真界面,通過JACK自帶的通信模塊與外部設(shè)備建立通信,實現(xiàn)遠(yuǎn)程仿真控制。
基于Windows系統(tǒng),通過JACK附帶的開放式編程接口及其定制化的仿真接口進行交互式仿真系統(tǒng)的開發(fā)。
在JACK中,腳本語言具有開放性,動態(tài)仿真結(jié)果可以以文件形式保存在磁盤中。其中,仿真場景和仿真過程分開儲存。
以離線方式運行動態(tài)仿真需要依次加載仿真場景文件和仿真過程文件,具體加載過程如下:
jsLoadFile {}
jsLoadFile {D:/Jack/test/Animation_1.env} false Animation_1 false; jiSimNow
jsAnimationWindow
set jcTimeline_3 [jcGlobal_getTimeline]
jcTimeline_setFrame $jcTimeline_3 0
jsLoadFile {D:/Jack/test/Animation_1_motions.env} false Animation_1_motions false; jiSimNow
jcTimeline_execute $jcTimeline_3
jcTimeline_stopTime $jcTimeline_3
用JACK附帶的CPort定制化仿真接口,通過Socket通信方式,使JACK與VB的Winsock控件建立通信,即開發(fā)出JACK的在線式交互仿真系統(tǒng)。其中,Socket通信的構(gòu)建流程[12]如圖2所示。
該系統(tǒng)采用學(xué)生端/服務(wù)器的層次結(jié)構(gòu),使用VB構(gòu)建的客戶機仿真界面作為學(xué)生端。通過登錄仿真界面,輸入Tcl/Tk腳本語句命令,將仿真指令傳輸?shù)絁ACK所在計算機中,保證了仿真過程的實時性與有效性,進而實現(xiàn)了遠(yuǎn)程在線仿真,拓展了JACK的仿真功能及應(yīng)用范圍。具體實現(xiàn)過程如下:
首先,打開JACK的CPort端口,將參數(shù)選為等待通信連接狀態(tài),內(nèi)容如圖3所示。
圖2 Socket通信流程圖
圖3 CPort端口
然后,在學(xué)生端使用Socket方式與目標(biāo)服務(wù)器建立通信,部分指令如下所示:
Private Sub Form_Load()
Winsock1.RemoteHost = "10.22.235.55"
Winsock1.RemotePort = 1225
Winsock1.Protocol = sckTCPProtocol
End Sub
最后,建立操作客戶機仿真界面。該界面包含創(chuàng)建虛擬人以及建立通信等按鈕,學(xué)生可控制按鈕實現(xiàn)學(xué)生端與服務(wù)器間的通信,通過輸入指令實現(xiàn)對JACK的在線控制。
在設(shè)計的交互式JACK實驗平臺上,對某鑄造廠生產(chǎn)的鑄件——發(fā)動機輸油件去毛刺標(biāo)準(zhǔn)作業(yè)的過程進行仿真。在仿真環(huán)境中,工人將工作臺上的工件移至操作區(qū),使用木錘去掉內(nèi)、外圈上的大毛刺,最后將工件放置于右側(cè)小車中。學(xué)生應(yīng)先依次構(gòu)建作業(yè)場景、工人模型以及仿真流程,然后進行參數(shù)設(shè)計和部件關(guān)系設(shè)計,最后運行仿真過程。
在客戶端依次輸入的Tcl/Tk指令如下:
jsLoadFile {D:/Jack/test/Animation_1.env} false Animation_1 false; jiSimNow
(導(dǎo)入靜態(tài)仿真環(huán)境)
set jcTimeline_3 [jcGlobal_getTimeline]
(加載動態(tài)仿真參數(shù))
jsLoadFile {D:/Jack/test/Animation_1_motions.env} false Animation_1_motions false; jiSimNow
(導(dǎo)入動態(tài)仿真)
jcTimeline_execute $jcTimeline_3
(運行仿真過程)
服務(wù)器接受指令并加載仿真內(nèi)容,仿真效果如圖4所示。
圖4 去毛刺標(biāo)準(zhǔn)作業(yè)仿真效果圖
以CPort仿真接口為例開發(fā)的基于JACK/VB的在線式仿真交互系統(tǒng)實現(xiàn)了信息的實時交流,并應(yīng)用于制造業(yè)工廠的生產(chǎn)流程仿真實驗,充分發(fā)揮了JACK在虛擬仿真實驗中的應(yīng)用優(yōu)勢,拓展了遠(yuǎn)程在線仿真功能,簡化了仿真操作流程,提高了實驗教學(xué)效率,降低了實驗教學(xué)成本。針對虛擬仿真實驗平臺的開放性進行研究,可以有效地拓展其應(yīng)用范圍,提高仿真實驗的可操作性和便捷性。
[1] 嚴(yán)鈺鋒,張惠琴,王見之,等. 虛擬實驗在功能學(xué)實驗教學(xué)中的應(yīng)用[J]. 中國高等醫(yī)學(xué)教育,2012(12): 1–3.
[2] 劉來玉,陳晨,董焱,等. 虛擬仿真實驗教學(xué)助推雙創(chuàng)教育的探索與實踐[J]. 實驗技術(shù)與管理,2017, 34(12): 128–131.
[3] 羅俊奇,陳瑋,廖翔云. MATLAB仿真的遠(yuǎn)程實現(xiàn)[J]. 微計算機信息,2007(28): 207–209.
[4] 劉亞豐,蘇莉,吳元喜,等. 虛擬仿真教學(xué)資源開放共享策略探索[J]. 實驗技術(shù)與管理,2016, 33(12): 137–141, 145.
[5] 王開宇,程春雨,金明錄. 遠(yuǎn)程虛擬仿真實驗教學(xué)中心建設(shè)[J]. 實驗技術(shù)與管理,2016, 33(12): 242–245.
[6] 張文倩,熊佳瑋,陳思雨,等. IGRIP開放性實驗平臺設(shè)計與開發(fā)[J]. 實驗技術(shù)與管理,2017, 34(12): 114–116, 137.
[7] 楊宇航,蘇曼迪,李雅峰. 基于Transom Jack仿真支持平臺的維修仿真系統(tǒng)[J]. 計算機工程與設(shè)計,2006(7): 1265–1268.
[8] 鈕建偉,張樂. JACK人因工程基礎(chǔ)及應(yīng)用實例[M]. 北京:電子工業(yè)出版社,2012.
[9] 李連中,翟敬梅,何海洋. 機器人虛擬仿真及遠(yuǎn)程控制系統(tǒng)的研究及實現(xiàn)[J]. 計算機工程與應(yīng)用,2016, 52(13): 238–242.
[10] 黃婷華,樊樹海,段賽賽,等. 采用Flexsim/Minitab的大規(guī)模定制質(zhì)量仿真系統(tǒng)的設(shè)計與開發(fā)[J]. 現(xiàn)代制造工程,2014(2): 6–9.
[11] 樊樹海,肖田元,喬桂秀,等. 基于DENEB-QUEST質(zhì)量仿真系統(tǒng)設(shè)計與實現(xiàn)[J]. 系統(tǒng)仿真學(xué)報,2002(5): 607–608, 616.
[12] 劉赟. Winsock技術(shù)在網(wǎng)絡(luò)通信系統(tǒng)中的應(yīng)用[J]. 西南科技大學(xué)學(xué)報,2013, 28(2): 88–91.
Design and development of JACK interactive experimental platform
Lü Qingwen1,2, FAN Shuhai1,2, ZHAO Lingling1, XU Wenhao1
(1. Department of Industrial Engineering, Nanjing Tech University, Nanjing 210009, China; 2. Information Quality Program “Data Quality and Information Security” Laboratory, Massachusetts Institute of Technology, Massachusetts 02139, USA)
In order to realize the remote simulation and online control of the virtual simulation experimental platform, a design is carried out for the interactive experimental platform on the basis of the open programming interface and the customized simulation interface attached to JACK. The structure model of interactive simulation system is designed, and two open programming interfaces of JACK are compared. An interactive system based on JACK/VB is developed through the customized simulation interface CPort module and applied to a factory production.
interactive experimental platform; remote simulation; experimental teaching; JACK
G642.423;TP391.9
A
1002-4956(2019)12-0120-03
10.16791/j.cnki.sjg.2019.12.028
2019-06-30
國家自然科學(xué)基金項目(71671089,71171110);江蘇省社會科學(xué)基金項目(15GLB020)
呂慶文(1996—),男,江蘇徐州,碩士研究生,主要研究方向為系統(tǒng)仿真、工業(yè)工程。E-mail: 347910071@qq.com
樊樹海(1975—),男,江蘇南京,博士,教授,主要研究方向為質(zhì)量控制、仿真與虛擬制造。