乒乓球发球机器人零点标定方法及标定系统与流程

文档序号:31704760发布日期:2022-10-01 10:23阅读:124来源:国知局
乒乓球发球机器人零点标定方法及标定系统与流程

1.本技术属于乒乓球机器人领域,具体涉及一种乒乓球发球机器人零点标 定方法及标定系统。


背景技术:

2.乒乓球发球机器人作为训练和娱乐设备具有广泛的应用场景。由于发球 机器人多数通过绝对位置的控制进行发球方向的调整,且生产装配过程中发 球机器人存在结构的差异性,因此,为了保证乒乓球发球机器人出厂的一致 性,需要对每台发球机器人都进行零点标定。所谓零点标定就是告知控制器 上电时刻发球机器人所处的位置,方便后续对发球机器人进行位置控制。没 有绝对位置传感器的驱动单元会将上电时刻发球机器人所处的位置作为机 械零位,考虑到装配的差异性,有绝对位置传感器的驱动单元即便是绝对位 置传感器有相同位置值也可能对应不同的机械零位。
3.现阶段机器人的零点标定通常采用机械工装并结合结构上的约束关系 进行配合实现,该方式在约束基准简单直接的场所具有高效性,但对于发球 机器人来说可操作性较差。


技术实现要素:

4.为至少在一定程度上克服相关技术中存在的问题,本技术提供了一种乒 乓球发球机器人零点标定方法及标定系统。
5.根据本技术实施例的第一方面,本技术提供了一种乒乓球发球机器人零 点标定方法,其包括以下步骤:
6.根据乒乓球理论飞行模型,配置一组机器人期望发球参数和乒乓球在球 台上的期望落点值;
7.控制发球机器人以当前的零点偏移值确定软件零位,并以配置的机器人 发球参数发n个球;
8.利用视觉系统获取发球机器人所发n个球的落点值;
9.对乒乓球当前轨迹的实际落点进行处理,以确定发球机器人的零点标定 是否成功,如果是,则标定成功;否则,利用nelder-mead优化算法调整零 点偏移值,重新确定软件零位,直至发球机器人的零点标定成功。
10.上述乒乓球发球机器人零点标定方法中,所述乒乓球理论飞行模型的获 取过程为:
11.利用直流有刷电机的闭环控制,获得多组上挤球轮电机和下挤球轮电机 的不同转速下发出去的乒乓球的线速度和旋转速度;
12.利用多项式的最小二乘法拟合获得乒乓球的期望线速度v
ball
、乒乓球期 的望旋转速度w
ball
、上挤球轮的期望转速n
up
以及下挤球轮的期望转速n
down
的约束关系:
[0013][0014]
式中,k1,k2,k3,q1,q2和q3均为拟合获得的多项式系数;
[0015]
根据乒乓球线速度大小v
ball
和第三杆件相对世界坐标系的旋转矩阵获得 乒乓球线速度矢量vb:
[0016][0017]
其中,旋转矩阵为
[0018][0019]
根据旋转速度大小w
ball
和第三杆件相对世界坐标系的旋转矩阵获得乒 乓球旋转速度矢量wb:
[0020][0021]
乒乓球飞行的起始位置pb为
[0022][0023]
在各驱动单元控制参数q=[n
up
,n
down
,q
roll
,q
pitch
,q
yaw
]确定的情况下,获得 一组唯一的乒乓球初始状态pb,vb和wb;
[0024]
将乒乓球在空气中飞行的动力学模型转换成离散模型;
[0025]
其中,乒乓球在空气中飞行的动力学模型为:
[0026][0027]
其中,表示乒乓球线加速度矢量(线速度的微分),||v(t)||表示乒 乓球线速度大小,v(t)表示乒乓球线速度矢量,kc表示阻力系数,kb表示马 格努斯力系数,w
x
,wy,wz分别表示乒乓球旋转速度在三维坐标系下的三 个分量,g表示重力加速度;
[0028]
乒乓球在空气中飞行的动力学模型转换成的离散模型为:
[0029][0030]
其中,tc表示离散采样周期,v(k+1)和v(k)分别表示下一个周期和当 前周期的乒乓球线速度矢量;
[0031]
各个周期的线速度矢量v(i)进行积分得到乒乓球的位置 在已知乒乓球初始状态pb,vb和wb的情况下,利用乒乓球 在空中飞行动力学模型获得整段飞行轨迹,以获得此次发球的落点参数p。
[0032]
上述乒乓球发球机器人零点标定方法中,所述利用视觉系统获取发球机 器人所发n个球的落点值的过程为:
[0033]
视觉系统利用深度学习算法从双目视觉图像中识别出乒乓球,并定位乒 乓球的中心点像素;
[0034]
利用双目视觉算法完成乒乓球中心位置的三维重建,获得乒乓球在当前 时刻的位置;
[0035]
根据整段飞行时间中乒乓球的位置找出轨迹最低点p
ba
(k),利用与轨迹 最低点p
ba
(k)相邻的连续六个位置点p
ba
(k-1)至p
ba
(k-6)进行多项式拟合, 获得乒乓球当前轨迹的实际落点p
aj
(x
aj
,y
aj
),该落点所在的高度为乒乓球桌 的高度。
[0036]
上述乒乓球发球机器人零点标定方法中,所述对乒乓球当前轨迹的实际 落点进行处理,以确定发球机器人的零点标定是否成功的过程为:
[0037]
对n个落点进行切尾均值处理获得发球机器人重复发球实际落点的估 计值pa(xa,ya);
[0038]
根据实际落点的估计值pa(xa,ya)和配置的期望落点值pd(xd,yd)得到当 前发球机器人的发球误差pe(xe,ye);
[0039]
判断发球误差是否符合出厂标准,如果是,则零点标定成功,保存当前 的机器人发球参数;否则,标定次数加一,进一步判断当前的标定次数n是 否达到最大标定次数n
max
,如果是,则发球机器人零点标定失败,发球机器 人不合格;否则,利用nelder-mead优化算法对当前的零点偏移值进行调整, 以重新进行标定。
[0040]
进一步地,所述利用nelder-mead优化算法对当前的零点偏移值进行调 整的过程为:
[0041]
s441、构建优化目标函数其中,(xj,yj) 是待优化参数q
pitch
和q
yaw
的某次迭代优化值mj(q
pj
,q
yj
)代入到乒乓球理论飞 行模型p=f(q)得到的落点值;
[0042]
s442、将配置的俯仰关节角度值和左右关节角度值作为算法迭 代初始值其中,q
p0
表示俯仰角,q
y0
表示偏航角;
[0043]
s443、利用单一维度扩大的方法得到单纯形的另外两维坐标和其中,ne表示扩大系数;
[0044]
s444、分别计算单纯形三个顶点取值的目标函数结果值,并进行从小到 大的排序,得到相应的待优化参数,即
[0045]
如果则目标函数的结果符合要求,为所需的待优化参数, 算法结束;其中,分别表示迭代过程中单纯形三个顶点取值;
[0046]
如果或者则算法陷入局部 最优,优化求解失败,算法结束;
[0047]
其中,εr表示最优化求解误差允许值,εj表示目标函数差异最小允许值, εm表示待优化参数差异最小允许值,上标k表示迭代的次数;
[0048]
否则,进入步骤s445;
[0049]
s445、计算待优化参数的平均值
[0050][0051]
s446、计算待优化参数的反射点rk及其目标函数值j(rk);
[0052][0053]
如果则返回步骤s444,进行下一步 迭代;
[0054]
如果则计算拓展点sk:如果 j(sk)<j(rk),则返回步骤s444,进行下一步迭代,否则返回步骤s444,进行下一步迭代;
[0055]
如果则第一类是收缩点bk为: 如果j(bk)<j(rk),则返回步骤s444,进行 下一步迭代,否则进入步骤s447;
[0056]
如果则第二类收缩点ck为:如果 则返回步骤s444,进行下一步迭代,否则进入步 骤s447;
[0057]
s447、计算下一次迭代的待优化参数
[0058]
[0059][0060][0061]
返回步骤s444,进行下一步迭代。
[0062]
根据本技术实施例的第二方面,本技术还提供了一种乒乓球发球机器人 零点标定系统,其包括零点待标定的发球机器人、乒乓球桌、视觉系统和标 定控制器,所述发球机器人设置在所述乒乓球桌长度方向的一侧,所述发球 机器人和视觉系统均与所述标定控制器连接;
[0063]
所述标定控制器基于期望落点将发球参数传递给所述发球机器人,使所 述发球机器人发n球,所述发球机器人每发一个球,所述视觉系统将会获取 这段乒乓球的飞行轨迹,并基于这段飞行轨迹获得此次发球的实际落点,并 将该实际落点值传输给所述标定控制器;
[0064]
所述标定控制器在n次发球完成之后,利用n个实际落点值切尾均值 获得实际落点的估计值,对比实际落点的估计值和最初配置的期望落点得到 落点误差,当落点误差符合出厂标准时,所述发球机器人的零点标定完成, 否则,标定次数累加并判断是否超过所允许的最大标定次数,如果是,则所 述发球机器人的零点标定失败;否则,利用nelder-mead优化算法调整发球 参数并传递给所述发球机器人,进行发球动作,重新进行标定。
[0065]
根据本技术的上述具体实施方式可知,至少具有以下有益效果:本技术 提供的乒乓球发球机器人零点标定方法采用自动化的方式完成发球机器人 零点的标定,有效快捷,有利于无人化工厂的实现,同时可减少人为因素的 干扰,能够有效地保证产品出厂的一致性。
[0066]
本技术以功能为导向地进行零点标定,更加直接,能够减少机械约束装 配的操作。
[0067]
应了解的是,上述一般描述及以下具体实施方式仅为示例性及阐释性 的,其并不能限制本技术所欲主张的范围。
附图说明
[0068]
下面的所附附图是本技术的说明书的一部分,其示出了本技术的实施 例,所附附图与说明书的描述一起用来说明本技术的原理。
[0069]
图1为本技术具体实施方式提供的一种乒乓球发球机器人零点标定方法 的流程图之一。
[0070]
图2为本技术具体实施方式提供的一种乒乓球发球机器人零点标定方法 的流程图之二。
[0071]
图3为本技术具体实施方式提供的一种乒乓球发球机器人零点标定方法 中发球机器人的结构示意图。
[0072]
图4为本技术具体实施方式提供的一种乒乓球发球机器人零点标定系统 的结构示意图。
[0073]
附图标记说明:
[0074]
1、上挤球轮;2、下挤球轮;3、侧旋关节;4、俯仰关节;5、左右关 节;6、发出去的乒乓球。
具体实施方式
[0075]
为使本技术实施例的目的、技术方案和优点更加清楚明白,下面将以附 图及详细叙述清楚说明本技术所揭示内容的精神,任何所属技术领域技术人 员在了解本技术内容的实施例后,当可由本技术内容所教示的技术,加以改 变及修饰,其并不脱离本技术内容的精神与范围。
[0076]
本技术的示意性实施例及其说明用于解释本技术,但并不作为对本技术 的限定。另外,在附图及实施方式中所使用相同或类似标号的元件/构件是用 来代表相同或类似部分。
[0077]
关于本文中所使用的“第一”、“第二”、

等,并非特别指称次序或顺位 的意思,也非用以限定本技术,其仅为了区别以相同技术用语描述的元件或 操作。
[0078]
关于本文中所使用的“包含”、“包括”、“具有”、“含有”等等,均为开放 性的用语,即意指包含但不限于。
[0079]
关于本文中所使用的“及/或”,包括所述事物的任一或全部组合。
[0080]
关于本文中的“多个”包括“两个”及“两个以上”;关于本文中的“多组”包 括“两组”及“两组以上”。
[0081]
某些用以描述本技术的用词将于下或在此说明书的别处讨论,以提供本 领域技术人员在有关本技术的描述上额外的引导。
[0082]
如图1和图2所示,本技术实施例提供的乒乓球发球机器人零点标定方 法包括以下步骤:
[0083]
s1、根据乒乓球理论飞行模型p=f(q),配置一组机器人期望发球参数 qd和乒乓球在球台上的期望落点值pd(xd,yd)。
[0084]
其中,q表示机器人期望发球参数,p表示乒乓球在球台上的期望落点。
[0085]
如图3所示,机器人期望发球参数即机器人各驱动单元的期望控制参数, 其包括发球时上挤球轮1的期望转速n
up
,下挤球轮2的期望转速n
down
,侧 旋关节的期望角度q
roll
,俯仰关节的期望角度q
pitch
,左右关节的期望角度 q
yaw
,即q=[n
up
,n
down
,q
roll
,q
pitch
,q
yaw
]。
[0086]
配置的一组机器人期望发球参数qd为:
[0087]
s2、控制发球机器人以当前的零点偏移值q
offset
确定软件零位,并以配置 的机器人发球参数发n个球。
[0088]
s3、利用视觉系统获取发球机器人所发n个球的落点值p
ai
(x
ai
,y
ai
),其 具体过程为:
[0089]
对于发球机器人所发的n个球,均进行如下处理,以获得n个落点。
[0090]
首先,视觉系统利用深度学习算法从双目视觉图像中识别出乒乓球,并 定位乒乓球的中心点像素。
[0091]
其次,利用双目视觉算法完成乒乓球中心位置的三维重建,获得乒乓球 在当前时
刻的位置。
[0092]
最后,根据整段飞行时间中乒乓球的位置找出轨迹最低点p
ba
(k),利用 与轨迹最低点p
ba
(k)相邻的连续六个位置点p
ba
(k-1)至p
ba
(k-6)进行多项式 拟合,获得乒乓球当前轨迹的实际落点p
aj
(x
aj
,y
aj
),该落点所在的高度为乒 乓球桌的高度。
[0093]
s4、对乒乓球当前轨迹的实际落点进行处理,以确定发球机器人的零点 标定是否成功,如果是,则标定成功;否则,利用nelder-mead优化算法调 整零点偏移值,返回步骤s1重新执行零点标定方法的各个步骤,直至发球 机器人的零点标定成功,其具体过程为:
[0094]
s41、对n个落点进行切尾均值处理获得发球机器人重复发球实际落点 的估计值pa(xa,ya)。
[0095]
具体地,切尾均值就是去掉与期望落点值pd(xd,yd)距离最大和最小的落 点之后,对剩余落点的横坐标和纵坐标分别进行取平均运算,得到实际落点 的估计值pa(xa,ya)。
[0096]
s42、根据实际落点的估计值pa(xa,ya)和配置的期望落点值pd(xd,yd)得 到当前发球机器人的发球误差pe(xe,ye);
[0097]
s43、判断发球误差是否符合出厂标准,如果是,则零点标定成功,保 存当前的机器人发球参数;否则,标定次数加一,并进入步骤s44。
[0098]
s44、判断当前的标定次数n是否达到最大标定次数n
max
,如果是,则发 球机器人零点标定失败,发球机器人不合格;否则,利用nelder-mead优化 算法对当前的零点偏移值进行调整,以重新进行标定。
[0099]
上述步骤s1中,获取乒乓球理论飞行模型p=f(q)的具体过程为:
[0100]
s11、利用直流有刷电机的闭环控制,获得多组上挤球轮1电机和下挤 球轮2电机的不同转速下发出去的乒乓球6的线速度和旋转速度。
[0101]
s12、利用多项式的最小二乘法拟合获得乒乓球的期望线速度v
ball
、乒乓 球期的望旋转速度w
ball
、上挤球轮1的期望转速n
up
以及下挤球轮2的期望转 速n
down
的约束关系:
[0102][0103]
式中,k1,k2,k3,q1,q2和q3均为拟合获得的多项式系数。
[0104]
s13、根据乒乓球发球机器人的驱动单元布局,建立如图3所示的各关 节驱动的杆件坐标系,计算各坐标系对应的转换矩阵如下:
[0105]
基座的坐标系与世界坐标系的转换关系t
0w
为:
[0106][0107]
第一杆件(用于连接俯仰关节和左右关节)的坐标系与杆件0的坐标系 的转换关系t
10
为:
[0108][0109]
第二杆件(用于连接侧旋关节和俯仰关节)的坐标系与杆件1的坐标系 的转换关系为:
[0110][0111]
第三杆件(用于连接侧旋关节和上挤球轮1与下挤球轮2)的坐标系与 杆件2的坐标系的转换关系为:
[0112][0113]
其中,l1,l2和l3分别对应表示发球机器人第一杆件、第二杆件和第三 杆件的尺寸参数,利用各杆件坐标系转换矩阵的连乘关系可得到上挤球轮1 和下挤球轮2连接的第三杆件的坐标系相对世界坐标系的转换矩阵为:
[0114][0115]
s14、根据乒乓球线速度大小v
ball
和第三杆件相对世界坐标系的旋转矩阵 可以获得乒乓球线速度矢量vb:
[0116][0117]
其中,旋转矩阵为转换矩阵t
3w
的前3行和前3列,
[0118][0119]
s15、根据旋转速度大小w
ball
和第三杆件相对世界坐标系的旋转矩阵可 以获得乒
乓球旋转速度矢量wb:
[0120][0121]
s16、乒乓球飞行的起始位置pb为转换矩阵t
3w
的第4列的前3行,即:
[0122][0123]
因此,在各驱动单元控制参数q=[n
up
,n
down
,q
roll
,q
pitch
,q
yaw
]确定的情况 下,可以获得一组唯一的乒乓球初始状态pb,vb和wb。
[0124]
s17、将乒乓球在空气中飞行的动力学模型转换成离散模型;
[0125]
其中,乒乓球在空气中飞行的动力学模型为:
[0126][0127]
其中,表示乒乓球线加速度矢量(线速度的微分),||v(t)||表示乒 乓球线速度大小,v(t)表示乒乓球线速度矢量,kc表示阻力系数,kb表示马 格努斯力系数,w
x
,wy,wz分别表示乒乓球旋转速度在三维坐标系下的三 个分量,且旋转速度在乒乓球飞行过程中可以认为是保持不变的,g表示重 力加速度,是一个负数常量。
[0128]
乒乓球在空气中飞行的动力学模型转换成的离散模型为:
[0129][0130]
其中,tc表示离散采样周期,v(k+1)和v(k)分别表示下一个周期和当 前周期的乒乓球线速度矢量。
[0131]
s18、各个周期的线速度矢量v(i)进行积分即可得到乒乓球的位置 因此在已知乒乓球初始状态pb,vb和wb的情况下,利用乒 乓球在空中飞行动力学模型可以获得整段飞行轨迹,也就可以获得此次发球 的落点参数p,因此,对于任意的发球参数q,有唯一的落点p与之匹配, 从而获得p=f(q)这个关系式。
[0132]
上述步骤s44中,考虑到乒乓球在空中飞行轨迹的非线性模型,采用 nelder-mead优化算法获得机器人实现当前实际落点对应发球机器人各驱动 单元的的理论控制参数:位置控制参数qa(n),其中,n表示标定次数。此 处本技术需要调整的参数是俯仰关节角度q
pitch
和左右关节角度q
yaw
。上挤球 轮1转速n
up
、下挤球轮2转速n
down
和侧旋关节角度q
roll

固定值,无需要调 整。
[0133]
根据当前实际落点可以确定一组理论俯仰关节角度和理论左右 关节角度因此,可以通过nelder-mead优化算法完成非线性问题的 求解。
[0134]
nelder-mead优化算法是一个经典的多维非线性优化算法,利用 nelder-mead优化算法对当前的零点偏移值进行调整的具体过程为:
[0135]
s441、构建优化目标函数其中,(xj,yj) 是待优化参数q
pitch
和q
yaw
的某次迭代优化值mj(q
pj
,q
yj
)代入到乒乓球理论飞 行模型p=f(q)得到的落点值。
[0136]
s442、将配置的俯仰关节角度值和左右关节角度值作为算法迭 代初始值其中,q
p0
表示俯仰角,q
y0
表示偏航角。
[0137]
s443、利用单一维度扩大的方法得到单纯形的另外两维坐标和其中,ne表示扩大系数,可以根据实际数据 的取值范围进行调整。
[0138]
s444、分别计算单纯形三个顶点取值的目标函数结果值,并进行从小到 大的排序,得到相应的待优化参数,即其中, 分别表示迭代过程中单纯形三个顶点取值;
[0139]
如果则目标函数的结果符合要求,为所需的待优化参数, 算法结束;
[0140]
如果或者则算法陷入局部 最优,优化求解失败,算法结束;
[0141]
其中,εr表示最优化求解误差允许值,εj表示目标函数差异最小允许值, εm表示待优化参数差异最小允许值,上标k表示迭代的次数。
[0142]
否则,进入步骤s445。
[0143]
s445、计算待优化参数的平均值
[0144][0145]
s446、计算待优化参数的反射点rk及其目标函数值j(rk);
[0146][0147]
如果则返回步骤s444,进行下一步 迭代;
[0148]
如果则计算拓展点sk:如果 j(sk)<j(rk),则返回步骤s444,进行下一步迭代,否则返回步骤s444,进行下一步迭代;
[0149]
如果则第一类是收缩点bk为:如果j(bk)<j(rk),则返回步骤s444,进行 下一步迭代,否则进入步骤s447。
[0150]
如果则第二类收缩点ck为:如果 则返回步骤s444,进行下一步迭代,否则进入步 骤s447。
[0151]
s447、计算下一次迭代的待优化参数
[0152][0153][0154][0155]
返回步骤s444,进行下一步迭代。
[0156]
通过nelder-mead优化算法得到实际落点对应发球机器人理论俯仰关节 角度和理论左右关节角度将实际落点的理论值与期望值 作差即可得到零点偏移值的调节量。
[0157]
即俯仰关节角度的偏移量为:
[0158][0159]
左右关节角度的偏移量为:
[0160][0161]
调整零点偏移值q
offset
(δq
pitch
(n),δq
yaw
(n))后返回步骤s442。
[0162]
基于本技术实施例提供的乒乓球发球机器人零点标定方法,如图4所示, 本技术还提供了一种乒乓球发球机器人零点标定系统,其包括零点待标定的 发球机器人、乒乓球桌、视觉系统和标定控制器,发球机器人设置在乒乓球 桌长度方向的一侧,发球机器人和视觉系统均与标定控制器连接。
[0163]
标定控制器基于期望落点将发球参数传递给发球机器人,使发球机器人 发n球,发球机器人每发一个球,视觉系统将会获取这段乒乓球的飞行轨迹, 并基于这段飞行轨迹获得此次发球的实际落点,并将该实际落点值传输给标 定控制器,标定控制器在n次发球完成之后,利用n个实际落点值切尾均 值获得实际落点的估计值,对比实际落点的估计值和最初配置的期望落点得 到落点误差,当落点误差符合出厂标准时,发球机器人的零点标定完成,否 则标定次数累加并判断是否超过所允许的最大标定次数,如果是,则发球机 器人的零点标定失败,不合格,否则利用nelder-mead优化算法调整发球参 数并传递给发球机器人,进行发球动作,重新进行标定。
[0164]
需要说明的是:上述实施例提供的乒乓球发球机器人零点标定系统仅以 上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述 处理分配由不同的程序模块完成,即将乒乓球发球机器人零点标定系统的内 部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外, 上述实施例提供的乒乓球发球机器人零点标定系统与乒乓球发球机器人零 点标定方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不 再赘述。
[0165]
上述的本技术实施例可在各种硬件、软件编码或两者组合中进行实施。 例如,本技术的实施例也可为在数据信号处理器中执行上述方法的程序代 码。本技术也可涉及计算机处理器、数字信号处理器、微处理器或现场可编 程门阵列执行的多种功能。可根据本技术配置上述处理器执行特定任务,其 通过执行定义了本技术揭示的特定方法的机器可读软件代码或固件代码来 完成。可将软件代码或固件代码发展为不同的程序语言与不同的格式或形 式。也可为不同的目标平台编译软件代码。然而,根据本技术执行任务的软 件代码与其他类型配置代码的不同代码样式、类型与语言不脱离本技术的精 神与范围。
[0166]
以上所述仅为本技术示意性的具体实施方式,在不脱离本技术的构思和 原则的前提下,任何本领域的技术人员所做出的等同变化与修改,均应属于 本技术保护的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1