一种乒乓球机器人的击球方法及装置转让专利

申请号 : CN201611025559.5

文献号 : CN106390409B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨跞张文张海波钟颖

申请人 : 中科新松有限公司

摘要 :

本发明实施例公开了一种乒乓球机器人的击球方法及装置。该方法包括:采集预设个数的乒乓球的轨迹点,预测所述乒乓球的飞行轨迹,并获取所述乒乓球进入机器人作业空间后的最佳击球点的位置Phit、入射速度vi和剩余时间t;计算击打之后的乒乓球的反射速度vo;根据所述乒乓球与球拍的碰撞模型,通过所述乒乓球在所述最佳击球点的位置Phit的入射速度vi和反射速度vo,计算所述球拍速度vr和姿态wTR;根据所述球拍速度vr和姿态wTR驱动所述机器人末端球拍在所述剩余时间完成击球动作。从而能够通过配置球拍速度方向,利用乒乓球与球拍的碰撞模型,计算球拍速度与姿态,实现乒乓球机器人击球之后乒乓球在对方半台上的精确落点控制。

权利要求 :

1.一种乒乓球机器人的击球方法,其特征在于,所述方法包括:

采集预设个数的乒乓球的轨迹点,预测所述乒乓球的飞行轨迹,并获取所述乒乓球进入机器人作业空间后的最佳击球点的位置Phit、入射速度vi和剩余时间t;根据预先配置的击打之后的乒乓球在对方半台的落点位置和飞行时间,计算击打之后的乒乓球的反射速度vo;

在球拍坐标系建立所述乒乓球与球拍的碰撞模型,所述球拍坐标系的坐标原点O为所述乒乓球与所述球拍的接触点,所述球拍坐标系的Z轴垂直所述球拍面指向来球方向,所述球拍坐标系的X轴和Y轴在所述球拍面上面相互垂直,所述球拍坐标系满足约束关系,所述约束关系为:,其中,所述kf和所述kq分别表示所述乒乓球在球拍的法线方向和半径方向上的碰撞恢复系数,所述krf和所述krq分别表示所述球拍在所述法线方向和所述半径方向上对所述乒乓球的碰撞作用系数,所述rvox、所述rvoy和所述rvoz分别表示所述乒乓球的反射速度在所述球拍坐标系x,y和z轴三个方向上的分量,所述rviy、所述rvix和所述rvizr分别表示所述乒乓球的入射速度在所述球拍坐标系x,y和z轴三个方向上的分量,所述vrx、所述rvry和所述rvrz分别表示在所述球拍坐标系下的球拍速度;

根据所述乒乓球与球拍的碰撞模型,通过所述乒乓球在所述最佳击球点的位置Phit的入射速度vi和反射速度vo,计算所述球拍速度vr和姿态WTR;

根据所述球拍速度vr和姿态WTR驱动所述机器人末端球拍在所述剩余时间完成击球动作。

2.根据权利要求1所述的方法,其特征在于,所述在球拍坐标系建立所述乒乓球与球拍的碰撞模型之后,还包括:将所述乒乓球的入射速度vi、反射速度vo以及所述球拍速度vr转换到所述球拍坐标系下(rvi,rvo,rvr),转换方程为:;

配置所述球拍速度的矢量为vr=vr·nr=vr·[nrx;nry;nrz];

其中,所述wTr为所述球拍坐标系相对世界坐标系的姿态矩阵;所述nr=[nrx;nry;nrz]为表示球拍速度方向的单位向量;所述vr为待求解的球拍速度大小。

3.根据权利要求2所述的方法,其特征在于,所述球拍法线单位向量为。

4.根据权利要求3所述的方法,其特征在于,所述根据所述乒乓球与球拍的碰撞模型,通过所述乒乓球在所述最佳击球点的位置Phit的入射速度vi和反射速度vo,计算所述球拍速度vr和姿态WTR,包括:将所述乒乓球的入射速度vi、所述反射速度vo以及所述球拍速度vr投影到法线向量上,法线投影后的方程为(vo+kfvi-krfvr)·n=0;

对所述乒乓球的入射速度vi、所述反射速度vo以及所述球拍速度vr投影到径向向量上,径向投影后的方程为(-vo+kqvi+krqvr)×n=0;

向量-vo+kqvi+krqvr和向量vo+kfvi-krfvr是垂直的,垂直的方程为(-vo+kqvi+krqvr)·(vo+kfvi-krfvr)=0;

将vr=vr·nr代入所述(-vo+kqvi+krqvr)·(vo+kfvi-krfvr)=0并获取所述球拍速度大小vr;

根据所述球拍速度大小获取表示球拍姿态的法线单位向量为

其中,所述正负号根据所述球拍坐标系的建立和实际应用情景进行选取。

5.一种乒乓球机器人的击球装置,其特征在于,所述装置包括:

获取模块,用于采集预设个数的乒乓球的轨迹点,预测所述乒乓球的飞行轨迹,并获取所述乒乓球进入机器人作业空间后的最佳击球点的位置Phit、入射速度vi和剩余时间t;

第一计算模块,用于根据预先配置的击打之后的乒乓球在对方半台的落点位置和飞行时间,计算击打之后的乒乓球的反射速度vo;

建立模块,用于在球拍坐标系建立所述乒乓球与球拍的碰撞模型,所述球拍坐标系的坐标原点O为所述乒乓球与所述球拍的接触点,所述球拍坐标系的Z轴垂直所述球拍面指向来球方向,所述球拍坐标系的X轴和Y轴在所述球拍面上面相互垂直,所述球拍坐标系满足约束关系,所述约束关系为: ,其中,所述kf和所述kq分别表示所述乒乓球在球拍的法线方向和半径方向上的碰撞恢复系数,所述krf和所述krq分别表示所述球拍在所述法线方向和所述半径方向上对所述乒乓球的碰撞作用系数,所述rvox、所述rvoy和所述rvoz分别表示所述乒乓球的反射速度在所述球拍坐标系x,y和z轴三个方向上的分量;所述rviy、所述rvix和所述rviz分别表示所述乒乓球的入射速度在所述球拍坐标系x,y和z轴三r r r个方向上的分量,所述vrx、所述vry和所述vrz分别表示在所述球拍坐标系下的球拍速度;

第二计算模块,用于根据所述乒乓球与球拍的碰撞模型,通过所述乒乓球在所述最佳击球点的位置Phit的入射速度vi和反射速度vo,计算所述球拍速度vr和姿态WTR;

驱动模块,用于根据所述球拍速度vr和姿态WTR驱动所述机器人末端球拍在所述剩余时间完成击球动作。

6.根据权利要求5所述的装置,其特征在于,所述装置还包括:

配置模块,用于在在球拍坐标系建立所述乒乓球与球拍的碰撞模型之后,将所述乒乓球的入射速度vi、反射速度vo以及所述球拍速度vr转换到所述球拍坐标系下(rvi,rvo,rvr),转换方程为 ;

配置所述球拍速度的矢量为vr=vr·nr=vr·[nrx;nry;nrz];

其中,所述wTr为所述球拍坐标系相对世界坐标系的姿态矩阵;所述nr=[nrx;nry;nrz]为表示球拍速度方向的单位向量;所述vr为待求解的球拍速度大小。

7.根据权利要求6所述的装置,其特征在于,所述球拍法线单位向量为。

8.根据权利要求7所述的装置,其特征在于,所述第二计算模块,具体用于:将所述乒乓球的入射速度vi、所述反射速度vo以及所述球拍速度vr投影到法线向量上,法线投影后的方程为(vo+kfvi-krfvr)·n=0;

对所述乒乓球的入射速度vi、所述反射速度vo以及所述球拍速度vr投影到径向向量上,径向投影后的方程为(-vo+kqvi+krqvr)×n=0;

向量-vo+kqvi+krqvr和向量vo+kfvi-krfvr是垂直的,垂直的方程为(-vo+kqvi+krqvr)·(vo+kfvi-krfvr)=0;

将vr=vr·nr代入所述(-vo+kqvi+krqvr)·(vo+kfvi-krfvr)=0并获取所述球拍速度大小vr;

根据所述球拍速度大小获取表示球拍姿态的法线单位向量为 ;

其中,所述正负号根据所述球拍坐标系的建立和实际应用情景进行选取。

说明书 :

一种乒乓球机器人的击球方法及装置

技术领域

[0001] 本发明实施例涉及控制的技术领域,尤其涉及一种乒乓球机器人的击球方法及装置。

背景技术

[0002] 现阶段主要存在二种击球方法,第一种方式为:基于乒乓球与球拍碰撞模型的击球方法,包括镜面反射模型和非线性碰撞模型,均利用模型解析获取球拍的姿态和速度;第二种方式为:通过大量的数据采样进行机器学习来获取球拍的姿态和速度。
[0003] 第一种方法中的镜面反射模型,击球方法相对比较简单,容易实现,但是也因为忽略乒乓球与球拍的碰撞特性,镜面反射模型与真实的碰撞模型存在比较大的偏差,因此使用这种击球方法的乒乓球机器人的击球质量比较差,不利于精确的落点控制;而第一种方法中的非线性碰撞模型,采用的是乒乓球与球拍的三维非完全弹性碰撞模型,碰撞模型相对比较准确,但是在击球方法上采用限定击球速度方向为Y方向,Z和X方向的速度分量为0,同时采用了较为复杂的L-M优化算法获取2个球拍姿态参数和球拍速度大小,这种击球方法能在一定程度上实现落点控制,但是计算较复杂,击球方式单一,不灵活。
[0004] 第二种方法是通过机器学习获取球拍的姿态和速度,这种方法受限于机器学习的训练量,对于训练采样数据集之内的数据,乒乓球机器人能够较好的完成击球动作,而对于学习采样数据集以外的数据,乒乓球机器人的击球质量会大打折扣,无法满足我们的落点控制的精度要求,此外,机器学习这种击球方法对乒乓球机器人的训练要求比较高,不利于实现。

发明内容

[0005] 本发明实施例的目的在于提出一种乒乓球机器人的击球方法及装置,旨在解决如何精确的获取球拍速度与姿态的问题。
[0006] 为达此目的,本发明实施例采用以下技术方案:
[0007] 第一方面,一种乒乓球机器人的击球方法,所述方法包括:
[0008] 采集预设个数的乒乓球的轨迹点,预测所述乒乓球的飞行轨迹,并获取所述乒乓球进入机器人作业空间后的最佳击球点的位置Phit、入射速度vi和剩余时间t;
[0009] 根据预先配置的击打之后的乒乓球在对方半台的落点位置和飞行时间,计算击打之后的乒乓球的反射速度vo;
[0010] 根据所述乒乓球与球拍的碰撞模型,通过所述乒乓球在所述最佳击球点的位置Phit的入射速度vi和反射速度vo,计算所述球拍速度vr和姿态WTR;
[0011] 根据所述球拍速度vr和姿态WTR驱动所述机器人末端球拍在所述剩余时间完成击球动作。
[0012] 优选地,所述根据所述乒乓球与球拍的碰撞模型,通过所述乒乓球在所述最佳击球点的位置Phit的入射速度vi和反射速度vo,计算所述球拍速度vr和姿态WTR之前,还包括:
[0013] 在球拍坐标系建立所述乒乓球与球拍的碰撞模型,所述球拍坐标系的坐标原点O为所述乒乓球与所述球拍的接触点,所述球拍坐标系的Z轴垂直所述球拍面指向来球方向,所述球拍坐标系的X轴和Y轴在所述球拍面上面相互垂直,所述球拍坐标系满足约束关系,所述约束关系为:
[0014] rvoz=kfrviz+krfrvrz
[0015] rvox=kqrvix+krqrvrx
[0016] rvoy=kqrviy+krqrvry
[0017] 其中,所述kf和所述kq分别表示所述乒乓球在球拍的法线方向和半径方向上的碰撞恢复系数;所述krf和所述krq分别表示所述球拍在所述法线方向和所述半径方向上对所述乒乓球的碰撞作用系数;所述rvox、所述rvoy和所述rvoz分别表示所述乒乓球的反射速度在所述球拍坐标系x,y和z轴三个方向上的分量;所述rviy、所述rvix和所述rviz分别表示所述乒r r乓球的入射速度在所述球拍坐标系x,y和z轴三个方向上的分量;所述vrx、所述 vry和所述rvrz分别表示在所述球拍坐标系下的球拍速度。
[0018] 优选地,所述在球拍坐标系建立所述乒乓球与球拍的碰撞模型之后,还包括:
[0019] 将所述乒乓球的入射速度vi、反射速度vo以及所述球拍速度vr转换到所述球拍坐r r r标系下(vi,vo,vr),转换方程为:
[0020]
[0021] 配置所述球拍速度的矢量为vr=vr·nr=vr·[nrx;nry;nrz];
[0022] 其中,所述wTr为所述球拍坐标系相对世界坐标系的姿态矩阵;所述nr=[nrx;nry;nrz]为表示球拍速度方向的单位向量;所述vr为待求解的球拍速度大小。
[0023] 优选地,所述
[0024] 优选地,所述根据所述乒乓球与球拍的碰撞模型,通过所述乒乓球在所述最佳击球点的位置Phit的入射速度vi和反射速度vo,计算所述球拍速度vr和姿态WTR,包括:
[0025] 将所述乒乓球的入射速度vi、所述反射速度vo以及所述球拍速度vr投影到法线向量上,法线投影后的方程为(vo+kfvi-krfvr)·n=0;
[0026] 对所述乒乓球的入射速度vi、所述反射速度vo以及所述球拍速度vr投影到径向向量上,径向投影后的方程为(-vo+kqvi+krqvr)×n=0;
[0027] 所述向量-vo+kqvi+krqvr和所述向量vo+kfvi-krfvr是垂直的,垂直的方程为(-vo+kqvi+krqvr)·(vo+kfvi-krfvr)=0;
[0028] 将vr=vr·nr代入所述(-vo+kqvi+krqvr)·(vo+kfvi-krfvr)=0并获取所述球拍速度大小vr;
[0029] 根据所述球拍速度大小获取表示球拍姿态的法线单位向量为
[0030]
[0031] 其中,所述正负号根据所述球拍坐标系的建立和实际应用情景进行选取。
[0032] 第二方面,一种乒乓球机器人的击球装置,所述装置包括:
[0033] 获取模块,用于采集预设个数的乒乓球的轨迹点,预测所述乒乓球的飞行轨迹,并获取所述乒乓球进入机器人作业空间后的最佳击球点的位置Phit、入射速度vi和剩余时间t;
[0034] 第一计算模块,用于根据预先配置的击打之后的乒乓球在对方半台的落点位置和飞行时间,计算击打之后的乒乓球的反射速度vo;
[0035] 第二计算模块,用于根据所述乒乓球与球拍的碰撞模型,通过所述乒乓球在所述最佳击球点的位置Phit的入射速度vi和反射速度vo,计算所述球拍速度vr和姿态WTR;
[0036] 驱动模块,用于根据所述球拍速度vr和姿态WTR驱动所述机器人末端球拍在所述剩余时间完成击球动作。
[0037] 优选地,所述装置还包括:
[0038] 建立模块,用于在根据所述乒乓球与球拍的碰撞模型,通过所述乒乓球在所述最佳击球点的位置Phit的入射速度vi和反射速度vo,计算所述球拍速度vr和姿态WTR之前,在球拍坐标系建立所述乒乓球与球拍的碰撞模型,所述球拍坐标系的坐标原点O为所述乒乓球与所述球拍的接触点,所述球拍坐标系的Z轴垂直所述球拍面指向来球方向,所述球拍坐标系的X轴和Y轴在所述球拍面上面相互垂直,所述球拍坐标系满足约束关系,所述约束关系为:
[0039] rvoz=kfrviz+krfrvrz
[0040] rvox=kqrvix+krqrvrx
[0041] rvoy=kqrviy+krqrvry
[0042] 其中,所述kf和所述kq分别表示所述乒乓球在球拍的法线方向和半径方向上的碰撞恢复系数;所述krf和所述krq分别表示所述球拍在所述法线方向和所述半径方向上对所述乒乓球的碰撞作用系数;所述rvox、所述rvoy和所述rvoz分别表示所述乒乓球的反射速度在所述球拍坐标系x,y和z轴三个方向上的分量;所述rviy、所述rvix和所述rviz分别表示所述乒乓球的入射速度在所述球拍坐标系x,y和z轴三个方向上的分量;所述rvrx、所述rvry和所述rvrz分别表示在所述球拍坐标系下的球拍速度。
[0043] 优选地,所述装置还包括:
[0044] 配置模块,用于在在球拍坐标系建立所述乒乓球与球拍的碰撞模型之后,将所述乒乓球的入射速度vi、反射速度vo以及所述球拍速度vr转换到所述球拍坐标系下(rvi,rvo,rvr),转换方程为
[0045] 配置所述球拍速度的矢量为vr=vr·nr=vr·[nrx;nry;nrz];
[0046] 其中,所述wTr为所述球拍坐标系相对世界坐标系的姿态矩阵;所述nr=[nrx;nry;nrz]为表示球拍速度方向的单位向量;所述vr为待求解的球拍速度大小。
[0047] 优选地,所述
[0048] 优选地,所述第二计算模块,具体用于:
[0049] 将所述乒乓球的入射速度vi、所述反射速度vo以及所述球拍速度vr投影到法线向量上,法线投影后的方程为(vo+kfvi-krfvr)·n=0;
[0050] 对所述乒乓球的入射速度vi、所述反射速度vo以及所述球拍速度vr投影到径向向量上,径向投影后的方程为(-vo+kqvi+krqvr)×n=0;
[0051] 所述向量-vo+kqvi+krqvr和所述向量vo+kfvi-krfvr是垂直的,垂直的方程为(-vo+kqvi+krqvr)·(vo+kfvi-krfvr)=0;
[0052] 将vr=vr·nr代入所述(-vo+kqvi+krqvr)·(vo+kfvi-krfvr)=0并获取所述球拍速度大小vr;
[0053] 根据所述球拍速度大小获取表示球拍姿态的法线单位向量为
[0054] 其中,所述正负号根据所述球拍坐标系的建立和实际应用情景进行选取。
[0055] 本发明实施例提供的一种乒乓球机器人的击球方法及装置,采集预设个数的乒乓球的轨迹点,预测所述乒乓球的飞行轨迹,并获取所述乒乓球进入机器人作业空间后的最佳击球点的位置Phit、入射速度vi和剩余时间t;根据预先配置的击打之后的乒乓球在对方半台的落点位置和飞行时间,计算击打之后的乒乓球的反射速度vo;根据所述乒乓球与球拍的碰撞模型,通过所述乒乓球在所述最佳击球点的位置Phit的入射速度vi和反射速度vr,计算所述球拍速度vr和姿态WTR;根据所述球拍速度vr和姿态WTR驱动所述机器人末端球拍在所述剩余时间完成击球动作。从而能够通过配置球拍速度方向,利用乒乓球与球拍的碰撞模型,计算球拍速度与姿态,实现乒乓球机器人击球之后乒乓球在对方半台上的精确落点控制。

附图说明

[0056] 图1是本发明实施例提供的一种乒乓球机器人的击球方法的流程示意图;
[0057] 图2是本发明实施例提供的另一种乒乓球机器人的击球方法的流程示意图;
[0058] 图3是本发明实施例提供的另一种乒乓球机器人的击球方法的流程示意图;
[0059] 图4是本发明实施例提供的一种乒乓球机器人的击球装置的功能模块示意图。

具体实施方式

[0060] 下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。
[0061] 参考图1,图1是本发明实施例提供的一种乒乓球机器人的击球方法的流程示意图。
[0062] 如图1所示,所述乒乓球机器人的击球方法包括:
[0063] 步骤101,采集预设个数的乒乓球的轨迹点,预测所述乒乓球的飞行轨迹,并获取所述乒乓球进入机器人作业空间后的最佳击球点的位置Phit、入射速度vi和剩余时间t;
[0064] 步骤102,根据预先配置的击打之后的乒乓球在对方半台的落点位置和飞行时间,计算击打之后的乒乓球的反射速度vo;
[0065] 步骤103,根据所述乒乓球与球拍的碰撞模型,通过所述乒乓球在所述最佳击球点的位置Phit的入射速度vi和反射速度vo,计算所述球拍速度vr和姿态WTR;
[0066] 步骤104,根据所述球拍速度vr和姿态WTR驱动所述机器人末端球拍在所述剩余时间完成击球动作。
[0067] 具体的,乒乓球机器人完成击打乒乓球任务的整体控制策略主要包括视觉预测、落点控制、击球方法和机器人运动规划4个部分。视觉预测模块通过采集若干乒乓球轨迹点,预测乒乓球的飞行轨迹,并获取乒乓球进入机器人作业空间后的最佳击球点的位置Phit、入射速度vi和剩余时间t;落点控制模块依据人为配置的击打之后乒乓球在对方半台的落点位置和飞行时间,计算得到击打之后乒乓球的反射速度vo;击球方法模块利用乒乓球与球拍的碰撞模型,通过乒乓球在击球点位置处的入射速度和反射速度,计算得到球拍的速度vr和姿态WTR;机器人运动规划模块驱动机器人末端球拍在剩余时间完成击球动作。
[0068] 本发明实施例提供的一种乒乓球机器人的击球方法,采集预设个数的乒乓球的轨迹点,预测所述乒乓球的飞行轨迹,并获取所述乒乓球进入机器人作业空间后的最佳击球点的位置Phit、入射速度vi和剩余时间t;根据预先配置的击打之后的乒乓球在对方半台的落点位置和飞行时间,计算击打之后的乒乓球的反射速度vo;根据所述乒乓球与球拍的碰撞模型,通过所述乒乓球在所述最佳击球点的位置Phit的入射速度vi和反射速度vo,计算所述球拍速度vr和姿态WTR;根据所述球拍速度vr和姿态WTR驱动所述机器人末端球拍在所述剩余时间完成击球动作。从而能够通过配置球拍速度方向,利用乒乓球与球拍的碰撞模型,计算球拍速度与姿态,实现乒乓球机器人击球之后乒乓球在对方半台上的精确落点控制。
[0069] 参考图2,图2是本发明实施例提供的另一种乒乓球机器人的击球方法的流程示意图。
[0070] 如图2所示,所述乒乓球机器人的击球方法包括:
[0071] 步骤201,采集预设个数的乒乓球的轨迹点,预测所述乒乓球的飞行轨迹,并获取所述乒乓球进入机器人作业空间后的最佳击球点的位置Phit、入射速度vi和剩余时间t;
[0072] 步骤202,根据预先配置的击打之后的乒乓球在对方半台的落点位置和飞行时间,计算击打之后的乒乓球的反射速度vo;
[0073] 步骤203,在球拍坐标系建立所述乒乓球与球拍的碰撞模型,所述球拍坐标系的坐标原点O为所述乒乓球与所述球拍的接触点,所述球拍坐标系的Z轴垂直所述球拍面指向来球方向,所述球拍坐标系的X轴和Y轴在所述球拍面上面相互垂直,所述球拍坐标系满足约束关系,所述约束关系为:
[0074] rvoz=kfrviz+krfrvrz
[0075] rvox=kqrvix+krqrvrx
[0076] rvoy=kqrviy+krqrvry
[0077] 其中,所述kf和所述kq分别表示所述乒乓球在球拍的法线方向和半径方向上的碰撞恢复系数;所述krf和所述krq分别表示所述球拍在所述法线方向和所述半径方向上对所述乒乓球的碰撞作用系数;所述rvox、所述rvoy和所述rvoz分别表示所述乒乓球的反射速度在所述球拍坐标系x,y和z轴三个方向上的分量;所述rviy、所述rvix和所述rviz分别表示所述乒乓球的入射速度在所述球拍坐标系x,y和z轴三个方向上的分量;所述rvrx、所述rvry和所述rvrz分别表示在所述球拍坐标系下的球拍速度;
[0078] 具体的,对于击球方法模块,它的输入参数为乒乓球入射速度vi,反射速度vo;输出参数为球拍速度vr和球拍姿态矩阵WTR,输入参数与输出参数通过乒乓球与球拍的碰撞模型建立相关的约束关系。乒乓球与球拍的碰撞模型建立在球拍坐标系(坐标原点O为乒乓球与球拍的接触点,Z轴垂直球拍面指向来球方向,X轴和Y轴在球拍面上面,相互垂直),它们满足如下约束关系:
[0079] rvoz=kfrviz+krfrvrz
[0080] rvox=kqrvix+krqrvrx
[0081] rvoy=kqrviy+krqrvry  (1)
[0082] 表达式(1)中的kf和kq分别表示乒乓球在球拍法线方向和半径方向上的碰撞恢复系数,krf和krq分别表示球拍在法线方向和半径方向上对乒乓球的碰撞作用系数,这四个系数与乒乓球和球拍的材质等息息相关,可以通过实验标定获取;rvox、rvoy和rvoz分别表示乒乓球反射速度在球拍坐标系x,y和z轴三个方向上的分量,同样的道理rviy、rvix和rviz分别表示乒乓球入射速度在球拍坐标系x,y和z轴三个方向上的分量,rvrx、rvry和rvrz分别表示球拍速度在球拍坐标系下的表示。正如前面描述的那样,视觉预测模块和落点控制模块获取的乒乓球入射速度和反射速度均在固定的世界坐标系下描述,而表达式(1)需要在球拍坐标系下描述,因此我们通过如下转换关系,将乒乓球入射速度vi、反射速度vo以及球拍的速度vr转换到球拍坐标系下(rvi、rvo和rvr):
[0083]
[0084] 其中wTr为球拍坐标系相对世界坐标系的姿态矩阵,只有转换到球拍坐标系才能代入到表达式(1)。
[0085] 步骤204,根据所述乒乓球与球拍的碰撞模型,通过所述乒乓球在所述最佳击球点的位置Phit的入射速度vi和反射速度vo,计算所述球拍速度vr和姿态WTR;
[0086] 步骤205,根据所述球拍速度vr和姿态WTR驱动所述机器人末端球拍在所述剩余时间完成击球动作。
[0087] 参考图3,图3是本发明实施例提供的另一种乒乓球机器人的击球方法的流程示意图。
[0088] 如图3所示,所述乒乓球机器人的击球方法包括:
[0089] 步骤301,采集预设个数的乒乓球的轨迹点,预测所述乒乓球的飞行轨迹,并获取所述乒乓球进入机器人作业空间后的最佳击球点的位置Phit、入射速度vi和剩余时间t;
[0090] 步骤302,根据预先配置的击打之后的乒乓球在对方半台的落点位置和飞行时间,计算击打之后的乒乓球的反射速度vo;
[0091] 步骤303,在球拍坐标系建立所述乒乓球与球拍的碰撞模型,所述球拍坐标系的坐标原点O为所述乒乓球与所述球拍的接触点,所述球拍坐标系的Z轴垂直所述球拍面指向来球方向,所述球拍坐标系的X轴和Y轴在所述球拍面上面相互垂直,所述球拍坐标系满足约束关系,所述约束关系为:
[0092] rvoz=kfrviz+krfrvrz
[0093] rvox=kqrvix+krqrvrx
[0094] rvoy=kqrviy+krqrvry
[0095] 其中,所述kf和所述kq分别表示所述乒乓球在球拍的法线方向和半径方向上的碰撞恢复系数;所述krf和所述krq分别表示所述球拍在所述法线方向和所述半径方向上对所述乒乓球的碰撞作用系数;所述rvox、所述rvoy和所述rvoz分别表示所述乒乓球的反射速度在所述球拍坐标系x,y和z轴三个方向上的分量;所述rviy、所述rvix和所述rviz分别表示所述乒r r乓球的入射速度在所述球拍坐标系x,y和z轴三个方向上的分量;所述vrx、所述 vry和所述rvrz分别表示在所述球拍坐标系下的球拍速度;
[0096] 步骤304,将所述乒乓球的入射速度vi、反射速度vo以及所述球拍速度vr转换到所述球拍坐标系下(rvi,rvo,rvr),转换方程为:
[0097]
[0098] 配置所述球拍速度的矢量为vr=vr·nr=vr·[nrx;nry;nrz];
[0099] 其中,所述wTr为所述球拍坐标系相对世界坐标系的姿态矩阵;所述nr=[nrx;nry;nrz]为表示球拍速度方向的单位向量;所述vr为待求解的球拍速度大小;
[0100] 其中,
[0101] 具体的,不难发现,击球方法的求解目标为球拍姿态wTr和球拍速度vr,共有6个未知数而约束条件只有表达式(1)中三个,因此击球方法存在3个冗余,需要额外的优化或者约束进行限定求解。因此本发明提出了一种用于乒乓球机器人的配置球拍运动方向的击球方法,即配置球拍速度矢量为vr=vr·nr=vr·[nrx;nry;nrz],其中nr=[nrx;nry;nrz]为已知的表示球拍速度方向的单位向量,vr为待求解的球拍速度大小。此外,球拍沿自身法线方向的旋转自由度对击球效果是没有影响的,这个自由度是冗余的,因此对于乒乓球机器人击球效果的一个关键因素在于球拍法线矢量的求解,不妨设待求解的球拍法线单位为在这样的限定和优化下待求解的未知数为3个(vr,xn和yn),约束方程也是3个(表达式(1)),约束方程能够得到有效的求解。
[0102] 步骤305,根据所述乒乓球与球拍的碰撞模型,通过所述乒乓球在所述最佳击球点的位置Phit的入射速度vi和反射速度vo,计算所述球拍速度vr和姿态WTR;
[0103] 优选地,所述根据所述乒乓球与球拍的碰撞模型,通过所述乒乓球在所述最佳击W球点的位置Phit的入射速度vi和反射速度vo,计算所述球拍速度vr和姿态TR,包括:
[0104] 将所述乒乓球的入射速度vi、所述反射速度vo以及所述球拍速度vr投影到法线向量上,法线投影后的方程为(vo+kfvi-krfvr)·n=0;
[0105] 对所述乒乓球的入射速度vi、所述反射速度vo以及所述球拍速度vr投影到径向向量上,径向投影后的方程为(-vo+kqvi+krqvr)×n=0;
[0106] 所述向量-vo+kqvi+krqvr和所述向量vo+kfvi-krfvr是垂直的,垂直的方程为(-vo+kqvi+krqvr)·(vo+kfvi-krfvr)=0;
[0107] 将vr=vr·nr代入所述(-vo+kqvi+krqvr)·(vo+kfvi-krfvr)=0并获取所述球拍速度大小vr;
[0108] 根据所述球拍速度大小获取表示球拍姿态的法线单位向量为
[0109]
[0110] 其中,所述正负号根据所述球拍坐标系的建立和实际应用情景进行选取。
[0111] 具体的,在利用约束表达式(1)进行方程求解前,需要进行表达式(2)的坐标变换,这些坐标变换会引入待求解的非线性三角函数,不利于方程的求解。本发明方法巧妙的利用空间矢量的方法表示碰撞模型,首先将乒乓球的入射速度、反射速度以及球拍速度投影到法线向量上,它们满足碰撞模型表达式(1)中的第一个方程,即
[0112] vo·n=-kfvi·n+krfvr·n   (3)
[0113] 整理一下则有
[0114] (vo+kfvi-krfvr)·n=0   (4)
[0115] 这就说明向量vo+kfvi-krfvr与球拍的法线向量n垂直。接着对乒乓球的入射速度、反射速度以及球拍速度在球拍面(径向)的分量进行分析,则有
[0116] vo×n=kqvi×n+krqvr×n   (5)
[0117] 整理一下得到
[0118] (-vo+kqvi+krqvr)×n=0   (6)
[0119] 这就说明向量-vo+kqvi+krqvr与法线向量n平行,也就意味着法线向量可以用向量-vo+kqvi+krqvr的单位化表示。
[0120] 结合表达式(4)和表达式(6),可知向量-vo+kqvi+krqvr和向量vo+kfvi-krfvr是垂直的,即
[0121] (-vo+kqvi+krqvr)·(vo+kfvi-krfvr)=0   (7)
[0122] 展开并将vr=vr·nr带入表达式(7),则有
[0123]
[0124] 表达式(8)是一个关于球拍速度大小vr的一元二次方程,只有vr一个未知数,kf、kq、krf和krq为碰撞模型参数,vi和vo表示乒乓球的入射速度和反射速度,nr是配置的击球方向矢量。表达式中利用的是向量的点积与模计算不受具体某个坐标系下的约束,只要vi、vo和nr在同一个坐标系下描述即可,因此这里可以计算方便的选择世界坐标系下描述。
[0125] 利用一元二次方程的通用求根公式 可以计算得到球拍速度大小vr,不过这里需要对根进行分析与讨论,因为存在无解、1个解和2个解的情况。无解只能说明约束球拍速度在这个方向,无法完成期望落球点的击球动作;存在唯一解时,如果解大于等于0,就以这种球拍速度完成击球,如果小于0,则与客观事实不符,舍弃击球方式;2个解的时候选择速度较小的正解作为球拍的击球速度大小。
[0126] 获取球拍速度之后,依据表达式(6)可以得到表示球拍姿态的法线单位向量为[0127]
[0128] 表达式中的正负号依据球拍坐标系的建立和实际应用情景进行选取,如取n的Z值为正的时候实现正拍接球,Z值为负的时候实现翻拍接球。
[0129] 本发明通过配置球拍速度方向,采用向量点积和叉乘的特性建立碰撞模型,求解获得球拍速度大小和球拍法向矢量,完成了击球方法的求解。
[0130] 步骤306,根据所述球拍速度vr和姿态WTR驱动所述机器人末端球拍在所述剩余时间完成击球动作。
[0131] 参考图4,图4是本发明实施例提供的一种乒乓球机器人的击球装置的功能模块示意图。
[0132] 如图4所示,所述乒乓球机器人的击球装置包括:
[0133] 获取模块401,用于采集预设个数的乒乓球的轨迹点,预测所述乒乓球的飞行轨迹,并获取所述乒乓球进入机器人作业空间后的最佳击球点的位置Phit、入射速度vi和剩余时间t;
[0134] 第一计算模块402,用于根据预先配置的击打之后的乒乓球在对方半台的落点位置和飞行时间,计算击打之后的乒乓球的反射速度vo;
[0135] 第二计算模块403,用于根据所述乒乓球与球拍的碰撞模型,通过所述乒乓球在所述最佳击球点的位置Phit的入射速度vi和反射速度vo,计算所述球拍速度vr和姿态WTR;
[0136] 驱动模块404,用于根据所述球拍速度vr和姿态WTR驱动所述机器人末端球拍在所述剩余时间完成击球动作。
[0137] 优选地,所述装置还包括:
[0138] 建立模块,用于在根据所述乒乓球与球拍的碰撞模型,通过所述乒乓球在所述最佳击球点的位置Phit的入射速度vi和反射速度vo,计算所述球拍速度vr和姿态WTR之前,在球拍坐标系建立所述乒乓球与球拍的碰撞模型,所述球拍坐标系的坐标原点O为所述乒乓球与所述球拍的接触点,所述球拍坐标系的Z轴垂直所述球拍面指向来球方向,所述球拍坐标系的X轴和Y轴在所述球拍面上面相互垂直,所述球拍坐标系满足约束关系,所述约束关系为:
[0139] rvoz=kfrviz+krfrvrz
[0140] rvox=kqrvix+krqrvrx
[0141] rvoy=kqrviy+krqrvry
[0142] 其中,所述kf和所述kq分别表示所述乒乓球在球拍的法线方向和半径方向上的碰撞恢复系数;所述krf和所述krq分别表示所述球拍在所述法线方向和所述半径方向上对所述乒乓球的碰撞作用系数;所述rvox、所述rvoy和所述rvoz分别表示所述乒乓球的反射速度在所述球拍坐标系x,y和z轴三个方向上的分量;所述rviy、所述rvix和所述rviz分别表示所述乒乓球的入射速度在所述球拍坐标系x,y和z轴三个方向上的分量;所述rvrx、所述rvry和所述rvrz分别表示在所述球拍坐标系下的球拍速度。
[0143] 优选地,所述装置还包括:
[0144] 配置模块,用于在在球拍坐标系建立所述乒乓球与球拍的碰撞模型之后,将所述乒乓球的入射速度vi、反射速度vo以及所述球拍速度vr转换到所述球拍坐标系下(rvi,rvo,rvr),转换方程为
[0145] 配置所述球拍速度的矢量为vr=vr·nr=vr·[nrx;nry;nrz];
[0146] 其中,所述wTr为所述球拍坐标系相对世界坐标系的姿态矩阵;所述nr=[nrx;nry;nrz]为表示球拍速度方向的单位向量;所述vr为待求解的球拍速度大小。
[0147] 优选地,所述
[0148] 优选地,所述第二计算模块403,具体用于:
[0149] 将所述乒乓球的入射速度vi、所述反射速度vo以及所述球拍速度vr投影到法线向量上,法线投影后的方程为(vo+kfvi-krfvr)·n=0;
[0150] 对所述乒乓球的入射速度vi、所述反射速度vo以及所述球拍速度vr投影到径向向量上,径向投影后的方程为(-vo+kqvi+krqvr)×n=0;
[0151] 所述向量-vo+kqvi+krqvr和所述向量vo+kfvi-krfvr是垂直的,垂直的方程为(-vo+kqvi+krqvr)·(vo+kfvi-krfvr)=0;
[0152] 将vr=vr·nr代入所述(-vo+kqvi+krqvr)·(vo+kfvi-krfvr)=0并获取所述球拍速度大小vr;
[0153] 根据所述球拍速度大小获取表示球拍姿态的法线单位向量为
[0154] 其中,所述正负号根据所述球拍坐标系的建立和实际应用情景进行选取。
[0155] 本发明实施例提供的一种乒乓球机器人的击球装置,采集预设个数的乒乓球的轨迹点,预测所述乒乓球的飞行轨迹,并获取所述乒乓球进入机器人作业空间后的最佳击球点的位置Phit、入射速度vi和剩余时间t;根据预先配置的击打之后的乒乓球在对方半台的落点位置和飞行时间,计算击打之后的乒乓球的反射速度vo;根据所述乒乓球与球拍的碰撞模型,通过所述乒乓球在所述最佳击球点的位置Phit的入射速度vi和反射速度vo,计算所W W述球拍速度vr和姿态TR;根据所述球拍速度vr和姿态 TR驱动所述机器人末端球拍在所述剩余时间完成击球动作。从而能够通过配置球拍速度方向,利用乒乓球与球拍的碰撞模型,计算球拍速度与姿态,实现乒乓球机器人击球之后乒乓球在对方半台上的精确落点控制。
[0156] 以上结合具体实施例描述了本发明实施例的技术原理。这些描述只是为了解释本发明实施例的原理,而不能以任何方式解释为对本发明实施例保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明实施例的其它具体实施方式,这些方式都将落入本发明实施例的保护范围之内。