基于手势识别的机械臂位姿控制系统的制作方法

文档序号:14249011阅读:193来源:国知局
基于手势识别的机械臂位姿控制系统的制作方法
本发明涉及一种基于手势识别的机械臂位姿控制系统,使实际机械臂通过人体手臂及手势的变化而做出与人体手臂以及手势相同的动作。
背景技术
:随着《中国制造2025》的出台,我国制造业正式踏上了以智能制造为重要发展方向的转型升级之路。机器人替代人工生产已经成为未来制造业重要的发展趋势,工业机器人作为“制造业皇冠顶端的明珠”,将大力推动工业自动化、数字化、智能化的早日实现,为智能制造奠定基础。工业机器人示教就是编程者采用各种示教方法事先“告知”机器人所要进行的动作信息和作业信息等。这些信息大致分为三类:机器人位置和姿态信息,轨迹和路径点等的信息;机器人任务动作顺序等的信息;机器人动作、作业时的附加条件等的信息,机器人动作的速度和加速度等信息和作业内容信息等。随着机器人技术的日益成熟以及应用的不断普及,机器人正逐渐融入社会生产、生活的各个方面,并发挥越来越不可替代的作用。在“工业4.0”和“中国制造2025”的背景下,为了适应现代工业快速多变的特点以及满足日益增长的复杂性要求,机器人不仅要能长期稳定地完成重复工作,还要具备智能化、网络化、开放性、人机友好性的特点。作为工业机器人继续发展与创新的一个重要方面,示教技术正在向利于快速示教编程和增强人机协作能力的方向发展。对于在线示教指通常所说的手把手示教,由人直接扳动机器人的手臂对机器人进行示教,如示教盒示教和操作杆示教。在这种示教中,为了示教方便以获取信息的快捷而准确,操作者可以选择在不同的示教系下示教。例如,可以选择关节坐标系,直角坐标系以及工具坐标系或用户坐标系下进行示教。在线示教具有示教过程简单,不需要环境模型;对实际的机器人进行示教时,可以修正机械结构带来的误差等优越性,但也存在技术问题,如机器人的在线示教过程繁琐、效率低;示教的精度完全靠示教者的经验目测决定,对于复杂路径难以取得令人满意的示教效果,对于一些根据外部信息进行实时决策的应用无能为力。为了解决这种问题,工业界提出了一种利用手势并结合传感器技术的手势控制方法。目前关于手势识别的研究很多,但国内的研究和国外的相比,进展较慢。肖立峰、彭金豹提出基于手势识别的机械臂控制方法及系统(肖立峰、彭金豹.基于手势识别的机械臂控制方法及系统[p].北京:cn106272409a,2017-01-04),基于手势识别的机械臂控制方法及系统提出一种通过采集操作者手部运动数据然后映射为机械臂的运动,转化输出机械臂的控制命令,但是识别的手势相比较而言比较少;朱茂娟、王林冰、曾奇等提出一种机器人及其示教通信系统(朱茂娟,王林冰,曾奇等.机器人及其示教通信系统:中国,205620710[p].2016-01-04),实现了示教采集器与控制器之间的数据通信,但是通信方式是有线的,具有空间局限性且缺少保密性。技术实现要素:本发明要克服现有技术的上述缺点,提出一种基于手势识别的机械臂位姿控制系统。首先该系统使用蓝牙无线通信技术,实现了无线控制,连接方便,数据传输高效稳定,而且无线控制可以扩展工作空间;其次该系统采用两个智能腕带,通过它们所采集到的数据得出人臂的姿态和手势从而将其转换成机械臂控制的指令,使用智能腕带使采集到的数据更加稳定,计算结果更加准确,控制机械臂也更加准确;最后该系统利用肌电信号和陀螺仪信号来识别手势,识别的精度更高,效果更好。本发明为解决现有技术问题所采用的技术方案是:一种基于手势识别的机械臂位姿控制系统,其特征在于:包括依次连接的智能腕带模块、远程客户端模块、蓝牙通信模块、数据处理模块、仿真模块和机械臂执行模块;智能腕带通过蓝牙无线连接pc端,将智能腕带模块采集的肌电信号传递给远程客户端;远程客户端接收到信号后,将信号传输到数据处理模块,在数据处理模块中,对信号进行滤波降噪处理,处理后将手势分类;然后将手势动作的信号发送给仿真模块中的仿人臂模型;将仿人臂的末端位置传递给仿真模块中的机械臂模型;仿真模块中的机械臂模型将角度信号作为指令发送给机械臂执行模块;使用智能腕带进行信号采集,将采集到的信息进行处理,并且智能腕带通过蓝牙适配器与远程客户端进行无线连接,远程客户端与工作机械臂通过tcp/ip协议连接;各模块的具体构成是:智能腕带模块:该模块通过蓝牙模块连接远程客户端,并且该模块是可穿戴的,智能腕带模块为无线智能腕带,其包含九轴惯性测量单元,三轴陀螺仪,三轴加速度计和三轴磁力计,进行陀螺仪信号的采集;智能腕带还有8块大小厚薄不一的生物电传感器单元,每个传感器又分为3个电极,通过这24个电极就可以捕捉用户手臂肌肉运动时产生的生物电变化即肌电信号;蓝牙通信模块:蓝牙模块一端连接智能腕带模块另一端通过蓝牙的无线传输功能实现与远程客户端的无线连接;蓝牙通信模块通过无线连接实现蓝牙模块与智能腕带的双向通信;蓝牙模块通过接收远程客户端传输过来的数据和指令信号,并将其发送给智能腕带模块;远程客户端模块:远程客户端模块一端通过蓝牙通信模块连接智能腕带模块,另一端连接数据处理模块;远程客户端模块通过蓝牙通信模块接收智能腕带模块采集到的肌电信号和陀螺仪信号数据,再将肌电信号和陀螺仪信号传输给数据处理模块;数据处理模块:该模块一端连接远程客户端,另一端连接仿真模块;该模块接收来自远程客户端模块中的肌电信号和陀螺仪信号,将接收到的信号与数据通过卡尔曼滤波、低通滤波和正逆运动学求解计算出腕带使用者手臂的关节角度,同时对于可疑的数据进行剔除,将范围内的关节角度数据传递给仿真模块下的机械臂使其做出与人体相同的动作;仿真模块:该模块一端与数据处理模块相连接,另一端通过tcp/ip协议与执行机械臂相连接;模拟实际机械臂的工作执行情况;该模块通过网络通信接收数据处理模块的数据,再将接收到的数据传输到仿真模块中的仿真机械臂中,使仿真模块中的仿真机械臂模拟出使用者手臂的动作;再通过tcp/ip协议,向机械臂执行模块发送仿真的数据包;机械臂执行模块:该模块通过tcp/ip协议与仿真模块相连接,通过接收仿真模块的数据包使实际机械臂完成与仿真机械臂相同的动作;所述的基于手势识别的机械臂位姿控制系统的电脑客户端是基于linux进行开发的,当系统中的数据处理模块接收到来自远程客户端发送过来的陀螺仪信号和肌电信号后,数据处理模块将接收到的信号与数据先通过滤波算法去除信号中的噪声;然后结合正逆运动学求解,将接收到的陀螺仪信号,采用四元数和坐标变换理论计算出腕带使用者手臂的关节角度,同时对于可疑的数据进行剔除,将范围内的关节角度数据优化后传递给仿真模块下的机械臂,使其做出与人体相同的动作;所述的数据处理模块中去除噪声后的位姿控制信号,再利用正逆运动学对其进行求解,所述的正逆运动学求解如下:数据处理模块接收到信号与数据后:1.1)首先对示教机械臂构建其d-h参数,(即关节1≤i≤6的连杆长度ai、连杆转角αi、连杆偏距di和关节角θi)作为输入量,选择工作机械臂各个关节的关节角θi作为输出量;1.2)由于各杆件相对参考坐标系有转动和平移两个动作,因此对每个杆件沿关节轴建立一个关节坐标系,用以下四个参数来描述杆件:(1)连杆长度ai:关节轴i和关节轴i+1之间公垂线的长度;(2)连杆转角αi:作一个与两关节轴之间的公垂线垂直的平面,将关节轴i和关节轴i+1投影到该平面,在平面内轴i按右手法则绕ai转向轴i+1,其转角即为连杆转角;(3)连杆偏距di:公垂线ai-1与关节轴i的交点到公垂线ai与关节轴i+1的交点的有向距离长度;(4)关节角θi:ai-1的延长线与ai之间绕关节轴i旋转所形成的夹角,即采集得到的示教机械臂关节角度;1.3)以基座坐标系作为t0坐标系,设表示i关节坐标系相对i-1关节坐标系的位置和姿态,则:其中,sθi=sinθi,cθi=cosθi,sαi=sinαi,cαi=cosαi;1.4)对于六自由度机械臂,获得机械臂末端执行器位姿相对固定参考坐标系的变换矩阵(即机械臂末端位置点坐标的变换矩阵):其中,表示六自由度机械臂末端执行器位姿相对于基轴参考坐标系的变换矩阵,r11表示变换矩阵中第一行第一列的参数,px表示x轴的参数。1.5)通过两个腕带获取关节角的方法:建立世界坐标系(xg,yg,zg)以及建立人手臂的上臂坐标系(xh,yh,zh),前臂坐标系(xf,yf,zf);r代表旋转矩阵;上标i代表初始位置;下标g、h、f分别代表世界坐标系框架,上臂框架以及前臂框架;相对于第一个智能腕带的坐标系和相对于第二个智能腕带对应的下标的坐标系可以表示为:其中下标“u”表示佩戴在上臂上的第一个myo臂章框架,下标“l”表示穿在下臂上的第二个myo臂章框架;当操作者的手臂做出一个新动作之后,前臂和上臂在世界坐标系的框架下可以用下面的旋转矩阵来描述:上标f代表操作者手臂的一个新动作;通过第一个腕带的陀螺仪,可以得到一个四元数q=[x,y,z,w]t,可由以下方程求得。q=xi+yj+zk+w(3)其中(x,y,z)是标量,表示各轴方向,w是矢量,i,j,k分别为各自参数值。通过上面等式(3)中的四元数,上臂在全局框架中可以表示为其中代表上臂相对于全局的坐标系,通过(5)计算出欧拉角α,β,γ,分别代表肩部的三个角度,α代表偏航角,β代表俯仰角,γ代表滚动角:根据两个智能腕带测到的数据,可以计算出两个肘部关节的角度,afe代表肘部弯曲的角度,aps代表肘部滚动的角度,计算公式如下:afe=arccos(a12r13+a22r23+a32r33)(6)aps=arccos(r11a11+r21a21+r31a33)(7)经过滤波处理以及角度判断之后将角度值α,β,γ,afe,aps发送给仿真模块中的仿人臂,通过计算得出手腕的末端位置p(x,y,z);得到末端位置之后通过逆运动学求解出六自由度机械臂的六个关节角,则可按顺序求解得到:θ1表示第一个关节角度参数,求解方法为由第一个关节角,通过中间运算公式可得第二个和第三个关节角为其中,a2为连杆1的长度,d4为连杆4的偏距,c3是cosθ3的缩写,s3是sinθ3的缩写,k为逆运动学求解时的固定常量。以此类推可以求出第四关节角θ4,并通过c5和s5求出θ5θ4=atan2(-r13s1+r23c1,-r13c1c23-r23s1c23+r33s23)(10)其中,c23=c2c3-s2s3,s23=c2s3+s2c3。r13表示变换矩阵中第一行第三列的参数值。同理可以通过求解c6和s6,求出第六关节角θ6其中,atan2为反正切函数,si=sinθi,ci=cosθi;在每个关节角度求出后,接着判断每个关节角度是不是在限定范围内,将各关节角度发送到仿真模块中的仿真机械臂进行仿真;仿真效果调试好之后,将关节角度和手势指令发送给实际机械臂,实现通过人体手势的动作来控制实际机械臂动作。本发明的优点和积极效果是:本发明设计了pc端软件,使用蓝牙无线通信技术,相较于传统的示教器,蓝牙无线通信可以避免有线的拘束,还可以应用于危险环境中;该系统采用肌电信号和陀螺仪信号实现手势的识别,识别精度更高,识别的手势更多,控制机械臂更准确;并对信号进行滤波处理,能够对信号进一步优化;数据处理模块对数据进行正逆运动学求解使再次提高了手势识别的精度和效率。附图说明图1a-图1c为本发明的平台组成示意图,其中图1a是机械臂位姿控制系统的上位机操作界面,图1b是myo智能腕带,图1c是ur5机器人。图2为本发明的系统示意图。图3为本发明的控制原理框图。具体实施方式以下结合附图对本发明做进一步详述。一种基于手势识别的机械臂位姿控制系统,如图1所示,平台组成主要包括pc端软件1、智能腕带myo2和六自由度机械臂3。pc端软件安装在用户的电脑上,便于读取智能腕带myo的信号以及处理数据,智能腕带与pc端软件,通过蓝牙连接,将无线蓝牙适配器插在电脑上;pc端软件与六自由度机械臂通过局域网无线连接。结合图2和图3,本发明专利的具体实施方式如下:本系统依次包括智能腕带模块、蓝牙通信模块、远程客户端模块、数据处理模块、仿真模块、机械臂执行模块,各模块构成如下:智能腕带模块:该模块通过蓝牙模块连接远程客户端,并且该模块是可穿戴的,智能腕带模块为无线智能腕带,其包含九轴惯性测量单元,三轴陀螺仪,三轴加速度计和三轴磁力计,进行陀螺仪信号的采集;智能腕带还有8块大小厚薄不一的生物电传感器单元,每个传感器又分为3个电极,通过这24个电极就可以捕捉用户手臂肌肉运动时产生的生物电变化即肌电信号。智能腕带捕捉手势的速度非常快,它捕捉的是人体手臂的肌电信号,并且智能腕带不受场地的限制,交互时会更加自然,同时这是可穿戴的,在移动领域智能腕带具有比较大的优势。蓝牙通信模块:蓝牙模块一端连接智能腕带模块另一端通过蓝牙的无线传输功能实现与远程客户端的无线连接;蓝牙通信模块通过无线连接实现蓝牙模块与智能腕带的双向通信;蓝牙模块通过接收远程客户端传输过来的数据和指令信号,并将其发送给智能腕带模块;智能腕带和远程客户端软件通过蓝牙模块无线连接,远程客户端软件通过蓝牙适配器接收信号;通过蓝牙通信模块,智能腕带可以向远程客户端软件发送传感器信号和肌电信号。远程客户端模块:远程客户端模块一端通过蓝牙通信模块连接智能腕带模块,另一端连接数据处理模块;远程客户端模块通过蓝牙通信模块接收智能腕带模块采集到的肌电信号和陀螺仪信号数据,再将肌电信号和陀螺仪信号传输给数据处理模块;数据处理模块:该模块一端连接远程客户端,另一端连接仿真模块;该模块接收来自远程客户端模块中的肌电信号和陀螺仪信号,将接收到的信号与数据通过滤波和正逆运动学求解计算出腕带使用者手臂的关节角度,同时对于可疑的数据进行剔除,将范围内的关节角度数据传递给仿真模块下的机械臂使其做出与人体相同的动作;仿真模块:该模块一端与数据处理模块相连接,另一端通过tcp/ip协议与执行机械臂相连接;模拟实际机械臂的工作执行情况;该模块通过网络通信接收数据处理模块的数据,再将接收到的数据传输到仿真模块中的仿真机械臂,使仿真模块中的仿真机械臂模拟出使用者手臂的动作;再通过tcp/ip协议,向机械臂执行模块发送仿真的数据包;机械臂执行模块:该模块通过tcp/ip协议与仿真模块相连接,通过接收仿真模块的数据包使实际机械臂完成与仿真机械臂相同的动作;用户将智能腕带myo通过蓝牙与pc端软件相连,pc端软件与机械臂通过局域网连接之后,用户即可运行机器人系统。pc端软件接收到来自用户的开启指令之后,进入工作状态;用户佩戴好腕带之后做握拳手势,即复位命令;信号稳定之后,用户便可以做出相应的手势来控制机械臂。智能腕带中的体感传感器(陀螺仪)模块主要由myo智能腕带和usb蓝牙适配器组成,体感传感器模块连接pc端软件之后,执行采集功能,将陀螺仪信号和肌电信号实时传递给pc端软件,pc端软件将收到的数据发送到数据处理模块,经过数据处理之后得到仿真模块中仿人臂的关节角度,通过将关节角度转换为机械臂的末端位置,将末端位置发送给机械臂并保存;在采集过程中,采集到的角度数据会通过蓝牙无线通信同步发送给ros仿真软件,ros软件中的虚拟工作机械臂会跟随操作人员的手势同步运动;虚拟工作臂再通过局域网将信号传递给真实的机械臂,机械臂接收到信号之后也随着操作人员的动作一起运动,同时操作人员手掌可以做出特定的手势向机械臂发送指令,这样就能让机械臂跟随操作人员的手势运动,执行操作指令,可以完成很多人无法进入实际空间的操作。数据处理模块收到末端位置数据包后,结合当前所使用的机械臂型号的结构参数,用逆运动学公式结合当前所使用的机械臂型号的结构参数得到每个采集时刻优化后的运动角度数据包,具体步骤如下:1)首先对示教机械臂构建其d-h参数模型,以ur5机器人为例,由于各杆件相对参考坐标系有转动和平移两个动作,因此对每个杆件沿关节轴建立一个关节坐标系,取第n个采集时刻示教机械臂六个关节的d-h连杆参数,如表2所示:关节i连杆长度ai连杆转角αi连杆偏距di关节角θi100030°2-90°00-30°3036-60°4-90°48-90°590°0060°6-90°0090°由i关节坐标系相对i-1关节坐标系的位置和姿态的表达式为公式(1)所示。其中,且sθi=sinθi,cθi=cosθi,sαi=sinαi,cαi=cosαi。可以求得示教机械臂末端执行器在第n个采集时刻的位姿相对固定参考坐标系的变换矩阵为:2)通过两个腕带获取关节角的方法:建立世界坐标系(xg,yg,zg)以及建立人手臂的上臂坐标系(xh,yh,zh),前臂坐标系(xf,yf,zf);r代表旋转矩阵;上标i代表初始位置;下标g、h、f分别代表世界坐标系框架,上臂框架以及前臂框架;相对于第一个智能腕带的坐标系和相对于第二个智能腕带对应的下标的坐标系可以表示为:其中下标“u”表示佩戴在上臂上的第一个myo臂章框架,下标“l”表示穿在下臂上的第二个myo臂章框架;当操作者的手臂做出一个新动作之后,前臂和上臂在世界坐标系的框架下可以用下面的旋转矩阵来描述:上标f代表操作者手臂的一个新动作;通过第一个腕带的陀螺仪,可以得到一个四元数q=[x,y,z,w]t,其中(x,y,z)是标量,w是矢量,可得q的求解如公式(2)所示通过上面等式中的四元数,上臂在全局框架中可以由公式(4)和公式(5)求得。通过这些,计算出欧拉角α,β,γ,分别代表肩部的三个角度,α代表偏航角,β代表俯仰角,γ代表滚动角:根据两个智能腕带测到的数据,可以计算出两个肘部关节的角度,afe代表肘部弯曲的角度,aps代表肘部滚动的角度,计算方法如公式(6)和公式(7)所示。经过滤波处理以及角度判断之后将角度值α,β,γ,afe,aps发送给仿真模块中的仿人臂,通过计算得出手腕的末端位置p(x,y,z);得到末端位置之后通过逆运动学求解出六自由度机械臂的六个关节角,则可按顺序求解得到,其求解方法依次为公式(8),公式(9),公式(10),公式(11)和公式(12),最终得到θ1等六个关节角度数值。要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的类似的其它实施方式,同样属于本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1