英语原文共 26 页,剩余内容已隐藏,支付完成后下载完整资料
人机交互的汉字自由书写机器人
费超,陈福海,沈云杭,何文丽,孙燕,王正帅,
周长乐,姜敏
认知科学系
信息科学与工程学院福建省脑类智能系统重点实验室
厦门大学,厦门361005
2013年8月10日收到
2014年1月23日接受
2014年3月25日发布
机器人书写能力的实现被认为是一项艰巨的任务,其中涉及到复杂的图像处理和机器人控制算法。本文介绍了一种使用人机交互的机器人书写新方法。 该方法应用运动感应输入装置来捕捉人类演示者的手臂轨迹,使用手势判定算法从这些轨迹中提取汉字的笔画,并采用噪声过滤和曲线拟合方法来优化笔画。该方法向演示者显示实时捕获的轨迹; 因此,演示者能够调整自己的姿势以获得更好的书写效果。 接着,机器人通过使用机械臂的关节值编写书写的行程轨迹。 反向运动学算法从行程轨迹生成关节值。 实验分析表明,本方法可以让人类自然而方便地控制机器人以写出许多汉字。 此外,本方法使机器人以简单的结构实现令人满意的字符书写质量,并具有编写更复杂字符的潜力。
关键词:书写机器人,控制器,人机交互
1.介绍
无论是在危险工作中,还是在日常工作中,带有控制器的机器人都具有广泛的应用范围。 特别是如果人类用户需要机器人来帮助老年人,那么机器人必须遵循人的命令来执行复杂的动作。 因此,机器人科学家必须设计一种具有高智能和自主能力的机器1。人形机器人由于其类似于人的机制而具有实现这一目标的固有优势2-4。此外,基于这一目标,目前智能机器人必须解决两个重要问题:(1)具有灵活的手,以便与环境良好互动;(2)执行人类命令的能力。
对于第一个问题,机械手的灵活性,机器人书写中国字的任务中提出了一个有趣的问题,即如何控制机器人执行器自动从单笔画中编写出复杂的字符5。手写作为一种典型的人体运动,是一项涉及运动学和动力学的高要求任务6,机器人书写需要包含多余的自由度(DOF)7。此外由于汉字书写比英文写作复杂得多,机器人可能需要更多的自由度。 因此写汉字可以作为“测试平台”来评估各种机器人的灵活性和控制方法。
对于第二个问题,遵循命令,通过人机交互的模仿学习减少了提高机器人能力的需求。 因为人机交互被认为是一种将技能和知识从人类转移到机器人的有效学习方法8-10。 特别是机器人无需重复训练或复杂的编程就可以获得新的技能11,12。因此我们认为将人机交互应用于机器人书写任务将减少任务的复杂性,用户可以使用一种方便自然的方式来控制机器人。
最近已经出现了几种机器人书写方法, 然而大多数方法只是将中文字体信息转换为机器人执行器的值,例如参考文献13-15。 这种方法需要复杂的数学计算和图像处理工作,只有少数研究人员专注于使用人类手势来控制机器人写作16。 目前通常使用直角坐标机器人,选择可控机器人或多关节机器人作为机器人书写的执行器。主流的方式是多关节机器人,它更适合汉字书写,例如参考文献5。因此在本文中,多关节机械臂通过使用人机交互的方法,这种方法使用运动感应输入设备来检测人的手势,人类演示者用手在设备前面演示人物的笔迹。 机器人系统捕获手势,并控制机械臂写入指定的字符。 这种方法降低了构建人机器人通信的复杂性,从而使机器人能够展现更多的自主能力。 另一方面,人机交互可以为机器人汉字书写引入个人风格,甚至艺术风格。 如果我们有机器人预定的汉字数据库,并且有运动传感装置来识别来自人的手势风格,这些个人/艺术风格可能更容易展现。 更重要的是,我们的工作有助于让机器人继承具有先进技术的工人和工匠的技能。
本文的其余部分安排如下。 部分2 简要介绍了中国书法的背景和机器人书写的相关工作。部分3描述了一个实验机器人系统,并提供了本研究方法的详细解释。 部分4 介绍了实验结果。 部分5 总结论文并指出了未来的研究方向。
2.机器人书写及相关工作
汉字书写与拉丁字母书写不同。 汉字书法文化已有四千多年的历史。经常使用的汉字数量约为2500个。所有这些字符都是由笔画构成的。28个笔画用于构造所有中文字符17。 与英文笔迹相比,使用机器人写中文更为困难。 这是因为机器人不仅需要知道如何书写字符的笔画,还需要考虑字符的每个笔画的布局。 中国书法中的笔被称为毛笔。 毛笔柔软,适合产生不同风格所需线条的变化。 因此,机器人中文书写是一种涉及压力控制,移动速度控制和书写笔角度控制的动态活动,如果我们的机器人能够处理这些难题,机器人可以应用于更多的实际应用。
机器人书写能力的核心技术是将角色的笔触转化为机器人的动作值; 然后机器人执行器使用电机值进行操作。 因此,问题是如何获取字符的信息。一些作品直接使用了商业前台库14,18。其他作品应用图像处理技术从抄本或人的笔迹中提取字符的字体信息13,19。上述两种方法的优点是使用预定义的字体数据库来规划机器人驱动器的轨迹,但不足以产生手写或绘图中所需的任意曲线。 在很多研究中,机器人只能写汉字而不写整个汉字, 这些研究将每个汉字分解为不同的笔划,并将笔划位置分配给机器人以实现书写5,15,20-23。这些方法可以实现高质量的机器人书写,然而在让机器人写新字符这方面不是很方便。 此外,只有少数作品使用数据手套和脑机接口设备来收集书写手势信息,然后将这些信息转换为机器人关节值16,24,最后一种方法让我们看到人类手势是否可以直接控制机器人编写任何人类想要写的字符。 但是这样的设备成本很高;,因此,我们希望找到一个有成本效益的选择。
最近已经产生了各种机器人书写硬件设备, 经常使用的两种主要类型的机器人系统为:(i)笛卡尔坐标机器人系统13,20,21,25,26和(ii)多关机器人系统5,27-31。笛卡尔坐标机器人的结构和控制器都很简单, 但是机器人的工作空间受到严格限制,并且很难优化每个笔画的形状。 因此,林和山19 增加了三个自由度以允许机器人手臂包含姿态控制。与笛卡尔坐标机器人相比,多关节机器人通常包含更多自由度以表现出更高的书写能力,特别是多关节机器人具有更好的便携性,因此该机器人可以用于各种环境。Acosta-Calderon和Hu将一个机械臂安装在移动平台上,因此机器人能够找到自己需要在哪里书写32。此外,Potkonjak开发了“分布式定位”算法来解决DOF冗余问题6,33。 另外,Sugiyama等人 使用类人机器人写日本人物34。在对机器人硬件的回顾中,我们发现机械臂的机制更加灵活,能够模拟人类的书写手势。所以我们决定使用一个多关节机器人手臂作为我们的书写执行器。此外,我们在之前的工作中已经完成了多个机器人手臂控制和手眼协调研究1,35-37,此前的研究对我们目前的工作至关重要。
3.建议的方法
基于第二部分的考虑,我们建议使用人机交互来控制我们的多关节机器人编写汉字。 该方法使用具有成本效益的 Kinect来检测人类的手势,人类演示者使用他/她的右手在Kinect前演示人物的笔迹,机器人系统接收并处理捕获的手势以控制机器人。下面的小节介绍实验系统和如何实现的问题。
3.1机器人系统
图1 为实验系统。该系统包含一个带有6自由度的机械臂。手臂安装在工作空间上,手臂的3自由度用于执行书写动作。 笔臂安装在手臂的顶部。该设置允许机械臂具有足够的自由度以在三维环境中起作用。 机械臂的每个旋转关节都有一个电机驱动器和一个用于检测电机位置的编码器,面向手臂的书写板垂直固定,画板安装在电路板上。 如果水接触到画布,画布会变成黑色,当画布变干时,黑色区域会消失。 当机器人完成一个字符时,画布马达拖动画布,以便机器人总是可以在画布的空白区域写入新字符。机器人和画布马达均由位于手臂附近的硬件控制器控制,一小瓶水用作墨水。当人类演示者发出命令时,手臂将刷子放入瓶中。Kinect设备单独放置以面向人类演示者。 在本实验中,Kinect的采样率约为每秒30帧,图像输出分辨率为320 x 240。
图1.机器人工作空间概述
图2 演示的机器人控制系统分为两部分:(i)硬件控制器和(ii)算法计算机。硬件控制器接收来自算法计算机的命令,并将命令转换为手臂和画布马达可接受的脉宽值。控制器还接收每个电机的当前位置信息,并将该位置发送回算法计算机。程序包括一个RSC-232插口和驱动程序,被用于计算机和硬件控制器之间的通信。该程序还将控制器的命令语言简化为远程调用的功能,以便可以调用控制器。算法计算机运行高级程序,如Kinect手势识别,噪声过滤算法,运动学计算和人机界面。 算法计算机使用USB连接Kinect设备,并使用RSC-232插口与硬件计算机通信。算法计算机中的程序是使用C#编程语言和“Microsoft Kinect SDK1.5”开发的;机器人控制程序是用C 编写的。另一个流行和强大的Kinect开发工具包是“ OpenNI”SDK。 我们之所以选择Kinect SDK而不是” OpenNI SDK,是因为Kinect SDK与我们的机器人控制系统更加兼容。为了解决Kinect设备的低采样率问题,演示者的手动操作需要缓慢地进行,否则Kinect可能会错过其中的一些动作。
图2.机器人控制系统图
3.2人机交互程序
图3 展示了机器人书写人机交互方法的工作流程图。该流程图包含以下六个重要步骤:
(i) 当人类演示者演示一个字符的笔迹, 演示者需要将字符拆分为多个基本笔画。演示者应该伸直他们的右臂并且只使用他/她的肩关节来移动。每个笔画的手的轨迹必须与笔画的笔迹形状相同。笔画的手势顺序应该遵循字符的书写顺序。在演示者开始新的字符之前,他/她的右手臂移动到新字符的起始位置; 然后他/她伸直手臂开始移动。
(ii) Kinect设备检测演示者的手势轨迹。 该设备能够捕获每个用户的20个骨架关节值38。在本文中,我们只使用来自两个关节的信息。 我们需要确定左臂的手势和右手的位置。另外,我们还预定了其他两种手势来控制机器人使用墨水并拖动画布。
(iii) 轨迹捕捉模块从捕捉的轨迹中提取字符的笔划。只有在右臂被拉直时模块记录右手的位置值。因此模块需要确定右臂何时弯曲以及何时伸直。该模块还包含另一个重要功能:优化每个笔画的轨迹。这是因为嘈杂的数据在手势捕捉过程中是不可避免的,并且笔画的轨迹并不总是平滑的。
(iv) 轨迹转换模块负责将字符笔画转换为机器人关节值。笔划值由Kinect SDK确定; 机器人手臂无法直接接受这些值。逆运动学计算用于将笔划转换为机器人关节值。
(v) 机器人电机系统接收关节值并将其转换为电机指令。 因为实验系统中使用的电机接受仅限脉宽命令,因此联合值需要转换为脉宽值。
(vi) 当机械臂从硬件控制器接收一组脉冲宽度值,则执行写入字符的命令。除了书写动作之外,机械臂还可以浸入墨水。
图3.机器人书写流程图
以下部分表明了该过程中使用的模块和算法的实现。
3.2.1人体手势设置和人体手势检测
当演示者用他/她的右臂手势操作字符时,只会识别并处理直臂手势以生成字符的笔画。 然而为了在不同的位置开始新的字符,演示者必须弯曲他/她的手臂。 因此,我们建立一个算法来确定手臂是弯曲还是笔直。 此外,演示者还控制机器人浸入墨水并拖动画布,因此左臂的几个手势设置为支持上述两个功能。
图4.右臂的姿势配置图
图4 表示了手臂姿势确定的算法。 实线表示演示者的右臂,”L1“是他/她的右肩和他/她的肘部之间的距离。“ L2”是从肘部到手腕的距离。 虚线表示演示者的肩膀和右手腕之间的距离。“ b”是虚线内的一个点,它的位置是根据“L1”和“L2”的长度以适当的比例确定的。
(1)
其中i有1,2和3,代表x,y和z轴的值; 矢量肩部和手腕分别是肩部和手腕的位置。 因此,通过使用公式(1),我们可以得到b点的x,y和z坐标。 然后,点b和右肘之间的距离d由下式计算:
(2)
d的值用于确定手臂是否弯曲。 如果d小于阈值,则手臂的状态是直的。如果d大于另一个阈值,则手臂弯曲。 否则,继承手臂的前一个状态。 方程(3)在第k次采样时给出了演示者手臂的状态
(3)
在本文中,= 0.05和= 0.08。 手臂状态决定的解决方案并不复杂,适用于任何人类演示者而非特定人员。图5 显示了预定的姿势。 图5(a) 演示弯曲手臂的姿势; 手的位置不会通过使用此手势进行记录。 图5(b) 演示伸直手臂,通过使用手势来保持手的位置。 图5(c) 说明了命令机器人浸入墨水的姿势,设置为演示者腹部下方的左手。 图5(d)中的手势是告诉机器
全文共21176字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[16232],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。