CN112975963B - 机器人动作生成方法和装置以及机器人 - Google Patents
机器人动作生成方法和装置以及机器人 Download PDFInfo
- Publication number
- CN112975963B CN112975963B CN202110202724.4A CN202110202724A CN112975963B CN 112975963 B CN112975963 B CN 112975963B CN 202110202724 A CN202110202724 A CN 202110202724A CN 112975963 B CN112975963 B CN 112975963B
- Authority
- CN
- China
- Prior art keywords
- speed
- steering engine
- data
- points
- robot
- 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
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
-
- 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/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Manipulator (AREA)
Abstract
本申请提供一种机器人动作生成方法和装置以及机器人,该动作生成方法可以通过获取若干个动作数据,进而可以根据该若干个动作数据确定对应的第一数据,具体可以包括机器人每个舵机在执行上述多个动作时的活动范围、速度范围以及活动频率。进而可以在所述活动范围中随机获取多个位置点,根据多个位置点确定舵机的活动轨迹,在所述速度范围中获取与多个位置点一一对应的速度点,并根据多个速度点以及上述活动频率确定舵机在每个位置点的活动速度。进一步地,可以根据每个舵机的活动轨迹和活动速度生成待执行动作。能够提高机器人交互动作的多样性,提高用户体验感。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种机器人动作生成方法和装置以及机器人。
背景技术
现有的机器人执行动作基本是机器人根据动作库中保存的固有动作与用户进行交互,并且器保存的固有动作比较简单,并且频繁通过固定的动作与用户进行交互,会使用的体验感降低。
发明内容
本申请提供一种机器人动作生成方法和装置以及机器人,该动作生成方法可以通过获取与交互类型之间具有映射关系的若干个动作数据,进而可以根据该若干个动作数据确定对应的第一数据,具体可以包括机器人每个舵机在执行上述多个预设动作时的活动范围、速度范围以及活动频率。进而可以在所述活动范围中随机获取多个位置点,根据多个位置点确定舵机的活动轨迹,在所述速度范围中获取与多个位置点一一对应的速度点,并根据多个速度点以及上述活动频率确定舵机在每个位置点的活动速度。进一步地,可以根据每个舵机的活动轨迹和活动速度生成待执行动作。通过上述技术方案,可以在若干个动作数据的基础上,在相应范围内随机生成新动作,可以将随机生成的新动作发送给机器人的相应舵机运行,从而实现机器人通过上述新动作与用户进行交互,能够提高机器人交互动作的多样性,提高用户体验感。
第一方面,本申请一个实施例提供一种机器人动作生成方法,包括:
获取若干个动作数据,所述若干个动作数据的类型与交互类型之间具有映射关系;
根据所述若干个动作数据确定对应的第一数据,其中,所述第一数据中包括与机器人每个舵机对应的子数据,每个所述子数据包括舵机的活动范围、速度范围和活动频率;
基于每个所述子数据,在所述舵机的活动范围内随机获取对应的多个位置点,并根据所述多个位置点确定舵机的活动轨迹;
基于每个所述子数据,在所述舵机的速度范围内随机获取对应的多个速度点,并根据所述多个速度点和所述活动频率确定舵机在每个所述位置点的活动速度,所述多个速度点与所述多个位置点一一对应;
根据每个舵机的所述活动轨迹和所述活动速度生成待执行动作。
进一步地,所述交互类型包含用户情绪类型,所述获取若干个动作数据之前,还包括:
获取用户情绪标识,并根据所述用户情绪标识确定交互情绪标识,所述用户情绪标识用于表征用户情绪类型;
所述获取若干个动作数据包括:
获取与所述交互情绪标识对应的若干个动作数据。
进一步地,每个所述动作数据包括机器人每个舵机对应的在每个检测周期内的起始位置信息、结束位置信息以及速度信息。
进一步地,所述根据所述若干个动作数据确定对应的第一数据包括:
对每个舵机对应的位置数组按照预设逻辑进行排序,得到排序后的位置数组,每个检测周期内的起始位置信息、结束位置信息组成一个所述位置数组;
并基于所述排序后的位置数组中的中间位置,将所述排序后的位置数组划分为第一部分和第二部分,获取所述第一部分中出现次数最多的位置作为所述相应舵机的第一限制位置,获取所述第二部分中出现次数最多的位置作为所述相应舵机的第二限制位置,并根据所述第一限制位置和所述第二限制位置确定所述相应舵机的活动范围。
进一步地,所述根据所述若干个动作数据确定对应的第一数据包括:
获取所述若干个动作数据中每个舵机在每个检测周期内的所述速度信息中出现次数最多的速度值作为所述相应舵机的第一限制速度,将所述速度信息中出现次数第二多的速度值作为所述相应舵机的第二限制速度,并根据所述第一限制速度和所述第二限制速度确定所述相应舵机的所述速度范围。
进一步地,所述根据所述若干个动作数据确定对应的第一数据包括:
根据所述若干个动作数据中每个舵机在每个检测周期内的起始位置信息、结束位置信息确定所述相应舵机的位置无变化次数、位置增大次数以及位置减小次数,根据所述若干个动作数据中总运行时长以及所述检测周期确定所述相应舵机的动作总点数,并根据所述位置无变化次数、位置增大次数、位置减小次数以及所述动作总点数确定所述相应舵机的所述活动频率。
进一步地,所述在所述舵机的活动范围内随机获取对应的多个位置点之前,还包括:
获取用于应答用户的交互语音的时长信息,并根据所述时长信息确定多个时间点,所述多个位置点与所述多个时间点一一对应;
所述在所述舵机的活动范围内随机获取对应的多个位置点包括:
分别执行多次位置提取操作以得到所述多个位置点;
其中,一次所述位置提取操作包括:
通过随机函数在所述活动范围内随机获取一个随机位置数据,计算所述随机位置数据的对数,所述随机位置数据的对数与设定值的比值为本次所述位置提取操作得到的一个所述位置点。
进一步地,所述通过随机函数在所述活动范围内随机获取一个随机位置数据,计算所述随机位置数据的对数,所述随机位置数据的对数与设定值的比值为本次位置提取操作得到的一个所述位置点包括:
根据以下公式确定所述位置点:
Ln=log(rand(ML1,ML2))/log2;
其中,Ln表示所述多个位置点中的第n个位置点,rand表示随机函数,ML1表示所述第一限制位置,ML2表示所述第二限制位置,所述设定值为log2。
进一步地,所述在所述舵机的速度范围内随机获取对应的多个速度点包括:
分别执行多次速度提取操作以得到所述多个速度点;
其中,一次所述速度提取操作包括:
通过随机函数在所述速度范围内随机获取一个随机速度数据,计算所述随机速度数据的对数,所述随机速度数据的对数与设定值的比值为本次速度提取操作得到的一个所述速度点。
进一步地,所述通过随机函数在所述速度范围内随机获取一个随机速度数据,计算所述随机速度数据的对数,所述随机速度数据的对数与设定值的比值为本次速度提取操作得到的一个所述速度点包括:
根据以下公式确定所述速度点:
Sn=log(rand(MS2,MS1))/log2;
其中,Sn所述多个速度点中第n个速度点,rand表示随机函数,MS1表示所述第一限制速度,所述MS2表示所述第二限制速度,所述设定值为log2。
进一步地,所述根据所述多个速度点确定舵机的活动速度包括:
根据以下公式确定所述活动速度:
ASn=Sn*f*Wn;
其中,ASn表示舵机在第n个所述位置点的所述活动速度,f表示所述活动频率,Wn表示用于所述修正的所述交互情绪标识对应的权重值。
第二方面,本申请的另一个实施例提供一种机器人动作生成装置,包括:
处理器和存储器,所述存储器用于存储至少一条指令,所述指令有所述处理器加载并执行时以实现上述第一方面提供的机器人动作生成方法。
第三方面,本申请的另一个实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面提供的机器人动作生成方法。
第四方面,本申请的另一个实施例提供一种机器人,所述机器人包括机器人本体以及所述权利要求10所述的机器人动作生成装置。
通过上述技术方案,在基础动作库中获取若干个动作数据,进而可以根据该若干个动作数据确定对应的第一数据,具体可以包括机器人每个舵机在执行上述多个动作时的活动范围、速度范围以及活动频率。进而可以在所述活动范围中随机获取多个位置点,根据多个位置点确定舵机的活动轨迹,在所述速度范围中获取与多个位置点一一对应的速度点,并根据多个速度点以及上述活动频率确定舵机在每个位置点的活动速度。进一步地,可以根据每个舵机的活动轨迹和活动速度生成待执行动作。其中,可以在若干个动作数据的基础上,在相应范围内随机生成新动作,可以将随机生成的新动作发送给机器人的相应舵机运行,从而实现机器人通过上述新动作与用户进行交互,能够提高机器人交互动作的多样性,提高用户体验感。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一个实施例提供的机器人动作生成方法的流程图;
图2为本申请另一个实施例提供的机器人交互流程图;
图3为本申请一个实施例提供的机器人动作生成装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本申请一个实施例提供的机器人动作生成方法的流程图,如图1所示,该机器人动作生成方法包括以下步骤:
步骤101:获取若干个动作数据。
其中,可以预先创建上述基础动作库,具体地,可以根据人体手臂肢体语言行为学,预先录制多种类型的基础动作,其录制过程可以为手臂轨迹拖拽录制学习。若采用手臂轨迹拖拽录制学习录制基础动作,开始录制时,主控可以通过总线方式,每设定检测周期(如1ms)发送一条查询指令给总线上的舵机编码器,查询目标舵机的当前绝对位置值。
举例来说,当前录制一套10s的基础动作,且该10s的基础动作需要机器人的10个舵机共同运行,则主控每1ms发送一条查询指令给总线上的舵机编码器,在10s内,会生成10000个点位数据,再根据具体舵机ID把每个舵机生成的位置信息处理为时间+位置曲线,通过时间+位置曲线计算出每个检测周期内,舵机的运行速度信息和运行方向信息。
其中,每个检测周期内舵机的运行速度信息和运行方向的确定方式如下:
Speed=abs(nl-el)/time
其中,Speed为舵机在该检测周内的运行速度,abs表示绝对值函数,nl为舵机在该检测周内的起始位置,el为舵机在该检测周内的结束位置,time为检测时间(若,检测周期1ms,则检测时间为第1ms、第2ms……第10000ms)。
进一步地,若(el-nl)大于0,则direction=1(顺时针),若(el-nl)小于等于0,则direction=0(逆时针),其中,direction为舵机在该检测周内的运动方向(顺时针或逆时针)。
最终得到如表一所示的一个时间+速度+加速度+方向+舵机ID的二维数组,此数组即为一个10s基础动作数据。
表一
舵机ID | 时间 | 起始位置 | 结束位置 | 速度 | 加速度 | 方向 |
左/右手臂舵机1 | 1ms | 2048 | 2058 | 3000R/min | 50R/min | 顺时针 |
左/右手臂舵机2 | 1ms | 2048 | 2058 | 2500R/min | 100R/min | 顺时针 |
左/右手臂舵机3 | 1ms | 2048 | 2033 | 2000R/min | 20R/min | 顺时针 |
左/右手臂舵机4 | 1ms | 2048 | 2031 | 1800R/min | 20R/min | 逆时针 |
左/右手臂舵机1 | 2ms | 2058 | 2078 | 1800R/min | 30R/min | 顺时针 |
左/右手臂舵机2 | 2ms | 2058 | 2048 | 1800R/min | 20R/min | 顺时针 |
在一种可实现方式中,可以根据人体手臂肢体语言行为学,录制喜、怒、愉、忧、思、悲、恐、惊八种情绪下的基础动作。其中,基于某一目标情绪,可以录制多套能够反应目标情绪的基础动作,且每套动作会在手臂的位置、手臂的轨迹、手臂活动范围有所差异。例如,若每一种情绪录制10套对应的基础动作,则上述八种情绪共录制80套基础动作,并将所录制的80套基础动作的动作数据保存在基础动作数据库中。
根据上述操作在创建上述基础动作库后,在基础动作库中获取若干个动作数据,其中,每个动作数据可以包括机器人每个舵机对应的在每个检测周期内的起始位置信息、结束位置信息以及速度信息。
在一种可实现方式中,若基础动作库中包括上述八种情绪对应的多套基础动作的动作数据。则在基础动作库中分别获取若干个动作数据可以为在基础动作库中获取某一情绪对应的多套基础动作。在基础动作库中分别获取若干个动作数据之前,还包括:
获取用户当前情绪对应的用户情绪标识,并根据所述用户情绪标识确定交互情绪标识,进而在所述基础动作库中分别获取多个与所述交互情绪标识对应的若干个动作数据。具体地,可以通过人脸识别+语音识别获取用户情绪标识,人脸识别通过设备头部摄像头采集用户面部信息,语音识别通过设备麦克风阵列采集用户语音信息。并通过情绪识别技术对采集到的用户面部信息和用户语音信息进行识别,以确定用户当前情绪对应的用户情绪标识。该机器人中还可以设置保护参数,具体为通过机器人身上的触摸传感器与碰撞传感器采集碰撞事件,碰撞传感器优先级最高。
具体地,该交互情绪标识可以为一种交互情绪系数,该交互情绪系数如表二所示:
表二
喜 | 怒 | 愉 | 忧 | 思 | 悲 | 恐 | 惊 |
3 | 2 | 1 | 0 | -1 | -2 | -3 | -4 |
举例来说,目标情绪为“喜”,且基础动作库中存储有10套能够反映“喜”的基础动作,分别为“喜a”、“喜b”、“喜c”、“喜d”、“喜e”、“喜f”、“喜g”、“喜h”、“喜i”、“喜j”。分别获取“喜a”~“喜j”的基础动作的动作数据中机器人每个舵机对应的在每个检测周期内的起始位置信息、结束位置信息以及速度信息。
在获取到若干个动作数据后,可以根据该若干个动作数据确定对应的第一数据,该第一数据中可以包括与机器人每个舵机对应的子数据,且每个子数据包括相应舵机的活动范围、活动速度和活动频率。
步骤102:根据所述若干个动作数据确定每个舵机的活动范围。
其中,可以对每个舵机对应的位置数组按照预设逻辑进行排序,得到排序后的位置数组,其中,每个检测周期内的起始位置信息、结束位置信息组成一个所述位置数组。举例来说,以机器人左手臂舵机1为例,在上述10套能够反映“喜”的基础动作的动作数据中,获取机器人左手臂舵机1在每个检测周期内的初始位置信息和结束位置信息,且上述初始位置信息和结束位置信息可以组成如表三所示的关于左手臂舵机1的位置数组。
表三
具体地,可以对每个舵机对应的位置数组进行希尔排序,其中,选择增量gap=length/2,length为生成的数据长度,缩小增量继续以gap=gap/2的方式,这种增量选择我们可以用一个序列来表示,{gap/2,(gap/2)/2...1},通过递归方式得到排序后数组,获取最大位置为maxl,最小位置为minl,取中心位置为i=(maxl+minl)/2,以l为中心,把数组Arrary分为两部分Arrary1与Arrary2,其中n1<=i<=m1。
Arrary1=[n1,n2,n3,n4,n5,n5,n5,n6....n100,n101,n101,n102]
Arrary2=[m1,m2,m3,m4,m5,m5,m5,m6....m100,m101,m101,m102]
并基于上述排序后的位置数组中的中间位置i,将所述排序后的位置数组划分为第一部分(Arrary1)和第二部分(Arrary2),获取所述第一部分中出现次数最多的位置作为所述相应舵机的第一限制位置,获取所述第二部分中出现次数最多的位置作为所述相应舵机的第二限制位置,其中,该第一限制位置可以为最小限制位置,第二限制位置可以为最大限制位置,并根据所述最小限制位置和所述最大限制位置确定所述相应舵机的活动范围。
步骤103:根据所述若干个动作数据确定每个舵机的速度范围。
其中,可以通过获取若干个动作数据中每个舵机在每个检测周期内的所述速度信息中出现次数最多的速度值作为所述相应舵机的第一限制速度,将所述速度信息中出现次数第二多的速度值作为所述相应舵机的第二限制速度,并根据所述第一限制速度和所述第二限制速度确定所述相应舵机的所述速度范围。
步骤104:根据所述若干个动作数据确定每个舵机的活动频率。
其中,可以通过获取若干个动作数据中每个舵机在每个检测周期内的位置变化信息,具体地,该位置变化信息可以包括相应舵机的位置无变化次数、位置增大次数以及位置减小次数。
其中,舵机在每个检测周期内的结束位置与开始位置的差值决定相应舵机的位置变化情况,若舵机在每个检测周期内的结束位置与开始位置的差值为0,则表示舵机在每个检测周期内位置无变化,若舵机在每个检测周期内的结束位置与开始位置的差值大于0,则表示舵机在每个检测周期内位置增大,若舵机在每个检测周期内的结束位置与开始位置的差值小于0,则表示舵机在每个检测周期内位置减小。进而确定每个舵机的位置无变化次数fj、位置增大次数fn以及位置减小次数fm。
根据所述若干个动作数据中总运行时长以及所述检测周期确定所述相应舵机的动作总点数fa,例如,所述若干个动作数据为反应情绪“喜”的上述10套基础动作的动作数据,则总运行时长为10套基础动作的运行时长之和,那么10套基础动作数据中相应舵机的动作总点数fa为10套基础动作的运行时长之和与上述检测周期的商。即,fa=总运行时长/检测周期。
进而可以通过以下公式计算得到每个舵机的活动频率:
f=(fn-fj)/fa+(fm-fj)/fa+(fn+fm)/fa。
可以根据上述方式确定每个舵机的活动范围、活动速度以及活动频率。进而得到若干个动作数据对应的第一数据,该若干个动作数据对应的第一数据可以如表四所示:
表四
根据步骤102-104确定每个舵机的活动范围后,还可以根据机器人的实际动作限制范围对每个舵机的活动范围进行过滤,以过滤掉机器人不能达到的位置或损伤机器人的动作位置。该实际动作限制范围如表五所示:
表五
步骤105:在舵机的活动范围内随机获取对应的多个位置点,并根据所述多个位置点确定舵机的活动轨迹。
在执行步骤105之前,可以获取用于应答用户的交互语音的时长信息,并根据所述时长信息确定多个时间点。其中,用于应答用户的交互语音的时长信息的获取方式可以包括通过将交互内容从文本到语音的转换(Text To Speech,TTS)确定应答用户的交互语音的时长TS,具体地该时长TS的单位可以包括分钟(min)。进一步地,可以将该时长TS差分为多个区间,如,拆分为多个500ms的区间,经过上述拆分后可以得到除起点外的多个时间点,一个舵机对应的时间点的总数为n=T*1000/500。
进一步地,可以根据上述步骤102所确定的每个舵机的活动范围,确定相应舵机的活动轨迹。具体地,可以在舵机的活动范围内随机获取多个位置点,多个位置点与上述多个时间点一一对应。其中,在所述舵机的活动范围内随机获取对应的多个位置点的过程包括:分别执行多次位置提取操作以得到所述多个位置点;其中,一次所述位置提取操作包括:通过随机函数在所述活动范围内随机获取一个随机位置数据,计算所述随机位置数据的对数,所述随机位置数据的对数与设定值的比值为本次所述位置提取操作得到的一个所述位置点。具体地,可以根据以下公式确定所述多个位置点:
Ln=log(rand(ML1,ML2))/log2;
其中,Ln表示所述多个位置点中的第n个位置点,rand表示随机函数,ML1表示所述第一限制位置(最小限制位置),ML2表示所述第二限制位置(最大限制位置),所述设定值为log2。
进一步地,可以根据上述随机获取的多个位置点确定舵机的活动轨迹。
步骤106:在舵机的速度范围内随机获取多个速度点,并根据所述多个速度点和相应舵机的活动频率确定该舵机在每个所述位置点的活动速度。
其中,可以根据步骤103中所确定的每个舵机的速度范围,确定相应舵机的活动速度。具体地,可以在舵机的速度范围内随机获取多个速度点,多个速度点与上述多个位置点一一对应。其中在所述舵机的速度范围内随机获取对应的多个速度点的过程包括:分别执行多次速度提取操作以得到所述多个速度点;其中,一次所述速度提取操作包括:通过随机函数在所述速度范围内随机获取一个随机速度数据,计算所述随机速度数据的对数,所述随机速度数据的对数与设定值的比值为本次速度提取操作得到的一个所述速度点。
具体地,可以根据以下公式确定所述多个速度点:
Sn=log(rand(MS2,MS1))/log2;
其中,Sn所述多个速度点中第n个速度点,MS1表示所述第一限制速度,所述MS2表示所述第二限制速度,rand表示随机函数,所述设定值为log2。
进一步地,根据上述随机获取的多个速度点确定相应舵机的活动速度,可以对所述第n个速度点Sn与舵机对应的子数据中的活动频率的f的乘积进行修正后得到所述舵机的活动速度。具体地,可以根据以下公式确定活动速度:
ASn=Sn*f*Wn;
其中,ASn表示舵机在第n个所述位置点的所述活动速度,f表示所述活动频率,Wn
表示用于修正的所述交互情绪标识对应的权重值,具体地,该交互情绪标识对应的权重值可以为交互情绪标识对应的情绪系数r的修正值,其中该修正值可以为(r+5),该修正过程目的在于避免该权重值为负数或0。
步骤107:根据每个舵机的所述活动轨迹和所述活动速度生成待执行动作。
在获取到每个舵机的活动轨迹和活动速度后,将每个舵机的活动轨迹和活动速度发送给相应舵机对应的舵机,进而使机器人执行所述活动轨迹和所述活动速度生成的待执行动作。
情绪动作(通过步骤101-107生成的待执行动作)的使用过程中,为实现交互语音播报完毕,动作执行完成的实时对应效果,还可以对上述活动速度进行适应性调整。具体地,机器人执行所述活动轨迹和所述活动速度生成的待执行动作所花费的时间(开始执行情绪动作至情绪动作执行完成的时间)与步骤105之前获取到的所述应答用户的交互语音的时长TS存在差异,即,可能存在情绪动作执行完成时,交互语音还未播报完成的问题。进而为统一情绪动作执行时长TM和应答用户的交互语音的时长TS,进而实现交互语音播报完毕,动作执行完成的实时对应效果,可以通过情绪动作执行时长TM与应答用户的交互语音的时长TS的比值对情绪动作(待执行动作)中的活动速度进行调整。
具体地,通过以下公式获取速度调整系数C:
C=TM/TS
其中,C表示速度调整系数,TM表示情绪动作执行时长,TS表示应答用户的交互语音的时长。
进一步地,可以根据计算得到的上述速度调整系数C对步骤101-107生成的待执行动作中的每个位置点对应的活动速度进行调整,并通过如下方式调整得到调整后的活动速度ASnˊ:
ASnˊ=ASn*C
其中,ASnˊ表示舵机在第n个所述位置点的调整后活动速度。
基于上述调整方式,对待执行动作中每个活动速度进行调整后,得到经过速度调整后的待执行动作,机器人通过执行所述过速度调整后的待执行动作,以实现交互语音播报完毕,动作执行完成的实时对应效果。
在另一种实现方式中,机器人所执行的动作除通过步骤101-107生成的情绪动作外,还可以包含初始动作和结束动作,进而为实现交互语音播报完毕,动作执行完成的实时对应效果,还需进行上述速度调整,不同的,需将情绪动作执行时长TM替换为情绪动作执行时长TM与初始动作时长和结束动作时长之和。详细调整流程不再赘述。
图2为本申请一个实施例提供的机器人交互流程示意图,如图2所示,该机器人交互流程包括以下步骤:
步骤201:基于触发条件唤醒机器人;
步骤202:确定是否出现碰撞事件,若是则进入步骤202,若否则进入步骤203;
步骤203:确定交互情绪为“惊”,并生成情绪“惊”的待执行动作;
步骤204:根据用户情绪生成确定机器人的交互情绪,并生成机器人的交互情绪对应的待执行动作;
步骤205:在与用户交互阶段同步执行语音回复和生成的待执行动作。
关于步骤201,其中唤醒机器人的触发方式包括视觉触发、语音触发、触碰触发。
其中,视觉触发可以为在获取到用户进入机器人摄像头的拍摄视野触发唤醒机器人。语音触发可以为机器人的语音采集装置采集到用户的交互语音后触发唤醒机器人。碰撞触发包括机器人的触摸传感器或碰撞传感器检测到用户触摸或碰撞机器人后触发唤醒机器人。
需要说明的是,上述步骤204中所述的根据用户情绪生成确定机器人的交互情绪,并生成机器人的交互情绪对应的待执行动作的具体操作流程可以为步骤101-107所示实施例中提供的机器人动作生成流程。
图3为本申请一个实施例提供的机器人动作生成装置的结构示意图,该装置可以包括:处理器301和存储器302,所述存储器302用于存储至少一条指令,所述指令由所述处理器301加载并执行时以实现图1所示实施例中的机器人动作生成方法。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可以实现图1所示实施例中的机器人动作生成方法。
本申请另一个实施例提供一种机器人,机器人包括机器人本体以及图3所示实施例提供的机器人动作生成装置。
可以理解的是,所述应用可以是安装在终端上的应用程序(nativeApp),或者还可以是终端上的浏览器的一个网页程序(webApp),本申请对此不进行限定。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(Processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (14)
1.一种机器人动作生成方法,其特征在于,所述方法包括:
获取若干个动作数据,其中,所述若干个动作数据的类型与交互类型之间具有映射关系;
根据所述若干个动作数据确定对应的第一数据,其中,所述第一数据中包括与机器人每个舵机对应的子数据,每个所述子数据包括舵机的活动范围、速度范围和活动频率,根据所述若干个动作数据中每个舵机在每个检测周期内的起始位置信息、结束位置信息确定所述舵机位置无变化次数、位置增大次数以及位置减小次数,根据所述若干个动作数据中总运行时长以及所述检测周期确定所述舵机的动作总点数,并根据所述位置无变化次数、位置增大次数、位置减小次数以及所述动作总点数确定所述舵机的所述活动频率;
基于每个所述子数据,在所述舵机的活动范围内随机获取对应的多个位置点,并根据所述多个位置点确定舵机的活动轨迹;
基于每个所述子数据,在所述舵机的速度范围内随机获取对应的多个速度点,并根据所述多个速度点和所述活动频率确定舵机在每个所述位置点的活动速度,所述多个速度点与所述多个位置点一一对应;
根据每个舵机的所述活动轨迹和所述活动速度生成待执行动作。
2.根据权利要求1所述的方法,其特征在于,所述交互类型包含用户情绪类型,所述获取若干个动作数据之前,还包括:
获取用户情绪标识,并根据所述用户情绪标识确定交互情绪标识,所述用户情绪标识用于表征用户情绪类型;
所述获取若干个动作数据包括:
获取与所述交互情绪标识对应的若干个动作数据。
3.根据权利要求2所述的方法,其特征在于,所述动作数据包括机器人每个舵机对应的在每个检测周期内的起始位置信息、结束位置信息以及速度信息。
4.根据权利要求3所述的方法,其特征在于,所述根据所述若干个动作数据确定对应的第一数据包括:
对每个舵机对应的位置数组按照预设逻辑进行排序,得到排序后的位置数组,每个检测周期内的起始位置信息、结束位置信息组成一个所述位置数组;
并基于所述排序后的位置数组中的中间位置,将所述排序后的位置数组划分为第一部分和第二部分,获取所述第一部分中出现次数最多的位置作为所述舵机的第一限制位置,获取所述第二部分中出现次数最多的位置作为所述舵机的第二限制位置,并根据所述第一限制位置和所述第二限制位置确定所述舵机的活动范围。
5.根据权利要求3所述的方法,其特征在于,所述根据所述若干个动作数据确定对应的第一数据包括:
获取所述若干个动作数据中每个舵机在每个检测周期内的所述速度信息中出现次数最多的速度值作为所述舵机的第一限制速度,将所述速度信息中出现次数第二多的速度值作为所述舵机的第二限制速度,并根据所述第一限制速度和所述第二限制速度确定所述舵机的所述速度范围。
6.根据权利要求4所述的方法,其特征在于,所述在所述舵机的活动范围内随机获取对应的多个位置点之前,还包括:
获取用于应答用户的交互语音的时长信息,并根据所述时长信息确定多个时间点,所述多个位置点与所述多个时间点一一对应;
所述在所述舵机的活动范围内随机获取对应的多个位置点包括:
分别执行多次位置提取操作以得到所述多个位置点;
其中,一次所述位置提取操作包括:
通过随机函数在所述活动范围内随机获取一个随机位置数据,计算所述随机位置数据的对数,所述随机位置数据的对数与设定值的比值为本次所述位置提取操作得到的一个所述位置点。
7.根据权利要求6所述的方法,其特征在于,所述通过随机函数在所述活动范围内随机获取一个随机位置数据,计算所述随机位置数据的对数,所述随机位置数据的对数与设定值的比值为本次位置提取操作得到的一个所述位置点包括:
根据以下公式确定所述位置点:
Ln=log(rand(ML1,ML2))/log2;
其中,Ln表示所述多个位置点中的第n个位置点,rand表示随机函数,ML1表示所述第一限制位置,ML2表示所述第二限制位置,所述设定值为log2。
8.根据权利要求5所述的方法,其特征在于,所述在所述舵机的速度范围内随机获取对应的多个速度点包括:
分别执行多次速度提取操作以得到所述多个速度点;
其中,一次所述速度提取操作包括:
通过随机函数在所述速度范围内随机获取一个随机速度数据,计算所述随机速度数据的对数,所述随机速度数据的对数与设定值的比值为本次速度提取操作得到的一个所述速度点。
9.根据权利要求8所述的方法,其特征在于,所述通过随机函数在所述速度范围内随机获取一个随机速度数据,计算所述随机速度数据的对数,所述随机速度数据的对数与设定值的比值为本次速度提取操作得到的一个所述速度点包括:
根据以下公式确定所述速度点:
Sn=log(rand(MS2,MS1))/log2;
其中,Sn所述多个速度点中第n个速度点,rand表示随机函数,MS1表示所述第一限制速度,所述MS2表示所述第二限制速度,所述设定值为log2。
10.根据权利要求8所述的方法,其特征在于,所述根据所述多个速度点确定舵机的活动速度包括:
对所述第n个速度点Sn与舵机对应的子数据中的活动频率的f的乘积进行修正后得到所述舵机的活动速度。
11.根据权利要求10所述的方法,其特征在于,所述对所述第n个速度点Sn与舵机对应的子数据中的活动频率的f的乘积进行修正后得到所述舵机的活动速度包括:
根据以下公式确定所述活动速度:
ASn=Sn*f*Wn;
其中,ASn表示舵机在第n个所述位置点的所述活动速度,f表示所述活动频率,Wn表示用于所述修正的所述交互情绪标识对应的权重值。
12.一种机器人动作生成装置,其特征在于,所述装置包括:
处理器和存储器,所述存储器用于存储至少一条指令,所述指令由所述处理器加载并执行时以实现如权利要求1-11中任意一项所述的机器人动作生成方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-11任意一项所述的机器人动作生成方法。
14.一种机器人,其特征在于,所述机器人包括机器人本体以及所述权利要求12所述的机器人动作生成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110202724.4A CN112975963B (zh) | 2021-02-23 | 2021-02-23 | 机器人动作生成方法和装置以及机器人 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110202724.4A CN112975963B (zh) | 2021-02-23 | 2021-02-23 | 机器人动作生成方法和装置以及机器人 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112975963A CN112975963A (zh) | 2021-06-18 |
CN112975963B true CN112975963B (zh) | 2022-08-23 |
Family
ID=76349815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110202724.4A Active CN112975963B (zh) | 2021-02-23 | 2021-02-23 | 机器人动作生成方法和装置以及机器人 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112975963B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011042011A (ja) * | 2009-08-21 | 2011-03-03 | Tokyo Metropolitan Univ | ロボット制御装置、ロボット制御方法、ロボット制御プログラム、及びロボット |
CN106945036A (zh) * | 2017-03-21 | 2017-07-14 | 深圳泰坦创新科技有限公司 | 机器人动作生成方法和装置 |
CN108564007A (zh) * | 2018-03-27 | 2018-09-21 | 深圳市智能机器人研究院 | 一种基于表情识别的情绪识别方法和装置 |
CN108568818A (zh) * | 2018-04-10 | 2018-09-25 | 珠海格力智能装备有限公司 | 机器人的控制***和方法 |
JP2020046773A (ja) * | 2018-09-14 | 2020-03-26 | 学校法人早稲田大学 | ロボット、並びに、その行動計画装置及び行動計画用プログラム |
JP2020046759A (ja) * | 2018-09-14 | 2020-03-26 | 学校法人早稲田大学 | ロボット、並びに、その行動計画装置及び行動計画用プログラム |
CN112060080A (zh) * | 2020-07-31 | 2020-12-11 | 深圳市优必选科技股份有限公司 | 一种机器人的控制方法、装置、终端设备及存储介质 |
CN112240770A (zh) * | 2020-10-15 | 2021-01-19 | 浙江欣奕华智能科技有限公司 | 一种生成机器人运动轨迹的方法、装置及终端 |
-
2021
- 2021-02-23 CN CN202110202724.4A patent/CN112975963B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011042011A (ja) * | 2009-08-21 | 2011-03-03 | Tokyo Metropolitan Univ | ロボット制御装置、ロボット制御方法、ロボット制御プログラム、及びロボット |
CN106945036A (zh) * | 2017-03-21 | 2017-07-14 | 深圳泰坦创新科技有限公司 | 机器人动作生成方法和装置 |
CN108564007A (zh) * | 2018-03-27 | 2018-09-21 | 深圳市智能机器人研究院 | 一种基于表情识别的情绪识别方法和装置 |
CN108568818A (zh) * | 2018-04-10 | 2018-09-25 | 珠海格力智能装备有限公司 | 机器人的控制***和方法 |
JP2020046773A (ja) * | 2018-09-14 | 2020-03-26 | 学校法人早稲田大学 | ロボット、並びに、その行動計画装置及び行動計画用プログラム |
JP2020046759A (ja) * | 2018-09-14 | 2020-03-26 | 学校法人早稲田大学 | ロボット、並びに、その行動計画装置及び行動計画用プログラム |
CN112060080A (zh) * | 2020-07-31 | 2020-12-11 | 深圳市优必选科技股份有限公司 | 一种机器人的控制方法、装置、终端设备及存储介质 |
CN112240770A (zh) * | 2020-10-15 | 2021-01-19 | 浙江欣奕华智能科技有限公司 | 一种生成机器人运动轨迹的方法、装置及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN112975963A (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107728916B (zh) | 隔空手写轨迹的显示方法及装置 | |
US11452941B2 (en) | Emoji-based communications derived from facial features during game play | |
CN110538455B (zh) | 虚拟对象的移动控制方法、装置、终端及存储介质 | |
KR20220039702A (ko) | 동적으로 반응하는 가상 캐릭터를 위한 다중 모드 모델 | |
CN112379780B (zh) | 多模态情感交互方法、智能设备、***、电子设备及介质 | |
WO2002099545A1 (en) | Man-machine interface unit control method, robot apparatus, and its action control method | |
US20220176244A1 (en) | Providing automated user input to an application | |
CN110837294A (zh) | 一种基于眼球追踪的面部表情控制方法及*** | |
JP6891601B2 (ja) | ロボットの制御プログラム、ロボット装置、及びロボットの制御方法 | |
CN107194151A (zh) | 确定情感阈值的方法和人工智能设备 | |
CN107463684A (zh) | 语音回复方法及装置、计算机装置和计算机可读存储介质 | |
CN112975963B (zh) | 机器人动作生成方法和装置以及机器人 | |
US11009963B2 (en) | Sign language inputs to a vehicle user interface | |
KR20200056287A (ko) | 시각적 특성을 기초로 한 햅틱 효과 생성 시스템 및 방법 | |
JP6981214B2 (ja) | 画像生成プログラム、画像生成装置及び画像生成方法 | |
CN112509154B (zh) | 图像生成模型的训练方法、图像生成方法及装置 | |
CN117033606A (zh) | 对话机器人的对话管理方法、***、设备及介质 | |
CN111736700A (zh) | 基于数字人的车舱交互方法、装置及车辆 | |
CN113888598A (zh) | 数字人视频的异常检测方法及相关装置 | |
CN111760276B (zh) | 游戏行为控制方法、装置、终端、服务器和存储介质 | |
CN116983624A (zh) | 游戏策略的推荐方法、装置、电子设备及存储介质 | |
CN110152315B (zh) | 一种智能玩具的控制方法、设备、终端设备及存储介质 | |
Kocoń | Facial expressions modeling for interactive virtual environments | |
KR20220004156A (ko) | 디지털 휴먼에 기반한 자동차 캐빈 인터랙션 방법, 장치 및 차량 | |
Gogineni et al. | Gesture and speech recognizing helper bot |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210810 Address after: No. 5055, Tianhe Road, Guangzhou Applicant after: Guangdong Youbisheng Technology Co.,Ltd. Address before: B2, No.1 Bochuang Road, Beijiao Town, Shunde District, Foshan City, Guangdong Province Applicant before: Guangdong Zhiyuan Robot Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |