体感控制终端系统设计

2024-06-17

体感控制终端系统设计(共6篇)

体感控制终端系统设计 篇1

摘要:随着技术的发展,智能家居在可预见的将来会发展成为物联网的一个分支,社会生活也会倾向家庭的智能化和自动化,所以智能家居的研究和发展在以后将会极大地影响人们地生活,使人们的生活更加舒适。文中项目主要分为两大模块:远程监控模块和体感控制模块。远程监控模块主要通过Cubieboard3开发板和UVC摄像头实现数据获取,并采用H.264视频输入与输出格式的转化与配置。体感控制模块主要是采用微软的Kinect实现体感控制家居设备。该模块主要通过Kinect摄像头捕获人体数据,彩色数据,深度数据和语音数据,对采集到的数据作处理,通过手势识别和语音识别,对家居设备进行控制。

关键词:Kinect,远程监控,智能家居,体感控制,语音识别

0 引言

智能家居,是物联网发展以来一直热议的话题,也是未来生活方式的一种趋势。通过传感器控制各种家居设备,可以使机器更加智能化,更好地服务人们,这正是物联网工作人员一直致力达到的生活方式。而目前,拥有了更加简捷的控制方式———体感控制,只要运动身体,就可以控制机器。在智能家居系统中引入体感控制,正是本文项目要研究的内容。

1 系统结构

本项目主要分为两大模块: 远程监控模块和体感控制模块。

远程监控模块主要通过Cubieboard3 开发板和UVC摄像头实现数据获取,并采用H. 264 视频输入与输出格式的转化与配置。同时通过嵌入式的动态域名服务器来实现远程监控。在远程监控的基础上,本系统还具备通过区域移动侦测来实现门户监控的效果和三维模型控制。监控到的数据和图像会传输到终端,若区域移动侦测有效,则传输指令到体感控制模块,再由体感控制模块判别后,发送指令到终端。而三维模型控制,则由网页显示家居三维模型图,通过空气鼠标选择地点,可以查看相应地方的监控视频,达到智能监控的效果。

体感控制模块主要是采用微软的Kinect[11]实现体感控制家居设备。该模块主要通过Kinect摄像头捕获人体数据,彩色数据,深度数据和语音数据,对采集到的数据作处理,通过手势识别和语音识别,对家居设备进行控制,例如: 空调,电视,窗帘,灯具等家居设备。体感控制,就是通过对人体作出的动作进行识别,将它转化成指令,发送到终端PC或者通过Wi-Fi模块发送到传感器或单片机执行,从而实现控制家居的效果。

2 系统硬件设计

2. 1 Kinect摄像头

Kinect一共有3 个摄像头,中间一个是RGB摄像头,用来获取640 × 480 的彩色图像,每秒钟最多获取30 帧图像; 两边的是两个深度传感器,左侧的是红外线发射器,右侧的是红外线接收器,用来检测玩家的相对位置。Kinect的两侧是一组四元麦克风阵列,用于声源定位和语音识别; 下方还有一个带内置马达的底座,可以调整俯仰角,如图1 所示。

2. 2 Cubieboard3 开发板

Cubieboard采用DDR3 512Mb /1024Mb内存,市场上多见的是1024Mb内存的版本,其自带有一个5V电源插口、1 个SATA5V电源插口、1 个SATA2. 0 硬盘接口、HDMI视频接口、Micro-SD卡卡槽、耳机插口、线路输入插口、96Pin GPIO接口以及100M以太网插口和Mini-USB接口。

2. 3 CBT-SURPERIOT平台

平台介绍: 全功能物联网教学科研平台( 标准版) 是北京赛佰特科技有限公司基于物联网多功能、全方位教学科研需求,推出的一款集无线Zig-Bee、IPv6、Bluetooth、Wi-Fi、RFID和智能传感器等通信模块于一体的全功能物联网教学科研平台,以强大的Cortex-A8( 可支持Linux /Android /Win CE操作系统) 嵌入式处理器作为核心智能终端,结合自主开发的通用型IPv6 物联网网关,支持多种无线传感器通讯模块组网方式。

3 系统软件设计

本项目软件主要包括远程监控程序和体感控制程序。远程监控程序主要负责帧数据采集与处理,区域移动侦测,数据云存储和三维模型监控等功能。体感控制程序主要负责骨骼、彩色和深度数据采集与处理,实现语音、手势控制,可控制音乐播放,灯具和窗帘开关,传感器控制和远程监控控制等功能。两模块之间主要通过Wi-Fi模块进行通讯和反馈信息,形成一个多功能整体系统。总体流程设计如图2 所示。

远程监控模块主要通过处理摄像头捕获到的数据,存储在本地PC中,或者上传到云盘。其中可以通过帧率差来实现区域移动侦测功能,详细流程如图3 所示。

体感控制模块主要通过处理Kinect捕获到的骨骼数据和声音数据,加以处理,转变成相应功能的指令,经过Wi-Fi传递指令后,控制各个软件或设备,详细流程如图4 所示。

4 系统功能实现

整体的程序界面是以四大功能模块为主,左侧为状态栏,主要反映Kinect连接,Wi-Fi连接和传感器数据信息,而右侧主要为四大功能模式: 音乐播放、灯具控制、窗帘控制、传感器控制和远程监控控制等。

4. 1 灯光和窗帘的控制

系统的灯一共有三个。分别分布在客厅、房间、厨房。每个灯都是连接在51 单片机的引脚上,通过控制单片机引脚的电平就可以控制灯的开关。窗帘的开关由步进电机的正反转来模拟,通过控制单片机来实现步进电机的正反转模块的切换,如图5 所示。

4. 2 视频监控

如图6 所示,视频系统通过一个摄像头和路由器实现远程监控,还能进行简单的图像识别。具体方法是摄像头获取数据,然后通过Wi-Fi或者网络传输到终端和其他智能移动端显示。

4. 3 声音控制

用户需要把指令和语音的对应关系在模块上设置好。具体方法是定义声音识别的内容然后再输入一个指令,建立对应关系。识别时如果模块进行语音匹配,如果匹配成功则发送对应的指令。开发板收到后则进行相应的操作。

4. 4 手势控制

用户需要通过肢体动作使Kinect捕获和识别后,转换为对应的指令,从而执行相应的函数或者指令,可以发送到PC终端或者通过Wi-Fi发送到开发板执行。

4. 5 传感器的应用

赛佰特实验箱的传感器,可能通过烧录相应的程序后,通过串口连接PC终端,从而读取传感器的数据报,然后对传感器的数据报作相应判断或者计算,获得传感器的类型和结果,通过主程序显示。

5 结束语

本项目实现了一个智能家居系统。系统的功能基本上涵盖了智能家居的基本功能,可以实现灯、门、窗的控制。可以实现视频监控,还创新性地引入了基于Kinect的体感控制的控制方式。具有适用性,给家庭带来很大的方便,提高了人们的生活水平。而且系统大多使用无线通讯技术,使系统的部署更加简单快捷,令一般的家庭都可以安装使用。项目的不足之处在于传感器有干扰,运行时有误差。软件的运行效率还可以提高,以减少对系统资源的占用。

体感控制终端系统设计 篇2

关键词:北斗卫星导航系统,水质检测与控制,终端设计

0 引言

当今社会, 水污染越来越严重, 水源污染事故频繁发生。为了保证用水安全, 水质检测则显得越来越重要。为了保证对水质检测的顺利进行, 本文设计了一种基于北斗卫星导航系统的水质检测控制终端, 实现传感器数据的采集、存储与传输, 同时可以定位水质采集系统。利用北斗卫星导航系统作为中转站, 把水质检测的数据通过北斗收发模块发送到地面检测站, 从而实现了对水质的实时在线检测。

1 系统硬件设计

水质检测控制终端, 主要完成水质采集系统定位、传感器数据采集、数据格式转换、北斗卫星导航系统数据传输功能。系统原理框图如图1所示。北斗卫星导航系统通信模块完成对传感器数据的传送, 并可以接收地面站下达的指令;SD卡存储模块把传感器数据保存在水质检测系统, 作为数据查询之用, 可以保存一个月的检测数据;多参数传感器设备与单片机连接, 传感器的输出可以是RS-232通信、CAN总线通信、RS-485总线通信、所以水质检测控制终端具有至少三种通信方式。

1.1 单片机选择

选用意法半导体公司ARM CortexTM-M3核的32位STM32F103RB单片机, 负责系统的整体运行。单片机特点为:工作频率为72MHz, 3个16位定时器, 其内部集成CAN2.0控制器、USART接口和USB2.0全速接口等, 调试模式为SWD和JATG接口。

1.2 电源模块设计

水质检测系统采用太阳能供电, 蓄电池为系统提供12V直流电, 采用专用的蓄电池保护芯片, 来控制蓄电池的充放电。本控制终端使用LM2596来实现+12V到+5.4V的转换, 使用LM1117实现+5.4V到3.3V的转换。

1.3 北斗卫星导航系统通信模块

北斗卫星导航系统通信模块采用东方联星公司自主设计开发的RD120-2W北斗RDSS短报文通信板, 它是一款基于北斗RDSS功能设计的收发一体化模块, 采用公司自主研制的北斗RDSS射频芯片, 具有卫星短报文通信和定位功能, 通信和定位成功率为95%, 定位精度为20m, 根据SIM卡情况实现不大于120个汉字的通信。模块的供电电压为+5.4V。

1.4 SD卡存储模块设计

水质检测系统在使用时, 把传感器采集的数据、位置信息及时发送到地面站的同时, 检测控制终端也要对传感器采集的数据、位置信息备份。本系统选用16G SD卡, 保证数据可以循环保存半年。SD卡存储模块与单片机的连接电路如图2所示。

1.5 通信接口设计

北斗卫星导航系统通信模块与单片机为RS-232协议接口, 而传感器可以是RS-232通信接口, CAN总线通信接口、RS-485总线通信接口。为了满足系统需求, 从STM32F103RB单片机扩展出两个RS-232通信接口, 一个CAN总线通信接口, 一个RS-485总线通信接口, 满足北斗卫星导航系统通信模块使用要求, 也能够极大的扩展使用, 连接更多类型的传感器。

2 系统软件设计

程序是在KEIL公司Keil uVision4环境下开发的, 子程序包括:传感器数据采集, 北斗卫星导航系统的定位, SD卡数据存储, 数据协议转换与短报文传输。主程序流程图如图3所示。系统对接收地面站的指令的程序如图4所示。

3检测控制终端应用实例

设计好的水质检测控制终端, 在实际测试中, 检测控制终端连接一个RS-232接口的叶绿素a浓度传感器, 一个RS-485接口的PH值传感器, 一个RS-485接口的硝酸盐氮浓度传感器, 检测控制终端可以接收地面站数据、发送水质检测系统的传感器数据到地面站, 并可以把传感器数据、设备定位信息、传感器采集数据时间等信息存储到SD卡内。

4 总结

本文设计了基于北斗卫星导航系统的水质检测控制终端, 从硬件与软件两个方面对其进行了介绍。设计的控制终端, 能够对传感器数据进行采集、存储、传输, 完成设计任务, 基本满足使用要求。本控制终端在水质检测中进行了实验使用, 对数据的远程采集、传输中得到应用。本控制终端也可以用于保密设备的定位、数据交换等, 具有一定的应用前景。

参考文献

[1]王英志, 杨佳, 韩太林.基于STM32的RS232-CAN通信协议转换器设计[J].制造业自动化, 2013, 35 (7) :141-143.

[2]于龙洋, 王鑫, 李署坚.基于北斗短报文的定位数据压缩和可靠传输[J].电子技术应用, 2012, 38 (11) :108-111.

体感控制终端系统设计 篇3

1 系统整体设计

在以Cyclone III系列芯片为核心的FPGA硬件控制平台上开展设计和研发, 其中包括了蜂鸣器、按键、数码管等基本外设。实现过程是:通过在FPGA芯片内部嵌入NIOSII软核作为通信和控制核心, 从而构建SOPC片上系统。

2 系统硬件平台设计

考虑到现实的需求, 硬件需由WIFI模块、FPGA控制平台、继电器模块组成, 具体如图1所示。

由图1可知, 手机通过无线WIFI将控制信息传递给位于同一AP热点下的WIFI模块, WIFI模块将接收到的控制信号由串口传递给FPGA, FPGA则根据接收到的指令控制相应的继电器工作, 从而实现对家电的控制。同时, FPGA还可以将家电的工作状态和室内的环境状况通过WIFI模块再次反馈给手机。下面将详细阐述硬件设计中各构成模块的功能实现。

2.1 FPGA控制平台

FPGA控制平台是硬件系统的核心, 主要负责接收和处理控制指令、控制动作电路、监测和反馈状态信息等。考虑到设计需求和系统成本, 我们选择了Cyclone III系列中性价比更为优越的EP3C5E144C8N。该款芯片内部包含5 136个逻辑单元、95个标准用户I/O口、46个九位嵌入式乘法器和2个锁相环, 可以流畅运行NIOSII软核。存储芯片则选择了三星公司的K4S561632E-UC75动态存储芯片, 容量为256 Mb, 位宽16 bits。为了方便使用, 核心板上还设计了一款容量为16 Mb的FPGA专用配置芯片EPCS16。同时, 考虑到控制平台的通用性、可移植性和可扩展性, 平台上又进一步设计了4个LED、两位共阴极数码管、1个蜂鸣器、4个拨码开关和8个按键开关等基本外设, 而且电源芯片选用了ASM1117-2.5、ASM1117-3.3和LM317, 这三款芯片可分别为FPGA提供2.5 V、3.3 V和1.25 V电压。另外, FPGA所有用户I/O口都已引出, 以便扩展。

2.2 传输协议模块

在智能家居中的应用原则中, TCP和UDP是目前最常用的网络通信协议。TCP是基于连接的协议, UDP是一个无连接的、不可靠的协议。相对于基于流传输的TCP而言, UDP是基于消息传输的, 整体上具有传输速度快等优点。通过研究可以看出, 家用电器的控制信息特点是数据量小、控制信息短, 适合用于传送少量数据、对可靠性要求不高的应用环境, 因此更适合采用简单的、面向数据报的UDP协议。

2.3 无线WIFI模块

无线WIFI模块采用的是深圳市海凌科电子有限公司的HLK-RM04。该模块是基于通用串行接口且符合网络标准的嵌入式模块, 内置TCP/IP协议栈, 能够实现用户串口、以太网、无线网 (WIFI) 三个接口之间的转换。在本次研发设计中, 该模块的主要作用是将WIFI无线信号通过串口与FPGA控制中心相互通信。

2.4 Zigbee模块

采用CEL公司的ZICM2410芯片, 其内核芯片结构如图2所示。CEL公司的ZICM2410是兼容Zig Bee和IEEE802.15.4的完整单片无线解决方案。它包含1个带有基带调制解调器的RF收发器、硬连线MAC和1个带有内部闪存的嵌入式8051微控制器。该器件提供了多个通用I/O引脚、定时器和UART等外围设备功能, 并且是第一个提供嵌入式声音CODEC的器件, 因此是超低功耗应用的理想选择。

2.5 RFID模块

RFID模块采用CY-14443A-P系列射频模块, 利用SPI总线与控制器通信。CY-14443A系列射频读写模块采用基于ISO14443标准的非接触卡读卡机专用芯片。模块引脚如图3所示。

2.6 继电器模块

由于智能家居系统的控制对象是普通家电, 都属于强电用电器。因此, 使用控制平台操控时, 就需要通过继电器来实现间接控制。继电器采用的是松乐继电器。为保证继电器的顺利闭合, 本模块采用了达林顿晶体管ULN2003L来增加FPGA的驱动能力。

3 OPC片上系统设计

在FPGA内部设计NIOSII片上系统主要包括两个方面: (1) 在FPGA芯片内部设计硬件电路; (2) 编写基于NIOSII的软件程序。

3.1 硬件电路设计

硬件系统由时钟、NIOSII软核、音效模块组成。NIOSII软核和音效模块所需要的时钟频率不同, 因此需要利用FPGA内部的一个嵌入式锁相环对时钟进行分频和倍频, 这样可使整个系统实现频率同步。在此基础上配置NIOSII软核, 由其完成指令的下达和数据的输入、输出。而音效模块则是家庭音响, 主要由Android客户端实现控制。

3.2 基于NIOSII的软件设计

NIOSII支持C语言开发程序代码, 并提供强大的硬件抽象层系统库 (HAL) 。NIOSII处理器的外围器件允许用户通过HAL的API接口直接访问底层硬件。同时, HAL系统库定义了一组基本功能, 使设计者可以直接初始化和访问常用器件, 而不再需要考虑底层硬件, 这大大简化了程序的设计流程。程序运行烧写至FPGA内部的NIOSII软核中, 主要功能除了接收WIFI无线模块传来的串口信息、译码并控制电路外, 还能接收和处理各模块的状态信息, 并反馈给WIFI无线模块。

4 Android客户端设计

本客户端是在Windows7操作系统下构建的。Android客户端是用户与控制系统沟通信息的交互界面。客户端的功能就是实现设计用户界面与Socket之间的成功通信。通过Socket通信, 即打开网络套接字, 由WIFI网络传递信息。将Android客户端安装在用户手机中, 手机和系统的WIFI模块连接到同一个AP热点。Android客户端通过套接字向网络 (WIFI模块) 提供发送请求或者应答请求, 触发后台应用程序。应用程序分析操作指令后发送相应的控制信息, 并通过路由器传递给WIFI模块, WIFI模块再将接收到的信息转换为串口信息传递给FPGA内部的NIOSII软核, NIOSII软核处理接收到信息后控制相应的引脚动作, 进而由引脚控制继电器的吸合和断开, 由此实现对普通家电的完整控制。

Android客户端的用户界面文件包含了若干个Text View (文本框) 控件和1个Button (按钮) 控件, 用户可以通过界面中的按键实施相应操作。功能清单文件Android Manifest.xml是对应用程序的全局描述, 也是应用程序不可或缺的一个重要文件。所有应用程序所使用到的组件均存在于Android Manifest.xml文件中, 并且发表了与其有关的特性和要求声明。程序代码由JAVA语言编写, 交互界面之间的切换与显示则由Tab Host控件实现与维护。Android软件通过“套接字”向网络 (WIFI模块) 提出发送请求或者应答请求。设计程序时, 需着重考虑Socket通信。

5 结束语

综上所述, 目前智能家居正朝着无线远程与近程控制相结合, 集多媒体、游戏娱乐功能于一身和快速、便利等方向发展, 而基于Android手机终端的智能家居则正好满足了人们的生活需求, 相信通过不断的探索和应用, 智能家居肯定会有更好的发展。

摘要:探讨了基于Android手机终端的智能家居控制系统, 分别从系统整体设计、系统硬件平台设计、OPC片上系统设计和Android客户端设计四个方面作了详细、系统的论述, 以期能为相关人员提供借鉴。

关键词:Android,智能家居,控制系统,控制平台

参考文献

[1]王清清, 李晓勇, 余强国.基于Android手机终端的智能家居远程控制系统[J].中国科技信息, 2013 (12) .

体感控制终端系统设计 篇4

选单,作为WIMP(窗口、图标、选单、指针)界面模式的要素之一,是一种“深入人心”的界面元素。选单的价值在于将一组符合继承关系的概念伴随用户动作按树形结构逐层展开,这与人类认识、记忆事物的心理过程契合,因此既容易使用,也容易记忆。

选单的使用过程可分为3个步骤:启动、定位和选中。

1)“启动”即向用户展现选单,这在使用体感选单的场合是必须的步骤。

2)“定位”即用户找到所需的选项,在普通系统中通过鼠标的“移动+停滞”实现,选单项的树形结构同时逐层展开。

3)“选中”即用户选择所需项,普通通过鼠标点击实现。

随着HCI技术的发展,脱离传统的鼠标、使用体感设备的体感选单逐渐出现,它们在交互设计上有3种思路:指点型、动作识别型和身体部位识别型。

指点型的想法是保留用户使用鼠标的感受,并将其延续到体感设备上。通常假定从用户身体某部分发出一射向屏幕的虚拟光线,产生一个光标,用户移动此光标进行选单的选择。Horie等实现了Xangle系统[1],在两个食指上各佩戴一加速感应器,每个食指控制一条直线,直线相交即达成选择Park[2]等通过一个安置了螺旋仪的帽子感应用户的视线,用户可以通过凝视一个选单项来聚焦,然后以语音确认;Yoo[3]等对各种指点型选单进行了比较,认为单手和语音结合的方案综合效果最佳。

动作识别型的想法不再拘泥于鼠标的使用感受,它通过Kinect、加速度感应器、螺旋仪等体感设备识别用户动作并解释成选单选择。Crossan[4]等将一个嵌入了加速度感应器的无线设备佩戴于用户手腕,其转动角度被映射到屏幕位置,用户通过倾斜手腕达成选单选择;之后他们又将同样设备装在帽子上感应[5]头部倾斜,Dachselt[6]将同一技术用在了大尺寸远程显示上;Yamamoto[7]扩展了Crossan等的工作,在用户的双手双足上佩戴4个感应器,用户可通过丰富的肢体运动来选择选单;Ni[8]等用加速感应器和弯曲感应器制作了一种手套,用户通过倾斜和抓取动作进行选单选择;Bailly[9,10]等则提出了“手指数数”选单,通过识别用户双手1~5的数字姿势进行选单选择。

饼型选单(也称Pie选单)是动作识别型选单的一种。饼型界面最早由Callahan[11]提出,它将选项如切饼一般排布在一个圆上,苹果的iPod使用了这种界面。Kurtenbah[12]提出将多个饼型界面联用,形成了选单的概念。它最早的应用是在手持式Pad上,用户通过手写笔的划动达成选择,Zhao[13]等对Pie选单的连击与单击在准确率、空间要求等方面进行了比较,认为在Pad上单击方式更优。Lenman[14]以静态图像识别的手段实现了单击的Pie选单,并总结它的优势是平均移动距离最短。

身体部位识别型的想法比较特殊,它将选单项虚拟地放置于人体各部位,通过手或操纵杆触碰这些部位达成选单项选择。其理论基础源自Easton和Sholl[15]等的一项研究,他们对人操纵靠近自己身体的物体时的心理进行了分析,结果表明空间记忆和自体感觉对高效的体感交互极有价值,继而又将交互分为体前的和近体两类,近体交互发展到极致,就形成了将行为与特定人体部位联系起来的思路。

电视的功能日渐智能化,由于其特殊的历史地位,未来将成为家庭主要的智能终端,准确好用的体感选单系统是必需的。目前在一些智能电视上出现了类似体感选单的界面,它们一般通过遥控器或语音识别启动,选单项在屏幕上有规律地铺展,通过全屏范围移动手掌实现定位,通过握拳或轻击实现选中。由于定位和选中的精度不高、使用不便,所以应用性差。一种变通的方法是以选单项的自动运动代替人手运动,人仅通过握拳、轻击或声音实现选中即可。这是HCI常用的巧妙设计,代价是牺牲了选单的重要价值,即逐层展开的用户感受。

饼型选单有控制杆(或手)平均运动距离短的特点,可降低定位和选中动作的识别难度,如能使多级饼型选单呈现逐层逻辑展开的效果,将非常适合电视应用。身体部位选单具有易识别、不易混淆的特点,但由于选单项都附着于身体,其本身不可能呈现出选单展开的效果,用户需记忆选单的层次关系,限制了应用。本文的思路是两种体感选单结合起来:以身体部位选单作为第一层选单项,利用其特点实现稳定的启动;之下层次选单以多击饼型选单实现,后者有较高的识别率,且通过改良使之呈现传统选单逐层展开的效果。实践中,笔者选择额、(与控制手同侧)肩和腰部3处作为身体部位选单的敏感点,这基于如下考虑:

1)用Kinect进行骨架关节点邻接判断时,躯干边缘部分的准确度较高,躯干中间部分准确度降低。

2)目前用户观看电视的习惯是持遥控器单手操作,此方案与用户现有习惯接近。

另取饼型选单为常见的上下左右4个方向,深度为3级,则可用选单项数目为3×43=192,对电视应用来说应是足够了。

手势现象是参数空间的轨迹,可定义为在特定时间区间内模型参数空间中的一个随机过程。运动手势识别方法有有限状态机方法、模板匹配方法、隐形马尔科夫链方法和神经网络方法等。本文使用了一种语法制导的识别方法,其本质是有限状态机,由于使用正则表达式和产生式表示规则,可扩展性更好。测试结果表明本文的综合性体感选单设计合理,容易记忆和使用,并有较高的识别率。

2 系统框架和前处理

图1为本文体感选单系统框架,Kinect获取的人体骨架数据经前处理模块处理后保存到一环形缓存,语法制导手势识别模块从缓存采样,识别出手势信息并将其输入反馈模块,后者计算饼型选单项逐层展开的位置并产生视觉输出。

Kinect可获得人体20个关节点的信息,精度可满足本文系统的需要,但在少数情况下环境光等的扰动可使其输出产生噪声,前处理模块首先用Kinect SDK自带的骨骼流平滑方法进行低通滤波器,以清除数据中的毛刺。

前处理的第2项功能是进行人体坐标变换。如图2a是应用场景的俯视图,XOZ为设备坐标系,人体头部位于o'(x0,z0)位置,左肩位于(xl,zl),右肩位于(xr,zr),面朝o'z'方向。人体正面对设备平面有α角扭曲,不便于后续识别计算,因此需将骨架数据从设备坐标转换到X'O'Z'人体坐标。从图2a可见这一转换可分3步:1)z坐标倒转;2)转动-α角;3)从O移动到O'。如此A(x,y,z)在X'O'Z'系中坐标(x',y',z')为

其中,α=arctan[(zl-zr)/(xl-xr)]。

进而,为了消除身高等个体差异对识别算法的影响,引入长度调整系数δ

如图2b的人体骨架图所示,y'shoulder_center为人体喉部置,y'hip_center为腹部位置,x'left_shoulder和x'right_shoulder分别为左右肩位置,δ值取了喉部和腹部的高度差以及两肩的水平差之和作为参照。实践中曾使用上臂和前臂长度之和为参照,但动态计算距离速度较慢,式(1)算法速度较快且同样能达到目的。经长度系数调整后的A点坐标为:(x″,y″,z″)=(δx',δy',δz')。

前处理模块的第3项工作是从输入中提取后续识别所需的特征向量,特征向量vi定义为:vi=(i,phead,pshoulder,pwaist,phand,uhand,t)。其中,i为流水号,phead,pshoulder,pwaist,phand分别为额头、(控制手一侧的)肩膀、腰部和手部的位置,uhand为控制手从i-1帧到i帧的运动向量,t为系统时间戳。

vi被保存在如图1右上部所示的环形缓存中。该缓存顺时针方向为数据加入方向,在行程、运动方向等计算中需要逆时针向后查看。实践中取缓存容量为600,即大约20 s的数据,更早的数据将被覆盖。

3 语法制导识别

本文所用的语法制导识别方法是一个6元组合

式中:N为非终结符集;T为终结符集;P为产生式集;S为开始符号;F为从特征向量到字母的转换函数;A为动作集合。

非终结符集N={MenuItem,BodyMenuSelect,PieMenuSelect,Waves,OneWave,PieMenuError},终结符见表1,产生式集P如下:

1)S→S MenuItem=MenuItem

2)MenuItem→BodyMenuSelect PieMenuSelect

3)BodyMenuSelect→SelectHead SelectShoulder SelectWaist

4)PieMenuSelect→FreezeSignal Waves LeafSelected

5)Waves→Waves OneWave OneWave

6)OneWave→Up Down Right Left

7)PieMenuError→FreezeSignal TimeOutError Waves TimeOutError

P描述了系统的语法规则。选单项定义为一次身体部位选单选择后进行一次饼型选单选择;身体部位选单选择定义为选择头部,或选择肩部,或选择腰部;饼型选单选择定义为悬停(Freeze)信号后挥手,直至选单树叶子项被选中;在悬停或挥动中出现超时则产生错误。上述产生式归约成功时系统将执行相关的动作,如对产生式2),系统将清空状态变量并执行选单命令;产生式3),系统产生饼型选单反馈,初始化选单识别的内部状态;产生式6),系统产生新的饼型选单反馈,并变动内部状态;对产生式7),则清空内部控制变量并回到初始状态。

P中的终结符以系统定义的字母为基础,后者由字母提取器产生,原理如图3,字母提取模块以向量缓存为输入,不断生成字符串c。c输入词法分析器,后者根据正则表达式识别词汇token,并可能引发动作改变字母提取模块的状态。token输入语法分析器,后者通过产生式集P的归约识别选单操作,并将之输出到后续的反馈模块。

字母提取模块通过函数集合F对系统当前的各种信息包括位置、速度、计时器状态、距离、运动方向等作出离散的描述。设字母集合Σ={a1,a2,…,an},字符串c=b1b2…bm,其中bi∈Σ。

特征向量集合V={v1,v2,…,vi,…,vk}。F是一组子函数的集合,即F={f1,f2,…fi…fm},有

式中:i=1,2,…,m。本文方法的字符串长度m=5,字母集Σ及其解释见表2。

特征向量缓存的当前帧为vc,变量pos用来记录缓存历史位置,计时器、行程和运动方向的判断需向后查看多帧即(vpos…vc)的数据。表2的字母实际是对用户运动相关的基本信息的采样。手和目标部位的接触通过各部位坐标点为中心的外包围盒求交实现。由于Kinect骨架数据不考虑身体厚度,且位置数据在z方向上误差比x和y方向大得多,所以外包围盒尺寸在z方向上大于x和y方向,实际使用的尺寸为(20 cm,20 cm,30 cm),box测试为正时将激活相应的字母‘h’、‘s’或‘w’。用户在选择身体部位选单项后、进入饼型选单工作之前,需悬停片刻作为开始信号。当手的运动速度低于阀值时将激活字母‘f’。系统内部有多个计时器,计时满将激活相应的字母。手在(vpos…vc)间的运动行程达到阈值时激活字母‘a’。手在(vpos…vc)间的运动方向通过向量和的倾角判断。字符串c的1,2,3,4位都可能出现字母‘0’,在本文方法中不会导致歧义。

字母序列c1,c2,…,ci输入词法分析器,后者识别出词汇token。token∈T,且token=(expression,action),其中expression为正则表达式,action∈A即动作。终结符集合T见表1。

每一个token对应一正则表达式,主要的正则表达式及相关动作如下:

1)EnterHeadBox→0.000h.000

动作:pos=c,身体选单计时器启动。

(EnterShoulderBox,EnterWaistBox类似)

2)SelectHead→EnterHeadBox(h.000)*(h.b00)+(0.b00)

动作:pos=-1(3,4,5三种类型字母不起作用),身体选单计时器停止。

(SelectShoulder,SelectWaist类似)

3)FreezeOccur→0f000

动作:pos=c,启动饼型选单计时器。

4)FreezeFail→FreezeOccur(00100)

动作:pos=-1,停止饼型选单计时器。

5)FreezeSignal→FreezeOccur(0f100)+(0fb00)

动作:pos=c,启动行程计算,停止饼型选单计时器。

6)RunLength→(0.110)+(0.1a0)

动作:重启错误计时器,启动方向计算。

7)Up→RunLength(0.1au)

动作:pos=c,关闭方向计算。

(Down,Right,Left类似)

8)TimeOutError→(h|s|w|0)(f|0)e(a|1|0)(u|d|r|l|)

动作:清理所有控制变量。

词法分析器从输入流寻找匹配特定模式的串并对字母提取模块的内部状态作出相应改变。表1中最后一个终结符LeafSelected是一个特殊的token。系统内部维护了选单对象M

式中:M包含了选单的信息:Tree为选单树结构,Function为选单项所关联的电视控制命令,Selected为M当前状态,即哪一选单项被选中。当M.Selected为一个叶子节点时,系统通知词法分析器产生LeafSelected终结符。M对象是比较容易构建的,当需修改选单设计,或者将本文方法应用到一个新的选单树上去时,只需生成新的M对象即可。

词法分析产生的token被输入语法分析器,后者通过产生式的归约识别用户选单操作,并激活相应的动作。本文语法制导的识别方法本质上是一种状态机的方法,测试结果显示识别率在95%以上。由于使用正则表达式和左递归文法进行描述,且字母提取基于基本计算,因此扩展方便,易于进一步开发。

4 饼型选单逐级展开

选单作为呈现给用户的重要价值是清晰、动态的逐级展开效果。本文饼型选单若经过t次展开,系统界面由一系列半径为r的圆的集合P=(p0,p1,p2,…,pt)构成,其中,pi=(xi,yi),(xi,yi)是pi在屏幕上的圆心坐标。

设系统识别出用户手势为向量G,G∈{(0,1),(0,-1),(-1,0),(1,0)}。若当前已经显示了s个圆,用户的新手势为Gs+1,则对于pi∈{p0,p1,p2,…,ps}

新出现的ps+1的位置为

如图4所示,多级饼型选单向用户手势相反的方向运动,新子选单出现在手势中心位置,从而流畅地呈现出逐级展开的动态效果。

5 测试结果

本文体感选单系统使用了Kinect 1.0设备和1.8版本的Kinect SDK,程序以C#语言在Windows 7系统上实现。系统选单最深4级,共41个叶子选项,包括了数字电视的常见功能。身体部位选单激活的时间阈值为3 s,饼型选单启动的悬停时间阈值为1.5 s,超时错误阈值为10 s。图4为系统使用中的一组截图,图4a中用户触碰额部激活“点播”项,该项随之展开成图4b中包含“新闻”等4项的饼型选单,用户在此悬停片刻表示将开始挥手,之后向右挥手激活“影视”项,该项随之展开成图4c所示的包含“电影”等的子选单,两级饼型选单按照上节规则确定位置,显示出层级展开的效果,图4d中用户继续向下挥手选择“电视剧”导致选单继续展开,图4e中用户右挥选择了叶子项“美剧”,一次选单操作结束,系统遂发出操作命令进入流行美剧缩略界面。

笔者选取了10位实验对象,按照年龄段分为2组进行测试。每位测试者在管理员的引导下先进行3~5 min的熟悉,之后按照管理员给出的信号进行200余次的选单选择,每个人选择的选单项内容和顺序都相同。其间实验对象可要求休息,休息时间被扣除。实验数据见表3,所有测试者完成一次选单选择的平均时间为7.7 s,平均识别率为95.5%,两者的分布见图5。

之后,每位实验者被要求完成一简单的问卷,对系统的如下5方面进行评价:

1)有效性。是否有用,是否能达到目的?

2)准确性。是否能精确操作?

3)易学习。是否容易学会?

4)舒适度。是否不易疲劳?

5)趣味性。感受是否愉悦?

实验者对每个问题按5分制打分,1分为非常不满,2分为不满,3分为一般,4分为满意,5分为非常满意。实验者评价的均值见图6,可见用户对趣味性和易学习的评价颇高,对有效性、准确性和舒适度的评价也可满意。

综合起来,本文方法可以满足电视控制的需要,有比较高的识别率,也有较好的用户满意度。

6 总结

选单界面的使用需要启动、定位、选中三步骤,其重要价值是逐层展开的逻辑过程。身体部位选单想法独特且不易混淆,但不能实现逐层展开。饼形选单在理论上有最短的平均移动距离,但需以某种方式启动,并解决多级选单项的合理显示问题。本文针对电视应用开发了一种综合的体感选单系统,选取身体边缘的少量部位作为身体部位型选单的敏感点,用身体部位选单作为顶层选单项,用饼形选单作为后续层次选单,并为后者构建了逐层展开的界面效果。系统用Kinect为体感设备,用基于语法制导的识别算法实现。系统先将数据进行前处理,去除毛刺,并在方向和长度上纠正坐标值。语法制导的识别算法先从输入数据中提取字母,通过词法分析产生词汇,然后以语法分析识别有意义的动作。测试表明有较高的识别率和很好的用户满意度。

智能电视功能丰富,除了选单外还需要更丰富的控制界面。电视用户处于放松状态,动作特点不鲜明,在识别算法上也需提高精确度。在这些问题上,笔者将进一步展开研究。

摘要:电视控制需要适合的体感选单。身体部位型选单和饼型选单各有优缺点。综合了两者的优势,用身体部位型选单保证稳定的启动,用饼型选单保证识别率,并对其改良以实现层级展开的效果。系统前处理进行数据整理,字母提取器对运动状态作出离散描述,以正则表达式描述原子动作,通过产生式规约实现动作识别。测试结果表明有较高的识别率和很好的用户满意度。

体感控制终端系统设计 篇5

在信息量呈爆炸性增长的今天,社会对于大容量通信技术的需求非常强烈,这特别表现在对大容量星地信息传输技术的需求方面。在目前仍大量使用卫星微波通信手段的同时,人们迫切提出了发展更大容量通信技术的需求。自20世纪60年代激光器诞生以来,经过几十年的努力,激光通信技术已成功地应用于通信领域的许多方向,极大地丰富和扩展了人类所采用的信息传输方式。激光通信具有大通信容量、高传输速率、高隐蔽性、高抗干扰能力等优点,是星地大容量信息保密通信最具竞争力的可选方案之一,是满足军用、民用大容量通信方式的重要手段之一。同时,激光通信也是一个国家掌握“制天权”、“制空权”、“制信息权”的重要手段之一[1]。

空间光通信是指在空间用激光取代微波进行链路和信号传输。由于激光通信发射光束狭窄,使接收端捕捉发射光束比较困难,因此捕获、瞄准和跟踪(Acquisition Pointing,Tracking)技术成为了激光通信首先要解决的问题。

本文根据APT技术要求的性能指标进行终端控制系统设计,给出建模仿真方法,阐述软硬件实现方式,并介绍设计中采用的容错技术,具体内容安排如下:第2部分建立控制对象的数学模型,推导出其传递函数表达式;第3部分设计出本系统控制方案,并通过仿真验证其可行性;第4部分介绍控制器的软硬件实现方式;第5部分阐述系统中采用的容错技术;第6部分给出终端控制系统地面实际测试的曲线结果。

2 系统建模

空间光通信终端二维转台要求电机体积小、调速性能好、控制精度高、工作可靠,故采用永磁无刷直流电机驱动。

直流电机电枢回路的电压平衡方程为

其中,电机的反电势可以表示为

电机轴上的转矩和转速服从电力拖动系统的运动方程式,在忽略粘性摩擦的情况下,可得转矩平衡方程式为

式中,电机的电磁转矩与电枢电流成正比

TL——包括电机空载转矩在内的负载转矩;

GD2——电力拖动系统运动部分折算到电机轴上的飞轮惯量。

定义下列时间常数

Tl=RL——电枢回路电磁时间常数

将上述表达式整理后得到

在零初始条件下,对上述式子进行拉氏变换得电压与电流和电流与电动势之间的传递函数分别为

可得直流电机的动态结构图如图1所示。

若不考虑负载电流,由结构图可得出输出到输入的传递函数为

3 控制方案设计

3.1 性能指标要求

空间光通信终端这种高精度、高性能的控制系统必须具有很高的稳态精度和较好的动态品质,又有足够大的稳定裕度和抗干扰能力。因此,控制系统要求具有精度高、频带宽、鲁棒性强的特点。

综合以上基本要求,同时参照国内外卫星光通信专业研制机构的技术指标惯例,我们为控制系统设定如下主要性能指标:

1. 偏转范围:俯仰角方向为±180度,方位角方向为±360度;

2. 角速度范围:0度/秒~30度/秒;

3. 位置精度优于5微弧;

4.超调量小于5%;

5.低速平稳性好。

3.2 控制系统设计

依据APT过程的性能指标要求,设计采用三闭环控制策略:

内环为电流环,在伺服驱动器内部进行,通过霍尔装置检测驱动器给电机的各相输出电流,负反馈给电流环控制器进行调节,保证电枢电流在动态中不超过最大值,在突加负载时超调尽量小。电流环是高性能伺服系统构成的根本,其动态响应特性直接关系到矢量控制策略的实现,直接影响整个系统的动态性能[2]。电流环控制器一般采用PI控制器。

中环为速度环,主要起到抑制干扰的作用。增大速度环增益可以有效增大速度回路的刚度,减小系统对于动、静摩擦的灵敏度,克服系统死区并减小力矩波动有效地拓宽系统频带,并抑制转台的机械谐振,实现系统对负载等扰动的鲁棒性。

外环为位置环,决定系统的静态指标和动态特性。设计要有稳定平滑的瞬态响应,稳态位置跟踪误差和动态位置跟踪误差要小,以便获得高精度的位置控制功能。

综合上面的控制策略,本系统原理框图如图2所示。

3.3 控制算法

数字PID控制是一种普遍采用的控制方法,由于空间光通信终端控制系统对实时性的要求很高,故不能采用智能PID方法。针对常用PID算法的不足之处,本系统采用改进PID控制算法。

考虑到在过程的启动、结束或大幅度增减设定值时,短时间内系统输出会有很大的偏差,会造成PID运算的积分积累,致使算得的控制量超过执行机构可能最大动作范围对应的极限控制量,最终引起系统较大的超调,甚至引起系统振荡。引进积分分离PID控制算法,保持了积分的作用,又减小超调,使控制性能有了较大的改善[3]。其具体实现为

1.根据实际情况,设定阈值δ>0

2.当e(k)>δ时,采用PD控制,可避免过大的超调,又使系统有较快的响应

3.当e(k)≤δ时,采用PID控制,可保证系统的控制精度

本控制系统的改进增量式PID算法流程如图3所示。

3.4 仿真结果

利用MATLAB对本系统进行仿真,选取控制对象的传递函数为

控制器分别选用传统的三环PID控制器以及本系统中所采用的三环改进PID控制器,输入为随时间改变的目标位置信号,其仿真后得到系统的响应曲线如图4所示。

从图中可以看出,本系统采用的控制算法能取得和传统PID相同的稳态时间,同时避免了系统过冲,有利于星间链路的建立。同时该算法简单易行,较之其他的先进控制算法有较好的实时性。

4 控制器软硬件实现

4.1 控制器硬件设计

根据控制器所需实现的基本功能,在控制器硬件部分的实现上,选用高可靠抗辐射51系列单片机作为主控CPU,具体选用ATMEL公司的航天级别芯片80C32E单片机。控制器整体电路结构图如图5所示。

80C32E有4个8位I/O口,其中P0口是双向8位三态I/O口,数据地址复用,通过ALE信号将地址信号锁存到54HC373锁存器中;P1口是8位准双向I/O口,能驱动4个LSTTL负载;P2口是8位准双向I/O口,高4位通过54HC154译码,译出的信号作为外围芯片的片选线;P3口是复用双功能口,电路设计时除两个外部中断和读写信号用其第二功能外,其它作为普通I/O口。

由于80C32E没有内部程序存储器,考虑到软件调试时可方便修改和保存程序,并且保存信息寿命时间长,本设计采用电可擦除可编程只读存储器E2PROM,其优点是能够在线擦除和改写,能保留信息时间长。80C32E内部有256 B RAM,实际应用中仅靠片内RAM往往不够用,设计外扩的数据存储器采用静态数据存储器SRAM。

80C32E单片机只有8位数据总线,而它与上位机之间是23位数据的双向通信。为了保证数据能可靠地并行传输,本设计采用需要6个锁存器,具体选用54HC573用于两者间的通信。其中3个573锁存器用于上位机向单片机传送目标位置数据,合称为A组;另外3个用于单片机向上位机传送实际位置数据,合称为B组。上位机来给定译码器54HC138的输入和使能信号,使其一组输出分别经反向触发器54HC14后连接到作为A组锁存器的11脚作为锁存使能信号;另外一组输出直接连接到作为B组锁存器的1脚作为输出使能信号。A组锁存器的输出使能信号是由单片机P 2口高四位经译码器54HC154得到3个输出再分别和单片机的读信号一起经或门54HC32后得到;B组锁存器的锁存使能信号是由154译码器的3个输出分别和单片机的写信号一起经或非门54HC02后得到。

4.2 控制器软件设计

本系统实时对位置信号进行采集并计算控制量,保证控制精度,对软件要求高速高效,因此采用汇编语言编写。整体程序分为3个部分:主程序模块、定时器中断模块和外部中断模块。

在主程序模块中,程序完成数据和参数的初始化,并在结束处执行死循环,等待定时器中断或外部中断;在定时器中断模块中,控制器接收光电编码器发送的实际位置数据,利用改进PID方法计算控制量,随后将控制量发送给驱动模块驱动电机带动运转;在外部中断中,控制器接收上位机发送的目标位置数据和操作指令,并根据指令的内容分别进行相应的操作。其程序流图如图6所示。

5 容错设计方法

本系统的工作环境为太空,太空中具有很高动能的高能粒子(如高能质子、中子、重离子等)能够穿透卫星金属壳体和半导体器件的绝缘封装层,从而引起不同程度的单粒子效应[4]。针对这样的问题,本系统的软硬件采用一些容错方法,保证系统的稳定性和可靠性。

5.1 看门狗技术

为防止高能粒子穿过芯片时对单片机造成单粒子锁定,利用“看门狗”技术监视程序循环运行。若发现时间超过已知的循环设定时间,则认为系统陷入死机强迫系统复位,在复位入口0000H处安排一段出错处理程序,使系统运行进入正轨。系统正常运行时,单片机定时向MAX706芯片发送喂狗信号,MAX706若在设定时间1.6s内收到喂狗信号,其第七脚RESET一直为高电平;如单片机死机,MAX706未能在1.6s内收到喂狗信号,其第七脚RST产生200ms的低电平,使单片机进行复位操作,从而解决死机状况。

5.2 三取二冗余

当高能粒子打在计算机芯片上以后,会造成单粒子翻转现象,即程序原来的状态发生了变化,0变成了1,1变成了0,程序混乱了。为了应对此问题,在程序设计中采用三取二冗余技术,即把程序中的关键数据存放在三个地址,当使用该数据时,分别从三个地址取出该数据如果取出的数据至少有两个相同,则应用该数据;若三个地址所存放的数据都不同,则向卫星平台发送错误数据信号,要求其进行相应的处理操作。这样就可以消除单粒子翻转现象对系统的造成的影响。其示意图如图7所示。

6 实验测试

在地面模拟实验调试中,模拟空间卫星姿态,采用阿基米德螺旋线轨迹进行等线速度扫描,螺旋线表达式为

其极坐标形式为r(t)=aθ(t)

θ(t)为通过如下方程用四阶龙格库塔方法求出[5]

对扫描数据进行实时采集并用MATLAB进行作图,结果如图8所示。

从图中可以看出,螺旋扫描目标指向角度和实际指向角度重合得非常好,具体数据达到APT所要求的技术指标。

7 结束语

本文针对空间光通信APT技术中对终端控制系统的性能指标要求,利用改进PID控制算法设计了三闭环控制系统,并在实际调试中对硬件和软件进行了整定,结果表明终端控制系统达到精度要求,同时给出一些容错方法,具有很好的实际效果。

参考文献

[1]李晓峰.星地激光通信链路原理与技术[M].北京:国防工业出版社,2007:1-11.

[2]陈荣,邓智泉,严仰光.永磁同步伺服系统电流环的设计[J].南京航天航空大学学报,2004,36(2):220-225.

[3]刘金琨.先进PID控制及其MATLAB仿真[M].北京:电子工业出版社,2004:25-33.

[4]张钰,郑阳明,黄正亮等.皮卫星星载计算机存储模块的容错结构设计[J].宇航学报,2008,29(11):2057-2061.

体感控制终端系统设计 篇6

根据冯·诺依曼 (John von Neumann, 1903~1957) 的计算机体系结构, 计算机分为五大部分——运算器、控制器、存储器、输入设备、输出设备。现在大多数计算机仍是冯·诺依曼计算机的组织结构, 只是做了一些改进而已, 并没有从根本上突破冯·诺依曼体系结构的束缚。对于计算机的研究和使用人员来说, 计算机的发展最终需要解决的问题就是输入和输出的问题。如何对计算机进行高效准确的输入, 以及如何让计算机通过算法, 进行准确的计算, 输出人们想要的结果, 一直是计算机研究的一个重要课题。

随着计算机的发展, 自然的用户界面 (NUI) 随之出现。相对于传统的用户输入方式——鼠标键盘, 自然的用户界面显得更加人性化。比如语音输入, 手势识别等。显然, 自然的用户界面更加符合人们的行为习惯。自然的用户界面更加健康, 它可以让对计算机的输入变成与一个人的交流, 让用户可以有更加身临其境的感觉。

1 现实生活中体感手势的运用

人们在日常的交际中, 经常会用到一些手势, 来使得对问题的表述更加具有表现力。这些手势不仅仅只是手指的动作, 也不能理解为手部的动作。手势是一个广泛的概念, 它包含了有含义、有意义的肢体动作。这也就是说, 一个踢腿的动作, 也可以被定义为手势。敲击键盘不是一个手势, 因为手指快速的按下某一个按键既不容易被观察到, 也不能直观地表达其含义。

然而, 手势不只是用在交际表达中, 人们在日常的生活中, 也无处不用到手势。例如, 在拧开饮料瓶盖的时候, 需要用手握紧瓶盖, 另一只抓紧瓶身, 通过手腕、手臂的共同协作, 完成拧下瓶盖的动作。拧下瓶盖的动作, 就是一个手势。我们可以忽略在完成这些动作过程中所使用到、接触到的实际存在的物体, 而把注意力转移到肢体本身。假设物体并不存在的, 让你笔画着空气来完成一个拧瓶盖的动作, 让另外一个人去猜你现在正在做的动作, 是否他一眼就能看出你正在演示拧瓶盖的动作呢?

2 基于Kinect体感设备的篮球系统

2.1 手势的识别

如果“猜”出你所做手势的是一台计算机, 那么就涉及到计算机的手势识别技术。让计算机去完成一个手势的识别、判断是非常困难的。首先, 我们要设法获取人体的相关信息, 这涉及到图形、图像识别技术、深度数据挖掘技术。通过微软研制的Kinect, 其摄像头在收集了人体的视频信息之后, 通过算法的处理, 可以把人的肢体信息凝练为20 个骨骼节点。它可以准确标定人体的这20 个关键点, 并对这20 个点的位置进行实时追踪。在程序及算法设计中, 人的肢体运动, 会使得身体各个骨骼节点的三维坐标值发生改变。通过设置合理的数值, 当骨骼节点的坐标差值超过某个设定值的时候, 触发某一个状态位或一系列状态位的改变, 从而完成一个手势或者一系列手势的判定。例如, 完成一个完整的投篮手势, 需要先抬起手臂。以右手为例, 抬起右手意味着右手腕节点的y坐标值超过了右肩膀节点的y坐标值, 也就是实际空间中的右手高度, 高于右肩膀高度。此时, 应该触发抬手状态位的改变, 告诉系统, 投掷者的手臂已经抬起, 准备进行下一步的判断与计算。

当然, 在手臂放下之后, 要把抬手状态位还原, 告诉系统, 投掷者的手臂已经放下, 不能继续进行投掷算法, 不然系统会出现错误投掷判断。由此, 抬手状态的触发就相当于投掷算法的第一个开关, 整个投篮手势也是由一系列手势构成的。

2.2 运动轨迹的计算

篮球在空间中的运动, 是一个球体的物理运动, 需要物理引擎来提供物理算法, 通常的游戏引擎都会带有物理引擎, 我们使用Unity3D游戏引擎中的物理引擎, 来完成篮球运动轨迹的计算。这样, 我们只需要把篮球被抛出时的方向和速度提供给物理引擎, 就可以完成篮球运动轨迹的计算了。

现实中, 人完成投篮动作, 就是给篮球一个加速度。通过手部用力, 让篮球和手拥有相同的速度。当手部停止加速, 开始减速, 篮球也就不再加速, 并且脱离手部, 不再和手有接触。篮球拥有了初始速度, 就开始抛物运动。这里我们忽略空气阻力的作用。在三维空间中, 需要把加速度及速度分解到相互垂直的三个方向上, 也就是三维坐标系中, 计算三个方向上的加速度, 最终提交给Unity3D的物理引擎, 形成一个和速度进行计算。手部三个方向上的加速度, 可以通过速度计算公式获得。Kinect提供给我们每秒30 帧的骨骼节点三维坐标位置变化, 一个方向上坐标的差值除以时间, 就可以得到此方向上的速度, 进一步就可以得到此方向上的加速度。

2.3 模型的构建

最后, 我们在Unity3D中创建场景, 添加篮球架的模型, 并添加脚本判断篮球是否投进, 进行计分, 并给篮球和篮框添加碰撞器, 当篮球碰触篮框时, 进行碰撞的检测和碰撞结果的计算, 模拟真实的投篮环境, 构成一个完整的投篮系统。

参考文献

[1]沈绪榜, 刘泽响, 王茹.计算机体系结构的统一模型[J].计算机学报, 2007, 30 (05) :731-736.

[2]张茫茫, 傅红.基于实体用户界面与自然用户界面结合的产品设计[J].研究论文, 2013, 31 (28) :99-102.

[3]曹雏清, 李瑞峰, 赵立军.基于深度图像技术的手势识别方法[J].计算机工程, 2012, 38 (08) :16-21.

上一篇:健美操开展下一篇:发挥创造潜能