THIS PAGE INCORPORATES CASCADING STYLE SHEET! TO VIEW PAGE CORRECTLY PLEASE UPDATE TO A CSS COMPLIANT BROWSER
Phantom Version 3.0
UR > CS > Research > Vision > Documentation > Phantom Version 3.0

Tutorial on Using the VR Lab's Phantoms



The VR Lab's phantom, located in in Dana Ballard and Mary Hayhoe's lab, Phantom Version 3.0 created by Sensable Technologies
provide a unique haptic human computer interface for several applications. Primarily the phantoms provide a way for an individual
to grip objects (typically with the index finger and thumb of one hand) in a virtual environment. When combined with the lab's
head tracking sensors (link here) and head mounted display (link here)these robotic arms create a suprisingly compelling illusion
of touching and holding a virtual object. Before an introduction to actually using the phantoms in software, a short tutorial is
required to discuss the hardware setup.



Hardware Setup:


Picture of the phantoms in their natural habitat:



The two phantoms are dually opposed and have indentical control units so the
description for one phantom applies to the other. Each phantom has two
cables for power and data transmission. Two pictures below show the phantoms
plugged and unplugged.






These cables in turn lead to the phantom amplifier control box.





The amplifier without its connections. Be warned that you shouldn't have to
touch these unless there is something wrong with the phantom hardware.


The control box has several other wires for power and for communication with the SGI workstations Graphite and Silicon. As a general rule the cables
should not be touched without consulting Brian Sullivan or Keith Parkins first. The phantom setup has been established for years and only in the even
of a technical failure should one need to consider looking at the cabling. However there are two related things to note:

First, the phantoms have a remote safety switch that must be turned on to allow operation.
Typically these switches are always left on but if you see an error message: "check remote switch" - you should press the red buttons pictured below. Only
do this if you see that the lights labeled remote switch are off though. Often the phantom API will give this error if the phantoms aren't properly switched over.





2. While the physical cabling does not need to be adjusted, depending on the workstation one is using, one may need to switch between Graphite or Silicon for control of the
phantoms. There are two switch boxes that dictate which SGI communicates with the phantoms:



One computer always controls both phantoms so for instance in the picture above silicon has the active connection to both the left and right phantoms

Once the connections are correct the only other step necessary is to check that the phantoms are set in position for calibration. A molded piece of lexan
that can be removed from the tabletop holds the two arms in position during software startup - this way the program will have the phantoms in a known zero position.

Remove the lexan cradle from its position simply by pulling it out of the holes it fits into.


Software Setup:


Useful link: Phantom Ghost API Manual

There are two programs in the VR lab repository that demonstrate usage of the phantoms:
First there is a very simple interface called HelloGhost that activates one phantom to generate the forces appropriate to touch a small sphere in the workspace.

If you check out this file from the vision repository you will find that the
source code is rather short but effectively demonstrates some of the basic functions of the ghost library. The Ghost Library is the API for handling
all routines with the phantoms. The vrlab has print copies of the reference manual in the bookcase in room 601, an online pdf version can be accessed with the link above.

Example of checking out the code for HelloGhost:

>cvs checkout /vrlab/src/mainprogs/examples/phantoms

Which results in the output:

[demonstrate]

Run gmake in that directory:
>gmake

This will produce an executable file called HelloGhost. Run the program by typing:

>HelloGhost

Once running one may use the right phantom to feel the virtual sphere present.

A more complicated example but also more relevant to the typical usage of the phantoms can be found in /vrlab/src/mainprogs/demo/phantom
Again compile with gmake to produced the executable file. A script file titled run-phantom can be executed to call the phantom executable as well as refer
to configuration files needed for the phantoms. The configuration files are basically static and do not usually need to be examined and as such further mention of them will be omitted.