Six DegreeofFreedom Haptic Rendering Using Voxel Sampling W

  • Slides: 12
Download presentation
Six Degree-of-Freedom Haptic Rendering Using Voxel Sampling W. A. Mc. Neely K. D. Puterbaugh

Six Degree-of-Freedom Haptic Rendering Using Voxel Sampling W. A. Mc. Neely K. D. Puterbaugh J. J. Troy The Boeing Company Proc. of ACM SIGGRAPH 1999, pages 401– 408, 1999. Presented by: Jernej Barbic Graphics Lab Carnegie Mellon University Note: most images are taken from the SIGGRAPH 1999 paper. source: www. sensable. com 1

This paper addresses: 6 -DOF force-feedback haptic rendering • Can manipulate a rigid object

This paper addresses: 6 -DOF force-feedback haptic rendering • Can manipulate a rigid object in a detailed rigid static scene • The user feels both forces and torques 2

This paper addresses: 6 -DOF force-feedback haptic rendering • Can manipulate a rigid object

This paper addresses: 6 -DOF force-feedback haptic rendering • Can manipulate a rigid object in a detailed rigid static scene • The user feels both forces and torques 3

Virtual coupling Necessary to improve simulation stability. virtual spring Two independent springs: one for

Virtual coupling Necessary to improve simulation stability. virtual spring Two independent springs: one for position, one for orientation. Spring rest length is zero. 4

Representing the manipulated object: Point Shell Point shell = near-uniform collection of points on

Representing the manipulated object: Point Shell Point shell = near-uniform collection of points on the surface Number of points = 380 5

Representing the manipulated object: Point Shell • Each point caches its inward normal •

Representing the manipulated object: Point Shell • Each point caches its inward normal • Point shell and normals computed during pre-process once and for all 6

Representing static environment: Vox. Map • a 3 D volumetric data structure 7

Representing static environment: Vox. Map • a 3 D volumetric data structure 7

Static environment representation (Vox. Map) 0 = free space 1 = interior 2 =

Static environment representation (Vox. Map) 0 = free space 1 = interior 2 = surface 3 = proximity = 8

Merge multiple static objects into one structure 0 = free space 1 = interior

Merge multiple static objects into one structure 0 = free space 1 = interior 2 = surface 3 = proximity = 9

Point Shell and Voxmap together At every cycle: • Determine environment forces: probe each

Point Shell and Voxmap together At every cycle: • Determine environment forces: probe each point against the volumetric data structure • Determine the virtual coupling force • Same for torques 10

Point Shell and Voxmap together At every cycle: • Sum of forces on dynamic

Point Shell and Voxmap together At every cycle: • Sum of forces on dynamic object = sum of environment forces + + virtual coupling force • Do one Euler step to update the position of dynamic object • Send negative virtual coupling force to user • Same for torque 11

Compress Voxmap into a Voxmap Tree Reason: • Voxmap data structure is huge Good:

Compress Voxmap into a Voxmap Tree Reason: • Voxmap data structure is huge Good: • compresses data Bad: • slower to lookup than “raw” voxels 12