用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

基于虚拟现实技术的自行车漫游系统的研究与实现

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 23:59:05
【本文由PB创新网为您整理】
摘要:一种实时自行车漫游系统(VR-BWS)。该系统以健身车作为人机交互的工具,综合运用了虚拟现实、传感器、DPS控制等技术,并通过立体显示等多通道交互技术实现了人在虚拟环境中的漫游,使参与者在由计算机构造的虚拟场景中获得了如同在真实环境中骑车的体验。

    关键词:虚拟现实 人机交互 DSP 传感器 立体显示

虚拟现实是计算机生成的、给人多种感官刺激的虚拟世界(环境),是一种高级的人机交互系统。理想的虚拟现实系统应当让使用者在与虚拟环境产生交互行为时的感受与真实环境中的感受完全一样。而现有的漫游系统大多采用二维交互界面,即采用鼠标(二维输入)和键盘(线性输入)作为交互设备,遵循着“窗口-图标-菜单-指定”(Windows-Icon-Menu-Pointer,简称WIMP)操作范式,交互方式不合谐,不自然。本文以健身作为人机交互的工具,设计了一种实时自行车漫游系统VR-BWS。该系统以虚拟现实技术为基础,综合运用了传感器技术、DSP控制技术,采用了多线程、非阻塞的数据实时通信技术,并通过立体显示等多通道交互技术实现了人在虚拟环境中的漫游,使参与者在由计算机构造的虚拟场景中获得了如同在真实环境中骑车的体验,是把虚拟现实技术应用于实际的一个有益尝试,应用前景十分广阔。

1 系统构成及原理

当参与者骑在自行车上运动时,自行车的速度、方向、笼头往上提的时间和力度以及骑车人自身重量等数据,通过传感器实时采集,然后经由DSP控制电路传送到上位机中,经过分析处理,使其在屏幕的虚拟场景得到仿真和展示,在虚拟场景里达到表演的效果;同时,当屏幕中的场景变化时,如上坡、下坡等,也可以通过控制软件反馈到自行车的控制器上,产生阻尼/驱动力,使骑车人有上述场景产生的上、下坡的感觉,从而获得好的沉浸感。系统构成如图1所示。
javascript:window.open(this.src);" style="cursor:pointer;"/>
2 关键技术

2.1 人机交互传感器技术

在本自行车漫游系统中,主要是借助各种传感器实时地捕捉人体作用于自行车而产生的各种运动参数,输入到计算机,作用于虚拟环境,实现人与虚拟环境的交互。

VR-BWS中使用的传感器有光电编码器、角位移传感器和力传感器。与车轮同步施转,并以增量式编码方式记录自行车车轮旋转角度对应的脉冲,然后将检测到的脉冲数据换成车轮的旋转圈数,即自行车相对于某一参考点的瞬时位置;VR-BWS中使用了角位移传感器检测车把转角,控制场景中视点和视线的方向;在场景中设计有没宽度的沟壑和天堑,根据骑车人的体重和速度来判断能否冲过去,仿真飞越长城和黄河等,因此在自行车的车把和座位处安装了用来测量提力和人体重量的力传感器。

2.2 DSP控制技术

底层控制均由DSP系统完成。DSP处理系统的CPU采用TI公司生产的TMS320LF2407A,使用该芯片是为了保证上位机和下位机之间传感器数据和地形数据双向传递的实时性,减少运动跟踪和信息反馈环节的延时。

2.2.1 传感器数据的实时采集

在DSP的事件管理器EV模块中,有一个正交编码脉冲电路QEP。该电路使能后,可以在编码和计数引脚上输入由光电编码器产生的正交编码脉冲。正交编码脉冲电路的基可由通用定时器提供,在程序中通用定时器设置成定向增计数模式,并以正交编码脉冲电路作为时钟源。由角位移传感器和力传感器采集到的角度数据和力数据是模拟信号,通过DSP的模数转换模块(ADC)将采集到的数据进行模数转换后存入的结果寄存器中。
javascript:window.open(this.src);" style="cursor:pointer;"/>
    2.2.2 多线程、非阻塞的实时通信技术

TMS320LF2407A的串行通信接口SCI模块可以通过RS232转换芯片与PC机进行异步通信。因为由传感器实时采集到的数据通过DSP的SCI串口传给上位机进行处理,同时虚拟场景中的地形数据需要下传来达到控制执行机构输出力矩的目的,模拟人骑自行车上、下坡时的感觉,在程序中把它设置成全双工方式。

使用多路传感器作为三维场景漫游的视点跟踪传感器时,必须不断地从串口采集各路传感器的状态数据,以跟踪观察者对视点位置和视线方向的改变。通常有两种方式:(1)在应用程序中创建定时器;(2)采用多线程的应用程序框架。第一种方法由于控制单元是以固定的频率向主机传输状态数据,因此为定时器选择适当的定时周期是关键,否则很容易造成数据丢失。另外,由于应用程序需要不断地响应定时器函数,因此三维场景的绘制速度必然会受到影响。笔者采用了第二种方法,具体如下:

VC环境下开发了基于RS232协议的实时通信软件,可以与虚拟环境软件部分直接相连,并采用了多线程、非阻塞的实时漫游框架,在辅助线程中监视串口,有数据到达时依靠事件驱动,读入数据并向主线程报告;并且WaitCommEvent()、ReadFile()、WriteFile()都使用了非阻塞通信技术,依靠重叠(overlapped)读写操作,让串口读写操作在后台运行。每当主线程收到由辅助线程传过来的新一帧数据后,首先对它进行判断,只有在它相对于上一帧状态数据的变化超过规定阈值的情况下,才能开始更新用户视口内的场景显示,从而避免由于参与者的微小运动而引起的不必要的场景重绘。

2.3 虚拟场景的构造及其实时显示技术

目前,从技术角度上讲,漫游的最大难点在于建模和实时绘制,需要在模型的精细程度和绘制速度方面取一个折衷,既要保证一定的绘制质量,又不能造成用户的运动不适感。在建模和实时显示方面采用了各种技术,以保证实时性。
javascript:window.open(this.src);" style="cursor:pointer;"/>
   

[1] [2]  下一页

Tags:

作者:佚名
  • 好的评价 如果您觉得此文章好,就请您
      0%(0)
  • 差的评价 如果您觉得此文章差,就请您
      0%(0)

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:593.75000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号