APP下载

虚拟现实技术在自动控制中的应用

2014-08-07王靖欣

微处理机 2014年3期
关键词:代码生成闸机碰撞检测

肖 颖,王靖欣

(重庆金美通信有限责任公司,重庆400030)

虚拟现实技术在自动控制中的应用

肖 颖,王靖欣

(重庆金美通信有限责任公司,重庆400030)

针对闸机等自动控制设备,提出了一种基于虚拟现实和自动代码生成技术的开发和调试技术。利用3DSMAX绘制3D模型,利用Virtools实现3D模型的互动,而通行策略的处理方案源于MATLAB/Stateflow模型及其生成的C代码,借助MATLAB的绘图功能和传统碰撞检测算法对仿真进一步优化。多种工具相辅相成,完成底层代码的设计和仿真调试工作,不仅能节省大量的硬件成本,缩短研发周期,还避免了设备模型对调试人员造成的意外伤害,具有一定的可靠性和可行性。

闸机;自动代码生成;虚拟现实

1 引 言

随着计算机技术的不断发展,虚拟现实技术已经被广泛应用到国防、工业、艺术等方面,它极大地降低了开发成本和风险,结合逐渐成熟的自动代码生成技术,能让研发过程更为严谨和科学。而闸机作为轨道交通的主要设备,关系着乘客安全和车站利益,其通行检测策略则是通行控制的关键。将虚拟现实技术和自动代码生成技术运用于闸机设计,对类似自动控制系统的开发具有较高的参考价值,将带来较大的收益!

2 物理元素的实现

为构建方便,忽略两端斜面,直接将机箱看成由两个长方体组成。其它的传感器、扇门等机械部件均由基本集合体及其组合体构成,人物模型及动作源于网络共享素材。将它们调整到与现实一致的比例后,导入Virtools平台。如图1和图2所示。

图1 物体导出效果

图2 扇门轴心设置透视图

扇门开启时,其内侧恰好收拢于机箱内;闸机安装严格按照门机厂家的官方尺寸,关闭后扇门最小间距为50mm,如图3所示。为了便于观察运动状态,模型中扇形角度大于实际扇门角度。

图3 扇门官方安装设置

为保证扇门在关闭时间距为50mm,在两扇门的中间创建一个0.05×0.05×0.1的辅助物体。关闭时,使两扇门刚好和这个长方体接触;同理,靠两边的两个辅助物体分别用于实现扇门开启到位的检测,如图4所示。为了不影响观察,仿真时将其设置为不可见。

图4 扇门及辅助物体示意图

开门动作的实现不需要考虑障碍物的影响。对任意一扇门,开门前先通过Face Face Intersection BB模块判断扇门和两侧辅助物体是否发生碰撞;如果发生碰撞则进行接下来的转动,Per Second和Rotate BB模块组合实现每秒转指定角度的功能;如未发生碰撞则不再转动。将该功能封装到一个BG模块_BG_OpenOneBar中。除了给BG添加bIn、p In,另外添加处于有碰撞(未开启到位)和无碰撞(已开启到位)情况下的两个bOut[1],如图5所示。

图5 单个扇门开启功能模块

为了保证每次扇门打开会不停旋转直到到位,需要让_BG_OpenOneBar BG模块循环执行。对于两个扇门,这里将它们各自的操作封装到一个BG模块_ BG_OpenGate中,这样设计保证了每次执行BG模块都能让两个扇门转动,直到开启到位,如图6所示。

图6 两个扇门开启功能模块

扇门的关闭在仿真中较为复杂:①将扇门两端20cm左右的范围划分为安全区域,如果正在进行关门操作,且安全区域内有传感器被遮挡,必须马上将关门操作变为开门,这里的依据是闸机的功能需求;②门机自身的机械特性让门机撞击到障碍物时会受阻。此处的安全区域如图7中虚线区域所示。

图7 安全区域示意图

关门模块的搭建与开门模块类似,不同之处在于转动方向和辅助物体相关的逻辑判断。如图8所示。结合图7容易理解,当安全区域较大时,一般不会出现乘客拖行李通过后行李被扇门阻挡的情况。

图8 单个扇门关闭功能模块

此处用Test BB模块依次检测它们的数据。如果指示都未被遮挡,则Wait For All BB模块将触发该BG模块的bOut;反之不会触发,如图9所示。

图9 安全区域传感器检测模块

完整的关门操作首先需要_BG_SafeZoneSensorTest BG模块进行传感器数据判断,如果安全区域没有传感器被遮挡,则通过_BG_CloseOneBar BG模块进行关门操作,直到关闭到位;否则在开始到关闭完成前,安全区域内传感器的任何遮挡将导致扇门打开,并一直循环判断传感器数据,直到适合关门并完成关门操作。将上述功能封装到BG模块_BG_ CloseGate中,可以实现每次激活此BG模块都能让扇门按照功能需求和实际情况完成扇门关闭操作,如图10所示。

图10 安全区域传感器检测模块

另外障碍物对扇门关闭的阻碍可以通过对两个扇门添加群组碰撞设置实现,其中群组成员根据后续仿真内容将乘客或行李添加进去。使用Object Slider BB模块可以简单实现这个功能,该群组成员则赋予了对扇门的碰撞阻挡效果,如图11所示。

图11 群组碰撞设置

可以将传感器检测功能视为定长线段(对应固定位置的光束)与人物模型或者行李模型的碰撞(或不碰撞)。这里借助了Virtools中的Ray Intersection模块进行碰撞检测,并添加一个Wait For All BB模块强制让所有的子模块同步[2],用以获取某一时刻所有传感器数据。如图12所示。

3 逻辑模型的搭建

逻辑模型是自动代码生成的原材料。以通过某区域的检测模块为例,整个通行过程是一个连续渐变的过程,将其看作是在若干个状态间的转换,而其中三个传感器是状态转换的主要依据。可以采用状态机形式的模型作为该模块的主体,但是在每次执行状态转换前将三个传感器数据整合在一起。这里采用默认连接结合流程图的方式[3]。

另外再添加一个与其Parallel(并行)而非Exclusive(互斥)的状态图,以实现状态转换的操作,并保持如图相对的上下位置,以实现固定的执行次序[4]。

图12 所有传感器仿真模块

图13 传感器数据整合

图14 并行机制的运用

4 工程仿真优化

当传感器数量较多时,仿真的系统消耗也将增大,而针对传感器的碰撞检测也有优化的必要。例如当乘客或者行李远离某些传感器时,没有必要针对那些传感器进行碰撞检测[5]。这里将传感器列入多个长方体区域,当乘客或行李的包围盒没有和长方体区域的包围盒发生碰撞时,就不对区域内的传感器进行碰撞检测,理论上可以降低某些区域传感器的系统消耗[6-8]。如图15所示。

借鉴传统的层次包围盒碰撞检测性能公式[9]。

图15 “虚拟区域”透视图效果

可以得出优化后的性能公式:

其中,T1—碰撞检测的总代价,NV0—未发生碰撞的包围盒(“虚拟区域”&&乘客模型)对数,CV0—对未发生碰撞的包围盒相交测试的耗费,NV1—发生碰撞的包围盒(“虚拟区域”&&乘客模型)对数,CV1—对发生碰撞的包围盒相交测试的耗费;NP0′—发生碰撞的包围盒中未发生几何碰撞的几何元素对数,CP0—对未发生几何碰撞的几何元素做相交测试的耗费,NP1′—发生碰撞的包围盒中,发生几何碰撞的几何元素对数,CP1—对发生几何碰撞的几何元素做相交测试的耗费。

当划分的区域数量一定,且每个区域内传感器数量一定时:

此时设一个区域内的传感器个数为ns。另外还有:NV—参与包围盒相交测试的包围盒对数,且NV=NV0+NV1(优化后);NP—参与几何相交测试的几何元素对数,且NP=NP0+NP1(优化前);NP′—发生碰撞的包围盒中,参与几何相交测试的几何元素对数,且NP′=NP0′+NP1′(优化后);对于同一种模型下的同一种情况,针对优化前后的两种算法,必有NP0≥P0′,NP1=NP1′,NP≥NP′。

性能变化:

则:

设NV=10,ns=20,NV1在0到10间变化,依据之前设定,此时必满足NP1≤ns×NV1,另X、Y、Z轴分别为NV1、NP1和,如图16所示。可以看出当NV1较小的时候优化效果较好,且NP1越小,效果越好;当NV1达到某个临界值后,优化开始产生负面效果,且此时NP1越小,效果越差。综上所述:NP1越大,优化效果越接近于0;NP1越小,NV1在临界值NV1前、后分别呈现极端的正面效果和极端的负面效果。从图像效果来看,极端的正面效果要远远强于极端的负面效果。

图16 优化分析图

5 结论

闸机通行策略设计是虚拟现实技术结合自动代码生成技术的一项典型应用,能够完成闸机底层代码设计的大部分工作,并在提高效率、降低开发成本的同时设计出一套较为完善的产品。这里基于闸机设计项目提出了一套相对科学的自动控制系统开发手段,证实其有较为广泛的应用前景。

[1]王靖欣.轨道交通闸机系统的人员检测与判别技术[D].重庆:重庆大学,2012.

[2]GONG J,AN J,CUIL.Research and Application for Collision Detection Algorithm in Virtools;proceedings of the Business Computing and Global Informatization(GCGIN)[C].2011 International Com ference on,2001(7):29-31.

[3]CHUNQING C.Formal Analysis for Stateflow Diagrams;proceedings of the Secure Software Integration and Reliability Improvement Companion(SSIRI-C)[C].2010 Fourth International Conference on,2010(6):9-11.

[4]周建华.支持Simulink/Stateflow的自动代码生成器研究与实现[D].成都:电子科技大学,2011.

[5]周东谕.碰撞检测算法及在汽车虚拟现实仿真平台中的应用[D].重庆:重庆邮电大学,2011.

[6]沈学利,吴琼.基于包围盒和空间分割的混合碰撞检测算法[J].计算机工程,2012,38(6):256-258.

[7]李苗.实时碰撞检测算法分析与比较[J].计算机与现代化,2011(6):88-90.

[8]李永帅.基于Virtools的中学物理虚拟实验室的构建方法研究[D].山东:山东建筑大学,2011.

[9]闫方举,杨卫平,刘培顺.混合包围体碰撞检测算法的优化研究[J].电脑知识与技术,2011,7(28):7012-7026.

Aplication of Virtual Reality Technology in Automation Control

XIAO Ying,WANG Jing-xin
(Chongqing Jinmei Communication Co.,Ltd.,Chongqing 400030,China)

Relying on the automatic control devices,this paper presents a new method of simulation,which conduct drawing with 3DS MAX,interacting by Virtools and building the logic model with MATLAB/Stateflow for C code,based on the technology of virtual reality and automatic code generation.The simulation will be improved on the basis of traditional collision detection algorithm.Designing and debugging with these tools can reduce hardware cost and development cycle and avoid injuring the debugger,and it has good reliability and feasibility.

Entry gate;Automatic Code Generation;Virtual reality

10.3969/j.issn.1002-2279.2014.03.021

TP391.9

:A

:1002-2279(2014)03-0072-05

肖颖(1976-),女,重庆市沙坪坝区人,硕士研究生,高级工程师,主研方向:嵌入式系统开发。

2013-09-13

猜你喜欢

代码生成闸机碰撞检测
全新预测碰撞检测系统
基于客流特征下的地铁站闸机配置分析
基于CAN总线的闸机结构及部件优化设计
Lustre语言可信代码生成器研究进展
基于BIM的铁路信号室外设备布置与碰撞检测方法
基于客流特征下的成都地铁站闸机配置研究
一种基于模型和模板融合的自动代码生成方法
实名制验证快速闸机通道及其发展趋势分析
基于Web应用界面的代码自动生成软件设计
代码生成技术在软件开发中的应用