How to build and use a low-cost sensor glove

This post discusses how to develop a low cost sensor glove with tactile feedback using flex sensors and small vibration motors. MATLAB and JAVA code is linked.

Note that this project is not longer maintained. Use the GitHub project instead.

Publications

2016

Weber, Paul; Rueckert, Elmar; Calandra, Roberto; Peters, Jan; Beckerle, Philipp

A Low-cost Sensor Glove with Vibrotactile Feedback and Multiple Finger Joint and Hand Motion Sensing for Human-Robot Interaction Inproceedings

In: Proceedings of the IEEE International Symposium on Robot and Human Interactive Communication (RO-MAN), 2016.

Links | BibTeX

A Low-cost Sensor Glove with Vibrotactile Feedback and Multiple Finger Joint and Hand Motion Sensing for Human-Robot Interaction

2015

Rueckert, Elmar; Lioutikov, Rudolf; Calandra, Roberto; Schmidt, Marius; Beckerle, Philipp; Peters, Jan

Low-cost Sensor Glove with Force Feedback for Learning from Demonstrations using Probabilistic Trajectory Representations Inproceedings

In: ICRA 2015 Workshop on Tactile and force sensing for autonomous compliant intelligent robots, 2015.

Links | BibTeX

Low-cost Sensor Glove with Force Feedback for Learning from Demonstrations using Probabilistic Trajectory Representations

Details to the Hardware

  • Arduino Mega 2560 Board
  • Check which USB device is used (e.g., by running dmesg). On most of our machines it is /dev/ttyACM0
  • Enable read/write permissions if necessary, e.g., run sudo chmod o+rw /dev/ttyACM0
  • Serial protocoll based communication: Flex sensor readings are streamed and Vibration motor PWM values can be set between 0 and 255
  • Firmware can be found here (follow the instructions in the README.txt to compile and upload the firmware)
  • Features frame rates of up to 350Hz
  • Five flex sensors provide continuous readings within the range [0, 1024]

Simple Matlab Serial Interface (max 100Hz)

  • Download the Matlab demo code from here
  • Tell Matlab which serial ports to use: copy the java.opts file to your Matlab bin folder, e.g., to /usr/local/MATLAB/R2012a/bin/glnxa64/
  • Run FastComTest.m

Fast Mex-file based Matlab Interface - max 350Hz

  • Install libserial-dev
  • Compile the mex function with: mex SensorGloveInterface.cpp -lserial
  • Run EventBasedSensorGloveDemo.m