发明名称 基于双目视觉的人机交互式机械手控制系统和控制方法
摘要 本发明公开了一种基于双目视觉的人机交互式机械手控制系统和控制方法,它由以下四部分组成:实时图像采集装置、激光引导装置、可编程的控制器以及驱动装置;所述的可编程控制器由双目立体视觉模块、三维坐标系变换模块、逆向反解机械手关节角模块和控制模块组成。采用提取实时图像采集装置双目图像中的色彩特征作为控制机械手的信号源,通过双目立体视觉系统和三维坐标系转换计算得出视野实时图像中红色特征激光点的三维信息,来控制机械手进行人机交互式的跟踪目标的操作。本发明可非常有效地对运动中的目标物体进行实时跟踪抓取,应用领域十分宽广,如智能上假肢、排爆机器人、助老助残机械手等等。
申请公布号 CN103271784B 申请公布日期 2015.06.10
申请号 CN201310223530.8 申请日期 2013.06.06
申请人 山东科技大学 发明人 樊炳辉;张发;王传江;张坤;陈毕胜
分类号 A61F2/70(2006.01)I;B25J3/00(2006.01)I;B25J9/18(2006.01)I 主分类号 A61F2/70(2006.01)I
代理机构 济南金迪知识产权代理有限公司 37219 代理人 段毅凡
主权项 1.一种基于双目视觉的人机交互式机械手控制系统,其特征在于,它由以下四部分组成:实时图像采集装置、激光引导装置、可编程的控制器以及驱动装置;其中:(1)所述的实时图像采集装置由两个无线摄像机装置或USB摄像头组成;(2)所述的激光引导装置是由一个佩戴架和设在佩戴架上的迷你型激光器构成;(3)所述的可编程的控制器由双目立体视觉模块、三维坐标系变换模块、逆向反解机械手关节角模块和控制模块组成;其中:(4)双目立体视觉模块用于对激光器打在无线摄像机装置或USB摄像头视野的红色激光点进行检测识别和定位;(5)三维坐标系变换模块用于将双目立体视觉模块测得的摄像机光心坐标系与激光点坐标系之间的关系换算成机械手始端的基础坐标系与目标激光点世界坐标系之间的关系;(6)逆向反解机械手关节角模块是一个已训练好的人工神经网络模型,其主要作用是,当机械手系统获得随机工作目标在基础坐标系的三维空间坐标值后,将该三个坐标值和某种欠定义的代偿姿态描述作为网络模型的输入,以此来快速、并行地得到机械手各关节的某种可行的求解值;该模块的具体训练方法为:第一步、根据随机工作目标在操作空间的三维坐标值,画出多自由度上假肢的结构坐标关系图;第二步、根据多自由度上假肢的结构坐标系关系,将其各种参数列表,表中包括:上假肢各个连杆的扭转角度数α<sub>n</sub>上假肢各个连杆的公垂线长度a<sub>n</sub>,上假肢相邻连杆的间距d<sub>n</sub>;各个关节变量及其工作范围,即转动角度范围θ<sub>n</sub>;cos(α<sub>n</sub>),sin(α<sub>n</sub>);第三步:根据上述列表中的α<sub>n</sub>、α<sub>n</sub>、d<sub>n</sub>、θ<sub>n</sub>、cos(α<sub>n</sub>)、sin(α<sub>n</sub>)参数,列出各杆件的A矩阵和T矩阵;其中A矩阵描述的各个杆件坐标系相对于其前面一坐标系的位置与姿态,T矩阵描述的是假肢各个杆件末端的坐标系在操作空间的位置与姿态,以及假肢的手部在操作空间的位置与姿态;第四步:按照参数列表中各个关节的取值范围、A矩阵和T矩阵,对假肢的关节空间进行扫描,在扫描关节空间过程中,将第i次扫描的关节空间的矢量值写成q<sub>i</sub>,其中i=1,2…,n;第五步:将手部操作空间位置与姿态的描述简化整理写成p<sub>i</sub>(i=1,2…,n),简化整理方法为:<maths num="0001"><![CDATA[<math><mrow><mfenced open='' close=''><mtable><mtr><mtd><msub><mi>p</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><mmultiscripts><mi>T</mi><mprescripts/><mn>5</mn><none/></mmultiscripts><mrow><mo>(</mo><mn>1,3</mn><mo>)</mo></mrow><mo>=</mo><mmultiscripts><mi>a</mi><mi>xi</mi><none/><mprescripts/><mn>5</mn><none/></mmultiscripts></mtd></mtr><mtr><mtd><msub><mi>p</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mn>2</mn><mo>)</mo></mrow><mo>=</mo><mmultiscripts><mi>T</mi><mprescripts/><mn>5</mn><none/></mmultiscripts><mrow><mo>(</mo><mn>2,3</mn><mo>)</mo></mrow><mo>=</mo><mmultiscripts><mi>a</mi><mi>yi</mi><none/><mprescripts/><mn>5</mn><none/></mmultiscripts></mtd></mtr><mtr><mtd><msub><mi>p</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mn>3</mn><mo>)</mo></mrow><mo>=</mo><mmultiscripts><mi>T</mi><mprescripts/><mn>5</mn><none/></mmultiscripts><mrow><mo>(</mo><mn>3,3</mn><mo>)</mo></mrow><mo>=</mo><mmultiscripts><mi>a</mi><mi>zi</mi><none/><mprescripts/><mn>5</mn><none/></mmultiscripts></mtd></mtr><mtr><mtd><msub><mi>p</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mn>4</mn><mo>)</mo></mrow><mo>=</mo><mmultiscripts><mi>T</mi><mprescripts/><mn>5</mn><none/></mmultiscripts><mrow><mo>(</mo><mn>1,4</mn><mo>)</mo></mrow><mo>=</mo><mmultiscripts><mi>p</mi><mi>xi</mi><none/><mprescripts/><mn>5</mn><none/></mmultiscripts></mtd></mtr><mtr><mtd><msub><mi>p</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mn>5</mn><mo>)</mo></mrow><mo>=</mo><mmultiscripts><mi>T</mi><mprescripts/><mn>5</mn><none/></mmultiscripts><mrow><mo>(</mo><mn>2,4</mn><mo>)</mo></mrow><mo>=</mo><mmultiscripts><mi>p</mi><mi>yi</mi><none/><mprescripts/><mn>5</mn><none/></mmultiscripts></mtd></mtr><mtr><mtd><msub><mi>p</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mn>6</mn><mo>)</mo></mrow><mo>=</mo><mmultiscripts><mi>T</mi><mprescripts/><mn>5</mn><none/></mmultiscripts><mrow><mo>(</mo><mn>3,4</mn><mo>)</mo></mrow><mo>=</mo><mmultiscripts><mi>p</mi><mi>zi</mi><none/><mprescripts/><mn>5</mn><none/></mmultiscripts></mtd></mtr></mtable></mfenced><mo>,</mo><mrow><mo>(</mo><mi>i</mi><mo>=</mo><mn>1,2</mn><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>n</mi><mo>)</mo></mrow></mrow></math>]]></maths>即:在p<sub>i</sub>(i=1,2…,n)中只保留了手部Z<sub>5</sub>轴姿态和手心位置的描述;第六步:经过足够多的n次扫描后,使得假肢或机器人各关节的各种组合空间都能被离散化扫描到,使假肢在操作空间的位置与姿态通过离散化获得;将前述的q<sub>i</sub>(i=1,2…,n)数据整理组成集合{Q},将前述的p<sub>i</sub>(i=1,2…,n)中的数据整理组成集合{P};集合{Q}将用来作为训练人工神经网络的目标样本集;集合{P}将被用来作为训练人工神经网络的输入样本集;第七步:用集合{Q}作为训练人工神经网络的目标样本集,用集合{P}作为训练人工神经网络的输入样本集,对人工神经网络进行训练,得到训练好的人工神经网络求解模型;当人工神经网络的实际输出为<img file="FDA0000683218630000033.GIF" wi="98" he="81" />时,用误差{e}去训练人工神经网络,其中:<maths num="0002"><![CDATA[<math><mrow><mo>{</mo><mi>e</mi><mo>}</mo><mo>=</mo><mo>{</mo><mi>Q</mi><mo>}</mo><mo>-</mo><mo>{</mo><mover><mi>Q</mi><mo>^</mo></mover><mo>}</mo></mrow></math>]]></maths>训练的结果使得{e}→{0};第八步:将多自由度上假肢关节空间参数求解模型的输入向量p<sub>n</sub>表示为:<maths num="0003"><![CDATA[<math><mrow><msub><mi>p</mi><mi>n</mi></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><msub><mi>x</mi><mi>s</mi></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mi>s</mi></msub></mtd></mtr><mtr><mtd><msub><mi>z</mi><mi>s</mi></msub></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>第九步:将p<sub>n</sub>作为输入向量输入前述的人工神经网络求解模型,迅速得到多自由度上假肢关节空间的运动角度;(7)控制模块用于发出跟踪指令、抓取目标指令、松开目标指令、手部抬升指令、手部下降指令、示教目标指令和停止指令;(8)所述的驱动装置包括驱动器和驱动机械手的电机;当驱动器接收到控制模块发送来的动作指令时,会即刻驱动相应的电机运转,来对机械手各个关节角进行调控,最终完成对机械手的控制。
地址 266590 山东省青岛市经济技术开发区前湾港路579号山东科技大学