一种机器人的控制方法、系统及终端设备
技术领域
本申请实施例属于智能控制技术领域,尤其涉及一种机器人的控制方法、系统及终端设备。
背景技术
随着时代的发展,科学技术的进步,机器人已经开始进入人们的生活。例如家庭中用的扫地机器人、舞台上出现的伴舞型机器人等。机器人使用过程中免不了要与周围的人或物进行互动,如伴舞机器人在伴舞时,希望其能根据音乐的节奏而运动。目前对机器人的交互方法中主要有拖动示教、骨骼提取、语音识别等方式,这些方法对机器人本体性能及控制过程中的算法都有很高的要求,并且也很难实现机器人随音乐而律动。现有的预先将曲目进行编写存储在机器人中以使其随音乐运动的方法中,机器人动作编程过程繁琐,需要耗费大量的时间、精力才能编写完成一个曲目的动作,加重了编程人员的工作负担。
发明内容
有鉴于此,本申请的实施例中提供了一种机器人的控制方法、系统及终端设备,以解决现有机器人伴舞的过程中无预先编入的曲目动作时不能根据所播放音乐节奏而舞动的问题。
本发明实施例的第一方面提供了一种机器人的控制方法,所述机器人的控制方法包括:
获取预设范围内乐器发声时产生的发声信息,所述发声信息包括发声的音调或音阶或发声时长中的一项或多项;
根据所述发声信息确定机器人中的自由度当前时刻的调节信息;
获取上一时刻所述机器人的关节的位置信息;
根据所述位置信息和所述调节信息控制所述机器人的运动。
本发明实施例的第二方面提供了一种机器人的控制系统,所述机器人的控制系统包括:
第一获取单元,用于获取预设范围内乐器发声时产生的发声信息,所述发声信息包括发声的音调或音阶或发声时长中的一项或多项;
调节信息确定单元,用于根据所述发声信息确定机器人中的自由度当前时刻的调节信息;
第二获取单元,用于获取上一时刻所述机器人的关节的位置信息;
控制单元,用于根据所述位置信息和所述调节信息控制所述机器人的运动。
本发明实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如所述机器人的控制方法中任一项所述方法的步骤。
本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如所述机器人的控制方法中任一项所述方法的步骤。
本申请提供的实施例中由乐器数据采集设备获取乐器发声时所产生的发声信息,根据所述发声信息确定出机器人的自由度在当前时刻的调节角度等信息,然后获取上一时刻机器人中各个关节的位置信息,根据上一时刻机器人关节的位置信息及自由度在当前时刻的调节角度以相应的速度控制机器人运动到当前时刻对应的位置。这一过程中,乐器数据采集设备可以根据获取的乐器的发声信息确定机器人的自由度的调节信息,从而控制机器人相应的运动,在不需要预先编写曲目动作的前提下实现了机器人随音乐而舞动的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一提供的一种机器人的控制方法的流程示意图;
图2是本申请另一实施例提供的钢琴发声时机器人伴舞的控制示意图;
图3是本发明实施例二提供的一种机器人的控制系统结构框图;
图4是本发明实施例三提供的终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
本申请提供的实施例包括一台或多台乐器、乐器数据采集设备以及一台或多台的机器人,所述机器人用于根据所述乐器发出的节奏而运动,实现机器人根据音乐节奏进行伴舞。乐器数据采集设备获取预设范围内存在的乐器的发声信息,根据所述发声信息确定机器人的自由度在当前时刻的调节信息,获取前一时刻机器人中关节的位置信息,根据机器人关节的位置信息以及当前时刻的调节信息控制机器人的运行。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
图1示出了本申请实施例一提供的一种机器人的控制方法的实现流程示意图,详述如下:
步骤S11,获取预设范围内乐器发声时产生的发声信息,所述发声信息包括发声的音调或音阶或发声时长中的一项或多项;
本申请提供的实施例中在乐器发声时由乐器数据采集设备获取乐器的发声信息,其中,所述乐器数据采集设备可以独立存在,此时,乐器数据采集设备分别与机器人和乐器进行连接;所述乐器数据采集设备也可以设置在所述机器人中,此时,所述机器人通过无线或近距离通讯等方式与所述乐器连接。所述乐器包括一台或多台,乐器的种类可以相同也可以不同。
乐器数据采集设备在乐器发声时获取发声的音调、音阶或发声时长中的一项或多项发声信息。为了使乐器数据采集设备能够准确的采集到乐器的发声信息,可将所述乐器设置在距离所述乐器数据采集设备一定距离的范围内。
乐器采集设备在获取所述发声信息时,可以通过实时监听乐器发出的声音分析得出所述发声信息,也可以检测乐器所处的状态,根据乐器.所处的状态确定发生信息。例如,乐器数据采集设备获取钢琴的发声信息时,检测钢琴的按键是否被触动,被触动的程度、时长等信息,从而确定钢琴的发声信息。
步骤S12,根据所述发声信息确定机器人中的自由度当前时刻的调节信息;
本申请提供的实施例中根据乐器数据采集设备获取到的发声信息确定机器人中.自由度的调节信息。其中,所述自由度的调节信息包括机器人每个关节中单个自由度的调节信息或多个自由度的组合对应的调节信息。例如,对于双足机器人,其本体中含有6个自由度,根据乐器数据采集设备获取的发生信息确定双足机器人的六个自由度或六个自由度的线性/非线性组合对应的调节信息。
可选地,预先根据每种乐器的发声特点设置乐器发声信息与机器人自由度调节信息相对应的调节信息表,存储所述调节信息表到预设位置(如机器人的存储空间或乐器数据采集设备的存储.区域内)。在乐器数据采集设备获取到乐器的发声信息时,根据所述发声信息查找所述调节信息表中对应的自由度的调节角度的大小或调节方向等信息。
步骤S13,获取上一时刻所述机器人的关节的位置信息;
该步骤中,乐器数据采集设备获取相对于当前时刻前一时刻机器人的位置信息,所述位置信息包括机器人本体所处的位置及姿态,或每个关节所处的位置或姿态。
步骤S14,根据所述位置信息和所述调节信息控制所述机器人的运动。
本申请提供的实施例中根据机器人前一时刻的位置信息和机器人中自由度当前时刻的调节信息控制机器人当前时刻的运动。
具体地,根据机器人前一时刻关节所处的位置及姿态,通过运动学逆解的方法确定机器人中每个关节在所述前一时刻时所处的角度;然后根据自由度的调节信息确定对应的关节处当前需要调节的角度,控制机器人相应的关节从前一时刻的角度处运动到当前时刻对应的角度。
本申请提供的实施例中由乐器数据采集设备获取乐器发声时所产生的发声信息,根据所述发声信息确定出机器人的自由度在当前时刻的调节角度等信息,然后获取上一时刻机器人中各个关节的位置信息,根据上一时刻机器人关节的位置信息及自由度在当前时刻的调节角度以相应的速度控制机器人运动到当前时刻对应的位置。这一过程中,乐器数据采集设备可以根据获取的乐器的发声信息确定机器人的自由度的调节信息,从而控制机器人相应的运动,在不需要预先编写曲目动作的前提下实现了机器人随音乐而舞动的效果。
优选地,本申请另一实施例提供的一种机器人的控制方法中,所述获取预设范围内乐器发声时产生的发声信息,包括:
实时获取所述预设范围内乐器所处的状态信息;
根据是所述乐器所处的状态信息确定所述乐器发声时产生的发声信息。
具体地,实时监测预设范围内乐器的状态,根据乐器所处的状态确定乐器发声时产生的发声信息。例如,对于一些含有按键类的乐器(如钢琴、电子琴等),监测乐器的按键是否被触动而发出声音,当有按键被触动时,监测按键被按下的速度、时长等信息,从而确定该乐器的发声信息。对于一些弦乐器,监测乐器的弦被触动的情况,根据监测结果确定该乐器的发声信息。可选地,不同种类的乐器根据其特点采用不同的方法监测乐器发声时被触动的情况,从而获取其发声信息,在此不再一一列举。通过监测乐器的状态信息获取乐器的发声信息,能够在乐器被触动时及时的确定其发声信息,从而可使机器人及时的跟着乐器发声的旋律而舞动。
优选地,本申请另一实施例提供的一种机器人的控制方法中,所述根据所述发声信息确定机器人中的自由度当前时刻的调节信息,包括:
根据所述发声信息确定所述机器人中需要改变状态的关节;
根据对应关系确定当前时刻所述需要改变状态的关节中自由度的改变角度。
具体地,机器人在随乐器旋律进行伴舞时,并不一定在每个时刻都需要改变其本体中所有关节的状态,因此,在获取到所述发声信息时,根据发声信息以及预设的调节信息表确定出当前时刻需要改变状态的关节,然后再根据所述调节信息表计算需要改变状态的关节中自由度的改变角度,进而确定出当前时刻需要改变状态的每个关节需要运动的角度及方向。
本申请提供的实施例中先根据获取的发声信息确定需要改变状态的关节,然后再根据自由度的调节信息计算需要改变状态的关节当前时刻需要运行的角度及方向,避免了每一时刻都需要计算机器人每个关节的运动角度及方向,减少计算工作量,提高计算效率。
优选地,本申请另一实施例提供的一种机器人的控制方法中,所述根据所述位置信息和所述调节信息控制所述机器人的运动,还包括:
统计每个时刻所述需要改变状态的关节中自由度的改变角度,生成对应关节的自由度轨迹;
根据所述自由度轨迹确定所述需要改变状态的关节的运动速度;
根据所述运行速度控制所述机器人需要改变状态的关节的运动。
具体地,从伴舞开始对机器人的运动进行规划,统计每个当前时刻下根据获取的乐器的发声信息所确定出的机器人自由度的调节角度,根据对每个关节中自由度或其线性/非线性组合的调节角度的统计结果生成不同关节的自由度轨迹。
下面以钢琴的发声信息为例进行说明:机器人伴舞开始后,检测钢琴的琴键中是否存在被按下的琴键,若存在,则根据该琴键被按下去时获取的发声信息确定需要改变状态的关节以及每个关节中对应的自由度的改变角度,形成自由度轨迹,然后根据当前时刻自由度轨迹中对应的自由度改变的角度以及上一时刻机器人对应关节所处的位置计算当前时刻机器人运动的速度,由机器人的舵机以所述运动速度控制机器人该关节的运动。
如图2示出了钢琴发声时机器人伴舞的控制过程。如图2中所示步骤S21,机器人伴舞开始后,执行步骤S22,开始对机器人运动进行规划;在步骤S23中检测钢琴中是否有琴键被按下;当有琴键被按下时,执行步骤S24及步骤S25,根据发声信息获取机器人当前时刻的自由度以及上一时刻机器人的位置;然后执行步骤S26,根据上一时刻的位置信息及当前时刻自由度控制机器人运动直至步骤S28伴舞结束。若不存在被按下的琴键时,执行步骤S27,保持机器人中自由度静止,直至步骤S28伴舞结束。
可选地,由于钢琴中包括超低音、倍低音、低音、中音、高音、倍高音、超高音区等若干音区,每音区包括至少一组音节,每音节包括7个音,预先设置中音的7个音分别对应机器人的7个基本动作,不同音区则可以在7个基本动作上改变相应动作的频率及幅度,从而衍生出更多动作。在钢琴发声时,机器人可根据不同钢琴发出的音乐旋律自动做出伴舞动作。
优选地,本申请另一实施例提供的一种机器人的控制方法中,所述根据所述位置信息和所述调节信息控制所述机器人的运动,包括:
获取上一时刻所述需要改变状态的关节所处的位置;
根据上一时刻所述需要改变状态的关节所处的位置及所述改变角度确定所述需要改变状态的关节的运动速度;
根据所述运行速度控制所述机器人需要改变状态的关节的运动。
具体地,在控制机器人运动时可直接根据机器人需要改变状态的关节上一时刻所处的位置以及当前时刻的改变角度直接计算当前时刻的运动速度,并由舵机控制机器人以计算所得的运动速度进行伴舞,从而实现机器人可根据不同音乐旋律自动做出伴舞动作,无需再根据每一首歌曲预先编入动作。
实施例二:
对应于上文实施例所述的机器人的控制方法,图3示出了本发明实施例提供的一种机器人的控制系统的结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。
参照图3,该应用程序的升级系统包括:第一获取单元31、调节信息确定单元32、第二获取单元33以及控制单元34,其中:
第一获取单元31,用于获取预设范围内乐器发声时产生的发声信息,所述发声信息包括发声的音调或音阶或发声时长中的一项或多项;
调节信息确定单元32,用于根据所述发声信息确定机器人中的自由度当前时刻的调节信息;
第二获取单元33,用于获取上一时刻所述机器人的关节的位置信息;
控制单元34,用于根据所述位置信息和所述调节信息控制所述机器人的运动。
优选地,所述第一获取单元31,包括:
状态信息获取模块,用于实时获取所述预设范围内乐器所处的状态信息;
发声信息确定模块,用于根据是所述乐器所处的状态信息确定所述乐器发声时产生的发声信息。
所述调节信息确定单元32,包括:
关节确定模块,用于根据所述发声信息确定所述机器人中需要改变状态的关节;
改变角度确定模块,用于根据对应关系确定当前时刻所述需要改变状态的关节中自由度的改变角度。
优选地,所述控制单元34,包括:
统计模块,用于统计每个时刻所述需要改变状态的关节中自由度的改变角度,生成对应关节的自由度轨迹;
第一运动速度确定模块,用于根据所述自由度轨迹确定所述需要改变状态的关节的运动速度;
第一运动控制模块,用于根据所述运动速度控制所述机器人需要改变状态的关节的运动。
优选地,所述控制单元34,还包括:
位置获取模块,用于获取上一时刻所述需要改变状态的关节所处的位置;
第二运动速度确定模块,用于根据上一时刻所述需要改变状态的关节所处的位置及所述改变角度确定所述需要改变状态的关节的运动速度;
第二运动控制模块,用于根据所述运动速度控制所述机器人需要改变状态的关节的运动。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例三:
图4是本发明一实施例提供的一种终端设备的示意图。如图4所示,该实施例的终端设备4包括:处理器40、存储器41以及存储在所述存储器41中并可在所述处理器40上运行的计算机程序42。所述处理器40执行所述计算机程序42时实现上述各个机器人的控制方法实施例中的步骤,例如图1所示的步骤S11至S14。或者,所述处理器40执行所述计算机程序42时实现上述各装置实施例中各模块/单元的功能,例如图3所示单元31至34的功能。
示例性的,所述计算机程序42可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器41中,并由所述处理器40执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序42在所述终端设备4中的执行过程。例如,所述计算机程序42可以被分割成:第一获取单元、调节信息确定单元、第二获取单元以及控制单元,各单元具体功能如下:
第一获取单元,用于获取预设范围内乐器发声时产生的发声信息,所述发声信息包括发声的音调或音阶或发声时长中的一项或多项;
调节信息确定单元,用于根据所述发声信息确定机器人中的自由度当前时刻的调节信息;
第二获取单元,用于获取上一时刻所述机器人的关节的位置信息;
控制单元,用于根据所述位置信息和所述调节信息控制所述机器人的运动。
优选地,所述第一获取单元,包括:
状态信息获取模块,用于实时获取所述预设范围内乐器所处的状态信息;
发声信息确定模块,用于根据是所述乐器所处的状态信息确定所述乐器发声时产生的发声信息。
所述调节信息确定单元,包括:
关节确定模块,用于根据所述发声信息确定所述机器人中需要改变状态的关节;
改变角度确定模块,用于根据对应关系确定当前时刻所述需要改变状态的关节中自由度的改变角度。
优选地,所述控制单元,包括:
统计模块,用于统计每个时刻所述需要改变状态的关节中自由度的改变角度,生成对应关节的自由度轨迹;
第一运动速度确定模块,用于根据所述自由度轨迹确定所述需要改变状态的关节的运动速度;
第一运动控制模块,用于根据所述运动速度控制所述机器人需要改变状态的关节的运动。
优选地,所述控制单元,还包括:
位置获取模块,用于获取上一时刻所述需要改变状态的关节所处的位置;
第二运动速度确定模块,用于根据上一时刻所述需要改变状态的关节所处的位置及所述改变角度确定所述需要改变状态的关节的运动速度;
第二运动控制模块,用于根据所述运动速度控制所述机器人需要改变状态的关节的运动。
所述终端设备4可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图4仅仅是终端设备4的示例,并不构成对终端设备4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器40可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器41可以是所述终端设备4的内部存储单元,例如终端设备4的硬盘或内存。所述存储器41也可以是所述终端设备4的外部存储设备,例如所述终端设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器41还可以既包括所述终端设备4的内部存储单元也包括外部存储设备。所述存储器41用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。