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