OpenNI用户手册:体感交互与开发入门

需积分: 9 18 下载量 165 浏览量 更新于2024-07-22 收藏 1.6MB PDF 举报
是OpenNI? OpenNI是一个开源框架,主要用于自然交互(Natural Interaction,NI)的开发,尤其在体感技术领域。它为开发人员提供了一个统一的接口,以便与多种传感器,如微软的xBox 360 Kinect和PrimeSense的传感器进行交互。OpenNI的目标是简化3D传感设备的使用,使得开发者可以更容易地创建能够识别和响应人类动作的应用程序。 2.3 抽象分层视图 OpenNI的设计基于抽象分层的概念,它将复杂的硬件和软件功能分解为多个层次,每个层次都专注于一个特定的任务。这些层次包括上下文管理、设备连接、数据流管理和处理、以及自然交互的识别。这种结构允许开发者专注于他们感兴趣的特定功能,而不必关心底层的实现细节。 3 概念 3.1 模块(Modules) OpenNI中的模块代表了系统的基本构建块,它们负责执行特定的功能。这些模块可以是硬件驱动、数据处理算法,或者是用于实现特定交互功能的组件。 3.2 生产节点(Production Nodes) 生产节点是OpenNI架构中的核心元素,它们负责生成或处理数据。例如,一个生产节点可能用于捕获图像,另一个则可能用于识别手势或跟踪身体部位。 3.3 生产链(Production Chains) 生产链是由一系列生产节点组成的工作流程,它们按照特定的顺序链接在一起,形成数据处理的流水线。每个节点都可以输入来自上游节点的数据,并产生输出供下游节点使用。 3.4 能力(Capabilities) 每个生产节点都有其特定的能力,这些能力定义了它可以执行的操作。开发者可以通过查询节点的能力来了解它们的功能,并据此构建应用程序。 3.5 生成和读取数据 OpenNI提供了一套API,使得开发者可以方便地从生产节点读取数据,或者触发数据的生成。这包括实时数据流的处理,以及历史数据的访问。 3.6 模拟节点(Mock Nodes) 模拟节点是用于测试和调试的特殊节点,它们可以模拟实际传感器的行为,帮助开发者在没有真实硬件的情况下进行开发和测试。 3.7 应用和锁节点间共享设备 OpenNI允许多个应用程序同时访问同一设备,通过节点锁定机制来确保数据的正确处理和避免冲突。 3.8 授权(Licensing) OpenNI遵循GNU General Public License(GPL)进行授权,这意味着源代码是开放的,可以自由分发和修改,但同时也需要遵守GPL的条款,即任何基于OpenNI开发的软件也必须开放源代码。 3.9 通用框架实用程序 OpenNI提供了一些通用工具和库,帮助开发者更有效地集成和管理他们的项目,例如记录和回放功能,以及错误处理机制。 3.10 记录器(Recorder) 记录器是OpenNI的一个功能,可以记录数据流,用于日志分析、回放测试或离线处理。 3.11 生产节点的错误状态 生产节点可以处于各种状态,包括正常工作、错误或暂停等。开发者可以通过API检查和处理节点的错误状态,以确保应用程序的稳定运行。 4 向后兼容 OpenNI努力保持向后兼容性,确保新版本的框架能够支持旧版本的代码,降低升级时的迁移成本。 5 准备开始 5.1 支持平台 OpenNI支持多种操作系统,如Windows、Linux和Mac OS X,使得跨平台的体感应用开发成为可能。 5.2 Main Objects主要对象 主要对象是OpenNI框架的核心组件,如上下文(Context)、生产树(Production Tree)等,它们提供了与OpenNI交互的基础。 这个用户手册详细介绍了OpenNI的各个方面,对于初学者来说是一份很好的入门资料,可以帮助他们快速理解和掌握OpenNI的使用,从而进行体感技术的开发。