Vizard 8 » Reference » Input Devices » Gloves » CyberGlove Systems
8.0

CyberGlove Systems

This plug-in provides support for the CyberGlove Systems family of devices for capturing tracking data from data gloves. These devices measure finger flexion, abduction between fingers, thumb crossover, palm arch, wrist flexion, and wrist abduction. These devices use standard wireless or USB connectivity.

Initialization

In order to use the plug-in you must first install the CyberGlove Systems driver and configure the device using the Device Configuration Utility (DCU) that comes with the CyberGlove Systems installer. Once the device is connected and working properly within the DCU, you can connect to it within Vizard.

 

There are two version of the CyberGlove plug-in, depending on the version of the glove you have. If you have a glove from CyberGlove Systems, then you will use the CyberGlove.dle plug-in. If you are using the legacy CyberGlove sold by Immersion, then you will need to use the immersion.dle plug-in. Once created, both plug-ins provide the same interface.

 

The CyberGlove extension object has  the following methods/constants:

Method

Description

<CyberGlove>.addCyberGlove(port=0, baudRate=115200)

Returns a CyberGlove sensor object on the specified port. If port is 0, the plug-in will automatically detect an attached glove. The baudRate parameter specifies the baud rate the glove is communicating on when connecting to a serial device.

<CyberGlove>.addCyberTouch(port=0, baudRate=115200)

Returns a CyberTouch sensor object. The parameters are the same as the addCyberGlove method above.

<CyberGlove>.TOUCH_THUMB

<CyberGlove>.TOUCH_INDEX

<CyberGlove>.TOUCH_MIDDLE

<CyberGlove>.TOUCH_RING

<CyberGlove>.TOUCH_PINKY

<CyberGlove>.TOUCH_PALM

<CyberGlove>.TOUCH_ALL

These constants represent the vibration sensors on the CyberTouch device. The values are bit flags, so they can be combined using the bitwise OR operator.

The CyberGlove sensor object provides raw data through the sensor.getData() method. The data returned is a list containing the following values:

Note: All the joint values are in degrees

Index

Description

0

Thumb roll

1

Thumb inner joint

2

Thumb outer joint

3

Index finger inner joint

4

Index finger middle joint

5

Index finger outer joint

6

Middle finger inner joint

7

Middle finger middle joint

8

Middle finger outer joint

9

Ring finger inner joint

10

Ring finger middle joint

11

Ring finger outer joint

12

Pinky finger inner joint

13

Pinky finger middle joint

14

Pinky finger outer joint

15

Thumb-Index abduction

16

Index-Middle abduction

17

Middle-Ring abduction

18

Ring-Pinky abduction

19

Palm arch

20

Wrist flexion

21

Wrist abduction

22

Switch state

23

Gesture number

The CyberTouch sensor object is the same as the CyberGlove sensor, but contains the following additional methods for controlling the vibration sensors of the glove:

Method

Description

<cybertouch>.setVibration(sensor, value)

Set the vibration level of a CyberTouch sensor. sensor is a combination of the above vibration sensor constants. Combining multiple constants allows you to set the vibration level of multiple sensors simultaneously. value is a number between 0 and 1, that controls the vibration level. 0 is no vibration and 1 is maximum vibration.

<cybertouch>.getVibration(sensor)

Returns the vibration level of the specified vibration sensor. sensor must be one of the vibration sensor constants.

<cybertouch>.clearVibration()

Clear the vibration level of all vibration sensors.

Example

This example shows how to add a CyberGlove sensor in your script. Add a sensor for each glove you want to use.

CyberGlove = viz.add('CyberGlove.dle')
glove = CyberGlove.addCyberGlove()
data = glove.getData()

The following examples shows how to add a CyberTouch sensor and set the vibration amplitude of the index and pinky finger to 75%:

CyberGlove = viz.add('CyberGlove.dle')
glove = CyberGlove.addCyberTouch()
glove.setVibration( CyberGlove.TOUCH_INDEX | CyberGlove.TOUCH_PINKY , 0.75 )

See also

In this section:

5DT data glove

5DT plug-in

Other sections:

Tutorial: 5DT data gloves - Tutorial in the Hardware section on how to use a 5DT data glove.