基于Logitech三维鼠标的虚拟建筑漫游系统(3)
发布时间:2021-06-08
发布时间:2021-06-08
基于Logitech三维鼠标的虚拟建筑漫游系统
Logitech三维鼠标是一种超声波式的三维空间位置传感器。它可以跟踪三维空间的位置信息和方向信息,即X、Y、Z坐标值和偏航角(Yaw)、倾斜角(Pitch)、滚转角(Roll)。Logitech三维鼠标有二种操作模式:二维模式和三维模式。本文主要讨论它在三维模式下的应用。Logitech在硬件上由发射器(transmitter)、接受器(receiver)和控制单元(control unit)三部分组成,如图2所示。
1:发射器(transmitter)。Logitech三维鼠标发射器由三个呈三角形配置的超声波扬声器组成。每个扬声器均以100度圆锥形向空间发出23KHz的超声波,这三个超声波圆锥在发射器前方相互交叉,从而形成一个“有效区”。接收器只有在这个“有效区”内移动,其位置、方向及按键状态等信息才可被跟踪到。
2:接收器(receiver)。接收器在其前端有三个呈三角形配置的麦克风。依靠这三个麦克风,接收器在“有效区”内以每秒50次的频率采样由发射器发出的超声波信号,并通过与控制单元的连线把采集到的信号送至控制单元,然后由控制单元将其转换成位置、方向及按键状态等信息。接收器上有5个按键:3个顶按键和2个暂停按键。三个顶按键可以兼容微软三键鼠标的功能;而暂停键可以允许你在控制单元暂停向主机发送鼠标状态数据的情况下移动接收器。当然,也可以在用户特定的应用中为该键赋予其他功能。
3:控制单元(control unit)。控制单元是Logitech三维鼠标的系统核心,发射器和接收器均与其相连。它通过RS232串口向主机传输三维鼠标的各种信息字节流,如:鼠标的状态数据(包括:位置、方向及按键状态等信息)、硬件检测结果、硬件版本信息等。
2.2 工作原理
Logitech三维鼠标工作原理可以简单描述为:发射器发射超声波信号,控制单元则通过接收器检测这些信号,并从中导出接收器的位置和方向值。然后控制单元将这些数据和鼠标键状态向主机报告。在三维模式下,Logitech鼠标以下列三种方式向主机报告数据:
1:请报告模式(Demand Reporting Mode):在这种模式下,只有当主机发出一个请求命令后,控制单元才向主机发送一份数据报告。
2:增量报告模式(Incremental Reporting Mode):在这种模式下,每当接收器改变了它的位置或方向后,控制单元就自动地向主机发送数据报告。
3:流报告模式(Stream Reporting Mode):在这种模式下,控制单元以最大速率向主机发送数据报告,而不管接收器是否已经移动。
2.3 接口驱动
使用Logitech三维鼠标作为视点跟踪传感器时,需要用户的应用程序必须不断地从串口采集三维鼠标的状态数据,以跟踪观察者对视点位置和视线方向做出的改变。
1:将传感器与视点相连
在WTK中,需要将一个传感器连接到虚拟场景视点上,自动跟踪视点的俯仰摇摆运动,从而实现对视点的控制。最简单的方法是用函数WTviewpoint_addsensor实现连接。当然,运动连接是更为有效的方法,不仅能够连接传感器和视点,还能连结各种虚拟对象。运动连接方法将传感器或路