关键词:虚拟现实 人机交互 DSP 传感器 立体显示
虚拟现实是计算机生成的、给人多种感官刺激的虚拟世界(环境),是一种高级的人机交互系统。理想的虚拟现实系统应当让使用者在与虚拟环境产生交互行为时的感受与真实环境中的感受完全一样。而现有的漫游系统大多采用二维交互界面,即采用鼠标(二维输入)和键盘(线性输入)作为交互设备,遵循着“窗口-图标-菜单-指定”(Windows-Icon-Menu-Pointer,简称WIMP)操作范式,交互方式不合谐,不自然。本文以健身作为人机交互的工具,设计了一种实时自行车漫游系统VR-BWS。该系统以虚拟现实技术为基础,综合运用了传感器技术、DSP控制技术,采用了多线程、非阻塞的数据实时通信技术,并通过立体显示等多通道交互技术实现了人在虚拟环境中的漫游,使参与者在由计算
机构造的虚拟场景中获得了如同在真实环境中骑车的体验,是把虚拟现实技术应用于实际的一个有益尝试,应用前景十分广阔。
1 系统构成及原理
当参与者骑在自行车上运动时,自行车的速度、方向、笼头往上提的时间和力度以及骑车人自身重量等数据,通过传感器实时采集,然后经由DSP控制电路传送到上位机中www.cechina.cn,经过分析处理,使其在屏幕的虚拟场景得到仿真和展示,在虚拟场景里达到表演的效果;同时,当屏幕中的场景变化时,如上坡、下坡等,也可以通过控制软件反馈到自行车的控制器上,产生阻尼/驱动力,使骑车人有上述场景产生的上、下坡的感觉,从而获得好的沉浸感。系统构成如图1所示。
2 关键技术 2.1 人机交互传感器技术 在本自行车漫游系统中,主要是借助各种传感器实时地捕捉人体作用于自行车而产生的各种运动参数,输入到计算机控制工程网版权所有,作用于虚拟环境,实现人与虚拟环境的交互。 VR-BWS中使用的传感器有光电编码器、角位移传感器和力传感器。与车轮同步施转,并以增量式编码方式记录自行车车轮旋转角度对应的脉冲,然后将检测到的脉冲数据换成车轮的旋转圈数,即自行车相对于某一参考点的瞬时位置;VR-BWS中使用了角位移传感器检测车把转角,控制场景中视点和视线的方向;在场景中设计有没宽度的沟壑和天堑,根据骑车人的体重和速度来判断能否冲过去,仿真飞越长城和黄河等,因此在自行车的车把和座位处安装了用来测量提力和人体重量的力传感器。 2.2 DSP控制技术 底层控制均由DSP系统完成。DSP处理系统的CPU采用TI公司生产的TMS320LF2407A,使用该芯片是为了保证上位机和下位机之间传感器数据和地形数据双向传递的实时性,减少运动跟踪和信息反馈环节的延时。 在DSP的事件管理器EV模块中,有一个正交编码脉冲电路QEP。该电路使能后,可以在编码和计数引脚上输入由光电编码器产生的正交编码脉冲。正交编码脉冲电路的基可由通用定时器提供,在程序中通用定时器设置成定向增计数模式,并以正交编码脉冲电路作为时钟源。由角位移传感器和力传感器采集到的角度数据和力数据是模拟信号,通过DSP的模数转换模块(ADC)将采集到的数据进行模数转换后存入的结果寄存器中。 TMS320LF 使用多路传感器作为三维场景漫游的视点跟踪传感器时,必须不断地从串口采集各路传感器的状态数据,以跟踪观察者对视点位置和视线方向的改变。通常有两种方式:(1)在应用程序中创建定时器;(2)采用多线程的应用程序框架。第一种方法由于控制单元是以固定的频率向主机传输状态数据,因此为定时器选择适当的定时周期是关键,否则很容易造成数据丢失。另外,由于应用程序需要不断地响应定时器函数,因此三维场景的绘制速度必然会受到影响。笔者采用了第二种方法控制工程网版权所有,具体如下: 在VC环境下开发了基于RS232协议的实时通信软件,可以与虚拟环境软件部分直接相连,并采用了多线程、非阻塞的实时漫游框架,在辅助线程中监视串口,有数据到达时依靠事件驱动,读入数据并向主线程报告;并且WaitCommEvent()、ReadFile()、WriteFile()都使用了非阻塞通信技术,依靠重叠