I have been thinking about creating a haptic glove for a while now, and been very happy to collaborate with Pete, who also has a keen interest in VR innovation and is pretty nifty when it comes to writing code.

Such haptic glove allows interacting with virtual objects and receiving physical feedback to the tip of one’s fingers.

What we used

Leap Motion to track hand movements; Arduino to communicate with vibrating motors on the glove; Unity3D to create a virtual environment and send signals to be picked up by the Arduino; Online documentation and tutorials on Leap Motion, Arduino, Unity, as well as how to communicate from Unity 3D to Arduino; Glove, thread, needle.

Process

First steps we made were connecting Leap Motion, importing Leap Motion Unity assets into the Unity scene, and ensuring that hand tracking works well in Unity3D.

We then created a simple 3D environment in Unity3D that had objects with the colliders in it. This allowed us to virtually interact with those objects in the scene.

For the next step, we moved to setting up Arduino:

Setting up Arduino

We connected Arduino with the vibrating motors and wrote a script to send information from Unity to Arduino — through the objects collision in the Unity environment. In other words, the virtual Leap Motion hand touching an object in Unity3D would trigger the motors to vibrate:

Close-up of a sensor vibrating

After experimenting with a few variations, we decided to synchronise the motor vibration time with the length of time that the virtual objects were colliding for.

Together with the motors, we connected the LED lights (on the left) to demonstrate the haptic response

Overall, I am very happy with what we’ve achieved, and it’s been a lot of fun to play with it.

Next steps