Announcement

Collapse
No announcement yet.

[Plugin] Myo

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • replied
    Thanks so much for the fast reply! I didn't realize that to access the calibration function I had to drag from the MyoInterface target "Myo" and search that way (Previously, I was trying to search by right-clicking in the grey area). But once I found the function, it worked like a charm! Thanks again this is great!

    Leave a comment:


  • replied
    Originally posted by smallsketch View Post
    Getnamo,

    Thank you for the Myo plugin and for providing setup instructions on how to use this awesome toy. I really appreciate it! In following the tutorial, it seems the Myo Arm Orientation (arrow and box) is off (not pointing forward when I point the Myo forward). You mentioned "calibration" above. Is there a way to set the initial arm orientation at start or maybe a way to re-orient to a forward position by making a pose?
    This 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 this 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 main myo, any secondary myo poses wouldn't be picked up and calibrated. For this 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 this 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.

    Leave a comment:


  • replied
    Getnamo,

    Thank you for the Myo plugin and for providing setup instructions on how to use this awesome toy. I really appreciate it! In following the tutorial, it seems the Myo Arm Orientation (arrow and box) is off (not pointing forward when I point the Myo forward). You mentioned "calibration" above. Is there a way to set the initial arm orientation at start or maybe a way to re-orient to a forward position by making a pose?

    Leave a comment:


  • replied
    Major update to 0.7
    -Converted entire architecture to support component based extension in
    blueprints, please refer to the documentation
    -Each event now emits a UMyoController pointer allowing for additional
    controller data to be obtained in the context of the event and to also
    easily perform checks such as IsLeftMyo
    -Updated to UE4.5
    -MyoComponent/Convenience base classes can now obtain left/right and
    primary myo as a convenience.

    See the Thread post for how to use the new API.

    With the new API you can for example show a debug myo orientation like this


    with a Draw Orientation function like this


    which gives the following result in the Rolling template


    Note in this example two myos were paired and the orientation was obtained from calibrated values thus needed a calibration call to each myo when the user was pointing them toward the screen (e.g. point to screen and bind calibration to make fist).


    Edit:
    Plugin Update to 0.7.1
    -This update syncs the plugin to beta-5, update your myos to firmware
    0.8.17
    or later to use with this plugin.
    -Fixed unpairing event issues caused by beta-3, now supports full
    features again.
    Last edited by getnamo; 10-16-2014, 03:12 PM.

    Leave a comment:


  • replied
    Updated now to beta-4 sdk which added support for multiple myos and made some plugin bug fixes (will no longer crash when you don't have the hub connected, reduced PIE spam between sessions, etc).

    Video, wiki, and tutorial still pending.

    Edit:
    Update 0.6.3 brings all the necessary bug fixes to use calibrated values and removed all PIE spam.

    Expect a video soon showing how to use the device!
    Last edited by getnamo; 10-06-2014, 11:18 PM.

    Leave a comment:


  • replied
    Thanks for posting this. I did not know about the Myo and may order one now

    Leave a comment:


  • started a topic [Plugin] Myo

    [Plugin] Myo

    An event-driven plugin for the Thalmic Myo. Has a modern rewritten architecture since v0.9.0 see the github repo for documentation and examples.

    Let me know what you think, and what improvements should be included, or if you can, contribute and extend the code!

    NB: Currently only supports Windows 64 & 32 Platform.

    Download
    Latest Version

    Older
    0.7.14 for UE4.10
    0.7.13 for UE4.9 Myo Connect 1.0
    0.7.12 for UE4.8 Myo Connect beta-9
    0.7.10 for UE4.7 Myo Connect beta-9
    0.7.7 for UE4.6 Myo Connect beta-8
    0.7.6 for UE4.5 Myo Connect beta-7
    0.7.2 for UE4.5 Myo Connect beta-6
    0.7.2 for UE4.5 Myo Connect beta-5
    0.7 for UE4.5 Myo Connect beta-4
    0.6.3 for UE4.4
    0.6 for UE4.3

    Documentation & How To
    See the Github repository - Contains Plugin Source, Releases, and Documentation

    Old Resources
    Myo Connect and device firmware - ensure these are up to date.
    Thalmic Myo Unleashed Blog Post - How to add Myo support to your project in under a minute.
    Thalmic UE4 Plugin Thread
    Quick How To Example

    Changelist

    0.9.1

    -Compile fixes for 4.19
    -Documentation updated for v0.9
    -Suppressed default pose log to reduce spam

    0.9.0
    -modern rewrite for 4.18 that runs on a separate thread in a input module scoped architecture.
    -Mainly accessed through a MyoControllerComponent, but bare basics can be implemented using only input mapping.
    -supports latest Myo SDK v0.9.0 including raw emg
    -supports multiple myos
    -hot-pluggable myo connect and hub
    -bare bones documentation for now, explore code MyoControllerComponent.h and MyoController.hfor how-to.
    -auto-casting blueprint conversions from data to controller to call actions such as vibrate device

    0.7.14
    -Synced binaries with UE4.10

    0.7.13
    -Updated to work with myo connect 1.0. The pitch/roll are now correctly
    reversed
    -Code fixes for UE4.9 compile

    0.7.12
    -Should no longer crash in the cases where Myo Disabled is emitted but no
    delegate is set.

    0.7.11
    -Update to UE4.8

    0.7.10
    -Update to Myo 0.9

    0.7.9
    -Added a work around that fixes the UE editor crash if you do not have Myo Connect running when you begin play. This will allow for safe integration of myo with multiple other plugins.

    0.7.8
    -updated binary for UE 4.7
    -moved convenience content into the plugin, delete if you do not want to
    use it and wish to save space.
    -updated myo sdk bind to 0.8.1

    0.7.7
    -Myo SDK bind updated to beta 8
    -Now supports raw streams see readme for documentation
    -Added convenience content called Myo Utility BP Library, which has convenience functions for debug output.
    -Updated documentation, check github readme

    0.7.6
    -Packaged file fix by removing try/catch block. No longer needed since
    Myo Connect handles hot plugging of hub

    0.7.5
    -removes C4273 suppression by including SlateCore in build rules

    0.7.4
    -Contains compile fixes to sync code base to UE4.6. Note that warning
    C4273 is suppressed due to 4.6 changes to Input Mapping.
    -Syncs Myo SDK to Beta 7 (0.7)
    -As per 0.7 Thumb to Pinky is now DoubleTap
    -Added locking mechanism, this plugin defaults to none, but you can call
    SetLockingPolicy on your MyoComponent to change this on say BeginPlay.
    -As per 0.7 Added Lock/Unlock functions on MyoController class
    -Arm Orientation space now persists throughout PIE sessions, will only
    get lost when quitting app.

    0.7.3
    -As per 0.6, onArmRecognized and onArmLost is now onArmSync and
    onArmUnsync
    -Tested with Myo firmware 1.0.3

    0.7.2
    -Minor code consistency fix
    -Added platform white list
    -added gitignore

    0.7.1
    -This update syncs the plugin to beta-5, update your myos to firmware
    0.8.17 or later to use with this plugin.
    -Fixed unpairing event issues caused by beta-3, now supports full
    features again.

    0.7
    -Converted entire architecture to support component based extension in
    blueprints, please refer to the documentation
    -Each event now emits a UMyoController pointer allowing for additional
    controller data to be obtained in the context of the event and to also
    easily perform checks such as IsLeftMyo
    -Updated to UE4.5
    -MyoComponent/Convenience base classes can now obtain left/right and
    primary myo as a convenience.

    0.6.3
    -Fixed arm space orientation to work with myo attached to arm in any direction. Requires doing the setup gesture to detect arm and direction.
    -Fixed bodySpaceNull acceleration (component space acceleration without gravity), after calibration this will report the expected acceleration.
    -Added calibration direction, allowing you to calibrate in arbitrary orientation relative to the user facing screen (e.g. calibration in facing direction is R(R0,P0,Y0) and pointing right is a R(R0,P0,Y90) rotator)
    -Input Mapping will now use the last paired myo as input
    -Fixed Play In Editor myo spam caused by waiting a long while with a paried myo before playing. Myo will now correctly initialize only on BeginPlay()

    0.6.2
    -Added support for multiple myos, tested with up to 3. Use blueprint events for multiple myos as input mapping uses only primary myo.
    -Added xArmDirection to raw myo device data
    -Fixed PIE spam caused by stopping and resuming after a long duration; the hub will be destroyed between sessions.
    -Added preliminary support for calibrated values. Call MyoCalibrateArmOrientation(int32 myoId) when arm is facing the screen, after which all arm and body values are calibrated, some values are not fully correct at this stage, use with care.

    0.6.1
    -Updated to 4.4

    0.6
    - First Public Release, bound to beta-1 SDK.

    Todo
    -Confirm shipping/packaging works with the plugin.
    -Move Hub to separate thread (removing the current 1ms performance penalty)
    -Video
    -Add wiki on subject
    Last edited by getnamo; 04-21-2018, 06:41 PM. Reason: removed old documentation
Working...
X