Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Robocalypse - Full Stack Toronto 2015

Joel Lord
November 14, 2015

Robocalypse - Full Stack Toronto 2015

Robocalypse: Controlling Nodebots with Kinect Gestures. A #fstoconf15 talk by Joel Lord

Joel Lord

November 14, 2015
Tweet

More Decks by Joel Lord

Other Decks in Programming

Transcript

  1. confidential not for distribution A Full Stack 2015 Toronto presentation

    by Joel Lord Robocalypse: Controlling Nodebots with Kinect gestures
  2. About Me Joel Lord Development Manager Javascript junkie, technology enthusiast,

    IoT hobbyist. Macadamian http://www.macadamian.com Twitter: @joel__lord Github: github.com/joellord
  3. Why •  Worked with Nodebots for a while now • 

    Wanted to explore other possibilities of NodeJs
  4. Why •  Worked with Nodebots for a while now • 

    Wanted to explore other possibilities of NodeJs •  Because controlling a robot with a Kinect is pretty cool
  5. The Goals •  Needed a way to use events to

    tell the robot to perform an action •  Gestures seemed the best way to achieve this
  6. The Goals •  Needed a way to use events to

    tell the robot to perform an action •  Gestures seemed the best way to achieve this
  7. What current exists Basic Nodebot Stack •  NodeJs (https://nodejs.org/) • 

    Socket.io (http://socket.io/) •  Johnny-Five (http://johnny-five.io/)
  8. What current exists node-openni •  Connects the Kinect to NodeJs

    using OpenNI •  Very basic event for almost everything
  9. What current exists node-openni •  Connects the Kinect to NodeJs

    using OpenNI •  Very basic event for almost everything •  No gestures !
  10. Gestures 101 The Basics •  Is the initial condition met?

    •  Is the condition still met? •  Is the final condition met?
  11. Gestures 101 What do I need for gestures? •  A

    skeleton with an event when it changes
  12. Gestures 101 What do I need for gestures? •  A

    skeleton with an event when it changes •  Know the position of the COM
  13. Gestures 101 What do I need for gestures? •  A

    skeleton with an event when it changes •  Know the position of the COM •  Have a “base unit”
  14. Gestures 101 Introducing kinect-gestures •  Gesture detection using a base

    class •  Tracks the skeleton for an initial condition
  15. Gestures 101 Introducing kinect-gestures •  Gesture detection using a base

    class •  Tracks the skeleton for an initial condition •  Checks every 100ms to see if the condition is still met
  16. Gestures 101 Introducing kinect-gestures •  Gesture detection using a base

    class •  Tracks the skeleton for an initial condition •  Checks every 100ms to see if the condition is still met •  If the final condition is met, trigger an event
  17. Gestures 101 Introducing kinect-gestures •  Gesture detection using a base

    class •  Tracks the skeleton for an initial condition •  Checks every 100ms to see if the condition is still met •  If the final condition is met, trigger an event •  Other classes are used to define the actual gestures
  18. Next few steps •  Return a more friendly coordinate system

    for skeleton •  Add more information to the returned •  Add more gestures (jump, wave, kick)