MioConnect icon indicating copy to clipboard operation
MioConnect copied to clipboard

Orientation Data Format

Open jaimovier opened this issue 6 years ago • 1 comments

Orientation data is being sent with four values (i.e. /myo/orientation 1 -13912. 4767. -1452. 7074.)

It would be ideal to have this data formatted as the MyOSC application, with yaw, pitch and roll values.

jaimovier avatar Jan 20 '19 17:01 jaimovier

The quaternion to euler values is not working correctly. The values are fixed or have jumps between positions.

MyOSC does the following calculations: https://github.com/benkuper/MyOSC/blob/e35961a54c19951e9c4569193b99501bb4deeec6/extension/debug/MyoController.ane/META-INF/ANE/MacOS-x86/MyoExtension/MyoExtension/MyoExtension.cpp

    // Calculate Euler angles (roll, pitch, and yaw) from the unit quaternion.
    double roll = atan2(2.0f * (quat.w() * quat.x() + quat.y() * quat.z()),
                        1.0f - 2.0f * (quat.x() * quat.x() + quat.y() * quat.y()));
    
    double pitch = asin(2.0f * (quat.w() * quat.y() - quat.z() * quat.x()));
    
    double yaw = atan2(2.0f * (quat.w() * quat.z() + quat.x() * quat.y()),
                       1.0f - 2.0f * (quat.y() * quat.y() + quat.z() * quat.z()));

myo-to-osc also makes this calculations: https://github.com/cpmpercussion/myo-to-osc/blob/master/myo_to_osc.py

jaimovier avatar Mar 21 '19 16:03 jaimovier