一种控制机器人实现机械律动方法及机器人与流程

文档序号:15166703发布日期:2018-08-14 17:34阅读:204来源:国知局

本发明涉及智能机器人技术领域,特别涉及一种控制机器人实现机械律动方法及机器人。



背景技术:

随着机器人的不断发展,智能化程度不断提高,市场对于机器人的功能和性能要求也越来越高。在服务型机器人领域,市场对机器人的娱乐功能要求也越来越高,其中,机器人跳舞或其他形式的跟随音乐节拍的机械律动是娱乐功能的重要组成部分。

目前主流的机器人执行机械律动需要事先对机器人进行编程,或者提前对音频文件进行预处理。但是随着网络音乐技术的成熟,智能设备越来越多地采用实时从云服务器下载,并实时播放的方式;从而如何实现机器人根据实时接收到的音频信号进行相应的机械律动成为人们关注的焦点。例如,美国专利us20160236353a1公开了针对自身播放的音乐进行节拍分析并驱动预先设置的马达让机器人跳舞,其通过cpu对事先在机器人内部的存贮器里的音频文件进行分析,以使得系统有足够的时间相应。但是,对于从外部设备接收到的实时音频文件,仍无法实现机器人随着实时接收到的音频文件进行机械律动,给用户带来较大的不便。

因而现有技术还有待改进和提高。



技术实现要素:

针对现有技术的不足,本发明的目的是要提供一种控制机器人实现机械律动方法及机器人,以使得机器人随音频进行机械律动不限于音频文件的来源。

为了解决上述技术问题,本发明所采用的技术方案如下:

一种控制机器人实现机械律动的方法,其包括:

接收实时的音频信号,并实时获取所述音频信号的包络信息;

根据所述包络信息确定所述音频信号的节奏信息,并根据所述节奏信息确定所述音频信号对应的控制曲线;

根据所述控制曲线生成控制信号,以控制马达驱动所述机器人执行所述音频信号对应的律动。

所述控制机器人实现机械律动的方法,其中,所述音频信号为外界播放的音频信号、外部设备发送的音频信号以及本地播放的音频信号中的一种。

所述控制机器人实现机械律动的方法,其中,所述接收实时的音频信号,并实时获取所述音频信号的包络信息具体包括:

接收实时的音频信号,并对接收到的音频信号进行预处理;

实时获取预处理后的音频信号当前时刻的当前波形值;

根据所述当前波形值计算当前时刻的上包络值、下包络值和平均曲线值;

根据获取到的上包络值、下包络值和平均曲线值形成包络信息。

所述控制机器人实现机械律动的方法,其中,所述根据所述当前波形值计算当前时刻的上包络值具体包括:

将当前波形值与前一时刻的上包络值进行比较;

若当前波形值大于前一时刻的上包络值,则将当前波形值设置为当前时刻的上包络值;

若当前波形值小于前一时刻的上包络值,则将前一时刻的上包络值按照预设规则减小,以得到当前时刻的上包络值。

所述控制机器人实现机械律动的方法,其中,根据所述包络信息确定所述音频信号的节奏信息,并根据所述节奏信息确定所述音频信号对应的控制曲线具体包括:

分别选取所述音频信号从下包络上升为上包络过程中穿过平均曲线的第一时刻,并将所述第一时刻作为所述音频信号的节拍;

根据获取到的节拍确定所述音频信号的节奏信息;

采用锁相环方法对所述节奏信息进行校正,并根据校正后的节奏信息确定所述音频信号对应的控制曲线。

所述控制机器人实现机械律动的方法,其中,所述根据获取到的节拍确定所述音频信号的节奏信息具体包括:

根据所述上包络和下包络确定所述音频信号的主节拍频率;

根据所述主节拍频谱对获取到的节拍进行筛选;

当所述节拍为突变节拍时,丢弃所述突变节拍以校正所述节奏信息,并根据筛选后的节拍确定所述音频信号的节奏信息。

所述控制机器人实现机械律动的方法,其中,所述根据获取到的节拍确定所述音频信号的节奏信息具体包括:

根据所述上包络和下包络确定所述音频信号的主节拍频率,并根据所述主节拍频谱对获取到的节拍进行筛选;

当所述节拍为突变节拍时,将所述突变节奏信息叠加至控制曲线内。

所述的控制机器人实现机械律动的方法,其中,所述根据所述控制曲线生成控制信号,以控制马达驱动所述机器人执行所述音频信号对应的律动具体包括:

根据所述控制曲线生成控制信号,并判断所述控制信号是否符合马达驱动条件;

当符合马达驱动条件时,将所述控制信号发送至马达,以控制马达驱动所述机器人执行所述音频信号对应的律动。

所述的控制机器人实现机械律动的方法,其中,根据所述控制曲线生成控制信号,以控制马达驱动所述机器人执行所述音频信号对应的律动还包括:

当不符合马达驱动条件时,获取所述马达的运动幅度;

根据所述马达的运动幅度对所述控制信号进行调整,并根据调整后的控制信号对马达进行控制。

一种机器人,其包括驱动所述机器人执行机械律动的马达、处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;

所述通信总线实现处理器和存储器之间的连接通信;

所述处理器执行所述计算机可读程序时实现如上任一所述的控制机器人实现机械律动的方法中的步骤。

有益效果:与现有技术相比,本发明提供了一种控制机器人实现机械律动方法及机器人,所述方法包括:接收实时的音频信号,并实时获取所述音频信号的包络信息;根据所述包络信息确定所述音频信号的节奏信息,并根据所述节奏信息确定所述音频信号对应的控制曲线;根据所述控制曲线生成控制信号,以控制马达驱动所述机器人执行所述音频信号对应的律动。本发明通过实时采集接收到音频信号包络信息,根据包络信息确定节奏信息,并根据节奏信息生成控制信号,以控制机器人根据音频信号进行机械律动,实现了机器人根据实时接收到的音乐进行相应的机械律动,避免了机器人对音频文件来源的限制,拓宽了机器人的适用范围。

附图说明

图1为本发明提供的控制机器人实现机械律动方法较佳实施例的流程图。

图2为本发明提供的控制机器人实现机械律动方法较佳实施例中步骤s10的流程图。

图3a为本发明提供的控制机器人实现机械律动方法较佳实施例中音频信号示例的部分波形图。

图3b为本发明提供的控制机器人实现机械律动方法较佳实施例中音频信号示例的节拍信号示意图。

图3c为本发明提供的控制机器人实现机械律动方法较佳实施例中音频信号示例的生成的单频控制信号的波形图。

图3c1为本发明提供的控制机器人实现机械律动方法较佳实施例中音频信号示例的生成的叠加突变节拍信号的控制信号的波形图。

图3d为本发明提供的控制机器人实现机械律动方法较佳实施例中音频信号示例的生成的单频控制信号添加停顿形成的控制信号的波形图。

图3e为图3d对应的二分频控制信号的波形图。

图3f为图3d对应的三分频控制信号的波形图。

图4为本发明提供的控制机器人实现机械律动方法较佳实施例中步骤s30的流程图。

图5为本发明提供的机器人较佳实施例的结构原理图。

图6为本发明提供的机器人较佳实施例中节奏获取模块一个实施例的结构原理图。

图7为本发明提供的机器人较佳实施例中节奏获取模块的另一个实施的结构原理图。

具体实施方式

本发明提供一种控制机器人实现机械律动方法及机器人,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

下面结合附图,通过对实施例的描述,对发明内容作进一步说明。

请参照图1,图1为本发明提供的控制机器人实现机械律动方法的较佳实施例的流程图。所述方法包括:

s10、接收实时的音频信号,并实时获取所述音频信号的包络信息,其中,包络信息包括上包络、下包络以及平均曲线。

具体地,所述音频信号可以包括外界播放的音频信号、外部设备发送的音频信号以及本地播放的音频信号中一种。也就是说,所述机器人可以配置音频接收装置,如,麦克风等,通过所述音频接收装置拾取外接播放的音频数据,并将接收到的音频数据通过模电转换生成音频信号。此外,机器人可以设置有外部设备接口,如,蓝牙接口、usb接口等,通过外部接口与外部设备进行连接,接收外部设备发送的音频信号。另外,所述机器人还可以设置有网络接口,如wifi接口、网线接口、3g接口以及4g接口等,通过所述网络接口连接云端服务器,接收云端服务器发送至机器人的实时音频信号等。同时,所述音频信号也可以是本地存储并播放的音频数据等,这里就不一一说明。当然,应当说明的是,在本实施例以所述音频信号为实时接收到音频信号为例。

同时在本实施例中,当接收到实时的音频信号时,所述音频信号会存在干扰或者杂音等,从而在接收到音频信号后,需要对所述音频信号进行预处理以去除音频信号携带的干扰。相应的,如图2所示,所述接收实时的音频信号,并实时获取所述音频信号的包络信息具体包括:

s11、接收实时的音频信号,并对接收到的音频信号进行预处理;

s12、实时获取预处理后的音频信号当前时刻的当前波形值;

s13、根据所述当前波形值计算当前时刻的上包络值、下包络值和平均曲线值;

s14、根据获取到的上包络值、下包络值和平均曲线值形成包络信息。

具体的来说,在所述步骤s11中,所述预处理可以包括降噪、回声消除以及左右声道处理等。另外,由于一段音源的节拍在每分钟几十到几百之间,其需要处理器进行大量的运行,从而会增大处理器的开销,使得机器人反应迟缓或者出现卡顿。从而,为了减少节拍获取对处理的损害,所述预处理过程还可以包括重采样以及滤波。也就是说,在对所述音频信号进行降噪、回声消除以及左右声道处理后,对所述音频信号采用重采样以及低通滤波,以减少每分钟的节拍数,从而降低处理器的计算量。

相应的,所述接收实时的音频信号,并对接收到的音频信号进行预处理可以为接收实时的音频信号,并对接收到的音频信号进行降噪、回声消除以及左右声道的预处理,以及对预处理后的音频信号进行重采样、低通滤波以及取绝对值,以生成预设时间段(例如,一分钟等)的波形图。例如,如图3a所示,所述波形图中包括预设时间段内音频信号的波形310,波形310的平均曲线322、上包络320以及下包络321。也就是说,所述包络信息包括平均曲线322、上包络320以及下包络321。

在所述步骤s12中,当对音频信号进行重采样、低通滤波以及取绝对值后仅能获取当前时间(当前采集时间)的波形值(音频信号的频率值),当前时刻的上包络值、下包络值以及平均曲线数值根据当前时刻的波形值以及前一时刻的平均曲线数值、上包络值以及下包络值。

在所述步骤s13中,由于当前时刻以后的波形值为未知,从而当前时刻平均曲线数值是根据当前时刻的波形值以及前一时刻的平均曲线值确定,其计算公式可以为:

vavg(n)=vavg(n-1)-vavg(n-1)/m+vin(n)/m;

其中,vavg(n)为当前时刻的平均值曲线数值,vin为当前时刻的波形值,vavg(n-1)为前一时刻的平均值曲线数值,m为常数,并且所述m随着采样点数量的增加而变大,也就是说,m越大,影响平均值的采样点越大。在这里,由于音乐的节拍主要在每秒几十到几百之间,从而所述各时刻对应的平均值曲线的时间常数m大于各时刻对应的采样点数量。

此外,所述上包络320和下包络321用于表示波形310的浮动空间,所述上包络和下包络的生成均是一个动态过程,由于当前时刻以后的波形值为未知,所述上包络和下包络均是根据当前时刻的波形值以及前一时刻的包络值计算得到的。这里以上包络为例进行说明。当获取到当前时刻的波形值后,将当前时刻的波形值与前一时刻的上包络进行比较。若当前时刻的波形值大于前一时刻的上包络,则说明所述波形为上升趋势,从而可以将所述波形值作为当前时刻的上包络,即将所述波形值赋予当前时刻的上包络值。若当前时刻的波形值小于前一时刻的上包络值,则说明所述波形为下降趋势,此时可以根据当前时刻的波形值以及前一时刻的上包络进行当前时刻的上包络,并控制所述上包络按照预设规则进行递减,并且递减速度受到波形310的影响,以保证递减速度和前一时间的上包络值与当前时刻的波形值的差成正比。

示例性的,所述根据所述当前波形值计算当前时刻的上包络值具体包括:

s131、将当前波形值与前一时刻的上包络值进行比较;

s132、若当前波形值大于前一时刻的上包络值,则将当前波形值设置为当前时刻的上包络值;

s133、若当前波形值小于前一时刻的上包络值,则将前一时刻的上包络值按照预设规则减小,以得到当前时刻的上包络值。

具体地,所述预设规则可以为

其中,所述vpk(n)为当前时刻的上包络值;vin为当前时刻的波形值,所述vpk(n-1)为前一时刻的上包络值。当然,m与计算当前时间平均曲线数值的m相同。也就是说,所述根据当前时刻的波形值以及前一时刻的上包络值计算当前时刻的上包络值的公式可以为:

同时在本实施例中,所述当前时刻的下包络的计算方法与当前时刻的上包络的计算方法相同,仅是下包络为下降时等于当前时刻的波形值,上升时案子预设规则递增。相应的,所述根据当前时刻的波形值以及前一时刻的下包络值计算当前时刻的下包络值的公式可以为:

其中,vpk1(n)为当前时刻的下包络值,vpk1(n-1)为前一时刻的下包络值。

s20、根据所述包络信息确定所述音频信号的节奏信息,并根据所述节奏信息确定所述音频信号对应的控制曲线。

具体地,所述节奏信息指的是所述音频信号的节拍信息。所述节拍信息可以根据上包络、下包络以及平均曲线确定。所述上包络和下包络之间的区域反应了音频信号的起伏程度,并且波形在短时间(如,0.1s等)内从下包络穿越平均曲线上升至上包络区域,即所述波形变化斜率高的地方可以判定为音乐节拍。在本实施例中,可以将所述音频信号在短时间内从下包络穿越平均曲线上升至上包络区域,并且与平均曲线相交的时刻作为节拍。相应的,所述根据所述包络信息确定所述音频信号的节奏信息,并根据所述节奏信息确定所述音频信号对应的控制曲线具体包括

s21、分别选取所述音频信号从下包络上升为上包络过程中穿过平均曲线的第一时刻,并将所述第一时刻作为所述音频信号的节拍;

s22、根据获取到的节拍确定所述音频信号的节奏信息;

s23、采用锁相环方法对所述节奏信息进行校正,并根据校正后的节奏信息确定所述音频信号对应的控制曲线。

具体的来说,在所述步骤s21中,所述根据所述上包络和下包络可以确定音频信号的主节拍频率;根据所述主节拍频率可以更实时锁定音乐节拍。在本实施例中,所述主节拍频率可以通过对上包络和下包络进行傅里叶变换得到,这里就不详细说明。此外,根据上包络、下包络以及平均曲线可以确定节拍,其还可以通过上包络和下包络获取一个节拍内波形的上下峰值。所述上下峰值可以反正节拍的强弱,例如,在在三拍的音乐中,在峰值上可以检测到“强弱弱”的峰值变化。从而在本实施例的变形实施例中,可以根据峰值以及节拍来确定节奏信息。

在所述步骤s22中,由于音乐节拍有轻重缓急之分,加上不同乐器的结伴以及歌声的节拍的重叠,会造成获取到的节拍存在干扰节拍或者突变节拍,如图3b所示,所述音频信号可以包括信号333,信号335以及信号337等。从而为了得到可信度高的节拍,可以根据主节拍频率对获取的节拍进行筛选,以去除突变节拍。相应的,所述根据获取到的节拍确定所述音频信号的节奏信息具体包括:

根据所述上包络和下包络确定所述音频信号的主节拍频率;

根据所述主节拍频谱对获取到的节拍进行筛选;

当所述节拍为突变节拍时,丢弃所述突变节拍以校正所述节奏信息,并根据筛选后的节拍确定所述音频信号的节奏信息。

具体地,所述主节拍频率作为单一频率律动的节拍,将主节拍频率一定范围之外的节拍过滤掉,即对节拍突变等不做反应,例如,对信号335和信号337不做反应。另外,在本实施例的变形实施例中,根据主节拍频率检测到突变节拍时,可以将突变节拍实时地叠加到控制机械运动的波形上。

在所述步骤s23中,所述采用锁相环方法对所述节奏信息进行校正可以为采用锁相环(pll)中的相位比较进行校正。也就是说,机器人可以设置有数字控制振荡器,通过将数字控制振荡器输出的相位与音频信号的相位做实时比较,并利用锁相环在相位锁定时保证频率无误差的特性,达到机械律动和音乐节拍频率完全一致的效果。

所述机器人内还可以设置有相位检测器和低通滤波器,所述低通滤波器、相位检测器以及数字控制振荡器构成所述锁相环校正装置,通过节拍过滤的音频信号与数字控制振荡器输出相位在相位检测仪中进行比较,相位检测仪将两个相位的差值,所述差值通过低通滤波器进行低通滤波后形成数字控制振荡器的输入信号,所述输入信号通过数字控制振荡器后循环至相位检测器以进行锁相环的相位比较,并且当系统趋于稳定时,所述输入数字控制振荡器的输入信号趋于不变。在本实施例中,所述数字控制振荡器的输出信号为单频率曲线,如图3c所示,水平线365定义了在单频率正弦波信号(如,曲线369)。所述正弦波曲线369向上穿过水平线365的焦点被定义为输出相位,所述相位作为相位检测器的输入项与节拍输入信号333进行相位比较。

在本发明的变形实施例中,为了将突变节拍叠加至控制信号上,所述机器人内还可以设置有校正器,所述校正器对突变节拍进行校正,并将校正后节拍信号叠加至数字控制振动器输入的控制信号上。也就是说,突变节拍的控制信号不需要进入锁相环,而是进入校正器,通过所述校正器后叠加到控制信号上,如图3c1所示,突变节拍信号750叠加在控制信号上。

s30、根据所述控制曲线生成控制信号,以控制马达驱动所述机器人执行所述音频信号对应的律动。

具体地,所述控制信号是根据所述控制曲线生成的,用于控制马达驱动所述机器人执行机械律动。也就是说,所述马达根据所述控制信息进行相应的运动,以驱动机器人进行相应的机械律动,如,跳舞等。此外,为了展示节拍的停顿效果,在生成控制信号后,可以在控制信号中添加停顿,以使得机器人根据所述控制信号进行机械律动时,会具有更强的节拍感。在本实施例中,可以根据马达的运动周期在控制信号中添加停顿。其中,所述停顿可以添加在马达相邻两个运动周期之间,使得马达在完成一个运动周期之后,执行一次停顿操作,以增加机械律动的节奏感。所述运动周期指的是马达完成运动幅度从波峰到波谷的时间。例如,如图3d所示,平台350表示停顿,355部分表示马达的正常运动,370表示马达控制信号的范围,即一个运动周期内马达运动的行程,例如,马达的运动幅度是10cm,那么高度a对应20cm的机械的运动幅度。此外,在控制多个马达律动或选择多节拍运动时,可以依次产生二分频、三分频等控制信号,其波形可以如图3e和3f所示。

同时在本实施例中,为了避免控制信号的控制范围超过马达在一个运动周期内可完成的运动幅度,当将所述控制信号发送至马达时,可以监听马达运动信息以得到反馈信息,并根据所述反馈信息自动调整控制信号的范围,以使得所述控制信号的范围与马达的运动幅度相适配,使得机器人的机械律动与音频信号相匹配。相应的,如图4所示,所述根据所述控制曲线生成控制信号,以控制马达驱动所述机器人执行所述音频信号对应的律动具体可以包括:

s31、根据所述控制曲线生成控制信号,并判断所述控制信号是否符合马达驱动条件;

s32、当符合马达驱动条件时,将所述控制信号发送至马达,以控制马达驱动所述机器人执行所述音频信号对应的律动;

s33、当不符合马达驱动条件时,获取所述马达的运动幅度;

s34、根据所述马达的运动幅度对所述控制信号进行调整,并根据调整后的控制信号对马达进行控制。

具体地,当生成控制信号后,可以检测控制信号是否符合马达驱动条件,当符合时,根据所述控制信号控制马达执行相应的操作。当不符合时,根据马达的运动幅度以及运动周期调整所述控制信号,以使得控制信号符合马达驱动条件。其中,所述马达驱动条件为在一个运动周期内完成两个运动振幅的运行距离,也就是说,所述控制信号的范围等于两个运动幅度,以使得所述马达可以完成可以根据控制信号完成与音频信号相匹配的运动。

本发明还提供了一种机器人,其包括至少一个处理器(processor)20;以及存储器(memory),还可以包括通信接口(communicationsinterface)和总线。其中,处理器、存储器和通信接口可以通过总线完成相互间的通信。通信接口可以传输信息。处理器可以调用存储器中的逻辑指令,以执行上述实施例中的方法。

所述机器人还可以包括音频接收装置,所述音频接收装置通过与所述处理器相连接,并将其接收到音频信号发送至处理器。所述音频接收装置与所述处理器之间可以设置有模电转换器,通过所述模电转换器将音频接收装置接收的电信号转换为数字信号,并将数字信息发送至处理器,以使得处理器根据所述数字信息生成用于驱动马达的控制信号。

如图5所示,所述处理器可以包括处理模块、机械控制模块140、机械模块150,所述机械控制模块140通过反馈连接与处理器102连接。机械模块150通过反馈连接与机械控制模块140连接,以将机械模块的反馈信息发送至处理模块,处理模块根据机械模块的反馈信息对控制信号进行相应的调整。

如图5所示,所述处理模块102包括音频预处理模块110、节奏获取模块120以及节奏映射和纠正模块130,所述音频预处理模块110接收音频接收模块发送的音频信号,对接收到的音频信号进行预处理,并将预处理后的音频信号发送至节奏获取模块120,节奏获取模块120接收预处理后的音频信号,并实时获取音频新后的节奏信号,并将节奏信号发送至节奏映射和纠正模块130,节奏映射和纠正模块130对所述节奏信号进行纠正,并确定纠正后的节奏信息对应的控制信号。

如图6所示,所述节奏获取模块120可以包括重采样和滤波模块200、包络检测模块210、节奏检测模块220以及锁相环模块;所述锁相环模块可以包括相位检测仪pd230,低通滤波器lpf240以及数字振动控制器dco250;所述音频预处理模块110发送的预处理后的音频信号依次通过重采样和滤波模块200、包络检测模块210、节奏检测模块220以及锁相环模块后进入节奏映射和纠正模块。在本实施例的变形实施例中,如图7所示,所述节奏获取模块还可以包括校正器610,通过所述矫正器610将突变节拍信号叠加至控制信号上。

此外,上述存储介质以及移动终端中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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