弹钢琴拟人机器手控制系统的开发

2015-12-23 06:39王舒扬程廷海柳虹亮
制造业自动化 2015年24期
关键词:琴键机械手限位

王舒扬 ,程廷海,蔡 赟,柳虹亮

WANG Shu-yang1 , CHENG Ting-hai1 , CAI Yun2, LIU Hong-liang2

(1.长春工业大学 机电工程学院,长春 130012;2.长春工业大学 软件职业技术学院,长春 130012)

0 引言

随着社会经济不断发展和现代人工智能、计算机科学等的长足进步,服务机器人的研究与应用进入快速发展阶段。演奏机器人是服务机器人的一种,具有广阔的应用前景。日本早稻田大学曾经研制过钢琴演奏机器人,在国际上影响比较大。它共有88台击键器和两台踏板驱动装置,每台都有一套伺服系统,但不具备拟人化特征[1]。由明新科大与上银科技产学合作研发制作的钢琴机器人是利用线性马达及气压缸控制,以拟人化的方式来弹奏钢琴,在控制方面使用了曲目预编程内置的方式。本文针对钢琴演奏的特点,设计了一种具有拟人特征的机械手,机械手每根手指的控制都是独立的,通过气动闸线的方式驱动,满足了演奏时对机械手手指的速度要求[2]。同时使用数据手套与方位跟踪器在虚拟现实环境下采集手部的控制数据,实现了更自然的控制方式。

1 机械手结构设计

机械手的结构中,手指是设计的重点,分为上关节,中关节与下关节三个指关节,采用圆柱型的手指外形,在具有拟人化特征的同时增加了手指的强度。机械手的每个指关节在连接处均以小于20度的角度进行设计,使手指在弯曲时有足够的运动空间[3]。手指的连接处采用平滑的边缘设计,使得手指节在复位时限位在手指伸直的中心轴线上。机械手手指结构如图1所示。

每个机械手指之间用连接销、滚动轴承嵌套配合,利用扭簧实现弯曲后的复位。五个机械手的上指节上都有闸线的固定孔,闸线分别穿过机械手中指节和下指节的闸线的限位孔,从而进行动力链的连接。机械手指节的圆周侧壁开有孔,是各指节连接销的轴孔,外侧有非圆型台阶,用于台阶外侧安装非圆型挡圈。闸线在机械手上指节的的固定孔进行固定,再在机械手掌后连接驱动装置。机械手装配如图2所示。

图1 机械手手指结构图

图2 机械手装配图

闸线在机械手的上指节处固定,受力点在上指节并以连接销为轴进行运动,使得机械手拥有人手骨骼与肌肉一样的工作方式。机械手指下关节约束五个自由度只释放一个绕连接销旋转的自由度,手指上关节和中关节均释放三个自由度,使其与人手按键演奏时自由度相同。机械手实物图如图3所示。

图3 机械手实物图

2 驱动装置设计

钢琴弹奏对手指的运动速度有很高的要求,因此采用气动闸线的方式驱动机械手。整个气动回路连接气缸固定在固定板上,闸线一端为钢丝触头,另一端为限位圆柱,钢丝触头一端连接机械手,另一端与驱动气缸相配合。固定板一端开有五条沟槽,用于安装浮动限位块,固定板与定位块上的闸线穿孔进行对心固定,可以使气缸运动时有效减少力的损耗。固定板另一端安装固定角铁,用于固定气缸,气缸水平整齐排列,使作用力的作用点与机械手受力点在同一个作用平面上,减少力的损耗。五个浮动限位块分别与固定板上的五条沟槽相配合,形状为台阶型,其底面开有沉头孔,用于调节浮动限位块在沟槽的位置,闸线穿过竖直面的小孔,这样可根据不同闸线的长度来调节浮动限位块在固定板沟槽上的位置。固定限位块安装在气缸与浮动限位块之间,可以将闸线一端的限位圆柱卡死,实现一端固定,在外圆表面开有孔,用于螺纹顶丝压紧。在固定限位块端面开有螺纹孔,直接与气缸的活塞杆实现螺纹连接。驱动装置如图4所示。

图4 机械手驱动装置图

3 驱动回路设计

驱动回路如图5所示,通过空气压缩机向外输出高压气体,通过调压阀来调节气体压力。输出的压力气体通过五个二位五通电磁换向阀送给双作用气缸。二位五通电磁换向阀在初始位置时,一端进气,一端排气,可以实现气缸活塞杆的伸出,此时,闸线状态自由,机械手处于伸开状态。当二位五通电磁换向阀换向时,之前进气的一端变为排气,排气的一端变为进气,可以实现气缸活塞杆的收缩,此时,闸线状态绷紧,拉动机械手指节,机械手指处于弯曲状态。五个二位五通电磁换向阀可以独立工作,分别驱动五个气缸独立工作,从而可以使五根手指独立工作,互不影响。这样就可以实现机械手的按键、点动等功能。

图5 驱动回路图

驱动回路实物连接如图6所示。

图6 驱动实物连接图

4 虚拟现实环境下运动数据的采集

传统机械手运动控制数据一般采用编程的方式输入,对非专业人士来说应用不便,本文创建了虚拟现实环境,提供了钢琴弹奏的仿真界面,通过数据手套与方位跟踪器完成人机交互,使用户在不具备专业知识的条件下,无需培训即可以自然操作的方式完成运动数据的采集。

4.1 虚拟现实环境的建立

EON Studio是美国EON Reality公司开发的专业提供虚拟现实解决方案的软件[4]。EON采用了一种对非专业用户来说非常简便开发的方式,将很多常见的功能或系统底层操作(例如硬件驱动连接)封装为节点,只需通过拖拽组合这些节点即可完成用户的大部分需求,同时也可以使用其内置的VBScript或Jscript语言通过编程创建自定制的特殊功能节点[5]。本文使用EON软件创建了数据采集的虚拟现实环境。

1)虚拟模型的建立

虚拟模型主要包括虚拟手与虚拟琴键两部分,通过3ds max软件建立。图7为虚拟现实系统运行时的界面。

图7 虚拟现实运行界面

虚拟琴键仿照真实钢琴琴键建立,由并列的长方体模型排列组成,各个琴键之间互相独立,都可以与虚拟手的手指互动,且命名具有连续的编号以便在编程中使用。

虚拟手是系统的执行部件,分为手掌以及五指的14个关节,将其导入EON软件后分别为独立的模型,想让虚拟手做出模拟弹琴的动作,只需要每根手指能够单独完成按下抬起的动作即可,不需要考虑手指弯曲角度等因素,因此利用EON软件提供的place节点改变独立指关节模型的位置以及旋转角度,通过不断调整参数数值得到满意的视觉效果[6]。图8为虚拟手的运动逻辑图。

图8 虚拟手运动逻辑图

其中5DT Data Glove节点是由EON提供的与数据手套进行交互的节点,TrackerSystemReceiver节点则是用来连接方位跟踪器的。

2)系统的碰撞检测

实现虚拟手与虚拟琴键交互的核心是模型之间的碰撞检测,即虚拟手手指与单独琴键的碰撞检测。现实中手指不会与琴键发生交叉的现象,所以可以将虚拟手指的碰撞简化为仅最前端指节模型的碰撞检测,且发生碰撞的手指与琴键模型都不会发生形变,可以视为刚体之间的碰撞。在EON中,使用RigidBody节点与IntersectionTrigger节点完成模型的碰撞检测。RigidBody节点用来改变模型的性质,赋予模型刚体的物理特性,IntersectionTrigger节点用来赋予模型触发器的作用,当作为触发器的模型与其他模型放生碰撞时,会产生交互事件。

4.2 运动数据的采集

由于虚拟琴键只是在物理环境下被动的对虚拟手指的碰撞做出反映,所以运动数据的采集实际上就是对虚拟手运动过程的记录。记录的难点在于对时间因素的处理,虚拟手是何时移动的?虚拟手指是何时按下,何时抬起的?虚拟手指按下了多长时间?为了解决这些问题,可以将时间看作是多个连续的片段组成的序列,那么只需要记录在某一时刻,虚拟手的位置以及当前时刻所有手指的状态即可。这样的数据按顺序组合在一起,就是虚拟手弹奏的过程了。在EON软件中,可以使用TimeSensor节点处理与时间相关的问题,但是数据的储存与取出无法通过直接拖拽软件提供的原始节点来解决,因此结合TimeSensor节点与Script节点的编程功能,来完成虚拟手动作的记录。

TimeSensor节点可以按照有规律的时间间隔产生脉冲,可以利用此脉冲触发Script节点中的事件来记录数据。TimeSensor节点的CycleInterval属性就是设置两个脉冲之间的时间间隔长度的,这个属性的值越小,虚拟手运动记录的精度就越高,记录的数据量也越大。可以根据网络环境对这个数值进行调整,在系统运行效率与操作记录精度间取舍。考虑到数据共享的安全性,访问的效率等问题,使用mysql数据库对数据进行管理。表1为存放虚拟手运动过程数据的数据库表结构,其中表示机械手位置的坐标的3个轴分别给予独立的字段进行存放。

表1 虚拟手运动过程数据库表结构

系统同时提供了运动过程的回放操作,可以检查记录过程的正确与否,也可以作为操作过程的预览,因此在逻辑视窗中为记录与回放功能设置2条独立的操作线路。使用KeyboardSensor键盘传感器节点与Latch节点组成操作的开关,当相应操作的按键第一次被按下时触发2DText node节点显示当前操作状态,同时启动TimeSensor节点开始发送脉冲,再次按下相同的按键时则停止当前操作。

Script节点接收到脉冲信号后触发事件,在事件代码中接收虚拟手的位置与当前时刻手指的状态,并完成对数据库的操作。需要注意的是,EON使用自定义的数据类型表示空间坐标,与mysql数据库中的基本数据类型不匹配,因此无法对其直接进行读写操作,需要一个转换的过程。代码如下:

弹奏过程记录与回放的逻辑图如图9所示。

图9 运动过程记录与回放逻辑图

5 控制软件设计

机械手的控制采用上位机、下位机模式,下位机使用单片机对电磁换向阀进行控制,上位机软件使用C#语言开发,用来读取数据库内采集来的数据,或在界面直接输入指定格式的编码来控制机械手的运动。上位机软件界面如图10所示。

图10 上位机软件操作界面

软件将采集的原始数据转化为专门设计的包含了钢琴乐谱信息的数据结构,将转化后的数据显示在界面的显示区内,或直接将经过转化的乐谱数据手动输入到显示区内也可以对机械手进行控制操作。直接输入数据的操作方式可以脱离虚拟现实环境直接使用。软件使用了第三方组件C# MIDI Toolkit进行二次开发,可以在不连接机械手实物的情况下在仿真界面查看直接输入数据时机械手运动的模拟情况。

6 结论

针对钢琴演奏的特点设计了一种采用气动闸线驱动的具有拟人特征的机械手及其控制系统,实际使用结果表明,硬件结构及驱动满足了钢琴演奏对机械手的速度要求,设计的控制软件界面简单易用,同时建立的虚拟现实环境可以使用户在不具备专业知识的条件下无需培训即可以自然操作的方式完成运动数据的采集,降低了系统的使用要求限制。

[1]郭剑鹰,吕恬生.国外音乐机器人研究[J].机电一体化,2002,8(3):14-18.

[2]王利波,张志军,王领.气动类人仿生机械手设计[J].大连交通大学学报,2013,34(2):63-66.

[3]杨立松,朱丽,柳虹亮,谭海东.微小型救援机器人机械手设计[J].长春工业大学学报(自然科学版),2014,(2):178-182.

[4]李静,白姗姗,庞在祥,刘亮,朱丹.基于EON的中医按摩机械手虚拟装配研究[J].制造业自动化,2014,(9):1-3,19.

[5]丁宾,刘海平,邵晓根,卜慧平.虚拟现实技术在塔吊模拟培训系统中的应用[J].制造业自动化,2012,(19):135-137.

[6]李静,白姗姗,赵春蕾.汽车离合器盖总成检测试验台虚拟装配系统研究[J].机械设计与制造,2014,(9):225-227.

猜你喜欢
琴键机械手限位
浅谈起重机双限位的设置
某数控车床的桁架机械手结构设计
某型轴承限位销装配工装的改进与应用
人体体感感知机械手设计与实现
给你的信
分阶段减少母猪限位栏的使用
车轮装配机械手气动控制系统设计
基于粒子群迭代的一种冗余机械手逆解算法
光影协奏曲
钢琴指套