Forte Data Gloves

Getting Started with Oculus Quest and Data Glove in Unreal

On this page

    1. Setting up the Oculus Controller with the Forte Data Glove

    • The Oculus controller should be positioned so that ring of the controller is facing towards your thumb like in the picture below. This allows for the most efficient tracking with Oculus, as the controller will be in view of the camera for most use cases.
    • The hand trigger button should be lined up with the groove on the mount before it’s tightened with the strap.

    2. Prerequisites:

    • Install Unreal via Epic Games Launcher 4.25:
      https://www.epicgames.com/store/en-US/download
    • Install the Data Glove Unreal SDK zip: 
      Unreal SDK
    • Optional: Install Oculus Software App (only if you want to use Quest Link)
    • Unzip the SDK download and navigate to the DataGloveSDK folder
    • In your Unreal project’s Plugins directory place the DataGloveSDK folder
      • Tips: If your Unreal project has not created a Plugins folder then create a Plugins folder in the same directory as your .uproject file
    • Create or open up your Unreal project
      • Tips: If your project was open you may need to restart Unreal to load the plugin
    • In the Settings/Plugins menu in the Unreal Editor make sure the plugin is loaded and enabled
    • In order to see the Plugin Content, in the Content Browser (in the bottom right corner) select “View Options” and check “Show Plugin Content”
    • After this you should see the following directories in the Content Broswer
      • DataGloveSDK Content
      • DataGloveSDK C++ Classes

    3. Android SDK Installation

    Starting in Unreal 4.25, Epic Games has updated their procedure for setting up the Android SDK , which can be followed here:

    https://docs.unrealengine.com/en-US/Platforms/Mobile/Android/Setup/AndroidStudio/index.html

    Unreal 4.24 used CodeWorks for the Android SDK setup, which Epic Games recommends uninstalling for Unreal 4.25.

    More information on AndroidWorks can be found in the Unreal Engine documentation:

    https://docs.unrealengine.com/en-US/Platforms/Mobile/Android/InstallingAndroidCodeWorksAndroid/index.html

    4. Setup the Project Settings for Android

    Follow the Oculus Quick Start Guide to setup the Settings for Oculus Quest development. Or copy the settings we used in the pictures below.

    https://developer.oculus.com/documentation/quest/latest/concepts/unreal-quick-start-guide-quest/?locale=en_US#launch-the-unreal-project-on-the-oculus-quest

    As reference here are the settings we are using:

    Edit -> Project Settings -> Platforms -> Android

    5. Select the Oculus VR Plugin from Settings/Plugins

    6. Set the Controller Platform for the Hand Blueprints

    Each Hand BluePrint (Left and Right) has a controller platform, that can be set to support Vive and Oculus Rift/Quest. In order to use the tracked location, first open the LeftHand BluePrint:

    Then set the Controller Platform dropdown menu to Oculus Controller:

    Next, hit the compile and save buttons on the modified LeftHand BluePrint.

    Next, do the same steps for the RightHand BluePrint.

    7. Select the Tabletop Map

    Select a map by going to the Content Browser -> DataGloveSDK Content -> Maps -> TableTop Interactions.

    In the scene you will see a table with:

    • Cubes that can be picked up, stacked, or thrown
    • A bowl of marbles that can be picked up with a pinch motion
    • A lamp with an on/off button
    • A hammer with pegs that can be hammered into a board
    • A panel with buttons and knobs that controls a floating cube

    8. Build the project to Oculus Quest

    Select Launch and Click on your Oculus Quest device

    9. Pair your Data Gloves

    Make sure your Data Gloves are paired in the Oculus Quest Bluetooth device menu before launching the App.

    On your Oculus Quest, go into the Experimental section in the Settings and pair your Data Glove with the Oculus Quest in the Bluetooth Pairing menu.

    10. Calibration Process

    Press the X-button on the Oculus controller to initiate the calibration UI process (which utilizes the Blueprint CalibrationVR). This button will walk you through the setup to calibrate the glove, which is 3 different poses while wearing the glove.

    Note: Oculus X-button and space bar functionality is defined in the CalibrationVR Blueprint. Other calibration functions for the Oculus controller are defined in the TableTopInteractions Level Blueprint.

    Flat Calibration: All fingers are out straight

    Fist Calibration: All fingers are in, except thumb

    Thumb Calibration: Thumb curled in, while the other fingers are out

    There are also hotkeys for calibrating:

    Oculus controls:

    A Button: Flat Calibration
    B Button: Fist Calibration
    Right Trigger: Thumb Calibration
    X Button: Full Calibration UI menu from the CalibrationVR Blueprint

    Developer Notes

    Rotation Offset for using the Oculus Quest with the Forte Data Glove 

    Since the Oculus Touch Controllers are oriented on the Data Glove to maximize their view from the Quest’s camera, the hand models in Unreal require a rotation offset that can be set using the GloveController Blueprint API in the Setup section.

    One can also manually set the default rotation offset for both the Oculus controller and the Vive trackers by editing the C++ GloveController field in the Create Data Glove function (shown below). The rotation may differ between different models with varying x/y/z forward settings they were exported with.

    Miscellaneous details on the Android Data Glove plugin

    • The plugin is called DataGloveAndroid.jar, located in the Source/resources folder
    • DataGloveAPL.xml creates a few wrapper functions to pass data between the C++ to the plugin when running on Oculus Quest
    • The C++ uses JNI to find and use the DataGloveAPL.xml functions
    • If the Java environment can’t be found a warning message will be printed and found using ADB debugging. If the environment is not found the functions cannot be discovered, and thus no connection will take place between the glove and Quest.

    Troubleshooting

    • Issue 1: hands are not moving or rotating
      • Make sure the controllers are paired with your Oculus Quest
      • Check controller power
      • Make sure the Oculus Controller was selected for the Controller Platform is set to Oculus Controller for both the RightHand and LeftHand Blueprint before building to the Quest