GithubHelp home page GithubHelp logo

sadmansk / myopad Goto Github PK

View Code? Open in Web Editor NEW
2.0 3.0 1.0 25.11 MB

A software that uses myo armbands to digitally track writing and drawing gestures of the hand.

Home Page: http://sadmansk.github.io/MyoPad

License: GNU General Public License v3.0

C 94.61% C++ 5.39%

myopad's Introduction

Myo Pad

####Current Version: 0.0.1 ####Developed at EngHack 2014 in University of Waterloo

###What is the Myo Armband?

The Myo armband lets you use the electrical activity in your muscles to wirelessly control your computer, phone, and other favorite digital technologies. With the wave of your hand, it will transform how you interact with your digital world. For more information, check out their website at https://www.thalmic.com/en/myo/.

###What is the Myo Pad?

Myo Pad is a program that can be used to export drawings/writings on a surface wearing the Myo armband to graphical data on a computer.

###The Idea

We initially planned to draw objects on the GUI of the program by using integrals on the accelerometer data from the arm band to get the position vector and using the quaternion values on the position vector to get an accurate position of the fist. The program would then map that position onto the program's GUI and later could be exported onto a PDF file.

###The Problems

Our program was ready to work but then we found out that doing integration twice on the already noisy and inconsistent accelerometer values as well as applying the rotation on the ever changing coordinate system of the arm band. We tried using an independent coordinate system by applying a three dimensional rotation vector on the existing coordinate system but the discrepancies due to the gravity made the values very difficult if not impossible to work with. Hence we had to resolve to using the orientation data from the arm band since they provided a more accurate representation compared to the accelerometer data.

###The Solution

And so we did use the orientation data to position our marker on the GUI. But we also decided that we should add more features to the program using the gestures that the Myo library helps us import. Below is a tutorial that demonstrates how some of the gestures can be used to have the best experience with Myo Pad:

  • Normal Gesture: Just pretending to hold a pen will return a rest value as the pose and this is used to draw points on the GUI.
  • Fist Gesture: Can be used to erase already existing points/drawings/writings.
  • Wave In and Out: The position of the cursor can be controlled by waving the hands in either of the directions. Using the waving in the right way gives a lot of control to the user.
  • Spread Out Gesture: Spreading out your hands would tell the program that you are not drawing anything on the screen.

###Conclusion

Our completed project is not exactly the innovation we had hoped for when we started working on it. But the entire hackathon and researching was fun nonetheless. It was fun facing problems and finding ways to work around them. The dream we had could have been revolutionary, no one would need to buy expensive graphics tablets, or note taking tablets any more. Teachers would have an easier time sharing their notes with their student, in real time. Yes, in REAL TIME. But we still had a fun to work with end product once you get used to it. It would have been great if we had access to the Myo arm band for longer than just 24 hours. Maybe we would have found a way to apply the Kalman filter on the acceleration vector to get a more accurate position vector out of it.

Last but not least, this project would not have been possible without all the great team members.

###Contributors

  • Sadman Kazi
  • Wojtek Swiderski
  • Serge Babayan
  • Shan Phylim

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.