0

我目前正在尝试使用虚拟现实外围网络 (VRPN) 将 NDI Polaris Spectra 光学跟踪设备连接到 Vizard VR 软件。最终目标是使用该设备进行头部和工具跟踪。
Polaris 附带的软件可以正常工作,以亚毫米精度跟踪与设备包装在一起的刚体。VRPN 声称支持 Polaris 跟踪设备,Vizard 包含一个 VRPN 插件。然而,当我使用 VRPN 与 Polaris 接口时,VRPN 报告的跟踪数据似乎差异很大,即使刚体和 Polaris 都连接到三脚架。

要将 VRPN 与 Polaris 一起使用,我编辑了 vrpn.cfg 文件,添加了以下未注释的行:

vrpn_Tracker_NDI_Polaris polaris COM2 1 
../NdiToolDefinitions/8700449.rom

(我已经确认Polaris设备连接到COM2。只有一个刚体要跟踪,在8700449.rom文件中有描述。我也用Polaris附带的NDI软件确认这是正确的我正在尝试跟踪的刚体的文件。)

然后我运行 vrpn_server.exe 程序,它报告以下内容:

DEBUG Tracker_NDI_Polaris: num of rigidbodies 1
DEBUG Tracker_NDI_Polaris: filename >../NdiToolDefinitions/8700449.rom<
connected to NDI Polaris at default 9600 baud on device:COM2.
done
VRPN_Tracker_NDI_Polaris: Switching NDI to higher baud rate, and then
reopening
com port at higher rate...done

根据 VRPN wiki,我通过在另一个 cmd 窗口中运行 vrpn_print_devices.exe 来测试跟踪是否正常工作:

> vrpn_print_devices.exe polaris@localhost

Opened polaris@localhost as: Tracker Button Analog Dial Text.
Press ^C to exit.

Tracker polaris@localhost, sensor 0:
        pos ( 0.07, 0.91, 0.00); quat (0.00, 0.01, 0.01, 0.00)
Tracker polaris@localhost, sensor 0:
        pos ( 0.07, 0.91, 0.01); quat (0.00, 0.01, 0.01, 0.00)
Tracker polaris@localhost, sensor 0:
        pos ( 0.08, 0.90, 0.00); quat (0.00, 0.01, 0.01, 0.00)
Tracker polaris@localhost, sensor 0:
        pos ( 0.11, 0.92, 0.99); quat (0.00, 0.01, 0.01, 0.00)
Tracker polaris@localhost, sensor 0:
        pos ( 0.05, 0.92, 0.01); quat (0.00, 0.01, 0.01, 0.00)

如果我正确理解这里的比例以米为单位,这些位置的跳跃非常大。(我还要注意 vrpn_print_devices.exe 打印的数据被截断了。)
由于 Polaris 附带的 NDI 软件非常准确地跟踪同一个刚体,我假设位置的跳跃不是由于环境因素(比如房间内的 IR 光源等)。刚体使用 NDI 提供的无源回射跟踪点。我目前在 Windows 7 上运行 VRPN。
虽然我怀疑问题与 VRPN 相关,但也有可能是 Vizard 的 VRPN pluing 无法正确读取来自 VRPN 的数据。这是我用于将跟踪对象链接到主视点的 Vizard (python) 代码。 

import viz
viz.go()

# add enviornment
viz.addChild('gallery.osgb')

# add tracker
vrpn = viz.add('vrpn7.dle')
tracker = vrpn.addTracker('polaris@localhost')
tracker.waitForConnection()

# link tracker to view
view = viz.MainView
viz.link(tracker,view)

但是,这似乎是源自 VRPN 的问题。是否有任何我错过的配置或导致这种不准确跟踪的原因?
谢谢!

编辑:VRPN 是否有可能假设错误的小/大端编码?

4

0 回答 0