1.一种基于手势识别的机械臂位姿控制方法,其特征在于:使用两个智能腕带进行信号采集,采集的信号主要是两个智能腕带中的陀螺仪信号;然后通过对信号的处理将信号转换为人臂的关节角度;智能腕带的信号通过无线蓝牙传递给远程客户端;远程客户端中的数据处理模块将得到的信号先通过提出的机械臂位姿控制方法,求出各个关节角的角度信息,再通过正运动学求解得到仿人臂的末端位置,进一步优化之后,再通过逆运动学求解出机械臂的各个关节角度;
具体步骤如下:
1)首先是通过两个智能腕带获取关节角度,建立世界坐标系(xG,yG,zG)以及建立人臂的上臂坐标系(xH,yH,zH),前臂坐标系(xF,yF,zF);R代表旋转矩阵;上标i代表初始位置;下标G、H、F分别代表世界坐标系框架、上臂框架以及前臂框架;在初始位置上臂相对于第一个智能腕带的坐标系的旋转矩阵和前臂相对于第二个智能腕带的坐标系的旋转矩阵可以表示为:其中下标“U”表示佩戴在上臂上的第一个智能腕带臂章框架,下标“L”表示戴在前臂上的第二个智能腕带臂章框架;当人臂做出一个新动作之后,上臂和前臂在世界坐标系的框架下可以用下面的旋转矩阵来描述:上标f代表人臂的一个新动作;
T
2)通过第一个智能腕带的陀螺仪,可以得到一个四元数q=[x,y,z,w] ,其中(x,y,z)是标量,w是矢量;
q=xi+yj+zk+w (1)
其中(x,y,z)是标量,表示笛卡尔坐标方向,w是矢量,i,j,k分别为各坐标的参数值;
其中 代表上臂相对于世界坐标系的旋转矩阵,其中,r11表示旋转矩阵 的第一行第一列的参数,Atan2为反正切函数;
通过(3)计算出欧拉角α,β,γ,分别代表肩部的三个角度,α代表偏航角,β代表俯仰角,γ代表滚动角:
3)根据两个智能腕带采集到的信号,可以计算出两个肘部关节的角度,Afe代表肘部弯曲的角度,Aps代表肘部滚动的角度,计算公式如下:Afe=arccos(a12r13+a22r23+a32r33) (4)Aps=arccos(r11a11+r21a21+r31a33) (5)
4)肌电信号EMG的大小由IEMG信号的平均值AIEMG表示:其中IEMGl(l=1,2,...,8)是第l个肌电信号传感器的肌电数据;所以平均值为:腕关节的角度则是假设与肌电信号EMG呈近似线性关系,腕关节角度 计算如下:
5)经过滤波处理以及角度判断之后将角度值α,β,γ,Afe,Aps, 发送给仿真模块中的仿人臂,通过正运动学的计算得出仿人臂的末端位置p(x,y,z)。
2.根据权利要求1所述的基于手势识别的机械臂位姿控制方法,其特征在于:通过两个智能腕带的陀螺仪信号通过正运动学得到的仿人臂的末端位置,其中所述的正运动学求解的算法如下:
2.1)首先对机械臂构建其D-H参数,即将关节1≤i≤6的连杆长度ai、连杆转角αi、连杆偏距di和关节角度θi作为输入量,选择机械臂各个关节的关节角度θi作为输出量;
2.2)由于各连杆相对参考坐标系有转动和平移两个动作,因此对每个连杆沿关节轴建立一个关节坐标系,用以下四个参数来描述连杆:(S1)连杆长度ai:关节轴i和关节轴i+1之间公垂线的长度;
(S2)连杆转角αi:作一个与两关节轴之间的公垂线垂直的平面,将关节轴i和关节轴i+1投影到该平面,在平面内关节轴i按右手法则绕ai转向关节轴i+1,其转角即为连杆转角;
(S3)连杆偏距di:公垂线ai-1与关节轴i的交点到公垂线ai与关节轴i+1的交点的有向距离长度;
(S4)关节角度θi:ai-1的延长线与ai之间绕关节轴i旋转所形成的夹角,即采集得到的机械臂关节角度;
2.3)以基座坐标系作为T0坐标系,设 表示i关节坐标系相对i-1关节坐标系的位置和姿态,则:其中,sθi=sinθi,cθi=cosθi,sαi=sinαi,cαi=cosαi;
2.4)对于六自由度机械臂,获得机械臂末端执行器位姿相对基座坐标系的变换矩阵,即机械臂末端位置点坐标的变换矩阵:其中, 表示六自由度机械臂末端执行器位姿相对于基座坐标系的变换矩阵,r11表示变换矩阵 中第一行第一列的参数,px表示x轴的参数。
3.根据权利要求2所述的基于手势识别的机械臂位姿控制方法,其特征在于:利用两个智能腕带获取到人臂的各个关节的角度,再通过正运动学获得仿人臂的末端位置,然后再通过逆运动学求解出机械臂的六个关节角度,具体的逆运动学的求解方法如下所示:θ1表示第一个关节角度参数,求解方法为
由第一个关节角度,通过中间运算公式可得第二个关节角度和第三个关节角度为其中,a2为连杆1的长度,d4为连杆4的偏距,c3是cosθ3的缩写,s3是sinθ3的缩写,K为逆运动学求解时的固定常量;
以此类推可以求出第四关节角度θ4,并通过c5和s5求出θ5
θ4=Atan2(-r13s1+r23c1,-r13c1c23-r23s1c23+r33s23) (13)其中,c23=c2c3-s2s3,s23=c2s3+s2c3,r13表示变换矩阵 中第一行第三列的参数值;
同理可以通过求解c6和s6,求出θ6角度:
其中,Atan2为反正切函数,si=sinθi,ci=cosθi;
在每个关节角度求出后,接着判断每个关节角度是不是在限定范围内,将各关节角度发送到仿真模块中的仿人臂进行仿真;仿真效果调试好之后,将关节角度和手势指令发送给机械臂,实现通过人体手势的动作来控制机械臂动作。