打法确定装置、打法确定方法、记录介质及回球机器人转让专利

申请号 : CN202110259410.8

文献号 : CN113384858B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘晓俊浅井恭平中山雅宗八濑哲志

申请人 : 欧姆龙株式会社

摘要 :

本发明涉及打法确定装置、打法确定方法、记录介质及回球机器人,可以确定能够将带有旋转的球精度优良地回球到目标到达位置的打法。打法确定装置(30)具备:获取部(31),获取状态信息,状态信息包含飞来的球的位置、速度及旋转速度;以及打法条件确定部(32),基于球的状态信息及用击打工具击回球时的目标到达位置,确定打法条件,打法条件包含向目标到达位置击回球的时间点的击打工具的位置、速度及姿势。

权利要求 :

1.一种打法确定装置,具备:

获取部,获取状态信息,所述状态信息包含飞来的球的位置、速度及旋转速度;以及打法条件确定部,基于所述球的状态信息及用击打工具击回所述球时的目标到达位置,确定打法条件,所述打法条件包含向所述目标到达位置击回所述球的时间点的所述击打工具的位置、速度及姿势,所述打法条件确定部包括:

轨迹预测部,基于所述球的状态信息,计算关于飞来的所述球的预测轨迹的轨迹信息;

设定部,采用所述轨迹信息设定所述球的击打位置,并设定击打后状态信息,所述击打后状态信息包含刚击打之后的所述球的击打后速度及击打后旋转速度,所述设定部设定多个所述击打后速度;

到达位置预测部,基于所述击打后状态信息,计算多个所述击打后速度所对应的多个预测到达位置;

调整部,对所述击打后速度进行调整,以使所述预测到达位置与所述目标到达位置的误差在容许范围内,所述调整部通过从多个所述击打后速度中选择对应的所述误差在容许范围内的一个所述击打后速度来调整所述击打后速度;以及打法条件计算部,计算所述击打工具的速度及姿势,所述击打工具的速度及姿势用于在所述击打位置击打了按照即将击打之前的所述状态信息的所述球时,所述球变为按照所述击打后状态信息。

2.根据权利要求1所述的打法确定装置,其中,

所述设定部进一步设定目标到达时间或目标到达速度,并基于所述目标到达时间或所述目标到达速度设定通过所述调整部进行调整之前的所述击打后速度的初始值,所述目标到达时间是从所述球被击打起直至到达所述目标到达位置为止的时间,所述目标到达速度是即将到达所述目标到达位置之前的所述球的速度。

3.根据权利要求2所述的打法确定装置,其中,

所述设定部在不对具备所述击打工具的回球机器人要求超过击打动作的临界速度的动作速度的范围内设定所述目标到达时间或所述目标到达速度。

4.根据权利要求1所述的打法确定装置,其中,

所述获取部进一步获取所述球实际到达的实际到达位置,

所述调整部基于所述实际到达位置与所述预测到达位置的误差,在下次及其之后的击打中校正调整后的所述击打后速度。

5.根据权利要求1所述的打法确定装置,其中,

所述获取部进一步获取所述球实际到达的实际到达位置,

所述打法条件计算部基于所述实际到达位置与所述预测到达位置的误差,在下次及其之后的击打中校正所计算出的所述打法条件。

6.一种打法确定方法,在所述打法确定方法中,计算机执行以下处理:获取状态信息,所述状态信息包含飞来的球的位置、速度及旋转速度;以及基于所述球的状态信息及用击打工具击回所述球时的目标到达位置,确定打法条件,所述打法条件包含击回所述球的时间点的所述击打工具的位置、速度及姿势,确定所述打法条件包括:基于所述球的状态信息,计算关于飞来的所述球的预测轨迹的轨迹信息;

采用所述轨迹信息设定所述球的击打位置,并设定击打后状态信息,所述击打后状态信息包含刚击打之后的所述球的击打后速度及击打后旋转速度,多个所述击打后速度被设定;

基于所述击打后状态信息,计算多个所述击打后速度所对应的多个预测到达位置;

对所述击打后速度进行调整,以使所述预测到达位置与所述目标到达位置的误差在容许范围内,其中,通过从多个所述击打后速度中选择对应的所述误差在容许范围内的一个所述击打后速度来调整所述击打后速度;以及计算所述击打工具的速度及姿势,所述击打工具的速度及姿势用于在所述击打位置击打了按照即将击打之前的所述状态信息的所述球时,所述球变为按照所述击打后状态信息。

7.一种记录介质,记录有打法确定程序,

所述打法确定程序用于使计算机执行以下处理:

获取状态信息,所述状态信息包含飞来的球的位置、速度及旋转速度;以及基于所述球的状态信息及用击打工具击回所述球时的目标到达位置,确定打法条件,所述打法条件包含击回所述球的时间点的所述击打工具的位置、速度及姿势,确定所述打法条件包括:基于所述球的状态信息,计算关于飞来的所述球的预测轨迹的轨迹信息;

采用所述轨迹信息设定所述球的击打位置,并设定击打后状态信息,所述击打后状态信息包含刚击打之后的所述球的击打后速度及击打后旋转速度,多个所述击打后速度被设定;

基于所述击打后状态信息,计算多个所述击打后速度所对应的多个预测到达位置;

对所述击打后速度进行调整,以使所述预测到达位置与所述目标到达位置的误差在容许范围内,其中,通过从多个所述击打后速度中选择对应的所述误差在容许范围内的一个所述击打后速度来调整所述击打后速度;以及计算所述击打工具的速度及姿势,所述击打工具的速度及姿势用于在所述击打位置击打了按照即将击打之前的所述状态信息的所述球时,所述球变为按照所述击打后状态信息。

8.一种回球机器人,具备:

权利要求1至5中任一项所述的打法确定装置;

击打工具,击回飞来的球;

可动部,用于支承所述击打工具并使所述击打工具进行运动;以及控制装置,控制所述可动部的运动,使得以所述打法确定装置所确定的打法条件击回所述球。

说明书 :

打法确定装置、打法确定方法、记录介质及回球机器人

技术领域

[0001] 公开的技术涉及打法确定装置、打法确定方法、记录有打法确定程序的记录介质以及回球机器人。

背景技术

[0002] 在非专利文献1中记载有如下所述的方法:在确定对飞来的球进行回球的乒乓球机器人的打法时,作为减少处理负荷的对策,使用不将旋转速度作为输入的简易的空气动力学模型。
[0003] 现有技术文献
[0004] 非专利文献
[0005] 非专利文献1:Chunfang LIU、“Racket Control and  Spinning  Ball Measurement for Table Tennis Robot”、2013年3月、名古屋大学、因特网
[0006] 但是,在上述非专利文献1所记载的技术中,由于不考虑旋转速度,所以难以精度优良地预测乒乓球机器人针对带有旋转的球进行回球时的击打前及击打后的球的轨迹。因此,难以确定能够精度优良地回球到目标到达位置的打法。

发明内容

[0007] 公开的技术是鉴于上述的点所做出的技术,其目的在于提供可以确定能够将带有旋转的球精度优良地回球到目标到达位置的打法的打法确定装置、打法确定方法、记录有打法确定程序的记录介质、回球装置以及回球机器人。
[0008] 公开的第一方面为一种打法确定装置,其具备:获取部,获取状态信息,所述状态信息包含飞来的球的位置、速度及旋转速度;以及打法条件确定部,基于所述球的状态信息及用击打工具击回所述球时的目标到达位置,确定打法条件,所述打法条件包含向所述目标到达位置击回所述球的时间点的所述击打工具的位置、速度及姿势。
[0009] 在上述第一方面中,也可以是,所述打法条件确定部构成为包括:轨迹预测部,基于所述球的状态信息,计算关于飞来的所述球的预测轨迹的轨迹信息;设定部,采用所述轨迹信息设定所述球的击打位置,并设定击打后状态信息,所述击打后状态信息包含刚击打之后的所述球的击打后速度及击打后旋转速度;到达位置预测部,基于所述击打后状态信息,计算预测到达位置;调整部,对所述击打后速度进行调整,以使所述预测到达位置与所述目标到达位置的误差在容许范围内;以及打法条件计算部,计算所述击打工具的速度及姿势,所述击打工具的速度及姿势用于在所述击打位置击打了按照即将击打之前的所述状态信息的所述球时,所述球变为按照所述击打后状态信息。
[0010] 在上述第一方面中,也可以是,所述设定部进一步设定目标到达时间或目标到达速度,并基于所述目标到达时间或所述目标到达速度设定通过所述调整部进行调整之前的所述击打后速度的初始值,所述目标到达时间是从所述球被击打起直至到达所述目标到达位置为止的时间,所述目标到达速度是即将到达所述目标到达位置之前的所述球的速度。
[0011] 在上述第一方面中,也可以是,所述设定部在不对具备所述击打工具的回球机器人要求超过击打动作的临界速度的动作速度的范围内设定所述目标到达时间或所述目标到达速度。
[0012] 在上述第一方面中,也可以是,所述调整部采用搜索算法调整所述击打后速度,以使所述误差成为最小。
[0013] 在上述第一方面中,也可以是,所述设定部设定多个所述击打后速度,所述到达位置预测部计算多个所述击打后速度所对应的多个所述预测到达位置,所述调整部通过从多个所述击打后速度中选择对应的所述误差在容许范围内的一个所述击打后速度来调整所述击打后速度。
[0014] 在上述第一方面中,也可以是,所述获取部进一步获取所述球实际到达的实际到达位置,所述调整部基于所述实际到达位置与所述预测到达位置的误差,校正调整后的所述击打后速度。
[0015] 在上述第一方面中,也可以是,所述获取部进一步获取所述球实际到达的实际到达位置,所述打法条件计算部基于所述实际到达位置与所述目标到达位置的误差,在下次及其之后的击打中校正所计算出的所述打法条件。
[0016] 在上述第一方面中,也可以是,所述打法条件确定部构成为是以所述状态信息及所述目标到达位置为输入并以所述打法条件为输出学习得到的学习完毕模型。
[0017] 公开的第二方面是一种打法确定方法,在所述打法确定方法中,计算机执行以下处理:获取状态信息,所述状态信息包含飞来的球的位置、速度及旋转速度;以及基于所述球的状态信息及用击打工具击回所述球时的目标到达位置,确定打法条件,所述打法条件包含击回所述球的时间点的所述击打工具的位置、速度及姿势。
[0018] 公开的第三方面是一种记录有打法确定程序的记录介质,所述打法确定程序用于使计算机执行以下处理:获取状态信息,所述状态信息包含飞来的球的位置、速度及旋转速度;以及基于所述球的状态信息及用击打工具击回所述球时的目标到达位置,确定打法条件,所述打法条件包含击回所述球的时间点的所述击打工具的位置、速度及姿势。
[0019] 公开的第四方面是一种回球机器人,其具备:第一方面所涉及的打法确定装置;击打工具,击回飞来的球;可动部,用于支承所述击打工具并使所述击打工具进行运动;以及控制装置,控制所述可动部的运动,使得以所述打法确定装置所确定的打法条件击回所述球。
[0020] 发明效果
[0021] 根据公开的技术,可以确定能够将带有旋转的球精度优良地回球到目标到达位置的打法。

附图说明

[0022] 图1是回球机器人的外观图。
[0023] 图2是回球机器人的功能框图。
[0024] 图3是示出打法确定装置的硬件构成的框图。
[0025] 图4是示出打法确定处理的流程的流程图。
[0026] 图5是示出球的检测位置及预测位置的一个例子的图。
[0027] 图6是用于说明作用于球的拖曳力、马格纳斯力等的图。
[0028] 图7是用于说明球即将弹跳到乒乓球台之前以及刚弹跳到乒乓球台之后的速度及加速度的图。
[0029] 图8是用于说明球拍的速度及角度的图。
[0030] 附图标记说明
[0031] 10回球机器人;20传感器部;22A、22B、22C相机;24状态信息计算部;30打法确定装置;31获取部;32打法确定部;33轨迹预测部;34设定部;35到达位置预测部;36调整部;37打法条件计算部;40机器人;41可动部;41A、41B、41C机械手臂;42支承部;50控制装置;BL球;RK球拍。

具体实施方式

[0032] 下面,参照附图对公开的技术的实施方式的一个例子进行说明。需要指出,在各图中,对相同或等同的构成要素及部分标注了相同的参考标记。此外,为了便于说明,有时会夸大附图的尺寸比例,有时会与实际的比例不同。
[0033] 图1示出了回球机器人10的外观图。此外,在图2中,示出了回球机器人10的框图。回球机器人10是用击打工具将飞来的球击回的机器人。在本实施方式中,对回球机器人10是乒乓球机器人的情况进行说明。即、回球机器人10是用作为击打工具的球拍RK将未图示的用户击打的乒乓球的球BL在乒乓球台TB上弹跳后飞来的球BL击回的乒乓球机器人。
[0034] 如图1、2所示,回球机器人10具备传感器部20、打法确定装置30、机器人40以及控制装置50。
[0035] 传感器部20检测包含飞来的球BL的位置、速度以及旋转速度的状态信息。在本实施方式中,如图1、2所示,传感器部20包括三个相机22A、22B、22C以及状态信息计算部24。需要指出,在本实施方式中,对旋转速度例如为角速度(rad/s)的情况进行说明。
[0036] 相机22A、22B设置于能够从各自不同的角度拍摄在乒乓球台TB上往来的球BL的位置,以预定的帧速率进行拍摄。相机22A、22B作为所谓的立体相机而发挥功能。
[0037] 相机22C设置于能够拍摄未图示的用户所持的球拍的位置。
[0038] 状态信息计算部24基于相机22A、22B所拍摄到的球BL的拍摄图像计算球BL的位置及速度。即、状态信息计算部24针对从不同的角度拍摄到的两个拍摄图像分别进行例如特征提取处理等公知的图像处理,从而对每个拍摄图像检测球BL的二维位置。然后,基于两个拍摄图像中的球BL的二维位置,通过所谓的立体法计算球BL的三维位置。此外,状态信息计算部24基于最新的球BL的三维位置以及过去计算出的球BL的三维位置,计算球BL的移动距离及移动时间,并基于计算出的移动距离及移动时间,计算球BL的速度。这里,球BL的速度是矢量,具有彼此正交的X轴、Y轴以及Z轴的各轴方向的分量。
[0039] 此外,状态信息计算部24基于球BL的位置及速度,计算作为球BL的矢量的旋转速度(在本实施方式中为角速度)。
[0040] 状态信息计算部24例如基于球BL的拍摄图像提取球BL的特征部分,计算所提取的特征部分的移动速度,并基于计算出的移动速度计算球BL的旋转速度。提取的特征部分可以是预先印刷于球BL的局部上的标记,也可以是为了用于提取特征部分而新赋予球BL的标记。
[0041] 需要指出,也可以假设球BL的旋转速度为0(无旋转),计算通过后述的球BL的轨迹预测处理所预测出的球BL的轨迹与实际检测到的球BL的轨迹的差分,基于计算出的差分来预测球BL的旋转速度。
[0042] 如图2所示,打法确定装置30功能性地包括获取部31及打法确定部32。
[0043] 获取部31从传感器部20获取包含飞来的球BL的位置、速度以及旋转速度的状态信息。
[0044] 打法确定部32基于获取部31获取到的球BL的状态信息以及用球拍RK击回球BL时的目标到达位置,确定包含向目标到达位置击回球BL的时间点的球拍RK的位置、速度以及姿势的打法条件。
[0045] 如图2所示,具体而言,打法确定部32包括轨迹预测部33、设定部34、到达位置预测部35、调整部36以及打法条件计算部37。
[0046] 轨迹预测部33基于球BL的状态信息,计算关于球BL的预测轨迹的轨迹信息。
[0047] 设定部34采用轨迹预测部33所计算出的球BL的轨迹信息来设定球BL的击打位置,并设定包含刚击打之后的球BL的击打后速度及击打后旋转速度的击打后状态信息。
[0048] 到达位置预测部35基于设定部34所设定的击打后状态信息,计算预测到达位置。
[0049] 调整部36对设定部34所设定的击打后速度进行调整,以使到达位置预测部35所计算出的预测到达位置与目标到达位置的误差在容许范围内。需要指出,调整部36也可以采用搜索算法调整击打后速度,以使到达位置预测部35所计算出的预测到达位置与目标到达位置的误差成为最小。作为搜索算法,例如可以列举出最陡下降法、最小二乘法、爬山法以及极值附近搜索法,但并不限定于此。
[0050] 打法条件计算部37计算球拍RK的速度及姿势,该球拍RK的速度及姿势用于在所设定的击打位置击打了按照即将击打之前的状态信息的球BL时,球BL变为按照所设定的击打后状态信息。即将击打之前的状态信息可以是基于获取部31所获取的状态信息通过轨迹预测部33计算出的即将击打之前的球BL的位置、速度以及旋转速度。
[0051] 此外,设定部34也可以进一步设定从球BL被击打起直至到达目标到达位置为止的时间即目标到达时间或即将到达目标到达位置之前的球BL的速度即目标到达速度,并基于目标到达时间或目标到达速度设定通过调整部36进行调整之前的击打后速度的初始值。
[0052] 此外,设定部34也可以设定多个击打后速度,到达位置预测部35计算多个击打后速度所对应的多个预测到达位置,调整部36通过从多个击打后速度中选择对应的误差在容许范围内的一个击打后速度来调整击打后速度。此外,设定部34也可以在不对具备球拍RK的回球机器人10要求超过击打动作的临界速度的动作速度的范围内设定目标到达时间或目标到达速度。
[0053] 此外,获取部31也可以进一步获取球BL实际到达的实际到达位置,调整部36基于实际到达位置与预测到达位置的误差,在下次及其之后的击打中校正调整后的击打后速度。
[0054] 此外,获取部31也可以进一步获取球BL实际到达的实际到达位置,打法条件计算部37基于实际到达位置与预测到达位置的误差,在下次及其之后的击打中校正所计算出的打法条件。
[0055] 机器人40具备用于支承球拍RK并使其运动的可动部41。如图1所示,在本实施方式中,可动部41例如包括三条机械手臂41A、41B、41C以及球拍RK的支承部42。即、机器人40是所谓的并联连杆机器人,其是通过并列地控制机械手臂41A、41B、41C来对机械手臂41A、41B、41C的前端的支承部42所支承的球拍RK的举动进行控制的机器人。支承部42具备用于变更球拍RK的姿势的驱动机构。需要指出,机器人40并不限定于并联连杆机器人,也可以是其它类型的机器人。
[0056] 控制装置50控制可动部41的运动,使得以打法确定装置30所确定的打法条件将球BL击回。
[0057] 接下来,是示出打法确定装置30的硬件构成的框图。
[0058] 如图3所示,打法确定装置30具有CPU(Central Processing Unit:中央处理单元)30A、ROM(Read Only Memory:只读存储器)30B、RAM(Random Access Memory:随机存取存储器)30C、存储装置30D、输入部30E、监视器30F、光盘驱动装置30G及通信接口30H。各构成通过总线30I以能够相互通信的方式而连接。
[0059] 在本实施方式中,在ROM30B或存储装置30D中保存有打法确定程序。CPU30A为中央运算处理单元,执行各种程序,或者控制各构成。即、CPU30A从ROM30B或存储装置30D中读出程序,并将RAM30C作为工作区来执行程序。CPU30A按照记录于ROM30B或存储装置30D的程序,进行上述各构成的控制及各种运算处理。
[0060] ROM30B保存各种程序及各种数据。RAM30C作为工作区临时地存储程序或数据。存储装置30D由HDD(Hard Disk Drive:硬盘驱动器)或SSD(Solid State Drive:固态硬盘)构成,保存包含操作系统的各种程序以及各种数据。
[0061] 输入部30E包括键盘30E1以及鼠标30E2等指示设备,用于进行各种输入。监视器30F例如是液晶显示器,显示工件W的吸附成功与否等各种信息。监视器30F也可以采用触摸面板方式来作为输入部30E而发挥功能。光盘驱动装置30G进行存储于各种记录介质(CD‑ROM或蓝光光盘等)的数据的读入、对记录介质写入数据、等等。
[0062] 通信接口30H是用于和其它设备进行通信的接口,例如采用以太网(注册商标)、FDDI或Wi‑Fi(注册商标)等标准。
[0063] 图2所示的打法确定装置30的各功能构成通过CPU30A读出存储于ROM30B或存储装置30D的打法确定程序并在RAM30C中展开并执行而实现。
[0064] 接下来,对打法确定装置30的作用进行说明。
[0065] 图4是示出打法确定装置30所进行的打法确定处理的流程的流程图。当用户操作输入部30E并指示执行打法确定处理时,通过CPU30A从ROM30B或存储装置30D读出打法确定程序,并在RAM30C中展开并执行,从而来执行打法确定处理。反复执行图4所示的打法确定处理直至被指示结束处理。
[0066] 需要指出,当执行图4所示的打法确定处理时,在传感器部20中,开始相机22A、22B的拍摄,并按照时间序列依次向打法确定装置30输出状态信息计算部24所计算出的球BL的状态信息。
[0067] 在步骤S100中,CPU30A作为获取部31按照时间序列依次从传感器部20获取包含飞来的球BL的位置、速度以及旋转速度的状态信息。
[0068] 在步骤S102中,CPU30A作为轨迹预测部33基于在步骤S100中获取到的球BL的状态信息预测与到球BL在乒乓球台TB上弹跳为止的预测轨迹相关的轨迹信息。这里,与预测轨迹相关的轨迹信息是按照时间序列表示根据到当前为止按照时间序列所检测到的状态信息而预测的球BL的位置、速度以及旋转速度的信息。在图5中示出了通过传感器部20所检测到的球BL的检测位置及通过轨迹预测部33所预测出的球BL的预测位置的一个例子。如图5所示,在本实施方式中,将乒乓球台TB的Z坐标设为0。因此,球BL是否在乒乓球台TB上弹跳可以通过球BL的X坐标及Y坐标是否在乒乓球台TB的X坐标及Y坐标的范围内且Z坐标是否为0来进行判定。
[0069] 具体而言,球BL的预测轨迹的轨迹信息是通过将在步骤S100中获取到的球BL的位置、速度及旋转速度输入到表示空气动力学的下式中并使时间演变而获得的。
[0070]
[0071] 这里,p(t)是球BL的位置。此外, 是对p(t)进行一次微分后的速度。此外,是对p(t)进行二次微分后的加速度。此外,ω是球BL的旋转速度。此外,g是重力加2 2
速度,为9.8m/s。此外,Sb是球BL的截面积,将球BL的半径设为r,为πr。此外,Vb是球BL的体
3 ‑3
积,为(4/3)×πr。此外,m是球BL的质量,例如为2.7×10 kg。此外,ρ是空气密度,例如为
3
1.184kg/m (25℃)。此外,CD(t)是拖曳(Drag)系数,例如为0.5,CM(t)是马格纳斯(Magnus)系数,例如为0.2。
[0072] 在图6中示出了拖曳(Drag)力、马格纳斯(Magnus)力、速度p(t)以及球BL的旋转轴的关系。
[0073] 在步骤S104中,CPU30A作为轨迹预测部33基于在步骤S102中预测出的球BL的预测轨迹的轨迹信息预测球BL刚在乒乓球台TB上弹跳之后的速度及旋转速度。具体而言,如图7所示,将球BL即将在乒乓球台TB上弹跳之前的速度v0、旋转速度ω0输入到由下式表示的球台弹跳模型,计算球BL刚在乒乓球台TB上弹跳之后的速度v1及旋转速度ω1。
[0074] v1=Avv v0+Avωω0
[0075] ω1=Aωv v0+Aωωω0…(2)
[0076] 其中,Avv、Avω、Aωv、Aωω由下式表示。
[0077]
[0078]
[0079]
[0080]
[0081] 这里,α是依赖于乒乓球台TB与球BL的摩擦系数的参数,是预先设定的。此外,η是乒乓球台TB与球BL的回弹系数,是预先设定的。
[0082] 此外,也可以采用以下式所示的球台弹跳模型。
[0083]
[0084]
[0085] 这里,β是球BL即将在乒乓球台TB上弹跳之前的球BL与乒乓球台TB所成的角度。需要指出,也可以采用上述说明之外的球台弹跳模型。
[0086] 在步骤S106中,CPU30A作为轨迹预测部33计算球BL在乒乓球台TB上弹跳之后的预测轨迹的轨迹信息。即、通过将在步骤S104中计算出的刚在乒乓球台TB上弹跳之后的球BL的速度v1及旋转速度ω1输入表示空气动力学的上述式(1)中并使时间演变,从而来计算在乒乓球台TB上弹跳之后的球BL的预测轨迹的轨迹信息。
[0087] 在步骤S108中,CPU30A作为设定部34基于在步骤S102、S106中获取到的球BL的预测轨迹的轨迹信息设定击回球BL的时间点的球拍RK的位置(击打位置)。具体而言,将在球BL在乒乓球台TB上弹跳之后的轨迹上球BL的高度达到最高的位置、能够用球拍RK将球BL回球的高度的范围中最低的位置、球BL在Z轴方向(高度方向)的速度最慢的位置以及在机器人40的可动范围内回球精度达到一定值以上的位置中的任一位置设为将球BL击回到目标到达位置时的击打位置。需要指出,在机器人40的可动范围内回球精度达到一定值以上的位置例如是预先通过实验等求得在机器人40的可动范围内回球精度达到一定值以上的范围并从该范围内进行设定的。
[0088] 在步骤S110中,CPU30A作为设定部34设定用球拍RK将球BL回球时的目标到达位置、从球拍RK击打球BL起直至到达目标到达位置为止的目标到达时间。也可以设定球BL在目标到达位置上的目标到达速度来取代目标到达时间。
[0089] 目标到达位置可以是球BL着落于乒乓球台TB上的着落位置,也可以是像乒乓球台TB的网上方那样的乒乓球台TB的上空的位置。当将目标到达位置设为上空的位置时,也可以在网上方的有限的范围内进行设定,以使球BL着落于乒乓球台TB上。
[0090] 目标到达位置例如可以预先设定,也可以使用户预先指定。此外,目标到达位置可以精准(pinpoint)地指定,也可以用范围进行指定。在用范围进行指定的情况下,例如也可以将用户侧的乒乓球台TB的表面或乒乓球台TB的网上方的XZ平面的空间分割为m×n个区域,指定赋予每个区域的编号。在用范围指定了目标到达位置的情况下,在计算上例如也可以视为所指定的范围的中心位置被指定为目标到达位置。此外,目标到达位置可以是固定的,也可以对应于每次对打而随机变化。
[0091] 目标到达时间或目标到达速度例如可以基于在步骤S108中设定的击打位置与目标到达位置的距离采用预定的关系式或表数据来求得,也可以使用户预先指定。
[0092] 在步骤S112中,CPU30A作为设定部34设定在步骤S108中设定的击打位置击回球BL的时间点、即刚击打之后的球BL的速度。将所设定的速度设为搜索击打后速度时的初始值。
[0093] 设定的击打后速度的初始值也可以根据在步骤S110中所设定的目标到达时间或目标到达速度来计算。具体而言,通过将球BL的击打位置的坐标值p1(px1、py1、pz1)、目标到达位置的坐标值p2(px2、py2、pz2)、球BL在击打位置p1上的时刻t1、球BL在目标到达位置p2上的时刻t2输入表示简单空气动力学的下式,从而来计算球拍RK刚击打球BL之后的速度v1(vx1、vy1、vz1)。需要指出,时刻t2是通过将目标到达时间与时刻t1相加而得到的。
[0094]
[0095] 这里,D是关于拖曳力的项,由下式表示。此外,sgn()是符号函数。
[0096]
[0097] 这里,Sb、m、ρ、CD(t)如下所示。
[0098]
[0099] m=2.7×10‑3kg
[0100] ρ=1.184kg/m3(25℃)
[0101] cD(t)=0.5
[0102] 在步骤S114中,CPU30A作为到达位置预测部35计算在步骤S108中所确定的击打位置以在步骤S112中所设定的击打后速度击回球BL时的球BL的预测到达位置。
[0103] 具体而言,通过将在步骤S112中所设定的球BL的击打后速度及击打后旋转速度输入表示前述的空气动力学的上述式(1)并使时间演变,从而来预测球BL的轨迹信息。需要指出,输入上述式(1)中的球BL的击打后旋转速度例如以用球拍RK即将击打球BL之前的旋转速度为基准被设定为一定的范围内的值。接下来,基于所预测的轨迹信息,指定球BL的预测到达位置。
[0104] 在步骤S116中,CPU30A作为调整部36判定在步骤S114中所预测出的预测到达位置与目标到达位置的误差是否在预定的容许范围内。即、判定在步骤S114中计算出的预测到达位置与目标到达位置的误差是否为预定的阈值以下。需要指出,在用范围指定了目标到达位置的情况下,也可以当预测到达位置处于目标到达位置的范围内时判定为误差在容许范围内。
[0105] 然后,在预测到达位置在容许范围外的情况下,进入步骤S118,在预测到达位置在容许范围内的情况下,进入步骤S120。
[0106] 在步骤S118中,CPU30A作为调整部36以使预测到达位置接近目标到达位置的方式对刚被球拍RK击打之后的球BL的速度v1进行调整,并返回步骤S114。在由步骤S114、步骤S116、步骤S118构成的循环中进行的击打后速度v1的搜索例如可以采用最陡下降法、最小二乘法、爬山法以及极值附近搜索法中的任一种搜索算法。
[0107] 例如,将目标到达位置设为pA、将到达位置设为pB,如下式这样定义评价函数E(v),求得E(v)为最小的速度v。
[0108] E(v)=|pA‑PB|…(11)
[0109] 其中,E(v)为非线性且不能代数微分,因此,例如通过对以下式表示的最陡下降法进行数值求解,从而求得E(v)为最小的速度v。
[0110]
[0111]
[0112] dvx=[dvx 0 0]…(14)
[0113] dvy=[0 dvy 0]…(15)
[0114] dvZ=[0 0 dvZ]…(16)
[0115] dvx,dvy,dvZ=0.1…(17)
[0116] 这里,ρ(n)为学习率,以下式表示。
[0117] ρ(n)=exp(‑a*n)+0.1…(18)
[0118]
[0119] 其中,例如a设定为n=10、ρ=0.5。
[0120] 在步骤S120中,CPU30A作为打法条件计算部37通过计算击回球BL的时间点的球拍RK的速度及姿势来确定打法条件。
[0121] 具体而言,通过向表示球拍弹跳模型的下述式(18)基于球BL的轨迹信息输入球拍RK即将击打球BL之前的球BL的速度v0和旋转速度ω0以及球拍RK刚击打球BL之后的球BL的速度v1和旋转速度ω1,从而来计算球拍RK的速度V。此外,通过下述式(21)、(22),计算表示球拍RK的姿势的角度α、β。
[0122] 图8中示出了球拍RK即将击打球BL之前以及刚击打球BL之后的情形的一个例子。如图8所示,角度α是将球拍RK的面设为z’轴‑y’轴平面时以z’轴为旋转轴的球拍RK的旋转角,角度β是以y’轴为旋转轴的旋转角。
[0123] V=v0+RR(I‑Avv)‑1(RRT(v1‑v0)‑AvωRRTω0)…(20)
[0124]
[0125]
[0126] 这里,RR是关于角度α、β的旋转矩阵,以下式表示。
[0127]
[0128] 此外,I是单位矩阵,以下式表示。
[0129]
[0130] 此外,ξ、η、a、b、c是中间变量,以下式表示。
[0131]
[0132] η=ω1‑ω0…(26)
[0133] a=ξx2+ξy2+ξz2…(27)
[0134] b=ηx*ξy‑ηy*ξx…(28)
[0135] c=ηx2+ηy2‑ξz2…(29)
[0136] 这里,kω是针对旋转的摩擦系数,kv是针对速度的摩擦系数。
[0137] 在步骤S122中,向控制装置50输出在步骤S120中所确定的球拍RK的速度V、球拍RK的角度α、β。控制装置50对可动部41进行控制,以使球拍RK以速度V、角度α、β击回球BL。由此,球BL被击回到目标到达位置附近。
[0138] 这样,在本实施方式中,不仅获取球BL的位置及速度,而且还获取旋转速度,考虑所获取的旋转速度来确定球拍RK的打法。因此,可以确定能够将带有旋转的球精度优良地回球到目标到达位置的打法。
[0139] (变形例1)
[0140] 接下来,对本实施方式的变形例1进行说明。
[0141] 在图4的步骤S120中计算出的球拍RK的速度V有时也可能超过回球机器人10的击打动作的临界速度。在这种情况下,也可以对在步骤S110中设定的目标到达时间进行调整,即、延长到达时间,来执行步骤S110~S120的处理。由此,在机器人40的临界速度范围内以使预测到达位置与目标到达位置的误差在容许范围内的方式来确定打法条件。
[0142] (变形例2)
[0143] 接下来,对本实施方式的变形例2进行说明。
[0144] 也可以将在图4的步骤S110中设定的目标到达时间作为基准,设定多个目标到达时间,按多个目标到达时间中的每一个来执行步骤S112~S120的处理。例如将在步骤S110中设定的目标到达时间设为TA时,如T、T+Δt、T+2Δt、T+3Δt、……T+nΔt那样设定n个目标到达时间。在这种情况下,在步骤S112中,将与目标到达时间T对应的速度设为V,如V、V+Δv、V+2Δv、V+3ΔV、……V+nΔv那样设定n个速度。
[0145] 然后,在步骤S114中,针对多个速度各自计算预测到达位置。需要指出,也可以并列执行步骤S114的处理。在步骤S116中,如果在步骤S114中计算出的多个预测到达位置中的至少一个在容许范围内,则进入步骤S120。在这种情况下,在步骤S120中,选择容许范围内的预测到达位置中的一个预测到达位置。例如,选择容许范围内的预测到达位置中最接近目标到达位置的预测到达位置。然后,基于与所选择的预测到达位置对应的、刚击打了球BL之后的速度,计算球拍RK的速度及姿势。需要指出,也可以选择容许范围内的预测到达位置中预测到达时间最短的预测到达位置,还可以选择容许范围内的预测到达位置中预测到达时间最长的预测到达位置。
[0146] 另一方面,当多个预测到达位置全部在容许范围外时,进入步骤S118。在这种情况下,关于多个预测到达位置中的各个预测到达位置,调整球BL刚被球拍RK击打之后的速度。
[0147] 由此,以使多个预测到达位置与目标到达位置的各误差中的至少一个误差在容许范围内的方式确定打法条件。
[0148] (变形例3)
[0149] 接下来,对本实施方式的变形例3进行说明。
[0150] 也可以在图4的步骤S122中输出球拍RK的速度、球拍的角度α、β之后,通过传感器部20检测球BL实际到达的实际到达位置,并获取所检测到的实际到达位置,进而基于实际到达位置与预测到达位置的误差,在下次及其之后的击打中,调整部36对调整后的击打后速度进行校正。即便是每次击打目标到达位置都不同,也会存在实际到达位置与预测到达位置的误差以相同方式产生的趋势,因此,通过在下次及其之后的击打中以使误差变小的方式校正击打后速度,从而可以提高到达目标到达位置的到达精度。如果每次击打都重复进行实际到达位置与预测到达位置的误差的测定以及基于其的击打后速度的校正,则可以逐渐地提高到达精度。需要指出,也可以根据目标到达位置、击打后速度的大小改变校正量。此外,校正量也可以通过机器学习来求得。
[0151] 也可以是打法条件计算部37校正球拍RK的打法条件、即球拍RK的位置、速度以及姿势中的至少任一者来取代校正击打后速度。这样一来,也可以提高到达目标到达位置的到达精度。
[0152] (变形例4)
[0153] 接下来,对变形例4进行说明。
[0154] 在本实施方式中,对打法确定部32采用空气动力学、球台弹跳模型等来预测球BL的轨迹并确定打法的情况进行了说明,但也可以采用学习完毕模型来确定打法条件。
[0155] 例如,将打法确定部32构成为包括学习完毕模型,该学习完毕模型是以获取部31获取到的球BL的状态信息及目标到达位置为输入并以打法条件、即用球拍RK击回球BL的时间点的位置、速度V、角度α、β为输出学习得到的模型。由此,可以省略采用空气动力学、球台弹跳模型等的计算。
[0156] 需要指出,在本实施方式中,对作为控制装置50的控制对象的机器人40为真机的情况进行了说明,但控制装置50的控制对象也可以是模拟地进行动作的机器人。
[0157] 此外,在本实施方式中,对回球机器人10是乒乓球机器人的情况进行了说明,但并不限定于此。例如,回球机器人10可应用于击回网球的网球机器人、以棒球棒击回棒球的球的棒球机器人等使用球的运动或游戏。在棒球机器人的情况下,例如可以用于建议针对用户投出的球采用什么样的打法可以击回到目标到达位置的用途。此外,球拍等击打工具并不限定于被支承部42支承的情况。例如,机械手臂的前端的形状也可以形成为击打工具的形状。
[0158] 此外,在上述各实施方式中,也可以由CPU之外的各种处理器执行CPU读入软件(程序)并执行的打法确定处理。作为这种情况下的处理器,可举例示出FPGA(Field‑Programmable Gate Array:现场可编程门阵列)等在制造后能够变更电路构成的PLD(Programmable Logic Device:可编程逻辑器件)、以及ASIC(Application Specific Integrated Circuit:专用集成电路)等具有为了执行特定的处理而专门设计的电路构成的作为处理器的专用电路等。此外,可以通过这些各种处理器中的一种来执行打法确定处理,也可以通过同种或不同种的两种以上的处理器的组合(例如多个FPGA以及CPU和FPGA的组合等)来执行打法确定处理。此外,更具体而言,这些各种处理器的硬件结构是组合了半导体元件等电路元件的电路。
[0159] 此外,在上述各实施方式中,对打法确定程序预先存储(安装)于存储装置30D或ROM30B的方式进行了说明,但并不限定于此。程序也可以以记录于CD‑ROM(Compact Disk Read Only Memory:光盘只读存储器)、DVD‑ROM(Digital Versatile Disk Read Only Memory:高密度只读光盘)以及USB(Universal Serial Bus:通用串行总线)存储器等记录介质的形态提供。此外,程序也可以是通过网络从外部装置下载的形态。