APP下载

基于语音控制的机械臂3D虚拟操作实验平台设计

2018-06-05张志明许春权

实验技术与管理 2018年5期
关键词:物块转轴工件

马 睿, 张志明, 许春权

(同济大学 电子与信息工程学院, 上海 200092)

实践教学在自动化及相关专业学生的培养中占有极其重要的作用,需要在理论的指导下着力培养学生的综合创新能力[1-2]。机械臂是近代自动控制领域出现的一项新型技术装备[3],是工业机器人系统中传统的任务执行机构。在专业综合实验教学中,机械臂实验可以多方面、多层次培养学生的工程实践能力和创新能力[4-6]。但在教学实践中,由于机械臂的动作控制开发过程繁琐,学生易产生畏难情绪。本文结合可视化及语音识别人机交互技术,设计与实现语音控制下多自由度机械臂运动3D虚拟显示实验平台,以调动学生学习的积极性,提高实践教学效果。

1 实验设计概述

随着计算机技术的发展,引入人机交互技术后的机械臂仿真控制操作开发成为实验教学和实际应用的热点课题[7-12]。在工业生产中,机械臂常用于抓取工件并将其放到指定位置。尽管机械臂的形态各有不同,但其共同点是接收指令,然后精确地定位到三维空间上的某一点进行作业。应用仿真技术,建立一个三自由度虚拟机械臂,包括1个沿z轴的滑动副和2个xoy平面的转轴(见图1),完成从三层工件存储货架存放位置将工件移动到工作台台面指定位置的任务。

图1 三自由度(虚拟)机械臂的任务环境

美国国家仪器公司(National Instruments,NI)的LabVIEW软件采用数据流方法驱动图形化编程语言,并提供了前沿工具和IP,从而降低了编程的复杂性,简化复杂的系统设计[14-15]。LabVIEW保持与其他工具软件的良好兼容性[15],可以与其他软件和编程源语言进行互操作,并复用其代码或程序库。LabVIEW软件自7.1版本以后,自身能提供3D仿真函数,利用三维图片控件实现用户3D虚拟显示仿真[14-15]。微软公司从Windows XP开始,在其操作系统内置了语音识别引擎[13],无需购买第三方商业引擎即可使用户体验到语音系统的独特魅力。

语音控制下多自由度机械臂运动3D虚拟显示实验的具体应用为:LabVIEW的3D显示窗口中摆放着机械臂、工作台、工件存储货架以及不同颜色的工件物块,用户对着麦克风说出所要转移工件的颜色名称,机械臂接收到语音指令后抓取货架上相应颜色的物块并放置到工作台指定的位置上。系统工作流程如图2所示。工作流程可以简述为:首先通过麦克风采集用户的语音信息,随后传递给语音识别模块进行处理,生成与语音相符的字符串,然后令其参与LabVIEW的机械臂运动状态解算控制算法计算,最终计算得出3D机械臂模型相应的运动参数并动态显示机械臂运动过程。

图2 实验系统工作流程

2 实验设计实践

语音控制下多自由度机械臂运动3D虚拟显示实验的设计重点和关键在于机械臂3D模型的建立、运动状态解算控制算法、运动状态动态显示和语音系统的调用功能。

2.1 三维建模

LabVIEW环境下的3D建模遵循“先创建对象,后添加对象”的函数调用规则,必要时,还可以对图形的尺寸、颜色、位置等进行设置。一个复杂的3D模型往往由多个零件单元构成,各个零件单元之间存在层级关系或者并列关系。层级关系举例如图3(a)所示,零件1、2、3的级别依次降低,其特点是:零件1运动时,零件2和3会相对于零件1静止,但跟随其运动;零件2的运动会引起零件3的跟随。并列关系则如图3(b)所示,环境作为最高级对象,其下的零件1、2、3并列,三者的运动互不影响,各自独立。

图3 3D模型零件单元关系

在机械臂运动虚拟显示实验环境中,需要建立机械臂、工作台、货架和工件等的3D模型。很显然,这4类对象属于并列关系,而组成机械臂的各个零件单元之间属于层级关系。因为工作台和货架处于静止状态,其各个零件组成单元之间的关系无需特别设置。受篇幅所限,实验系统中每个零件单元的尺寸、颜色、位置等信息不再赘述,模型具体结构和关系可参见图4。

图4 多自由度机械臂运动虚拟显示实验3D模型组成结构

2.2 运动状态解算控制算法

如图1所示,在三自由度(虚拟)机械臂运动状态解算控制中,若设沿z轴运动的滑动副位移为d,xoy平面中转轴1和转轴2的转角分别为θ1和θ2,杆1的长度为L1,杆2的长度为L2,则从位于底座中心的基坐标系到末端执行器坐标系依次经历的相对坐标变换为:沿+z轴方向平移d,绕+z轴旋转θ1、沿+y轴方向平移L1、绕+z轴旋转θ2、沿+y轴平移L2。据此可写出转移矩阵方程[3],如式(1)所示。

(1)

式中,(x,y,z)是三维空间中某一点在基坐标系下的坐标,而(x′,y′,z′)是空间中同一位置点在末端执行器坐标系下的坐标。如果该点与末端执行器坐标系原点重合,那么(x′,y′,z′)=(0,0,0)。

若已知末端执行器需要到达空间位置(x,y,z),求解机械臂的运动姿态参数d、θ1和θ2,则属于位姿解算;反之,若已知d、θ1和θ2,求解(x,y,z),则属于端点解算。将已知的设定条件

L1=L2=1.5,(x′,y′,z′)=(0,0,0)

代入式(1),分别进行两种解算,得到如式(2)、式(3)和式(4)形式所示的解析解(式中将θ1定义为theta1,θ2定义为theta2)。

位姿方程的解算结果有2个解。根据运动姿态特点,θ2为正的一组解称为“上折解算”,θ2为负数的一组解称为“下折解算”。根据图1所示3D模型的位置,去程(机械臂从货架抓取工件)适合采用上折解算,回程(机械臂放置工件到工作台)适合采用下折解算。为简化编程工作,在LabVIEW中调用Math Script节点,直接使用Matlab的Mcode解算后,将式(2)、式(3)和式(4)封装成去程解算、回程解算、端点解算函数,配置输入输出接线端生成独立的子VI,供控制算法模块根据运行需要在后台调用。

(2)

(3)

(4)

2.3 运动状态动态显示

LabVIEW采用循环刷新的方式实现3D图形的运动状态动态显示,它类似于Flash动画的工作机制。运动的方式主要分为平移和旋转两种,机械臂的运动由其滑动副的平移、转轴1和转轴2的旋转叠加而成。

以转轴1的运动控制为例,每次进入循环时将转轴1的转角设置成“渐变theta1”的值,然后再获取其转角写入“当前theta1”。只要“渐变theta1”在运动期间连续变化,获取“当前theta1”后即可调用位姿解算函数计算出下一位置“最终theta1”,解算其运动速度和加速度参数,控制3D视图中的转轴1对象随之连续转动显示。转轴2、滑动副的运动控制可以用同样的方法实现。

当机械臂的末端执行器位置移动到指定的工件物块存放位置时,启用附着效果,设置附着标志,完成夹持动作。以绿色工件物块为例,当程序中“附着-绿”标志为真时,每次循环都采集当前的d、θ1和θ2,调用端点解算函数计算出当前末端执行器坐标(x,y,z),并将所选的绿色工件物块对象平移至该点位置。当“附着-绿”标志为假时,则不进行任何操作,绿色工件物块停在当前位置(货架或工作台上)。其他颜色的工件物块处理方式与此类似。

2.4 语音识别模块

LabVIEW本身不具有语音识别功能,必须调用外部程序来实现该功能。借助Windows自带的语音识别引擎,结合LabVIEW与其他工具软件的良好兼容性,可以简单、方便地实现语音指令控制的识别与连接。语音识别模块的程序如图5所示。

图5 语音识别模块程序组成

图5中,模块A是语音识别部分的主程序,在“词库”中分别写入所要执行的语音指令字符串{“绿色”,“黄色”,“蓝色”,“红色”},用于分辨所要抓取工件对象的颜色。“字符串”组件是创建的Spoken Text的引用,相当于指针,二者连接至子VI“SR.vi”的输入端端口。

模块B显示的是“SR.vi”的源代码,编程所用的函数节点来自“互连接口--.NET”函数选板。双击“构造器节点”,在对话框中选择所要调用的外部语音识别引擎(System.Speech程序集)中的功能函数(Choices、Grammar Builder、Speech Recognizer等)。程序首先为“词库”中的词条建立语法,然后传递给语音识别功能函数,最后通过“事件回调注册”节点注册Speech Recognized事件。这样,当该事件(语音识别出结果)发生时,在事件驱动机制下就能启动运行静态VI“CallBack_SR.vi”。其中Spoken Textbox来源于图5模块A中Spoken Text的引用,作为用户参数被送到该静态VI中。

模块C显示的是模块B中子VI“CallBack_SR.vi”的源代码,该VI实现的功能是将语音识别的结果以文本的格式写入Spoken Text变量。值得注意都是,子VI的数据类型和数据内容必须严格与注册事件匹配。模块B的注册事件原型是SpeechRecognized(Object sender, SpeechRecognizedArgs e),因而输入参数簇“Event data”中的2个.NET句柄的类也必须分别设为对应的Object和SpeechRecognizedArgs类型。采用图形化编程连接Windows自带语音识别引擎的操作和代码非常简洁,将模块A中所述的代码插入实验主程序中,就可以实现语音系统与3D显示控制模块(包括运动状态解算和状态动态显示)的连接。

3 实验效果与分析

综合以上所述的功能模块,基于LabVIEW平台编程,实现语音控制下多自由度机械臂运动3D虚拟显示实验,实验程序流程框图如图6所示。程序结构采用“循环内嵌事件”,保证实时响应语音识别模块所识别得到的字符串指令,及时、高效地解算运动状态参数,在指定窗口中显示机械臂的工作状态。

图6 实验程序流程图

开始运行实验程序时,仿真窗口中机械臂和工件的3D模型置于初始位置待命,实验程序在后台同时启动Microsoft Speech Recognizer语音识别引擎。当实验者对着PC机的话筒说出绿色、黄色、蓝色、红色之中的一个指令词语时,机械臂就会虚拟抓取相应颜色的工件物块并转移放置到工作台的指定位置上。实验结果表明:利用LabVIEW图形化编程语言,结合Microsoft语音识别引擎,可以实现语音控制机械臂运动状态3D可视化显示实验的快速开发,提高学生的学习兴趣和实践效率。

4 总结与展望

语音控制下机械臂运动3D虚拟显示实验的工程

实例,增加了机械臂运动控制实验的内容,使实验内容更加丰富,让学生融会贯通多个学科的理论知识和工程知识并付诸实践,强化培养学生的工程能力和创新能力。在该实验基础上,只要扩充语音词条词库,增加相应的指令响应动作,就可以让机械臂的运动功能更复杂、更丰富。另外,得益于LabVIEW的数据通信接口,语音指令控制的对象可以从虚拟仿真模型扩展为真实的机械臂硬件,能更好地实现仿真与实际的统一。运行结果表明:原型实验系统达到了预期设计效果和任务要求。目前该虚拟操作实验平台的设计还不够完善,例如3D模型建模比较粗糙,运动状态解算过程使用的是理想简化模型,仿真显示的不是机械臂运动实体姿态信息。这些不足都需要在进一步的研究中加以改进与实现。

致谢:特别感谢上海仪酷智能科技有限公司技术总监王立奇对语音识别技术的大力支持!

参考文献(References)

[1] 李擎,崔家瑞,阎群,等.工程教育认证下自动化专业实践类课程改革[J].实验技术与管理,2016,33(12):225-228.

[2] 陈以,杨青,王改云.自动化学科专业人才培养实践创新体系的建设[J].实验技术与管理,2014,31(4):16-19,24.

[3] 孙宏昌.机器人技术与应用[M].北京:机械工业出版社,2017.

[4] 赵京,卫沅.机器人实验教学系统创新实践方法及应用[J].实验室研究与探索,2015,34(11):210-212,224.

[5] 许超,卢雪梅,郑艳龙,等.六自由度机械手课程设计与实现[J].实验技术与管理,2017,34(4):199-201,204.

[6] 范剑,李绣峰,李军.构建示教型工业机械手实验平台研究[J].实验技术与管理,2012,29(9):72-74.

[7] 钱小平,杨庆华,荀一,等.基于Java3D的机械臂三维虚拟场景创建及运动学仿真[J].机电工程,2014,31(1):47-51,56.

[8] 唐立才,张海涛,张敬鹏,等.基于OSG的空间机械臂三维仿真平台的设计与实现[J].计算机测量与控制,2015,23(3):987-989,994.

[9] 张学军,唐勇,回文静.基于组态技术的机械手控制系统的开发[J].实验室科学,2010,13(5):148-150.

[10] 姚晓通,潘影丽,高宇.实验教学SCARA机械臂控制算法研究与实现[J].计算机应用与软件,2017,34(6):96-100,112.

[11] 谭丽芬,田志强,刘梁,等.语音交互技术在机械臂遥操作中的应用研究[J].航天医学与医学工程,2017,30(4):298-303.

[12] 陈义平,时颖,袁明明.多功能教学用机器人的设计与实现[J].实验室研究与探索,2013,32(2):84-87.

[13] 黄妙燕,王咸锋.基于Microsoft语音识别引擎的语音识别系统的设计[J].电脑开发与应用,2010(9):74-75.

[14] 耿克达,郭建国,高智刚,等.LabVIEW下的变质心机构3D虚拟显示系统设计[J].计算机测量与控制,2011,19(9):2245-2247,2251.

[15] 陈树学,刘萱.LabVIEW宝典 [M].2版.北京:电子工业出版社,2017.

猜你喜欢

物块转轴工件
大型汽轮发电机转轴接地方式及轴电流分析
对2016年江苏卷第14题的进一步探析和论证
探究传送带模型中两者共速后保持相对静止的条件
考虑非线性误差的五轴工件安装位置优化
轧机转轴无损检测及修复技术
三坐标在工件测绘中的应用技巧
小细节大功效 浅谈笔记本屏幕转轴设计
焊接残余形变在工件精密装配中的仿真应用研究
一种非圆旋转工件支撑装置控制算法
粗糙水平面上弹簧振子运动的研究