[Plugin] Myo

is what calibration does exactly. The problem with an IMU-based vs a direct position controller is that you have no fixed reference to your forward direction (only to the magnetic north). So to make sure your input is calibrated for your forward direction all you have to do is point your arm forward and call the calibration function. You can, for example, bind that to pressing F or the thumb to pinky pose key/event. then after calibration your arm space positions will automatically be calibrated for both forward orientation and the roll offset around your wrist (your myo may be rotated around your wrist arbitrarily). Before calibration is called however the arm space values output the raw ones instead, which is why you see them pointing in a wrong direction.

Here’s an example of how to calibrate a myo


You could do on the Input Mapping (e.g. Myo Pose Thumb to Pinky) gamepad events instead of the Event On Pose, but then the calibration target would always be your myo, any secondary myo poses wouldn’t be picked up and calibrated. For reason I recommend using a Myo Interface event, or explicitly calling which myo you want to bind (e.g. Primary myo, left/right Myo convenience functions callable on the Myo Component)

Note that you should perform a ‘Sync Gesture’ first in order to establish which arm the myo is on and which direction it is facing (toward wrist/arm), calibration picks up and automatically adjusts for it as well, but if your arm isn’t detected (synced), your movements may be inverse if you have the device on the opposite direction compared to default.