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