作品亮点:
通过Kinect获取人体姿态信息,分析处理并在机器人上再现人体动作,从而实现机器人对人体的动作的实时跟踪与模仿。这种新的自然人机交互模式使得机器人可以代替人在诸多危险场合工作,并可应用于军事、救灾、娱乐等领域。
作品说明:
作品功能介绍:
本作品基于Kinect SDK在Windows操作系统下获取人体的骨骼图像,经过滤波降噪处理得到稳定的人体骨骼数据,并将骨骼追踪算法应用于人体姿态动态跟踪,经分析、处理,控制人形机器人实时模仿人体动作,实现一种实时的智能控制模式,可应用于在线动作示教,或代替人在不良的环境下作业。
系统实现方法:本系统由三部分构成,作为人体动作信息采集端的Kinect体感器,能够为上位机提供每秒30帧的原始骨骼数据流,骨骼数据流由人体20个关节在参考坐标系内的三维坐标组成;实现骨骼数据解析、动作跟踪算法的计算机端,算法首先对原始骨骼数据滤波,提取出稳定的人体骨骼图像,并在参考坐标系内计算每个关节的角度能够为机器人实时的提供手臂关节的位置信息;机器人端,由机器人骨架、舵机、舵机控制板以及电源系统组成,为动作模仿提供了保障。
系统逻辑结构如下图所示,三部分之间宏观上呈现开环控制,使得系统总体架构简单。而在动作跟踪算法中引入滤波,同Kinect回传的原始骨骼数据构成闭环反馈,具有一定的自动纠偏能力。
具体实现流程如下:
1. Kinect设备获取人体姿态的原始骨骼图像,即在给定三维直角坐标系中每个关节点的x,y,z坐标,并将数据传送至上位机。
2. 计算机通过滤波得到稳定的骨骼数据,将由骨骼点的三维坐标进行向量运算,计算出骨骼之间,即关节的转动角,并将角度按照一定格式传至机器人身上的控制器
3. 控制器处理并译码,从而控制舵机工作,使得各个舵机运动至指定角度,进而实现了机器人实时模仿人体运动。
例如,可以将人的上肢运动分解为肘关节运动以及肩关节运动,肘关节运动是由小臂绕大臂转动形成的,只有一个自由度,计算大臂与小臂夹角就可以得到舵机需要转过的角度。而对于肩关节这样有三个自由度的关节,需要将肩关节运动分解为绕三维坐标的三个轴的转动,分别计算转动角,并用舵机实现,这相对单自由度关节略有复杂。
软件部分为系统核心所在。程序结构如下:通过消息响应来实现两个循环,一个是从骨骼图像计算关节转动角的主程序循环,另一个是kinect采集图像处理循环。当且仅当kinect骨骼图像就绪才能触发主程序运行,同时在主程序运行过程中保留并暂停kinect向主机的骨骼数据流。
下图为软件部分代码,程序中定义了一个定时器函数,用以控制机器人动作响应的实时性,kinectSensor_SkeletonFrameReady与ProcessPosture分别负责滤波和空间向量转化角度的实现。程序采用消息响应机制,在初始化结束后等待Kinect回传骨骼数据,一旦有骨骼数据输入即进行滤波,之后将稳定的数据交给ProcessPosture函数,把骨骼的三维坐标转换成对应关节的转动角,由于数据帧率达30帧每秒,因此一系列静态的角度转换算法可以实现动作的动态跟踪。
作品中也涉及到骨骼图像滤波,空间向量运算,无线传输数据,电源系统设计等一系列技术。
这种新的自然人机交互模式使得该机器人可以代替人在诸多危险场合工作,并可应用于军事、救灾、娱乐等领域。
决赛准备:
最新改进之处:之前在进行体感动作时,双腿是处于松弛状态,所以在上肢的体感动作当中,当肢体摆幅较大时,下肢由于惯性会站立不稳。在最新的设计当中,我们为双腿舵机上电,使其在体感模仿过程中能够稳定战立,并且我们也为其设计了一套行走动作,下面是我们的视频成果展示:
体感:
行走:
作品创新点:
1、通过图像处理的方式实现人体动作跟踪,免除了传统方式中人员携带多种传感器的不便。
2、由静态的动作识别构成序列,通过帧率保证机器人动作响应的实时性。
3、打开人机交互新格局。
4、发展前景宽广。
前景展望:
在设计之初,我们的灵感就来自于一部科幻电影,电影中就讲述了机器人与人类共同生活的故事,但是机器并未给人类带来更具亲和力的体验。所以,我们希望能够通过体感动作模仿从而打开人机交互的新格局,无论是在学习成本以及用户感受方面,都会有更佳的感受。
在得到评委老师们中肯的意见后,我们也将在从服务行业以及军事方面进行更具针对性的研究。
服务行业方面,我们希望它能够应用在示教方面,紧接着我们将对机器人的外观进行改良,使其能够出现在商场以及科技馆之类的场所,达到人机互动的效果,更远的未来我们希望我们的机器人能够服务于社会当中的弱势群体,比如留守儿童,让他们从另一面感受到来自远方亲人的关爱。
在军事方面,我们希望这款机器人能够应用到拆弹等高危行业当中,由于其学习成本低,不需要对机械操控有过多的了解,只需要机器人模仿人们的动作完成任务即可。
设计轶事:
我们有一次在实验室进行体感识别的实验,但是无论如何调试,甚至将所有的舵机都检查了一边都没有发现问题,最后无意间听到旁边那组同学在做红外辐射试验,正好在Kinect的接受范围之内,所以这个问题就被迎刃而解了,处处留心皆学问啊~
还有一次,我们在调试机器人腿部动作的时候,在给舵机上电的一瞬间,由于舵机本身的参数预设,机器人的一条腿冲着我们队员的脸就踢了上来,差点因此挂彩,我们当时都笑称机器人已经学会踢球了。
作者简介:
范越:西安电子科技大学智能科学与技术专业2013级本科生,曾多次参加课外科技竞赛,分别获得美国大学生数学建模竞赛二等奖,西电星火杯一等奖,“北斗杯”全国青少年科技创新大赛一等奖。曾获批2014年国家级大学生创新创业训练计划项目。现参加第十四届“挑战杯”竞赛。
王珂,西安电子科技大学电子工程学院2011级,爱好各种户外运动,学习过程中对于机器人的设计与创作有着浓厚的兴趣,同时也自学了一些机器人相关的知识,很高兴能和队友们一起设计出这款体感机器人,希望能在比赛中取得好成绩!
张浩轩:西安电子科技大学电磁场专业2012级本科生,学习成绩优异,多次获得奖学金,理论知识扎实,动手能力强,掌握c++,MATLAB,VHDL等编程语言。爱好无线电,熟悉ZigBee模块的运用。参加过数学建模竞赛。
宋应龙,西安电子科技大学电磁场专业2012级本科生,学习认真刻苦在校连续三次获得学校奖学金和一次国家励志奖学金,并在京信公司举办的“京信杯”电子设计大赛中获奖,熟悉zigbee的基本应用,对智能机器的实现和无线通信技术颇感兴趣。积极将所学知识运用到实践中。