The Phantom Force Feedback extension of Chimera allows a Phantom device to be used to guide marker placement within volume data. It is generally used together with Volume Viewer and Volume Path Tracer.
A Phantom device and the Phantom Force Feedback extension can also be used to trace paths and/or move models in the absence of volume data. Although there will not be force feedback in such cases, the increased degrees of freedom provided by the device as compared to a mouse can be very helpful.
The Phantom Device |
---|
![]() |
A Phantom device is a robot arm that is attached to a computer and used as a pointer in three dimensions, like a mouse is used as a pointer in two dimensions. The device is most useful in conjunction with stereo.
SensAble Technologies manufactures several models of the Phantom. The device is only supported on SGI and Windows platforms. SensAble Technologies has announced that in summer of 2002 it will add support for Linux and drop support for SGI. The least expensive model (about $10,000 in 2001), the Phantom Desktop, is described here.
The endmost segment of the three-segment arm is called the stylus. The pointer position corresponds to the joint that attaches the stylus to the rest of the arm. The stylus has a single button on it. With the pointer at a fixed position, the stylus can adopt many orientations. It can be tilted horizontally and vertically and twisted. The three pointer positional coordinates and three stylus orientational coordinates make the Phantom a 6-degree-of-freedom input device.
Motors allow the Phantom to exert force on a user's hand. The Desktop model exerts force in the X, Y, and Z dimensions; other models can also exert torques. The forces are specified by the computer program controlling the Phantom and give the feeling of interacting with virtual objects in three dimensions. In the present application, the force is toward more positive data values (brighter regions of the volume) and is proportional to the data value gradient.
![]() |
There are several ways to start Phantom Force Feedback, a tool in the Volumes category. If Phantom Force Feedback is called when there is no Phantom device connected to the computer, the Phantom Cursor dialog will appear but be essentially unusable.
Marker placement within volume data using the Phantom can be initiated when (in either order):
It is necessary to press return (Enter) for numerical settings typed into the Phantom Cursor dialog to take effect.
Activating Phantom on causes the cursor to appear in the Chimera graphics window. The cursor is a Chimera model of type Cursor_Model. Cursor style options are:
![]() |
Cursor size is expressed in the current display units and refers to the cross line length, sphere diameter, or for the jack, the distance between the tips of opposing spikes. Cursor color can be edited using the adjacent color well. A cursor color that contrasts with the data display color is usually best.
Show volume aligned crosshair replaces the cursor with three perpendicular lines intersecting at the pointer position when the pointer is within the volume data region. The volume data region is the rectilinear box occupied by the grid of values comprising the current set of data shown with Volume Viewer. The lines span this region and are aligned with the data axes. When the pointer is moved outside the volume data region, it reverts to the chosen cursor style. Showing the crosshair and a volume outline box (see the Display panel of Volume Viewer) can aid depth perception when stereo is not being used.
Deactivating Phantom on turns the cursor off and halts communication with the Phantom device.
The Phantom arm has a limited range of motion. Phantom physical range (mm) controls the size (in each dimension) of a cube where the pointer joint can be placed. The default is 200 mm (about 8 inches). The physical cube is mapped into the Chimera graphics space so that its back face just fits within the viewing area at the far clipping plane and its center is halfway between the near and far clipping planes.
The mapping is recalculated according to these rules whenever the view is scaled or clipping planes are moved.
If the Chimera window is not square, parts of the viewing area will be beyond the reach of the Phantom cursor (the right and left edges if the Chimera window horizontal dimension is larger, the top and bottom if the Chimera window vertical dimension is larger). Regions in front of the near clipping plane and behind the far clipping plane will also be unreachable. When parts of the volume display are not reachable, moving the volume display or the clipping planes can solve the problem.
When the clipping planes are close together, the physical cube may extend in front of the near clipping plane and behind the far clipping plane. The cursor will not be visible when the pointer is moved into these regions.
Activating Force field using volume data gradient turns on force feedback based on the current set of data shown with Volume Viewer. When force feedback is off, the Phantom can still be used as a pointer. Currently, forces can only be computed from a single data set, and for multiple-component data, only from the first component.
The force is directly proportional to the data gradient and pushes toward more positive data values. At each grid point, the gradient in each dimension is half of the difference between the values at the two flanking grid points. For example, if the grid point indices are (i,j,k), the X component of the force is obtained by subtracting the value at (i+1,j,k) from the value at (i-1,j,k) and dividing by 2. Thus the force is calculated relative to grid point indices; the physical spacing of the grid points (grid resolution) is not used. When the pointer is not exactly at a grid point, the force is interpolated from the gradients at the eight surrounding grid points.
The Force constant controls the scaling of force relative to gradient. The proper setting depends on the data gradient magnitudes and the user's comfort level. The gradient is multiplied by the force constant to calculate a force in Newtons (1 Newton = 0.2248 lbs). The force constant can be adjusted automatically.
The Maximum force (lbs) setting prevents excessive forces from being sent to the Phantom. If the calculated force exceeds this value, the maximum force is used instead. The Phantom Desktop can exert a maximum force of 1.45 lbs (6.4 N) and sustain a force of 0.4 lbs (1.7 N) for 24 hours. If its maximum is exceeded, the Phantom will generate an error message and disable itself. Toggling Phantom on may restore a usable state; if not, it may be necessary to rerun the configuration program that came with the Phantom device.
Auto-adjust force constant continually adjusts the force constant so that the largest gradient encountered so far generates the force specified as the maximum. The force constant automatically shrinks as larger gradients are encountered when this option is on.
Activating Show position and force panel expands the Phantom Cursor dialog to include detailed information on the pointer position and force components. Phantom position is the position of the pointer within its physical range, in mm relative to the center of the cube. Chimera position is the position of the pointer in the display coordinate system. Volume position is the position of the pointer in the display units along the volume data axes using the volume data origin. Volume index is the position of the pointer in the the data grid index units relative to the (0,0,0) corner of the volume data. The calculated Gradient and Force components are also shown, along with the interpolated Data value at the pointer position. When the calculated force exceeds the maximum force allowed, the maximum is used instead.
Pressing the button on the Phantom stylus places a marker at the current pointer position using Volume Path Tracer. Clicking Show marker placement dialog or starting Volume Path Tracer in some other way opens the dialog for the tool. While not needed for placing markers, the dialog controls various aspects of markers (color, size) and the links connecting them. These are described in detail in the Volume Path Tracer documentation. The settings within the Mouse panel of the dialog that contain the word "mouse" are ignored when the Phantom is being used. Pressing the Phantom button always places a marker, and manipulating the Phantom with Shift held down (see key commands) can always be used to move a marker.
Pressing the Phantom button to place a marker can jiggle the pointer position, interfering with proper placement. Another way to place a marker is with the key command m.
The keyboard focus must be in the Command field for any of the key commands to work (it may be necessary to click in the field). Some commands require holding a key down:
![]() |
Must run Chimera as root on SGI. On SGI IRIX systems, Chimera must be run by root for force feedback to work. This is because special privileges are needed to use a realtime process to update the force 1000 times per second (at 1000 Hz). While it is possible to give other users the needed CAP_SCHED_MGT capability, this disables use of the LD_LIBRARY_PATH environment variable required to run Chimera.
Phantom vibrates or buzzes. Large changes in force over small distances can lead to aberrant vibrations. Solutions include zooming in (scaling the view up) to spread out the gradient and decreasing the maximum force setting. For example, imagine a force that is constant and upward below a plane and zero above the plane. When the pointer is pushed slightly below the plane, the force pushes it back above the plane. This leads to an oscillation or buzzing effect when the user is applying a downward force that is less than the upward force exerted by the Phantom. The buzzing is caused by the finite force update rate (1000 Hz). If the user applies a greater downward force, the pointer will move past the interface. A similar situation occurs at the steep walls of a potential well corresponding to a bright spot in the data.
Phantom overheats. When the Phantom overheats, it generates a warning message and will not function until its motors have cooled sufficiently. Cooling can take from 10 minutes to about an hour. On SGI IRIX systems, the Phantom configuration utility must be rerun after the Phantom has overheated; otherwise, the warning message will be generated even though the motors are cool. Overheating can occur when the force constant is too high and there is frequent application of the maximum force limit.
Phantom maximum force exceeded. See above.
Visual C++ required on Windows. The GHOST 3.1 C++ library distributed by SensAble Technologies for controlling the Phantom requires the Visual C++ 6.0 compiler on Windows. It also requires the STL (standard template library) provided by SensAble. To allow Chimera to be built with other compilers and STL libraries, the GHOST library has been separated behind a C interface in a library called _cghost.dll.
Other 3D devices. The Chimera Cursor_Model and Force_Field classes implemented in _phantom.so and _phantom.dll contain no Phantom-specific code, so that it will be possible to use other 3D input devices for marker placement.
Pruning Data in 3D. Marker placement and path tracing with the mouse are fairly easy. Because the Phantom is so expensive, it is probably worth exploring 3D applications for which the mouse is poorly suited. The Phantom may be especially useful for pruning multidimensional data; it could be used as a 3D data eraser.
Possible new features. Key commands may be added to: