Home

5DT Data Glove 5

image

Contents

1. mask right dblclick match right dblclick T1 to T5 are the thresholds for the five fingers On a right hand glove they are in the order thumb gt little while on a left hand glove they are in reverse order If a sensor value for a specific finger is below the threshold value then the finger is unflexed If it is above the threshold value then the finger is flexed 35 The bits in the mask and match bytes are encoded as follows BIT NUMBER 0 1 2 3 4 5 to 7 RIGHT HAND GLOVE Little Ring Middle Index Thumb Not used LEFT HAND GLOVE Thumb Index Middle Ring Little Not used The way that corresponding bits from the mask and match bytes are set specifies how that specific finger matches to a gesture The variations can be summarized as follows MASK 0 MATCH ACTION 0 This finger always matches 0 Match when the finger is flexed 1 Match when the finger is unflexed A mask bit of 0 with a corresponding match bit of 1 means that the finger never matches This combination is quite useless and in practice is never used The default gestures are as follows Left button Left double click Right button Right double click Fist Two Point Not index Middle Ring amp Little fingers flexed Little Point Please refer to Fig 19 in Appendix E for gesture illustrations 36 C 4 Wireless protocol The wireless 5DT Data Glove 5 W is directly connected a tra
2. 0x47 ginfo 0x48 gestures 0x55 0x49 gestures gestures La E Z Refrain from using non documented commands Although some commands may produce certain results 5DT may change such commands without prior notice Future devices may return longer or different data strings so you should examine the capability word carefully The following packets may be sent or received by the glove when the above commands are used testbyte This can be any 8 bit value To test the communication with the glove a random byte can be sent in the Test Serial I O command The communication is successful if the same byte is returned from the glove 33 gdata The measured flexure of the fingers and the measured pitch and roll of the tilt sensor are returned in this packet The packet consists of 9 bytes and has the following structure Header 1 2 3 EA ER pitch roll checksum The fheader is always a byte with a value of 0x80 128 decimal On a right hand glove the flexure values are assigned as follows f 1 thumb 2 index 3 middle 4 ring C r Jttle On a left hand glove the flexure values are assigned as follows f1 little 2 ring 3 middle 4 index 5 thumb
3. DC J ack Socket Black 2 5mm ac W Red Center Figure 16 DB9 Female Connector DB9 Pins Used 2 RD 3 7D 5 GND 7 RTS only for mouse emulation mode 31 Appendix C Serial Port I nterface Protocol The data glove is connected to the RS 232 port of the computer The standard 5DT Data Glove 5 can receive commands from the computer and it responds to these commands by sending the necessary data The following information is for the standard glove The wireless 5DT Data Glove 5 W is a transmit only device as it does not respond to any commands sent to it Please refer to section C4 for the protocol of the wireless glove C 1 Communications The 5DT Data Glove starts up in command mode This mode has the following serial settings e 19200 bits per second e 8 data bits 1 stop bit no parity e Hardware handshaking none The serial link only utilizes the TX RX and GND lines The RTS line is only used when the glove is in mouse emulation mode The glove has a 1 byte input buffer It does not detect buffer overflow and does not transmit any signals to state that the buffer is full If the buffer should overrun the extra data will be discarded C 2 Command summary for the 5DT Data Glove 5 HEX ASCII e Reset glove to command mode Send 0x41 Al Receive 0x55 U This is called the reset command Test serial I O Send 0x42 testbyte B testbyte
4. Each flexure value has a decimal range of 0 to 255 with a low value indicating an unflexed finger and a high value indicating a flexed finger pitch and roll are byte values ranging from 0 to 255 A value of 128 for either sensor indicates that the hand is untilted in that axis center value Indata This packet is emitted when the glove is in mouse emulation mode at 1200 bps 7 data bits The packet is only sent when there is a change in the values If there is no change then the packet is not sent When the glove is in high speed mouse emulation mode the packet is sent at 19200 bps 8 data bits and the most significant bits are always zero The mdata packet consists of three bytes Bit 6 5 4 3 2 1 0 Byte 1 1 L RB Y 7 6 Oe Byte 2 0 x5 Ku amp 3 2 OU ko Byte 3 0 y5 v4 oa K v fo The LB bit indicates that the left button is down and similarly the RB bit shows that the right button is down The byte formed by X o is the change in the horizontal position of the mouse cursor since the last packet It is a two s complement number The two s complement byte formed by Y o is the change in vertical position of the mouse cursor since the last packet Refrain from using non documented commands Although some commands may produce certain results 5DT may change such commands without prior notice Future devices may return longer or diff
5. Receive ttestbyte Set report data mode Send 0x43 C Receive gdata While in report data mode send the reset command to return to command mode Any other byte sent to the glove will result in the odata packet being returned Set data stream mode Send 0x44 D Receive gdata jgdata While in data stream mode send the reset command to return to command mode Any other byte sent to the glove will be ignored 32 HES Set mouse emulation mode Send 0x45 Receive mdata mdatal ASCII Fl In mouse emulation mode the transmit speed is adjusted as follows 1200 bits per second 7 data bits 1 stop bit no parity The receive speed remains the same Send the reset command at the normal speed 19200 bps 8 data bits to return command mode Any other byte sent to the glove will be ignored Set high speed mouse emulation mode Send 0x46 Receive mdata mdatal This mode is the same as mouse emulation mode but the transmit speed is not changed the transmit and receive speed are the same 19200 bps 8 data bits Send the reset command to return to command mode Any other byte sent to the glove will be ignored Request glove information Send Receive Upload gesture settings Send Receive Download gesture settings Send Receive C 3 Packet structure
6. The sensors on the 5DT Data Glove 5 are positioned as in Fig 17 Top of hand Right handed glove Tilt sensor Figure 17 Sensor positions for the 5DT Data Glove 5 Sensor Driver Sensor Description Index A 0 1 Thumb flexure B 3 4 Index finger flexure C 6 7 Middle finger flexure D 9 10 Ring finger flexure E 12 13 Little finger flexure F 16 Pitch angle of tilt sensor G 17 Roll angle of tilt sensor Table 2 Sensor mappings for 5DT Data Glove 5 Both these driver sensor indices will return the same value when the 5DT Data Glove 5 is used 42 3 2 Sensor mappings for the 5DT Data Glove 16 The sensors on the 5DT Data Glove 16 are positioned as in Fig 18 Top of hand Right handed glove Figure 18 Sensor mappings for the 5DT Data Glove 16 Sensor Driver WON AU SM O Sensor Description Index 0 Thumb flexure lower joint 1 Thumb flexure second joint 2 Thumb index finger abduction 3 Index finger flexure at knuckle 4 Index finger flexure second joint 5 Index middle finger abduction 6 Middle finger flexure at knuckle 7 Middle finger flexure second joint 8 Middle ring finger abduction 9 Ring finger flexure at knuckle 10 Ring finger flexure second joint 11 Ring little finger abduction 12 Little finger flexure at knuckle 13 Little finger flexure second joint 14 Thumb translation not yet implemented 15 Wrist flexure not yet implemented Tabl
7. Obtains the number of available gestures that can be recognized by the glove driver Return value Returns the number of available gestures Currently 16 different gestures are supported Refer to section 5 for details Parameters pFG Pointer to a glove device This is the value returned by fdOpen Remarks None int fdGetGesture fdGlove pFG Obtains the current gesture being performed Return value Returns the current gesture being performed Refer to section 5 for details 48 Parameters pFG Pointer to a glove device This is the value returned by fdOpen Remarks None void fdGetCalibrationAll fdGlove pFG unsigned short pUpper unsigned short pLower Obtains the current auto calibration settings of the driver Return value None Parameters pFG Pointer to a glove device This is the value returned by fdOpen pUpper and pLower Arrays of 16 bit unsigned integers that will contain the maximum and minimum raw sensor values The size of each array must always match the value returned by fdGetNumSensors Refer to section 6 for details Remarks None void fdGetCalibration fdGlove pFG int nSensor unsigned short pUpper unsigned short pLower Obtains the current auto calibration settings of the driver for a specific sensor Return value None Parameters pFG Pointer to a glove device This is the value returned by fdOpen nsSensor Index of the sensor that is being set
8. calibration is necessary please refer to Appendix G for detailed instructions 25 The dynamic range of my glove is limited When I flex my fingers the output changes only slightly What should I do Your glove may need hardware calibration Please refer to Appendix G for detailed instructions 5 3 Support If you experience problems or have complaints suggestions or other comments please feel free to contact your supplier preferably via e mail Please have the following information available or include it in your written correspondence 1 Computer processor make and model e g Pentium II 350 2 Operating system and version 3 4 5 The symptoms of the problem and what was happening when the problem occurred Can you reproduce the problem easily Describe how Actions taken by yourself to solve the problem You may also contact 5DT directly Please refer to our contact details in section 7 Your feedback helps make this a truly great product 26 6 Warranty I nformation 6 1 Thirty 30 Day Customer Satisfaction Guarantee If for any reason you are disappointed with this product please contact your supplier If you are not completely satisfied you will be granted a full refund once the product is returned undamaged Unfortunately shipping costs cannot be refunded 6 2 One 1 Year Product Warranty 5DT warrants to the original purchaser of the 5DT Data Glove 5 or 5DT Data Glove 5 W that it will be free of
9. 3 Oe El Te EE 33 CA WIRELESS PROTOCOL ANNER 37 APPENDIX D GLOVE DATA FORMAT GDF scccseccsecseeeseeeseeeseeeeaeeeaees 38 APPENDIX E 5DT DATA GLOVE DRIVER ccececeececeeeueveueeeeeeeeeeveveveveuees 40 Le SINTRODUGTION Eege ee EE 40 2J USING THE GLOVE DRIVER wacziseudicics a baker SEENEN eg e ANNE EE 40 3 SUPPORTED GLOVES EE 42 4 FUNCTION REFERENCE cccecccceccccceuceucuaeccueeeeeeuceueuaeueuaeseueueeeeuceeeugeseuauenuauenuanennes 44 5 GESTURE DEFINITIONS RRE 55 6 AUTO CALIBRATION watssaccecesccchavvanseioe geb ia Gai caeccedudeeuageas g E ee ee 58 APPENDIX F SOFTWARE CALIBRATION ccececeececececeveveueueueeeeveveveveneuees 59 APPENDIX G HARDWARE CALIBRATION ssceeeeeeeeeeeeeeeeeeeeeeeeeeeeaeeeenenaee 60 1 Introduction Thank you for choosing this product We trust that you will have a lot of fun and satisfaction using it The 5DT Data Glove 5 measures finger flexure and the orientation pitch and roll of a user s hand It can emulate a mouse on the hardware level and the user can type while wearing the glove These facts make it the ideal single input device for virtual reality applications Although every effort has been made to ensure that this is a rugged product it must still be treated as a sensitive instrument Do not leave it in the same room as your pet velociraptor or chihuahua Features Affordable quality One size fits many Extreme comfort 8 bit flexure resolu
10. MATERIAL FLEXURE RESOLUTION TILT ACCURACY BEND SENSORS COMPUTER I NTERFACE POWER SUPPLY SAMPLING RATE TRANSMISSION FREQUENCY TYPI CAL WIRELESS RANGE Black stretch lycra 8 bit 256 positions for each finger 0 5 60 to 60 linear range 8 bit Proprietary fiber optic based flexor technology 1 sensor per finger Standard glove RS 232 3 wire GND TX RX RTS used in mouse emulation mode 19200 bps full duplex 8 data bits 1 stop bit no parity Wireless glove RS 232 2 wire GND TX 9600 bps transmit only 8 data bits 1 stop bit no parity Maximum 150 mA 9 V DC Center positive DC power connector With the standard glove the full hand 5 fingers pitch and roll may be sampled at up to 200 samples per second With the wireless glove the full hand may be sampled at up to 100 samples per second Right handed wireless glove 418 MHz Left handed wireless glove 433 92 MHz Up to 30m Due to a program of continuous improvement these specifications are subject to change without prior notice 30 Appendix B I nterface Cable Technical Details C___s RJ12 P Connector DB9 Connector Figure 14 The interface cable RJ 12 connector glove side White Flat telephone cable 6 wire Blue Figure 15 RJ 12 Connector DB9 Connector Computer Side TransZorbs 1 5 KE 12CA 12 V Bipolar
11. The value must lie in the range given by the enumerated type EfdSensors or alternatively from zero to the value returned by fdGetNumSensors minus one pUpper and pLower Pointers to 16 bit unsigned integers containing the maximum and minimum raw sensor values Refer to section 6 for details Remarks 49 None void fdSetCalibrationAll fdGlove pFG unsigned short pUpper unsigned short pLower Resets the current auto calibration settings of the driver to user defined values Return value None Parameters pFG Pointer to a glove device This is the value returned by fdOpen pUpper and pLower Arrays of 16 bit unsigned integers containing the maximum and minimum raw sensor values The size of each array must always match the value returned by fdGetNumSensors Refer to section 6 for details Remarks For unmapped sensors it would be sensible to set the upper and lower calibration settings above and below the raw value forced with fdSetSensorRaw and fdSetSensorRawAll void fdSetCalibration fdGlove pFG int nSensor unsigned short nUpper unsigned short nLower Resets the current auto calibration settings of the driver for a specific sensor to user defined values Return value None Parameters pFG Pointer to a glove device This is the value returned by fdOpen nSensor Index of the sensor that is being set The value must lie in the range given by the enumerated type EfdSensors or a
12. defects in materials and workmanship for a period of one year from the original date of purchase During the warranty period 5DT will repair or replace with a reconditioned unit components that are defective Exclusions The above warranty is provided for private use only and shall not apply to any commercial use of the product including but not limited to e Location based entertainment LBE applications e Trade show demonstrations This warranty shall not apply to defects resulting from the following e Misuse e Improper or inadequate maintenance e Unauthorized modification 6 3 Warranty Claim I nstructions Please use the following procedure if you require warranty service 1 Contact your supplier to determine if you need to return the product If your supplier is unable to determine this contact 5DT directly Do not return a product to your supplier or to 5DT without first contacting them 2 Your supplier or 5DT will issue you with a Return Material Authorization RMA number Do not return a product to your supplier or to 5DT without an RMA number 3 Pack the items to be returned securely using the original packaging material if possible Please do not ship the glove in an envelope use a cardboard box instead 4 Please enclose the following e Your original sales bill Name address contact telephone fax numbers E mail address Reason for returning the item RMA number 5 Mark your shipping container with the R
13. in section 4 3 Demo e Glove Programming Examples more details in section 4 4 Programming Examples VC Sample e Glove Manual Manual The default installation folder for shortcuts is Windows Start Menu Programs Data Glove 5 The shortcuts that will be created in this folder are e Glove Manager e Glove Mouse e Demo e Manual The CD ROM also contains the redistributable version of DirectX 7 0 You will need this if you want to run the DirectX implementations of the Glove Demos DirectX and OpenGL demos are supplied To install DirectX 7 0 open the DirectX7 0 folder on your CD ROM drive and run DxXSetup exe If you do not have the CD ROM you will need to download DirectX 7 0 from the Microsoft website www microsoft com directx 3 Glove Manager The 5DT Glove Manager is a useful program that may be utilized for the following Connecting the 5DT Data Glove to the computer Testing the 5DT Data Glove Reprogramming the on board EEPROM Illustrating a software calibration routine for the data glove Illustrating a gesture recognition routine for the data glove Illustrating a data logging routine for the data glove 3 1 Running Glove Manager Start the program by running Glove Manager from the start menu The main program window will appear toolbar menu bar trace view gesture info Glove Manager KS File Glove eu Help eS a Reen Aler fof Fe Sa Current Gture Thumb status bar tilt ind
14. was not successful This is either because the port does not exist or because another program or device driver has already opened the port No response from Glove The port could be opened and data could be sent but no data or invalid data was returned by the glove No response from Glove could be a modem The port could be opened and data could be sent The data that was returned indicates that a modem may be connected to the specified port 23 Found a Glove but on board memory has been lost A glove was found but it is responding in a way that indicates that the on board memory is no longer valid You should reprogram the on board EEPROM memory and try to connect to the glove again See section 3 7 for more information Communication failed A glove could be detected but was not responding correctly This could indicate that the glove electronics are not functioning correctly Try switching the glove off and try again Reprogramming the on board memory may solve the problem Could not read Glove information Corrupted info header received These messages indicate that a glove was found and it responded correctly however the glove information could not be read or was invalid Switch the glove off and back on again and then try again If this does not help try reprogramming the on board EEPROM memory No data stream from Glove A working glove was found however it did not return a stream of data when requested to do so For
15. 1 fglove This may make the setup of applications easier should you need to change the port that the glove is connected to It is also required that the user of the glove has read write access to the serial port device file By default normally only the root user has these rights If non root users on the system will be using the glove the root user must grant access rights to the device file For example the following command will give everyone on the system full access to the serial port dev ttyS1 chmod 777 dev ttysS1 2 2 3 The header file The header file fglove h should be copied somewhere where your compiler can find it If you have root access the easiest is to copy it to usr include If not then just place the header file in the same directory as your application 2 3 Sample source code Sample source code that makes use of the glove driver is distributed with the driver 41 3 Supported gloves The glove driver supports all 5DT Data Gloves The current version implements 18 possible sensors and includes the roll and pitch sensors of the original 5DT Data Glove 5 The driver attempts to map values to all sensor outputs If it is unable to do so the sensor value defaults to a sensible value This value can be adjusted by forcing a specific value To the application programmer the driver therefore appears the same regardless of the type of glove that is connected 3 1 Sensor mappings for the 5DT Data Glove 5
16. 5DT Data Glove 5 5DT Data Glove 5 W Data gloves for the fifth dimension User s Manual SDT lt Fifth Dimension Technologies gt 5DT Data Glove 5 5 sensor data glove 5DT Data Glove 5 W Wireless 5 sensor data glove Data gloves for the fifth dimension User s Manual All rights reserved No part of this manual software or hardware may be copied reproduced translated or reduced to any electronic medium or machine readable format without the written consent of 5DT lt Fifth Dimension Technologies gt The owner of this product may however make copies of the software for backup purposes Windows is a registered trademark of Microsoft Corporation All other trademarks and tradenames are the respective property of their owners Unless otherwise indicated the term SDT Data Glove 5 in this manual refers to both the standard and the wireless data glove The wireless glove will be indicated as 5DT Data Glove 5 W in circumstances where there are differences between the two devices Version 2 00 February 2000 Table of Contents TAN FRODUG TION EE 1 2 SETUP ANDOINS TAL EA TO EE 2 2 1 PACKAGE CONTENTS scccccccaucvceauceeseseueucceuueenuauaeauauaeauueauaseuauuauausuauavaeasavasaseneses 2 2 2 CONNECTING THE STANDARD GLOVE sccesceseeceueaseuseueuceueaueusaueaueutaueuuaueausuueusaususeueas 4 2 3 CONNECTING THE WIRELESS GLOVE cccccceceeseeeecuaueueusuvaueususavauaueusauauauaueueauauauseeanes 6 2 4 SOFTWARE INSTALLATION AAA
17. ARA NNN 8 3 GLOVE MANAGER EE 10 3 1 RUNNING GLOVE MANAGER NNN 10 3 2 CONNECTING THE GLOVE TO THE COMPUTER NNN 12 3 3 THE SOFTWARE CALIBRATION ROUTINE AAA NNN 13 3 4 THE GESTURE RECOGNITION ROUTINE ccsescecececaueueususevaueuseuauaueususaeauauausesauausesanas 15 3 5 SAVING THE GLOVE DATA TO A LOG ELE NNN 16 3 6 CHANGING THE PROGRAM OPTIONS AAA 18 3 7 REPROGRAMMING THE ON BOARD MEMORY EEPROM A 18 4 OTHER SOFTWARE nes edea aa eaa aa ne EE Eaa aaa e e Ae 19 4 T GLOVE MOUSE a SEENEN ed eege 19 AMIA CIKO 2 DRIVER E 20 43 GLOVE DEMOS sorana a aaa NENNEN NR A a ENEE aa E 20 4 4 GLOVE PROGRAMMING EXAMPLES AANEREN 22 5 TROUBLESHOOTING AND SUPPORT ccccceeeceeeceeeeseeueeeeeeeavaveueueusereears 23 5 1 GENERAL TROUBLESHOOTING cccececcccucesaueueusueuuaueueusevavaueusaeauaueususaeaueusesauenenss 23 5 2 FREQUENTLY ASKED QUESTIONS FAQ id de r edd r ed nen eege 25 5 3 SUPPORT deer gnc beige Age ops uhawd pruad sa E EEE E E 26 6 WARRANTY INFORMATION was siecsusacedexencacuckoncanier eege ERC e 27 6 1 THIRTY 30 DAY CUSTOMER SATISFACTION GUARANTEE ssseeeeeeeeeeeeeeeeeeeeenaeeeeeaes 27 6 2 ONE 1 YEAR PRODUCT WARRANTY ee EE GER e 27 6 3 WARRANTY CLAIM INSTRUCTIONS AAA ANN 27 FZ PBOW TDD HE 28 APPENDIX A HARDWARE SPECIFICATIONS a 30 APPENDIX B INTERFACE CABLE TECHNICAL DETAILS 31 APPENDIX C SERIAL PORT INTERFACE PROTOCOL cceceececeeeeevevereveuens 32 C COMMUNI AT ON EE 32 C 2 COMMAND SUMMARY FOR THE 5DT DATA GLOVE B A 32 C
18. D Oo Figure 20 Data Glove Main Board and Daughter Board There are ten miniature potentiometers pots on the small daughter board The five pots on the left hand side adjust the offset of the five fingers i e they move the signal up and down The five on the right hand side are for adjusting the gain of the five fingers i e they make the signal larger or smaller The two pots at the bottom are for the thumb the next two are for the index finger etc 2 Run Glove Manager raw data mode and observe the trace view 3 Choose the finger that you would like to calibrate 4 Set the gain for this finger to minimum This is achieved by adjusting the right hand pot in a clockwise direction until it cannot rotate anymore It is best to use a non metallic e g plastic screwdriver for adjustment to ensure that the screwdriver does not short circuit the electronics should you slip 60 5 Repeatedly bend and unbend the finger you are calibrating While doing this adjust the offset until the waveform is in the center of the display If you rotate the offset pot in a clockwise direction the waveform will move up and vice versa Fig 21 shows an example of the centered waveform Figure 21 Centered Waveform 6 Continue bending your finger repeatedly and now increase the gain of the signal until it almost reaches
19. MA number to expedite handling at your supplier or at 5DT 6 Ship prepaid to your supplier or to 5DT 7 When completing customs or courier documentation please clearly indicate Unit returned for repairs under warranty 5DT is not responsible for any damage that may occur during shipping Shipping charges to 5DT are your responsibility COD shipments will not be accepted by 5DT 27 7 About 5DT 5DT lt Fifth Dimension Technologies gt is a high technology company specializing in Virtual Reality VR 5DT develops produces and distributes affordable virtual reality hardware software and systems 5DT can also develop custom systems for all your VR needs 5DT s focus is Virtual Reality Training Systems and Virtual Reality Peripherals The Virtual Reality hardware currently produced by 5DT includes e 5DT Data Glove 5 Right and left 5DT Data Glove 5 W Wireless right and left 5DT Data Glove 16 Right and left 5DT Data Glove 16 W Wireless right and left 5DT Data Glove MRI 5DT Head Mounted Display HMD 5DT 3 DOF Orientation Tracker 5DT Space Controller Some of the Virtual Reality software and technology demonstrators that have been developed by 5DT include e Continuous Miner Training Simulator Mechanized Coal Mining High Voltage Yard Training Simulator High Voltage Line Inspection Training Simulator Air Traffic Control ATC Training Simulator Exposure Treatment Phobia Simulator Gastroscope Training Simulator Cr
20. RJ12 connector interface cable Gia DB9 serial connector 5DT Data Glove 5 line voltage 9V DC power adapter Figure 4 The standard glove connected to the computer 2 3 Connecting the wireless glove The wireless 5DT Data Glove 5 W is connected to the computer via a transmitter and a receiver unit The recommended procedure for connecting a wireless glove to the computer is as follows please refer to Fig 5 Connect the serial interface cable to the computer DB9 connector Connect the power supply to the serial interface power cable Connect the serial cable to the receiver unit RJ12 connector Place a battery in the transmitter unit PP3 9V Connect either the short or the long transmitter cable between the glove interface box and the transmitter unit eo ae E a 6 Switch the transmitter unit on Always remember to switch the transmitter off after use The following diagram shows the wireless glove connected to the computer transmitter interface cable 3 interface box transmitter computer 5DT Data Glove 5 W D interface cable receiver S P DB9 serial connector line voltage 9V DC power adapter Figure 5 The wireless glove connected to the computer 3 The transmitter interface cable comes in two lengths a short and a longer cable The short cable is intended for use when the transmitter unit is str
21. ane Operator Training Simulator VR FLO VIZ Virtual Wind Tunnel VR FLIGHT VIZ Tactical Training Simulator for air combat Integrated Virtual Battlefield Rocket Launcher Training Simulator Fiber Guided Video Missile Training System Landscape Generation and Real time Rendering Technology Unmanned Aerial Vehicle UAV Training Simulator 5DT also produces multimedia software Some of our existing products include e High Voltage Line Inspection Training System e High Voltage Line Repair Training System e High Voltage Line Visualization System e Gastroenterology Training System Most of our systems may be customized to suit specific end user requirements Some of the systems currently under development at 5DT e Virtual Binoculars e Bronchoscope Training Simulator e Attack Helicopter Tactical Training Simulator Advance information on these systems may be supplied on request 28 5DT USA and Americas Physical amp Postal Address 15375 Barranca Pkwy G 103 Irvine CA 92618 USA Tel 1 949 450 9044 Fax 1 949 450 9045 e mail info us 5dt com Web www 5dt com 5DT Rest of World Physical Address for courier deliveries not for mail 25 De Havilland Crescent Persequor Technopark Pretoria South Africa Postal Address mail only P O Box 5 Persequor Technopark 0020 PRETORIA South Africa Tel 27 12 349 2690 Fax 27 12 349 1404 Email info 5dt com Web www 5DT com 29 Appendix A Hardware Specifications
22. apped to the wrist The longer cable enables the user to put the transmitter unit in his her pocket 2 4 Software installation The 5DT Data Glove 5 is supplied with a CD ROM and or a set of 31 2 disks These disks contain calibration and testing software applications drivers demos programming examples and this manual in electronic form Most of the supplied programs and software are intended for 32 bit Windows and require Windows 95 98 or Windows NT To install the software onto your computer insert the first disk or CD into your disk drive run the program setup exe and follow the on screen instructions The suggested installation folder is c Program Files 5DT Data Glove 5 The software may however be installed in any folder of your choice You will be prompted to insert the other disks as they are required After installation you may use the setup program to create shortcuts in your Start menu and or on your desktop to the programs and documents that were installed Please take a careful look at the Readme txt file in the main installation folder This file explains the folders that were created during installation and lists the latest information The software installed on your hard drive during installation includes e Glove Manager more detail in section 3 GloveMan e Glove Mouse more detail in section 4 1 Glove Mouse Glove Driver more detail in Appendix E Driver e Glove Demo more detail
23. are situations where you may want to record the data received from the glove by saving it to a log file Glove Manager can save the glove data in the following formats e CSV Comma Separated Values e GDF Glove Data Format The CSV format is very simple and files in this format can be read into programs such as Microsoft Excel very easily The GDF format is based on XML Extensible Markup Language This format is very versatile and is completely platform independent XML is much more robust and slightly easier to process than CSV however it does take up more disk space The specifications of the GDF file format can be found in Appendix D To save the glove data to a file open Glove Manager and choose Save Data from the File menu The following dialog box will appear Data log EN Settings Format Glove Data Format XML Fait sl Filename Files 5DT Data Glove GloveMan test odf i Sample rate Ful J 204 per second Sample time 5 J seconds Data M Thumb IV Middle Iv Little Gesture IV Index IV Ring Pitch T Roll Raw Data F Timestamp IT Suppress duplicates C Scaled Data Projected file size 85Kb Start Stop Close Figure 11 Glove Manager s data log dialog box It is possible to change the following settings Format Select either CSV or GDF format Filename Enter the name of the file you want to create You can also click the disk icon to the right of the filename edit box This wi
24. ch the value returned by dGetNumSensors Remarks The glove driver defaults to a maximum scaled value of 1 for each sensor float fdGetSensorMax fdGlove pFG int nSensor Obtains the maximum scaled value for a specific sensor Return value Returns the maximum scaled values of the sensor 51 Parameters pFG Pointer to a glove device This is the value returned by fdOpen nSensor Index of the sensor that is being queried The value must lie in the range given by the enumerated type EfdSensors or alternatively from zero to the value returned by fdGetNumSensors minus one Remarks The glove driver defaults to a maximum scaled value of 1 for each sensor void fdSetSensorMaxAll fdGlove pFG float pMax Sets the maximum scaled value for each sensor Return value None Parameters pFG Pointer to a glove device This is the value returned by fdOpen pMax Array of floating point values that contains the maximum scaled sensor values The size of the array must always match the value returned by dGetNumSensors Remarks The glove driver defaults to a maximum scaled value of 1 for each sensor void fdSetSensorMax fdGlove pFG int nSensor float fMax Sets the maximum scaled value for a specific sensor Return value None Parameters pFG Pointer to a glove device This is the value returned by fdOpen nSensor Index of the sensor that is being set The value must lie in the range give
25. developed your own processing software and wish to take advantage of the saving in disk space and quicker data processing times The following two CSV output samples show the difference between the two settings 5DT Data Glove Log File 5DT Data Glove Log File DataType Raw DataType Raw Timestamp Thumb Index Middle Timestamp Thumb Index Middle Ring Little Ring Little 0 136 93 96 83 99 0 136 93 96 83 99 3 134 93 94 83 98 3 134 94 98 7 134 92 93 82 97 7 92 93 82 97 10 131 91 93 81 96 10 131 91 81 96 14 129 90 92 81 95 14 129 90 92 95 17 126 89 92 80 95 17 126 89 80 21 124 88 91 80 92 21 124 88 91 92 24 120 88 91 80 92 24 120 28 120 88 91 81 92 28 81 31 118 88 92 82 92 31 118 92 82 35 117 89 94 82 93 35 117 89 94 93 39 117 91 97 83 94 39 91 97 83 94 Listing 1 CSV File with suppression off and on The program does not output a value if it is the same as the previous sample of the corresponding finger Some programs will not be able to interpret the data if the duplicates have been suppressed 17 3 6 Changing the program options The Glove Manager has many options you can set to change how it works To change them start Glove Manager select View then Options The options dialog box will appear These are some of the options you can adjust Load last used calibration file on startup If this option is checked then the last calibration file that was loaded will be reloaded each time the program start
26. dividual joint sensor values is taken to obtain a closed gesture and the minimum to obtain an open gesture Closed gestures take precedence in other words bending only one joint of a finger will count as a closed gesture The built in gesture recognition capabilities of the glove driver is limited in scope and user independence High level gesture recognition algorithms that rely on training sequences are suggested for advanced applications 55 5DT Data Glove 5 j E D C B sensor 5DT Data Glove 16 GE 12 13 9 10 6 7 3 4 Driver sensor index 12 13 9 10 6 7 3 4 Gesture 3 0 0 0 0 0 Fist 19 0 1 0 0 0 1 Index finger point 19 1 2 0 0 1 0 Up yours 19 2 3 0 0 1 1 Two finger point 19 3 4 0 1 0 0 Ring finger point 19 4 5 0 1 0 1 Ring index point 19 5 6 0 1 1 0 Ring middle point 19 6 Three finger point S 9 S l j Cor not little point ed 8 1 0 0 0 Little finger point 19 8 9 1 0 0 1 Howzit 19 9 10 1 0 1 0 Little middle point 19 10 11 1 0 1 1 Not ring finger point 19 11 12 1 1 0 0 Little ring point 19 12 13 1 1 0 1 Not up yours 19 13 14 1 1 1 0 ERT 5 1614 point 15 1 1 1 1 Flat hand 19 15 Table 4 Gesture definition scheme as implemented for the 5DT Data Glove Driver When the 5DT Data Glove 5 is used both these driver sensor indices will return the same value When the 5DT Data Glove 16 is used the driver sensor indices will r
27. e 5DT Data Glove indicating that the file is a 5DT Data Glove Log File The datatype attribute can be either Raw or Scaled and is used to determine what kind of data is stored in the file Raw indicates that the data in the file is raw data reported exactly as it has been received from the glove Scaled means that the data in the file has been scaled using the calibration information before being written to disk The content of the log element consists of an optional title element and one or more gdp glove data packet elements lt log gt lt title gt 5DT Data Glove Log File lt title gt lt gdp gt lt gdp gt lt gdp gt lt gdp gt lt gdp gt lt gdp gt lt log gt A gdp element has at attribute which indicates the time in milliseconds of the packet The first packet will have a t attribute value of 0 zero The content of a gdp element is a set of optional sensor elements 38 The names of the possible elements and their associated sensors are as follows tf if mf rf 1f pt rt gst Thumb finger flexure Index finger flexure Middle finger flexure Ring finger flexure Little finger flexure Pitch tilt Roll tilt Gesture If a certain sensor element does not exist the value of that sensor is assumed to be the same as the previous packet Each element must consist of a start tag and an end tag with a value between the two tags The possible range for the sensor valu
28. e 3 Sensor mappings for 5DT Data Glove 16 43 4 Function reference The following functions are provided by the driver fdGlove fdOpen char pPort Initializes the glove device on the specified port Return value Returns a pointer to the glove device fdGlove NULL is returned if an error occurred Parameter pPort Pointer to a zero terminated ASCII string containing the name of the communication port Valid values on Windows range from COM1 to COM8 Unix Linux port names will differ Remarks Do not attempt to alter the contents of the returned pointer directly use the functions provided instead int fdClose fdGlove pFG Frees the glove device and communications port Return value Returns nonzero if successful zero if an error occurred Parameters pFG Pointer to a glove device This is the value returned by fdOpen Remarks It is important to call this function when you are finished using the glove int fdGetGloveHand fdGlove pFG Obtains the handedness left or right handed of the glove Return value Returns either FD_HAND_LEFT Or FD_HAND_RIGHT as defined by the enumerated type EfdGloveHand Parameters pFG Pointer to a glove device This is the value returned by fdOpen Remarks None 44 int fdGetGloveType fdGlove pFG Obtains the type of the currently connected glove Return value Returns one of FD_GLOVENONE FD_GLOVE7 FD_GLOVE7W FD_GLOVE16 or FD_GLOVE1 6w as defi
29. e optical fibers with a dry cotton bud before assembling the glove again Are left handed gloves available Are they priced the same as the right handed ones and can I use a left and right handed glove at the same time Left handed gloves are available They are priced slightly higher than the right handed ones because of lower production volumes Left and right handed gloves may be used simultaneously provided you have two free serial ports for the gloves Can I use four or more gloves on one machine at the same time 5DT just loves people like you The number of gloves is limited by the number of serial ports on your computer Multiport cards are available that have up to eight serial ports on them It is also possible to obtain a USB Universal Serial Bus device that has many RS 232 serial ports on it The software supplied with the glove will work with any Win32 port setting from COM1 to COM8 Is it possible to use the glove with a 6DOF tracker Yes You may mask or ignore the data from the built in tilt sensor When I flex a finger the output does not change but stays at the maximum value What is the problem Either one of the fibers has failed or the data glove has become uncalibrated If when flexing the relevant finger the data stream remains saturated high and does not change at all it is likely that the fiber for that finger has broken The glove will then have to be returned to the supplier or 5DT for repairs If hardware
30. eign data stream No glove found When searching for a wireless glove a stream of data was found but it did not conform to the structure of the wireless glove protocol This error is sometimes returned when trying to connect to a wireless glove that is outputting constant data Try moving your fingers repeatedly while connecting to the glove to ensure the data is changing If your glove connects to the Glove Manager correctly but there is a problem with the operation of the glove proceed to the performance problems section Performance problems This section deals with problems that may occur after Glove Manager is connected properly and reports no errors Start Glove Manager and connect the glove as per usual Please note that it is imperative that glove manager Ze set to raw data mode in the view menu Saturated High If one of the data streams from a specific finger is saturated high there could be one of two problems Either one of the fibers has failed or the data glove has become uncalibrated If when flexing the relevant finger the data stream remains saturated high and does not change at all it is likely that the fiber for that finger has broken The glove will then have to be returned to the supplier or 5DT for repairs If hardware calibration is necessary please refer to Appendix G for detailed instructions Saturated Low If one of the data streams is saturated low it is more likely that the glove has become uncalibra
31. er fgloved lib fgloved di1 which outputs debug messages to the debugger 2 2 Linux The driver requires the Linux Posix threads library libpthread so which is usually installed with Linux The driver is linked to libc6 40 2 2 1 Installing the library The driver is a dynamic library file 1ibfglove so which must be installed somewhere where applications can find it If you have root access to the system the easiest method is to copy the file into the usr 1ib directory e g cp libfglove so usr lib If you do not have root access to the system you should place the library somewhere in your home directory and then set the LD_LIBRARY_PATH environment variable to include the full path of the directory in which you have placed the library This will indicate to the dynamic library loader where to find the file For example mkdir home yourhomedir libs cp libfglove so home yourhomedir libs export LD_LIBRARY_PATH home yourhomedir libs In the above example replace yourhomedir with your own home directory name 2 2 2 Setting up access to the serial port The 5DT Data Glove accesses the serial port using the standard Unix Linux device files in the dev directory Applications that use the glove should typically give the user the option of specifying which device to check such as dev ttyS1 It is recommended that you create a symbolic link dev fglove to your device file e g cd dev In s ttyS
32. erent data strings so you should examine the capability word carefully 34 ginfo This packet contains information about the glove It consists of 32 bytes divided as follows header version ma jor version minor capability word low capability word high reserved ID name header is always two bytes with a value of 0x42 and then 0x52 BR in ASCII wersion major is for example the 1 in 1 04 1 byte wersion minor is for example the 04 in 1 04 1 byte capability word low bit 0 is set if the glove is a right hand glove bit 6 is set if the glove is a left hand glove capability word high bit 4 is set if pitch and roll measurements available reserved is 10 bytes of reserved data ID name is a 16 byte character array containing the name of the glove If the length of the name is less than 16 bytes it is padded with NULL characters 0x00 gestures This packet contains the threshold values used for gesture recognition as well as the actual gestures assigned to single and double clicks of the left and right mouse buttons The packet is structured as follows TL T2 T3 T 4 T5 On mask left button match left button mask left dbl click match left dbl click mask right button mat ch right button
33. es is 0 to 255 inclusive A sample gdp element could look as follows lt gdp t 25 gt lt tf gt 55 lt tf gt lt gst gt Index Point lt gst gt lt gdp gt 39 Appendix E 5DT Data Glove Driver 1 Introduction The 5DT Data Glove Driver provides access to the 5DT range of data gloves at an intermediate level The Windows 95 98 NT version is provided in the form of a C C header h file a Microsoft Visual C library lib file and a dynamic link library dll file The Linux version is provided in form of a C C header h file and a dynamic library so file The driver functionality includes e Multiple instances e Easy initialization and shutdown e Basic raw sensor values e Scaled auto calibrated sensor values e Calibration functions e Basic gesture recognition e Cross Platform Application Programming Interface 2 Using the glove driver The 5DT Data Glove Driver is easy to implement Use the following guidelines 2 1 Windows 95 98 NT i Make sure that the header file fglove h the library file fglove lib and the dynamic link library file fglove dil reside in the current application directory or somewhere that they can be found The file fglove d11 may be copied into your Windows system directory ii Include the header file fglove h in the application where necessary iii Add the library file fglove 1ib to the link process There is a also a debug version of the driv
34. etThresholdAll fdGlove pFG float pUpper float pLower 53 Sets the current gesture recognition threshold settings of the driver Return value None Parameters pFG Pointer to a glove device This is the value returned by fdOpen pUpper and pLower Arrays of floating point numbers that contains the maximum and minimum threshold values The size of each array must always match the value returned by fdGetNumSensors Refer to section 6 for details Remarks None void fdSetThreshold fdGlove pFG int nSensor float fUpper float fLower Sets the current gesture recognition threshold settings of the driver for a specific sensor Return value None Parameters pFG Pointer to a glove device This is the value returned by fdOpen nSensor Index of the sensor that is being set The value must lie in the range given by the enumerated type EfdSensors or alternatively from zero to the value returned by fdGetNumSensors minus one fUpper and flower Floating point numbers that contain the maximum and minimum threshold values Refer to section 6 for details Remarks None void fdGetGloveInfo fdGlove pFG unsigned char pData Obtains the information data block of the currently connected glove Return value None 54 Parameters pFG Pointer to a glove device This is the value returned by fdOpen pData Array of 32 bytes that will contain the information data Remarks The informatio
35. eturn different values The maximum of the two values will be used to test for a flexed closed gesture and the minimum value of the two will be used to test for an unflexed open gesture 56 The following gestures are currently defined right hand shown 3 2 Up Yours Middle finger point 0 Fist 1 Index finger point 3 Two finger point 6 Ring middle finger 7 Three finger point or 4 Ring finger point 5 Ring index finger point point not little finger point 9 Howzit index and 10 Little middle finger 8 Little finger point little finger point point 11 Not ring finger point 12 Little ring finger point 14 Not index finger 13 Not up yours point 15 Flat hand Figure 19 Gesture Illustrations 57 6 Auto calibration The driver can provide sensor outputs in an automatic linearly calibrated fashion During every update the raw value read from the sensor is compared to the current minimum and maximum raw values raWmn and raWma as set by the functions fdSetCalibrationAll fdSetCalibration or fdResetCalibration If the current minimum and maximum values are exceeded they are overwritten The upper and lower calibration values are therefore continuously pushed outwards The normalized output is given by the first order equation Mat PO nin Aggy F 1 which is in 0 Max The value of Max is set by the functions fdSetSensorMaxAll and fdSetSensorMax Doin
36. flexed nor unflexed In Fig 9 the index and middle fingers are flexed the ring and little fingers are unflexed and the thumb is neither flexed nor unflexed The default values should be adequate for most users but you may wish to adjust the threshold values to achieve better gesture recognition results To move the threshold positions simply place the mouse cursor over the threshold marking then click and drag it to the new position When you are satisfied that the calibration is complete click the Finish button To save you time in the future you may want to save the calibration information to a file You can then load the calibration at any time very quickly Select Save Calibration or Load Calibration from the File menu of the main window 14 3 4 The gesture recognition routine As mentioned in the previous section the 5DT Glove Manager has the ability to recognize gestures performed by the user The results of this gesture recognition are shown in the top right hand corner of the Glove Manager screen under the toolbar It is possible to define your own gestures To do so select Gestures from the Glove menu of the Glove Manager screen The gestures dialog box will appear showing the currently defined gestures It is important to note that this gesture recognition routine only recognizes gestures within the Glove Manager program It serves as an illustration example only and does not recognize gestures for other programs applica
37. g a few flexing movements with the hand quickly sets the operating values for raWmin and faWmay and calibrates the glove The auto calibration process can be ignored by simply regarding only the raw sensor outputs It would be up to the application developer to provide a suitable calibration process Note that calibration is mandatory especially with the 16 sensor glove which contains no hardware calibration possibilities miniature preset potentiometers 58 Appendix F Software Calibration When the 5DT Data Glove is calibrated in the factory we try to obtain the largest possible dynamic range The dynamic range is the difference between the maximum output value flexed hand and the minimum output value flat hand Dynamic Range Valu max Valuemin F 2 The dynamic range may differ when persons with different hand sizes use the glove We therefore recommend that a software calibration routine be included with all glove applications programs Software calibration normalizes the effect of different dynamic ranges for different hand sizes The software calibration routine should store the minimum and maximum values and scale the output for maximum dynamic range For example lets work through an example for the thumb please refer to Fig 8 section 3 3 The minimum value is 40 ValU Emin The maximum value is 206 Valuemax The dynamic range is 206 40 166 To scale the measured values across the full dynamic ran
38. ge 256 values one therefore has to perform the following operation Valu scated ValUemeasurea Valenin X 255 Dynamic Range F 3 For 40 this becomes 40 40 x 255 166 0 For 206 this becomes 206 40 x 255 166 255 This routine could also be implemented dynamically where the glove calibrates itself while the user uses it The routine is similar to the normal calibration scheme with the difference that the minimum and maximum values are updated continuously The initial values for the minimum and maximum could be chosen as 126 and 128 respectively Please note that the 5DT Data Glove Driver includes a dynamic software calibration routine 59 Appendix G Hardware Calibration In some cases the glove may lose its factory hardware calibration reducing the dynamic range significantly This may be the result of movement of the opto electronic transmitters and receivers with respect to the fibers To determine whether hardware calibration is required run Glove Manager Section 3 1 and observe the trace view Press CTRL R to ensure that the raw unscaled data is shown The trace view shows graphs of the flexure of each of the five fingers When opening and closing your hand these traces should vary from zero to maximum If the total variation is less than a third of the maximum range your glove needs hardware calibration Calibration 1 Open the black box containing the electronics DAUGHTER BOARD MAIN BOAR
39. ger and a high value indicating a flexed finger pitch and ro11 are byte values ranging from 0 to 255 A value of 128 for either sensor indicates that the hand is untilted in that axis center value 37 APPENDIX D Glove Data Format GDF Glove Manager is able to save the data received from the glove to a file for later processing One of the supported file formats is called Glove Data Format GDF GDF is based on XML Extensible Markup Language This section describes the structure of the GDF files that Glove Manager generates The World Wide Web Consortium W3C recommendations for XML can be found at the following URL http www w3 org TR REC xml File Structure The file is structured as a standard text file consisting of lines of characters separated by carriage return line feed pairs decimal ASCII value 13 and 10 respectively The position of these CR LF pairs is unimportant It is also possible to use a single line feed character instead of a CR LF pair A GDF file begins with a processing instruction which identifies it as an XML file The declaration also specifies a standalone document lt xml version 1 0 standalone yes gt The root element is the log element starting with a lt log gt start tag and ending with a lt log gt end tag It has a class attribute and a datatype attribute lt log class 5DT Data Glove datatype Raw gt lt l g gt The class attribute should always b
40. he Demo screen is shown in Fig 13 5DT Data Glove Demo OF ES File View 3D Driver Help Menu Bar TJS t Toolbar Figure 13 Screen Shot of 5DT Data Glove 5 Demo 20 The following menu bar options are available File Exit View Toolbar Status bar Glove Settings Landscape Mode Object 1 None 2 Hand 3 Dude Allows you to exit from the program Display or hide the toolbar Display or hide the status bar Allows you to connect or disconnect the glove Switch the background landscape on or off No object loaded Animated hand loaded Animated character loaded Please take note that the landscape and an object may be loaded simultaneously 3D Driver Bilinear Filtering Dual Texture Fogging Fill Point Wireframe Solid Open GL DirectX ver 7 0 Setup Help About Switch bilinear filtering on or off Switch dual texturing on or off Switch fogging on or off Shown the landscape object vertices only Show the landscape object in wireframe mode Show the landscape in solid fill mode Render the landscape object with Open GL Render the landscape object with DirectX 7 0 DirectX 7 0 needs to be installed This option allows the user to change DirectX or OpenGL settings according to which of the two is currently selected About 5DT Data Glove Demo The following toolbar options are available eS Lo Displays the About Box Opens the Connect Dialog Box Allows the user to rotate the viewp
41. he traces on the flexure graphs will move higher and lower respectively The tilt indicators will show the pitch and roll of your hand 12 3 3 The software calibration routine Each person has a different size hand The 5DT Data Glove is designed to fit most users comfortably but it needs to be calibrated in order to achieve the maximum sensitivity within an application It is important to note that this software calibration routine only calibrates the glove for use within the Glove Manager program It serves as an iustration example only and it does not calibrate the glove for other programs applications You will have to develop a software calibration routine of your own for your applications The process of doing so is described in Appendix F Please note that the supplied Glove Driver features a built in software calibration routine Appendix E To calibrate the glove for use within Glove Manager select Calibrate from the Glove menu or click the corresponding toolbar icon The calibration dialog box will appear The first calibration step is to set the Range of each of the sensors Calibration Range First calibrate the minimum and maximum value of each sensor range by continuously flexing and unflexing your Fingers Thumb Index Middle Ring i Little Cancel Figure 8 Calibrating the glove Range Setup Repeatedly flex and unflex each of your fingers It is important to keep your hand relaxed at all t
42. icators Figure 6 The Glove Manager main window The top of the window hosts a menu and a toolbar and there is a status bar at the bottom The middle part of the screen is divided into three sections The biggest section is the trace view which shows graphs of the flexure of each of the five fingers The two circular tilt indicators are on the right under the gesture info 10 The menu and toolbar provide access to all the program s functions The following table shows the menu structure and indicates what each icon is used for define new ones Icon Menu Command Description Shortcut pe File Open Calibration Read the calibration information from F3 H an existing calibration file mj File Save Calibration Save the current calibration F2 information to a file ect Save the data received from the i EE glove to a log file S File Exit Close the program Alt F4 3 Glovel Connect Establish communication with the s glove via a COM port Glove Info Show the information returned by Ctrl I the glove e g Version al Glove Calibrate Calibrate the glove for a certain F8 45 user s hand e Glove Gestures View edit existing gestures and Ctrl G Sy Glove Program EEPROM Reprogram the on board memory of Ctrl E the glove P Glove Disconnect Disconnect the glove F12 View Raw Data Shows raw data as it is received from Ctrl R the glove ae e View Scaled Data Snows da
43. imes keeping the motion natural Do not force your hand into a gesture As you move your fingers the minimum and maximum values of each of the sensors will be shown by the dark bars in the margins The current value of each sensor is shown by the thick vertical red lines Once you are satisfied that the minimum and maximum values have been set click the Next button to continue 13 The second step is to set up the high and low thresholds for gesture recognition This step is only necessary if you would like to optimize the use of the supplied gesture recognition routines You can click the Next button to skip this step lower threshold sensor value upper threshold Calibration Threshold Now perform different g amp etures and check that they are rzcognised correctly Adjust the lower Sad upper threshold positignS by clicking on Eis ane D them and dragging them to Neither flexed nor lek SBS unflexed Index t i k 7 5 j flexed Ring t unflexed Little i i Ring Little recognized gesture Reset Figure 9 Calibrating the glove Threshold Setup For each finger there are two markings on the bar When the sensor value shown by the thick blue vertical line is to the left of the first marking this indicates an unflexed finger When the sensor value is to the right of the second marking a flexed finger is indicated If the sensor value is between the two threshold markings then the finger is neither
44. inter to an array of 16 bit integers that will contain the raw sensor values The size of the array must always match the value returned by dGetNumSensors Remarks Currently the raw sensor samples are all 12 bit unsigned values The range is therefore from 0 to 4095 Note that this is not the dynamic range of the sensors There can be severe offset values associated with each sensor The enumerated type EfdSensors defines the finger mapping for each sensor unsigned short fdGetSensorRaw fdGlove pFG int nSensor Obtains the most recent raw sensor value for a specific sensor from the currently connected glove Return value Returns a 16 bit integer See fdGet SensorRawAl11 for details Parameters pFG Pointer to a glove device This is the value returned by fdOpen nSensor Index of the sensor that is being set The value must lie in the range given by the enumerated type EfdSensors or alternatively from zero to the value returned by fdGetNumSensors minus one Remarks The enumerated type EfdSensors defines the finger mapping for each sensor void fdSetSensorRawAll fdGlove pFG unsigned short pData Forces the raw value for all the sensors Return value None Parameters DEG Pointer to a glove device This is the value returned by fdOpen pData Pointer to an array of 16 bit integers that will contain the raw sensor values The size of the array must always match the value returned by dGetNumSensor
45. k that the power supply is 9V DC center positive 2 Check that the glove is connected to the right port Try to connect the glove to another port perhaps using a 9 to 25 pin adapter and try again 3 Check all the connections Chapter 2 has information on how to correctly connect the interface cable to the glove the power supply and the computer Refer to Fig 4 or Fig 5 4 Check the serial cable Consult the interface cable specifications in Appendix B You will find that a multimeter is helpful here 5 Check that the port is working Try connecting another device for example an external modem If the 5DT Data Glove is recognized by your computer but not connecting properly proceed directly to the software connection problems section Software Connection Problems Run Glove Manager and select Connect from the Glove menu If the Ports tab is selected you will be able to see which COM ports are available Remember that not all available ports will be physically connected to a socket on the back of your computer Some ports may be unavailable because other programs have already taken control of the ports Examples are mouse drivers and fax or communication programs Select an available port and click the Connect button to search for a glove on that port If a glove is not detected one of the following error messages may be returned by Glove Manager Could not open COMx Glove Manager attempted to open the specified COM port but
46. late left and right button clicks as well as double clicks The default gestures are Left Click Fist Left Double Click Index and middle finger point Right Click Not index finger middle ring and little fingers pointed Right Double Click Little finger point Please refer to Fig 19 in Appendix E for gesture illustrations Glove Mouse currently only supports the right handed glove 19 To install the Glove Mouse The Glove Mouse program must be run with the glove connected to a different COM port than the port where the mouse driver is active For example you could start with a mouse and mouse driver on COM1 and the Data Glove on COM2 Once the glove has been set to mouse emulation mode shut down the computer and plug the glove into COM1 When the computer is restarted the mouse driver will detect the glove as a mouse It is possible to modify the gestures used for left and right clicks and left and right double click by selecting another gesture from the gesture drop down list Once the new gestures have been selected click on Upload to update the settings on the glove 4 2 Glove Driver Driver The 5DT Data Glove Driver is explained in detail in Appendix E 4 3 Glove Demos Demo These Demos currently allow you to do the following View the animated hand on its own Use the animated hand to navigate a landscape Animate the movement of a character Animate the movement of a character in a landscape T
47. ll open a save dialog box Sample rate Here you can select Full Half or Quarter Selecting Full will save each data packet received from the glove to the log file The Half setting will only save every second packet and the Quarter setting will save every fourth packet Sample time Enter the maximum number of seconds you would like to record You can always click the Stop button to stop recording before 16 this maximum time has expired Raw data Select this option if you would like to save the data exactly as it is received from the glove Scaled data Select this option if you would like to save scaled calibrated data to the log file This option is only available if the user has run the calibration procedure or loaded a calibration file Select all the checkboxes for the data you wish to save You may choose to save the flexure of any of the fingers and even the tilt values pitch and or roll Select the Gesture checkbox if you would like to save the gesture recognition results These gesture recognition results are calculated from each data packet independently To start saving the data to the log file click the Start button Recording will stop automatically after the specified time interval or when the Stop button has been clicked The last option is the Suppress Duplicates checkbox If you select this option then the program will only output a data value if it has changed You will want to select this option if you have
48. lternatively from zero to the value returned by fdGetNumSensors minus one nUpper and nLower 16 bit unsigned integers containing the maximum and minimum raw sensor values Refer to section 6 for details Remarks 50 For unmapped sensors it would be sensible to set the upper and lower calibration settings above and below the raw value forced with fdSetSensorRaw and fdSetSensorRawAll void fdResetCalibration fdGlove pFG Resets the internal auto calibration settings of the driver to appropriate default values Return value None Parameters DEG Pointer to a glove device This is the value returned by fdOpen Remarks This function is similar to the fdSetCalibrationAli1 function with each of the upper and lower calibration array values set to 0 and 4095 respectively This function or any of the other calibration functions should be called whenever the application starts up or the glove changes users during run time For unmapped sensors the upper and lower calibration values are set to 4095 and 0 respectively which is the nverse of the auto calibration settings void fdGetSensorMaxAll fdGlove pFG float pMax Obtains the maximum scaled value for each sensor Return value None Parameters pFG Pointer to a glove device This is the value returned by fdOpen pMax Array of floating point values that will contain the maximum scaled sensor values The size of the array must always mat
49. n by the enumerated type EfdSensors or alternatively from zero to the value returned by fdGetNumSensors minus one fMax A floating point value that contains the maximum scaled sensor value 52 Remarks The glove driver defaults to a maximum scaled value of 1 for each sensor void fdGetThresholdAll fdGlove pFG float pUpper float pLower Obtains the current gesture recognition threshold settings of the driver Return value None Parameters pFG Pointer to a glove device This is the value returned by fdOpen pUpper and pLower Arrays of floating point numbers that will contain the maximum and minimum threshold values The size of each array must always match the value returned by fdGetNumSensors Refer to section 6 for details Remarks None void fdGetThreshold fdGlove pFG int nSensor float pUpper float pLower Obtains the current gesture recognition threshold settings of the driver for a specific sensor Return value None Parameters pFG Pointer to a glove device This is the value returned by fdOpen nSensor Index of the sensor that is being queried The value must lie in the range given by the enumerated type EfdSensors or alternatively from zero to the value returned by fdGetNumSensors minus one pUpper and pLower Pointers to floating point numbers that will contain the maximum and minimum threshold values Refer to section 6 for details Remarks None void fdS
50. n data is specified in the glove user s manual The size of the information block is always 32 bytes void fdGetDriverInfo fdGlove pFG unsigned char pData Obtains the information data block of the driver Return value None Parameters pFG Pointer to a glove device This is the value returned by fdOpen pData Array of 32 bytes that will contain the information data Remarks The information data is a zero terminated string that contains driver information The size of the information block is always 32 bytes 5 Gesture definitions The currently defined set of gestures is comprised of binary open close configurations of the fingers excluding the thumb There are 2 16 such possible combinations Gesture number 0 is defined as all the fingers excluding the thumb being closed and gesture number 15 as all the fingers open The index finger indicates the least significant bit For example the index finger point gesture will therefore be number 1 and the little finger point gesture number will be 8 An invalid unrecognizable gesture is defined as the value 1 A scaled sensor value of higher than the upper threshold setting will indicate a closed finger while a scaled sensor value of lower than the lower threshold setting will indicate an open finger A value in between is invalid and will result in an invalid gesture In the case of multiple finger joint angle measurements such as the 16 sensor glove the maximum of the in
51. ned by the enumerated type EfdGloveTypes Parameters pFG Pointer to a glove device This is the value returned by fdOpen Remarks FD_GLOVE7 and FD_GLOVE7w refer to the original 5 2 tilt angles sensor glove SDT Data Glove 5 The w suffix indicates a wireless model FD_GLOVE16 and FD_GLOVE16W refer to the 16 sensor glove In order to accommodate both glove types the fdGetNumSensors function currently returns 18 sensors The additional two sensors are defined as the original tilt angles that are not present in the 16 sensor glove See the description of fdGetNumSensors for more details int fdGetNumSensors fdGlove pFG Obtains the number of available sensors values the driver can make available Return value Returns the number of sensors Currently it is fixed at 18 but future driver releases may differ Parameters pFG Pointer to a glove device This is the value returned by fdOpen Remarks Although the 5 sensor glove can measure only average flexure the driver will attempt to fill in missing values The number of sensors returned can therefore be of a higher dimension The enumerated type EfdSensors defines the finger mapping for each sensor void fdGetSensorRawAll fdGlove pFG unsigned short pData Obtains the most recent raw sensor values from the currently connected glove Return value None Parameters pFG Pointer to a glove device This is the value returned by fdOpen 45 pData Po
52. nsmitter unit that transmits the signals via a radio frequency RF link The receiver unit detects the RF signals and sends them to the computer via a serial connection to the RS 232 port This mode has the following serial settings e 9600 bits per second e 8 data bits 1 stop bit no parity e Hardware handshaking none The serial link only utilizes the TX and GND lines in other words the wireless glove is a transmit only device The receiving unit ignores all commands sent to it from the computer The glove continuously emits a glove data packet This packet is similar to the packet sent by the standard glove however one extra byte is added to the end of the packet Header EU 2 3 A 5 pitch roll checksum cb The fheader is always a byte with a value of 0x80 128 decimal is the capability byte of the wireless glove bit 0 is set if the glove is a right hand glove bit 6 is set if the glove is a left hand glove On a right hand glove the flexure values are assigned as follows 1 thumb 2 index 3 middle 4 ring 5 little On a left hand glove the flexure values are assigned as follows 1 little ng 3 middle f4 index 5 thumb Each flexure value has a decimal range of 0 to 255 with a low value indicating an unflexed fin
53. oint around the loaded object by left clicking and moving the mouse simultaneously Allows the user to move the viewpoint around the loaded object by left clicking and moving the mouse simultaneously Allows the user to zoom in and out with respect to the loaded object by left clicking and moving the mouse simultaneously Dude is a relic from a bygone era He will be fashionable every 20 30 years 21 Using the Demo When a particular object or character is chosen a dialog box will appear with specific instructions on how to animate that specific object and or move around in the landscape 4 4 Glove Programming Examples Programming Examples VC Sample Sample Source Code Microsoft Visual C 6 0 is supplied to illustrate how the Glove Driver may be used A Linux programming example is also available and can be found under the LINUX directory of your CD Disk 22 5 Troubleshooting and Support The following information is provided to help you diagnose any problems that may be encountered with your 5DT Data Glove 5 or 5 W Please carefully consult this section before contacting your supplier 5 1 General Troubleshooting If the glove is not working at all please work through the physical connection problems section of the troubleshooting procedure to identify the source of the problem Physical Connection Problems 1 Check that the glove is getting power A red light LED will be shining if the power is adequate Chec
54. pear in the connect dialog box Set the options to match the configuration of your glove i e Left or Right handed glove and whether there is a tilt sensor Select the port to which the glove is connected and click the Program button If the glove is found to be working correctly no problem with the EEPROM detected you will be prompted to confirm the programming otherwise the programming will start immediately Once the on board EEPROM memory has been programmed you will be requested to unplug the interface cable from the glove and then reconnect it This is to ensure that the glove can initialize itself to the new values 18 4 Other Software Please consult the Readme txt file in the main installation folder This file fully explains all the software that was installed on your hard drive 4 1 Glove Mouse Glove Mouse The 5DT Glove Mouse program GloveMouse exe is used to make the glove emulate a Microsoft mouse on the hardware level Glove Mouse EN come DI Connect Gestures Mouse Gesture Information Left button Right button change Fist DI Not Index d Upload Left double click Right double click Two Point DI Little Point D Cancel Thumb Index Middle Ring Little Test Area Connected to Right hand glove Figure 12 Glove Mouse Cursor movement is induced by tilting rolling and or pitching the hand and default gestures have been defined to emu
55. s Remarks Currently the raw sensor samples are all 12 bit unsigned values The range is therefore from 0 to 4095 The enumerated type EfdSensors defines the finger mapping for each 46 sensor Forcing a sensor value will result in a raw and scaled output other than the default zero Values that can be mapped will be overwritten rendering the forced value void void fdSetSensorRaw fdGlove pFG int nSensor unsigned short nRaw Forces the raw value for a specific sensor Return value None Parameters pFG Pointer to a glove device This is the value returned by fdOpen nSensor Index of the sensor that is being set The value must lie in the range given by the enumerated type EfdSensors or alternatively from zero to the value returned by fdGetNumSensors minus one nRaw 16 bit raw value of the sensor If the sensor is unmapped the scaling calculations will proceed as normal Remarks The enumerated type EfdSensors defines the finger mapping for each sensor This function is only useful for sensors that cannot be mapped by a specific hardware device Forcing a sensor value will result in a raw and scaled output other than the default zero Values that can be mapped will be overwritten rendering the forced value void void fdGetSensorScaledAll fdGlove pFG float pData Obtains the most recent scaled auto calibrated sensor values from the currently connected glove Return value None Parameter
56. s Close connect dialog box on successful connection Check this option to force the connect dialog box to be automatically closed when a successful connection is made with a glove Show blank gesture When this option is checked then a blank invalid gesture will still be shown This implies that the gesture recognition mode is Current Gesture If this option is not checked then the mode will be Last Gesture as the last recognized gesture will be shown and blank invalid gestures will not Show toolbar hints Check this option to enable the display of popup toolbar hints These hints explain what each icon represents and list the relevant shortcut key for that command You can change the appearance of the program by selecting one of the predefined color schemes It is also possible to create your own scheme by adjusting the colors 3 7 Reprogramming the on board memory EEPROM The non volatile on board memory in the 5DT Data Glove is EEPROM based The glove will retain its settings in the absence of power Under rare circumstances it is possible for this on board memory to be lost or overwritten This may occur if non glove software writes spurious data to the port where the glove is connected or if the glove interface experiences high levels of electrostatic discharge If the on board memory is lost or corrupted it is very easy to re program Select Program EEPROM from the Glove menu The EEPROM Reprogram tag will ap
57. s pFG Pointer to a glove device This is the value returned by fdOpen pData Pointer to an array of floating point numbers that will contain the scaled sensor values The size of the array must always match the value returned by fdGetNumSensors Remarks The sensor range is a value from zero to the value defined by the fdSet SensorMax and fdSetSensorMaxAl11 functions The glove driver defaults to a range of 0 1 47 The automatic calibration process is described in section 6 The enumerated type EfdSensors defines the finger mapping for each sensor float fdGetSensorScaled fdGlove pFG int nSensor Obtains the most recent scaled auto calibrated value for a specific sensor from the currently connected glove Return value Returns a floating point sensor value Parameters pFG Pointer to a glove device This is the value returned by fdOpen nSensor Index of the sensor that is being set The value must lie in the range given by the enumerated type EfdSensors or alternatively from zero to the value returned by fdGetNumSensors minus one Remarks The sensor range is a value from zero to the value defined by the fdSet SensorMax and fdSetSensorMaxAll functions The glove driver defaults to a range of 0 1 The automatic calibration process is described in section 6 The enumerated type EfdSensors defines the finger mapping for each sensor int fdGetNumGestures fdGlove pFG
58. t of installation disks and or CD ROM tO SS ew ee ee Ze Please note that batteries are not included in the package 2 2 Connecting the standard glove The 5DT Data Glove 5 consists of a lycra glove with embedded fiber optic sensors These sensors are linked to the computer via an opto electronics unit a ribbon cable and an interface box The ribbon cable also joins the interface box to the tilt sensor interface box opto electronics interface cable ribbon cable lycra glove tilt sensor Figure 3 The components of the 5DT Data Glove 5 The 5DT Data Glove 5 connects to a 9 pin RS 232 serial port DB9 connector via the interface cable If the glove is to be used with a 25 pin serial port connector a 9 to 25 pin adapter may be used The recommended procedure for connecting the standard glove to the computer is as follows please refer to Fig 4 1 Connect the serial cable to the computer DB9 connector 2 Connect the power supply to the serial interface power cable 3 Connect the serial cable to the glove RJ12 connector 1 The tilt sensor may be mounted to the glove with velcro in two orthogonal orientations depending on whether the glove will be used mostly in a horizontal position or sideways thumb pointing upwards orientation The following diagram shows the glove connected to the computer interface box computer P
59. ta that has been scaled Ctrl S with the calibration routine View Options View and set the program settings o and display options Help About Display program information Table 1 Glove Manager menu structure and icons 11 3 2 Connecting the glove to the computer Before you can use the Data Glove you need to connect to it Choose Connect from the Glove menu or click on the corresponding toolbar icon The connect dialog box will appear showing a list of available ports Select the port e g COM2 where the glove is connected and then click the Connect button Connect to Glove EN Ports connect EEPROM Reprogram 1 Available BC JF Co E Unavailable Figure 7 Glove Manager s connect dialog box The program will switch from the Ports tab to the Connect tab and then attempt to open the port and connect to the glove The following message will be shown or a slight variation Opening port COM2 COM2 opened Detecting Glove Glove found Checking communication Communication established Requesting info Info received Requesting data stream Connected to Glove If a glove cannot be found the exact reason for this will be displayed See the troubleshooting section in Chapter 5 for help Click the Close button to shut the connect dialog box In the main window the graphs will show the current flexure of the fingers as well as the tilting of the hand As you flex and unflex your fingers t
60. ted than a fiber having failed If hardware calibration is necessary please refer to Appendix G for detailed instructions 24 5 2 Frequently Asked Questions FAQ Q A PO PO PO PO gt O PO My glove is connected to COM2 but Glove Manager reports that this port is not available There may be a mouse driver or other program that has already opened that port Once a program or driver has opened a COM port no other program will be able to access that port until the first one closes The Glove Manager program reports that the on board memory of my glove has been lost Choose Reprogram EEPROM from the Glove menu See section 3 7 for more details Is it possible to use the glove in a LINUX environment Yes The 5DT Data Glove Driver is a cross platform driver and includes a LINUX driver Is it possible to use the glove in a UNIX environment Yes UNIX drivers are available Please contact 5DT for more information How do I clean my glove With a great deal of finesse The lycra part of the glove may be soaked in cold water with mild detergent but only after all the electronics have been disconnected This includes the interface box the tilt sensor and the optical electronics board DO NOT soak the electronics DO NOT scrub dry clean or spin dry the lycra part To dry the lycra once it has been soaked carefully put it down on a towel and allow it to dry When the lycra has dried carefully clean the front ends of th
61. the maximum and minimum on the graph You will find that by changing the gain the offset will change slightly 7 Sometimes the graph will not be centered and one side of the signal will clip Fig 22 shows an example of this If clipping occurs adjust the offset to move the signal up or down When the waveform is centered again continue adjusting the gain VV VV Vv Figure 22 Clipped Waveform 8 Once the finger has been calibrated it should look as in Fig 23 when you repeatedly flex and unflex your finger Figure 23 Optimum Dynamic Range 9 Be careful not to set the gain too high Doing so will result in saturation as shown in Fig 24 Figure 24 Waveform with gain too high 10 Proceed with all the other fingers in the same manner 61
62. tion Platform independent serial port interface RS 232 Built in 2 axis tilt sensor Mouse emulation mode High update rate Bundled software Right and left handed versions available Wireless versions available SDT Data Glove 5 W Low crosstalk between fingers On board processor and memory Quick hot release connection Cross platform drivers 2 Setup and I nstallation Please check to see that your 5DT Data Glove package contains all the necessary items It will be difficult to properly install and use the product if any item is missing To connect the glove to your computer follow the instructions in the relevant section 2 1 Package contents The standard 5DT Data Glove 5 package consists of the following items SDT Data Glove 5 W er Steeg Figure 1 Package contents for the 5DT Data Glove 5 1 The 5DT Data Glove 5 with fiber optic sensors tilt sensor ribbon cable and processing unit The interface cable A power supply unit A set of installation disks and or CD ROM This manual a eo E The package for the wireless 5DT Data Glove 5 W consists of the following items Figure 2 Package contents for the 5DT Data Glove 5 W 1 The 5DT Data Glove 5 W with fiber optic sensors tilt sensor ribbon cable and processing unit The interface cable A power supply unit Wireless receiver unit Wireless transmitter unit Short transmitter interface cable Long transmitter interface cable This manual A se
63. tions You will have to develop your own gesture recognition routines for your applications Please note that the supplied Win NT Glove Driver features built in gesture recognition routines Appendix E Gesture Thumb Index Middle Ring Little Fist Ignore Flexed Flexed Flexed Flexed Index Point Ignore Unflexed Flexed Flexed Flexed Middle Point Ignore Flexed Unflexed Feed Flexed Ring Point Ignore Flexed Flexed Unflexed Flexed Little Point Ignore Flexed Flexed Flexed Unflexed Two Point Ignore Unflexed Unflexed Flexed Flexed Flat Ignore Unflexed Unflexed Unflexed Unflexed Howzit Ignore Unflexed Flexed Flexed Unflexed Not Index Ignore Flexed Unflexed Unflexed Unflexed Not Middle Ignore Unflexed Feed Unflexed Unflexed Not Ring Ignore Unflexed Unflexed Heed Unflexed Not Little Ignore Unflexed Unflexed Unflexed Flexed Ring Little Ignore Flexed Flexed Unflexed Unflexed Gesture Thumb 2 Index 2 Middle Ring 2 Little Figure 10 Glove Manager s gesture dialog box To create your own gesture click the New button Type a name for the gesture and then select either Ignore Flexed or Unflexed for each sensor Once you are satisfied click the Accept button You can edit the default gestures by selecting one of them and then clicking the Edit button Once you have made your changes click the Accept button Click the Cancel button if you do not want to save your changes 15 3 5 Saving the glove data to a log file There

Download Pdf Manuals

image

Related Search

Related Contents

- Veba  Massive Floor lamp 42069/06/10  Graco Inc. 309489D Paint Sprayer User Manual  LED BLOCK モジュール仕様書 ダウンロード  Philips FC6230  GE WWA9850R User's Manual  EPIC Training: User Manual 2015  User`s Manual  

Copyright © All rights reserved.
Failed to retrieve file