Friday, April 22, 2005

Force Rendering and Collision Detection -- Plan

The HDAPI allows the HD_CURRENT_FORCE variable to be set. This provides the developer with control of custom force rendering. The SlidingContact example creates a force field around two sphere objects. Collision detection is used to update the force on the cursor object and then sent to the haptic device.

Our prototype system will take advantage of custom force control and collision detection. The collision detection will be divided into either 2 or 3 stages.
  1. The first stage is a collision between the cursor and the voxel shell.
  2. The second stage would involve voxelizing the STL object. This stage is meant to reduce the number of collision checks by creating a rough outer shell of the STL object. This stage is only needed if the collision detection between the STL file and the cursor proves to be too expensive.
  3. The last stage is to do collision detection between the cursor (tooltip) and the STL object. This is an expensive operation because STL files are normally not optimized. A sample STL file rendered had 1600 facets. Various collision detection algorithms will be explored for this issue.

Voxels are used in this program to represent 3D shapes as well as provide quick collision detection. A collision between the cursor and the voxel object can be detected by checking the coordinates of the cursor. If it lies within the voxel coordinates a collision has occured. The voxels that are within the cursor coordinates can be checked whether they are part of the body or are free.

An important assumption is that the STL object will lie within the voxel object. Collision detection between the cursor and the STL object only needs to be done when the cursor lies within the voxel space. The STL object is static and a voxel representation can be created but only to reduce the number of collision checks. The voxel object will have a changing shape and the goal is to represent the STL object as voxels.

0 Comments:

Post a Comment

<< Home


Counters