1.本发明涉及信息处理设备、系统、信息处理方法和程序。
背景技术:
2.各种类型的机器人正在被研究和开发。ptl 1公开了一种机器人设备,包括根据通过相机图像输入设备输入的用户图像生成与用户的运动同步的运动的模块。
3.[引文列表]
[0004]
[专利文献]
[0005]
[ptl 1]
[0006]
日本专利公开2005-342873号
技术实现要素:
[0007]
[技术问题]
[0008]
例如,在开发上述机器人的同时,研究也在进行以检测机器人的非预期的运动,诸如由机器人之间的物理交互生成的运动,并将检测到的运动用于例如娱乐目的。然而,用于利用这种运动的技术还没有被充分地提出。
[0009]
鉴于上述情况,本发明的目的是提供一种信息处理设备、系统、信息处理方法和程序,其使得能够检测和利用机器人的非预期的运动。
[0010]
[问题j9九游会真人的解决方案]
[0011]
根据本发明的一个方面,提供了一种信息处理设备,包括接触事件检测结果获取部件、主动性确定结果获取部件和分数增加部件。接触事件检测结果获取部件获取第一接触事件的检测结果和第二接触事件的检测结果。第一接触事件已经在第一机器人的壳体的部分上发生。第二接触事件已经在第二机器人的壳体的部分上发生。主动性确定结果获取部件获取第一接触事件和第二接触事件中的每一个的主动性的确定结果。在第一接触事件是主动的并且与第一接触事件同步检测到的第二接触事件是非主动的情况下,分数增加部件增加第一机器人的分数。
[0012]
根据本发明的另一方面,提供了一种包括上述信息处理设备以及第一机器人和第二机器人的系统。第一机器人和第二机器人中的每一个包括接触事件检测部件和主动性确定部件。接触事件检测部件检测已经发生在壳体的部分上的接触事件。在包括在壳体的部分中的移动部分上检测到接触事件的情况下,主动性确定部件确定接触事件是主动的。将第一接触事件和第二接触事件的检测结果、以及第一接触事件的主动性和第二接触事件的主动性的确定结果从第一机器人和第二机器人发送到信息处理设备。
[0013]
根据本发明的又一方面,提供了一种信息处理方法,包括获取第一接触事件的检测结果和第二接触事件的检测结果的步骤,第一接触事件已经在第一机器人的壳体的部分上发生,第二接触事件已经在第二机器人的壳体的部分上发生,获取第一接触事件和第二接触事件中的每一个的主动性的确定结果的步骤,以及在第一接触事件是主动的并且与第
一接触事件同步检测到的第二传触事件是非主动的情况下增加第一机器人的分数的步骤。
[0014]
根据本发明的又一方面,提供了一种用于使计算机用作信息处理设备的程序,该信息处理设备包括接触事件检测结果获取部件、主动性确定结果获取部件和分数增加部件。接触事件检测结果获取部件获取第一接触事件的检测结果和第二接触事件的检测结果。第一接触事件已经在第一机器人的壳体的部分上发生。第二接触事件已经在第二机器人的壳体的部分上发生。主动性确定结果获取部件获取第一接触事件和第二接触事件中的每一个的主动性的确定结果。在第一接触事件是主动的并且与第一接触事件同步检测到的第二接触事件是非主动的情况下,分数增加部件增加第一机器人的分数。
附图说明
[0015]
图1是示出根据本发明的实施例的系统的示例配置的示意图。
[0016]
图2是示出图1所示的系统中的机器人的示例配置的示意图。
[0017]
图3是示出图1所示的系统中的确定设备的示例配置的示意图。
[0018]
图4a是示出关于接触事件检测和确定的功能配置的第一示例的框图。
[0019]
图4b是示出关于接触事件检测和确定的功能配置的第二示例的框图。
[0020]
图5是示出在本发明的实施例中用于接触事件检测的功能配置的具体示例的图。
[0021]
图6a是示出测量的扭矩值和阈值范围之间的比较的示例的图。
[0022]
图6b是示出测量的扭矩值和阈值范围之间的比较的示例的图。
[0023]
图7是示出将低通滤波器应用于测量的扭矩值的示例的图。
[0024]
图8是示出机器人的结构的示例的图。
[0025]
图9a是示出将多个关节中的测量扭矩值的比率进行组合的检测的示例的图。
[0026]
图9b是示出将多个关节中的测量扭矩值的比率进行组合的检测的示例的图。
[0027]
图10a是示出其中角度差值被组合的检测的示例的图。
[0028]
图10b是示出其中角度差值被组合的检测的示例的图。
[0029]
图11a是示出在本发明的实施例中确定接触事件主动性的示例的图。
[0030]
图11b是示出在本发明的实施例中确定接触事件主动性的示例的图。
[0031]
图12是示出在实施例中检测主动接触事件的处理的示意图。
[0032]
图13是示出由本发明的实施例中的分数计算部件执行的处理的示例的流程图。
具体实施方式
[0033]
现在将参照附图详细描述本发明的优选实施例。应该注意的是,在本文件和附图中,具有基本上相同的功能配置的组成元件由相同的附图标记表示,并且将不再赘述。
[0034]
(系统配置)
[0035]
图1是示出根据本发明的实施例的系统的示例配置的示意图。在本实施例中,系统10提供由机器人100a和100b玩的格斗游戏。系统10还包括控制器200a和200b以及确定设备300。
[0036]
机器人100a和100b(下文中可统称为机器人100)分别包括头部101a和101b(下文中可统称为头部101)、躯干102a和102b(下文中可统称为躯干102)、臂103a和104a以及臂103b和104b(下文中可统称为臂103和104),以及腿105a和106a以及腿105b和106b(下文中
可统称为腿105和106)。
[0037]
控制器200a和200b根据用户的操作输入(例如,对未画出的按钮或杆的操作输入)生成操作信号。可替代地,控制器200a和200b可以根据用户的运动来生成操作信号,用户的运动通过例如未示出的相机或传感器提供的运动捕获来识别。操作信号分别从控制器200a发送到机器人100a和从控制器200b发送到机器人100。机器人100a和100b根据各自的操作信号移动。
[0038]
通过允许机器人100a和100b分别根据来自控制器200a和200b的操作信号移动并驱动臂103和104以及腿105和106来攻击和防御对手来提供格斗游戏。格斗游戏的规则并不特别局限于任何种类。然而,例如,当由机器人100a的臂103a和104a中的任何一个进行的攻击击中机器人100b的头部101b或躯干102b时,可以给予机器人100a点数(point)。确定设备300根据分别从机器人100a和100b发送的信息来确定上述点数。
[0039]
图2是示出图1所示的系统中的机器人的示例配置的示意图。机器人100包括信息处理设备110,该信息处理设备安装在例如躯干102中。信息处理设备110包括例如用于执行算术处理的cpu(中央处理单元)111、ram(随机存取存储器)112、rom(只读存储器)113和外部存储器114。信息处理设备110根据由通信接口121接收的操作信号或控制信号来确定机器人100的各个部分的运动。通信接口121通过总线接口115连接到信息处理设备110。
[0040]
信息处理设备110控制电动机130以旋转地驱动臂103和104、手103h和104h、腿105和106以及脚105f和106f的关节,以这种方式执行所确定的运动。虽然未示出,但是头部101和躯干102也可以设置有由电动机130驱动的关节。例如,信息处理设备110中的cpu 111从存储在rom 113或外部存储器114中的运动模式中选择与所确定的运动相对应的运动模式,根据所选择的运动模式确定例如用于腿运动、zmp(零力矩点)轨迹、躯干运动、上肢运动的设置,并且根据所确定的设置的设置值来控制电动机130。
[0041]
此外,在机器人100上安装有imu(惯性测量单元)122和其他传感器。传感器通过总线接口115连接到信息处理设备110,以允许信息处理设备100根据需要参考传感器输出值并控制机器人100的各个部分。此外,信息处理设备110可以将通过稍后描述的处理获取的关于攻击和防御的确定信息发送到图1所示的确定设备300。可选地,信息处理设备110可以将例如传感器输出值和所选择的运动模式或用于控制电动机130的设置值中的至少一些发送到确定设备300,确定设备300提取关于攻击和防御的确定信息。
[0042]
图3是示出图1所示的系统中的确定设备的示例配置的示意图。确定设备300包括信息处理设备310和通信接口321。信息处理设备310包括例如用于执行算术处理的cpu 311、ram 312、rom 313和外部存储器314。信息处理设备310根据通信接口321已经分别从机器人100a和100b接收到的确定信息来确定格斗游戏的赢家和输家。例如,可以通过通信接口321将确定结果和游戏分数发送到诸如用户终端的另一设备,并在显示器322上显示。通信接口321和显示器322通过总线接口315连接到信息处理设备310。
[0043]
在本实施例中,接触事件被定义为用于确定格斗游戏的赢家和输家的元素。例如,在格斗游戏期间机器人100a撞击机器人100b的壳体的任何部分的情况下,生成接触事件。在这种情况下,在驱动机器人100a和100b的各个部分的电动机中发生两种不同的扭矩变化。一个扭矩变化是由根据来自控制器200a和200b的操作信号执行的运动引起的。另一个扭矩变化是由对手的机器人(外部对象)与壳体接触时施加的力引起的。可以从为机器人
100设置的运动模式和传感器输出值预测前一种扭矩变化的幅度和时间,前一种扭矩变化包括例如由与地板表面的接触引起的扭矩变化。同时,后一种扭矩变化的幅度和时间随着机器人100b的位置和运动而变化,因此难以以与前一种扭矩变化类似的方式进行预测。涉及由与这种外部物体的接触引起的扭矩变化的事件在本文中被称为接触事件。
[0044]
如上所述定义的接触事件进一步分为主动接触事件和被动接触事件。例如,在机器人100a撞击机器人100b的壳体的任何部分的情况下,在被撞击的机器人100b中发生接触事件。在这种情况下,机器人100b没有执行用于攻击的运动。因此,难以预测在机器人100b本身中的事件发生。在这种情况下,认为在机器人100b上已经发生了被动接触事件。同时,在上述情况下,由机器人100a执行用于攻击的运动。因此,在机器人100a上发生的接触事件本身是可预测的。在这种情况下,认为在机器人100a上已经发生了主动接触事件。然而,在例如由机器人100b执行躲避运动的情况下,也有可能不会发生预测的接触事件。此外,即使在发生接触事件的情况下,扭矩变化的幅度和时间也取决于机器人100b的位置和运动。因此,即使在主动接触事件的情况下,也难以预测扭矩变化的幅度和时间。
[0045]
在本实施例中,在机器人100a侧和机器人100b侧都检测上述被动接触事件和主动接触事件,然后对检测结果进行整合,以确定格斗游戏的赢家和输家。作为用于实现这些目的的功能组成元件,系统10包括测量的扭矩值获取部件510、角度差值获取部件520、接触事件检测部件530、主动性确定部件540和分数增加部件550。在图1所示的系统10中,这些功能组成元件被实现在机器人100所拥有的信息处理设备110中,或者被实现在确定设备300所拥有的信息处理设备310中。
[0046]
具体地,如图4a所示,测量的扭矩值获取部件510、角度差值获取部件520、接触事件检测部件530和主动性确定部件540可以在机器人100中实现,并且分数增加部件550可以在确定设备300中实现。在这种情况下,确定设备300包括接触事件检测结果获取部件551和主动性确定结果获取部件552。接触事件检测结果获取部件551接收机器人100a和机器人100b中的接触事件的检测结果。主动性确定结果获取部件552接收机器人100a和机器人100b中的接触事件的主动性的确定结果。
[0047]
可替代地,如图4b所示,测量的扭矩值获取部件510和角度差值获取部件520可以在机器人100中实现,并且接触事件检测部件530、主动性确定部件540和分数增加部件550可以在确定设备300中实现。在这种情况下,上述接触事件检测结果获取部件和主动性确定结果获取部件的功能包括在接触事件检测部件530和主动性确定部件540中。下面将进一步描述每个功能组件元件。
[0048]
测量的扭矩值获取部件510获取由驱动机器人100的壳体的关节的电动机测量的测量扭矩值。如前所述,机器人100的壳体包括例如头部101、躯干102以及臂103和104,并且用于将它们连接在一起的关节由电动机130驱动。例如,通过测量流向电动机130的电流来获取测量的扭矩值。在关节可以在多个方向(例如,滚转、俯仰和偏航方向)上被驱动的情况下,可以获取在各个方向上驱动关节的电动机的测量的扭矩值。所获取的测量的扭矩值可以由接触事件检测部件530实时处理。可替代地,可以将以时间序列获取的测量的扭矩值缓冲预定的时间段,以计算例如时间差和移动平均值。
[0049]
角度差值获取部件520获取角度差值,该角度差值表示关于驱动机器人100的壳体的关节的电动机的测量的角度值和指示的角度值之间的差。测量的角度值例如作为连接到
由电动机驱动的关节的电位计或编码器的输出值被获取。所指示的角度值是例如由信息处理设备110确定的各个电动机130的旋转角度的目标值。
[0050]
在由测量的扭矩值获取部件510获取的测量的扭矩值或基于该测量的扭矩值的值超过阈值范围的情况下,接触事件检测部件530检测到在由与测量的扭矩值相关的电动机130驱动的关节联接的壳体的部分上已经发生的接触事件。更具体地,例如,在驱动联接机器人100的头部101和躯干102的关节的电动机的测量的扭矩值或基于该测量扭矩值的值超过阈值范围的情况下,接触事件检测部件530检测到在头部101或躯干102上已经发生的接触事件。
[0051]
在上述情况下,由接触事件检测部件530用于接触事件检测的阈值范围对应于在正常操作期间由各个电动机检测到的测量的扭矩值的范围,即,在驱动机器人100的关节的电动机根据由信息处理设备110确定的运动模式进行操作并且没有施加非预期外力的情况。例如通过实际测量机器人100执行各种运动时的扭矩值来确定阈值范围。可以针对每个关节和电动机驱动方向(例如,滚转、俯仰和偏航方向)单独设置阈值范围。可替代地,可以为两个或更多个关节和驱动方向设置共同的阈值范围。
[0052]
例如,在测量的扭矩值简单地在阈值范围之外的情况下,即,测量的扭矩值大于阈值范围的最大值或小于阈值范围的最小值的情况下,上述接触事件检测部件530可以检测到接触事件。可替代地,如稍后参考示例所述,在测量的扭矩值的分量超过阈值范围的情况下,或者在测量的扭矩值的时间差超过阈值范围的情况下,接触事件检测部件530可以检测到接触事件,该分量具有等于或低于预定频率的频率。此外,如稍后参考示例所述,接触事件检测部件530可以根据多个测量的扭矩值的比率来检测接触事件,并且还可以根据由角度差值获取部件520获取的角度差值来检测接触事件。
[0053]
主动性确定部件540确定由接触事件检测部件530检测到的接触事件是否是主动的。这里,如前所述,主动接触事件的发生本身是可预测的,因为机器人100已经执行了调用主动接触事件的运动。具体地,在包括在机器人100的壳体的部分中的移动部分上检测到接触事件的情况下,主动性确定部件540确定接触事件是主动的。例如,主动性确定部件540能够根据由信息处理设备110确定的关节的运动模式来识别机器人100的移动部分。此外,如稍后参考示例所述,在关于机器人100的躯干102以及由躯干102支撑的臂103和104、作为臂103和臂104的端部的手103h和手104h与躯干102处于预定位置关系的情况下,主动性确定部件540可以将臂103和臂104(包括手103h和104h)识别为移动部分。在本实施例中,未被主动性确定部件540确定为主动接触事件的接触事件被处理为被动接触事件。
[0054]
关于机器人100a和100b中的每一个,分数增加部件550根据接触事件检测部件530的接触事件检测结果和主动性确定部件540的接触事件主动性确定结果来确定格斗游戏的赢家和输家。更具体地,在例如在机器人100a上检测到的第一接触事件是主动的并且在机器人100b上与第一接触事件同步检测到的第二接触事件是非主动的情况下,分数增加部件550确定机器人100a已经成功地攻击了机器人100b,然后增加机器人100a的分数。稍后将描述分数增加部件550的这种处理的具体示例。
[0055]
(接触事件检测的具体示例)
[0056]
图5是示出在本发明的实施例中用于接触事件检测的功能配置的具体示例的图。在图5所示的示例中,测量的扭矩值获取部件510获取驱动联接头部101和躯干102的关节的
电动机的三方向的测量的扭矩值(head_roll、head_pitch、head_yaw)、驱动联接躯干102中的两个部分的关节的电动机的三方向的测量的扭矩值(trunk_roll,trunk_pitch,trunk_yaw),以及驱动联接躯干102和臂103和104的肩关节的电动机的两方向的测量的扭矩值(left_shoulder_roll,left_shoulder_pitch,right_shoulder_roll,right_shoulder_pitch)。同时,角度差值获取部件520获取驱动联接躯干102中的两个部分的关节的电动机的角度差值(trunk_yaw),以及驱动上述肩关节的电动机的角度差值(left_shoulder_roll,left_shoulder_pitch,right_shoulder_roll,right_shoulder_pitch)。应该注意的是,在图5中,在一些情况下,滚转、俯仰和偏航分别缩写为r、p和y。
[0057]
在所描绘的示例中,接触事件检测部件530包括接触事件检测部件530a至530d和接触事件检测部件530e。接触事件检测部件530a至530d通过以不同方式将测量的扭矩值与阈值范围进行比较来检测接触事件。接触事件检测部件530e对接触事件检测的结果进行整合。以下将对这些部分中的每一部分进行进一步描述。
[0058]
(使用测量的扭矩值的检测)
[0059]
接触事件检测部件530a确定头部101的测量的扭矩值(head_roll,head pitch,head_yaw)和躯干102的测量的扭矩值(trunk_roll)是否分别超过阈值范围。在图6a和6b中示出了测量的扭矩值和阈值范围之间的比较的示例。如图6a所示,关于驱动机器人100的各个部分的电动机,在正常操作期间测量的扭矩值不超过阈值范围r。如前所述,阈值范围r是例如通过收集在机器人100的正常操作期间实际测量的扭矩值确定的。应该注意的是,尽管所描绘的示例指示阈值范围r的正侧和负侧被相等地设置在零(0)附近,但是阈值范围r可以朝正侧或负侧偏置。
[0060]
同时,当发生接触事件时,电动机的测量的扭矩值超过阈值范围r,如图6b所示。因此,在测量的扭矩值(head_roll,head_pitch,head_yaw,trunk_roll)超过分别设置的阈值范围r的情况下,接触事件检测部件530a检测到头部101或躯干102上的至少一个上的接触事件。在这种情况下,如图7所示,接触事件检测部件530a(以及其他事件检测部分)可以将低通滤波器应用于测量的扭矩值,并且在测量的扭矩值的分量超过阈值范围r的情况下检测到接触事件,所述分量具有等于或低于预定频率的频率。测量的扭矩值可以包括由于噪声或测量误差而生成的高频分量。因此,通过去除频率高于由接触事件引起的测量的扭矩值的波动频率的分量,可以减少检测误差,以提高接触事件检测的准确性。
[0061]
(关节中测量的扭矩值的比率被组合的情况下的检测)
[0062]
再次参考图5,在躯干102的测量的扭矩值(trunk_pitch)超过阈值范围的情况下,如果头部101的测量的扭矩值(head_pitch)与躯干102的测量的扭矩值(trunk_pitch)的比率(head_pitch/trunk_pitch)超过了阈值,则接触事件检测部件530b检测到在头部101上已经发生的接触事件,并且如果比率没有超过阈值,则检测到在躯干102上已经发生的接触事件。由于进行了上述确定,因此可以正确地识别接触事件是发生在头部101中还是发生在躯干102中。
[0063]
如图8所示,位于机器人100底部的腿105和106是与地板表面接触的受约束端,而位于机器人100顶部的头部101是自由端。也就是说,机器人100的壳体包括形成第一部分的腿105和106以及躯干102的下部、由第一部分支撑的作为第二部分的躯干102的上部、以及由第二部分支撑以形成自由端的作为第三部分的头部101。在这种情况下,在由已经发生在
形成自由端的第三部分上的接触事件施加力f的情况下,倾向于在第二部分和第一部分之间的结合处比在第三部分和第二部分之间的关节更明显地观察到测量的扭矩值的波动。更具体地,在头部101上已经发生接触事件的情况下,与联接头部101和躯干102的关节的测量的扭矩值(head_pitch)相比,将更明显地观察到联接躯干102中的两个部分的关节的测量的扭矩值(trunk_pitch)的波动。因此,不容易将上述情况与躯干102的测量的扭矩值(trunk_pitch)由于躯干102上发生的接触事件而波动的情况区分开来。
[0064]
图9a和9b示出了在两种不同情况下的测量的扭矩值(head_pitch,trunk_pitch)和这些测量的扭矩值之间的比率(head_pitch/trunk_pitch)。在这两种情况中的一种情况下,假设由于外部攻击在躯干102上发生了接触事件。在另一种情况下,假设由于外部攻击在头部101上发生了接触事件。如图9a和9b的两个示例中所示,躯干102的测量的扭矩值(trunk_pitch)类似地表现出大的正波动并且超过阈值(阈值范围r的最大值),并且头部101的测量的扭矩值(head_pitch)类似地呈现出小的波动并且不超过阈值。同时,在图9a的示例中,测量的扭矩值之间的比率(head_pitch/trunk_pitch)几乎为零(0),但在图9b的示例中该比率等于或大于0.25。这表明这两种情况之间存在差异。原因是,在图9a的情况下,其中在躯干102上已经发生了接触事件,头部101的测量的扭矩值几乎保持不变,而在图9b的情况中,其中在头部101上已经发生了接触事件,头部101的测量的扭矩值也发生了变化,尽管变化不如在躯干102的情况下观察到的变化大。
[0065]
因此,在由图9a和9b中所示的上述示例所指示的情况下,当针对测量的扭矩值之间的比率(head_pitch/trunk_pitch)设置0.25的阈值时,可以确定在比率超过该阈值的情况下在头部101上发生了接触事件,并且在比率没有超过该阈值的情况下在躯干102上发生了接触事件。应该注意的是,上述比率阈值仅仅是示例。在一些其他情况下,例如,可以通过收集在头部101上发生接触事件时测量的比率的实际测量值和在躯干102上发生接触事件时测量的比率的实际测量值来设置适当的阈值。
[0066]
(角度差值被组合的检测)
[0067]
再次参考图5,在驱动联接躯干102中的两个部分的关节的电动机的测量的扭矩值(trunk_yaw)超过阈值范围并且电动机的角度差值超过阈值范围的情况下,接触事件检测部件530c检测到已经发生在躯干102上的接触事件。如后所述,测量的扭矩值取决于机器人100的姿势而波动相对较大,而角度差值取决于机器人100的姿势而略微波动。因此,可以通过使用角度差值来提高接触事件检测的精度。
[0068]
图10a和10b示出了在两种不同情况下测量的扭矩值和角度差值。在这两种情况中的一种情况下,假设在躯干102上实际上没有发生接触事件。在另一种情况下,假设在躯干102上已经发生了接触事件。如图10a和10b的两个示例所示,测量的扭矩值超过阈值范围。同时,图10a的示例中所示的角度差值没有超过阈值,但是图10b的示例中示出的角度差值超过了阈值。因此,只要在角度差值超过阈值的条件下检测到接触事件,在测量的扭矩值波动(例如,如图10a所示,尽管没有发生接触事件,由于机器人100的姿势的变化)的情况下就可以防止错误检测。
[0069]
(使用时间差的检测)
[0070]
再次参考图5,在驱动肩关节的电动机的测量的扭矩值(left_shoulder_roll,left_shoulder_pitch,right_shoulder_roll,right_shoulder_pitch)之间的时间差超过
阈值范围并且电动机的角度差值超过阈值范围的情况下,接触事件检测部件530d检测到已经发生在相关联的臂103和104上的接触事件。更具体地,接触事件检测部件530d不是使用在一个时间t检测到的扭矩值,而是将阈值范围与时间差(即,在时间t和在时间t-1处测量到的扭矩之间的差)进行比较。关于诸如臂103和104的部分,在正常操作期间检测到的扭矩值的波动量与在发生接触事件时检测到的扭矩值的波动量之差是小的。因此,在简单地将检测到的扭矩值与阈值范围进行比较的情况下,检测精度不太可能增加。同时,在发生接触事件的情况下检测到的扭矩值的每次的波动量大于在正常操作期间检测到的扭矩值的每次的波动量。因此,可以通过使用时间差来适当地进行接触事件检测。应当注意,接触事件检测部件530d除了使用检测到的扭矩值之间的时间差之外,还能够通过使用电动机的角度差值来更准确地实现事件检测,如接触事件检测部件530c的上述示例的情形。然而,不一定需要将检测到的扭矩值之间的时间差与角度差值相结合。
[0071]
在上面描述的图5的示例中,接触事件检测部件530e对由接触事件检测部件530a到520d进行的接触事件检测的结果进行整合。更具体地,在例如已经发生在头部101上的接触事件被接触事件检测部件530a和530b两者检测到的情况下,接触事件检测部件530e可以确定接触事件已经发生在头101上。此外,在所有的接触事件检测部件530a、530b和530c检测到已经发生在躯干102上的接触事件的情况下,接触事件检测部件530e可以确定接触事件已经发生在躯干102上。关于臂103和104,接触事件检测部件530e可以在原样的基础上使用由接触事件检测部件530d做出的确定结果。接触事件检测部件530e可以根据如上所述的各个检测结果的逻辑结合(逻辑与)来确定接触事件的发生。然而,在一些其他示例中,接触事件检测部件530e可以根据各个检测结果的逻辑分离(逻辑或)来确定接触事件的发生。
[0072]
(主动性的确定)
[0073]
在如上所述在机器人100的移动部分上检测到接触事件的情况下,主动性确定部件540可以确定接触事件是主动的。可以基于由信息处理设备110确定的关节的运动模式或者基于在接触事件检测之前和之后测量的关节的扭矩值的波动来识别移动部分。例如,在测量的扭矩值在阈值范围内但在接触事件检测之前和之后比其他关节波动更大的情况下,主动性确定部件540可以将由相关关节联接的部分识别为移动部分。此外,如下所述,主动性确定部件540可以根据接触事件检测时壳体的相关部分之间的位置关系来识别移动部分。
[0074]
图11a和11b是示出在本发明的实施例中确定接触事件主动性的示例的图。在该示例中,主动性确定部件540根据作为臂103和104的端部的手103h和104h与躯干102之间的接触事件发生时的位置关系来识别移动部分。在所描绘的示例中,如图11a所示,在手103h或手104h位于躯干102的前方并且在以联接躯干102和臂103和104的肩关节为基准的预定高度范围(
±
d1)内的情况下,到躯干102的前后距离等于阈值d2,如图11(b)所示,并且与肩关节的直线距离等于或大于阈值r时,将包括满足条件的手103h或104h/手103h和104h的臂103或104/臂103和104识别为移动部分。应当注意,图11a和图11b所示的尺寸适用于所采用的机器人100是小尺寸的情况。基于机器人100的尺寸和形状适当地设置尺寸和尺寸之间的比率。
[0075]
图12是示出本实施例中检测主动接触事件的处理的示意图。在图12所示的示例中,首先,基于驱动臂103和104的肩关节和肘关节的电动机的测量的扭矩值(left_
shoulder_yaw,left_elbow_pitch,right_shoulder_yaw,right_elbow_pitch)来检测接触事件。在这种情况下,可以通过简单地将测量的扭矩值与阈值范围进行比较来检测接触事件,如先前参考图5描述的示例中所指示的,或者通过将测量的扭矩值的分量和时间差与阈值范围进行比较来检测接触事件,该分量的频率等于或小于预定频率,如先前参考例如图5描述的示例中所指示的。此外,还可以基于多个测量的扭矩值之间的比率和角度差值来检测接触事件。
[0076]
在关于上述测量的扭矩值中的任何一个检测到接触事件的情况下(逻辑或),确定出接触事件的主动性。更具体地,例如,从相关关节的测量角度值来计算手103h和104h的位置,以确定在躯干102与手103h、104h之间是否获得了先前参考图12a和12b描述的位置关系。此外,为了防止多次检测到单个接触事件,在单次检测到主动接触事件时设置预定长度的无效期,以避免在无效期到期之前检测到后续的主动接触事件。在检测到接触事件、手103h和104h被定位为满足条件并且无效期已经到期的情况下,主动性确定部件540确定接触事件是主动的。
[0077]
图13是示出由本发明的实施例中的分数计算部件执行的处理的示例的流程图。在所描绘的示例中,分数增加部件550获取分别发生在机器人100a和100b上的接触事件的检测结果(步骤s101),并且获取各个接触事件的主动性的确定结果(步骤s102)。在机器人100a和100b上同步检测到接触事件的情况下(步骤s103中的“是”),同步检测到的接触事件中的任一个是主动的(步骤s104中的“是”),并且另一个接触事件是非主动的(步骤s105中的“是”),分数增加部件550增加机器人100a或机器人100b的分数,无论哪一个涉及主动接触事件的检测(步骤s106)。
[0078]
在除上述情况之外的情况下,即,在机器人100a和100b上未同步检测到接触事件的情况下(步骤s103中的“否”),在同步检测到的接触事件均为非主动的情况(步骤s104中的“否”),以及在同步检测出的接触事件都为主动的情况下,分数增加部件550既不增加机器人100a的分数也不增加机器人100的分数。
[0079]
应该注意的是,在上述示例中,同步检测到的接触事件不一定要同时检测到。同步检测到的接触事件可以包括,例如,在与获取同步检测的一个接触事件的检测结果的时间相差预定长度或更小长度的时间获取的接触事件。可接受的时间差是在考虑例如处理延迟和通信延迟的情况下确定的。分数增加部件550以上述方式增加机器人100a和100b的分数,并根据在预定游戏时间内做出的分数来确定格斗游戏的赢家和输家。可替代地,分数增加部件550可以降低通过上述处理没有检测到主动接触事件的一侧的分数,并且在机器人100a或机器人100b的分数达到上阈值或下阈值时结束游戏。
[0080]
根据指示机器人100a和100b的壳体的各部分的运动状态的变化的测量值,本发明的上述实施例检测在壳体的部分上发生的接触事件。此外,本发明的上述实施例根据与移动部分的关系来确定检测到的接触事件的主动性。此外,本发明的上述实施例根据分别在机器人100a和100b上检测到的接触事件的同步性和主动性来增加机器人100a和100b的分数,并根据所得分数来确定格斗游戏的胜负。应该注意的是,在上述示例中,由驱动壳体的关节的电动机测量的扭矩值被用作指示壳体的各部分的运动状态的测量值。然而,可替代地,通过使用例如加速度传感器获取的一些其他测量值可以用作指示壳体的各部分的运动状态的测量值。此外,接触事件不一定需要在机器人的壳体上检测到。可替代地,可以在能
够主动移动的不同设备上检测接触事件。
[0081]
虽然参照附图详细描述了本发明的优选实施例,但本发明不限于上述优选实施例。本发明所属领域的技术人员将理解,可以在所附权利要求中描述的技术思想的范围内进行各种修改和变化,并且这种修改和变化显然在本发明的技术范围内。
[0082]
[参考标记列表]
[0083]
10:系统
[0084]
100、100a、100b:机器人
[0085]
101、101a、101b:头部
[0086]
102、102a、102b:躯干
[0087]
103、103a、103b、104、104a、104b:臂
[0088]
103h、104h:手
[0089]
105、105a、105b、106、106a、106b:腿
[0090]
105f、106f:脚
[0091]
110:信息处理设备
[0092]
111:cpu
[0093]
113:rom
[0094]
114:外部存储器
[0095]
115:总线接口
[0096]
121:通信接口
[0097]
130:电动机
[0098]
200a、200b:控制器
[0099]
300:确定设备
[0100]
310:信息处理设备
[0101]
311:cpu
[0102]
312:ram
[0103]
313:rom
[0104]
314:外部存储器
[0105]
315:总线接口
[0106]
321:通信接口
[0107]
322:显示器
[0108]
510:测量的扭矩值获取部件
[0109]
520:角度差值获取部件
[0110]
530、530a、530b、530c、530d、530e:接触事件检测部件
[0111]
540:主动性确定部件
[0112]
550:分数增加部件
[0113]
551:接触事件检测结果获取部件
[0114]
552:主动性确定结果获取部件