弹奏机器人的手部步进电机控制方法及装置与流程

文档序号:16628099发布日期:2019-01-16 06:18阅读:169来源:国知局
弹奏机器人的手部步进电机控制方法及装置与流程

本申请涉及机器人领域,具体而言,涉及一种弹奏机器人的手部步进电机控制方法及装置。



背景技术:

随着科技的发展,社会已经逐步进入了ai智能时代,各类机器人产品层出不穷。面向大众的服务型机器人也逐渐成为机器人学中的一个重要分支,音乐演奏机器人作为娱乐服务机器人中的重要成员,最早出现于20世纪80年代的日本。目前日本、欧洲已经有一些成熟的产品,著名的钢琴机器人teo已经在进行全球的巡演,并与朗朗等钢琴大师同台竞技。

弹奏机器人手指控制方法的目的是将智能控制技术应用在音乐演奏机器人,完成弹奏机器人对于演奏的自主判断、规划和弹奏控制。音乐演奏机器人可实现音乐演奏的基本功能外,对于机器服务于人,以及机器人未来的推广使用具有重要意义。

以目前最著名的钢琴机器人teo为例,机器人teo是通过固定在钢琴表面,按键数量与琴键数量一致的大型“手掌”实现弹奏功能,也就是说整个弹奏过程所有手指就只有一个下压动作,根据所要弹奏的音符,对应的手指进行下压,完成弹奏。发明人发现,相关技术中的机器人整体手部是固定的,不会相对钢琴移动,在表演时,缺少类似仿生人类自主弹奏的真实感和科技感。

因此,急需一种弹奏机器人的手部步进电机控制方法及装置,以解决相关技术中机器人整体手部不会相对钢琴运动,导致的缺乏真实感的问题。



技术实现要素:

本申请的主要目的在于提供一种弹奏机器人的手部步进电机控制方法,以解决相关技术中机器人整体手部不会相对钢琴运动,导致的缺乏真实感的问题。

为了实现上述目的,根据本申请的一个方面,提供了一种弹奏机器人的手部步进电机控制方法。

根据本申请的弹奏机器人的手部步进电机控制方法包括:通过录入乐谱信息得到数字乐谱;将所述数字乐谱进行格式转换,得到数字乐谱弹奏信号;根据所述数字乐谱弹奏信号生成对应的步进电机控制信号;根据所述步进电机控制信号控制所述弹奏机器人的手部步进电机运动。

进一步的,所述录入乐谱信息得到数字乐谱包括:顺序录入所述乐谱信息并保存,其中,所述乐谱信息包括:简谱信息和五线谱信息;根据预设转换格式对录入后的所述乐谱信息进行格式转换,得到数字乐谱。

进一步的,所述将数字乐谱进行格式转换,得到数字乐谱弹奏信号包括:创建弹奏堆栈;将所述数字乐谱压入所述弹奏堆栈;从所述弹奏堆栈中顺序提取用于弹奏的目标音符,得到数字乐谱弹奏信号。

进一步的,所述根据数字乐谱弹奏信号生成对应的步进电机控制信号包括:根据所述数字乐谱弹奏信号进行脉冲信号配置,得到用于控制所述步进电机的步进电机控制信号,其中,所述脉冲信号配置包括:输出频率配置、信号时长配置和脉宽配置。

进一步的,所述根据步进电机控制信号控制所述弹奏机器人的手部步进电机运动包括:根据接收到的所述步进电机控制信号的输出频率控制所述步进电机的转速;根据接收到的所述步进电机控制信号的信号时长控制所述步进电机的转角。

为了实现上述目的,根据本申请的另一方面,提供了一种弹奏机器人的手部步进电机控制装置。

根据本申请的弹奏机器人的手部步进电机控制装置包括:弹奏信号获取单元,用于将所述数字乐谱进行格式转换,得到数字乐谱弹奏信号;控制信号获取单元,用于根据所述弹奏信号获取单元得到的数字乐谱弹奏信号生成对应的步进电机控制信号;控制单元,用于根据所述控制信号获取单元得到的步进电机控制信号控制所述弹奏机器人的手部步进电机运动。

进一步的,还包括:乐谱录入模块,用于顺序录入所述乐谱信息并保存,其中,所述乐谱信息包括:简谱信息和五线谱信息;数字乐谱获取模块,用于根据预设转换格式对录入后的所述乐谱信息进行格式转换,得到数字乐谱。

进一步的,所述弹奏信号获取单元包括:弹奏堆栈创建模块,用于创建弹奏堆栈;压栈模块,用于将所述数字乐谱压入所述弹奏堆栈;出栈模块,用于从所述弹奏堆栈中顺序提取用于弹奏的目标音符,得到数字乐谱弹奏信号。

进一步的,所述控制信号获取单元包括:脉冲信号配置模块,用于根据所述数字乐谱弹奏信号进行脉冲信号配置,得到用于控制所述步进电机的步进电机控制信号,其中,所述脉冲信号配置包括:输出频率配置、信号时长配置和脉宽配置。

进一步的,所述控制单元包括:转速控制模块,用于根据接收到的所述步进电机控制信号的输出频率控制所述步进电机的转速;转角控制模块,用于根据接收到的所述步进电机控制信号的信号时长控制所述步进电机的转角。

在本申请实施例中,采用将数字乐谱进行格式转换得到数字乐谱弹奏信号的方式,通过根据数字乐谱弹奏信号生成对应的步进电机控制信号,达到了根据步进电机控制信号控制弹奏机器人的手部步进电机运动的目的,从而实现了机器人在弹奏时手部能够相对钢琴运动的技术效果,进而解决了相关技术中机器人整体手部不会相对钢琴运动,导致的缺乏真实感的问题。

附图说明

构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请第一实施例所述的步进电机控制方法示意图;

图2是根据本申请第二实施例所述的步进电机控制方法示意图;

图3是根据本申请第三实施例所述的步进电机控制方法示意图;

图4是根据本申请第四实施例所述的步进电机控制方法示意图;

图5是根据本申请第一实施例所述的步进电机控制方法示意图;

图6是根据本申请第二实施例所述的步进电机控制方法示意图;

图7是根据本申请第三实施例所述的步进电机控制方法示意图;以及

图8是根据本申请第四实施例所述的步进电机控制方法示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本申请中,术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”、“中”、“竖直”、“水平”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本申请及其实施例,并非用于限定所指示的装置、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。

并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本申请中的具体含义。

此外,术语“安装”、“设置”、“设有”、“连接”、“相连”、“套接”应做广义理解。例如,可以是固定连接,可拆卸连接,或整体式构造;可以是机械连接,或电连接;可以是直接相连,或者是通过中间媒介间接相连,又或者是两个装置、元件或组成部分之间内部的连通。对于本领域普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

如图1所示,一种弹奏机器人的手部步进电机控制方法,通过录入乐谱信息得到数字乐谱,其特征在于,该方法包括如下的步骤s101至步骤s103:

优选的,为了方便上位机的简谱和五线谱自动录入功能的实现,乐谱的输入采用最简单的顺序录入格式,考虑到可能有的和旋弹奏方式,因此一个音符采用如下的格式:[音符、…、音符、节拍][音符、音符、节拍][音符、节拍],其中,音符最少为一个,最多为五个。

优选的,乐谱的储存采用1*8单字节数组进行存储,第一位为乐符数量,第二位至第六位为对应乐符,第七位为手掌位置信息,第八位为节拍具体格式为:[乐符数量、乐符1、乐符2、乐符3、乐符4、乐符5、手掌位置、节拍]。

步骤s101,将所述数字乐谱进行格式转换,得到数字乐谱弹奏信号;

优选的,创建弹奏堆栈,将数字乐谱压栈,目的是为了让程序预读取一部分乐符,在演奏前对手掌移动位置进行规划。

具体的,先创建堆栈函数:用于创建一个空的堆栈,最大长度为16,最小储存16个音符,也就是十六个十六分音符,最少一般为四个小节的音符。

然后,释放堆栈函数:用于释放堆栈,减少内存的占用,在演奏结束后,进行释放堆栈的操作。

接着判断堆栈是否已满:用于判断堆栈是否已满,程序中用于检测是否达成出栈条件,也就是说当堆栈已经满了之后,再开始进行演奏。

再然后压入堆栈:用于将预演奏音符压入堆栈;

查询堆栈:用于用于判断堆栈是否已满,程序中用于检测是否达成出栈条件,也就是说当堆栈已经满了之后,再开始进行演奏。

最后删除并返回栈顶item:将栈顶元素出栈,用于演奏。

步骤s102,根据所述数字乐谱弹奏信号生成对应的步进电机控制信号;

优选的,采用stm32f103单片机作为智能机器人的检测和控制核心,采用mcu的系统时钟实现时序控制,采用mcu的timx外设实现pwm输出、脉宽控制、频率控制等功能,采用mcu的gpio外设实现控制信号的输出功能。具体的控制方面,采用可控频率可控信号时长的pwm脉冲驱动步进电机,实现对弹奏机器人手部的左右移动功能。

步骤s103,根据所述步进电机控制信号控制所述弹奏机器人的手部步进电机运动。

优选的,步进电机驱动需要输出指定频率、指定时长的固定占空比为50%的pwm信号,通过控制输出频率控制步进电机转速,通过控制信号时长精确控制步进电机转角。

具体的,主timx外设负责生成指定频率、固定50%占空比的pwm信号,通过复用mcu的gpio外设输出至步进电机;从timx外设通过mcu的内部tim关联,对主timx外设输出的pwm信号脉冲数进行计数,达到指定数量时生成中断,使能关闭主timx外设的pwm信号输出,最终实现指定时长的信号控制。

从以上的描述中,可以看出,本发明实现了如下技术效果:

在本申请实施例中,采用将数字乐谱进行格式转换得到数字乐谱弹奏信号的方式,通过根据数字乐谱弹奏信号生成对应的步进电机控制信号,达到了根据步进电机控制信号控制弹奏机器人的手部步进电机运动的目的,从而实现了机器人在弹奏时手部能够相对钢琴运动的技术效果,进而解决了相关技术中机器人整体手部不会相对钢琴运动,导致的缺乏真实感的问题。

根据本发明实施例,作为本实施例中的优选,如图2所示,所述录入乐谱信息得到数字乐谱包括如下的步骤s201至步骤s202:

步骤s201,顺序录入所述乐谱信息并保存,其中,所述乐谱信息包括:简谱信息和五线谱信息;

优选的,为了方便上位机的简谱和五线谱自动录入功能的实现,乐谱的输入采用最简单的顺序录入格式,考虑到可能有的和旋弹奏方式,因此一个音符采用如下的格式:[音符、…、音符、节拍][音符、音符、节拍][音符、节拍],其中,音符最少为一个,最多为五个,在本申请的其他实施例中,所述乐谱信息也可以是其他形式的乐谱。

步骤s202,根据预设转换格式对录入后的所述乐谱信息进行格式转换,得到数字乐谱。

优选的,乐谱的储存采用1*8单字节数组进行存储,第一位为乐符数量,第二位至第六位为对应乐符,第七位为手掌位置信息,第八位为节拍具体格式为:[乐符数量、乐符1、乐符2、乐符3、乐符4、乐符5、手掌位置、节拍]。

根据本发明实施例,作为本实施例中的优选,如图3所示,所述将数字乐谱进行格式转换,得到数字乐谱弹奏信号包括如下的步骤s301至步骤s303:

步骤s301,创建弹奏堆栈;

优选的,先创建堆栈函数:用于创建一个空的堆栈,最大长度为16,最小储存16个音符,也就是十六个十六分音符,最少一般为四个小节的音符。

步骤s302,将所述数字乐谱压入所述弹奏堆栈;

优选的,将预演奏音符压入堆栈。

步骤s303,从所述弹奏堆栈中顺序提取用于弹奏的目标音符,得到数字乐谱弹奏信号。

优选的,将栈顶元素出栈,得到用于弹奏的目标音符,并生成数字乐谱弹奏信号。

根据本发明实施例,作为本实施例中的优选,所述根据数字乐谱弹奏信号生成对应的步进电机控制信号包括:根据所述数字乐谱弹奏信号进行脉冲信号配置,得到用于控制所述步进电机的步进电机控制信号。

优选的,所述脉冲信号配置包括:输出频率配置、信号时长配置和脉宽配置,具体的,输出频率设置为50hz,脉宽设置为600ms-2500ms,在本申请的其他实施例中,所述脉冲信号配置还可以是其他针对信号的调制方式。

根据本发明实施例,作为本实施例中的优选,如图4所示,所述根据步进电机控制信号控制所述弹奏机器人的手部步进电机运动包括如下的步骤s401至步骤s402:

步骤s401,根据接收到的所述步进电机控制信号的输出频率控制所述步进电机的转速;

优选的,步进电机驱动需要输出指定频率、指定时长的固定占空比为50%的pwm信号,通过控制输出频率控制步进电机转速。

步骤s402,根据接收到的所述步进电机控制信号的信号时长控制所述步进电机的转角。

优选的,步进电机驱动需要输出指定频率、指定时长的固定占空比为50%的pwm信号,通过控制信号时长精确控制步进电机转角。

需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

根据本发明实施例,还提供了一种用于实施上述手部步进电机控制方法的装置,如图5所示,该装置包括:弹奏信号获取单元10,用于将所述数字乐谱进行格式转换,得到数字乐谱弹奏信号;控制信号获取单元20,用于根据所述弹奏信号获取单元得到的数字乐谱弹奏信号生成对应的步进电机控制信号;控制单元30,用于根据所述控制信号获取单元得到的步进电机控制信号控制所述弹奏机器人的手部步进电机运动。

根据本申请实施例所述的弹奏信号获取单元10用于将所述数字乐谱进行格式转换,得到数字乐谱弹奏信号,优选的,创建弹奏堆栈,将数字乐谱压栈,目的是为了让程序预读取一部分乐符,在演奏前对手掌移动位置进行规划。

根据本申请实施例所述的控制信号获取单元20用于根据所述弹奏信号获取单元得到的数字乐谱弹奏信号生成对应的步进电机控制信号,优选的,采用stm32f103单片机作为智能机器人的检测和控制核心,采用mcu的系统时钟实现时序控制,采用mcu的timx外设实现pwm输出、脉宽控制、频率控制等功能,采用mcu的gpio外设实现控制信号的输出功能。具体的控制方面,采用可控频率可控信号时长的pwm脉冲驱动步进电机,实现对弹奏机器人手部的左右移动功能。

根据本申请实施例所述的控制单元30用于根据所述控制信号获取单元得到的步进电机控制信号控制所述弹奏机器人的手部步进电机运动,优选的,步进电机驱动需要输出指定频率、指定时长的固定占空比为50%的pwm信号,通过控制输出频率控制步进电机转速,通过控制信号时长精确控制步进电机转角。

根据本发明实施例,作为本实施例中的优选,如图6所示,还包括:乐谱录入模块01,用于顺序录入所述乐谱信息并保存,其中,所述乐谱信息包括:简谱信息和五线谱信息;数字乐谱获取模块02,用于根据预设转换格式对录入后的所述乐谱信息进行格式转换,得到数字乐谱。

根据本申请实施例所述的乐谱录入模块01,用于顺序录入所述乐谱信息并保存,其中,所述乐谱信息包括:简谱信息和五线谱信息,优选的,为了方便上位机的简谱和五线谱自动录入功能的实现,乐谱的输入采用最简单的顺序录入格式,考虑到可能有的和旋弹奏方式,因此一个音符采用如下的格式:[音符、…、音符、节拍][音符、音符、节拍][音符、节拍],其中,音符最少为一个,最多为五个,在本申请的其他实施例中,所述乐谱信息也可以是其他形式的乐谱。

根据本申请实施例所述的数字乐谱获取模块02,用于根据预设转换格式对录入后的所述乐谱信息进行格式转换,得到数字乐谱,优选的,乐谱的储存采用1*8单字节数组进行存储,第一位为乐符数量,第二位至第六位为对应乐符,第七位为手掌位置信息,第八位为节拍具体格式为:[乐符数量、乐符1、乐符2、乐符3、乐符4、乐符5、手掌位置、节拍]。

根据本发明实施例,作为本实施例中的优选,如图7所示,所述弹奏信号获取单元10包括:弹奏堆栈创建模块11,用于创建弹奏堆栈;压栈模块12,用于将所述数字乐谱压入所述弹奏堆栈;出栈模块13,用于从所述弹奏堆栈中顺序提取用于弹奏的目标音符,得到数字乐谱弹奏信号。

根据本申请实施例所述的弹奏堆栈创建模块11用于创建弹奏堆栈,优选的,先创建堆栈函数:用于创建一个空的堆栈,最大长度为16,最小储存16个音符,也就是十六个十六分音符,最少一般为四个小节的音符。

根据本申请实施例所述的压栈模块12用于将所述数字乐谱压入所述弹奏堆栈,优选的,将预演奏音符压入堆栈。

根据本申请实施例所述的出栈模块13用于从所述弹奏堆栈中顺序提取用于弹奏的目标音符,得到数字乐谱弹奏信号,优选的,将栈顶元素出栈,得到用于弹奏的目标音符,并生成数字乐谱弹奏信号。

根据本发明实施例,作为本实施例中的优选,所述控制信号获取单元20包括:脉冲信号配置模块21,用于根据所述数字乐谱弹奏信号进行脉冲信号配置,得到用于控制所述步进电机的步进电机控制信号,其中,所述脉冲信号配置包括:输出频率配置、信号时长配置和脉宽配置。

根据本申请实施例所述的脉冲信号配置模块21用于根据所述数字乐谱弹奏信号进行脉冲信号配置,得到用于控制所述步进电机的步进电机控制信号,优选的,所述脉冲信号配置包括:输出频率配置、信号时长配置和脉宽配置,在本申请的其他实施例中,所述脉冲信号配置还可以是其他针对信号的调制方式。

根据本发明实施例,作为本实施例中的优选,如图8所示,所述控制单元30包括:转速控制模块31,用于根据接收到的所述步进电机控制信号的输出频率控制所述步进电机的转速;转角控制模块32,用于根据接收到的所述步进电机控制信号的信号时长控制所述步进电机的转角。

根据本申请实施例所述的转速控制模块31用于根据接收到的所述步进电机控制信号的输出频率控制所述步进电机的转速,优选的,步进电机驱动需要输出指定频率、指定时长的固定占空比为50%的pwm信号,通过控制输出频率控制步进电机转速。

根据本申请实施例所述的转角控制模块32用于根据接收到的所述步进电机控制信号的信号时长控制所述步进电机的转角,优选的,步进电机驱动需要输出指定频率、指定时长的固定占空比为50%的pwm信号,通过控制信号时长精确控制步进电机转角。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1