Using Senso Gloves with SteamVR.

Overview

As a SteamVR controller, Senso Glove DK3 uses not only the skeleton of the hand, but also bindings and render models of the controller. It is possible to use any model, but for sake of compatibility pre-default state is a simulation of the Valve Index controller which supports precise hand and finger tracking features. All the configuration settings for Senso Glove can be tuned in configuration files - including haptics, gesture recognition and positioning.

In order to make sure that SteamVR is linked with Senso Gloves, you can check this folder on your PC

C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers\

It should have several folders for drivers like oculus, htc and among them also senso

In case you don't have it, the best way is to re-install Senso software.

Or you can just copy it manually from C:\Senso_DK3\SteamVR_driver\ including all subfolders.

Senso Gloves don't need to use external trackers, but for additional accuracy you can use Vive or Tundra trackers. They are pre-configured in Senso ini files, all you need is to bind a proper tracker to the Left Elbow and Right Elbow (via Steam VR configuration interface).

Whenever you performed calibration procedures describer earlier, additional files will be created in folder

C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers\senso\conf\

Files connector_1.conf and connector_2.conf for left and right hands are links to the specific VR gloves you're going to use.

They have MAC address of gloves and few more parameters. If those files do not exist, you won't see any gloves in SteamVR.

Gestures

Since VR gloves don't have any buttons, in order to produce actions similar to pressing buttons on the controller, there are list of gestures you'll probably need.

All of them are pre-configured in configuration files in the same folder, statically via conf. files or via LUA scripts.

Gestures typically have some reaction time (0.5 .. 2 seconds) in order to prevent occasional switchong on and off.

Here is a list of possible gestures, defined in configuration files.

Calibration (recentering) pose

This gesture is a way to recenter VR gloves (in case of using them without external trackers)

Place your hand in an horizontal position as in the photo with all fingers spreaded apart.

After 1 second in case of successful recognition of this gesture, there will be continuous vibration and shifting VR hand. You can define the proper position at any time. End of this gesture is changing pose to any other.

PS This gesture designed for using without trackers. With trackers it doesn't produce any effect.

Gesture-1

System button click

This gesture with hand directed up in V sign is simulation of the event "click system" = /input/system/click

Gesture-2

Button 'A'

Use your thumb and little finger as shown on the image. Other fingers are not used. It will produce /input/a/click event

Gesture-3

Button 'B'

Same as before, but also with your ring finger as shown on the image. It will produce /input/b/click event

Gesture-4

'Trigger' event

Just bend your index finger at any time. As a result, value /input/trigger/value will be changed from 0 to 1 (click / shot in games)

Gesture-5

'Thumbstick Y axis' event

Just point at something with your index finger, all other fingers curled. Palm should be parallel to the floor (horizontal position). It will produce changing of thumbstick Y value which typically used for teleporting.

Gesture-7

'Thumbstick X axis' event

The same gesture, just point at something with your index finger, all other fingers curled. Point on something located to the left or to the right of you, without turning your head. It will produce changing of thumbstick X value (-1 or +1) which typically used for snap turn. It hase some pause, so make sure you're pointing to the right or to the left for at least 1 second.

Gesture-8

Using with games

So, does it mean that any game which running under SteamVR is compatible with VR gloves ?

Yes and no.

Senso DK3 works as any other controller - i.e. it provides coordinates, speed, rotation and generates all basic events (pressing trigger, grip, thumbstick, buttons A/B etc).

Therefore any SteamVR application (game or not game) can use it as any other controller like Oculus Touch or Valve Index. It also provides skeleton data which is the exact angle and position of bones of the hand. Same data is provided by other controllers as well, especially Valve Index which tracks every finger separately.

But not all applications use this data, even if the hand is rendered by the game engine. Also not every game, or application, uses full skeleton data, for example it can render how fingers are bending but not spreading.

One more important thing is about Oculus Rift.

Even if the game is in the Steam market, it doesn't mean that it uses SteamVR API when both SteamVR and Oculus are installed on the computer at the same time. In this case the game can use Oculus as the first available API and use it with its own equipment.

In this case Senso DK3 as controller will be unavailable for the game, because it uses SteamVR API.

But the same game can work with Senso DK3 and non-Oculus equipment, for example with HTC Vive helmet.

It is possible to manage most of the applications to use SteamVR API by removing OVRPlugin.dll (for Unreal Engine), so they will work via SteamVR, but it will not work for all cases.

Here is a partial list of games which use skeleton of the hand

  • Moon Dust demo : works good, skeleton data is fully used, hands seems natural.
  • Half Life: Alyx : works good, with any kind of helmet. Skeleton data is fully used, full freedom of movements for fingers. Game uses specific bindings when you grab something or do specificactions - in this case your real position of fingers are overridden by the game.
  • Bone Works : works with partial fingers freedom - fingers can bend, but not stretch, and thumb has average tracking.
  • Beat Saber : works, but since there are no hands - hardly ever you need to use gloves there.
  • Blade & Sorcery : works with partial fingers freedom - fingers can bend, but not stretch.
  • Saints & Sinners : can't work with Oculus helmet even if you remove OVRPlugin.dll to force it to use SteamVR. It has an internal check of using Oculus, and it messages 'Oculus Rift only supported in native mode'. It can work with a non-Oculus helmet, though.
  • VR Chat : works with partial freedom of movements

Using VR gloves without external tracking

The Senso VR gloves DK3, which lack external tracking, cannot provide precise 3D positioning.

However, the advantage of relying on angular data is that these gloves do not require any existing tracking system and are compatible with any VR headset that supports SteamVR.

Utilizing angular data from IMU sensors results in moderate tracking quality.

This quality is derived from a combination of factors including the vector from the elbow, the position of the helmet, angular data, and certain computational techniques.

This doesn’t mean that moving your hand in 3D space is impossible; it simply requires a slightly different approach than what you might be accustomed to.

For instance, to reach for something distant, you merely need to extend your hand forward, and your virtual arm will mimic this extension.

The perceived length of your virtual arm depends on the angle between your wrist and elbow.

Although this might feel unusual at first, you may soon find it surprisingly convenient and intuitive.

For example, you can easily pick something up from the floor while sitting in a chair, or reach objects at distances beyond your normal physical capacity in the real world.

These adjustments, along with specific gestures designed to enhance actions like shooting or retrieving items from a holster, are customizable to suit your preferences and the specific game you are playing.

Therefore, determining whether this system works for you isn’t a simple matter of 'yes' or 'no'; it’s best to experience it firsthand over some time.