CyberGloveTM and MiniBirdTM Java3D Interfaces

    Introduction

    A critical factor in a virtual reality application is the interface available between the computer and the human user. As applications of virtual reality
    delve into new areas, the facility by which its users must interact with their virtual environment emphasizes the importance, if not necessity of new
    input devices for this purpose. A human accustomed to manipulating the world around him/her will hardly be satisfied with the use of a 3-buttoned
    mouse to navigate in and interact with a virtual world. Although not used on a widespread basis, input devices such as CyberGloveTM of Virtual
    Technologies Inc. and MiniBirdTM of Ascension Technologies provide the opportunity for a richer and more realistic experience of a virtual environment.
     

    Java3D Interfaces

    The software interface to the aforementioned devices are both in the C++ language but in order to use them in applications employing Java as their core
    technology and Java3D as the mechanism of rendering, the gap must be bridged between the C++ device interface and Java application. In order to use
    code written in C++ from a Java application, the Java Native Interface (JNI) is utilized. The following are screenshots of the end product. A video clip of
    device in work can be downloaded from here.

    Screenshots of CyberGloveTM and MiniBirdTM connected to a Java application

    Details

    The Java application used to test the Java3D interfaces is COllaborative System based on MPEG4 Objects and Streams (COSMOS) developed at the
    MCRLab. This application provides a framework for building collaborative virtual environments using the MPEG4 standard, however only its capability
    to load VRML files and display them in Java3D was exercised for this particular task. The application ran on a dual processor PentiumII 500 computer
    with 3DLab's Oxygen GVX210 graphics card.
    The 3D model of the hand used to test the CyberGloveTM data was one developed by Christian Babski as a part of a virtual humanoid. The 3D hand
    was slightly modifed in order to be loaded into Java3D and easily manipulated. The modified 3D hand model in VRML can be downloaded here. The
    code for this interface may be obtained by contacting the developer.
    mojtaba@mcrlab.uottawa.ca

    Version 2.0 of the miniBirdTM Interface

    As can be seen from the screenshots above and the video clip, having a hand floating in 3D space without it being connected to a body is an eerie
    experience. There were also some problems with the rotational component of the miniBirdTM device as they were not very accurate. The second
    version of the Java interface hence strived to remedy these issues by fine tuning the interface to produce more accurate results with regards to the
    rotational component as well as using inverse kinematics to derive the elbow and shoulder joint rotations needed to connect the hand to a body. The
    details of the inverse kinematics calculations can be found here, while the screenshots below illustrate the final results.

    Summary

    The C++ software provided by the manufacturers of the input devices capture the sensory data and after processing, supply individual joint rotation
    information (in case of the glove) or position and orientation (in the case of the tracker). These values are retrieved by a Java interface and used by
    an application (COSMOS) in order to appropriately change the 3D geometry of a hand and its position and orientation.
     

    Future Work

    Developing the Java interfaces for these input devices is only a step towards their utilization. There needs to be an application that uses these devices
    for a purpose. It is hoped to use the glove and the tracker in conjuction with the COSMOS application in order to manipulate object position and
    orientation as opposed to using the mouse, as it is currently. Furthermore, a similar interface could be developed for the CyberGraspTM device in order to
    provide force feedback to the user in a more realistic virtual environments.