kinect体感控制机器人
2017 年 4 月摘 要本课题使用Kinect深度视觉传感器进行图像采集工作,通过上位机程序进行数据处理并结合对应机器人控制指令,实现人类肢体对16路双足人形机器人的实时动作控制,使机器人更加灵活高效。该设备由PC端上位机和从属单片机两部分组成,上位机程序用于处理采集人类肢体动作位移信息,然后进行图像数据化处理,识别人类肢体动作空间位移信息。主机控制系统由PC端的上位机、Kinect深度视觉传感器和无线蓝牙传输模块组成。Kinect通过深度视觉系统采集集人体动作信息,然后PC端上位机程序进行图像数据处理,识别人类肢体动作信息,负责将其转化为机器人动作指令数据后的人类肢体动作信息无线传输给从属单片机控制系统。
目 录
一、引言 1
(一)开发背景 1
(二)选题意义 1
(三)设计目标 1
(四)开发软件 1
二、系统分析与设计 2
(一)系统功能需求 2
(二)系统分析图 3
(三)空间向量法 4
(四)界面设计 6
(五)开发及运行环境 8
三、程序设计 8
(一)基本设计和处理流程 8
(二)初始化 9
(三)主体功能实现 11
五、系统测试 18
(一)测试环境 18
(二)测试过程 18
六、总结 19
参考文献 20
致谢 21
一、引言
(一)开发背景
本课题设计了一个区别于传统的机器人控制的全新系统,可以通过人类的肢体行为控制机器人。在传统机器人控制方式中存在着诸多问题,例如控制时效延迟高,动作指令死板不灵活,特定情境限制等。本课题旨在解决时效性,灵活性,提高机器人系统的工作效率,控制系统由两部分组成:PC端上位机和下属从机单片机,通过Kinect深度视觉传感器采集人类肢体运动信息数据,在上位机程序中进行图像信息处理来相对应应的人类肢体动作的机器人动作指令,然后通过蓝牙传输单元向机器人发送相对应人类肢体动作的控制指令,控制机器人完成人类肢体运动的实时模仿。
(二)选题意义
随着信
*好棒文|www.hbsrm.com +Q: ^3^5`1^9`1^6^0`7^2#
息时代的发展,计算机行业发展越来越快,不断升级的硬件设施,也对我们提供了更强大的用体验,人机交互的未来究竟是什么样子,也许是抛弃更过繁琐的操作,变得更加任性化和简洁。
目前,主要的人机交互方式依然停留于传统繁杂的键盘指令、鼠标操作和触摸屏来实现,但这些都不是最自然最高效的人机交互方式,在未来会逐步被更为人性化的视觉型和语音控制等人机交互方式所代替。而Kinect的出现,在一定程度上让这种新的交互方式向前推进了一大步。
(三)设计目标
本课题通过对功能需求、可行性进行详细分析,确定了该程序构成。对项目总体结构进行设计,根据每个模块的流程图,对每个功能模块相应的功能进行优化设计,使程序的各个功能模块化。
基本做到实时的人体控制功能。
(四)开发软件
1. Visual Studio 2015
Visual Studio 2015 是Microsoft 公司于2014年11月推出的一套基于组件的软件开发工具和其他技术,可用于构建功能强大、性能出众的应用程序。上述平台可帮助开发人员打造跨平台的应用程序,从Windows到Linux、甚至iOS和Android。
2. Kinect技术
Kinect是微软在2009年的E3展会上,正式发布的游戏应用体感外围设备。 Kinect完全颠覆了传统游戏模式的单一键盘鼠标操作,采用全新的人机交互的概念,使用户拥有更好的游戏体验,更加彻底地展现出体感游戏的独特魅力。
Kinect是一种基于3D深度视觉的体感摄像机,被引入实时动态捕获,图像识别,麦克风输入,语音识别,社交互动等功能。
Kinect不需要使用任何额外外部控制设备,它仅仅需要在机体摄像头前2m~4m的扇形范围内捕捉三维空间中玩家的动作。微软表示,这将使系统更容易操作,简单易操作的低门槛能使更多的用户参与到身临其境的交互体验中。
3. C#技术
C#是可用来创建运行在.NET CLR上的应用程序的语言之一,它从C和C++语言演化而来,是微软公司专门为使用.NET平台而创建的。使用C#开发应用程序较为简单,因为其编程语法简单。C#是一种强大的语言,在C++中能完成的任务几乎都能用C#完成。
二、系统分析与设计
(一)系统功能需求
Kinect体感机器人控制系统是基于Kinect在Visual Studio 2015开发平台的C#程序。目的是开发全新的人机交互体验,创新人与机器新的控制模式,主要功能如下:
主机系统由PC机、Kinect体感传感器、蓝牙无线传输模块组成。上位机程序用于人类肢体动作信息采集,然后进行图像数据处理,识别出人类肢体动作信息,并负责把人类肢体动作信息经过数据转化后形成机器人控制指令通过无线蓝牙模块传送给从属单片机。
从属单片机则是一个动作执行机器人的控制核心,它的控制系统由SR16CON单片机、无线蓝牙传输模块、伺服直流电机驱动模块等功能模块组成。它的肢体机械结构主要由多自由度的手臂和腿部构成,肢体移动主要动力来源于各个仿生关节点的直流电伺服舵机。从属单片机对指令信息进行实时处理,控制机器人手臂各个关节点伺服舵机旋转至相对应肢体的角度,从而完成相应的人类肢体实时动作。
(a) 主机结构图 (b) 从机结构图
图1 系统总体结构图
(二)系统分析图
1、整体功能列表:主要就是五个程序功能之间的联系与各自的功能的实现目标,如表格1所示:
表1整体功能列表
功能模块
功能描述
Kinect进行深度图像采集
在Visual Studio 平台上使用OpenNI程序库作为Kinect的驱动程序,完成深度图像采集工作。
人体骨骼识别
通过OpenNI提供的骨骼算法库,识别人体骨骼节点并提取空间坐标。
关节角度计算
通过空间向量法计算出机器人相关关节的角度,并对人体动作姿态进行识别
机器人动作模仿
机器人手臂部分实现人体手臂动作模仿
蓝牙通讯
通过蓝牙模块进行PC与单片机数据通信
整体技术指标:具体功能的实现目标与技术要求,如表2所示:
表2整体技术指标
技术指标
评价标准
机器人动作标准
机器人模仿人体动作的相似程度。
机器人动作灵活性
机器人能够完成动作的复杂程度以及模仿人体时动作是否受限。
机器人动作灵活性
机器人所能提供的动作是否能解决日常生活中的实际问题。
机器人稳定性
机器人整体稳定性,在模仿人体动作时机器人的抖动程度。
目 录
一、引言 1
(一)开发背景 1
(二)选题意义 1
(三)设计目标 1
(四)开发软件 1
二、系统分析与设计 2
(一)系统功能需求 2
(二)系统分析图 3
(三)空间向量法 4
(四)界面设计 6
(五)开发及运行环境 8
三、程序设计 8
(一)基本设计和处理流程 8
(二)初始化 9
(三)主体功能实现 11
五、系统测试 18
(一)测试环境 18
(二)测试过程 18
六、总结 19
参考文献 20
致谢 21
一、引言
(一)开发背景
本课题设计了一个区别于传统的机器人控制的全新系统,可以通过人类的肢体行为控制机器人。在传统机器人控制方式中存在着诸多问题,例如控制时效延迟高,动作指令死板不灵活,特定情境限制等。本课题旨在解决时效性,灵活性,提高机器人系统的工作效率,控制系统由两部分组成:PC端上位机和下属从机单片机,通过Kinect深度视觉传感器采集人类肢体运动信息数据,在上位机程序中进行图像信息处理来相对应应的人类肢体动作的机器人动作指令,然后通过蓝牙传输单元向机器人发送相对应人类肢体动作的控制指令,控制机器人完成人类肢体运动的实时模仿。
(二)选题意义
随着信
*好棒文|www.hbsrm.com +Q: ^3^5`1^9`1^6^0`7^2#
息时代的发展,计算机行业发展越来越快,不断升级的硬件设施,也对我们提供了更强大的用体验,人机交互的未来究竟是什么样子,也许是抛弃更过繁琐的操作,变得更加任性化和简洁。
目前,主要的人机交互方式依然停留于传统繁杂的键盘指令、鼠标操作和触摸屏来实现,但这些都不是最自然最高效的人机交互方式,在未来会逐步被更为人性化的视觉型和语音控制等人机交互方式所代替。而Kinect的出现,在一定程度上让这种新的交互方式向前推进了一大步。
(三)设计目标
本课题通过对功能需求、可行性进行详细分析,确定了该程序构成。对项目总体结构进行设计,根据每个模块的流程图,对每个功能模块相应的功能进行优化设计,使程序的各个功能模块化。
基本做到实时的人体控制功能。
(四)开发软件
1. Visual Studio 2015
Visual Studio 2015 是Microsoft 公司于2014年11月推出的一套基于组件的软件开发工具和其他技术,可用于构建功能强大、性能出众的应用程序。上述平台可帮助开发人员打造跨平台的应用程序,从Windows到Linux、甚至iOS和Android。
2. Kinect技术
Kinect是微软在2009年的E3展会上,正式发布的游戏应用体感外围设备。 Kinect完全颠覆了传统游戏模式的单一键盘鼠标操作,采用全新的人机交互的概念,使用户拥有更好的游戏体验,更加彻底地展现出体感游戏的独特魅力。
Kinect是一种基于3D深度视觉的体感摄像机,被引入实时动态捕获,图像识别,麦克风输入,语音识别,社交互动等功能。
Kinect不需要使用任何额外外部控制设备,它仅仅需要在机体摄像头前2m~4m的扇形范围内捕捉三维空间中玩家的动作。微软表示,这将使系统更容易操作,简单易操作的低门槛能使更多的用户参与到身临其境的交互体验中。
3. C#技术
C#是可用来创建运行在.NET CLR上的应用程序的语言之一,它从C和C++语言演化而来,是微软公司专门为使用.NET平台而创建的。使用C#开发应用程序较为简单,因为其编程语法简单。C#是一种强大的语言,在C++中能完成的任务几乎都能用C#完成。
二、系统分析与设计
(一)系统功能需求
Kinect体感机器人控制系统是基于Kinect在Visual Studio 2015开发平台的C#程序。目的是开发全新的人机交互体验,创新人与机器新的控制模式,主要功能如下:
主机系统由PC机、Kinect体感传感器、蓝牙无线传输模块组成。上位机程序用于人类肢体动作信息采集,然后进行图像数据处理,识别出人类肢体动作信息,并负责把人类肢体动作信息经过数据转化后形成机器人控制指令通过无线蓝牙模块传送给从属单片机。
从属单片机则是一个动作执行机器人的控制核心,它的控制系统由SR16CON单片机、无线蓝牙传输模块、伺服直流电机驱动模块等功能模块组成。它的肢体机械结构主要由多自由度的手臂和腿部构成,肢体移动主要动力来源于各个仿生关节点的直流电伺服舵机。从属单片机对指令信息进行实时处理,控制机器人手臂各个关节点伺服舵机旋转至相对应肢体的角度,从而完成相应的人类肢体实时动作。
(a) 主机结构图 (b) 从机结构图
图1 系统总体结构图
(二)系统分析图
1、整体功能列表:主要就是五个程序功能之间的联系与各自的功能的实现目标,如表格1所示:
表1整体功能列表
功能模块
功能描述
Kinect进行深度图像采集
在Visual Studio 平台上使用OpenNI程序库作为Kinect的驱动程序,完成深度图像采集工作。
人体骨骼识别
通过OpenNI提供的骨骼算法库,识别人体骨骼节点并提取空间坐标。
关节角度计算
通过空间向量法计算出机器人相关关节的角度,并对人体动作姿态进行识别
机器人动作模仿
机器人手臂部分实现人体手臂动作模仿
蓝牙通讯
通过蓝牙模块进行PC与单片机数据通信
整体技术指标:具体功能的实现目标与技术要求,如表2所示:
表2整体技术指标
技术指标
评价标准
机器人动作标准
机器人模仿人体动作的相似程度。
机器人动作灵活性
机器人能够完成动作的复杂程度以及模仿人体时动作是否受限。
机器人动作灵活性
机器人所能提供的动作是否能解决日常生活中的实际问题。
机器人稳定性
机器人整体稳定性,在模仿人体动作时机器人的抖动程度。
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/wljs/534.html