210 likes | 385 Views
VR Stuffs HMD , Trackers. Sunghoon Yim. Our lab’s VR Resource . Our lab was founded in 1991 with the name of Virtual Reality Laboratory We have lots of VR stuffs such as HMDs , trackers, stereo displays and ‘CAVE’.
E N D
VR Stuffs HMD, Trackers SunghoonYim
Our lab’s VR Resource Our lab was founded in 1991 with the name of Virtual Reality Laboratory We have lots of VR stuffs such as HMDs, trackers, stereo displays and ‘CAVE’. If you participate in some VR related research project (ie:MHI), you would be able to handle these stuffs.
Our lab’s VR Resource • HMDs • 3 Deayangi-Visor HMDs are available • They have two RGB connectors. • Other HMDs are invalid. • Stereo projectors • We have one projector lack for stereoscopy, polarizing filters, a screen for projecting polarized light. • Two pairs of projectors are available (4 projectors) • Trackers • Ascession Flock of Bird, magnetic tracker is available • IntersenseIS900, hybrid tracker is available
Our lab’s VR Resource • CAVE system • The system have been located at the 1st floor of Tae-Joon Park Digital Library. • Wireless IS900 tracker systems. • 4 wall stereo displays. • 4 graphic rendering servers. • Silicon graphics CAVE lib • The system is temporally unavailable at present • This system is always suffered from frequent faults.
Scope of This Tutorial • How to use HMD, especially i-Visor series. • Be able to write graphic programming for stereo rendering • Be able to handle some minor device errors • How to use IS900 trackers • Understand a characteristic of trackers. • Be able to handle object rotation. • It is better that you can handle a network system between a tracker server and clients.
Head Mounted Display HMD is a display device, worn on the head or as part of a helmet, that has a small display optic in front of each eye. It can be used to make ‘immersive VR’ or ‘video see-through AR’
Deayangi Visor FX 605 Resolution : SVGA800x600 Display : OLED FOV (diagonal) : 42 degree Screen (virtual screen size, 2 m in front of you ) : 60 inch Input signal : SVGA 60 Hz Input type : separated (dual input )
How to use HMD? Left Right • Simple! • You make two video outputs through RGB port • Mono image • Make one 800x600 image, and clone it . • Stereoscopic • Make one 1600x600 image which is composed of view of left eye and right eye, and output it side by side mode (or use video splitter). • Make two 800x600 images, and output them using dual screen mode • The refresh rate of video should be 60 Hz
Trackers • Trackers measure the motion of “objects” such as a user’s wrist or his head with respect to a fixed system of coordinates • Technologies to perform this task: • Magnetic trackers (FOB) • Ultrasonic trackers (3D Mouse) • Mechanical trackers (Most force feedback haptic devices) • Inertial/ultrasonic trackers (IS900) • Vision-based trackers
Considerations for using Tracker • Performance features • Accuracy, resolution, repeatability, jitter, drift, and update rate • Tracker characteristics originated in tracking principle • Vision and ultra sonic trackers are affected by occlusion • Magnetic tracker is affected by existence of ferrous material • Coordinate system!!! • Most coordinate system of trackers are not equivalent to the OpenGL coordinate system. • Especially you must take when you handle the rotation of tracker
InterSense IS 900 • Most frequently used tracker in our lab. • Inertial & ultrasonic tracker • Ultrasonic tracking used to find translation • Gyro & accelerometer used to fined orientation • Performance (spec) • 6 DOF • Resolution : 0.75 mm / 0.05° • Static accuracy : 2.0~3.0 mm / 0.25° RMS in Pitch&Roll, 0.50° RMS in yaw • Update rate : 180 Hz Nominal • Latency : 4ms Typical
Intersence Coordinate Reference Frame Y Yaw X Pitch Roll Z IS900Coord. frame OpenGL Coord. frame • Rotation sequence (IS 900 Coord. frame) : • The sequence starts with a rotation by (+yaw) about the Z axis, followed by a rotation by (+pitch) about new Y axis, followed by a rotation by (+roll) about new X axis
Sample Code for IS900 This is essential part of code for using IS900 In order to use IS900api, you need isense.h & isense.dll
Network Issue. • The tracker system frequently operated in separated tracker server. In this case, we need network communication to get tracking data from the server. • If you can handle network programming, you can use your own server and client programs. • Don’t worry! we have a simple code for communicating with the tracker. you can use it. • Virtual Reality Peripheral Network (VRPN) can be an another general solution for this issue. • http://www.cs.unc.edu/Research/vrpn/
Assignment • Make a simple virtual room • VE must be able to navigate freely. • A tracker and a HMD must be used to make VE. • In the virtual room, there must exist more than one model. • VE need not provide stereoscope. • You can use any kinds of scene graph APIs. CHAI3D can be an excellent scene graph API for you. Of course, you also can make the VE using only pure OpenGL codes. • We provide several source codes for communicating with the tracker. Thus, you should not consider the network issues.
WAM 7 DOF robot arm It is the largest and most powerfuldevice in our lab RTAI Linux programming environment is used to control WAMIf you want use WAM, you must can program in Linux environment. In our lab, WAM is controlled by an external PC which is specially designed to control WAM. The separated Window driven visual server is communicated with WAM external PC
How to use WAM • WAM external PC • Turn on WAM andexternal PC • Log in the external PC (robot/WAM) • Location of source code • basic codes (provided by maker) : btclient/src • new codes (written by our lab) btclient/hvr • Activation & deactivation of WAM • Activation • Run program • Push shift+idle in control pendant • Move WAMto home position • Push shift+active in control pendant • Deactivation • Push shift+idle in control pendant • Push control+Cor perform other methods to exit program
WAM Coordinate Frame & Basic Configurations • Coordinate frame of WAM • Home position z y x When every joint angle is zero
WAM Basic Libraries • Located in src/btwam or src/btsystem • If you want use WAM, consult with the source codes