方 逊 李红祥 李 昊
(1.武汉理工大学航运学院,湖北武汉 430063;2.武汉船舶职业技术学院,湖北武汉 430050)
虚拟现实建模语言(Virtual Reality Modeling Language,VRML)是第二代WWW 的标准语言,用来在网络上创建逼真的三维虚拟场景,实现了3D的动画效果,改变了当前网络与用户交互的局限性,使得人机交互更加方便、灵活,使虚拟世界的真实性、交互性和动态性得到了充分的体现[1]。VRML还提供了一个Script脚本节点,通过该节点可以实现复杂交互和逻辑控制等功能[1~2]。
陀螺罗经在提供船舶航向中占非常重要的地位,其结构复杂,传统教学只是停留在对平面图形的演示和说明,这成为了航海专业的学生学习陀螺罗经的瓶颈。本文以阿玛-勃朗MK10型陀螺罗经为例,利用VRML的各种造型节点进行陀螺罗经主要部分三维结构的仿真,使用VRMLScript语言实现了灵敏部分、随动部分和主轴指北过程的交互式仿真。
灵敏部分由陀螺球、浮动平衡环和金属扭丝等组成。灵敏部分的仿真可以使学习者更易于了解陀螺仪的3自由度结构及电磁控制力矩的产生方法。
陀螺马达高速旋转的自转轴是陀螺球的主轴,在水平方向上与主轴相垂直的水平扭丝是陀螺球的水平轴,在垂直方向上与主轴相垂直的垂直扭丝是陀螺球的垂直轴,三轴相交于陀螺球的中心[3]。由于陀螺球、浮动平衡环和水平垂直扭丝均为对称平衡,并且灵敏部分的重心与陀螺球的中心相重合,因此灵敏部分是一个3自由度的平衡陀螺仪。结合VRML语言的特点,设计了灵敏部分仿真结构示意图,如图1所示。
图1 灵敏部分结构图
基于该结构图编写相应的程序代码,实现的三维结构仿真图如图2所示。在程序中,调整陀螺球材质的透明度域值,可以使陀螺球实物中不可见的陀螺转子被清晰地看到[4]。
图2 灵敏部分仿真图
通过鼠标或者按钮控制实现陀螺球绕水平轴作俯仰运动、水平扭丝受扭、产生作用于陀螺球水平轴的电磁控制力矩的交互过程,以及陀螺球绕垂直轴做方位运动、垂直扭丝受扭、产生作用在陀螺球垂直轴上的电磁阻尼力矩的交互过程。学习者既可以了解陀螺球的3自由度结构,又可以理解阿玛-勃朗陀螺罗经两个力矩产生的方法。
利用图1中的圆柱传感器CylinderSensor1和CylinderSensor2,便可以实现以鼠标控制陀螺球作俯仰和方位运动的效果。通过语句
ROUTE stents.rotation_changed TO Pitching.rotation
实现用鼠标驱动扭丝支架使陀螺球作俯仰运动
ROUTE floating.rotation_changed TO Azimuth.rotation
可实现用鼠标驱动浮动平衡环使陀螺球作方位运动,再加上陀螺转子的自转运动就实现了陀螺球的3自由度交互式仿真。
陀螺球作俯仰运动和方位运动的同时,金属扭丝受扭产生力矩,通过水平扭丝和垂直扭丝颜色的变化来仿真该过程。在Script节点中应用函数
将陀螺球转动的角度值v转化为扭丝的颜色值col_wires,通过语句
ROUTE Azimuth.rotation_changed TO scrip.ro_gyro
将陀螺球作方位运动时的角度值传递给函数ro_gyro(v),可以获得转换后的颜色值,利用语句
ROUTE scrip.col_wires TO ap_wires.set_emissiveColor
将获得的颜色值传递给垂直扭丝,从而产生了垂直扭丝颜色随着陀螺球方位转动角度的变化而变化的效果,亦即实现了垂直力矩产生过程的仿真。
随动部分中,由贮液缸、倾斜平衡环、倾斜齿轮、倾斜随动电机组成倾斜随动系统;由方位平衡环、方位齿轮、方位随动电机和方位刻度盘组成方位随动系统,可以实现贮液缸在高度和方位上跟随陀螺球运动,亦即贮液缸模拟陀螺球运动。随动部分的仿真能使学习者对陀螺罗经随动系统的概念有一个清晰的理解。
随动部分中,贮液缸的南北两端通过轴承支承在水平放置的倾斜平衡环内,倾斜平衡环通过轴承支承在方位平衡环内,形成贮液缸的东西水平轴。倾斜电机旋转时倾斜平衡环连同贮液缸一起可绕此东西水平轴作俯仰运动;方位平衡环通过垂直枢轴支承在固定部分的驱动平板上,形成贮液缸的垂直轴,方位电机旋转时方位平衡环可以带动倾斜平衡环及贮液缸一起绕此垂直轴作方位运动。使用VRML语言可以设计随动部分仿真结构示意图,如图3所示。
倾斜平衡环、方位平衡环和刻度盘等环型体的设计都通过挤出面(Extrusion)节点来实现,其中crossSection域确定了环的截面,spine域是一个圆形的挤压脊线,将截面沿圆形挤压脊线运动从而形成一个环。以刻度盘为例,
crossSection[20,00,00.5,0.750.5,0.751,11,10.5,20.5,20,]表示刻度盘的截面形状;
spine[600,
5.9963486666962 7.2092908679563410,
5.9853991108633 6.4183270056739030,
5.9671646593272 4.6268539929489080,
……]表示挤压脊线,该挤压脊线是由360个坐标点构成的一个圆。
图3 随动部分结构图
刻度盘的刻度线由索引线集(IndexdLine-Set)节点实现,通过计算出刻度线两端点的坐标值,并将其放入索引线集节点的Point域,就可以做出相应的刻度线。
齿轮的设计由圆柱体(Cylinder)节点实现,通过设置不同的scale域值就可设计出不同形状的齿[5]。最终形成的随动部分仿真效果图如图4所示。
图4 随动部分仿真图
在倾斜随动系统中,倾斜电机转动时,通过齿轮传动装置和倾斜扇形齿轮,带动倾斜平衡环与贮液缸一起绕东西水平轴作倾斜转动。具体实现方法是:在script节点中利用函数[6]
将倾斜电机转动的角度值ro转化为倾斜齿轮转动的角度值out_T motor[],再利用鼠标控制传感器TouchSensor1使电机转动,将转动角度通过语句
ROUTE Tmotor.rotation_changedTO scrip3.in_Tmotor传输给倾斜电机,即传给倾斜齿轮,然后通过语句
ROUTE scrip.out_T motor TO Tilt.rotation
将倾斜齿轮的转动角度传输给倾斜平衡环,使倾斜平衡环带动贮液缸转动,从而实现贮液缸作俯仰运动。
从图3中可看出,倾斜随动系统(Tilt servo part)包含在方位随动系统(Azimuth servo part)中。当方位电机转动时,通过齿轮传动装置和方位齿轮,带动方位平衡环与倾斜平衡环及贮液缸一起绕垂直轴作方位转动,其具体实现方法与倾斜随动系统类似。
以模拟船舶转向时的方位随动过程为例,当船舶转向时,通过设计的按钮 t1来触发船舶转动,利用语句
ROUTE t1.touchTime TO c1.startTime
将点击按扭的时间传递给时间传感器c1,再使用语句
ROUTE c1.fraction_changed TO o11.set_fraction
将时间的变化量传给方向插补器o11,最后通过语句
ROUTE o11.value_changed TO Azimuth1.rotation
以实现在陀螺球稳定指北的情况下贮液缸、方位平衡环、0°—180°刻度线、罗经基线随船舶转动。
此时灵敏部分(陀螺球)与随动部分(贮液缸)产生一个方位偏角,继而方位敏感线圈检测出陀螺球与贮液缸之间的失配,产生一个随动信号,该信号经方位随动放大器放大后传给方位电机。在此过程中,通过方位敏感线圈的颜色变化,表明随动信号的产生。控制时间传感器的时间周期,达到一定时间,方位电机接收随动信号,方位电机转动,带动方位平衡环、贮液缸 、0°—180°刻度线转回到陀螺球主轴的位置,使刻度盘的 0°—180°刻度线与陀螺球主轴一致,而基线保持不动,这样就可以读出船舶转动的角度,也就是船舶的航向。
在以上随动过程的仿真中,调整贮液缸材质的T ransparency域值,便可使贮液缸透明,随动部分和灵敏部分的旋转关系可以清晰地呈现出来,从而使观测者更容易理解陀螺罗经随动系统的工作过程。
主轴在方位上和高度上的合成运动即为收敛运动,可将其运动轨迹投影到一个平面上,当主轴运动一个时间点,投影面上同时产生相应的运动轨迹,利用投影点运动的方法来观察主轴的运动规律。
将方位角和高度角的226个值合成后转化为在投影面上的坐标值并赋给坐标插补器dian的Keyvalue域,使用时间传感器 Time使索引线集节点orbit也按226个时间点来取相应的值,然后利用语句
ROUTE dian.value_changed TO orbit.point
将这些坐标值在同一时间传感器的控制下依次传递给索引线集节点,以实现在主轴做收敛减幅运动的同时,其轨迹在投影面上被显示出来,如图5所示,它是一条收敛螺旋曲线。
图5 罗经指北过程仿真图
利用VRML来实现陀螺罗经的仿真,可以在VRML浏览器插件的支持下,直接在IE中进行交互式控制与演示[7-8]。
采用VRML对陀螺罗经三维结构和工作原理进行的仿真是利用现代计算机技术对教学改革的一个典型范例,该方法能够有效地改善讲授陀螺罗经知识的教学效果,是对传统教学的一种突破,得到了航海专业的学生、教师和专家们的一致认可。基于VRML的陀螺罗经三维仿真方法还可以应用到其他学科的教学中,具有一定的推广意义。
1 黄文丽,卢碧红,杨志刚等.V RML语言入门与应用[M].北京:中国铁道出版社,2003.
2 段新昱.虚拟现实基础与VRM L编程[M].北京:高等教育出版社,2004.
3 杨在金.航海仪器[M].大连:大连海事大学出版社,1998.
4 董 铭,周玉.VRM L程序员实用例库[M].北京:电子工业出版社,2000.
5 孙军华,季忠,王忠雷等.基于 VRM L的交互式虚拟装配平台的实现[J].计算机应用,2002,10,22(10):101-102
6 方锡武.基于VRM L的机械传动机构的运动仿真[J].计算机仿真,2007,24(6):203-206.
7 李 营,黄海东,姚其昌等.六自由度驾驶模拟器视景仿真系统研究.武汉理工大学学报(交通科学与工程版),2005,29(3):388-391.
8 王 硕,周昕宇.VRM L与外界数据交互的技术实现[J].计算机系统应用,2000,(2):38-41.