一种基于数据手套的仿人机械手控制系统

申请号 CN201610231809.4 申请日 2016-04-12 公开(公告)号 CN105818129A 公开(公告)日 2016-08-03
申请人 华南理工大学; 发明人 韦婷; 肖南峰;
摘要 本 发明 公开了一种基于 数据手套 的仿人机械手控制系统,包括:操作控制层,主要负责设定不同的控制方式,其中包括实时仿真控制和在线控制; 数据处理 层,主要负责对采集到的数据进行分析和处理,把从数据手套采集的数据进行校正、分析,并根据规则把分析的 手指 关节 角 度 信息映射为仿真虚拟手和仿人机械手的关节角度; 接口 层,主要负责从数据手套采集数据,以及对仿真虚拟手和仿人机械手进行驱动;设备层,包括数据手套设备、仿真虚拟手的仿真平台、仿人机械手。本发明借助仿真虚拟手可及时展示仿人机械手的控制效果,解决了在线控制仿人机械手时运动时延造成的控制不直观问题,使控制方式自然、直观,以及能实现对仿人机械手的精确控制。
权利要求

1.一种基于数据手套的仿人机械手控制系统,其特征在于,包括:
操作控制层,主要负责设定不同的控制方式,其中包括实时仿真控制和在线控制,此层通过操作者对控制方式的选择,为仿人机械手设定当前的控制方式,并根据不同的控制方式进行不同的操作控制;
数据处理层,主要负责对采集到的数据进行分析和处理,把从数据手套采集的数据进行校正、分析,并根据规则把分析的手指关节度信息映射为仿真虚拟手和仿人机械手的关节角度,其中包括数据校正模、手指关节角度分析模块、仿真虚拟手关节角度映射模块、以及仿人机械手关节角度映射模块;
接口层,主要负责从数据手套采集数据,以及对仿真虚拟手和仿人机械手进行驱动,其中包括数据采集模块、仿真虚拟手驱动模块和仿人机械手驱动模块;
设备层,包括数据手套设备、仿真虚拟手的仿真平台、仿人机械手;
当操作者戴着数据手套作出各种动作时,接口层的数据采集模块采集到数据手套的输入信息,并传送给数据处理层的数据校正模块;数据校正模块对采集的数据进行校正,然后由手指关节角度分析模块进行分析处理,得到手指关节角度数据;根据操作控制层选择好的控制方式,通过仿真虚拟手关节角度映射模块和仿人机械手关节角度映射模块得到仿真虚拟手和仿人机械手的所有关节角度,然后仿真虚拟手关节角度传送给接口层的仿真虚拟手驱动模块,以及把仿人机械手关节角度传送给接口层的仿人机械手驱动模块;仿真虚拟手驱动模块驱动仿真虚拟手的仿真平台中仿真虚拟手完成相应动作;仿人机械手驱动模块则驱动仿人机械手完成相应动作;同时,动作的完成效果反馈给操作者。
2.根据权利要求1所述的一种基于数据手套的仿人机械手控制系统,其特征在于,还包括:
1)仿人机械手运动学建模
建立仿人机械手运动学模型,包括对仿人机械手指关节的坐标建立,以及对仿人机械手手指运动学建模,即对拇指和其他四指的运动学建模;对每个杆件在关节轴处建立一个正规的笛卡儿坐标系(xi,yi,zi),i=1,2,…,n,n是自由度数,再加上基座坐标系;每个转动关节只有一个自由度;建立在关节i+1处的坐标系(xi,yi,zi)固联在杆件i上;当关节驱动器推动关节i时,杆件i将相对于i-1运动;因此,第n个坐标系将随手即杆件n一起运动;机座坐标定义为第0号坐标(x0,y0,z0),它也是机器人的惯性坐标系;确定和建立每个坐标系应根据下面三条规则:①Zi-1轴方向沿着i关节的运动轴;②Xi轴垂直zi-1轴并指向zi-1离开的方向;③Yi轴根据右手笛卡尔坐标系的规则建立;按照这些规则,第0号坐标系在基座上的位置和方向任选,只要Z0轴沿着第一关节运动即可;最后一个坐标系即第n个放在手的任何部位,只要Xn轴与Zn-1垂直即可;
假定∑O1和∑O2分别是参考坐标系和附体坐标系,设点P在∑O1和∑O2中的三维坐标分别是pxyz=[px,py,pz]T和puvw=[pu,pv,pw]T,那么∑O2中的坐标相对于∑O1坐标系,则有pxyz=Rpuvw   (1)
式中,R为3×3旋转矩阵;通过式(1)能够求得∑O2中的点分别绕∑O1中的X、Y、Z轴旋转α、β、γ角度的旋转矩阵;在D-H表示法中,N维位置矢量的变换是在(N+1)维空间进行的;齐次变换矩阵是4×4矩阵,它能把一个以齐次坐标表示的位置矢量由一个坐标系映射到另一个坐标系,把齐次变换矩阵看成是有四个子矩阵组成的,左上角3×3子矩阵代表旋转矩阵;右上角3×1子矩阵代表转动坐标系的原点在参考系中的位置矢量;左下角1×3子矩阵代表透视变换;而第四个对角元素代表整体比例因子;虽然在计算机图学中,作为通用比例因子,它可取任意正值,但在机器人学中,它总是等于1;齐次变换矩阵用来说明附体坐标系∑O2和参考坐标系∑O1之间的几何关系:
式中,位置矢量代表∑O2的原点在∑O1中的位置坐标,透视变换用于计算机视觉标定,这里全取0,表示无透视变换,而比例因子为1;这样仿人机械手的复杂运动就能够用下式表示:
式中,D-H变换矩阵T完成∑O2中用齐次坐标表示的矢量到参考坐标系∑O1的变换,只用设计T矩阵完成各个独立坐标系到参考坐标系的转变即可,从而使仿人机械手建模变为T矩阵的设计;
2)数据手套校正及对应关节角度获取
2.1)数据手套校正
操作者佩戴好数据手套后,首先让操作者作出手部完全紧握的动作,接着让操作者作出手部完全伸展的动作,并且反复做这两个动作连续5遍;在此过程中,连续地采集数据手套各个关节的输出信号,并记录各关节输出信号的最大值和最小值;然后把输出信号的最大值,保存为该操作者手部处于完全紧握状态时对应的信号值;把输出信号的最小值,保存为该操作者手部处于完全伸展状态时对应的信号值;由此,可计算出该操作者佩戴数据手套作出各种动作时,数据手套各关节的输出信号范围是:
Valuerange=Valuemax–Valuemin   (22)
式中,Valuerange是数据手套某个关节的输出信号范围值,Valuemax是数据手套某个关节的输出信号最大值,Valuemin是数据手套某个关节的输出信号最小值;
2.2)数据手套对应关节角度获取
数据手套共有14个传感器,能够获取人手以下数据:①拇指的掌骨与根部指段、根部指段与中部指段之间夹角;②手掌与食指、中指、无名指和小指的根部指段之间夹角;③食指、中指、无名指和小指的根部指段与中部指段之间夹角;④相邻手指根部之间夹角;人手某关节的可转动角度范围是:
Anglerange=Anglemax–Anglemin   (23)
式中,Anglerange是某关节的可转动角度范围,Anglemax是某关节可转动角度的最大值,Anglemin是某关节可转动角度的最小值;根据数据手套传感器的工作原理,人手手指各关节的运动角度与数据手套各关节的输出信号范围值是线性的对应关系;当手指的某个关节处于某个角度时,由该关节当前的信号值,根据线性对应关系,求得当前该关节的角度满足式中,Anglecurrent是某关节的当前角度值,Valuecurrent是某关节的当前数据手套信号值,把式(22)和式(23)代入式(24),得
根据式(25),由于其中Anglemin均为0,得数据手套各对应关节角度依次为:
由此,计算出数据手套对应各关节的当前角度值;
3)数据手套到仿真虚拟手和仿人机械手的关节角度映射
首先,由于从数据手套中只能得到手指对于掌部旋转关节与中间关节的弯曲角度的信息,无法得到手指末梢关节的弯曲角度的信息,所以根据式(27),取k=2/3,则
θDIJ=2/3×θPIJ,   (28)
由此,计算出手指不包括拇指的末梢关节DIJ的角度近似等于手指中间关节PIJ角度的
2/3;而且,在人手最自然的运动状态下,拇指的末梢关节TIJ的角度与拇指指掌关节TMPJ的角度也满足此线性关系,因此拇指的末梢关节角度也能够由式(28)计算而得;其次,针对数据手套能够测量5个手指两两之间共4个夹角的数据,而仿真虚拟手和仿人机械手需要5个数据来控制5各手指的掌部侧向关节运动的问题,根据实际控制需要,设计让仿真虚拟手和仿人机械手中指相对于掌部侧向关节角度保持为0;则其余4个手指相对于掌部侧向关节的角度就能够由数据手套测得的5个手指两两之间的4个夹角的角度数据而得;再次,针对数据手套无法获取相当于仿真虚拟手和仿人机械手掌部中间关节的角度的问题,根据对人手的结构分析可知,人手的掌部中间位置只有在无名指和小指相对于掌部旋转到一定角度的时候才会随之内收,由此根据需要近似求得到仿真虚拟手和仿人机械手掌部中间关节的角度;根据以上方案,从数据手套获取的14个传感器的关节角度数据,合理地映射出了仿真虚拟手和仿人机械手所有共21个关节的角度;
4)指尖运动直观映射
当人手佩戴数据手套直观控制仿人机械手进行抓持运动时,通过观察仿人机械手相对于物体的位置,作出人手指尖的运动,从而控制仿人机械手指尖向适当的方向运动,因此需要将人手指尖位置增量映射为仿人机械手的指尖位置增量;取手掌坐标系作为运动映射的参考坐标系,不失一般性,设某时刻t开始的Δt时间内,人手食指指尖位置增量ΔdH=[ΔxH ΔyH ΔzH]T,仿人机械手食指指尖的位置增量ΔdR=[ΔxR ΔyR ΔzR]T,则有
ΔdR=kΔdH   (29)
式中, 是从人手食指指尖到仿人机械手食指指尖的运动映射矩阵,
各手指指尖在x、y、z方向运动独立,因此,
kxy=kxz=kyx=kyz=kzx=kzy=0   (30)
由式(29)和式(30)得,
ΔxR=kxxΔxH;ΔyR=kyyΔyH;ΔzR=kzzΔzH   (31)
由式(31)可知,仿人机械手的指尖在x、y、z方向上分别由人手指尖在x、y、z方向上的运动独立控制;
当人手运动缓慢,Δt较小时,相邻两位置的手指关节位形相差不大,指尖位置增量近似由手指长度决定,则有
kxx=kyy=kzz=LR/LH   (32)
式中,LR是仿人机械手手指长度,LH是人手手指长度;由此,能够根据人手指尖位置增量映射出仿人机械手指尖位置增量,从而直观控制仿人机械手指尖位置。
3.根据权利要求2所述的一种基于数据手套的仿人机械手控制系统,其特征在于:所述仿人机械手指关节坐标建立是应用D-H表示法建立仿人机械手的指关节坐标系,首先为关节链中每个指关节建立附体坐标系;然后通过D-H矩阵来表示后一个关节和前一个关节的关系;最后经过逐次变换将附体坐标表示的各个关节方程最终变换成用参考坐标来表示;
确定和建立每个附体坐标系应根据下面4条规则:①Z轴方向沿其所在关节的运动轴;②X轴由附体坐标系Z轴和其前一坐标系Z轴确定;③Y轴按右手坐标系的要求建立;④手指基关节视参考坐标系为其前一坐标系;据此,在仿人机械手第i+1关节轴处建立一个笛卡尔坐标系∑i,i=0,1,…,n-1,n是仿人机械手每个手指的自由度数目,Xi、Yi、Zi分别是∑i的3个轴;这样每个手指的第i+1关节的坐标系∑i固联于其第i关节的坐标系∑i-1;第1关节,也称基关节的坐标系∑0固联于参考坐标系;当关节驱动器推动关节i时,关节i将相对于关节i-1运动,第n个坐标系将随关节n一起运动;参考坐标系为仿人机械手的手掌坐标系∑palm;
对于给定的手指自由度为n的仿人机械手,按手的形态为每一个关节建立一个编号依次为0,…,i,…,n-1,i为手指从基关节到末稍关节的各个关节标号的标准正交坐标系,具体步骤如下:0)建立参考坐标系∑palm,∑palm与手指的基关节坐标系各轴方向一致;1)建立基关节坐标系∑0,在基关节建立右手正交坐标系∑0;遵循前述的四条规则,使它的Z0轴沿关节的运动轴,X0轴垂直于Z0轴,方向可任选,Y0按照右手法则来确定;2)初始化,对关节i(i=1,…,n-1)完成步骤3)至6);3)建立Zi轴(关节轴),把Zi轴与关节i+1的运动轴对准;4)建立第i个坐标系的原点,将∑i的原点放在Zi与Zi-1轴的交点处,或放在它们的公垂线与Zi轴的交点处;5)建立Xi轴,令Xi沿Zi-1与Zi的公垂线且指向Zi的方向;如果Zi-1与Zi平行,则让Xi与Xi-1共线;如果Zi-1与Zi垂直,则让Xi垂至于Zi-1与Zi构成的平面;6)建立Yi轴,使坐标系∑i成为右手坐标系;7)求关节和链杆参数,对每个i(i=0,…,n-1),完成如下8)至11)步;8)求在Zi轴上两条相邻的公垂线之间的距离di,即Xi轴与Xi+1轴之间的距离;若关节i是移动关节,di是关节变量;9)求Zi-1轴与Zi轴之间的距离ai,即Zi-1轴与Zi轴的公垂线在这两个轴之间部分的长度;10)求绕Zi-1轴由Xi-1轴转向Xi轴,使得Xi-1轴与Xi轴平行的转角θi;若关节i是转动关节,θi就是关节变量;11)求绕Xi轴由Zi-1轴转向Zi轴,使得Zi-1轴与Zi轴同向的转角αi;
应用上述算法建立仿人机械手指的各关节坐标系,从而确定联系∑i和∑i-1的齐次变换矩阵T,即D-H转换矩阵;
所述仿人机械手手指运动学建模,如下:
(a)除拇指外其余四指运动学建模
除拇指外,其他4个手指结构一样,每个手指有4个关节,4个自由度,从根关节到末梢依次为基关节、近基关节、中关节和末梢关节,对于相邻的两个关节,以前一个关节为临时参考坐标系,建立后一个关节的D-H变换矩阵,建立关节j的D-H变换矩阵如下:
式中, 的右上角小标f代表第f个手指,下标i表示第i个关节,左上角i-1表示相对于前关节i-1;参数ai是Zi-1轴与Zi轴之间距离,di是Zi轴上两条相邻的公垂线之间距离;若关节i是移动关节,则di是关节变量;θi是绕Zi-1轴由Xi-1轴转向Xi轴,使得Xi-1轴与Xi轴平行的转角θi;若关节i是转动关节,则θi就是关节变量,αi是绕Xi轴由Zi-1轴转向Zi轴,使得Zi-1轴与Zi轴同向的转角;
根据D-H变换矩阵,由正向运动学,得出除拇指外的仿人机械手的手指正向运动学方程的总变换矩阵:
式中, 表示第f个手指的第i关节附体坐标系相对于参考坐标系的变换矩阵,
表示第f个手指的第i关节相对于第i-1关节的变换(i=1,…,n-1);n,o,a,p都是列向量,n=[nx,ny,nz]T,o=[ox,oy,oz]T,a=[ax,ay,az]T,p=[px,py,pz]T;除拇指外,其他四指采用侧摆型手指结构,基关节为侧摆转动关键,近基关节、中关节和末梢关节的Z轴平行;由D-H矩阵,有矩阵i-1Ai,如下式(6)所示,它描述两个相邻的坐标系的关系;
把杆件i上一个不动点pi在第i个坐标系中的齐次坐标与第i-1个杆件上建立的第i-1坐标用式(6)联系起来,
i-1
pi–1= Aipi   (7)
式中,pi–1=(xi-1,yi-1,zi-1,1)T,pi=(xi,yi,zi,1)T,能够得出A的各次矩阵,其中A0为palm坐标系到∑0坐标系变换矩阵,其他依次为i-1到i坐标系的变换矩阵;
所以,手掌与手指末端的总变换方程矩阵为
式中,Cij=CosθiCosθj–SinθiSinθj=Cos(θi+θj),Sij=SinθiCosθj+CosθiSinθj=Sin(θi+θj);i,j=0,1,2,3;根据以上式子,由给定的θ0、θ1、θ2、θ3,通过坐标系的变换,则可求得指尖的位置坐标x,y,z;
(b)拇指运动学建模
参考坐标系为手掌坐标系Σpalm,它与拇指基关节坐标系绑定;由式(4)出发,通过D-H矩阵连乘复合变换即可求得关节i(i=1,2,3,4)相对该指基关节的变换矩阵,再结合式(4),可得仿人机械手拇指(令f=1)的正向运动学方程总变换矩阵
式中,palmT1i表示拇指的第i关节附体坐标系相对于参考坐标系的变换矩阵,i-1T1i表示拇指的第i关节相对于第i-1关节的变换(i=1,…,n-1),n,o,a,p都是列向量,n=[nx,ny,nz]T,o=[ox,oy,oz]T,a=[ax,ay,az]T,p=[px,py,pz]T。根据拇指模型坐标系,对拇指关节i(i=1,2,3,4)的关节变量(αi,θi,ai,di)赋值,即可得到相应的拇指变换矩阵,可得出拇指的各次矩阵A;其中A0为palm坐标系到∑0坐标系变换矩阵,其他依次为i-1到i坐标系的变化矩阵;
所以,在手掌与拇指末端的总变换方程矩阵为:
式中,Cij=CosθiCosθj–SinθiSinθj=Cos(θi+θj),Sij=SinθiCosθj+CosθiSinθj=Sin(θi+θj);i,j=0,1,2,3;根据以上式子,由给定的θ0、θ1、θ2、θ3,通过坐标系的变换,则可求得拇指指尖的位置坐标x,y,z;
以上建立了整个仿人机械手的正向运动学,其逆向运动学建立是一个复杂的过程,需通过反复迭代运算;不过,逆向运动学的建立前提是已知各关节相对于其前一个关节坐标系的转换矩阵;这样,对手指f的关节i(i=1,2,3,4)而言,已知pfii-1之后,其相对前一关节转角
θfii-1=arctan(pfii-1,y/pfii-1,x)   (19)
从而关节i(i=1,2,3,4)相对参考坐标系的转角可表示为
θfipalm=θf0+θf1palm+θ1f2+…+arctan(pfii-1,y/pfii-1,x)   (20)。
4.根据权利要求1所述的一种基于数据手套的仿人机械手控制系统,其特征在于:所述实时仿真控制是不断读取数据手套输入的同时,同步控制仿真虚拟手跟随人手进行相同的动作序列;所述在线控制是在人手佩戴的数据手套保持一个状态稳定预设的时间间隔,才控制仿真虚拟手和仿人机械手运动;所述仿真虚拟手能在瞬间显示最终控制效果给操作者,起到预测显示作用,而仿人机械手在完成动作之后,能把其状态信息反馈给控制软件
5.根据权利要求1所述的一种基于数据手套的仿人机械手控制系统,其特征在于:所述仿真虚拟手的仿真平台是在Windows XP操作系统下,采用Open GL三维图形库与VC++6.0联合开发的,并采用Discreet公司的3DS MAX 7.0作为仿真机械手建模工具,为了使仿真虚拟手的各关节之间能运动,采用按关节自由度划分,对各个部分局部建模,在3DS MAX中建立模型后,将仿真机械手各个关节部件的3D模型导出为3DS文件,再读入到Open GL与VC++6.0联合开发的仿真虚拟手服务器端程序中对仿真虚拟手进行绘制、组装,以及通过平移、旋转和缩放坐标变换实现手指各关节的运动;而且,全部三维模型均采用显示列表,使得三维模型的显示速度得到有效的提高;该仿真虚拟手平台提供了平移、远近和三维旋转功能,用鼠标拖动来操作;
仿真虚拟手由视景仿真服务器端和客户端组成,采用TCP/IP协议进行通信;客户端软件由作业描述语言开发包和消息转发程序组成;系统为用户提供了作业描述语言开发包,通过作业描述语言开发包编写机械手的控制程序,然后在仿真环境的客户端执行;此时控制指令通过消息转发程序转换成TCP/IP消息包,发送到视景仿真服务器端,仿真服务器端接收消息后,将其还原成仿人机械手控制指令,并通过指令—函数映射表找到对应的执行函数,立即执行该指令,执行效果由三维场景生成模块渲染输出,该系统还采用了数据缓存技术来协调务器端仿真动画的速度和客户端的消息发送速度之间的速度差异;
仿真平台中仿真虚拟手是完全为仿人机械手而设计的,因此,其结构及关节旋转角度与仿人机械手完全相同,每个手指各四个自由度每个自由度一个关节,共有5个手指,另外,手掌弱侧位置能够进行倾斜,因此手掌处有1个自由度,这样加起来总共21个自由度。
6.根据权利要求1所述的一种基于数据手套的仿人机械手控制系统,其特征在于,所述仿人机械手包括:
手部整体机构,在手指部分设计中,将微电机置于手指的每个指节内,除拇指之外,每个手指具有4个自由度,指关节从手掌内到指端依次称为基关节、近基关节、中关节和末梢关节,拇指也设计成具有4个自由度,在手掌设计上,由于人的手掌可侧握,所以手掌分成两部分,用电机连接驱动起来,这样一个手共计有21个自由度;
手指机构,每根手指的基关节与近基关节在相连处垂直正交,基关节和近基关节一个为侧摆关节一个为屈曲关节,能够模拟人手指掌关节实现下指节的侧摆和屈曲,而中关节和末梢关节分别实现中指节和上指节的屈曲;仿人机械手拇指为屈曲型的手指结构,而其他4指则为侧摆型的手指结构;在关节转角范围相同的情况下,屈曲型手指机构的工作空间较大,而侧摆型手指机构的工作空间较小,适合于除拇指外的4个手指结构;拇指基关节的位置为向上倾的结构,拇指基关节的弯曲,既能够向上倾斜与其他四指的对捏,又能够进行其他方向的弯曲,容易达到拇指与其他四指对捏,且拇指近基关节的侧摆范围较大,除拇指外,其他4指基关节的侧摆角度都为10°,而拇指的近基关节侧摆角度为65°,与人手的常态相接近,当然,这个角度能够进行调节,通过程序控制;
手掌机构,手掌内部为一空腔,用于安装电机和各种信号线,手掌的掌心处为一平面,用于与手指配合抓握物体;手掌分为两个部分,观察人手的运动,拇指和无名指、小指的相对运动时,手掌间具有握动的转动;手掌弱侧位置能够进行倾斜;当无名指和小指与拇指进行对捏时,手掌外侧部分能够倾斜;
传动机构,为电机传动,手指为中空形式,由指尖贯穿到指根,微电机置于手指的每个指节内;每个手指的关节之间的指段采用整体构件式设计,每个关节单独用电机驱动;仿人机械手各手指关节控制驱动电机均采用GWS PICO/NARO servo型直流伺服电机,通过脉冲变化来驱动电机的转动角度。
7.根据权利要求1所述的一种基于数据手套的仿人机械手控制系统,其特征在于:所述数据手套为5DT Data Glove 14Ultra数据手套,它总共有14个传感器;其中,除拇指外的4个手指每个手指连接掌部的关节MPJ和手指中间关节PIJ各1个传感器,拇指连接掌腕的关节TMJ和拇指中间关节TMPJ各1个传感器,5个手指两两之间各1个传感器;数据手套和计算机之间通过USB接口连接。

说明书全文

一种基于数据手套的仿人机械手控制系统

技术领域

[0001] 本发明涉及仿人机械手的技术领域,尤其是指一种基于数据手套的仿人机械手控制系统。

背景技术

[0002] 随着仿人机械手设计、规划、作业等相关问题的研究不断深入,无论是在国外还是国内都获得了很大的进展。但是,仿人机械手是一个极其复杂的系统,传统的控制方法大多采用离线编程或者示教方式等,并且要求操作者向控制器输入指令去控制仿人机械手运动。这样的控制模式具有很大的局限性,仿人机械手只能完成预定的动作,难以适应变化的作业环境,而且操作复杂和不直观,操作者事先还要进行培训,以及要具有一定的编程知识。即使如此,操作者对仿人机械手控制也很难具备实时性和交互性。正是由于仿人机械手的复杂程度远远超过了工业机械手,所以其设计制造、示教方法、灵巧作业、精细操作等都是极富挑战性的任务。特别是仿人机械手示教方法,它涉及的核心技术之一就是临场感技术,也即操作者将相关的位置和运动信息作为控制指令传递给仿人机械手,仿人机械手再将感知到的作业环境信息反馈给操作者,使操作者产生身临其境的感受,操作者从而能够真实地感受到仿人机械手和作业环境的交互状况,并且正确地做出决策去有效地控制仿人机械手完成复杂的任务。
[0003] 具有临场感的仿人机械手的关键技术包括仿人机械手操作端控制设备、人手到仿人机械手的运动映射,以及觉和视觉反馈技术等。为了获取人手的运动信息,一种方式是不利用数据手套等测量人手的运动信息,而是利用视觉系统对人手的动作进行识别。但目前这种方法的计算过于复杂,稳定性精度都比较低。在人手运动信息的获取上,比较好的方法是把作为操作端的主手设计成“手套”式多指手结构,当操作者的手指套入到操作端的“手套”中做运动时,真正的仿人机械手指也一起跟着动作。正是由于数据手套的出现大大地增加了仿人机械手的适应性,所以近年来出现了一些商业化的数据手套,如VPL公司的数据手套Dataglove,Matal公司的PowerGlove,Immersion公司的数据手套CyberGlove,Sarcos公司的EXOS手套等。这些手套式控制输入设备大致可分为两类:①关节位置传感器(光纤、金属应变片等)依附在手套上测量关节运动,如DataGlove、CyberGlove等。这类数据手套的优点就是重量轻,操作者穿戴和使用都非常方便,主要缺点是不同的操作者穿戴,传感器位置会滑移,而且关节传感器测量的度需要标定才能满足操作的要求。②机械连杆结构带动电位计等关节传感器用于测量关节的运动,如Sarcos公司的EXOS。这类手套将输入控制和力反馈装置融为一体,但研制复杂,没有产品化。
[0004] 采用数据手套等输入控制设备获得人手的运动信息后,需要将人手的运动映射到仿人机械手上去,但有两方面的问题需要解决:①如何保证通过数据手套获得相对精确的人手运动信息,从而满足对仿人机械手操作的精度要求。针对这个问题,Jiawei Hong等人利用最小二乘方法拟合出近似的指数曲线,从而解决了VPL数据手套的各关节传感器输出有很大耦合性问题。Drew等通过设计了特定的关节测量装置,测得准确的CyberGlove数据手套角度输出。Rohling和Hollerbach建立了人手食指几何参数模型,利用视觉测量系统测得食指指尖位置,通过指尖位置开环参数识别方法得到了人手食指精确模型。Fischer和Hirzinger等通过立体视觉系统实时测量人手指尖位置,通过神经网络方法建立了CyberGlove数据手套角度输出和人手指尖位置对应关系,得到了较高的人手指尖位置精度。②如何通过映射方法将人手的运动转换为特定仿人机械手的运动,从而实现对仿人机械手操作,控制其运动。Jiawei.Hong通过关节空间映射方法将VPL数据手套测得的人手关节运动映射到Utah/MIT灵巧手上。Rohling和Hollerbach利用指尖位置映射方法将EXOS测得的人手指尖位置映射到Utah/MIT灵巧手上。Griffin和Cutkosky等利用基于虚拟物体大小方法,将人手运动映射到Dexter灵巧手上等。

发明内容

[0005] 本发明的目的在于克服现有技术的不足与缺点,提供一种适应性、直观性、交互性、实时性都较好的基于数据手套的仿人机械手控制系统。
[0006] 为实现上述目的,本发明所提供的技术方案为:一种基于数据手套的仿人机械手控制系统,包括:
[0007] 操作控制层,主要负责设定不同的控制方式,其中包括实时仿真控制和在线控制,此层通过操作者对控制方式的选择,为仿人机械手设定当前的控制方式,并根据不同的控制方式进行不同的操作控制;
[0008] 数据处理层,主要负责对采集到的数据进行分析和处理,把从数据手套采集的数据进行校正、分析,并根据规则把分析的手指关节角度信息映射为仿真虚拟手和仿人机械手的关节角度,其中包括数据校正模、手指关节角度分析模块、仿真虚拟手关节角度映射模块、以及仿人机械手关节角度映射模块;
[0009] 接口层,主要负责从数据手套采集数据,以及对仿真虚拟手和仿人机械手进行驱动,其中包括数据采集模块、仿真虚拟手驱动模块和仿人机械手驱动模块;
[0010] 设备层,包括数据手套设备、仿真虚拟手的仿真平台、仿人机械手。
[0011] 所述的仿人机械手控制系统,还包括:
[0012] 1)仿人机械手运动学建模;
[0013] 2)数据手套校正及对应关节角度获取;
[0014] 3)数据手套到仿真虚拟手和仿人机械手的关节角度映射;
[0015] 4)指尖运动直观映射。
[0016] 所述实时仿真控制是不断读取数据手套输入的同时,同步控制仿真虚拟手跟随人手进行相同的动作序列;所述在线控制是在人手佩戴的数据手套保持一个状态稳定预设的时间间隔,才控制仿真虚拟手和仿人机械手运动;所述仿真虚拟手能在瞬间显示最终控制效果给操作者,起到预测显示作用,而仿人机械手在完成动作之后,能把其状态信息反馈给控制软件
[0017] 本发明与现有技术相比,具有如下优点与有益效果:
[0018] 在本发明系统中,对仿人机械手采用的控制方式是让操作者戴上数据手套通过计算机系统实时地控制仿人机械手。与传统控制方法相比,这种直接控制方法更加符合人类的操作习惯,其操作简单、高效,大大提高了交互性。另外,本发明在使用数据手套作为输入设备的同时,在计算机中生成虚拟环境及在虚拟环境中实时地控制仿真虚拟手运动,借助仿真虚拟手实时地反映人手动作。仿真虚拟手可及时地展示运动效果,解决仿人机械手运动时延造成的控制效果不直观问题。在操作者看不到仿人机械手执行作业的情况下,也能够通过改变仿真虚拟手的姿态从而对仿人机械手做出正确和合理的操作控制。总之,本发明应用前景广泛,不仅可以满足工业生产的急需,而且可以广泛地应用于战场、防化、扫雷、救护等军事领域,以及远程医疗、远程教育、远程实验、旅游娱乐等民用领域。附图说明
[0019] 图1是仿人机械手总体构架图。
[0020] 图2是手指4关节模型图。
[0021] 图3是拇指4关节模型图。
[0022] 图4是仿人机械手实物图。
[0023] 图5是5DT Data Glove 14Ultra数据手套图。
[0024] 图6是正(逆)向运动学的关系图。
[0025] 图7是参考坐标系和附体坐标系图。
[0026] 图8是仿人机械手模型及关节坐标系图。
[0027] 图9是手指模型坐标系(除拇指外)图。
[0028] 图10是拇指模型坐标系图。
[0029] 图11是仿真虚拟手服务器端界面图。
[0030] 图12是仿真虚拟手客户端界面图。
[0031] 图13是人手解剖结构图。
[0032] 图14是关节角度映射方案图。
[0033] 图15是实时仿真控制构架设计图。
[0034] 图16是实时仿真控制时数据手套交互模块工作原理图。
[0035] 图17是数据校正模块工作原理图。
[0036] 图18是实时仿真控制时虚拟手驱动模块工作原理图。
[0037] 图19是在线控制架构设计图。
[0038] 图20是在线控制时数据手套交互模块工作原理图。
[0039] 图21是在线控制时虚拟手驱动模块工作原理图。
[0040] 图22是在线控制时仿人机械手驱动模块工作原理图。
[0041] 图23是手部状态确认原理图。
[0042] 图24是消除人手抖动影响原理图。
[0043] 图25是实时仿真控制实验现场过程截图。
[0044] 图26是实时仿真控制实验14个传感器对应角度采样曲线图。
[0045] 图27是在线控制实验现场图(初始和结束状态)。
[0046] 图28是在线控制实验14个传感器对应角度采样曲线图。

具体实施方式

[0047] 下面结合具体实施例对本发明作进一步说明。
[0048] 如图1所示,本发明所述的基于数据手套的仿人机械手控制系统,包括:
[0049] 操作控制层,主要负责设定不同的控制方式,其中包括实时仿真控制和在线控制,此层通过操作者对控制方式的选择,为仿人机械手设定当前的控制方式,并根据不同的控制方式进行不同的操作控制;
[0050] 数据处理层,主要负责对采集到的数据进行分析和处理,把从数据手套采集的数据进行校正、分析,并根据规则把分析的手指关节角度信息映射为仿真虚拟手和仿人机械手的关节角度,其中包括数据校正模块、手指关节角度分析模块、仿真虚拟手关节角度映射模块、以及仿人机械手关节角度映射模块;
[0051] 接口层,主要负责从数据手套采集数据,以及对仿真虚拟手和仿人机械手进行驱动,其中包括数据采集模块、仿真虚拟手驱动模块和仿人机械手驱动模块;
[0052] 设备层,包括数据手套设备、仿真虚拟手的仿真平台、仿人机械手;
[0053] 当操作者戴着数据手套作出各种动作时,接口层的数据采集模块采集到数据手套的输入信息,并传送给数据处理层的数据校正模块。数据校正模块对采集的数据进行校正,然后由手指关节角度分析模块进行分析处理,得到手指关节角度数据。根据操作控制层选择好的控制方式,通过仿真虚拟手关节角度映射模块和仿人机械手关节角度映射模块得到仿真虚拟手和仿人机械手的所有关节角度,然后仿真虚拟手关节角度传送给接口层的仿真虚拟手驱动模块,以及把仿人机械手关节角度传送给接口层的仿人机械手驱动模块。仿真虚拟手驱动模块驱动仿真虚拟手的仿真平台中仿真虚拟手完成相应动作。仿人机械手驱动模块则驱动仿人机械手完成相应动作。同时,动作的完成效果反馈给操作者。
[0054] 本发明设计了两类不同的控制方式:实时仿真控制和在线控制。实时仿真控制是不断读取数据手套输入的同时,同步控制仿真虚拟手跟随人手进行相同的动作序列。在线控制方式是在人手佩戴的数据手套保持一个状态稳定一定的时间间隔,才控制仿真虚拟手和仿人机械手运动。仿真虚拟手能在瞬间显示最终控制效果给操作者,起到预测显示作用。而仿人机械手在完成动作之后,能把其状态信息反馈给控制软件。
[0055] 所述仿人机械手的具体情况如下:
[0056] (a)手部整体机构。在仿人机械手的手指部分设计中,将微电机置于手指的每个指节内。除拇指之外,每个手指具有4个自由度。指关节从手掌内到指端可依次称为基关节、近基关节、中关节和末梢关节,拇指也设计成具有4个自由度。在手掌设计上,由于人的手掌可侧握,所以手掌分成两部分,用电机连接驱动起来。这样一个手共计有21个自由度。
[0057] (b)手指机构。每根手指的基关节与近基关节在相连处垂直正交,基关节和近基关节一个为侧摆关节一个为屈曲关节,可以模拟人手指掌关节实现下指节的侧摆和屈曲。而中关节和末梢关节分别实现中指节和上指节的屈曲。图2所示手指机构的基关节为侧摆型,称为侧摆型手指机构。图3所示手指机构的基关节为屈曲型,称为屈曲型手指机构。仿人机械手拇指为屈曲型的手指结构,而其他4指则为侧摆型的手指结果。在关节转角范围相同的情况下,屈曲型手指机构的工作空间较大,适合于更灵活的拇指结构。而侧摆型手指机构的工作空间较小,适合于除拇指外的4个手指结构。拇指基关节(屈曲关节)的位置为向上倾的结构,拇指基关节的弯曲,既可以向上倾斜与其他四指的对捏,又可以进行其他方向的弯曲,容易达到拇指与其他四指对捏,而且拇指近基关节的侧摆范围较大,保证拇指的很多灵巧性操作运动。除拇指外,其他4指基关节的侧摆角度都为10°,而拇指的近基关节侧摆角度为65°,与人手的常态相类似。当然,这个角度可以调节,通过程序控制可以很好的控制。
[0058] (c)手掌机构。目前已经研究出来的仿人机械手分为具有手掌(以DLR手为代表)和不具有手掌(以JPL手为代表)两类。没有手掌的仿人机械手抓取和操作的灵巧性都比较好,对抓取尺寸比较小的物体并对其进行微细操作有利;而具有手掌的仿人机械手,当手掌及各指大面积接触被抓物体时,能使手部充分发挥出抓取力,同时提供足够的摩擦力,从而大大地提高其抓取稳定性。就一般性和通用性而言,手指抓取应先以稳定性为前提,而且可以通过优化设计来弥补灵活性的不足。另一方面,从仿人机械手模型来看,具有手掌结构的仿人机械手是当前研究的方向,采用手掌形式的仿人机械手,手掌结构设计较为复杂,要考虑的因素很多,因为它随着手指结构的不同而不同,几乎没有通用性。设计手掌主要考虑了手指跟指座的支撑定位安排、电机的安装定位、信号线的布置等因素。由仿人机械手结构可知,本专利申请使用的仿人机械手具有手掌,而且具有以下特点:①手掌内部为一空腔,便于安装电机和各种信号线。②手掌的掌心处为一平面,便于与手指配合抓握物体。③手掌分为两个部分,观察人手的运动,拇指和无名指、小指的相对运动时,手掌间具有握动的转动,这样也有利于仿人机械手在运动时的灵巧性。手掌弱侧位置可进行倾斜。这样当无名指和小指与拇指进行对捏时,手掌外侧部分能够倾斜。这种结构使得倾斜角度可以很好的达到手掌的灵巧性收拢,更符合人手的灵巧性要求。
[0059] (d)传动机构。仿人机械手手指关节的传动方案为电机传动,其特点是:①手指为中空形式,由指尖贯穿到指根,微电机置于手指的每个指节内。②每个手指的关节之间的指段采用整体构件式设计,每个关节单独用电机驱动,累积误差小,而且抓取时的稳定性较好。仿人机械手各手指关节控制驱动电机均采用GWS PICO/NARO servo型直流伺服电机,这是一种微型的驱动电机,通过脉冲变化来驱动电机的转动角度。
[0060] (e)手部参数。仿人机械手的实物如图4所示。左右手具有对称特性。仿人机械手的材料为合金,厚度为1.5mm,硬度适当,强度较大。整个仿人机械手的结构采用中空开口形式,这样一方面用于安置关节电机,另一方面可以进行以后的扩展,安装传感器装置(位置、力的传感器)等,表面可以粘附一层橡胶材料,在橡胶材料的基础上,布置传感橡胶,从而形成完整的仿人机械手。仿人机械手实际总体尺寸为宽150mm,高274mm,根据统计数据显示,普通成年人手的尺寸约为宽120mm,高200mm。仿人机械手大概是人手的1.25倍大小。仿人机械手的基本参数如表1,其中指节1为基关节到近基关节,指节2为近基关节到中关节,指节3为中关节到末梢关节,而指尖长度表示末梢关节到指顶的长度。四指可侧摆范围是指,相邻的手指正常位置时,手指基关节在不产生机械干涉的条件下的可以侧摆的角度。
[0061] 表1
[0062]
[0063]
[0064] 本发明使用的数据手套作为输入设备,使操作者能对仿人机械手的操作具有沉浸感,从根本上改进了人手和仿人机械手之间的隔阂。数据手套作为一种重要的人机交互工具,主要是将人手的手势信息传递给计算机而完成交互。本专利申请采用美国5DT公司的5DT Data Glove 14Ultra数据手套,它总共有14个传感器。其中,除拇指外的4个手指每个手指连接掌部的关节(MPJ)和手指中间关节(PIJ)各1个传感器,拇指连接掌腕的关节(TMJ)和拇指中间关节(TMPJ)各1个传感器,5个手指两两之间各1个传感器。5DT数据手套采用先进的传感技术,能比较精确地获取大拇指、食指、中指、无名指、小指的转动和倾斜的14组数据。数据手套和计算机之间通过USB接口连接,使用十分方便。5DT Data Glove 14Ultra数据手套实物如图5所示。
[0065] 基于数据手套的仿人机械手系统要做到软件功能务求划分更加明确,程序更有逻辑性与条理性,同时还要有利于进一步扩展。本发明的仿人机械手开发和运行环境为:Windows XP操作系统、Vsual C++6.0开发工具、虚拟现实仿人机械手平台。
[0066] 本发明所述的仿人机械手控制系统,还包括:
[0067] 1)仿人机械手运动学建模
[0068] 如图6所示,建立仿人机械手运动学模型,包括对仿人机械手指关节的坐标建立,以及对拇指和其他四指的运动学建模。对每个杆件在关节轴处可建立一个正规的笛卡儿坐标系(xi,yi,zi),i=1,2,…,n(n是自由度数),再加上基座坐标系。每个转动关节只有一个自由度。建立在关节i+1处的坐标系(xi,yi,zi)固联在杆件i上。当关节驱动器推动关节i时,杆件i将相对于i-1运动。因此,第n个坐标系将随手(杆件n)一起运动;机座坐标定义为第0号坐标(x0,y0,z0),它也是机器人的惯性坐标系。确定和建立每个坐标系应根据下面三条规则:①Zi-1轴方向沿着i关节的运动轴;②Xi轴垂直zi-1轴并指向zi-1离开的方向;③Yi轴根据右手笛卡尔坐标系的规则建立。按照这些规则,第0号坐标系在基座上的位置和方向可任选,只要Z0轴沿着第一关节运动即可。最后一个坐标系(第n个)可放在手的任何部位,只要Xn轴与Zn-1垂直即可。
[0069] 如图7所示。假定∑O1和∑O2分别是参考坐标系和附体坐标系,设点P在∑O1和∑O2中的三维坐标分别是pxyz=[px,py,pz]T和puvw=[pu,pv,pw]T,那么∑O2中的坐标相对于∑O1坐标系,则有
[0070] pxyz=Rpuvw  (1)
[0071] 式中,R为3×3旋转矩阵。通过式(1)可以求得∑O2中的点分别绕∑O1中的X、Y、Z轴旋转α、β、γ角度的旋转矩阵,从而解决仿人机械手关节旋转问题。在D-H表示法中,N维位置矢量的变换是在(N+1)维空间进行的。齐次变换矩阵是4×4矩阵,它能把一个以齐次坐标表示的位置矢量由一个坐标系映射到另一个坐标系,可以把齐次变换矩阵看成是有四个子矩阵组成的,左上角3×3子矩阵代表旋转矩阵;右上角3×1子矩阵代表转动坐标系的原点在参考系中的位置矢量;左下角1×3子矩阵代表透视变换;而第四个对角元素代表整体比例因子。虽然在计算机图学中,作为通用比例因子,它可取任意正值,但在机器人学中,它总是等于1。齐次变换矩阵可用来说明附体坐标系∑O2和参考坐标系∑O1之间的几何关系:
[0072]
[0073] 式中,位置矢量代表∑O2的原点在∑O1中的位置坐标,透视变换用于计算机视觉标定(这里全取0,表示无透视变换),而比例因子为1。这样仿人机械手的复杂运动就可用下式表示:
[0074]
[0075] 式中,D-H变换矩阵T完成∑O2中用齐次坐标表示的矢量到参考坐标系∑O1的变换,这对于仿人机械手关节建模来说至关重要,它将大大减少数学模型的复杂度。针对某个关节单独设计,暂时不用考虑整个仿人机械手统一到一个坐标系下,最终只用设计T矩阵完成各个独立坐标系到参考坐标系的转变即可,从而使仿人机械手建模变为T矩阵的设计。
[0076] 1.1)仿人机械手指关节坐标建立。应用D-H表示法建立仿人机械手的指关节坐标系。首先为关节链中每个指关节建立附体坐标系;然后通过D-H矩阵来表示后一个关节和前一个关节的关系;最后经过逐次变换将附体坐标表示的各个关节方程最终变换成用参考坐标来表示。确定和建立每个附体坐标系应根据下面4条规则:①Z轴方向沿其所在关节的运动轴;②X轴由附体坐标系Z轴和其前一坐标系Z轴确定;③Y轴按右手坐标系的要求建立;④手指基关节视参考坐标系为其前一坐标系。据此,在仿人机械手第i+1关节轴处建立一个笛卡尔坐标系∑i,i=0,1,…,n-1(n是仿人机械手每个手指的自由度数目,Xi、Yi、Zi分别是∑i的3个轴)。这样每个手指的第i+1关节的坐标系∑i固联于其第i关节的坐标系∑i-1;第1关节(也称基关节)的坐标系∑0固联于参考坐标系。当关节驱动器推动关节i时,关节i将相对于关节i-1运动,第n个坐标系将随关节n一起运动;参考坐标系为仿人机械手的手掌坐标系∑palm。仿人机械手的关节坐标系如图8所示。
[0077] 基于上述规则,应用并改进现有的坐标系建立算法,可以得到仿人机械手指关节坐标系建立算法。对于给定的手指自由度为n的仿人机械手,按手的形态为每一个关节建立一个编号依次为0,…,i,…,n-1(i为手指从基关节到末稍关节的各个关节标号)的标准正交坐标系,具体步骤如下:0)建立参考坐标系∑palm,∑palm与手指的基关节坐标系各轴方向一致;1)建立基关节坐标系∑0,在基关节建立右手正交坐标系∑0。遵循前述的四条规则,使它的Z0轴沿关节的运动轴,X0轴垂直于Z0轴,方向可任选(建议指向手指末梢的方向),Y0按照右手法则来确定;2)初始化,对关节i(i=1,…,n-1)完成步骤3)至6);3)建立Zi轴(关节轴),把Zi轴与关节i+1的运动轴对准;4)建立第i个坐标系的原点,将∑i的原点放在Zi与Zi-1轴的交点处,或放在它们的公垂线与Zi轴的交点处;5)建立Xi轴,令Xi沿Zi-1与Zi的公垂线且指向Zi的方向。如果Zi-1与Zi平行,则让Xi与Xi-1共线。如果Zi-1与Zi垂直,则让Xi垂至于Zi-1与Zi构成的平面。6)建立Yi轴,使坐标系∑i成为右手坐标系;7)求关节和链杆参数,对每个i(i=0,…,n-1),完成如下8)至11)步;8)求在Zi轴上两条相邻的公垂线之间的距离di,即Xi轴与Xi+1轴之间的距离。若关节i是移动关节,di是关节变量;9)求Zi-1轴与Zi轴之间的距离ai,即Zi-1轴与Zi轴的公垂线在这两个轴之间部分的长度。10)求绕Zi-1轴由Xi-1轴转向Xi轴,使得Xi-1轴与Xi轴平行的转角θi。若关节i是转动关节,θi就是关节变量;11)求绕Xi轴由Zi-1轴转向Zi轴,使得Zi-1轴与Zi轴同向的转角αi;应用上述算法可以方便地建立仿人机械手指的各关节坐标系,从而确定联系∑i和∑i-1的齐次变换矩阵T(D-H转换矩阵)。并且,这样建立的指关节坐标系将极大地方便整个仿人机械手运动学的构造,有助于制定一种步骤统一的关节变量解法。
[0078] 1.2)仿人机械手手指运动学建模
[0079] (a)除拇指外其余四指运动学建模。仿人机械手模型及关节坐标系如图8所示,除拇指外,其他4个手指结构一样,每个手指有4个关节,4个自由度,从根关节到末梢依次为基关节、近基关节、中关节和末梢关节。对于相邻的两个关节,以前一个关节为临时参考坐标系,建立后一个关节的D-H变换矩阵。建立关节j的D-H变换矩阵如下:
[0080]
[0081] 式中, 的右上角小标f代表第f个手指,下标i表示第i个关节,左上角i-1表示相对于前关节i-1。参数ai是Zi-1轴与Zi轴之间距离,di是Zi轴上两条相邻的公垂线之间距离。若关节i是移动关节,则di是关节变量。θi是绕Zi-1轴由Xi-1轴转向Xi轴,使得Xi-1轴与Xi轴平行的转角θi。若关节i是转动关节,则θi就是关节变量。αi是绕Xi轴由Zi-1轴转向Zi轴,使得Zi-1轴与Zi轴同向的转角。
[0082] 根据D-H变换矩阵,由正向运动学,可以得出除拇指外的仿人机械手的手指正向运动学方程的总变换矩阵:
[0083]
[0084] 式中, 表示第f个手指的第i关节附体坐标系相对于参考坐标系的变换矩阵。 表示第f个手指的第i关节相对于第i-1关节的变换(i=1,…,n-1)。n,o,a,p都是列向量,n=[nx,ny,nz]T,o=[ox,oy,oz]T,a=[ax,ay,az]T,p=[px,py,pz]T。除拇指外,其他四指采用侧摆型手指结构,基关节为侧摆转动关键,近基关节、中关节和末梢关节的Z轴(转动轴心)平行。其坐标系如图9所示。由图9中除拇指外其余四指的模型坐标系,可确定手指的关节变量如表2所示。
[0085] 表2
[0086]
[0087] 由D-H矩阵,有矩阵i-1Ai,如式(6)所示,它描述两个相邻的坐标系的关系。
[0088]
[0089] 可以把杆件i上一个不动点pi在第i个坐标系中的齐次坐标与第i-1个杆件上建立的第i-1坐标用式(6)联系起来,
[0090] pi–1=i-1Aipi  (7)
[0091] 式中,pi–1=(xi-1,yi-1,zi-1,1)T,pi=(xi,yi,zi,1)T。这样,可得出A的各次矩阵,其中A0为palm坐标系到∑0坐标系变换矩阵,其他依次为i-1到i坐标系的变换矩阵。能够得出A的各次矩阵,
[0092]
[0093]
[0094] 所以,手掌与手指末端的总变换方程矩阵为
[0095]
[0096] 式中,Cij=CosθiCosθj–SinθiSinθj=Cos(θi+θj),Sij=SinθiCosθj+CosθiSinθj=Sin(θi+θj);i,j=0,1,2,3;根据以上式子,由给定的θ0、θ1、θ2、θ3,通过坐标系的变换,则可求得指尖的位置坐标x,y,z;
[0097] (b)拇指运动学建模。根据仿人机械手的结构及指关节坐标系建立算法,建立仿人机械手拇指坐标系如图10所示,参考坐标系为手掌坐标系Σpalm,它可与拇指基关节坐标系绑定。由式(4)出发,通过D-H矩阵连乘复合变换即可求得关节i(i=1,2,3,4)相对该指基关节的变换矩阵,再结合式(4),可得仿人机械手拇指(令f=1)的正向运动学方程总变换矩阵[0098]
[0099] 式中,palmT1i表示拇指的第i关节附体坐标系相对于参考坐标系的变换矩阵,i-1T1i表示拇指的第i关节相对于第i-1关节的变换(i=1,…,n-1),n,o,a,p都是列向量,n=[nx,ny,nz]T,o=[ox,oy,oz]T,a=[ax,ay,az]T,p=[px,py,pz]T。根据拇指模型坐标系,对拇指关节i(i=1,2,3,4)的关节变量(αi,θi,ai,di)赋值,即可得到相应的拇指变换矩阵。由图10可以确定拇指手指的关节变量如下表3所示。
[0100] 表3
[0101]
[0102] 这样,可得出拇指的各次矩阵A。其中A0为palm坐标系到∑0坐标系变换矩阵,其他依次为i-1到i坐标系的变化矩阵。
[0103]
[0104]
[0105] 所以,在手掌与拇指末端的总变换方程矩阵为:
[0106]
[0107] 式中,Cij=CosθiCosθj–SinθiSinθj=Cos(θi+θj),Sij=SinθiCosθj+CosθiSinθj=Sin(θi+θj);i,j=0,1,2,3;根据以上式子,由给定的θ0、θ1、θ2、θ3,通过坐标系的变换,则可求得拇指指尖的位置坐标x,y,z;
[0108] 以上建立了整个仿人机械手的正向运动学,其逆向运动学建立是一个复杂的过程,需通过反复迭代运算。不过,逆向运动学的建立前提是已知各关节相对于其前一个关节坐标系的转换矩阵。这样,对手指f的关节i(i=1,2,3,4)而言,已知pfii-1之后,其相对前一关节转角
[0109] θfii-1=arctan(pfii-1,y/pfii-1,x)  (19)
[0110] 从而关节i(i=1,2,3,4)相对参考坐标系的转角可表示为
[0111] θfipalm=θf0+θf1palm+θ1f2+…+arctan(pfii-1,y/pfii-1,x)  (20)[0112] 更进一步地,数据手套到仿真虚拟手和仿人机械手的映射关系,其特征在于建立了从数据手套到仿真虚拟手和仿人机械手的关节角度映射方案,并设计了指尖运动直观映射方式。
[0113] 2)数据手套校正及对应关节角度获取
[0114] 2.1)数据手套校正。数据手套在出厂进行校准时,己经尽量获得最大可能的动态范围(Dynamic Range)。动态范围是指输出最大值(手握紧)与输出最小值(手伸展)的差值。
[0115] DynamicValuerange=DynamicValuemax–DynamicValuemin  (21)
[0116] 然而,不同操作者由于手部尺寸、形状差异较大,当佩戴数据手套时,动态范围也会有所差别。因此,为了保证手套输出数据的精确性,需要进行相应的校正。数据手套的校正过程为:操作者佩戴好数据手套后,首先让操作者作出手部完全紧握的动作,接着让操作者作出手部完全伸展的动作,并且反复做这两个动作连续5遍。在此过程中,连续地采集数据手套各个关节的输出信号,并记录各关节输出信号的最大值和最小值。然后把输出信号的最大值,保存为该操作者手部处于完全紧握状态时对应的信号值。把输出信号的最小值,保存为该操作者手部处于完全伸展状态时对应的信号值。由此,可计算出该操作者佩戴数据手套作出各种动作时,数据手套各关节的输出信号范围是:
[0117] Valuerange=Valuemax–Valuemin  (22)
[0118] 式中,Valuerange是数据手套某个关节的输出信号范围值。Valuemax是数据手套某个关节的输出信号最大值,Valuemin是数据手套某个关节的输出信号最小值。
[0119] 2.1)数据手套对应关节角度获取。5DT Data Glove 14Ultra数据手套共有14个传感器,因此能够获取人手以下数据:①拇指的掌骨与根部指段、根部指段与中部指段之间夹角(2个);②手掌与食指、中指、无名指和小指的根部指段之间夹角(4个);③食指、中指、无名指和小指的根部指段与中部指段之间夹角(4个);④相邻手指根部之间夹角(4个)。人手手指各关节的屈伸和收展角度是有一定的限制的,可转动角度有固定的范围。通过相关文献并结合公认的大致范围,分析所得的手指各关节运动角度的限制范围如表4所示。
[0120] 表4
[0121]  拇指 食指 中指 无名指 小指
相对于掌部侧向关节 [0°,80°] [0°,40°] [0°,20°] [0°,20°] [0°,20°]
相对于掌部旋转关节 [0°,80°] [0°,90°] [0°,90°] [0°,90°] [0°,90°]
中间关节 [0°,90°] [0°,108°] [0°,108°] [0°,108°] [0°,108°]
末梢关节   [0°,90°] [0°,90°] [0°,90°] [0°,90°]
[0122] 由此,可求得人手某关节的可转动角度范围是:
[0123] Anglerange=Anglemax–Anglemin  (23)
[0124] 式中,Anglerange是某关节的可转动角度范围。Anglemax是某关节可转动角度的最大值。Anglemin是某关节可转动角度的最小值。每个关节的Anglemax和Anglemmin均可从表4而得。根据数据手套传感器的工作原理,人手手指各关节的运动角度与数据手套各关节的输出信号范围值是线性的对应关系。当手指的某个关节处于某个角度时,由该关节当前的信号值,根据线性对应关系,可求得当前该关节的角度满足
[0125]
[0126] 式中,Anglecurrent是某关节的当前角度值。Valuecurrent是某关节的当前数据手套信号值。把式(22)和式(23)代入式(24),可得
[0127]
[0128] 根据式(25)和表4,由于其中Anglemin均为0,可得数据手套各对应关节角度依次为:
[0129]
[0130]
[0131]
[0132]
[0133]
[0134]
[0135]
[0136]
[0137]
[0138]
[0139]
[0140]
[0141]
[0142]
[0143] 由此,可计算出数据手套对应各关节的当前角度值。
[0144] 3)数据手套到仿真虚拟手和仿人机械手的关节角度映射
[0145] 数据手套关节与虚拟手和机械手关节的差异。本专利申请采用的5DT Data Glove 14Ultra数据手套,共有14个传感器。其中,除拇指外的4个手指每个手指连接掌部的关节(MPJ)和手指中间关节(PIJ)各1个传感器,拇指连接掌腕的关节(TMJ)和拇指中间关节(TMPJ)各1个传感器,5个手指两两之间各1个传感器。这14个关节序号及对应的关节名称如表5所示。而仿人机械手和仿真虚拟手的结构相同,共有21个关节,每个关节一个自由度。其中,每个手指具有4个自由度,共5个手指,手掌处1个自由度。这21个关节序号及对应的关节名称如表6所示。数据手套所能获取的关节角度数据只有14个,少于仿真虚拟手和仿人机械手的21个。通过对表5和表6进行比较,两者差异主要在于:①数据手套缺少了对5个手指末梢关节的角度数据获取。②数据手套可以测量5个手指两两之间共4个夹角的数据,而仿真虚拟手和仿人机械手需要5个数据来控制5各手指相对于掌部侧向关节角度。③数据手套无法获取相当于仿真虚拟手和仿人机械手掌部中间关节的角度。由于存在以上差异,需要对数据手套获取的关节角度数据进行一系列的映射处理,才能对仿真虚拟手和仿人机械手共
21各关节进行有效的控制。
[0146] 表5数据手套获取的关节
[0147]
[0148]
[0149] 表6仿人机械手关节
[0150]
[0151] 人手解剖结构和运动学特点:
[0152] (a)人手的解剖结构。人手是一个复杂的器官,由骨骼,肌键,肌肉,脂肪,血管等组成。手部骨架由27块骨骼组成。包括8块被称为腕骨的短骨,5块掌骨,14块指骨。人手的骨骼解剖结构如图13所示。人手由手掌和5指构成,5指分别是拇指、食指、中指、无名指和小指。其中食指、中指、无名指和小指结构基本相同,每个手指由3个指节和3个关节组成,3个指节分别是近指节、中指节和远指节,3个关节分别是指掌关节、近指关节和远指节关节。拇指与其他4指不同,只有近指节和远指节两个指节,但掌骨节运动能力强大,拇指也具有3个关节,即掌腕关节、指掌关节和远指节关节。
[0153] (b)人手运动学特点。人手手指关节的运动有如下两种运动形式如下:①曲和伸。组成关节的两骨互相靠拢,其夹角逐渐变小的运动为曲;相反,两骨之间夹角逐渐变大的运动为伸。②内收和外展。手指的内收和外展是以通过中指中轴的假想线为准,指体向中指中轴靠拢的运动为内收,而离开中指中轴的运动为外展。另外,还有一种运动称为环转运动,即指体的近端在原位转动,远端环绕作圆周运动,运动时整个指体画成一个尖在近端、底在远端的圆锥形轨迹。环转运动是屈、展、伸、收依次连续的动作。然而,由于人手由关节连接,所以人手各指段的运动也存在着一系列的限制关系,这些限制关系非常复杂,并且某些关系难以量化。因此,在考虑实际需要时,本专利申请选择最主要也是最关键的4点关系:①手指(不包括拇指)的中部指段和尖部指段只能绕其靠近手掌的关节,在平面内做一维的屈伸运动;手指的根部指段除了可以做上述屈伸运动外,还可以绕其指根处做收展)运动。②拇指的掌骨和根部指段都可以做屈伸和收展运动,尖部指段只能做屈伸运动。③手指(不包括拇指)的根部指段与中部指段之间关节的弯曲角度和中部指段与尖部指段之间的弯曲角度存在着如下的近似关系:
[0154] θDIJ=kθPIJ,  (27)
[0155] 式中,θDIJ表示中部指段与尖部指段之间的弯曲角度,θPIJ表示根部指段与中部指段之间关节的弯曲角度,而k取2/3时最合理。④手指各关节屈伸和收展角度有一定的限制范围。
[0156] 针对数据手套所能获取的关节角度数据与仿真虚拟手和仿人机械手关节之间差异分析,根据对人手解剖结构和运动学了解,由此可得到从数据手套到仿真虚拟手和仿人机械手的关节角度映射方案。映射方案如图14所示。
[0157] 首先,由于从数据手套中只能得到手指对于掌部旋转关节与中间关节的弯曲角度的信息,无法得到手指末梢关节的弯曲角度的信息,所以可根据式(27),取k=2/3,则[0158] θDIJ=2/3×θPIJ,  (28)
[0159] 由此,可计算出手指(不包括拇指)末梢关节(DIJ)的角度近似等于手指中间关节(PIJ)角度的2/3。而且,在人手最自然的运动状态下,拇指的末梢关节(TIJ)的角度与拇指指掌关节(TMPJ)的角度也满足此线性关系。因此拇指的末梢关节角度也可由式(28)计算而得。其次,针对数据手套可以测量5个手指两两之间共4个夹角的数据,而仿真虚拟手和仿人机械手需要5个数据来控制5各手指的掌部侧向关节运动的问题,根据实际控制需要,可设计让仿真虚拟手和仿人机械手中指相对于掌部侧向关节角度保持为0。则其余4个手指相对于掌部侧向关节的角度就可以由数据手套测得的5个手指两两之间的4个夹角的角度数据而得。再次,针对数据手套无法获取相当于仿真虚拟手和仿人机械手掌部中间关节的角度的问题,根据对人手的结构分析可知,人手的掌部中间位置只有在无名指和小指相对于掌部旋转到一定角度的时候才会随之内收,由此可根据需要近似求得到仿真虚拟手和仿人机械手掌部中间关节的角度。根据以上方案,从数据手套获取的14个传感器的关节角度数据,合理地映射出了仿真虚拟手和仿人机械手所有共21个关节的角度。
[0160] 4)指尖运动直观映射。当人手佩戴数据手套直观控制仿人机械手进行抓持等运动时,通过观察仿人机械手相对于物体的位置,作出人手指尖的运动,从而控制仿人机械手指尖向适当的方向运动,因此需要将人手指尖位置增量映射为仿人机械手的指尖位置增量。取手掌坐标系作为运动映射的参考坐标系,不失一般性,以食指为例,设某时刻t开始的Δt时间内,人手食指指尖位置增量ΔdH=[ΔxH ΔyH ΔzH]T,仿人机械手食指指尖的位置增量ΔdR=[ΔxR ΔyR ΔzR]T,则有
[0161] ΔdR=kΔdH  (29)
[0162] 式中, 是从人手食指指尖到仿人机械手食指指尖的运动映射矩阵。各手指指尖在x、y、z方向运动独立,因此,
[0163] kxy=kxz=kyx=kyz=kzx=kzy=0  (30)
[0164] 由式(29)和式(310)可得,
[0165] ΔxR=kxxΔxH;ΔyR=kyyΔyH;ΔzR=kzzΔzH,  (31)
[0166] 由式(31)可知,仿人机械手的指尖在x、y、z方向上分别由人手指尖在x、y、z方向上的运动独立控制。
[0167] 当人手运动缓慢,Δt较小时,相邻两位置的手指关节位形相差不大,指尖位置增量近似由手指长度决定,则有
[0168] kxx=kyy=kzz=LR/LH,  (32)
[0169] 式中,LR是仿人机械手手指长度,LH是人手手指长度。由此,可根据人手指尖位置增量映射出仿人机械手指尖位置增量,从而直观控制仿人机械手指尖位置。
[0170] 再进一步地,仿人机械手控制方式,其特征在于包括实时仿真控制和在线控制。实时仿真控制方面,包括交互模块设计,在线控制方面的手部状态确认、消除人手抖动影响及预测显示。
[0171] 本发明的实时仿真控制,具体如下:
[0172] 1)实时仿真控制各模块设计
[0173] (a)实时仿真控制的构架设计。本专利申请研究的基于数据手套的仿人机械手控制系统设计了两类不同的控制方式:实时仿真控制和在线控制。在这一节,我们对实时仿真控制的研究与实现进行介绍。实时仿真控制的控制方式如图15所示。整个实时仿真控制过程,就是不断的读取数据手套输入的同时,同步控制仿真虚拟手跟随人手进行相同的动作序列。实时仿真控制提供给操作者实时而又直观地观察基于数据手套控制的操作效果的功能,也为操作者更好更精确的运用数据手套控制提供了便利。
[0174] 当选用实时仿真控制方式时,若数据手套未经过校正,系统的数据校正模块先对采集的数据进行校正,校正完成后才开始实时仿真控制。首先,系统的数据采集模块实时地不断采集数据手套的输入信息,并且由手指关节角度分析模块将14个传感器的输入信息转换为14个对应关节角度。接着,仿真虚拟手关节角度映射模块把这14个关节角度根据本专利的映射关系,映射为仿真虚拟手的21个关节角度,然后,仿真虚拟手关节角度传送给接口层的仿真虚拟手驱动模块,仿真虚拟手驱动模块驱动仿真虚拟手仿真平台中的仿真虚拟手完成相应动作。同时,动作的完成效果反馈给了操作者。
[0175] (b)数据手套交互模块设计。数据手套交互模块包括数据手套数据采集模块,以及手指关节角度分析模块。在实时仿真控制方式下,其工作原理如图16所示。数据手套交互模块的工作原理是:当实时仿真控制开始时,首先启动数据手套,扫描USB接口检测数据手套,并检查数据手套配置是否正常。若配置不正常,则该控制系统不可正常工作,提示出错信息后,系统结束工作;若配置正常,则判断数据手套是否已经校正。若数据手套未校正,则调用数据手套校正模块对其进行校正;若数据手套已经校正,则数据采集模块开始实时采集当前数据手套的信号值。紧接着关节角度映射模块根据前述方法把当前信号值转换为关节角度,并保存当前关节角度供仿真虚拟手关节角度映射模块使用。然后只要控制系统未收到停止采集的指令,则一直不断地循环数据手套信号值采集和转换为关节角度的过程,从而达到实时采集数据手套输入信号的功能。直到实时仿真控制停止,这一过程结束。
[0176] (c)数据校正模块设计。数据手套使用之前,必须进行校正。在实时仿真控制方式下,数据手套的数据校正模块工作原理如图17所示。当数据手套校正模块启动后,系统开始采集数据手套的当前信号值,当第一次采集信号值时,把当前信号值保存为信号值的最大值和最小值。从第二次采集信号值开始,每次都分别判断当前采集的数据手套14个信号值当中是否有某些信号值大于其对应的原最大值。如果有,则把该信号值对应的最大值更新为当前值。同时,每次分别都判断当前采集的数据手套14个信号值当中是否有某些信号值小于其对应的原最小值。如果有,则把该信号值对应的最小值更新为当前值。系统对校正的时间有限制(如10秒),以上过程不断循环,直到校正时间到达,则把数据手套14个信号的最大值和最小值作为校正数据,校正过程完成。
[0177] (d)仿真虚拟手关节角度映射模块设计。仿真虚拟手关节角度映射模块的映射方案在前面已经阐述,该模块工作原理就是根据前述方案把数据手套获取的14个关节角度数据,映射为仿真虚拟手的21个关节角度数据,在此不再赘述。
[0178] (e)仿真虚拟手驱动模块设计。由于本专利申请使用自主研发的仿真虚拟手平台,因此仿真虚拟手驱动模块是通过调用该平台的作业描述语言开发包(DLL函数库),从而驱动仿真虚拟手运动的。该模块采用实时仿真控制时的工作原理如图18所示。当实时仿真控制开始时,首先初始化仿真虚拟手。若载入仿真虚拟手模型失败,则提示出错后,控制系统结束工作;若载入仿真虚拟手模型成功,则继续后续步骤。接着根据仿真虚拟手关节角度映射模块而得的当前21个仿真虚拟手关节角度数据,设定仿真虚拟手各关节的角度,然后驱动仿真虚拟手运动到位。只要控制系统未收到停止控制的指令,则一直不断地循环根据映射模块而得的仿真虚拟手关节角度驱动仿真虚拟手运动。直到实时仿真控制停止,这一过程结束。由于仿真虚拟手关节角度的数据来源于数据手套实时采集,因此能达到实时驱动仿真虚拟手平台中的仿真虚拟手运动的效果。仿真虚拟手平台中的仿真虚拟手运动能够反馈给操作者,让操作者能直观地观察基于数据手套控制的操作效果。
[0179] 2)实时仿真控制关键技术。对仿人机械手控制来说,实时性是一个相当重要的内容。本专利申请的实时仿真控制是实时控制仿真虚拟手跟随人手进行相同的动作序列。由于要求仿真虚拟手的姿势与操作者手部的运动同步,要求系统具有实时性。本专利在Windows系统上开发,Windows是基于消息机制的系统,任何事件的执行都是通过发送和接收消息来完成的。这样就带来了一些问题,例如,一旦计算机CPU被某个进程占用,或系统资源紧张时,发送到消息队列中的消息就暂时被挂起,得不到实时处理。因此,不能简单地通过消息机制引发一个对定时要求严格的事件。另外,由于在Windows中已经封装了计算机底层硬件访问,所以要想通过直接利用访问硬件来完成精确定时,也比较困难。况且若采用硬件定时完成精确的实时控制需要增加额外的硬件设计,降低了系统的通用性。所以在实际应用中,针对仿人机械手定时精度的要求,要采取相适应的定时方法。
[0180] 本专利申请控制仿真虚拟手并没有必要达到绝对的实时控制,只要在人眼的感觉上达到同步已经能满足需求。人的视觉具有暂留的视觉特点,即人眼对动态图像变化仅能分辨出时间间隔为25毫秒左右的变化,如果图像变化太快,则人眼无法分辨。因此,采用VC++的Timer事件定时器已经完全能符合需求。通过在VC中设置定时器为每25毫秒调用一次回调函数,控制仿真虚拟手完成与操作者手部相同的运动姿势。回调函数每次首先调用数据采集模块读取数据手套的信号作为当前输入,接着调用手指关节角度分析模块得到手指关节的角度,然后通过仿真虚拟手关节角度映射模块映射出虚拟手所有关节的角度,最后驱动仿真虚拟手运动到与人手相同的姿势。这种定时方法比较简便,CPU占用率低,可以实现定时功能,虽然精度不算非常高,存在几毫秒级的误差,但已经完全能够达到本专利申请的实时需求,因此使用该方法实现定时是十分合适的选择。实时仿真控制提供给操作者实时而又直观地观察基于数据手套控制的操作效果功能,也为操作者更好更精确地运用数据手套控制提供了便利。
[0181] 本发明的在线控制,具体如下:
[0182] 1)在线控制各模块设计
[0183] (a)在线控制控制构架设计。本专利申请设计了两类不同的仿人机械手控制方式:实时仿真控制和在线控制。在线控制方式如图19所示。这种在线控制方式属于主从控制方式,它是由人手运动直接控制仿人机械手运动,是一种在线的主从式操作控制方式。在这种主从控制方式下,人手作为操作端,根据抓持任务需要进行抓持决策,做出抓持动作。仿人机械手根据人手运动指令做出相应的动作,然后人手再进一步根据仿人机械手的运动来决定下一个动作。主从控制系统的优点在于它具有很大的灵活性,可以适应随时变化的任务要求。由于仿人机械手的机械运动速度较慢,造成操作时延。因此,本专利申请的在线控制方式是当人手佩戴的数据手套保持一个状态达到一定的时间间隔才认为人手稳定在一个姿势,控制仿真虚拟手和仿人机械手运动到这个姿势。借助仿真虚拟手可及时展示控制效果,解决仿人机械手的运动时延而造成的控制不直观的问题。
[0184] 当在线控制启动时,若数据手套未经过校正,系统的数据校正模块先对采集的数据进行校正,校正完成后才开始进行在线控制。首先,系统的数据采集模块实时地不断采集数据手套的输入信息,并且由手指关节角度分析模块将14个传感器的输入信息转换为14个对应关节角度。此过程不断循环,直到系统根据在线控制的控制策略,确认人手保持在一个状态达一定的时间间隔,才确认人手稳定在一个姿势,则数据采集暂停,继续后续步骤。接着,仿真虚拟手关节角度映射模块把这个姿势状态下的14个关节角度根据映射关系,映射为仿真虚拟手的21个关节角度。同时,仿人机械手关节角度映射模块把这个姿势状态下的14个关节角度根据映射关系,映射为仿人机械手的21个关节角度。然后,仿真虚拟手驱动模块驱动仿真虚拟手仿真平台中的仿真虚拟手完成相应动作,同时仿人机械手驱动模块驱动仿人机械手开始完成同样的动作。由于仿真虚拟手的动作可以瞬间到位,能够及时展示控制效果,从而解决了仿人机械手的机械运动时延而造成的控制不直观的问题。随后,仿人机械手动作的完成效果反馈给了操作者。当仿人机械手运动到位后,数据采集重新启动,继续重复上述过程,直到在线控制结束为止。在线控制时,数据手套校正模块和虚拟手关节角度映射模块的工作原理与实时仿真控制下相同,不再赘述。
[0185] (b)数据手套交互模块设计。数据手套交互模块包括数据手套的数据采集模块,以及手指关节角度分析模块。在线控制方式下,其工作原理与实时仿真控制方式下的工作原理有所不同,如图20所示。在线控制时,数据手套交互模块工作原理在数据手套的启动、扫描、校正部分都与实时仿真控制时相同,不再重复叙述。数据采集部分的工作原理:首先,数据采集模块开始实时采集当前数据手套的信号值,紧接着,关节角度映射模块把当前信号值转换为关节角度。接着系统判断到当前为止,人手的运动是否已经达到稳定姿势。若未达到稳定姿势,则继续循环上述过程。若已经达到稳定姿势,则暂停数据手套的信号采集,同时保存稳定状态时关节角度数据,供仿真虚拟手关节角度映射模块和仿人机械手关节角度映射模块使用。然后,等待其他模块工作完成收到数据采集重新启动的通知后,再重新启动数据采集过程。该过程不断循环,直到收到在线控制结束指令,这一过程结束。
[0186] (c)虚拟手驱动模块设计。在线控制时,仿真虚拟手驱动模块工作原理如图21所示。由图21可见,在线控制时仿真虚拟手驱动模块工作原理与实时仿真控制时虚拟手驱动模块工作原理不同之处仅在于:完成一次动作后,需要等待到新的手部稳定状态姿势,才再次驱动仿真虚拟手运动。
[0187] (d)仿人机械手关节角度映射模块设计。仿人机械手关节角度映射模块的映射方案在前面已阐述,该模块的工作原理就是根据分析出的方案把数据手套获取的14个关节角度数据,映射为仿人机械手的21个关节角度数据。而且,由于仿真虚拟手的结构与仿人机械手的结构相同,因此该模块与虚拟手关节角度映射模块的映射方案相同,在此不再赘述。
[0188] (e)仿人机械手驱动模块设计。由于本专利使用自主研发的仿人机械手,因此仿人机械手驱动模块是通过调用该仿人机械手的操作控制开发包,从而驱动仿人机械手运动。仿人机械手驱动模块在采用在线控制时的工作原理如图22所示。当在线控制开始时,系统首先初始化仿人机械手。若加载仿人机械手硬件设备失败,则提示出错后,控制系统结束工作;若加载仿人机械手硬件设备成功,则继续后续步骤。接着,当系统判断操作者手部保持在一个状态达到一定的时间间隔,确认人手稳定在一个姿势,则根据仿人机械手关节角度映射模块而得的该稳定状态下21个仿人机械手关节角度数据,设定仿人机械手各关节的角度,然后驱动仿人机械手运动。当仿人机械手运动到位后,系统等待,直到新的手部稳定状态姿势到来,才再次驱动仿人机械手运动。该过程直到在线控制结束才停止。
[0189] 2)在线控制关键技术
[0190] (a)手部状态确认。在线控制过程需要首先对人手的状态进行确认。当人手从一个状态运动到另一个状态的过程中,若以25毫秒为时间片划分,存在一系列过渡状态,其中甚至因多余动作而存在不必要的多余状态。若对于每一个这样的过渡状态都驱动仿人机械手运动,由于仿人机械手的运动速度比人手速度慢,无法跟上人手速度,会出现仿人机械手断断续续运动,或做多了不必要的过渡动作。因此,在线控制设计思路是:只有当人手保持一个状态达一定的时间间隔(如3秒),才确认人手稳定在一个姿势。这样过滤掉中间过渡状态,直接驱动仿人机械手运动到所需的姿势。人的视觉具有暂留的视觉特点,即人眼对动态图像的变化仅能分辨出时间间隔为25毫秒左右的变化,如果图像变化太快,则人眼无法分辨。因此,实现的方法是:采用VC的Timer事件定时器,设置定时器为每25毫秒调用一次回调函数,在回调函数当中每次调用数据采集模块读取数据手套的信号并转换为关节角度作为输入,把当前关节角度加入到之前保存的手部关节角度队列当中,判断在队列当中每一次对应关节的角度是否始终不变。因为队列当中仅保存当前时刻之前的一定时间范围内的关节角度数据,所以如果对应关节角度都相等,则可以确认人手已经稳定在一个状态,手部稳定状态确认完成;如果不相等,则人手未达到稳定状态,让最旧的一次数据出队列,然后继续重复上述过程。手部状态确认原理图如图23所示。
[0191] 以持续的时间间隔取3秒为例:使用定时器每隔25毫秒读取一次数据手套的输入,关节角度队列保存当前时刻之前的3000毫秒/25毫秒=120次连续数据。当来自数据手套输入的各个关节角度连续120次没有变化的时候,表明人手状态稳定了3秒,确认手部稳定状态,控制虚拟手和仿人机械手运动。
[0192] (b)消除人手抖动影响。人手保持在一个姿势时,通常会出现微小的抖动,数据手套传感器的灵敏度高,来自数据手套的关节角度相应产生微小的抖动,由此会导致系统误认为人手并非稳定在一个姿势。为了消除人手抖动的不利影响,对于来自数据手套的输入,当在持续的时间间隔内(例如:3秒),所有关节角度变化范围均小于一个值(例如:5度)时,认为这是人手的抖动,仍旧确认人手稳定在同一个姿势。
[0193] 考虑到人手抖动的影响,在原来的手部状态确认方案上进行改进,加入消除人手抖动影响的控制环节,具体实现如图24所示。每次从数据手套获取了当前关节角度后,把它加入到保存当前时刻之前的设定时间范围内的关节角度数据队列中。接着,计算当前各关节角度与队列中的对应关节角度的最小值之差,以及计算队列中各关节角度最大值与当前对应关节角度之差。如果这两个差值任意之一大于抖动范围的阀值(例如:5度),则表明在过去的设定时间范围内,人手关节角度变化较大,并非稳定在一个状态,因此让队列中最旧的数据出队列,并更新队列的各关节角度最大值和最小值,然后等待下一次关节角度数据到达后继续上述过程。而如果这两个差值均小于抖动范围的阀值,则表明在过去的设定时间范围内,人手所有关节的角度变化都非常小,而微小的角度变化是由于人手抖动引起的,因此,可以确认手部已经达到了稳定状态。按照这种算法,成功消除了人手抖动带来的不利影响,使得系统能够顺利的运作。
[0194] (c)预测显示。由于仿人机械手的机械运动速度比较慢,带来了操作时延问题,使得操作者在人手完成动作的同时,无法立刻观察到仿人机械手的效果。仿真虚拟手的仿真运动则起到预测显示作用,解决了此问题。当确认了人手的稳定状态确认后,系统同时驱动仿真虚拟手和仿人机械手运动。仿人机械手的机械运动速度较慢,无法跟上人手的运动速度,产生了操作时延。而仿真虚拟手能够在瞬间完成动作,而且仿真虚拟手的结构和运动方式完全与仿人机械手相同,使得操作者可以通过仿真虚拟手的预测显示功能及时的观察到仿人机械手的最终运动效果,这样即使仿人机械手必须经过一定的时延才能运动到位,由于操作者和仿真虚拟手之间没有时延,不会影响系统的可操作性。由此可见,仿真虚拟手的预测显示功能发挥了重要的作用,有效的改善了系统的操作性能。
[0195] (d)状态反馈。仿人机械手在运动的过程中,能将自身当前各关节角度反馈给控制系统,使得操作者能够得知仿人机械手当前所处的状态,了解仿人机械手的运动情况。而且,当仿人机械手完成其动作后,会把仿人机械手的运动状态信息反馈回控制系统,通知控制系统仿人机械手的本次操作已经完成。由于在人手状态确认后,数据手套的数据采集模块暂停了数据采集,等待仿人机械手运动到位。因此,此时控制系统向数据采集模块发出重新启动通知,在线控制继续进行。由此可见,仿人机械手的状态反馈功能对整个基于数据手套的仿人机械手控制系统的控制流程起到了十分关键的作用。
[0196] 实验1——实时仿真控制实验
[0197] 基于数据手套的仿人机械手具有实时仿真控制和在线控制两种控制方式。实时仿真控制实验方法及步骤是:①启动仿真虚拟手仿真平台,恢复仿真虚拟手的姿势到初时位置。②启动基于数据手套的仿人机械手控制系统。③人手佩戴数据手套,并确认数据手套设备连接正常。④对数据手套进行校正。⑤开启实时仿真控制。⑥人手作出各种动作,从而控制仿真虚拟手实时完成相同的运动。⑦实验结束后停止实时仿真控制,关闭控制系统。在实时仿真控制方式下,选取代表Yes的Y手势进行实验过程,展示实验结果,并对结果进行分析。开启实时仿真控制后,操作者佩戴数据手套做出Y手势,控制虚拟手实时完成相同的动作序列。图25所示为实验现场过程解图。
[0198] 图26所示为这个过程中来自数据手套的14个输入信号每25毫秒采集一次数据,并经过校正转换成关节角度的曲线图,其中横坐标是时间轴,纵坐标是角度值,每条曲线对应数据手套一个关节的角度随时间的变化过程。从图中的曲线可以看到,曲线11和曲线14分别代表传感器10和传感器13,根据图5所示的数据手套传感器分布图,它们分别对应无名指和小指的中间关节。在做Y手势过程中,无名指和小指的中间关节内收,因此它们对应的曲线角度值不断增大,一直到达到最大值。曲线10和曲线13分别代表传感器9和传感器12,分别对应无名指和小指相对于掌部旋转关节,类似的,它们的曲线角度值不断增大,而且它们的增大速率比无名指和小指的中间关节的增大速率慢。曲线1、2、3分别代表传感器0、1、2,它们分别对应拇指相对于掌骨旋转的关节、拇指中间关节和拇指与食指的夹角关节,做Y手势过程中,由于拇指内收这三个关节角度不断增大,因此这三条曲线角度值不断增大。
[0199] 从图25所示实验现场过程截图可观察到,在3.1秒的实验过程中,仿真虚拟手能够跟随人手实时完成各种动作,可见实时性能十分良好。而且,虽然数据手套无法测量各手指末梢关节的角度,但通过使用本专利申请研究的从数据手套到仿真虚拟手的映射方案,能够完成对仿真虚拟手的手指末梢关节的正确控制,而且控制效果良好。从整个实验过程可证实,数据手套校正方案、对应关节角度获取方案以及从数据手套到仿真虚拟手映射方案的正确性和合理性。由实验结果可知,基于数据手套的仿人机械手的实时仿真控制能够很好的达到预期的实验效果。
[0200] 实验2——在线控制实验
[0201] 在此对基于数据手套的仿人机械手控制系统的在线控制进行实验。在线控制实验方法及步骤是:①确认仿人机械手硬件设备连接正常,恢复仿人机械手的姿势到初时位置。②启动仿真虚拟手的仿真平台,恢复仿真虚拟手的姿势到初时位置。③启动基于数据手套的仿人机械手控制系统。④人手佩戴数据手套,并确认数据手套设备连接正常。⑤对数据手套进行校正。⑥开启在线控制。⑦人手作出动作并稳定在一个手势,从而控制仿人机械手和仿真虚拟手运动到相同的手势。⑧通过仿真虚拟手的预测显示功能及时观察控制效果,并等待仿人机械手运动到位,观察反馈效果。⑨重复⑦~⑧。⑩实验结束后停止在线控制,关闭控制系统。
[0202] 在线控制方式下,选取代表夸奖的手势进行实验过程,展示实验结果,并对结果进行分析。开启在线控制后,操作者佩戴数据手套做出夸奖手势,并稳定在该状态保持3秒,从而控制仿人机械手和仿真虚拟手完成相同的夸奖手势。图27所示展示了实验现场的初时和结束状态图。图28显示了这个过程中来自数据手套的14个输入信号每25毫秒采集一次数据,并经过校正转换成关节角度的曲线图,其中横坐标是时间轴,纵坐标是角度值,每条曲线对应数据手套一个关节的角度随时间的变化过程。
[0203] 由图28可见,在表示时间轴的横坐标为0至约2500的区间,各条曲线的纵坐标值不断变化,这是数据手套从手部完全伸展的状态运动到夸奖手势的过程。在横坐标为约2500至5500的区间,是保持手势3秒钟的过程,在此过程中,各条曲线的纵坐标值虽然有变化,但变化范围均不超过阀值5度,这是人手抖动造成的,系统能自动消除抖动影响,仍确认人手稳定在该手势3秒。在5500毫秒之后,采集暂停,系统根据5500毫秒时的关节角度数据,映射到所有关节后,控制仿真虚拟手和仿人机械手完成夸奖手势。从整个实验过程可见,在线控制的手部状态确认过程和消除人手抖动影响的控制效果均十分良好,仿真虚拟手也起到了良好的预测显示作用,成功地解决了仿人机械手的运动时延而造成控制不直观的问题。由实验结果可知,基于数据手套的仿人机械手在线控制能很好的达到预期效果。
[0204] 以上所述之实施例子只为本发明之较佳实施例,并非以此限制本发明的实施范围,故凡依本发明之形状、原理所作的变化,均应涵盖在本发明的保护范围内。
QQ群二维码
意见反馈