一种控制服务机器人跳舞的方法和装置与流程

文档序号:13750436阅读:174来源:国知局
一种控制服务机器人跳舞的方法和装置与流程

本发明涉及服务机器人技术领域,特别涉及一种控制服务机器人跳舞的方法和装置。



背景技术:

随着智能机器人技术的发展,家庭服务机器人也逐步起步,服务类型机器人,如陪伴机器人、娱乐机器人可提供如讲故事、唱歌、跳舞等服务。

目前,对音乐娱乐机器人的研究很少,市场上偶见一些能够随音乐做动作的音乐娱乐机器人,这类机器人提前为一个歌曲设置好机器人要执行的动作,机器人自身播放音乐,在播放音乐的同时执行预设的动作。

此类音乐娱乐机器人由于自身播放音乐,易于给使用者(如小孩)感受到其与自身的区别性,拟人效果较差,不能很好的融入家居环境,且由于机器人对每首歌曲执行的是同样的动作多次使用后用户会逐渐感觉枯燥,用户体验差。



技术实现要素:

有鉴于此,本发明提供了一种控制服务机器人跳舞的方法和装置,以解决现有音乐娱乐机器人受限预设动作导致的用户体验差的问题。

为达到上述目的,本发明的技术方案是这样实现的:

一方面,本发明实施例提供了一种控制服务机器人跳舞的方法,为服务机器人各部位的预定动作设置对应的部位控制命令,并设置指示部位控制命令的命令发送次数和命令发送间隔的跳舞控制策略;该方法还包括:

在接收到跳舞启动命令时,与位于所述服务机器人外部的音箱建立无线连接,从服务机器人的歌曲库中加载歌曲,确定服务机器人当前加载的歌曲与外部音箱所要播放的歌曲一致;

根据歌曲选择服务机器人使用的跳舞控制策略,并确定跳舞控制策略的部位控制命令的命令发送时机;

在外部音箱播放所述歌曲,且所述跳舞控制策略的命令发送时机到来时,向服务器机器人的相应部位发送随机选择的部位控制命令,直至达到跳舞控制策略的命令发送次数,控制服务机器人跟随所述歌曲跳舞。

另一方面,本发明实施例还提供了一种控制服务机器人跳舞的装置,该装置包括:

存储单元,用于存储为服务机器人各部位的预定动作设置对应的部位控制命令,以及存储设置指示部位控制命令的命令发送次数和命令发送间隔的跳舞控制策略;

连接单元,用于在接收到跳舞启动命令时,与位于服务机器人外部的音箱建立无线连接;

加载单元,用于在接收到跳舞启动命令时,从服务机器人的歌曲库中加载歌曲,确定服务机器人当前加载的歌曲与外部音箱所要播放的歌曲一致;

选择单元,用于根据歌曲从所述存储单元中选择服务机器人使用的跳舞控制策略,并确定跳舞控制策略的部位控制命令的命令发送时机;

控制单元,用于在外部音箱播放所述歌曲,且跳舞控制策略的命令发送时机到来时,向服务器机器人的相应部位发送随机选择的部位控制命令,直至达到跳舞控制策略的命令发送次数,控制服务机器人跟随所述歌曲跳舞。

本发明实施例的有益效果是:本发明在设置部位控制命令和跳舞控制策略的基础上,控制向服务器机器人的相应部位随机发送命令的时间点以及命令发送次数,使服务机器人跟随歌曲跳舞,从而实现了一套较完整的服务机器人跳舞控制方案。一方面由于本方案服务机器人能够与外部音箱配合,机器人随着音箱播放的音乐起舞,较好地模拟了人类舞蹈的场景,易于使用户产生共鸣,保证音乐效果,加强舞蹈气氛,适合家居等场景,另一方面,本方案还能够使服务机器人根据加载的歌曲实时跟随歌曲跳出不同的舞姿,并且同一首歌曲服务机器人的舞姿并不相同,极大的丰富了机器人的舞蹈动作,改善了用户体验。

附图说明

图1为本发明一个实施例提供的控制服务机器人跳舞的方法流程图;

图2为本发明另一个实施例提供的对服务机器人进行跳舞控制的方法流程图;

图3为本发明另一个实施例提供的固定跳舞模式下控制服务机器人跟随歌曲节拍跳舞的方法流程图;

图4为本发明另一个实施例提供的规律跳舞模式下控制服务机器人跟随歌曲节拍跳舞的方法流程图;

图5为本发明又一个实施例提供的控制服务机器人跳舞的装置结构框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

图1为本实施例提供的控制服务机器人跳舞的方法流程图,如图1所示,该方法包括如下步骤:

S100,为服务机器人各部位的预定动作设置对应的部位控制命令,并设置指示部位控制命令的命令发送次数和命令发送间隔的跳舞控制策略。

为了提供丰富的舞姿,本实施例在控制服务机器人跳舞前,预先为服务机器人的头部、身躯、胳膊、腿部等各个可活动的部位的预定动作设置对应的部位控制命令;以服务机器人头部转动动作为例,可以为服务机器人头部的水平转动动作和垂直转动动作分别设置对应的头部控制命令,每种头部控制命令指示头部转动的范围,如可以转动固定角度,也可以转动随机角度。

其中,任意两种跳舞控制策略之间或命令发送间隔不同、或命令发送次数不同、或命令发送间隔和命令发送次数均不同。优选地,步骤S100中设置跳舞控制策略具体为:设置跳舞控制策略的命令发送次数为固定数值,或设置跳舞控制策略的命令发送次数为随机数值。

对于一个节拍占用的时长,应理解为歌曲的每个节拍占用的平均播放时长。假如某歌曲共有120拍,播放时长为1分钟,则歌曲的拍速为60/120=0.5秒/拍,一个节拍占用的时长为0.5秒,两个节拍占用的时长为1秒,依此得到跳舞控制策略的命令发送间隔。

S110,在接收到跳舞启动命令时,与位于服务机器人外部的音箱建立无线连接,从服务机器人的歌曲库中加载歌曲,确定服务机器人当前加载的歌曲与外部音箱所要播放的歌曲一致。本实施例可以从服务机器人的歌曲库中加载各种类型的歌舞,不限制加载歌曲的文件格式。

当然,在实际应用中,在接收到跳舞启动命令时,还可以直接利用服务机器人本身的扬声器播放当前加载的歌曲。

本发明考虑服务机器人本身扬声器的性能限制,其播放效果差于外界音箱,因此本实施例优选地选用外界音箱播放加载的歌曲。其中,满足相关通信协议的外界音箱均可以与服务机器人建立连接,播放服务机器人记载的歌曲。

S120,根据加载的歌曲选择服务机器人使用的跳舞控制策略,并确定所选择跳舞控制策略的部位控制命令的命令发送时机。

在具体实现时,可以获得所加载歌曲的拍速,根据歌曲的拍速选择服务机器人使用的跳舞控制策略;也可以存储歌曲与跳舞控制策略的对应关系,根据对应关系选择服务机器人使用的跳舞控制策略。

S130,在外部音箱播放歌曲,且跳舞控制策略的命令发送时机到来时,向服务器机器人的相应部位发送随机选择的部位控制命令,直至达到跳舞控制策略的命令发送次数,控制服务机器人跟随所述歌曲跳舞。

在实际控制过程中,可根据跳舞控制策略的每个命令发送时机对应的部位控制命令,控制服务机器人相应部位的电机完成一个完整的转动序列,以达到期望的控制效果。

本实施例一方面由于本方案服务机器人能够与外部音箱配合,机器人随着音箱播放的音乐起舞,较好地模拟了人类舞蹈的场景,易于使用户产生共鸣,保证音乐效果,加强舞蹈气氛,适合家居等场景,另一方面,本方案还能够使服务机器人根据加载的歌曲实时跟随歌曲跳出不同的舞姿,并且同一首歌曲服务机器人的舞姿并不相同,极大的丰富了机器人的舞蹈动作,改善了用户体验。

为了使服务机器人的舞姿合拍,本实施例的一个优选方案根据歌曲的拍速选择服务机器人使用的跳舞控制策略,从而在播放歌曲的过程中,控制服务机器人跟随歌曲的节拍跳舞。

为使服务机器人的舞姿跟随歌曲的节拍,给用户以机器人根据歌曲的节奏跳舞的效果,在设置跳舞控制策略的命令发送间隔时,优选地以歌曲节拍为单位设置命令发送间隔,如可以设置命令发送间隔为半个节拍占用的时长、一个节拍占用的时长、两个节拍占用的时长或三个节拍占用的时长。需要说明的是,跳舞控制策略的命令发送间隔不宜过长,过长的命令发送间隔容易影响服务机器人的舞姿效果,弱化舞蹈节奏。命令发送间隔也不宜过短,需要考虑机器人对快速运动的承受度。

在本优选方案中,首先,根据歌曲的拍速和服务机器人各部位的电机速度间的关系,确定相邻两次部位控制命令的命令发送间隔,保证服务机器人的各部位电机能够完整地执行部位控制命令:

当歌曲的拍速大于或等于服务机器人的电机速度时,确定相邻两次部位控制命令的命令发送间隔大于或等于一个节拍;当歌曲的拍速小于服务机器人的电机速度时,确定相邻两次部位控制命令的命令发送间隔小于一个节拍或者,确定相邻两次部位控制命令的命令发送间隔大于或等于一个节拍。

示例性的,在歌曲的拍速小于第一倍数电机速度(如一倍电机速度),且大于第二倍数电机速度(如0.5倍电机速度)时,确定相邻两次部位控制命令的命令发送间隔满足最小时间间隔为一个节拍;在歌曲的拍速大于第一倍数电机速度时,确定相邻两次部位控制命令的命令发送间隔满足最小时间间隔为两个节拍;在歌曲的拍速小于第二倍数电机速度时,确定相邻两次部位控制命令的命令发送间隔满足最小时间间隔为半个节拍;其中第一倍数电机速度大于第二倍数电机速度。

其次,选择满足相邻两次部位控制命令的命令发送间隔的跳舞控制策略,并确定跳舞控制策略中第一次发送部位控制命令的命令发送时机。

假如所加载的歌曲的拍速小于第一倍数电机速度,且大于第二倍数电机速度,那么可以随机选择命令发送间隔为一个节拍或大于一个节拍的一种跳舞控制策略作为服务机器人使用的跳舞控制策略。

在选择好服务机器人使用的跳舞控制策略后,通过下述方法确定所选择跳舞控制策略的部位控制命令的命令发送时机:

确定跳舞控制策略中第一次发送部位控制命令的命令发送时机,以第一次发送部位控制命令的命令发送时机为起点,根据所选择跳舞控制策略的命令发送间隔,确定下一次发送部位控制命令的命令发送时机,直至达到所选择跳舞控制策略的命令发送次数。

其中,在所选择跳舞控制策略为所加载歌曲的第一种跳舞控制策略时,可以将歌曲的第一个有效的节拍作为所选择跳舞控制策略中第一次发送部位控制命令的命令发送时机;在所选择跳舞控制策略不是所加载歌曲的第一种跳舞控制策略时,将上一种跳舞控制策略的最后发送的部位控制命令的命令发送时机对应歌曲节拍的下一拍作为当前跳舞控制策略中第一次发送部位控制命令的命令发送时机。

由于一首歌曲可以对应一种跳舞控制策略,也可以对应两种以上的跳舞控制策略。当一首歌曲对应两种以上的跳舞控制策略时,在播放歌曲的过程中,依次按照每种跳舞控制策略控制服务机器人跟随歌曲跳舞。因此,在达到所选择跳舞控制策略的命令发送次数后,本优选方案还需判断当前跳舞控制策略的最终发送的部位控制命令的命令发送时机是否为歌曲的播放终点,若不为歌曲的播放终点,切换歌曲的跳舞控制策略,并按照上述方法重新确定切换后的跳舞控制策略的命令发送时机,其中切换后的跳舞控制策略的命令发送间隔与切换前不同;若为歌曲的播放终点,切换到歌曲的复位控制策略,确定复位控制策略指示的部位控制命令,复位控制策略指示的部位控制命令将服务机器人各部位恢复至跳舞前的姿态或者恢复至指定的姿态。

为了丰富服务机器人的舞姿,在本实施例的另一优选方案中,可采用下述两种方式中的至少一种:

方式一:在跳舞控制策略的命令发送时机到来时,随机地选择一部位控制命令,或随机地选择两个以上的不同部位的部位控制命令;

方式二:在跳舞控制策略的命令发送时机到来时,根据到来的命令发送时机对应的部位控制命令的发送次序数,选择一部位控制命令,或者选择两个以上的不同部位的部位控制命令。

在方式二中,还可以将跳舞控制策略分为多个子控制策略,每个子控制策略均包括命令发送次数相同的前控制策略和后控制策略;根据到来的命令发送时机对应的部位控制命令的发送次序数,判断到来的命令发送时机所属的子控制策略:当到来的命令发送时机属于当前子控制策略的前控制策略时,随机地选择一部位控制命令,或选择两个以上的不同部位的部位控制命令;当到来的发送时机属于当前子控制策略的后控制策略时,选择与前控制策略对应的部位控制命令的动作效果相对应的部位控制命令。其中,在到来的发送时机属于当前子控制策略的后控制策略时,可以选择与前控制策略对应的部位控制命令的动作效果相反的部位控制命令。

在本优选方案中,在为服务机器人各部位的预定动作设置对应的部位控制命令时,设置指示服务机器人某一身体部位转动的角度固定的固定部位控制命令,以及设置指示服务机器人某一身体部位转动的角度随机的随机部位控制命令。在设置指示部位控制命令的命令发送次数和命令发送间隔的跳舞控制策略时:设置跳舞控制策略的命令发送次数为固定数值或为随机数值。此外,还设置歌曲对应的跳舞模式,跳舞模式指示部位控制命令的选择方式。

那么,在根据加载的歌曲选择服务机器人使用的跳舞控制策略时,还解析歌曲对应的跳舞模式,若歌曲对应固定跳舞模式,选择命令发送次数为固定数值的跳舞控制策略;若歌曲对应随机跳舞模式,选择命令发送次数为随机数值的跳舞控制策略;若歌曲对应规律跳舞模式,选择命令发送次数为随机数值的跳舞控制策略;若歌曲对应混合跳舞模式,根据固定跳舞模式、随机跳舞模式和规律跳舞模式中的一种跳舞模式选择跳舞控制命令。

在跳舞控制策略的命令发送时机到来时,可以通过下述方式选择部位控制命令:

解析歌曲对应的跳舞模式,若歌曲对应固定跳舞模式,在跳舞控制策略的命令发送时机到来时,随机地选择一固定部位控制命令,或随机地选择两个以上的不同部位的固定部位控制命令。

若歌曲对应随机跳舞模式,在跳舞控制策略的命令发送时机到来时,随机地选择一随机部位控制命令,或随机地选择两个以上的不同部位的随机部位控制命令。

若歌曲对应规律跳舞模式,在跳舞控制策略的命令发送时机到来时,根据到来的命令发送时机对应的发送次次序数,选择一固定部位控制命令或随机部位控制命令,或者选择两个以上的不同部位的部位控制命令或随机部位控制命令;即根据到来的命令发送时机对应的部位控制命令的发送次序数,判断到来的命令发送时机所属的子控制策略:当到来的命令发送时机属于当前子控制策略的前控制策略时,随机地选择一固定部位控制命令或随机部位控制命令,或选择两个以上的不同部位的固定部位控制命令或随机部位控制命令;当到来的发送时机属于当前子控制策略的后控制策略时,选择与前控制策略对应的部位控制命令的动作效果相对应的部位控制命令。

若歌曲对应混合跳舞模式,控制当前跳舞控制策略依据固定跳舞模式、随机跳舞模式和规律跳舞模式中的一种跳舞模式选择部位控制命令。

为了更加详细说明控制服务机器人跳舞的方法,本实施例通过下述实现方案进行具体说明。

本实施例预先为服务机器人各部位的预定动作设置对应的部位控制命令,预先设置指示部位控制命令的命令发送次数和命令发送间隔的跳舞控制策略,以及设置歌曲对应的跳舞模式,跳舞模式指示部位控制命令和/或跳舞控制策略的选择方式。

为便于描述,假设服务机器人的头部、身躯和胳膊可以在电机的控制转动。基于该假设,本实施例预先设置的部位控制命令包括:头部控制命令、身躯控制命令、左胳膊控制命令和右胳膊控制命令。其中,每种部位控制命令均包括固定部位控制命令和随机部位控制命令,固定部位控制命令指示服务机器人某一身体部位转动的角度固定,随机部位控制命令指示服务机器人某一身体部位转动的角度随机。

示例性地,假设在电机的控制下,服务机器人的头部可以进行水平方向上的左右转动,垂直方向上的上下转动;服务机器人的身躯可以进行水平方向上的左右转动;服务机器人的胳膊可以进行垂直方向上的上下转动。

其中,服务机器人的头部水平方向上左右转动的范围均为15°,垂直方向上上下转动的范围均为10°,对于服务机器人的头部,包括4个固定部位控制命令和4个随机部位控制命令,4个固定部位控制命令分别为向左转动5°的固定部位控制命令、向右转动5°的固定部位控制命令、向上转动5°的固定部位控制命令和向下转动5°的固定部位控制命令,4个随机部位控制命令分别为随机向左转动5°~15°的随机部位控制命令、随机向右转动5°~15°的随机部位控制命令、随机向上转动5°~10°的随机部位控制命令和向下转动5°~10°的随机部位控制命令。

服务机器人的身躯水平方向上左右转动的范围均为15°,对于服务机器人的身躯,包括2个固定部位控制命令和2个随机部位控制命令,2个固定部位控制命令分别为向左转动3°的固定部位控制命令和向右转动3°的固定部位控制命令,2个随机部位控制命令分别为随机向左转动3°~15°的随机部位控制命令和随机向右转动3°~15°的随机部位控制命令。

服务机器人的左胳膊(或右胳膊)垂直方向上上下转动的范围均为30°,对于服务机器人的左胳膊(或右胳膊),包括2个固定部位控制命令和2个随机部位控制命令,2个固定部位控制命令分别为向上转动5°的固定部位控制命令和向下转动5°的固定部位控制命令,2个随机部位控制命令分别为随机向上转动5°~15°的随机部位控制命令和随机向下转动5°~15°的随机部位控制命令。

由于大部分歌曲的1个小节包括4个节拍,因此本实施例优选地设置命令发送间隔的最大时间间隔为三个节拍,命令发送间隔的最小时间间隔为半个节拍,即本实施例设置的跳舞控制策略包括命令发送间隔为半个节拍的跳舞控制策略、命令发送间隔为一个节拍的跳舞控制策略、命令发送间隔为两个节拍的跳舞控制策略和命令发送间隔为三个节拍的跳舞控制策略,共设置4种类型的跳舞控制策略。

每种跳舞控制策略的命令发送次数可以为固定数值,也可以为随机数值。示例性地,对于命令发送间隔为半个节拍的跳舞控制策略,若其命令发送次数为固定数值,该固定数值为4;若其命令发送次数为随机数值,该随机数值为R,R=N*2,N为大于等于1,且小于等于4的正整数。对于命令发送间隔为一个节拍的跳舞控制策略,若其命令发送次数为固定数值,该固定数值可以为4、8或12;若其命令发送次数为随机数值,该随机数值为R,R=N*4,N为大于等于1,且小于等于4的正整数。对于命令发送间隔为两个节拍的跳舞控制策略,若其命令发送次数为固定数值,该固定数值可以为2、4、6或8;若其命令发送次数为随机数值,该随机数值为R,R=N*2,N为大于等于1,且小于等于8的正整数。对于命令发送间隔为三个节拍的跳舞控制策略,若其命令发送次数为固定数值,该固定数值可以为1或2;若其命令发送次数为随机数值,该随机数值为R,R=N,N为大于等于1,且小于等于8的正整数;其中,N为随机因子,每种跳舞控制策略的随机因子取值范围相同或不同。

对于命令发送次数为随机数值的每种跳舞控制策略,可以将该种跳舞控制策略分为多个子控制策略,每个子控制策略均包括命令发送次数相同的前控制策略和后控制策略。

在设置好本实施例的部位控制命令、跳舞控制策略和跳摸模式后,按照图2所示的控制方法对服务机器人进行跳舞控制。

图2为本实施例提供的对服务机器人进行跳舞控制的方法流程图,该方法包括:

S200,接收跳舞启动命令。

在具体实现时,可以服务机器人可以通过语音交互的方式接收用户发送的语音跳舞启动命令。在语音跳舞启动命令格式或权限不正确时,控制服务机器人向用户发送启动失败提示音,并等待接收下一次跳舞启动命令;在在语音跳舞启动命令格式或权限正确时,执行步骤S201。

S201,控制服务机器人与外部音箱建立无线连接,服务机器人可通过蓝牙连接协议、Wifi连接协议或ZigBee连接协议与外部音箱建立连接。

S202,加载歌曲,并确定歌曲的拍速。

在具体实现时,可以控制服务机器人从其歌曲库中加载歌曲,也可控制服务机器人从外界音频源加载歌曲。

本实施例中的拍速需要通过第三方提供的节拍器软件确定所加载歌曲的拍速。

对于步骤S201和步骤S202的执行顺序,本实施例不做具体限定。在实际应用中,可以先执行步骤S201、后执行步骤S202,或者,先执行步骤S202、后执行步骤S201,或者,同时执行步骤S201和步骤S202。

S203,比较歌曲的拍速与服务机器人各部位的电机转速,根据比较结果执行步骤S204。

步骤S204包括:若歌曲的拍速小于一倍电机速度,且大于0.5倍电机速度,执行步骤S2041;若歌曲的拍速大于一倍电机速度,执行步骤S2042,若歌曲的拍速小于0.5倍电机速度,执行步骤S2043。

S2041,从命令发送间隔为一个节拍、命令发送间隔为两个节拍和命令发送间隔为三个节拍的跳舞控制策略中随机选择一种跳舞控制策略。

S2042,从命令发送间隔为两个节拍和命令发送间隔为三个节拍的跳舞控制策略中随机选择一种跳舞控制策略。

S2043,从命令发送间隔为半个节拍、命令发送间隔为一个节拍、命令发送间隔为两个节拍和命令发送间隔为三个节拍的跳舞控制策略中随机选择一种跳舞控制策略。

S205,确定当前跳舞控制策略的部位控制命令的命令发送时机。

S206,判断是否达到当前跳舞控制策略的命令发送次数,若达到当前跳舞控制策略的命令发送次数执行步骤S207,否则执行步骤S208。

S207,切换跳舞控制策略,并返回步骤S205;其中,切换后的跳舞控制策略的命令发送间隔不同于切换前的跳舞控制策略的命令发送间隔。

S208,在当前跳舞控制策略的命令发送时机到来时,向服务器机器人的相应部位发送随机选择的部位控制命令,控制服务机器人跟随歌曲跳舞。

图2中的方法包括:在到达歌曲的播放终点时,向服务器机器人的各部位发送复位控制策略指示的复位控制命令,将服务机器人各部位恢复至跳舞前的姿态或者恢复至指定的姿态。

在实际控制过程中,服务机器人加载歌曲后,还可以解析该歌曲对应的跳舞模式,根据该歌曲对应的跳舞模式控制服务机器人跟随歌曲的节拍跳舞。

为了详细说明在相应跳舞模式下控制服务机器人跟随歌曲节拍跳舞的方法,本实施例通过两个具体实现方案,分别说明固定跳舞模式下控制服务机器人跟随歌曲节拍跳舞的方法和规律跳舞模式下控制服务机器人跟随歌曲节拍跳舞的方法。

由于每种跳舞模式下,控制服务机器人跟随歌曲节拍跳舞的方法都需要在接收到跳舞启动命令时,与位于服务机器人外部的音箱建立无线连接,从服务机器人的歌曲库中加载歌曲,确定服务机器人当前加载的歌曲与外部音箱所要播放的歌曲一致。即本实施例的下述两个具体实现方案中,都执行图2中的步骤S200~步骤S202,因此,在本实施例的下述两个具体实现方案中,不在赘述此执行过程。

在本实施例的一个具体实现方案中,固定跳舞模式下控制服务机器人跟随歌曲节拍跳舞的方法参考图3所示,图3中的方法包括:

S303,解析歌曲对应的跳舞模式,确定该歌曲对应的跳舞模式为固定跳舞模式。

S304,比较歌曲的拍速与服务机器人各部位的电机转速,根据比较结果执行步骤S305。

步骤S305包括:若歌曲的拍速小于1倍电机速度,且大于0.5倍电机速度,执行步骤S3051;若歌曲的拍速大于1倍电机速度,执行步骤S3052;若歌曲的拍速小于0.5倍电机速度,执行步骤S3053。

S3051,从命令发送间隔为一个节拍、命令发送间隔为两个节拍和命令发送间隔为三个节拍,且命令发送次数为固定数值的跳舞控制策略中随机选择一种跳舞控制策略。

S3052,从命令发送间隔为两个节拍和命令发送间隔为三个节拍,且命令发送次数为固定数值的跳舞控制策略中随机选择一种跳舞控制策略。

S3053,从命令发送间隔为半个节拍、命令发送间隔为一个节拍、命令发送间隔为两个节拍和命令发送间隔为三个节拍,且命令发送次数为固定数值的跳舞控制策略中随机选择一种跳舞控制策略。

以所加载歌曲的拍速小于1倍电机速度,且大于0.5倍电机速度为例,可以选择命令发送间隔为1个节拍、命令发送次数为4(或命令发送次数为8、或命令发送次数为12)的跳舞控制策略;也可以选择命令发送间隔为2个节拍、命令发送次数为2(或命令发送次数为4、或命令发送次数为6、或命令发送次数为8)的跳舞控制策略;还可以选择命令发送间隔为3个节拍、命令发送次数为1(或命令发送次数为2)的跳舞控制策略。

S306,确定当前跳舞控制策略的部位控制命令的命令发送时机。

S307,判断是否达到当前跳舞控制策略的命令发送次数,若达到当前跳舞控制策略的命令发送次数执行步骤S308,否则执行步骤S309。

S308,切换跳舞控制策略,并返回步骤S306;其中切换后的跳舞控制策略的命令发送间隔不同于切换前的跳舞控制策略的命令发送间隔。

假设当前跳舞控制策略的命令发送间隔为1个节拍、命令发送次数为4,在达到当前跳舞控制策略的命令发送次数时,切换跳舞控制策略,切换后的跳舞控制策略的命令发送间隔为2个节拍、命令发送次数为2(或命令发送次数为4、或命令发送次数为6、或命令发送次数为8);或者,切换后的跳舞控制策略的命令发送间隔为3个节拍、命令发送次数为1(或命令发送次数为2)。

S309,在当前跳舞控制策略的命令发送时机到来时,随机地选择一种固定部位控制命令,或随机地选择两个以上的不同部位的固定部位控制命令,将选择的固定部位控制命令发送给服务器机器人相应部位的电机,控制服务机器人跟随歌曲跳舞。

由上,通过步骤S303~步骤S309完成了固定跳舞模式下,对服务机器人的跳舞控制。

本实施例中随机跳舞模式下对服务机器人的跳舞控制方法与固定跳舞模式下的控制方法基本相同,只是随机跳舞模式下,在根据歌曲的拍速和服务机器人各部位的电机速度的比较结果选择跳舞控制策略时,所选择的跳舞控制策略的命令发送次数为随机数值;以及在当前跳舞控制策略的命令发送时机到来时,随机地选择一种随机部位控制命令,或随机地选择两个以上的不同部位的随机部位控制命令。

在本实施例的另一个具体实现方案中,规律跳舞模式下控制服务机器人跟随歌曲节拍跳舞的方法参考图4所示,图4中的方法包括:

S403,解析歌曲对应的跳舞模式,确定该歌曲对应的跳舞模式为规律跳舞模式。

S404,比较歌曲的拍速与服务机器人各部位的电机转速,根据比较结果执行步骤S405。

步骤S405包括:若歌曲的拍速小于1倍电机速度,且大于0.5倍电机速度,执行步骤S4051;若歌曲的拍速大于1倍电机速度,执行步骤S4052;若歌曲的拍速小于0.5倍电机速度,执行步骤S4053。

S4051,从命令发送间隔为一个节拍、命令发送间隔为两个节拍和命令发送间隔为三个节拍,且命令发送次数为随机数值的跳舞控制策略中随机选择一种跳舞控制策略。

S4052,从命令发送间隔为两个节拍和命令发送间隔为三个节拍,且命令发送次数为随机数值的跳舞控制策略中随机选择一种跳舞控制策略。

S4053,从命令发送间隔为半个节拍、命令发送间隔为一个节拍、命令发送间隔为两个节拍和命令发送间隔为三个节拍,且命令发送次数为随机数值的跳舞控制策略中随机选择一种跳舞控制策略。

以所加载歌曲的拍速小于1倍电机速度,且大于0.5倍电机速度为例,可以选择命令发送间隔为1个节拍、命令发送次数为R=N*4(N为大于等于1,且小于等于4的正整数)的跳舞控制策略;也可以选择命令发送间隔为2个节拍、命令发送次数为R=N*2(N为大于等于1,且小于等于8的正整数)的跳舞控制策略;还可以选择命令发送间隔为3个节拍、命令发送次数为R=N(N为大于等于1,且小于等于8的正整数)的跳舞控制策略。

S406,确定当前跳舞控制策略的命令发送次数,以及部位控制命令的命令发送时机。

根据当前跳舞控制策略的随机因子N的取值范围,生成随机因子数值n,并根据生成的随机因子数值n确定该跳舞控制策略的命令发送次数R。假设当前跳舞控制策略的命令发送间隔为1个节拍、命令发送次数为R=N*4(N为大于等于1,且小于等于4的正整数)。若随机取得的随机因子数值n=3,则该跳舞控制策略的命令发送次数R=6。

S407,判断当前跳舞控制策略剩余的命令发送次数R’,若当前跳舞控制策略剩余的命令发送次数R’≤1,执行步骤S408,否则执行步骤S409。

S408,切换跳舞控制策略,并返回步骤S406;其中,切换后的跳舞控制策略的命令发送间隔不同于切换前的跳舞控制策略的命令发送间隔。

假设当前跳舞控制策略的命令发送间隔为1个节拍、命令发送次数为R=N*4(N为大于等于1,且小于等于4的正整数),在当前跳舞控制策略剩余的命令发送次数R’≤1,即当前跳舞控制策略剩余的命令发送次数R’=1或R’=0时,切换跳舞控制策略,切换后的跳舞控制策略的命令发送间隔为2个节拍、命令发送次数为R=N*2(N为大于等于1,且小于等于8的正整数);或者,切换后的跳舞控制策略的命令发送间隔为3个节拍、命令发送次数为R=N(N为大于等于1,且小于等于8的正整数)。

S409,随机生成抽取因子M,并根据抽取因子M生成子控制策略的前控制策略,生成的前控制策略包括M次命令发送次数;其中M为大于等于1,且小于等于R’/2的正整数。

需要说明的是,每次生成的抽取因子M的数值不一定相同,只要满足1≤M≤R’/2即可。

S410,在前控制策略的命令发送时机到来时,随机地选择一种固定或随机部位控制命令,或随机地选择两个以上的不同部位的固定或随机部位控制命令,发送给服务器机器人相应部位的电机,直至前控制策略的第M次命令发送时机到来;并在将第M次命令发送时机选择的部位控制命令发送给服务器机器人相应部位的电机后,执行步骤S411。

S411,获取该子控制策略的前控制策略对应的抽取因子M,生成当前子控制策略的后控制策略,生成的后控制策略也包括M次命令发送次数。即子控制策略的前控制策略和后控制策略包括相同的命令发送次数。

S412,在后控制策略的命令发送时机到来时,选择与前控制策略对应的部位控制命令的动作效果相对应的部位控制命令,直至后控制策略的第M次命令发送时机到来;并在将后控制策略的第M次命令发送时机选择的部位控制命令发送给服务器机器人相应部位的电机后,执行步骤S413。

在到来的发送时机属于当前子控制策略的后控制策略时,可以选择与前控制策略对应的部位控制命令的动作效果相反的部位控制命令。

基于上述假设情况,当前控制策略的命令发送次数R=6,若步骤S409中随机生成的抽取因子M=2,步骤S410中,若前控制策略的第一次命令发送时机到来时,选择了动作效果为头部右转8°的部位控制命令,第二次命令发送时机到来时,选择了动作效果为身躯左转3°的部位控制命令和右胳膊上转5°的部位控制命令;则在步骤S412中,在后控制策略的第一次命令发送时机到来时,可以选择动作效果为头部左转8°的部位控制命令,第二次命令发送时机到来时,可以选择动作效果为身躯右转3°的部位控制命令和右胳膊下转5°的部位控制命令。

S413,根据R’-2M更新当前跳舞控制策略剩余的命令发送次数R’,并返回步骤S407。

当执行当前跳舞控制策略的第一个子控制策略前,剩余的命令发送次数R’=R。

由上,通过步骤S403~步骤S413完成了规律跳舞模式下,对服务机器人的跳舞控制,规律跳舞模式下能够控制服务机器人的舞姿更为规律、协调。

基于与控制服务机器人跳舞的方法相同的设计构思,本实施例提供了一种控制服务机器人跳舞的装置。

图5为本实施例提供的控制服务机器人跳舞的装置结构框图,该装置包括:

存储单元51,用于存储为服务机器人各部位的预定动作设置对应的部位控制命令,以及存储设置指示部位控制命令的命令发送次数和命令发送间隔的跳舞控制策略。

连接单元52,用于在接收到跳舞启动命令时,与位于服务机器人外部的音箱建立无线连接。

加载单元53,用于在接收到跳舞启动命令时,从服务机器人的歌曲库中加载歌曲,确定服务机器人当前加载的歌曲与外部音箱所要播放的歌曲一致。

选择单元54,用于根据歌曲从存储单元51中选择服务机器人使用的跳舞控制策略,并确定跳舞控制策略的部位控制命令的命令发送时机。

在本实施例的一个优选方案中,选择单元54,用于获得歌曲的拍速,根据歌曲的拍速选择服务机器人使用的跳舞控制策略;或者,存储歌曲与跳舞控制策略的对应关系,根据对应关系选择服务机器人使用的跳舞控制策略。

具体的,选择单元54包括:拍速与电机速度比较模块、命令发送时机确定模块和跳舞控制策略切换模块;

拍速与电机速度比较模块,用于根据歌曲的拍速和服务机器人各部位的电机速度间的关系,确定相邻两次部位控制命令的命令发送间隔;其中,当歌曲的拍速大于或等于服务机器人的电机速度时,确定相邻两次部位控制命令的命令发送间隔大于或等于一个节拍;当歌曲的拍速小于服务机器人的电机速度时,确定相邻两次部位控制命令的命令发送间隔小于一个节拍,或者确定相邻两次部位控制命令的命令发送间隔大于或等于一个节拍。

示例性地,拍速与电机速度比较模块在歌曲的拍速小于第一倍数电机速度,且大于第二倍数电机速度时,确定相邻两次部位控制命令的命令发送间隔满足最小时间间隔为一个节拍;在歌曲的拍速大于第一倍数电机速度时,确定相邻两次部位控制命令的命令发送间隔满足最小时间间隔为两个节拍;在歌曲的拍速小于第二倍数电机速度时,确定相邻两次部位控制命令的命令发送间隔满足最小时间间隔为半个节拍;其中第一倍数电机速度大于第二倍数电机速度。

命令发送时机确定模块,用于选择满足相邻两次部位控制命令的命令发送间隔的跳舞控制策略,并确定跳舞控制策略中第一次发送部位控制命令的命令发送时机;具体用于以第一次发送部位控制命令的命令发送时机为起点,根据跳舞控制策略的命令发送间隔,确定下一次发送部位控制命令的命令发送时机,直至达到跳舞控制策略的命令发送次数。

跳舞控制策略切换模块,用于判断当前跳舞控制策略的最后发送的部位控制命令的命令发送时机是否为歌曲的播放终点,若不为歌曲的播放终点,切换歌曲的跳舞控制策略,并重新确定切换后的跳舞控制策略的命令发送次数、命令发送间隔和命令发送时机,其中切换后的跳舞控制策略的命令发送间隔与切换前不同;若为歌曲的播放终点,切换到歌曲的复位控制策略,确定复位控制策略指示的复位控制命令,复位控制命令将服务机器人各部位恢复至跳舞前的姿态或者恢复至指定的姿态。

控制单元55,用于在外部音箱播放歌曲,且跳舞控制策略的命令发送时机到来时,向服务器机器人的相应部位发送随机选择的部位控制命令,直至达到跳舞控制策略的命令发送次数,控制服务机器人跟随歌曲跳舞。

在本实施例的另一优选方案中,控制单元55包括部位控制命令选择模块;

部位控制命令选择模块,用于在跳舞控制策略的命令发送时机到来时,随机地从存储单元51中选择一部位控制命令,或随机地从存储单元51中选择两个以上的不同部位的部位控制命令;或者,

部位控制命令选择模块,用于根据到来的命令发送时机对应的部位控制命令的发送次序数,从存储单元51中选择一部位控制命令,或者从存储单元51中选择两个以上的不同部位的部位控制命令。

具体地,部位控制命令选择模块,用于将跳舞控制策略分为多个子控制策略,每个子控制策略均包括命令发送次数相同的前控制策略和后控制策略;根据到来的命令发送时机对应的部位控制命令的发送次序数,判断到来的命令发送时机所属的子控制策略,当到来的命令发送时机属于当前子控制策略的前控制策略时,从存储单元51中随机地选择一部位控制命令,或从存储单元51中选择两个以上的不同部位的部位控制命令;当到来的发送时机属于当前子控制策略的后控制策略时,从存储单元51中选择与前控制策略对应的部位控制命令的动作效果相对应的部位控制命令。

在本实施例的一个具体实现方案中,存储单元51中还存储有指示部位控制命令和/或跳舞控制策略的选择方式的跳摸模式。

控制单元55还包括跳摸模式解析模块,用于解析歌曲对应的跳舞模式;

部位控制命令选择模块,具体用于在跳摸模式解析模块解析歌曲的跳舞模式为固定跳舞模式时,在跳舞控制策略的命令发送时机到来时,从存储单元51中随机地选择一固定部位控制命令,或随机地选择两个以上的不同部位的固定部位控制命令;在跳摸模式解析模块解析歌曲的跳舞模式为随机跳舞模式时,在跳舞控制策略的命令发送时机到来时,从存储单元51中随机地选择一随机部位控制命令,或随机地选择两个以上的不同部位的随机部位控制命令;在跳摸模式解析模块解析歌曲的跳舞模式为规律跳舞模式时,在跳舞控制策略的命令发送时机到来时,根据到来的命令发送时机对应的发送次次序数,从存储单元51中选择一固定部位控制命令或随机部位控制命令,或者选择两个以上的不同部位的部位控制命令或随机部位控制命令;在跳摸模式解析模块解析歌曲的跳舞模式为混合跳舞模式时,控制当前跳舞控制策略依据固定跳舞模式、随机跳舞模式和规律跳舞模式中的一种跳舞模式选择部位控制命令。

本实施例的各单元模块的具体工作方式可以参见本发明的方法实施例,在此不再赘述。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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