APP下载

双臂机器人编程框架及在组装中的应用研究

2020-05-08张春芳张传俊李艳华

鞍山师范学院学报 2020年2期
关键词:双臂手势命令

张春芳,张传俊,李艳华

(安徽工商职业学院 应用工程学院 安徽 合肥 231131)

作为仿生人手的机器人,双臂机器人在制造系统中的应用使得制造系统的灵活性增加,这成了当前全球研究的焦点[1-3].双臂机器人在装配工业的应用不仅解决了单手臂机器人灵活性差、所需夹具复杂的缺点,同时也节省了空间,极大地节省了工业成本.双臂机器人装配操作自动化编程系统包括演示编程(PBD)和演示人机交互技术的指导性系统[4,5],该系统通过演示编程/学习(PBD/LBD)方法来获得机器指令.

目前,许多的研究者结合PBD系统在人机交互方面做了很多工作,如利用AR技术计算机器人路径时考虑工件真实数据和工艺限制.到目前为止,工业双臂机器人还没有包括特定的用户友好编程方法和环境[6,7].机器人制造商通常根据主从臂的运动轨迹来实现协同运动,实现更复杂操作的难点则集中在对双臂机器人编程上.通常情况下,人类对机器人进行在线编程,同时部分研究者在使用离线编程工具来开发用户友好的编程框架方面也做了大量的工作.为了便捷机器人的操作,方便非专业人员使用,需要一个软件框架来简化机器人编程,减少编程任务的复杂性和时间.以此为出发点,本文介绍了双臂机器人的控制,描述了编程概念的直观接口,同时通过装配案例的研究,提出一种用于双臂机械手的编程框架.

1 双臂任务导向编程

1.1 复杂动作分析

类人机器人的一个现实思想是模仿由两个手臂执行的简单动作,就像人类一样[8].而类似人类双手的任务有望简化双臂机器人编程和监控.对人双手活动时的复杂动作进行分解,同时和人机界面相结合,便于用双臂进一步编程复杂的装配过程.这种分解通过同时定义操作顺序简化编写复杂装配任务所需的信息.该序列包括双臂操作,每个操作的参数,例如,开始和目标机器人位置,都从人机界面、语音命令和手势获取.

1.2 机器人编程语言

机器人编程语言分为:(1)面向动画,具有通用编程程序,并专注于“如何完成”;(2)面向任务,其重点是“做什么”而不是“如何做”.面向任务的编程与界面的开发相关联,该类语言有助于人类将高级命令传递给一系列机器人的运动和动作实施.以面向任务编程语言为基础提出的框架基于多模式交互式编程技术,可进行更轻松、更可靠和更健壮的机器人编程,该方法包括3个模块:机器人语言,人类意图识别和人类语言.机器人语言包括用于双手任务的高层双臂机器人库,即用于支持双臂运动控制;人类意图识别实现了公认的人类手势和机器人语言命令之间的映射;人类语言包括所有传感器/接口和所选择的交互方法,例如,手势、语音命令和图形用户界面(GUI).

2 用于机器人编程的直观界面

2.1 人机交互架构

通过从传感器或设备上获取数据,通过类人行为实现人机交互.其中,用户友好的界面最为重要,如移动设备、个人电脑和触摸屏上的应用程序.如果以人为中心设计并可靠地实现,就会被用户广泛接受.将用户友好的界面与自然的交互手段相结合,例如,语音命令和身体手势,丰富了人类对机器人编程的能力[9].

当前使用的人机交互框架结构是基于机器人操作系统中的ROS来建立不同模块之间的通信.该人机交互编程框架由人角色和工业双臂机器人组成.该系统使用Kinect Xbox进行身体手势识别,使用麦克风捕捉口授命令.

双臂机器人服务包括用于双手操作的机器人库,使程序员能够通过许多接口调用它.双臂机器人功能包括:(1)人类的意图识别,为两个机器人手臂编写一个接近运动的程序;(2)图形用户界面,用于提供完成机器人运动所需的信息.在这个直观的编程框架中,使用骨骼跟踪传感器,通过人体姿态、手势跟踪器和语音命令识别器和机器人进行交互,口头命令和手势的互换使用确保了系统具有更高的鲁棒性.

此外,机器人交互界面通过提供关于特定组装操作的信息对机器人进行指令的所有命令的主要模块,保证编程步骤的正确执行.基于该体系结构,双手臂机器人服务能够通过TCP/IP通信协议,使用简单的“服务器”程序与机器人控制器进行通信,以传输人类命令.这个模块的作用是双重的.一方面,它负责将高层指令传递给机器人控制器,并将其转化为机器人的实际动作;另一方面,该模块通过ROS与人工服务不断通信.这种通信在人工服务控制循环中起着重要的作用,它通过命令确保编程过程的成功执行.每一步的结果是将双臂机器人的位置存储在数据库模块中.

2.2 人类命令映射到机器人控制和运动

一般情况下,通过用户友好的编程接口为机器人编程.当选择双手模式手动操作时,自动设置机器人状态信息,即基础帧、工具帧、用户帧、协作运动等的选择.命令序列由人工服务控制,通过基于ROS的体系结构传输给机器人服务,通过TCP/IP协议到达机器人控制器.在机器人控制器中运行的服务器程序支持人机交互编程框架.

在机器人控制器和运行在外部基于Linux的PC上的机器人服务之间打开一个套接字.信息通过这个套接字交换,遵循从服务读取信息的概念,在机器人控制器中执行信息,并响应执行成功的服务.系统通过if条件语句为不同的指令提供多个条件,比如,RECORD、ROTATE、UP、DOWN、RIGHT、LEFT.根据每一条指令,在笛卡尔坐标系中机器人进行平移和旋转运动,直至从人类接到一个新的语音指令.

3 组装的案例研究双臂任务导向编程

3.1 运动控制描述

为了达到两个6自由度工业机器人之间的协调,编程必须实现接触、非接触、过渡的等对称任务.工具机器人在连接到参考机器人的末端执行器的板上写入3个字母“J”“O”和“Y”,其中“J”表示机器人基坐标系,“O”表示实际工作环境中工件的坐标系,“Y”表示仿真单元中工件坐标系.

(1)相对位姿的期望轨迹:相对路径[XR,YR,ZR]T的视图如图1所示.在XR-YR平面上写入3个字母的单词“JOY”.在轴ZR方向上的位移被设定为超过书写板的位置,以便在写入期间保持接触.相对位置的每个轨迹由27个字段(包括直线和曲线)组成,每个字段由5阶多项式轨迹数列[XR(t),YR(t),ZR(t)]T组成,其随时间变化如图2所示.在整个任务中(t=0~66 s),所需的姿态轨迹被设计成使右臂的末端执行器保持垂直于连接到左臂的末端执行器,这使得在ΣR中的滚动俯仰-偏航角为[αR,βR,γR]T=[π,0,0]T.因此在该过程中仅需要XR的期望值,而不是每个末端执行器的各个期望值.

图1 期望轨迹视图

图2 期望轨迹

(2)期望的相对阻抗:在6自由度任务空间的约束方向ZR中,需要高阻尼和低刚度的柔顺行为,这是为在接触状态和非接触状态之间执行10次过渡以抵抗书写板的刚性.为了验证沿着ZR的控制能够精确且稳定地实现期望的相对阻抗,测试沿着ZR的3个过阻尼阻抗动态,阻尼比ζZR=4,5,6.对于其余的自由度,在临界阻尼阻抗ζ=1时,需要具有低阻尼和高刚度性的精确写入.对于每个过阻尼ζZR,设定所需相对质量矩阵MRd、阻尼矩阵BRd和刚度矩阵KRd的对应值.

3.2 组装用例描述

本文提出的人机交互编程框架主要是应用于装配行业的组装用例,其是从手工装配线上挑选出来的,包含许多复杂几何部件以及柔性部件.在这个单元中引入一个双臂机器人.一方面,传统手工组装单元的自动化尝试是一个挑战;另一方面,选择类人机器人与处理需要有限空间和两支手臂协同工作的任务有关.

图3 人体手势图和双臂机器人向上移动图

使用所建议的过程编程的组装步骤是将仪表板从加载库放置到组装库.从加载库中提起导线是通过人工指令程序编程的第一个操作.首先,人类使用录音语音命令“要求”机器人记录左手和右手的当前位置.下一步,机器人沿着用户帧的方向移动,如图3所示.在这项工作中,用户框架的定义是使用传统的机械工具,机器人的运动是通过手势跟踪模块来识别肢体动作实现的.沿着X方向的移动是使用定义向上的身体姿态完成的.同样,在传统的机器人编程中,当人类停止使用这个手势时,机器人的运动也会停止.然后是录音语音命令,用于记录双臂的目标位置.对于移动操作,人类可以通过编程使机器人通过旋转操作旋转躯干,通过接近操作接近装配体位置.图4展示了躯干在相应框架的X方向上的旋转.图5给出了相关的手势和机器人向特定方向的运动.

当机器人沿着图5所定义的+X轴移动时,人类使用向下的手势来执行进场操作.

图4 人体右位手势图和双臂机器人右转移动图 图5 人体向下手势图和双臂机器人向下移动图

4 结论

该编程框架采用任务分解方法,简化了双臂机器人的编程.将传统的编程过程与所提出的直观程序进行比较,可以减少编写机器人程序的步骤.这是由于基本帧、工具帧、用户帧、手臂的选择和协作运动的启用/禁用都存储在层次模型中.这意味着当用户选择为相应任务的操作编写程序时,不需要再次定义应该选择哪个帧或手臂,这样,面向任务的编程有助于简化编程过程.本文提出了一种直观的双臂机械手编程框架,该框架的优点是:降低了编程复杂度,减少了步骤,允许非专家使用简单的手势、语音命令和界面移动机器人,易于管理信息,如帧和位置从机器人进入数据库系统.目前为止,该框架已经实现了许多编程功能.

猜你喜欢

双臂手势命令
只听主人的命令
安装和启动Docker
挑战!神秘手势
我在街上走
锐角寻亲记
移防命令下达后
我在街上走
胜利的手势
解析Windows10的内部命令
我在街上走