vroland / MyoIMUGestureController

This library provides gesture detection functionality using almost exclusively the IMU data of the Myo Armband.
GNU General Public License v2.0
30 stars 8 forks source link

Why the matrix operations? #3

Open Sld1c opened 5 years ago

Sld1c commented 5 years ago

Hello I'm trying to understand why did you use the matrix I believed that the Myo give us the orientation data (Yaw, Pitch and Roll). If this isn't the case, is the matrix for Accelerometer, Gyroscope and Orientatión data? Then, in the updateGestureCache() function, what are the parameters local [2][1] local [2][0]? I know that they are the result about the matrix and inverse matrix multiplication but, what are they means? Why those exactly parameters inside the matrix? Why do you need the "asin" of these parameters and the roll angle? Why the roll angle is in local [1][0]? What's the purpose of the matrix multiplication by another matrix? And finally, What is the corresponding value for each one of the parameters in the matrix for the original position? I mean which parameters corresponds to the accelerometer, gyroscope and orientation if it is the case. I hope you can help me Thanks a lot!

vroland commented 5 years ago

Local represents the myo orientation relative to the orientation it was in when the gesture began... But I don't know the data format of Myo any more, you should be able to find this in its documentation, though. Unfortunately, my memory of the details is not quite fresh, but basically the gesture cache records select orientation parameters, which is later matched to possible gestures.