Documentation ¶
Overview ¶
Package leap provides the Gobot adaptor and driver for the Leap Motion.
Installing:
* First install the [Leap Motion Software](https://www.leapmotion.com/setup). * Then install the package:
go get gobot.io/x/gobot/platforms/leap
Example:
package main import ( "fmt" "gobot.io/x/gobot" "gobot.io/x/gobot/platforms/leap" ) func main() { leapMotionAdaptor := leap.NewAdaptor("127.0.0.1:6437") l := leap.NewDriver(leapMotionAdaptor) work := func() { l.On(l.Event("message"), func(data interface{}) { fmt.Println(data.(leap.Frame)) }) } robot := gobot.NewRobot("leapBot", []gobot.Connection{leapMotionAdaptor}, []gobot.Device{l}, work, ) robot.Start() }
For more information refer to the leap README: https://gobot.io/x/gobot/blob/master/platforms/leap/README.md
Index ¶
Constants ¶
const ( // MessageEvent event MessageEvent = "message" // HandEvent event HandEvent = "hand" // GestureEvent event GestureEvent = "gesture" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Adaptor ¶
type Adaptor struct {
// contains filtered or unexported fields
}
Adaptor is the Gobot Adaptor connection to the Leap Motion
func NewAdaptor ¶
NewAdaptor creates a new leap motion adaptor using specified port, which is this case is the host IP or name of the Leap Motion daemon
func (*Adaptor) Connect ¶
Connect returns true if connection to leap motion is established successfully
type Driver ¶
Driver the Gobot software device to the Leap Motion
func NewDriver ¶
NewDriver creates a new leap motion driver
Adds the following events:
"message" - Gets triggered when receiving a message from leap motion "hand" - Gets triggered per-message when leap motion detects a hand "gesture" - Gets triggered per-message when leap motion detects a hand
func (*Driver) Connection ¶
func (l *Driver) Connection() gobot.Connection
Connection returns the Driver's Connection
func (*Driver) ParseFrame ¶
ParseFrame converts json data to a Frame
func (*Driver) Start ¶
Start inits leap motion driver by enabling gestures and listening from incoming messages.
Publishes the following events:
"message" - Emits Frame on new message received from Leap. "hand" - Emits Hand when detected in message from Leap. "gesture" - Emits Gesture when detected in message from Leap.
type Frame ¶
type Frame struct { CurrentFrameRate float64 `json:"currentFrameRate"` Gestures []Gesture `json:"gestures"` Hands []Hand `json:"hands"` ID int `json:"id"` InteractionBox InteractionBox `json:"interactionBox"` Pointables []Pointable `json:"pointables"` R [][]float64 `json:"r"` S float64 `json:"s"` T []float64 `json:"t"` Timestamp int `json:"timestamp"` }
Frame is the base representation returned that holds every other objects
type Gesture ¶
type Gesture struct { Direction []float64 `json:"direction"` Duration int `json:"duration"` Hands []Hand `json:"hands"` ID int `json:"id"` Pointables []Pointable `json:"pointables"` Position []float64 `json:"position"` Speed float64 `json:"speed"` StartPosition []float64 `json:"StartPosition"` State string `json:"state"` Type string `json:"type"` }
Gesture is a Leap Motion gesture tht has been detected
type Hand ¶
type Hand struct { Direction []float64 `json:"direction"` ID int `json:"id"` PalmNormal []float64 `json:"palmNormal"` PalmPosition []float64 `json:"PalmPosition"` PalmVelocity []float64 `json:"PalmVelocity"` R [][]float64 `json:"r"` S float64 `json:"s"` SphereCenter []float64 `json:"sphereCenter"` SphereRadius float64 `json:"sphereRadius"` StabilizedPalmPosition []float64 `json:"stabilizedPalmPosition"` T []float64 `json:"t"` TimeVisible float64 `json:"TimeVisible"` }
Hand is a Leap Motion hand tht has been detected
type InteractionBox ¶
InteractionBox is the area within which the gestural interaction has been detected
type Pointable ¶
type Pointable struct { Direction []float64 `json:"direction"` HandID int `json:"handId"` ID int `json:"id"` Length float64 `json:"length"` StabilizedTipPosition []float64 `json:"stabilizedTipPosition"` TimeVisible float64 `json:"timeVisible"` TipPosition []float64 `json:"tipPosition"` TipVelocity []float64 `json:"tipVelocity"` Tool bool `json:"tool"` TouchDistance float64 `json:"touchDistance"` TouchZone string `json:"touchZone"` }
Pointable is a Leap Motion pointing motion tht has been detected