The SensAble Phantom device offers a haptic feedback, which can be exploited in the vrecko system. There were several papers written about it in the HCI laboratory.
The Phantom works as a device plug-in (DP) inside the vrecko. The plug-in manages a series of filters, that are applied in each haptic frame (usually 1000 times per second).
The filters may modify the resulting force and can be of a several different types: simple multiplying filter, collision detection (which generates force response), virtual coupling (drags the tool in the direction of user movement), logging etc.
The collision detection filters are merely an interface to a real collision detection algorithms, that are present in a SpacePartitioning plugin and are called using the core of vrecko – see Universal interface section in Collision detection.
Aside from the algorithms, another problem lies in the specification of the various parameters. The optimal collision distance must be carefully calculated (or guessed) for the device to react quickly enough before the object crashes to another. However, it shouldn’t be too far so that the object cannot even get close to the environment. Similar parameters are used for virtual coupling that generates force to move the tool in the user specified direction – the force should be high enough to make the tool reactive, but also small enough so that collision force is greater and will repulse the object if it is about to collide.
Compilation with Phantom support
vreckoDP_PHANToM contains the support of the Phantom device. However, it is only compiled if OpenHaptics library is installed.
Since the majority of developers doesn’t need the library (and therefore doesn’t have it installed), the device support is automatically disabled by default.
If you wish to work with Phantom device, follow these steps:
- Set the environment variable
VRECKO_COMPILE_PHANTOM = 1
- The variable is checked during the compilation of
vreckoDP_baseand the Phantom support will be compiled and added along with other devices.