JACK交互式实验平台的设计与开发
2019-12-27吕庆文樊树海赵玲玲徐文浩
吕庆文,樊树海,赵玲玲,徐文浩
JACK交互式实验平台的设计与开发
吕庆文1,2,樊树海1,2,赵玲玲1,徐文浩1
(1. 南京工业大学 工业工程系,江苏 南京 210009;2. 麻省理工学院 信息质量项目“数据质量与信息安全”实验室,美国 马萨诸塞州 02139)
为实现虚拟仿真实验平台的远程仿真和在线控制,基于JACK附带的开放式编程接口和定制化仿真接口进行了交互式实验平台的设计,设计了交互式仿真系统结构模型,并对JACK的2种开放式编程接口进行了比较。通过定制化仿真接口CPort模块,开发了基于JACK/VB的交互系统,并应用于工厂生产实践。
交互式实验平台;远程仿真;实验教学;JACK
虚拟仿真实验是现代实验教学的重要方式,可以降低教学成本,解决实验技术难度高、实际操作性差等问题,提高实验教学质量和效率[1-2]。目前,桌面虚拟现实技术在虚拟仿真实验教学中应用最为广泛,参与者可通过操作安装有仿真平台的个人计算机完成仿真实验。然而在现行的教学中,常出现教学设备接口不一致、重复投资以及仿真实验硬件和软件方面的问题[3]。远程仿真技术解决了上述问题,实现了教学资源的共享,使学生可以不受时间、地点以及硬件设备的限制,自主进行虚拟仿真实验[4-5]。
目前已有许多成熟的虚拟仿真软件,如JACK,SAMMIE,IGRIP,CATIA等。这些软件具备比较完备的仿真能力,但在远程仿真方面仍有进一步开发的需要[6]。本文基于JACK进行虚拟仿真实验平台的开放性设计与开发,通过JACK附带的开放式编程接口和定制化仿真接口,拓展虚拟仿真平台的仿真功能,以达到远程仿真和在线控制的目的。
1 JACK仿真实验平台系统分析
JACK是一款由美国宾夕法尼亚大学开发的三维仿真软件,具有完备的虚拟人体模型数据库以及较多的工效评估分析模块,主要通过动态仿真获取作业数据。
JACK动态仿真的实现完全依靠脚本语言。JACK的底层代码开发环境为C语言,包括Tcl/Tk脚本和JackScript脚本。Tcl/Tk脚本用来编写JACK界面及操作平台、建立和修改模型,以及模型限制条件的设计。JackScript脚本是在Python语言基础之上编写的一组函数,主要用于对模型的运动及运动分析进行控制,负责模型控制函数的编写[7-8]。
2 JACK交互式仿真系统设计
基于JACK的交互式仿真系统总体设计结构模型[9]如图1所示。
图1 JACK交互式仿真系统结构模型
JACK交互式仿真系统设计为3个模块,顶层为能够设计出用户界面的外部模块;中间层为连接外部模块和仿真模块的通信模块,是JACK交互式仿真系统的关键模块;底层为仿真模块即JACK虚拟仿真平台,负责执行用户的仿真指令。JACK与外部程序建立通信的方法[10-11]包括:
(1)JackScript:实现方法包括:①动态链接库(调用C语言编写的共享库中的函数);②套接字通信(通过Socket接口建立双向通信线路);③管道通信(进程通信,实现数据转换);④文件传输(访问文本文件)。
(2)Tcl/Tk:在远程仿真界面,通过JACK自带的通信模块与外部设备建立通信,实现远程仿真控制。
3 JACK交互式仿真系统开发
基于Windows系统,通过JACK附带的开放式编程接口及其定制化的仿真接口进行交互式仿真系统的开发。
3.1 离线式交互系统开发
在JACK中,脚本语言具有开放性,动态仿真结果可以以文件形式保存在磁盘中。其中,仿真场景和仿真过程分开储存。
以离线方式运行动态仿真需要依次加载仿真场景文件和仿真过程文件,具体加载过程如下:
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
3.2 在线式交互系统开发
用JACK附带的CPort定制化仿真接口,通过Socket通信方式,使JACK与VB的Winsock控件建立通信,即开发出JACK的在线式交互仿真系统。其中,Socket通信的构建流程[12]如图2所示。
该系统采用学生端/服务器的层次结构,使用VB构建的客户机仿真界面作为学生端。通过登录仿真界面,输入Tcl/Tk脚本语句命令,将仿真指令传输到JACK所在计算机中,保证了仿真过程的实时性与有效性,进而实现了远程在线仿真,拓展了JACK的仿真功能及应用范围。具体实现过程如下:
首先,打开JACK的CPort端口,将参数选为等待通信连接状态,内容如图3所示。
图2 Socket通信流程图
图3 CPort端口
然后,在学生端使用Socket方式与目标服务器建立通信,部分指令如下所示:
Private Sub Form_Load()
Winsock1.RemoteHost = "10.22.235.55"
Winsock1.RemotePort = 1225
Winsock1.Protocol = sckTCPProtocol
End Sub
最后,建立操作客户机仿真界面。该界面包含创建虚拟人以及建立通信等按钮,学生可控制按钮实现学生端与服务器间的通信,通过输入指令实现对JACK的在线控制。
4 JACK的交互式仿真实验
在设计的交互式JACK实验平台上,对某铸造厂生产的铸件——发动机输油件去毛刺标准作业的过程进行仿真。在仿真环境中,工人将工作台上的工件移至操作区,使用木锤去掉内、外圈上的大毛刺,最后将工件放置于右侧小车中。学生应先依次构建作业场景、工人模型以及仿真流程,然后进行参数设计和部件关系设计,最后运行仿真过程。
在客户端依次输入的Tcl/Tk指令如下:
jsLoadFile {D:/Jack/test/Animation_1.env} false Animation_1 false; jiSimNow
(导入静态仿真环境)
set jcTimeline_3 [jcGlobal_getTimeline]
(加载动态仿真参数)
jsLoadFile {D:/Jack/test/Animation_1_motions.env} false Animation_1_motions false; jiSimNow
(导入动态仿真)
jcTimeline_execute $jcTimeline_3
(运行仿真过程)
服务器接受指令并加载仿真内容,仿真效果如图4所示。
图4 去毛刺标准作业仿真效果图
5 结语
以CPort仿真接口为例开发的基于JACK/VB的在线式仿真交互系统实现了信息的实时交流,并应用于制造业工厂的生产流程仿真实验,充分发挥了JACK在虚拟仿真实验中的应用优势,拓展了远程在线仿真功能,简化了仿真操作流程,提高了实验教学效率,降低了实验教学成本。针对虚拟仿真实验平台的开放性进行研究,可以有效地拓展其应用范围,提高仿真实验的可操作性和便捷性。
[1] 严钰锋,张惠琴,王见之,等. 虚拟实验在功能学实验教学中的应用[J]. 中国高等医学教育,2012(12): 1–3.
[2] 刘来玉,陈晨,董焱,等. 虚拟仿真实验教学助推双创教育的探索与实践[J]. 实验技术与管理,2017, 34(12): 128–131.
[3] 罗俊奇,陈玮,廖翔云. MATLAB仿真的远程实现[J]. 微计算机信息,2007(28): 207–209.
[4] 刘亚丰,苏莉,吴元喜,等. 虚拟仿真教学资源开放共享策略探索[J]. 实验技术与管理,2016, 33(12): 137–141, 145.
[5] 王开宇,程春雨,金明录. 远程虚拟仿真实验教学中心建设[J]. 实验技术与管理,2016, 33(12): 242–245.
[6] 张文倩,熊佳玮,陈思雨,等. IGRIP开放性实验平台设计与开发[J]. 实验技术与管理,2017, 34(12): 114–116, 137.
[7] 杨宇航,苏曼迪,李雅峰. 基于Transom Jack仿真支持平台的维修仿真系统[J]. 计算机工程与设计,2006(7): 1265–1268.
[8] 钮建伟,张乐. JACK人因工程基础及应用实例[M]. 北京:电子工业出版社,2012.
[9] 李连中,翟敬梅,何海洋. 机器人虚拟仿真及远程控制系统的研究及实现[J]. 计算机工程与应用,2016, 52(13): 238–242.
[10] 黄婷华,樊树海,段赛赛,等. 采用Flexsim/Minitab的大规模定制质量仿真系统的设计与开发[J]. 现代制造工程,2014(2): 6–9.
[11] 樊树海,肖田元,乔桂秀,等. 基于DENEB-QUEST质量仿真系统设计与实现[J]. 系统仿真学报,2002(5): 607–608, 616.
[12] 刘赟. Winsock技术在网络通信系统中的应用[J]. 西南科技大学学报,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
国家自然科学基金项目(71671089,71171110);江苏省社会科学基金项目(15GLB020)
吕庆文(1996—),男,江苏徐州,硕士研究生,主要研究方向为系统仿真、工业工程。E-mail: 347910071@qq.com
樊树海(1975—),男,江苏南京,博士,教授,主要研究方向为质量控制、仿真与虚拟制造。