Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introduction to CHAI3D
Haptics SDK
computer haptics interface to different hardware, extensible (see assignment 3) haptics rendering loop haptic effects visualization graphics support based on openGL and GLUT visual rendering loop scenegraph interactive real-time simulation collision detection, timers and thread management
Jochen Lang
Actuators
Device + Biomechanics
Output Loop
Adapted from M.C. Lin and M.A. Otaduy, Recent advances in haptic rendering and applications, Otaduy, SIGGRAPH course notes, 2005.
Jochen Lang
Haptic Rendering
Force Haptic Rendering Position
Force Computation
Object Response
Collision Detection
Jochen Lang
Jochen Lang
void update();
// Returns the specifications of the ith device.
int getDeviceSpecifications( getDeviceSpecifications( cHapticDeviceInfo& a_deviceSpecifications, cHapticDeviceInfo& a_deviceSpecifications, unsigned int a_index = 0);
// Returns a handle to the ith device if available.
cHapticDeviceInfo string m_manufacturerName; double m_maxForce; double m_workspaceRadius; bool m_sensedPosition; bool m_sensedRotation; bool m_actuatedPosition; bool m_actuatedRotation;
Jochen Lang
Jochen Lang
Scenegraph Nodes
cGenericObject
Parent of all scenegraph nodes
cCamera
Controls the position/orientation of the camera relative to the scene
cLight
Light source position and orientation
cGenericTool
Haptic tools
cWorld
Root of the scene
Jochen Lang
10
Jochen Lang
11
Example: 12-Polygon
Uses a triangle mesh Haptic finger proxy rendering algorithm of [Ruspini et al. 97] Collision detection with build in axis-aligned-bounding-box tree
Copyright Chai3D
Jochen Lang
12
Credits, References
Material from:
Francois Conti, Chai3D source code Kenneth Salisbury, Federico Barbagli and Franois Conti, CS 277 - Experimental Haptics, Lecture 4, Open Source Framework CHAI 3D, Stanford University
Jochen Lang
13