CN114347070B - 基于仿人臂爪机器人的弹琴动作控制方法、系统及装置 - Google Patents
基于仿人臂爪机器人的弹琴动作控制方法、系统及装置 Download PDFInfo
- Publication number
- CN114347070B CN114347070B CN202210266969.8A CN202210266969A CN114347070B CN 114347070 B CN114347070 B CN 114347070B CN 202210266969 A CN202210266969 A CN 202210266969A CN 114347070 B CN114347070 B CN 114347070B
- Authority
- CN
- China
- Prior art keywords
- arm
- action
- playing
- music score
- piano
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J11/00—Manipulators not otherwise provided for
- B25J11/003—Manipulators for entertainment
- B25J11/004—Playing a music instrument
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Multimedia (AREA)
- Manipulator (AREA)
Abstract
本发明公开了一种基于仿人臂爪机器人的弹琴动作控制方法、系统及装置。所述系统包括乐谱存储解析模块、弹琴动作序列生成模块、动作指令生成发送模块和动作指令接收执行模块。利用乐谱存储解析模块,完成对乐谱信息的读取。然后利用弹琴动作序列生成模块,得到仿人臂爪的弹琴动作序列。接着利用动作指令生成发送模块,将臂爪动作转换为对应的动作指令,并发送到臂爪执行端。最后利用动作指令接收执行模块,完成机械臂、爪对动作指令的接收和执行,最终实现仿人臂爪机器人对钢琴的演奏。基于本发明所提供的方法,仿人臂爪弹琴机器人能够充分发挥臂、爪的性能,高效稳定的实现较好的钢琴演奏效果。
Description
技术领域
本发明属于自动弹琴机器人技术领域,尤其涉及基于仿人臂爪机器人的弹琴动作控制方法、系统及装置。
背景技术
音乐作为一种艺术,对提高人的道德情操、个人修养都有很好的作用。它通过有节奏的声音起伏与人类体内的节奏产生共鸣,激发人类的情感。钢琴凭借宽广的音域、强大的表现力、十足的张力等优点,被授予“乐器之王”的美称。音乐构成的四要素:音的高低、音的长短、音的强度、音色。因此要保证音乐的好听,就必须控制好这四个要素。
随着机器人技术的发展,音乐演奏机器人逐渐走进人们的生活,现有的音乐演奏机器人大多是追求一种声音上的演奏,而没有较强的视觉冲击,比如现有的钢琴自动演奏系统只是实现了音乐的重放,却不能让人通过视觉产生共鸣。
现有技术中公开的弹琴机器人具有仿人臂爪,由左右手臂和左右手爪构成。弹琴机器人通过仿人的动作进行音乐演奏,具有如下技术问题:(1)由于手臂移动不同距离的性能不同,手爪不同手指的弹奏性能也不同,现有技术中没有根据臂爪的实际性能分配他们的动作,无法充分发挥手臂和手爪的性能。(2)双臂动作执行冲突,臂爪动作的同步性差,导致演奏效果不佳。
发明内容
本发明的目的在于针对上述问题,提出了一种基于仿人臂爪机器人的弹琴动作控制方法、系统及装置,使得机器人可以实现较好的钢琴演奏效果。
本发明的上述目的通过以下技术方案得以实施的:本发明实施例的第一方面提供了一种基于仿人臂爪机器人的弹琴动作控制方法,包括如下步骤:
S1、对乐谱存储并解析得到乐谱信息;
S2、根据步骤S1解析得到的乐谱信息,结合手臂和手爪的性能,规划手臂和手爪的动作最优组合;
S3、根据步骤S2得到的手臂和手爪的动作最优组合,结合乐谱信息,生成演奏动作序列;
S4、根据步骤S1解析得到的乐谱信息,将步骤S3得到的演奏动作序列转化为对应的动作指令;
S5、同步发送步骤S4得到的动作指令至手臂和手爪执行器;
S6、手臂和手爪执行器动作接收动作指令,并通过多线程控制手臂和手爪动作的同步配合执行。
进一步地,对乐谱存储具体为:将琴谱存储于excel表格中,将包括乐谱的节拍在内的表格乐谱信息param、左手的乐谱信息l和右手的乐谱信息r存储于表格首列;利用数字表示音符信息,其中:个位数字表示音符高低;十位和正负号表示音区;小数0.5表示升半调;数字0表示休止符;每一行都以“|”符号作为乐谱的结束标志位。
进一步地,所述步骤S2中采用动态规划,将手臂不同移动距离的性能、不同手指的动作执行性能作为影响因素,实现手臂和手爪最优组合动作的规划,得到手臂和手爪的动作最优组合;具体包含如下子步骤:
S2.1、依据手爪的五个手指包括动作速度、动作范围在内的具体性能分别对其设定评分,依据机械臂在不同移动距离下的包括移动时间及轨迹稳定性在内的实际性能对其设定评分;
S2.2、将解析的乐谱信息中的音符映射到琴面的88个按键编号上;对机械手指进行编号;对机械臂位置进行编号,机械臂的位置编号为当前机械臂的大拇指所在钢琴琴键位置上对应的琴键编号;
S2.3、读取当前音符信息,按照音符演奏顺序,通过遍历琴键寻找演奏当前音符的所有手爪组合动作;并依据步骤S2.1中设定的手指的评分,对每种动作组合所分配的手指计算手指动作价值;
S2.4、按照音符演奏顺序,计算相邻两个音符经步骤S2.3得到的所有臂爪动作组合间的手臂移动距离,并依据步骤S2.1中设定的手臂移动距离的评分计算每种组合的移动价值;
S2.5、重复步骤S2.3~ S2.4直至计算完整首乐谱,计算所有臂爪组合动作的评分,并将移动价值最高分值对应的路径作为手臂和手爪的动作最优组合。
进一步地,所述步骤S3中,根据步骤S2得到的手臂和手爪的动作最优组合,结合包括乐谱演奏速度、演奏风格在内的乐谱信息,规划得到的手臂和手爪的组合动作等信息,生成具体的演奏动作序列。所述演奏动作序列包括:当前音符距离乐谱开头的拍数;当前音符需要演奏的手指的编号;当前音符的手臂位置信息及下一个音符的手臂位置信息;当前音符的持续拍数。
进一步地,所述步骤S4中,根据包括音乐的演奏速度、演奏风格在内的乐谱信息,将步骤S3得到的臂爪动作参数转化为对应的手臂和手指的动作指令,并将该动作指令同步发送手臂和手指执行器;
其中所述手臂和手指的动作指令具体包括:
手指动作指令:需要动作的手指编号、手指开始按下的时间、手指按下的速度、手指按下动作持续时间、手指开始抬起的时间。
手臂动作指令:左右臂的动作模式、手臂开始移动的时间、手臂移动的目标位置;所述左右臂的动作模式包括双臂动作和单臂动作两种模式,其中,手臂开始移动时间等于手指抬起时间。
进一步地,所述手指按下动作持续时间为当前音符占有的拍数乘手指按下时间占整个音符的比例除以整首音乐的演奏速度。
进一步地,所述步骤S6中,手臂和手爪执行器动作同时接收动作指令,多线程延时执行动作指令,控制手臂和手爪动作的同步配合执行;所述多线程延时执行具体为:主线程用于接收动作指令,第一线程用于执行主线程分配的左机械臂的动作指令,第二线程用于执行主线程分配的右机械臂的动作指令;接收到左机械臂的动作指令后,开启第一线程去执行相应的动作指令,主线程则负责等待接收右机械臂的动作指令,待接收到另一条机械臂的动作指令后,开启第二线程去执行相应的右臂动作指令,以此循环,完成仿人臂爪机器人的弹琴动作控制。
本发明实施例的第二方面提供了一种基于仿人臂爪机器人的弹琴动作控制系统,包括乐谱存储解析模块、弹琴动作序列生成模块、动作指令生成发送模块和动作指令接收执行模块;
所述乐谱存储解析模块用于将要演奏的琴谱信息按规则进行存储并对琴谱信息进行解析;
所述弹琴动作序列生成模块用于将解析的琴谱信息进行仿人臂爪的动作规划,生成弹琴动作序列;
所述动作指令生成发送模块用于将生成的弹琴动作序列转换为对应的动作指令,并按照演奏时序发送给手臂和手爪执行器;
所述动作指令接收执行模块用于手臂和手爪执行器接收对应的动作指令,并各自按照指令要求完成要求的弹奏动作。
本发明实施例的第三方面提供了一种电子设备,包括存储器和处理器,其中,所述存储器与所述处理器耦接;其中,所述存储器用于存储程序数据,所述处理器用于执行所述程序数据以实现上述的基于仿人臂爪机器人的弹琴动作控制方法。
本发明实施例的第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现上述的基于仿人臂爪机器人的弹琴动作控制方法。本发明的有益效果是:通过设计基于excel表格的琴谱存储方案,有效提高了琴谱的录取效率,同时琴谱信息可读性强,内容修改方便,切琴谱信息解析难度低;通过基于动态规划的手臂和手爪动作组合生成方案,充分考虑到手臂和手指性能的差异,实现了对臂爪性能的充分发挥,并且具备规划速度快和规划结果稳定的特点;通过动作指令生成发送系统,实现了左右臂爪动作指令发送的实时性和同步性;通过动作指令接收执行模块,实现了臂爪动作的同步配合,并解决了双臂动作执行冲突的问题,提高了机器人演奏效果。本发明可充分发挥臂爪的性能,严格按照乐谱信息来控制演奏动作,实现了较好的钢琴演奏效果。本发明中公开的基于仿人臂爪的弹琴机器人通过仿人的动作,实现与人们在视觉和听觉上的音乐互动,具有较高的娱乐性、观赏性。
附图说明
图1为本发明一种基于仿人臂爪机器人的弹琴动作控制方法的流程图;
图2为欢乐颂琴谱按照规则在excel表格中的录入示意图;
图3为臂爪动作组合规划的流程图;
图4为本发明装置示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
下面结合附图,对本发明的基于仿人臂爪机器人的弹琴动作控制方法、系统及装置进行详细说明。在不冲突的情况下,下述的实施例及实施方式中的特征可以相互组合。
本发明提出了一种基于仿人臂爪机器人的弹琴动作控制系统包括乐谱存储解析模块、弹琴动作序列生成模块、动作指令生成发送模块和动作指令接收执行模块。
所述乐谱存储解析模块用于将要演奏的琴谱信息按照设计的规则进行存储并对琴谱信息进行解析,获得琴谱信息。
所述弹琴动作序列生成模块用于将解析的琴谱信息进行仿人臂爪的动作规划,生成弹琴动作序列。
所述动作指令生成发送模块用于将生成的弹琴动作序列转换为对应的动作指令,并按照演奏时序发生给手臂和手爪执行器。
所述动作指令接收执行模块用于手臂和手爪执行器接收对应的动作指令,并基于多线程各自按照指令要求完成要求的弹奏动作,实现手臂和手爪动作的同步配合。
如图1所示,本发明一种基于仿人臂爪机器人的弹琴动作控制方法,包括以下步骤:
S1、利用乐谱存储解析模块根据基于excel表格的琴谱存储规则,实现钢琴谱的手工录入和乐谱信息解析。通过excel表格记录琴谱具有琴谱录入效率高,信息可读性强,内容修改方便,解析难度低的特点。
所述乐谱的excel存储规则兼顾钢琴谱手工录入的便捷性和乐谱信息解析程序的编写难度,存储方法如下:
表格首列用于存储当前行的内容关键词,其中:param表示表格和乐谱信息,包括乐谱的节拍等;l表示左手的乐谱信息;r表示右手的乐谱信息。
通过连续多行的l和r表示同一时刻左右手指需要同时按下的不同音符、
每一行都以“|”符号作为乐谱的结束表示。
用数字表示音符信息,其中:个位数字表示音符高低,取值1~7,对应Do、Re、Mi、Fa、Sol、La、Si。十位和正负号表示音区,当没有十位的时候表示中音区,1表示高音区,-1表示低音区。小数只有0.5一种形式,用来表示升半调,对应在琴键上是黑键。数字0表示休止符。
所述乐谱解析步骤具体为:由上向下读取首列关键词,寻找param关键词所在行,读取并保存表格和乐谱信息。再利用空行对首列的l和r关键词进行分组,将连续的l和r关键字所在行分为一组。然后对上述分组后的表格内容进行读取,由左向右表示时序,音符处于同一列表示它们需要同时演奏。并按照上述音符编码方式对音符信息进行解析。最后将各组解析的音符信息进行拼接,获得完整曲目的音符信息,完成整首乐谱的读取与解析过程。
S2、根据步骤S1解析得到的乐谱信息,采用动态规划,将手臂不同移动距离的性能、不同手指的动作执行性能作为影响因素,实现手臂和手爪最优组合动作的规划,规划得到手臂和手爪的动作组合序列。本发明方法结合了手臂和手爪各自的性能,具有较高的计算效率和规划稳定性。
优选的,在步骤S2中,具体包含如下子步骤:
S2.1、依据手爪的五个手指动作速度,动作范围等具体性能分别对其评分,本发明实施例中设定的手指分数范围为-5~10,依据机械臂的在不同移动距离下的移动时间及轨迹稳定性对机械臂的不同移动距离进行评分,本发明实施例中设定的机械臂分数范围为-20~20。
本发明实施例中,分数范围以0为基准分数,负数用于表示性能差的惩罚值,正数用于表示性能优秀的奖励值。
S2.2、将钢琴谱中所有的音符映射到钢琴的88个按键编号上,如中音区的1(Do音)映射到钢琴的24编号上,其中休止符映射为-1编号。对机械手指进行编号,从大拇指到小拇指分别为0-4。对机械臂位置进行编号,机械臂的位置编号为当前机械臂的大拇指在钢琴琴键位置上对应的琴键编号。
S2.3、按照音符演奏顺序,读取当前时刻需演奏的音符信息,并寻找演奏当前音符的所有臂爪组合动作。寻找臂爪动作组合的具体过程为将机械臂从钢琴最左边向右遍历,当手爪可以完全可覆盖要演奏的琴键时,保存当前臂爪组合,直至机械臂移动到钢琴最右边时完成遍历。此时保存的臂爪组合即为演奏当前音符可用的所有臂爪动作组合。
对每种动作组合所分配运动的手指,依据步骤S2.1中手指的评分,对运动的手指对应的手指分数进行累加得到手指动作价值。
S2.4、按照音符演奏顺序,对相邻两个音符经步骤S2.3得到的所有臂爪动作组合间的手臂移动距离进行计算,并依据步骤S2.1中手臂移动距离评分计算这些组合间的移动价值。
S2.5、重复步骤S2.3~ S2.4直至计算完整首乐谱,按照音符演奏顺序,计算所有臂爪组合动作的评分,并寻找分值最高的路径,此路径即为手臂和手指动作的最优组合。此外,通过调节步骤S2.1中的分值,可以实现对最优组合动作的调整。
S3、根据步骤S2得到的手臂和手爪的动作最优组合,融合乐谱信息中的拍号、节拍、速度等节奏时间信息,计算对应的手臂和手指的包括位置、乐谱时间等信息的动作参数,生成具体的演奏动作序列。所述演奏动作序列内容为:
当前音符距离乐谱开头的拍数:由当前音符所在列乘以每列所占节拍数计算得到,用于表示当前音符需要演奏的时间点。
当前音符需要演奏的手指的编号:由当前音符的规划结果直接获得,用于表示要执行按琴动作的手指。
当前音符的手臂位置信息及下一个音符的手臂位置信息:由当前音符的规划结果直接获得,用于表示在当前音符手指动作完成后,手臂是否要进行移动及需要移动的距离。
当前音符的持续拍数:由当前音符所占列数乘以每列所占节拍数计算得到,用于表示当前音符声音需要持续的时间长短。
S4、根据音乐的演奏速度、演奏风格等信息,将步骤S3得到的臂爪动作参数转化为动作指令,并设计指令发送系统,保证双臂爪指令的同步发送。
优选的,在步骤S4中,手臂和手指的动作指令包含的内容如下:
其中手指的动作指令中,手指的按下动作持续时间计算公式如下:
式中,为手指按下动作需要持续的时间,单位为秒;为整首音乐的演
奏速度,单位为拍/分钟;为当前音符占有的拍数,单位为拍;为一个分数,表
示手指按下时间占整个音符的比例,一定程度可以反映整首音乐的演奏风格。
S5、利用指令发送系统通过CAN总线协议发送步骤S4得到的动作指令至手臂和手爪执行器。实现双臂爪动作指令发送的时间精准性和指令同步性。
优选的,在步骤S5中,指令发送系统是一个严格的定时访问系统,保证了时间的准确性,为了保证左右臂爪动作指令的同步,左右臂爪动作时间为当前音符距离乐谱起始时间的的绝对时间,解决了时间误差累积导致的左右臂爪动作同步性差的问题。
S6、设计一种动作指令接收模块,并通过多线程方案解决双臂动作冲突的问题,实现手臂和手爪动作的同步配合。
优选的,在步骤S6中,由于手臂和手爪是两套不同的执行机构,并且执行单位接收到动作指令后都有一定处理时间的延时,导致不能接收指令后立刻执行。此处采用动作指令同时接收、延时执行方案,即统一臂爪从接收指令到执行动作的时间延时,保证臂爪动作的同步。
此外,由于采用延时执行方案,就会存在一条臂等待动作执行期间需要接收和处理另一条臂的动作指令冲突的问题,本发明采用多线程方案,来处理左右单臂的动作执行冲突问题。具体为:主线程用于接收动作指令,第一线程用于执行主线程分配的左机械臂的动作指令,第二线程用于执行主线程分配的右机械臂的动作指令;接收到左机械臂的动作指令后,开启第一线程去执行相应的动作指令,主线程则负责等待接收右机械臂的动作指令,待接收到另一条机械臂的动作指令后,开启第二线程去执行相应的右臂动作指令,以此循环,完成仿人臂爪机器人的弹琴动作控制。本发明通过多线程方案解决了双臂动作执行冲突、消息阻塞、接收到的动作指令被挂起的问题。
实施例1
本实施例中,以欢乐颂为实施曲目进行一种基于仿人臂爪机器人的弹琴动作生成及执行方法的实施过程描述。
步骤S1,将琴谱按照规则录入到excel表格中,如图2所示。图2为节选的琴谱录入示意图,然后进行琴谱的解析。
步骤S2,根据步骤S1解析得到的乐谱信息,结合手臂和手爪的具体性能,按照音符演奏顺序,得到手臂和手爪动作组合。整体规划流程如图3所示。
步骤S2.1、根据手臂和手指的实际性能分别进行评分,手指性能评分如表1所示,手臂评分如表2所示,本发明实施例中机械臂单次移动键数越多,移动性能越差,其评分越低。
表1:不同手指执行性能的评分表
表2:对机械臂不同移动距离的性能评分表
步骤S2.2、将解析的琴谱音符信息映射到钢琴的琴键上,以欢乐颂第一小节为例,可得映射结果如下表3所示,并对机械手指和机械臂进行编号。
表3:琴谱音符信息映射表
步骤S2.3、遍历琴键,寻找每一时刻可能的臂爪动作组合,以欢乐颂第一小节的右手部分为例,寻找的臂爪动作组合结果如表4所示,通过手指的编号,机械臂的位置编号来表示动作组合。
表4:欢乐颂第一小节的右手对应的所有臂爪动作组合表
经手指评分计算,对运动的手指对应的手指分数进行累加得到手指动作价值可得每种组合的手指动作价值,如表5所示。以第一组合中的第一时刻为例,此时按下的手指编号为2和4,对应中指和小拇指,表1中手指执行性能评分表中中指的评分为10,小拇指的评分为6,二者叠加得到当前组合当前时刻的手指动作价值为16。其余动作组合计算同理。左手动作组合计算方法同理。
表5:手指动作价值表
步骤S2.4、计算臂爪组合间的手臂移动价值,以右手为例,欢乐颂时刻1与时刻2间的手臂移动可能性即对应移动分值如表6所示。其中移动轨迹1~1表示为时刻1的第一组合到时刻2的第一组合,由表4可知本实施例中移动轨迹1~1机械臂移动了0个键,根据表2,手臂移动距离键数为0时,对应的评分为10,所以移动轨迹1~1对应的手臂移动价值为10。其他时刻计算方法同理。
表6:手臂移动价值表
步骤S2.5、根据以上计算方式,计算完整曲目,寻找分值最高路径作为最优臂爪动作组合。以欢乐颂第一小节的右手部分为例,最优路径如表7所示。
表7:动作组合最优路径表
步骤S3,利用步骤S2得到的手臂和手爪动作组合,计算每个音符演奏相关信息及对应的手臂和手指动作参数,得到演奏动作序列;
以欢乐颂第一小节的右手部分为例,计算得到的演奏参数如表8所示。计算过程以时刻2为例,当前时刻所在列数为4,每列所占拍数为0.25,因此当前时刻的起始执行时间为4*0.25=1;当前时刻音符持续列数为4,持续拍数为4*0.25=1; 动作手指变换和手臂位置则可直接从表7最优轨迹获得,其他时刻的计算过程同理。
表8:演奏参数表
步骤S4,基于欢乐颂的演奏相关信息,包括4分音符为一拍,一小节有4拍,一分钟
有90拍,机械手指按下时间占单个节拍的比例为0.4,按照臂爪动作参数计算公式,利用步
骤S3得到的臂爪演奏参数,分别具体计算手指动作指令参数并拼接和手臂动作指令参数,
得到具体的臂爪演奏动作指令和。
步骤S5,利用指令定时发送系统将左右双臂爪的动作指令按照相应的时序信息通过CAN总线协议进行定时、同步发送给臂爪执行系统。
步骤S6,基于多线程的动作指令接收执行系统,实时接收臂爪动作指令,并按照臂爪动作指令信息,完成相应动作的执行,最终实现臂爪弹琴动作的同步配合。
与前述基于仿人臂爪机器人的弹琴动作控制方法的实施例相对应,本发明还提供了基于仿人臂爪机器人的弹琴动作控制装置的实施例。
参见图4,本发明实施例提供的一种基于仿人臂爪机器人的弹琴动作控制装置,包括一个或多个处理器,用于实现上述实施例中的基于仿人臂爪机器人的弹琴动作控制方法。
本发明基于仿人臂爪机器人的弹琴动作控制装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本发明基于仿人臂爪机器人的弹琴动作控制装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的基于仿人臂爪机器人的弹琴动作控制方法。
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
综上所述,本发明基于仿人臂爪的钢琴演奏机器人有很好的钢琴演奏效果,并且通过对评分的设计,在机器人在弹琴过程中,实现了预期的提高中间三个高性能手指的使用频率,减少手臂单次移动距离和移动次数的目的,并且整个计算过程高效稳定。整体实现了充分发挥手臂和手指性能的预期目标。
以上所述仅为本发明的一个实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于仿人臂爪机器人的弹琴动作控制方法,其特征在于,包括如下步骤:
S1、对乐谱存储并解析得到乐谱信息;
对乐谱存储具体为:将琴谱存储于excel表格中,将包括乐谱的节拍在内的表格乐谱信息param、左手的乐谱信息l和右手的乐谱信息r存储于表格首列;利用数字表示音符信息,其中:个位数字表示音符高低;十位和正负号表示音区;小数0.5表示升半调;数字0表示休止符;每一行都以“|”符号作为乐谱的结束标志位;
S2、根据步骤S1解析得到的乐谱信息,结合手臂和手爪的性能,规划手臂和手爪的动作最优组合;
所述步骤S2中采用动态规划,将手臂不同移动距离的性能、不同手指的动作执行性能作为影响因素,实现手臂和手爪最优组合动作的规划,得到手臂和手爪的动作最优组合;具体包含如下子步骤:
S2.1、依据手爪的五个手指包括动作速度、动作范围在内的具体性能分别对其设定评分,依据机械臂在不同移动距离下的包括移动时间及轨迹稳定性在内的实际性能对其设定评分;
S2.2、将解析的乐谱信息中的音符映射到对应的88个琴面按键编号上;对机械手指进行编号;对机械臂位置进行编号,机械臂的位置编号为当前机械臂的大拇指所在钢琴琴键位置上对应的琴键编号;
S2.3、读取当前音符信息,按照音符演奏顺序,通过遍历琴键寻找演奏当前音符的所有手爪组合动作;并依据步骤S2.1中设定的手指的评分,对每种动作组合所分配的手指计算手指动作价值;
S2.4、按照音符演奏顺序,计算相邻两个音符经步骤S2.3得到的所有臂爪动作组合间的手臂移动距离,并依据步骤S2.1中设定的手臂移动距离的评分计算每种组合的移动价值;
S2.5、重复步骤S2.3~ S2.4直至计算完整首乐谱,计算所有臂爪组合动作的评分,并将移动价值最高分值对应的路径作为手臂和手爪的动作最优组合;
S3、根据步骤S2得到的手臂和手爪的动作最优组合,结合乐谱信息,生成演奏动作序列;
S4、根据步骤S1解析得到的乐谱信息,将步骤S3得到的演奏动作序列转化为对应的动作指令;
S5、同步发送步骤S4得到的动作指令至手臂和手爪执行器;
S6、手臂和手爪执行器动作接收动作指令,并通过多线程控制手臂和手爪动作的同步配合执行。
2.如权利要求1所述的基于仿人臂爪机器人的弹琴动作控制方法,其特征在于,所述步骤S3中,根据步骤S2得到的手臂和手爪的动作最优组合,结合包括乐谱演奏速度、演奏风格在内的乐谱信息,规划得到的手臂和手爪的组合动作等信息,生成具体的演奏动作序列;所述演奏动作序列包括:当前音符距离乐谱开头的拍数;当前音符需要演奏的手指的编号;当前音符的手臂位置信息及下一个音符的手臂位置信息;当前音符的持续拍数。
3.如权利要求1所述的基于仿人臂爪机器人的弹琴动作控制方法,其特征在于,所述步骤S4中,根据包括音乐的演奏速度、演奏风格在内的乐谱信息,将步骤S3得到的臂爪动作参数转化为对应的手臂和手指的动作指令,并将该动作指令同步发送手臂和手指执行器;
其中所述手臂和手指的动作指令具体包括:
手指动作指令:需要动作的手指编号、手指开始按下的时间、手指按下的速度、手指按下动作持续时间、手指开始抬起的时间;
手臂动作指令:左右臂的动作模式、手臂开始移动的时间、手臂移动的目标位置;所述左右臂的动作模式包括双臂动作和单臂动作两种模式,其中,手臂开始移动时间等于手指抬起时间。
4.如权利要求3所述的基于仿人臂爪机器人的弹琴动作控制方法,其特征在于,所述手指按下动作持续时间为当前音符占有的拍数乘手指按下时间占整个音符的比例除以整首音乐的演奏速度。
5.如权利要求1所述的基于仿人臂爪机器人的弹琴动作控制方法,其特征在于,所述步骤S6中,手臂和手爪执行器动作同时接收动作指令,多线程延时执行动作指令,控制手臂和手爪动作的同步配合执行;所述多线程延时执行具体为:主线程用于接收动作指令,第一线程用于执行主线程分配的左机械臂的动作指令,第二线程用于执行主线程分配的右机械臂的动作指令;接收到左机械臂的动作指令后,开启第一线程去执行相应的动作指令,主线程则负责等待接收右机械臂的动作指令,待接收到另一条机械臂的动作指令后,开启第二线程去执行相应的右臂动作指令,以此循环,完成仿人臂爪机器人的弹琴动作控制。
6.一种基于仿人臂爪机器人的弹琴动作控制系统,其特征在于,包括乐谱存储解析模块、弹琴动作序列生成模块、动作指令生成发送模块和动作指令接收执行模块;
所述乐谱存储解析模块用于将要演奏的琴谱信息按规则进行存储并对琴谱信息进行解析;
对乐谱存储具体为:将琴谱存储于excel表格中,将包括乐谱的节拍在内的表格乐谱信息param、左手的乐谱信息l和右手的乐谱信息r存储于表格首列;利用数字表示音符信息,其中:个位数字表示音符高低;十位和正负号表示音区;小数0.5表示升半调;数字0表示休止符;每一行都以“|”符号作为乐谱的结束标志位;
所述弹琴动作序列生成模块用于将解析的琴谱信息进行仿人臂爪的动作规划,生成弹琴动作序列;
具体为:依据手爪的五个手指包括动作速度、动作范围在内的具体性能分别对其设定评分,依据机械臂在不同移动距离下的包括移动时间及轨迹稳定性在内的实际性能对其设定评分;将解析的乐谱信息中的音符映射到对应的88个琴面按键编号上;对机械手指进行编号;对机械臂位置进行编号,机械臂的位置编号为当前机械臂的大拇指所在钢琴琴键位置上对应的琴键编号;读取当前音符信息,按照音符演奏顺序,通过遍历琴键寻找演奏当前音符的所有手爪组合动作;并依据设定的手指的评分,对每种动作组合所分配的手指计算手指动作价值;按照音符演奏顺序,计算相邻两个音符所有臂爪动作组合间的手臂移动距离,并依据手臂移动距离的评分计算每种组合的移动价值;直至计算完整首乐谱,计算所有臂爪组合动作的评分,并将移动价值最高分值对应的路径作为手臂和手爪的动作最优组合;根据手臂和手爪的动作最优组合,结合包括乐谱演奏速度、演奏风格在内的乐谱信息,规划得到的手臂和手爪的组合动作等信息,生成具体的演奏动作序列;
所述动作指令生成发送模块用于将生成的弹琴动作序列转换为对应的动作指令,并按照演奏时序发送给手臂和手爪执行器;
所述动作指令接收执行模块用于手臂和手爪执行器接收对应的动作指令,并各自按照指令要求完成要求的弹奏动作。
7.一种电子设备,包括存储器和处理器,其中,所述存储器与所述处理器耦接;其中,所述存储器用于存储程序数据,所述处理器用于执行所述程序数据以实现上述权利要求1-5任一项所述的基于仿人臂爪机器人的弹琴动作控制方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如权利要求1-5中任一所述的基于仿人臂爪机器人的弹琴动作控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210266969.8A CN114347070B (zh) | 2022-03-18 | 2022-03-18 | 基于仿人臂爪机器人的弹琴动作控制方法、系统及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210266969.8A CN114347070B (zh) | 2022-03-18 | 2022-03-18 | 基于仿人臂爪机器人的弹琴动作控制方法、系统及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114347070A CN114347070A (zh) | 2022-04-15 |
CN114347070B true CN114347070B (zh) | 2022-07-12 |
Family
ID=81094392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210266969.8A Active CN114347070B (zh) | 2022-03-18 | 2022-03-18 | 基于仿人臂爪机器人的弹琴动作控制方法、系统及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114347070B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115870980A (zh) * | 2022-12-09 | 2023-03-31 | 北部湾大学 | 一种基于视觉的弹琴机器人控制方法及装置 |
CN116394277B (zh) * | 2023-06-08 | 2023-08-25 | 之江实验室 | 一种仿人钢琴演奏机器人 |
CN116728419B (zh) * | 2023-08-09 | 2023-12-22 | 之江实验室 | 弹琴机器人的连续弹琴动作规划方法、系统、设备及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH081562A (ja) * | 1994-06-16 | 1996-01-09 | Hiroshi Ota | 少数鍵盤電子ピアノでのロボット指打演奏装置 |
CN1481977A (zh) * | 2003-07-24 | 2004-03-17 | 上海交通大学 | 钢琴表演机器人 |
CN106903704A (zh) * | 2017-05-03 | 2017-06-30 | 合肥磐石自动化科技有限公司 | 一种新型钢琴演奏机器人系统 |
KR20180010078A (ko) * | 2016-07-20 | 2018-01-30 | 노소영 | 악기 연주 로봇 시스템, 그리고 이의 동작 방법 |
CN108010504A (zh) * | 2017-12-26 | 2018-05-08 | 昆山塔米机器人有限公司 | 一种由机器人控制的钢琴演奏系统及方法 |
CN109366495A (zh) * | 2018-10-30 | 2019-02-22 | 希格斯动力科技(珠海)有限公司 | 弹奏机器人的手指舵机控制方法及装置 |
CN110216677A (zh) * | 2019-06-21 | 2019-09-10 | 浙江大学 | 一种机械灵巧手弹琴动作序列的生成及其优化方法 |
CN110861086A (zh) * | 2019-11-20 | 2020-03-06 | 珠海格力智能装备有限公司 | 机器人弹奏钢琴的控制方法、装置、存储介质和机器人 |
-
2022
- 2022-03-18 CN CN202210266969.8A patent/CN114347070B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH081562A (ja) * | 1994-06-16 | 1996-01-09 | Hiroshi Ota | 少数鍵盤電子ピアノでのロボット指打演奏装置 |
CN1481977A (zh) * | 2003-07-24 | 2004-03-17 | 上海交通大学 | 钢琴表演机器人 |
KR20180010078A (ko) * | 2016-07-20 | 2018-01-30 | 노소영 | 악기 연주 로봇 시스템, 그리고 이의 동작 방법 |
CN106903704A (zh) * | 2017-05-03 | 2017-06-30 | 合肥磐石自动化科技有限公司 | 一种新型钢琴演奏机器人系统 |
CN108010504A (zh) * | 2017-12-26 | 2018-05-08 | 昆山塔米机器人有限公司 | 一种由机器人控制的钢琴演奏系统及方法 |
CN109366495A (zh) * | 2018-10-30 | 2019-02-22 | 希格斯动力科技(珠海)有限公司 | 弹奏机器人的手指舵机控制方法及装置 |
CN110216677A (zh) * | 2019-06-21 | 2019-09-10 | 浙江大学 | 一种机械灵巧手弹琴动作序列的生成及其优化方法 |
CN110861086A (zh) * | 2019-11-20 | 2020-03-06 | 珠海格力智能装备有限公司 | 机器人弹奏钢琴的控制方法、装置、存储介质和机器人 |
Also Published As
Publication number | Publication date |
---|---|
CN114347070A (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114347070B (zh) | 基于仿人臂爪机器人的弹琴动作控制方法、系统及装置 | |
Godøy et al. | Chunking in music by coarticulation | |
US9558727B2 (en) | Performance method of electronic musical instrument and music | |
CN110216677B (zh) | 一种机械灵巧手弹琴动作序列的生成及其优化方法 | |
US10748515B2 (en) | Enhanced real-time audio generation via cloud-based virtualized orchestra | |
CN110544411B (zh) | 五线谱指法快速标注方法及系统 | |
CN110861086A (zh) | 机器人弹奏钢琴的控制方法、装置、存储介质和机器人 | |
Garcia et al. | PaperTonnetz: supporting music composition with interactive paper | |
Cabral et al. | Crosscale: A 3D virtual musical instrument interface | |
Weinberg et al. | Robotic musicianship: embodied artificial creativity and mechatronic musical expression | |
Zhu et al. | A system for automatic animation of piano performances | |
JP2022115956A (ja) | 情報処理方法、情報処理装置およびプログラム | |
CN110473507B (zh) | 一种双排键智能走谱方法及系统 | |
Kranstedt et al. | Deictic object reference in task-oriented dialogue | |
Toh et al. | An interactive conducting system using kinect | |
CN207669314U (zh) | 一种智能弹奏机器人 | |
CN116728419B (zh) | 弹琴机器人的连续弹琴动作规划方法、系统、设备及介质 | |
Martin et al. | Deep predictive models in interactive music | |
Miranda | On computer-aided composition, musical creativity and brain asymmetry | |
CN109814541B (zh) | 一种机器人的控制方法、系统及终端设备 | |
Schoonderwaldt | Mechanics and acoustics of violin bowing | |
CN103425136A (zh) | 智能交互式机器人皮影表演的控制方法 | |
CN204991121U (zh) | 一种智能控制铜钟或编钟演奏的系统 | |
Wei et al. | Robot Learning from Human Demonstration for Playing Ocarina | |
CN104411375B (zh) | 游戏机、用于该游戏机的控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |