基于Kinect的机器人人机交互系统及方法与制作流程
![基于Kinect的机器人人机交互系统及方法与制作流程](https://img.360docs.net/img4f/19acn53587rk7pxk4xwqac6mupml1r72-f1.webp)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图片简介:
本技术涉及一种基于Kinect的机器人人机交互系统及方法,系统包括Kinect信息采集模块、人机交互模块、姿态控制模块、语音控制模块、Kinect三维传感器、机器人控制箱和机器人;首先通过Kinect信息采集模块,将图像数据流和音频数据流传递给人机交互模块,通过人机交互模块的语音/文字提示引导用户选择不同的控制模式,进而调用不同的控制模块,实现对机器人的操控。本技术综合体感、声音、手势多种交互方式,可实现对机器人的运动控制,代替人工在非结构化场景中进行作业,提高机器人的作业能力和智能水平。
技术要求
1.一种基于Kinect的机器人人机交互系统,其特征在于,包括Kinect信息采集模块、人机交互模块、姿态控制模块、语音控制模块、Kinect三维传感器、机器人控制箱和机器人;
Kinect信息采集模块利用Kinect三维传感器,获取图像数据流及语音数据流;
通过人机交互模块选择不同的控制模式,调用姿态控制模块或语音控制模块;
姿态控制模块基于图像数据,根据人体姿态控制机器人机械臂运动;
语音控制模块基于语音数据,实现语音指令的识别,控制机器人进行相应动作。
2.根据权利要求1所述的基于Kinect的机器人人机交互系统,其特征在于,人机交互模块提示用户选择控制模式,包括语音提示和文字提示。
3.一种基于权利要求1所述基于Kinect的机器人人机交互系统的人机交互方法,其特征在于,包括以下步骤:
利用Kinect三维传感器,获取图像数据流及语音数据流;
基于图像数据,根据人体姿态控制机器人机械臂运动;
基于语音数据处理结果,实现语音指令的识别,控制机器人进行相应动作;
通过人机交互模块的语音/文字提示选择不同的控制模式,调用不同的控制模块,实现人机交互。
4.根据权利要求3所述的基于Kinect的机器人人机交互方法,其特征在于,利用Kinect三维传感器,获取多种图像数据信息流及语音信息流,具体为:
步骤1-1、利用Kinect三维传感器的深度摄像头直接获取深度图像,利用Kinect三维传感器的麦克风阵列对语音进行捕获;
步骤1-2、将图像数据流和音频数据流放入缓冲区。
5.根据权利要求3所述的基于Kinect的机器人人机交互方法,其特征在于,基于图像数据,根据人体姿态控制机器人机械臂运动,具体为:
步骤2-1、对图像数据流进行处理,通过Kinect深度图像处理方法获取人体索引信息,提取操作者手势状态信息和关节点信息;
步骤2-2、建立人体姿态——机器人映射关系模型;
步骤2-3、建立关节角度值的滤波算法,使用滤波算法得到的角度代替关节角度;
步骤2-4、将步骤2-3得到的目标关节角度通过TCP/IP协议发送给机器人控制箱,同时机器人控制箱返回机器人的机器人关节状态信息、电气参数信息,所述机器人关节状态信息包括机器人各关节的实时角度、角速度,电气参数信息包括机器人各关节的实时电流、温度;
步骤2-5、机器人控制箱解算收到的控制指令,实现机器人的跟随运动。
6.根据权利要求3所述的基于Kinect的机器人人机交互方法,其特征在于,步骤2-2中建立人体姿态——机器人映射关系模型,具体为:
基于UR机器人建立映射关系模型,其中UR机器人的关节包括机座、肩膀、手肘、手腕1、手腕2和手腕3;
选取步骤2-1提取的关节点信息中的左肩、右肩、右肘、右腕、右指尖以及左右手的手势;
通过所选的5个关节点求解得到人体的腰关节转动角度、右肩关节转动角度、右肘关节转动角度、右腕关节转动角度1、右腕关节转动角度2;
表1为映射关系;
表1:具体映射关系
设选取关节由左肩关节J1(x1,y1,z1)、右肩关节J2(x2,y2,z2)、右肘关节J3(x3,y3,z3)、右腕关节J4(x4,y4,z4)、右指尖关节J5(x5,y5,z5)表示;(1)腰关节转动角度(θ1),具体如下:
腰关节转动角度(θ1)通过左肩关节J1(x1,y1,z1)和右肩关节J2(x2,y2,z2)的坐标关系求得;将两关节点所成的直线J1J2投影至xOz平面得到直线l1,得到l1与x轴的夹角θ1,θ1即为腰关节转动角度:
其中x2≠x1 (1)
(2)右肩关节转动角度(θ2),具体如下:
右肩关节转动角度(θ2)通过右肩关节J2(x2,y2,z2)和右肘关节J3(x3,y3,z3)的坐标关系求得;将直线J2J3投影至xOy平面得到直线l2,直线l2的斜率为k2,l2与x轴的夹角θ2即为肩关节转动角度:
其中x3≠x2 (2)
(3)右肘关节转动角度(θ3),具体如下:
求解右肘关节转动角度(θ3),首先将直线J3J4投影至xOy平面得到直线l3,直线l3的斜率为k3,直线l3与直线l2的夹角θ3即为肘关节转动角度:
(4)右腕关节转动角度1、2(θ4,θ5),具体如下:
求解右腕关节转动角度1、2(θ4,θ5),直线J3J4与直线J4J5的夹角α在xOy平面的投影即为θ4,夹角α在xOz平面的投影即为θ5;
θ4的求解在xOy平面中,直线J3J4在xOy平面中的投影为l3,直线l3的斜率为k3,直线J4J5在xOy平面中的投影为l4,直线l4的斜率为k4,直线l4与直线l3的夹角θ4即为腕关节转动角度1;
θ5的求解在xOz平面中,直线J3J4在xOz平面中的投影为l'3,直线l'3的斜率为k'3,直线J4J5在xOz平面中的投影为l'4,直线l'4的斜率为k'4,直线l'4与直线l'3的夹角θ5即为腕关节转动角度2:
(5)手势信息
基于右手手势信息控制末端执行器,右手张开控制末端手抓张开,右手闭合控制末端手抓闭合;左手手势信息系统运行/停止,左手张开控制系统运行,左手闭合控制系统暂停运行。
7.根据权利要求6所述的基于Kinect的机器人人机交互方法,其特征在于,步骤2-3,建立关节角度值的滤波算法,使用滤波算法得到角度代替步骤2-2中得到的关节角度;具体包括以下步骤:
给步骤2-2中得到的关节角度建立一个固定长度的关节角度队列;在队列中把当前时刻的关节角度值与前一时刻的值相减;如果差值小于设定的阈值,则该时刻的关节角度值进入队列尾,同时队列头的数据移出队列;否则,该时刻的关节角度值用上一时刻的值代替,而后进入队列尾,队列头的数据同时移出队列;
队列中的关节角度按进入队列时刻的先后分配权重,先进入队列的角度值权重小,后进入队列的角度权重大,根据权重求出该关节的角度平均值Y:
其中,Xn是当前时刻的角度值,P1是Xn的权重,Xn-1是前一时刻的角度值,P2是Xn-1的权重,Xn-2是前两个时刻的角度值,P3是Xn-2的权重,Xn-3是前三个时刻的角度值,P4是Xn-3的权重。
8.根据权利要求7所述的基于Kinect的机器人人机交互方法,其特征在于,基于语音数据处理结果,实现语音指令的识别,控制机器人进行相应动作,具体为:
步骤3-1、使用Kinect for Windows SDK中的Kinect Audio Source对象从Kinect的麦克风阵列中提取通过降噪、自动增益控制、回声抑制方式处理的音频数据流,然后设定一个存有控制命令对象,该对象由控制命令的语句构成,通过在对象中查找的结果识别出用户的命令;
步骤3-2、对步骤3-1中的控制命令语句设置对应的机械臂控制指令和对应的人机交互操作指令;
步骤3-3、若步骤3-1中解算出的命令与控制命令匹配成功则将对应的操作指令发送给控制程序并实现相应功能;若未匹配成功则结束本次模块的运行。
9.根据权利要求3所述的基于Kinect的机器人人机交互方法,其特征在于,通过人机交互模块的语音/文字提示选择不同的控制模式,调用不同的控制模块,实现人机交互,具体为:
步骤4-1、设计整体的人机交互系统界面,包括姿态/语音模式选择、语音/文字提示、机器人实时关节姿态显示、Kinect人体实时关节姿态显示、机器人实时电气参数监控界面;
步骤4-2、通过调用语音控制模块,识别用户的模式控制需求并进入相应模式进行机器人控制,同时分别在三个窗口可视化机器人关节状态信息、电气参数信息以及人体关节点信息。
技术说明书
基于Kinect的机器人人机交互系统及方法
技术领域