乒乓球机器人的深度强化学习旋转速度预测方法及系统与流程

文档序号:19157322发布日期:2019-11-16 00:59阅读:386来源:国知局
乒乓球机器人的深度强化学习旋转速度预测方法及系统与流程

本申请属于乒乓球机器人技术领域,具体涉及一种乒乓球机器人的深度强化学习旋转速度预测方法及系统。



背景技术:

乒乓球机器人是指能够将本方半球台反弹之后的乒乓球击打到对方半球台的自动化装置,它能够实现乒乓球多回合的对打竞技,可以广泛地应用于专业运动员的训练和业余爱好者的互动。

现阶段,国内外不少研究机构已经实现了乒乓球机器人击球的目标,然而,乒乓球机器人仍然普遍存在对转速较快的旋转球不能准确回球的不足。现有关于乒乓球机器人的击球运动控制很少考虑乒乓球的旋转速度,乒乓球机器人更多的是直接利用无旋转的模型进行回球,这使得乒乓球机器人难以对转速较快的旋转球进行准确回球。

现有对乒乓球旋转速度的预测方法,通过复杂的辅助系统(如云台加高速相机)捕捉乒乓球的局部特征(如商标),进而计算得到乒乓球的旋转速度。这类依赖辅助的云台系统较为复杂,对相机的帧率要求很高,且在局部特征不能被相机采集时(如商标在乒乓球背面)不能有效做出旋转速度估计。



技术实现要素:

为至少在一定程度上克服相关技术中存在的问题,本申请提供了一种乒乓球机器人的深度强化学习旋转速度预测方法及系统。

根据本申请实施例的第一方面,本申请提供了一种乒乓球机器人的深度强化学习旋转速度预测方法,用于对乒乓球的入射旋转速度进行深度强化学习预测,其包括以下步骤:

将等时间间隔的乒乓球来球位置序列归一化,得到归一化序列;

将归一化序列输入到深度lstm网络中,得到lstm的状态向量;

将lstm的状态向量输入到入射旋转估计深度神经网络中,得到入射旋转速度;

采集机器人根据乒乓球入射旋转速度完成击球动作后的乒乓球实际回球落点空间位置和乒乓球实际回球过网高度,并根据采集到的乒乓球实际回球落点空间位置和乒乓球实际回球过网高度,以及预设的回球落点空间位置和预设的过网高度,计算得到深度强化学习的奖励反馈;

将当前次击球过程的乒乓球来球位置序列、乒乓球入射旋转速度和奖励反馈组合成一次击球记忆,存入记忆库中;

每次击球完成后,从记忆库中随机选取至少一条记忆,将lstm的状态向量和乒乓球入射旋转速度输入到奖励反馈估计深度神经网络中,输出奖励反馈估计,并对入射旋转估计深度神经网络和奖励反馈估计深度神经网络进行反向传播和参数更新。

上述乒乓球机器人的深度强化学习旋转速度预测方法中,所述将等时间间隔的乒乓球来球位置序列归一化的过程为:

pin_normed[n]=-1+2*(pin[n]-pmin)/(pmax-pmin),

式中,pin_normed[n]表示归一化序列,pin[n]表示n点乒乓球来球位置序列,pmin表示乒乓球在x、y和z轴三个方向上位置最小值的向量,pmax表示乒乓球在x、y和z轴三个方向上位置最大值的向量。

上述乒乓球机器人的深度强化学习旋转速度预测方法中,所述入射旋转估计深度神经网络包括m层,具体为:

m层入射旋转估计深度神经网络的最后一层不使用激活函数,其余层使用relu函数作为激活函数;

式中,weighti和biasi均为第i+1层网络参数,layer(i)为第i+1层网络输出,win为入射旋转估计深度神经网络输出的乒乓球入射旋转速度。

上述乒乓球机器人的深度强化学习旋转速度预测方法中,所述深度强化学习的奖励反馈为:

式中,distance_loss表示实际回球落点空间位置的偏差损失,height_loss表示过网高度的偏差损失。

进一步地,所述实际回球落点空间位置的偏差损失distance_loss通过下式计算得到:

系数a0,a1,a2,b1,b2以及取值范围的边界c1,c2满足以下约束:

进一步地,所述过网高度的偏差损失height_loss通过下式计算得到:

系数d0,d1,d2,e1,e2以及取值范围的边界f1,f2满足以下约束:

上述乒乓球机器人的深度强化学习旋转速度预测方法中,所述奖励反馈估计深度神经网络包括k层,具体为:

k层奖励反馈估计深度神经网络的最后一层不使用激活函数,其余层使用relu函数作为激活函数;

式中,weight2s、weight2w和bias20均为第1层网络参数,weight2j和bias2j为第j+1层网络参数,layer(j)为第j+1层网络输出。

上述乒乓球机器人的深度强化学习旋转速度预测方法中,所述入射旋转估计深度神经网络的反向传播和参数更新的目标函数为:最小化-r_predict,minimize:-r_predict(θ1),θ1表示m层入射旋转估计深度神经网络的所有网络参数;

所述奖励反馈估计深度神经网络的反向传播和参数更新的目标函数为:最小化r_predict和r的均方误差,

minimize:mse(r_predict-r)(θ2),

θ2表示k层奖励反馈估计深度神经网络的所有网络参数。

进一步地,所述网络参数θ1和θ2使用软更新方式进行更新,具体为:

式中,θ1'表示网络参数θ1的目标值,θ2'表示网络参数θ2的目标值,τ表示软更新参数。

根据本申请实施例的第二方面,本申请还提供了一种乒乓球机器人的深度强化学习旋转速度预测系统,其包括:

归一化模块,用于将等时间间隔的乒乓球来球位置序列归一化,得到归一化序列;

lstm网络,用于根据获取的归一化序列得到状态向量;

入射旋转估计深度神经网络,用于根据获取的状态向量得到入射旋转速度;

奖励反馈计算模块,用于根据采集到的乒乓球实际回球落点空间位置和乒乓球实际回球过网高度,以及预设的回球落点空间位置和预设的过网高度计算得到深度强化学习的奖励反馈;

记忆库,用于存储至少一次击球记忆,其中,一次击球记忆包括前次击球过程的乒乓球来球位置序列、乒乓球入射旋转速度和奖励反馈;

奖励反馈估计深度神经网络,用于根据从记忆库中随机选取的至少一条记忆中的状态向量和乒乓球入射旋转速度得到奖励反馈估计;

网络参数更新模块,利用从记忆库中随机选取的至少一条记忆对入射旋转估计深度神经网络的网络参数和奖励反馈估计深度神经网络的网络参数进行更新。

根据本申请实施例的第三方面,本申请还提供了一种乒乓球机器人,其包括:

视觉预测模块,通过采集若干乒乓球的轨迹点,预测乒乓球的飞行轨迹,并获取乒乓球进入机器人作业空间后的最佳击球点的位置、入射速度、入射旋转速度和剩余时间;其中,入射旋转速度采用上述任一项所述的乒乓球机器人的深度强化学习旋转速度预测方法得到;

落点控制模块,用于根据预设的击打之后乒乓球在对方半球台的落点空间位置和飞行时间,计算得到击打之后乒乓球的反射速度和反射旋转速度;

击球状态计算模块,利用乒乓球与球拍的碰撞模型,根据乒乓球在击球点位置处的入射速度、反射速度、入射旋转速度和反射旋转速度,计算得到球拍的速度和姿态;

运动规划模块,用于驱动机器人末端球拍以计算得到的速度和姿态在剩余时间完成击球动作。

根据本申请的上述具体实施方式可知,至少具有以下有益效果:本申请采用深度强化学习,利用乒乓球的空间轨迹位置对乒乓球的入射旋转速度进行预测,无需引入复杂的辅助系统去识别可能被遮挡的局部特征,使乒乓球机器人应对旋转球时能够准确回球。

本申请将归一化后的乒乓球来球位置序列输入到深度lstm网络中,得到lstm的状态向量,用来表征深度强化学习的状态空间,系统简单可靠,且不存在局部特征在视野盲区的问题,鲁棒性更强。

利用回球落点空间位置与过网高度和预设值的偏差设计深度强化学习的奖励反馈,通过巧妙地设计奖励反馈函数,使得机器人回球与预设值偏差越大时,奖励反馈下降的越快,从而使深度强化学习网络能更有效地收敛。

本申请巧妙地设计了奖励反馈估计深度神经网络和入射旋转估计深度神经网络,将无法得到真实值的入射旋转速度估计问题转换为奖励反馈的估计问题和最大化奖励反馈估计的问题,利用旋转速度引起的空间轨迹位置差异来训练模型,避免了辅助系统对局部特征的采集,使系统更简单可靠;利用记忆库存储过往的数据序列,参数更新时在记忆库中随机采样,打乱了数据序列的相关性,使深度神经网络更容易收敛;利用软更新的方式更新网络参数,使网络训练过程更加稳定,收敛更有保障。

应了解的是,上述一般描述及以下具体实施方式仅为示例性及阐释性的,其并不能限制本申请所欲主张的范围。

附图说明

下面的所附附图是本申请的说明书的一部分,其示出了本申请的实施例,所附附图与说明书的描述一起用来说明本申请的原理。

图1为本申请具体实施方式提供的一种乒乓球机器人的深度强化学习旋转速度预测方法的流程图。

图2为本申请具体实施方式提供的一种乒乓球机器人的控制原理图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚明白,下面将以附图及详细叙述清楚说明本申请所揭示内容的精神,任何所属技术领域技术人员在了解本申请内容的实施例后,当可由本申请内容所教示的技术,加以改变及修饰,其并不脱离本申请内容的精神与范围。

本申请的示意性实施例及其说明用于解释本申请,但并不作为对本申请的限定。另外,在附图及实施方式中所使用相同或类似标号的元件/构件是用来代表相同或类似部分。

关于本文中所使用的“第一”、“第二”、…等,并非特别指称次序或顺位的意思,也非用以限定本申请,其仅为了区别以相同技术用语描述的元件或操作。

关于本文中所使用的方向用语,例如:上、下、左、右、前或后等,仅是参考附图的方向。因此,使用的方向用语是用来说明并非用来限制本创作。

关于本文中所使用的“包含”、“包括”、“具有”、“含有”等等,均为开放性的用语,即意指包含但不限于。

关于本文中所使用的“及/或”,包括所述事物的任一或全部组合。

关于本文中的“多个”包括“两个”及“两个以上”;关于本文中的“多组”包括“两组”及“两组以上”。

关于本文中所使用的用语“大致”、“约”等,用以修饰任何可以细微变化的数量或误差,但这些微变化或误差并不会改变其本质。一般而言,此类用语所修饰的细微变化或误差的范围在部分实施例中可为20%,在部分实施例中可为10%,在部分实施例中可为5%或是其他数值。本领域技术人员应当了解,前述提及的数值可依实际需求而调整,并不以此为限。

某些用以描述本申请的用词将于下或在此说明书的别处讨论,以提供本领域技术人员在有关本申请的描述上额外的引导。

现有技术中大多数机器人默认乒乓球为无旋球,即不考虑入射旋转速度win和反射旋转速度wout。

如图1所示,本申请乒乓球机器人的深度强化学习旋转速度预测方法对乒乓球的入射旋转速度win进行深度强化学习预测,其具体过程为:

s1、将等时间间隔的n点乒乓球来球位置序列pin[n]归一化,得到归一化序列pin_normed[n]:

pin_normed[n]=-1+2*(pin[n]-pmin)/(pmax-pmin)(1)

式(1)中,pmin表示乒乓球在x、y和z轴三个方向上位置最小值的向量,乒乓球在x、y和z轴三个方向上位置最小值即实际击打乒乓球过程中所有可能出现的且能够被视觉系统捕捉到的乒乓球空间位置在x、y和z轴上的最小值,该最小值为所有数据的统计最小值;pmax表示乒乓球在x、y和z轴三个方向上位置最大值的向量,乒乓球在x、y和z轴三个方向上位置最大值即实际击打乒乓球过程中所有可能出现的且能够被视觉系统捕捉到的乒乓球空间位置在x、y和z轴上的最大值,该最大值为所有数据的统计最大值;pin[n]表示n点乒乓球位置序列,其中每个点包含x、y和z轴三个方向坐标,pin_normed[n]表示将n点乒乓球位置序列x、y和z轴三个方向坐标归一化到[-1,1]区间内的结果。

s2、将归一化后的n点乒乓球来球位置序列pin_normed[n]输入到深度lstm网络(longshort-termmemory,长短期记忆网络)中,得到lstm的状态向量s:

s=lstm_state(pin_normed[n])(2)

s3、将lstm的状态向量s输入到m层入射旋转估计深度神经网络中,得到入射旋转速度win。

其中,m层入射旋转估计深度神经网络的最后一层不使用激活函数,除最后一层外,全部使用relu函数作为激活函数。从lstm的状态向量s到入射旋转速度win的m层入射旋转估计深度神经网络可以表示为:

式(3)中,weighti和biasi均为第i+1层网络参数,layer(i)为第i+1层网络输出,win为入射旋转估计深度神经网络输出的乒乓球入射旋转速度。m层入射旋转估计深度神经网络的所有网络参数记为θ1。

s4、采集机器人根据乒乓球入射旋转速度win完成击球动作后的乒乓球实际回球落点空间位置prebound_real和乒乓球实际回球过网高度hreal,并根据采集到的乒乓球实际回球落点空间位置prebound_real和乒乓球实际回球过网高度hreal,以及预设的回球落点空间位置prebound_set和预设的过网高度hset,通过下式计算得到深度强化学习的奖励反馈r:

式(4)中,distance_loss表示实际回球落点空间位置的偏差损失,height_loss表示过网高度的偏差损失。

实际回球落点空间位置的偏差损失distance_loss通过以下表达式计算得到:

且满足如下约束:

式(6)中,a0,a1,a2,b1,b2表示系数且均为标量常数;c1,c2表示取值范围的边界,且均为标量常数。

过网高度的偏差损失height_loss通过以下表达式计算得到:

且满足如下约束:

式(8)中,d0,d1,d2,e1,e2表示系数且均为标量常数;f1,f2表示取值范围的边界,且均为标量常数。

s5、将当前次击球过程的n点乒乓球来球位置序列pin_normed[n]、乒乓球入射旋转速度win和奖励反馈r组合成一次击球记忆memory,存入记忆库memory[memory_size,memory]。

memory=[pin_normed[n],win,r](9)

当记忆库存满后,新的击球记忆会覆盖记忆库中最原始的一次击球记忆。

s6、每次击球完成后,从记忆库中随机选取至少一条记忆,将lstm的状态向量s和乒乓球入射旋转速度win输入到k层奖励反馈估计深度神经网络中,输出奖励反馈估计r_predict。

其中,k层奖励反馈估计深度神经网络的最后一层不使用激活函数,除最后一层外,全部使用relu函数作为激活函数。从lstm的状态向量s和乒乓球入射旋转速度win到奖励反馈估计r_predict的k层奖励反馈估计深度神经网络可以表示为:

式(10)中,weight2s、weight2w和bias20均为第1层网络参数,weight2j和bias2j为第j+1层网络参数,layer(j)为第j+1层网络输出,r_predict为奖励反馈估计。

式(10)中,k层奖励反馈估计深度神经网络的所有网络参数记为θ2。

s7、对式(3)表示的入射旋转估计深度神经网络和式(10)表示的奖励反馈估计深度神经网络进行反向传播和参数更新。

其中,式(3)表示的入射旋转估计深度神经网络的反向传播和参数更新的目标函数为最大化式(10)表示的奖励反馈估计深度神经网络的输出,即最小化-r_predict:

minimize:-r_predict(θ1)(11)

式(10)表示的奖励反馈估计深度神经网络的反向传播和参数更新的目标函数为最小化r_predict和r的均方误差:

minimize:mse(r_predict-r)(θ2)(12)

利用m层入射旋转估计深度神经网络的所有网络参数θ1对式(11)进行一次更新,得到网络参数目标值θ1'。

利用k层奖励反馈估计深度神经网络的所有网络参数θ2对式(11)进行一次更新,得到网络参数目标值θ2'。

使用如下的软更新方式更新网络参数θ1和θ2:

式(13)中,τ为软更新参数。

经过击球训练后,式(10)表示的奖励反馈估计深度神经网络可以通过lstm的状态向量s和乒乓球入射旋转速度win估计出与奖励反馈r均方误差最小的反馈估计r_predict;式(3)表示的入射旋转估计深度神经网络则可以通过lstm的状态向量s估计出使奖励反馈估计r_predict最大的入射旋转速度win,从而实现利用乒乓球来球位置序列pin[n]预测入射旋转速度win的目的。

在以上乒乓球机器人的深度强化学习旋转速度预测方法的基础上,本申请还提供了一种乒乓球机器人的深度强化学习旋转速度预测系统,其包括:

归一化模块,用于将等时间间隔的n点乒乓球来球位置序列pin[n]归一化,得到归一化序列pin_normed[n];

lstm网络,用于根据获取的归一化序列pin_normed[n]得到状态向量s;

入射旋转估计深度神经网络,用于根据获取的状态向量s得到入射旋转速度win;

奖励反馈计算模块,用于根据采集到的乒乓球实际回球落点空间位置prebound_real和乒乓球实际回球过网高度hreal,以及预设的回球落点空间位置prebound_set和预设的过网高度hset计算得到深度强化学习的奖励反馈r;

记忆库,用于存储至少一次击球记忆,其中,一次击球记忆包括前次击球过程的n点乒乓球来球位置序列pin_normed[n]、乒乓球入射旋转速度win和奖励反馈r;

奖励反馈估计深度神经网络,用于根据状态向量s和乒乓球入射旋转速度win得到奖励反馈估计r_predict;

网络参数更新模块,利用从记忆库中随机选取的至少一条记忆对入射旋转估计深度神经网络的网络参数和奖励反馈估计深度神经网络的网络参数进行更新,使得奖励反馈估计与计算得到的奖励反馈无限接近,并且使入射旋转估计得到更大的奖励反馈估计,从而获得更接近真实入射旋转的入射旋转估计。

需要说明的是:上述实施例提供的乒乓球机器人的深度强化学习旋转速度预测系统仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将旋转速度预测系统的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的旋转速度预测系统与旋转速度预测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

基于上述旋转速度预测系统中各模块的硬件实现,为了实现本申请实施例提供的旋转速度预测方法,本申请实施例还提供了一种乒乓球机器人的深度强化学习旋转速度预测装置,其包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器。其中所述处理器用于运行所述计算机程序时,执行如下步骤:

对等时间间隔的n点乒乓球来球位置序列pin[n]进行归一化,得到归一化序列pin_normed[n];

根据归一化序列pin_normed[n]得到lstm网络的状态向量s;

采用入射旋转估计深度神经网络,根据状态向量s得到入射旋转速度win;

根据采集到的乒乓球实际回球落点空间位置prebound_real和乒乓球实际回球过网高度hreal,以及预设的回球落点空间位置prebound_set和预设的过网高度hset计算得到深度强化学习的奖励反馈r;

对至少一次击球记忆进行存储,其中,一次击球记忆包括前次击球过程的n点乒乓球来球位置序列pin_normed[n]、乒乓球入射旋转速度win和奖励反馈r;

利用存储的至少一条记忆,采用奖励反馈估计深度神经网络,根据状态向量s和乒乓球入射旋转速度win得到奖励反馈估计r_predict,并对入射旋转估计深度神经网络的网络参数和奖励反馈估计深度神经网络的网络参数进行更新。

在示例性实施例中,本申请实施例还提供了一种计算机存储介质,是计算机可读存储介质,例如,包括计算机程序的存储器,上述计算机程序可由旋转速度预测装置中的处理器执行,以完成上述旋转速度预测方法中的所述步骤。

其中,计算机可读存储介质可以是磁性随机存取存储器、只读存储器、可编程只读存储器、可擦除可编程只读存储器、电可擦除可编程只读存储器、快闪存储器、磁表面存储器、光盘、或只读光盘等存储器。

基于本申请提供的乒乓球机器人的深度强化学习旋转速度预测方法,本申请还提供了一种乒乓球机器人,该乒乓球机器人根据乒乓球的入射旋转速度win进行回球,能够对转速较快的旋转球进行准确回球。

如图2所示,本申请提供的乒乓球机器人包括视觉预测模块1、落点控制模块2、击球状态计算模块3和运动规划模块4。

其中,视觉预测模块1通过采集若干乒乓球的轨迹点,预测乒乓球的飞行轨迹,并获取乒乓球进入机器人作业空间后的最佳击球点的位置phit、入射速度vin、入射旋转速度win和剩余时间t。

具体地,剩余时间t指的是,从视觉预测模块完成乒乓球的飞行轨迹预测以及最佳击球点的位置phit、入射速度vin和入射旋转速度win的获取,到机器人完成击球动作(即球拍接触乒乓球)的时间,即留给运动规划模块驱动机器人末端球拍完成击球动作的时间。

落点控制模块2根据预设的击打之后乒乓球在对方半球台的落点空间位置和飞行时间,计算得到击打之后乒乓球的反射速度vout和反射旋转速度wout。

击球状态计算模块3利用乒乓球与球拍的碰撞模型,根据乒乓球在击球点位置处的入射速度vin、反射速度vout、入射旋转速度win和反射旋转速度wout,计算得到球拍的速度vr和姿态wtr。

运动规划模块4驱动机器人末端球拍以速度vr和姿态wtr在剩余时间t完成击球动作。

本申请采用深度强化学习,利用乒乓球的空间轨迹位置对乒乓球的入射旋转速度进行预测,无需引入复杂的辅助系统(如云台)去识别可能被遮挡的局部特征,使乒乓球机器人应对旋转球时能够准确回球。

本申请将归一化后的乒乓球来球位置序列输入到深度lstm网络中,得到lstm的状态向量,用来表征深度强化学习的状态空间;与使用辅助系统(如云台)采集局部特征来估计旋转的乒乓球机器人相比,本申请的机器人系统更简单可靠,且不存在局部特征在视野盲区的问题,鲁棒性更强。

利用回球落点空间位置与过网高度和预设值的偏差设计深度强化学习的奖励反馈,通过巧妙地设计奖励反馈函数,使得机器人回球与预设值偏差越大时,奖励反馈下降的越快,从而使深度强化学习网络能更有效地收敛。

本申请巧妙地设计了奖励反馈估计深度神经网络和入射旋转估计深度神经网络,将无法得到真实值的入射旋转速度估计问题转换为奖励反馈的估计问题和最大化奖励反馈估计的问题,利用旋转速度引起的空间轨迹位置差异来训练模型,避免了辅助系统对局部特征的采集,使系统更简单可靠;利用记忆库存储过往的数据序列,参数更新时在记忆库中随机采样,打乱了数据序列的相关性,使深度神经网络更容易收敛;利用软更新的方式更新网络参数,使网络训练过程更加稳定,收敛更有保障。

以上所述仅为本申请示意性的具体实施方式,在不脱离本申请的构思和原则的前提下,任何本领域的技术人员所做出的等同变化与修改,均应属于本申请保护的范围。

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