VR Juggler
Open Source
Virtual Reality


VRJ Wiki . Juggler . IsPolhemusSupported VRJ Wiki webs:
Juggler | VRJPlanning | Main | TWiki | Test
Juggler . { Home | Changes | Index | Search | Go }

Wiki

· Home
· Frequently Asked Questions
· Development
· Team Guide
· Direction
· Status
· Task Tracking
· Compiling VR Juggler
· Building from SVN
· SVN Branches
· Compiler Status

edit menu


Main
· About
· Documentation
· Publications
· Download
· HOWTO
· FAQ
· Discussion Area (Wiki)
· Status
· Contact

Projects
· VR Juggler
· Gadgeteer
· VPR
· Sonix
· JCCL
· Tweek
· PyJuggler
· VRJ.NET

Events
· SIGGRAPH 2004 BoF?
· SIGGRAPH 2003 BoF?
· Virtual Reality Course
· IEEE VR 2003 Course
· SC 2002 Exhibit

Site Search

Google

Sponsors
· Infiscape
· VRAC
· Iowa State University
· SourceForge

Link To Us


Q: Do you support Polhemus devices?

I would like to use a Polhemus device (Fastrak). Is there support for it?

A: There is a Fastrak driver available on IRIX for VR Juggler 1.0. The Fastrak driver in VR Juggler 2.0 Alpha 2 and beyond works on a variety of platforms.

We do not have direct access to Polhemus devices. As such we are not able to write or debug one. We have had a driver submitted for Fastrak, but it only works on IRIX with VR Juggler 1.0. We have not been able to test it ourselves.

The driver has been ported to compile in the new Gadgeteer framework, and it has been tested and improved. Within Gadgeteer, the Fastrak driver makes use of the VPR abstractions for threads and serial ports so that it compiles on all supported platforms including Windows.

A: VR Juggler 2.0 alpha and VRPN

Yes, it is possible to use Polhemus devices with VR Juggler 2.0 alpha.

Here are some instructions for setting up VRPN with VR Juggler under Unix.

Firstly, download the VRPN sources from:

ftp://ftp.cs.unc.edu/pub/packages/GRIP/vrpn

Unzip and compile, following the instructions in vrpn/README.Compiling:

        Go to quat (cd quat)
                For Unix: make -f Makefile.remote.[yourarch]
                For Cygwin: make -f makefile
        Go to vrpn (cd ../vrpn)
                Edit Makefile to uncomment your architecture
                gmake
        Go to client_src
                Edit Makefile to uncomment your architecture
                gmake
        Go to server_src
                Edit Makefile to uncomment your architecture
                gmake

Then copy vrpn/server_src/[yourarch]/vrpn_server, vrpn/server_src/vrpn.cfg, and vrpn/client_src/[yourarch]/vrpn_print_devices to a convenient directory (i.e. ~/vr/vrpn/). [yourarch] is the architecture you selected in the Makefile (i.e. pc_linux).

Edit ~/vr/vrpn/vrpn.cfg to reflect your configuration (example configs are commented in this file). For example, a Fastrak master/slave system with the master connected to /dev/ttyS0 and the slave connected to /dev/ttyS1 communicating at 115200 would have the two lines:

vrpn_Tracker_Fastrak    Tracker0   /dev/ttyS0      115200
vrpn_Tracker_Fastrak    Tracker1    /dev/ttyS1       115200

A Flock of Birds system with 4 sensors connected to a single serial port would have the line:

vrpn_Tracker_Flock     Tracker0        4       /dev/ttyS0      115200

Run the following command to start the server (or create a script file with this): ~/vr/vrpn/vrpn_server -millisleep 1

You should end up with the output:

Reset Completed (this is good)

If not, check the error messages and make sure the right serial port is specified, and that the serial port has the correct permissions.

From another command prompt you can then print values from the tracker via the command (CTRL-C to quit):

~/vr/vrpn/vrpn_print_devices -nobutton -noanalog -nodial -notext Tracker0@localhost

The following assumes that the VRPN server and client are on the same machine. This doesn't have to be the case, and if the VRPN server is on a different machine than VR Juggler, then instead of Tracker0@localhost use Tracker0@vrpn_server_hostname

The next thing that needs to be configured is VR Juggler. An example configuration file Follows. (Vrjconfig in VR Juggler 2.0 alpha 1 seems not to like this configuration file, and hence use a text editor to modify it.):

<?xml version="1.0" encoding="UTF-8"?>
<ConfigChunkDB>
  <InputManager name="Input Manager">
    <driver>${VJ_BASE_DIR}/lib/gadgeteer/drivers/VRPN_drv.so</driver>
  </InputManager>
  <proxyAlias name="VJHead">
    <aliasName>VJHead</aliasName>
    <proxyPtr>Head Proxy</proxyPtr>
  </proxyAlias>
  <proxyAlias name="VJWand">
    <aliasName>VJWand</aliasName>
    <proxyPtr>Wand Proxy</proxyPtr>
  </proxyAlias>
  <PosProxy name="Head Proxy">
    <device>Tracker0</device>
    <unit>1</unit>
    <position_filters>
      <PosXformFilter name="Position Filter">
        <pre_translate>0.0</pre_translate>
        <pre_translate>0.0</pre_translate>
        <pre_translate>0.0</pre_translate>
        <pre_rotation>0.0</pre_rotation>
        <pre_rotation>0.0</pre_rotation>
        <pre_rotation>0.0</pre_rotation>
        <custom_scale>1.0</custom_scale>
        <dev_units>1.0</dev_units>
        <post_translate>0.0</post_translate>
        <post_translate>0.0</post_translate>
        <post_translate>0.0</post_translate>
        <post_rotation>-90.0</post_rotation>
        <post_rotation>-90.0</post_rotation>
        <post_rotation>0.0</post_rotation>
      </PosXformFilter>
    </position_filters>
  </PosProxy>
  <PosProxy name="Wand Proxy">
    <device>Tracker0</device>
    <unit>0</unit>
  </PosProxy>
  <Vrpn name="VrpnMaster">
    <trackerServer>Tracker0@localhost</trackerServer>
    <buttonServer>Button0@localhost</buttonServer>
    <numTrackers>4</numTrackers>
    <numButtons>0</numButtons>
    <etrans>1</etrans>
    <pretranslate>0</pretranslate>
    <pretranslate>1</pretranslate>
    <pretranslate>1</pretranslate>
    <prerotate>90.0</prerotate>
    <prerotate>0.0</prerotate>
    <prerotate>90.0</prerotate>
    <prescale>1</prescale>
    <prescale>1</prescale>
    <prescale>1</prescale>
    <postscale>1</postscale>
    <postscale>1</postscale>
    <postscale>1</postscale>
  </Vrpn>
</ConfigChunkDB>

This sets the first unit on the tracker as the wand and the second unit on the HMD. The rotations in the above setup file are appropriate for the Fastrak system:

coordsystems.jpg

Add vrpn.config to the config files that you load when running VR Juggler applications. This should be all that is required to run VR Juggler with VRPN... YMMV.

Back to: LiveFaq

FaqForm
FaqTopic: Devices
ShortQuestion: Do you support Polhemus devices?


Topic IsPolhemusSupported . { Edit | Attach | Ref-By | Printable | Diffs | r1.6 | > | r1.5 | > | r1.4 | More }

Copyright © 1999-2008 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding VRJ Wiki? Send feedback
Revision r1.6 - 04 Nov 2003 - 19:32 - PatrickHartling Copyright © 1999-2008 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding VRJ Wiki? Send feedback




VR Juggler Logo
Site contents © Copyright 1998–2005 Iowa State University and released under the GPL.
Harvesting email addresses from this page for commercial activities is prohibited.
Contact: Webmaster | Write Us
SOURCE REPOSITORY,
BUGS, FORUMS
HOSTED BY:
SourceForge Home