Algorithms have been developed to provide haptic rendering of three-dimensional (3D) objects in virtual (that is, computationally simulated) environments. The goal of haptic rendering is to generate tactual displays of the shapes, hardnesses, surface textures, and frictional properties of 3D objects in real time. Haptic rendering is a major element of the emerging field of computer haptics, which invites comparison with computer graphics. We have already seen various applications of computer haptics in the areas of medicine (surgical simulation, telemedicine, haptic user interfaces for blind people, and rehabilitation of patients with neurological disorders), entertainment (3D painting, character animation, morphing, and sculpting), mechanical design (path planning and assembly sequencing), and scientific visualization (geophysical data analysis and molecular manipulation).
Haptic-rendering algorithms enable users to touch, feel, and manipulate 3D objects in virtual environments through force-feedback devices, also known as haptic interfaces. Typically, a haptic-rendering algorithm comprises a collision-detection part and a collision-response part. As the user manipulates the force-feedback device — for example, a fingertip probe as in the figure — the current or recent position and orientation of the probe are acquired and the collision-detection algorithm detects collisions between the fingertip and virtual objects in the vicinity of the fingertip. If a collision is detected, then the collision-response algorithm computes the forces of interaction between the fingertip and the virtual object(s) and commands the force-feedback device to generate the tactual representation of the object(s). The friction of finger/virtual object contact, the texture of the object, and hardness of the object can be simulated through appropriate spatial and temporal perturbations of the force generated by the force-feedback device. The hardness information for deformable virtual objects can be embodied in geometry- and physics-based mathematical models. So that virtual objects will not feel unnaturally soft, the update rate of the haptic feedback loop thus described should be at least 1 kHz.
Some elements of the collision-detection algorithms used in computer graphics can be used in computer haptics. For example, haptic-rendering algorithms can easily take advantage of space-partitioning, local-searching, and hierarchical-data-structure techniques of computer graphics to reduce the amount of computation time needed to detect collisions. However, mere detection of collisions as in computer graphics is not enough because how a collision occurs and how it evolves over time are factors that must be taken into account to compute interaction forces accurately. Going beyond computer-graphics collision-detection algorithms, it is necessary to develop algorithms according to a client-server model to provide for synchronization of visual and haptic displays in order to make update rates acceptably high. For example, by use of multithreading techniques, one can calculate the contact forces at rate of 1 kHz in one thread while updating visual images at 30 Hz in another thread.
This work was done by Cagatay Basdogan of Caltech, Chih-Hao Ho of Cambridge Research Associates, and Mandayam Srinavasan of MIT for NASA's Jet Propulsion Laboratory. For further information, access the Technical Support Package (TSP) free on-line at www.techbriefs.com/tsp under the Information Sciences category.
This software is available for commercial licensing. Please contact Don Hart of the California Institute of Technology at (818) 393-3425. Refer to NPO-21191.
This Brief includes a Technical Support Package (TSP).
Algorithms for Haptic Rendering of 3D Objects
(reference NPO-21191) is currently available for download from the TSP library.
Don't have an account? Sign up here.