Leapmotion开发笔记2——System Architecture系统架构

系统架构

Leapmotion软件在Windows系统下是作为服务器(Service)或者在Mac,Linux系统下作为daemon。该软件通过USB总线连接到Leap Motion控制器上。基于Leapmotion开发的应用程序通过连接Leap Motion服务器来接收运动捕捉数据。

应用程序接口

Leap Motion SDK提供两种API来获取Leap Motion的数据:一种是原生应用程序的接口 另一种是基于WebSocket接口。这两个API使得Leapmotion的应用程序可以由多种的编程语言实现,包括使用Javascript编写的网页。其中,原生应用程序接口是动态链接库,可以使用这个库来创建Leapmotion应用程序。WebSocket接口和Javascript客户端库可以结合起来编写Leapmotion的网络应用程序。(大概是两种通信形式吧,之前做的TUIO和PQLab'的SDK应该都是基于网络通信的,都是从某个网络端口来获取信息的)

Native Application Interface 本地应用程序接口

本地应用程序接口是由动态链接库提供的。这个库链接了Leap Motion 服务器 并提供追踪到的数据给应用程序。可以使用C++和Objective-C应用程序直接链接。或者Java,C#,Python都可以。


下面的1、2、3、4对应图中的4个部分。

1、Leap motion服务器通过USB总线从Leap motion控制器接收数据。它处理并发送这些数据给运行的Leapmotion应用程序。默认情况下,服务器只传递追踪的数据给前台应用程序。但应用程序可以请求在后台接受数据。

2、Leap Setting App和Leapmotion服务器是分开的,是一个控制面板程序,是给用户配置Leapmotion控制器的一个控制面板小应用。这个是只要要使用Leapmotion就需要先安装的。

3、前台应用程序接受服务器传来的运动捕捉数据。Leapmotion应用程序可以通过Leap motion native libary来连接服务器。

4、当一个Leapmotion应用程序失去了操作系统的焦点,大概就是变成了后台应用程序,Leapmotion将不再向他传数据。如果想在后台运行的应用程序可以向服务器请求在后台接收数据的许可。

Websocket的接口就不看了,应该是用C++的



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的使用Leap Motion手势识别的案例: 1. 创建一个新的场景,并导入Leap Motion插件。 2. 在场景中创建一个3D物体,比如一个立方体,作为测试对象。 3. 在场景中创建一个空对象,并添加Leap Motion手势控制器组件。 4. 在手势控制器组件中勾选需要识别的手势类型,比如“Swipe”和“Circle”。 5. 创建一个新的脚本,并将其挂载到测试对象上。 6. 在脚本中编写对应的事件处理函数来响应手势事件。例如,可以编写OnSwipe函数来处理手势滑动事件。 ```csharp using UnityEngine; using System.Collections; using Leap; public class GestureTest : MonoBehaviour { Controller controller; void Start () { controller = new Controller(); } void Update () { Frame frame = controller.Frame(); foreach (Gesture gesture in frame.Gestures()) { if (gesture.Type == Gesture.GestureType.TYPE_SWIPE) { SwipeGesture swipe = new SwipeGesture(gesture); Debug.Log("Swipe direction: " + swipe.Direction); } else if (gesture.Type == Gesture.GestureType.TYPE_CIRCLE) { CircleGesture circle = new CircleGesture(gesture); Debug.Log("Circle direction: " + circle.Normal); } } } } ``` 在上述代码中,创建了一个GestureTest类,并在其中定义了一个Update函数。在Update函数中,通过Leap Motion SDK获取当前帧的手势信息,并根据手势类型来判断需要响应的事件。如果检测到“Swipe”手势,则调用SwipeGesture函数获取滑动方向;如果检测到“Circle”手势,则调用CircleGesture函数获取圆的法线方向。 7. 运行场景并进行手势测试。在场景中向左或向右滑动手指,或者画圆,可以看到控制台输出相应的手势信息。 这是一个简单的Leap Motion手势识别案例,可以根据实际需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值