1.一种基于手势识别的机械臂位姿控制系统,其特征在于:包括依次连接的智能腕带模块、远程客户端模块、蓝牙通信模块、数据处理模块、仿真模块和机械臂执行模块;智能腕带通过蓝牙无线连接PC端,将智能腕带模块采集的肌电信号传递给远程客户端;远程客户端接收到信号后,将信号传输到数据处理模块,在数据处理模块中,对信号进行滤波降噪处理,处理后将手势分类;然后将手势动作的信号发送给仿真模块中的仿人臂模型;将仿人臂的末端位置传递给仿真模块中的机械臂模型;仿真模块中的机械臂模型将角度信号作为指令发送给机械臂执行模块;
使用智能腕带进行信号采集,将采集到的信息进行处理,并且智能腕带通过蓝牙适配器与远程客户端进行无线连接,远程客户端与工作机械臂通过TCP/IP协议连接;
各模块的具体构成是:
智能腕带模块:该模块通过蓝牙模块连接远程客户端,并且该模块是可穿戴的,智能腕带模块为无线智能腕带,其包含九轴惯性测量单元,三轴陀螺仪,三轴加速度计和三轴磁力计,进行陀螺仪信号的采集;智能腕带还有数块大小厚薄不一的生物电传感器单元,每个传感器又分为若干个电极,通过这电极就捕捉用户手臂肌肉运动时产生的肌电信号;
蓝牙通信模块:蓝牙模块一端连接智能腕带模块另一端通过蓝牙的无线传输功能实现与远程客户端的无线连接;蓝牙通信模块通过无线连接实现蓝牙模块与智能腕带的双向通信;蓝牙模块通过接收远程客户端传输过来的数据和指令信号,并将其发送给智能腕带模块;
远程客户端模块:远程客户端模块一端通过蓝牙通信模块连接智能腕带模块,另一端连接数据处理模块;远程客户端模块通过蓝牙通信模块接收智能腕带模块采集到的肌电信号和陀螺仪信号数据,再将肌电信号和陀螺仪信号传输给数据处理模块;
数据处理模块:一端连接远程客户端,另一端连接仿真模块;数据处理模块接收来自远程客户端模块中的肌电信号和陀螺仪信号,将接收到的信号与数据通过卡尔曼滤波、低通滤波和正逆运动学求解计算出腕带使用者手臂的关节角度,同时对于可疑的数据进行剔除,将范围内的关节角度数据传递给仿真模块下的机械臂使其做出与人体相同的动作;
仿真模块:一端与数据处理模块相连接,另一端通过TCP/IP协议与执行机械臂相连接;
模拟实际机械臂的工作执行情况;仿真模块通过网络通信接收数据处理模块的数据,再将接收到的数据传输到仿真模块中的仿真机械臂中,使仿真模块中的仿真机械臂模拟出使用者手臂的动作;再通过TCP/IP协议,向机械臂执行模块发送仿真的数据包;
机械臂执行模块:通过TCP/IP协议与仿真模块相连接,通过接收仿真模块的数据包使实际机械臂完成与仿真机械臂相同的动作。
2.根据权利要求1所述的基于手势识别的机械臂位姿控制系统,其特征在于:所述的基于手势识别的机械臂位姿控制系统的电脑客户端是基于Linux进行开发的,当系统中的数据处理模块接收到来自远程客户端发送过来的陀螺仪信号和肌电信号后,数据处理模块将接收到的信号与数据先通过滤波算法去除信号中的噪声;然后结合正逆运动学求解,将接收到的陀螺仪信号,采用四元数和坐标变换理论计算出腕带使用者手臂的关节角度,同时对于可疑的数据进行剔除,将范围内的关节角度数据优化后传递给仿真模块下的机械臂,使其做出与人体相同的动作。
3.根据权利要求1所述的基于手势识别的机械臂位姿控制系统,其特征在于:数据处理模块利用正逆运动学求解计算出腕带使用者手臂的关节角度的具体方式如下:数据处理模块接收到信号与数据后:
3.1)首先对示教机械臂构建其D-H参数,(即关节1≤i≤6的连杆长度ai、连杆转角αi、连杆偏距di和关节角θi)作为输入量,选择工作机械臂各个关节的关节角θi作为输出量;
3.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旋转所形成的夹角,即采集得到的示教机械臂关节角度;
3.3)以基座坐标系作为T0坐标系, 表示i关节坐标系相对i-1关节坐标系的位置和姿态,则:其中,sθi=sinθi,cθi=cosθi,sαi=sinαi,cαi=cosαi;
3.4)对于六自由度机械臂,获得机械臂末端执行器位姿相对固定参考坐标系的变换矩阵(即机械臂末端位置点坐标的变换矩阵):其中, 表示六自由度机械臂末端执行器位姿相对于基轴参考坐标系的变换矩阵,r11表示变换矩阵 中第一行第一列的参数,px表示x轴的参数。
3.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;
在每个关节角度求出后,接着判断每个关节角度是不是在限定范围内,将各关节角度发送到仿真模块中的仿真机械臂进行仿真;仿真效果调试好之后,将关节角度和手势指令发送给实际机械臂,实现通过人体手势的动作来控制实际机械臂动作。