减弱机器人转动抖动的方法及计算机可读存储介质转让专利

申请号 : CN202010953489.X

文献号 : CN112276938B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘德建陈春雷郭玉湖陈宏

申请人 : 福建天泉教育科技有限公司

摘要 :

本发明公开了一种减弱机器人转动抖动的方法及计算机可读存储介质,方法包括:将机器人的转动机构的转动扇区平均划分为n个执行区间;在相邻两个执行区间之间设置保守区间;当机器人的控制端接收到转动机构对应的转动命令时,确定转动命令中的角度值所处的执行区间;若转动机构当前所处的执行区间与所述角度值所处的执行区间不同且不相连,或转动机构当前所处的执行区间与所述角度值所处的执行区间相连且所述角度值不处于转动机构当前所处的执行区间与所述角度值所处的执行区间之间的保守区间,则控制端控制转动机构转动到所述角度值所处的执行区间的中心位置。本发明可提升机器人转动的稳定性。

权利要求 :

1.一种减弱机器人转动抖动的方法,其特征在于,包括:将机器人的转动机构的转动扇区平均划分为n个执行区间,所述n为预设的个数;

在相邻两个执行区间之间设置保守区间,所述保守区间的区间长度小于所述执行区间的区间长度,且所述保守区间位于所述相邻两个执行区间的正中间;

当机器人的控制端接收到所述转动机构对应的转动命令时,确定所述转动命令中的角度值所处的执行区间;

若所述转动机构当前所处的执行区间与所述角度值所处的执行区间不同且不相连,或所述转动机构当前所处的执行区间与所述角度值所处的执行区间相连且所述角度值不处于转动机构当前所处的执行区间与所述角度值所处的执行区间之间的保守区间,则控制端控制所述转动机构转动到所述角度值所处的执行区间的中心位置。

2.根据权利要求1所述的减弱机器人转动抖动的方法,其特征在于,若所述转动机构当前所处的执行区间与所述角度值所处的执行区间不同且不相连,或所述转动机构当前所处的执行区间与所述角度值所处的执行区间相连且所述角度值不处于转动机构当前所处的执行区间与所述角度值所处的执行区间之间的保守区间,则控制端控制所述转动机构转动到所述角度值所处的执行区间的中心位置具体为:判断所述转动机构当前所处的执行区间与所述角度值所处的执行区间是否相同;

若相同,则控制端等待接收下一条转动命令;

若不同,则判断转动机构当前所处的执行区间与所述角度值所处的执行区间是否相连;

若不相连,则控制端控制所述转动机构转动到所述角度值对应的执行区间的中心位置;

若相连,则判断所述角度值是否处于转动机构当前所处的执行区间与所述角度值所处的执行区间之间的保守区间;

若是,则控制端等待接收下一条转动命令;

若否,则控制端控制所述转动机构转动到所述角度值对应的执行区间的中间。

3.根据权利要求1所述的减弱机器人转动抖动的方法,其特征在于,所述机器人为人型机器人,所述转动机构与一人体部位对应;

所述当机器人的控制端接收到所述转动机构对应的转动命令时,确定所述转动命令中的角度值所处的执行区间之前,进一步包括:获取连续的多帧图像,所述多帧图像中包含所述一人体部位;

通过预设的状态检测算法,依序对所述多帧图像进行检测,得到各帧图像中所述一人体部位对应的角度,所述状态检测算法为头部状态检测算法,所述头部状态检测算法基于openface实现,得到的角度是相对预设的0度方向的角度,所述0度方向与机器人中对应的转动机构的转动扇区的0度方向一致;

依序根据各帧图像中所述角度的角度值,生成所述转动机构对应的转动命令,并发送至机器人的控制端。

4.根据权利要求3所述的减弱机器人转动抖动的方法,其特征在于,所述通过预设的状态检测算法,依序对所述多帧图像进行检测,得到各帧图像中所述一人体部位对应的角度之后,进一步包括:

根据各帧图像及其之前和/或之后预设数量的图像中所述一人体部位对应的角度,分别对各帧图像中所述一人体部位对应的角度进行滤波。

5.根据权利要求1所述的减弱机器人转动抖动的方法,其特征在于,所述 θ为转动机构的转动扇区的圆心角, 表示取下整。

6.根据权利要求1所述的减弱机器人转动抖动的方法,其特征在于,所述保守区间的区间长度为所述执行区间的区间长度的一半。

7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1‑6任一项所述的方法的步骤。

说明书 :

减弱机器人转动抖动的方法及计算机可读存储介质

技术领域

[0001] 本发明涉及机器人技术领域,尤其涉及一种减弱机器人转动抖动的方法及计算机可读存储介质。

背景技术

[0002] 根据控制端数据,机器人硬件在执行转动命令的时候会出现抖动的现象。造成这种现象的原因往往是因为控制端数据本身具有抖动性。如果控制端传入来回抖动的数据,
那机器人硬件在执行的时候必定也会出现来回抖动,这极大地影响了用户体验效果。
[0003] 为了改善前述问题,目前有两种方法可以选择。一种是对控制端的输入数据进行滤波,代表算法有Kalman滤波。另一种是在执行端限制机器人的转动区间,通过设置若干固
定区间,若控制端前后输入的数据在同一区间,则保持当前状态。工业上常常结合两者方
法,同时用于机构转动的抖动现象。但是,第二种方法存在一个缺陷,当执行端接收到的数
据在区间边界来回波动时,抖动反而更加明显。划分更多的区间能改善这一现象(这也是大
多数人选择的做法),但并没有从源头解决这一问题。

发明内容

[0004] 本发明所要解决的技术问题是:提供一种减弱机器人转动抖动的方法及计算机可读存储介质,可有效避免机器人的转动机构转动时来回抖动的问题,提升转动的稳定性。
[0005] 为了解决上述技术问题,本发明采用的技术方案为:一种减弱机器人转动抖动的方法,包括:
[0006] 将机器人的转动机构的转动扇区平均划分为n个执行区间,所述n为预设的个数;
[0007] 在相邻两个执行区间之间设置保守区间,所述保守区间的区间长度小于所述执行区间的区间长度,且所述保守区间位于所述相邻两个执行区间的正中间;
[0008] 当机器人的控制端接收到所述转动机构对应的转动命令时,确定所述转动命令中的角度值所处的执行区间;
[0009] 若所述转动机构当前所处的执行区间与所述角度值所处的执行区间不同且不相连,或所述转动机构当前所处的执行区间与所述角度值所处的执行区间相连且所述角度值
不处于转动机构当前所处的执行区间与所述角度值所处的执行区间之间的保守区间,则控
制端控制所述转动机构转动到所述角度值所处的执行区间的中心位置。
[0010] 本发明还提出一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述的方法的步骤。
[0011] 本发明的有益效果在于:通过将转动机构的转动扇区划分为若干个执行区间,并在执行区间的基础上设置保守区间,当转动命令中的角度值所处的执行区间与转动机构当
前所处的执行区间相同时,或相连且转动命令中的角度值落在保守区间时,使转动机构维
持原先的状态,从而避免了来回抖动的问题。本发明可有效避免机器人的转动机构转动时
来回抖动的问题,提升转动的稳定性。

附图说明

[0012] 图1为本发明的一种减弱机器人转动抖动的方法的流程图;
[0013] 图2为本发明实施例一的方法流程图;
[0014] 图3为本发明实施例一的执行区间和保守区间的示意图。

具体实施方式

[0015] 为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。
[0016] 请参阅图1,一种减弱机器人转动抖动的方法,包括:
[0017] 将机器人的转动机构的转动扇区平均划分为n个执行区间,所述n为预设的个数;
[0018] 在相邻两个执行区间之间设置保守区间,所述保守区间的区间长度小于所述执行区间的区间长度,且所述保守区间位于所述相邻两个执行区间的正中间;
[0019] 当机器人的控制端接收到所述转动机构对应的转动命令时,确定所述转动命令中的角度值所处的执行区间;
[0020] 若所述转动机构当前所处的执行区间与所述角度值所处的执行区间不同且不相连,或所述转动机构当前所处的执行区间与所述角度值所处的执行区间相连且所述角度值
不处于转动机构当前所处的执行区间与所述角度值所处的执行区间之间的保守区间,则控
制端控制所述转动机构转动到所述角度值所处的执行区间的中心位置。
[0021] 从上述描述可知,本发明的有益效果在于:可有效避免机器人的转动机构转动时来回抖动的问题,提升转动的稳定性。
[0022] 进一步地,若所述转动机构当前所处的执行区间与所述角度值所处的执行区间不同且不相连,或所述转动机构当前所处的执行区间与所述角度值所处的执行区间相连且所
述角度值不处于转动机构当前所处的执行区间与所述角度值所处的执行区间之间的保守
区间,则控制端控制所述转动机构转动到所述角度值所处的执行区间的中心位置具体为:
[0023] 判断所述转动机构当前所处的执行区间与所述角度值所处的执行区间是否相同;
[0024] 若相同,则控制端等待接收下一条转动命令;
[0025] 若不同,则判断转动机构当前所处的执行区间与所述角度值所处的执行区间是否相连;
[0026] 若不相连,则控制端控制所述转动机构转动到所述角度值对应的执行区间的中心位置;
[0027] 若相连,则判断所述角度值是否处于转动机构当前所处的执行区间与所述角度值所处的执行区间之间的保守区间;
[0028] 若是,则控制端等待接收下一条转动命令;
[0029] 若否,则控制端控制所述转动机构转动到所述角度值对应的执行区间的中间。
[0030] 由上述描述可知,当转动命令中的角度值所处的执行区间与转动机构当前所处的执行区间相同时,或相连且转动命令中的角度值落在保守区间时,使转动机构维持原先的
状态,从而避免了来回抖动的问题。
[0031] 进一步地,所述机器人为人型机器人,所述转动机构与一人体部位对应;
[0032] 所述当机器人的控制端接收到所述转动机构对应的转动命令时,确定所述转动命令中的角度值所处的执行区间之前,进一步包括:
[0033] 获取连续的多帧图像,所述多帧图像中包含所述一人体部位;
[0034] 通过预设的状态检测算法,依序对所述多帧图像进行检测,得到各帧图像中所述一人体部位对应的角度;
[0035] 依序根据各帧图像中所述角度的角度值,生成所述转动机构对应的转动命令,并发送至机器人的控制端。
[0036] 由上述描述可知,可适用于机器人模仿人类动作的场景。
[0037] 进一步地,所述通过预设的状态检测算法,依序对所述多帧图像进行检测,得到各帧图像中所述一人体部位对应的角度之后,进一步包括:
[0038] 根据各帧图像及其之前和/或之后预设数量的图像中所述一人体部位对应的角度,分别对各帧图像中所述一人体部位对应的角度进行滤波。
[0039] 由上述描述可知,通过滤波算法对各帧图像检测到的角度进行滤波,即对输入控制端的转动命令进行滤波,可初步减轻抖动现象。
[0040] 进一步地,所述 θ为转动机构的转动扇区的圆心角, 表示取下整。
[0041] 进一步地,所述保守区间的区间长度为所述执行区间的区间长度的一半。
[0042] 由上述描述可知,通过合理划分执行区间和保守区间,可最大程度地减弱抖动。
[0043] 本发明还提出一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述的方法的步骤。
[0044] 实施例一
[0045] 请参照图2‑3,本发明的实施例一为:一种减弱机器人转动抖动的方法,可应用于人型机器人,并适用于机器人模仿人类动作的场景。
[0046] 人型机器人的各转动机构与各人体部位对应。例如,机器人的眼皮存在一个转动自由度,即眼部上下方向上的转动,转动时可实现眨眼动作;机器人的下巴存在一个转动自
由度,即脸部上下方向上的转动,转动时可实现说话动作;机器人的脖子存在三个转动自由
度,即头部左右方向上的转动、头部上下方向上的转动以及脸部所在平面内的转动,转动时
可分别实现左右摇头动作、点头仰头动作和歪头动作。
[0047] 本实施例中,转动机构对应的一条转动命令实际上为一个角度值,代表转动机构要转动到哪个角度,以眼皮为例,即表示眼皮要睁开到指定的角度,眼皮真开的最小角度到
最大角度的范围即眼皮对应的转动机构的转动扇形区域。
[0048] 本实施例以机器人模仿人类动作时,减弱机器人头部左右方向转动抖动为例进行说明。如图2所示,包括如下步骤:
[0049] S1:将机器人的转动机构的转动扇区平均划分为n个执行区间;即将机器人脖子处对应头部左右方向转动的转动机构的转动扇区平均划分为n个执行区间,所述n为预设的个
数。其中,假设该转动机构的转动扇区的圆心角为θ,优选地, 表示取下整。
[0050] S2:在相邻两个执行区间之间设置保守区间。其中,所述保守区间的区间长度小于所述执行区间的区间长度。优选地,保守区间的区间长度为1/2的执行区间的区间长度,且
所述保守区间位于所述相邻两个执行区间的正中间,即保守区间分别与其两边的执行区间
的1/4重合。
[0051] 例如,如图3所示,扇形弧线被12个扇形半径划分出13个执行区间,每两个执行区间之间被圆形覆盖的部分就是保守区间。
[0052] S3:通过摄像头采集图像,即获取连续的多帧图像,所述多帧图像中包含所述转动机构对应的人体部位,即包含人体头部。本步骤即通过摄像头实时采集人体头部动作,用于
后续对机器人头部转动的控制。
[0053] S4:通过预设的状态检测算法,依序对所述多帧图像进行检测,得到各帧图像中所述人体部位对应的角度;即通过头部状态检测算法,依序对所述各帧图像进行检测,得到各
帧图像中头部左右转动的角度。其中,头部状态检测算法可基于openface实现,得到的角度
是相对预设的0度方向的角度,所述0度方向可与机器人中对应的转动机构的转动扇区的0
度方向一致。
[0054] 进一步地,在其他实施例中,例如若要减弱机器人的眼皮或嘴巴的转动抖动,则可通过头部状态检测算法,检测图像中眼部的张合角度或嘴部的张合角度。若要减弱机器人
对应其他人体部位的转动机构的转动抖动,则可采用相应的对应人体部位的状态检测算
法。
[0055] S5:依序对各帧图像中所述人体部位对应的角度进行滤波,即依序对各帧图像中头部左右转动的角度进行滤波。具体地,可结合各帧图像之前或之后的几帧图像中头部左
右转动的角度,利用kalman滤波算法,对各帧图像中头部左右转动的角度进行滤波,以减弱
抖动。
[0056] S6:依序根据各帧图像中所述角度的角度值,生成所述转动机构对应的转动命令,并发送至机器人的控制端。其中,对于一个转动机构,一帧图像检测得到一个对应的角度,
生成一条对应的转动命令;转动命令逐条发送给机器人控制端。
[0057] 进一步地,步骤S3‑S6可以是对图像进行实时采集、实时处理生成转动命令并实时将转动命令发送给机器人控制端的过程,也可以是采集多帧图像后再分别进行处理生成多
条转动命令,最后再依序发送给机器人控制端的过程。
[0058] S7:当机器人的控制端接收到所述转动命令时,确定所述转动命令中的角度值所处的执行区间。在划分执行区间后,即可确定各个执行区间相对0度方向的角度范围,通过
确定转动命令中的角度值所处的角度范围,即可确定该角度值所处的执行区间。
[0059] S8:判断所述转动机构当前所处的执行区间与所述角度值所处的执行区间是否相同,若是,则执行步骤S11,若否,则执行步骤S9。
[0060] S9:判断所述转动机构当前所处的执行区间与所述角度值所处的执行区间是否相连,若是,则执行步骤S10,若否,则执行步骤S12。
[0061] S10:判断所述角度值是否处于转动机构当前所处的执行区间与所述角度值所处的执行区间之间的保守区间,若是,则执行步骤S11,若否,则执行步骤S12。
[0062] S11:不控制所述转动机构进行转动,即保持所述转动机构不动,控制端等待接收下一条转动命令。
[0063] S12:控制端控制所述转动机构转动到所述角度值对应的执行区间的中心位置,即转动后,朝向所述角度值对应的执行区间的中心线方向。
[0064] 本实施例的方法可应用于机器人的各个转动机构,可通过摄像头同时采集人体多个部位的图像并检测得到各人体部位对应的转动角度,生成各转动机构对应的转动命令并
输入至机器人的控制端,机器人的控制端根据各转动机构对应的转动命令,分别对各转动
机构进行控制。
[0065] 本实施例通过滤波算法对各帧图像检测到的角度进行滤波,即对输入控制端的转动命令进行滤波,初步减轻抖动现象;通过将转动机构的转动扇区划分为若干个执行区间,
并在执行区间的基础上设置保守区间,当转动命令中的角度值所处的执行区间与转动机构
当前所处的执行区间相同时,或相连且转动命令中的角度值落在保守区间时,使转动机构
维持原先的状态,进一步减轻了抖动效果。本发明可有效避免机器人的转动机构转动时来
回抖动的问题,提升转动的稳定性。
[0066] 实施例二
[0067] 本实施例是对应上述实施例的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如下步骤:
[0068] 将机器人的转动机构的转动扇区平均划分为n个执行区间,所述n为预设的个数;
[0069] 在相邻两个执行区间之间设置保守区间,所述保守区间的区间长度小于所述执行区间的区间长度,且所述保守区间位于所述相邻两个执行区间的正中间;
[0070] 当机器人的控制端接收到所述转动机构对应的转动命令时,确定所述转动命令中的角度值所处的执行区间;
[0071] 若所述转动机构当前所处的执行区间与所述角度值所处的执行区间不同且不相连,或所述转动机构当前所处的执行区间与所述角度值所处的执行区间相连且所述角度值
不处于转动机构当前所处的执行区间与所述角度值所处的执行区间之间的保守区间,则控
制端控制所述转动机构转动到所述角度值所处的执行区间的中心位置。
[0072] 进一步地,若所述转动机构当前所处的执行区间与所述角度值所处的执行区间不同且不相连,或所述转动机构当前所处的执行区间与所述角度值所处的执行区间相连且所
述角度值不处于转动机构当前所处的执行区间与所述角度值所处的执行区间之间的保守
区间,则控制端控制所述转动机构转动到所述角度值所处的执行区间的中心位置具体为:
[0073] 判断所述转动机构当前所处的执行区间与所述角度值所处的执行区间是否相同;
[0074] 若相同,则控制端等待接收下一条转动命令;
[0075] 若不同,则判断转动机构当前所处的执行区间与所述角度值所处的执行区间是否相连;
[0076] 若不相连,则控制端控制所述转动机构转动到所述角度值对应的执行区间的中心位置;
[0077] 若相连,则判断所述角度值是否处于转动机构当前所处的执行区间与所述角度值所处的执行区间之间的保守区间;
[0078] 若是,则控制端等待接收下一条转动命令;
[0079] 若否,则控制端控制所述转动机构转动到所述角度值对应的执行区间的中间。
[0080] 进一步地,所述机器人为人型机器人,所述转动机构与一人体部位对应;
[0081] 所述当机器人的控制端接收到所述转动机构对应的转动命令时,确定所述转动命令中的角度值所处的执行区间之前,进一步包括:
[0082] 获取连续的多帧图像,所述多帧图像中包含所述一人体部位;
[0083] 通过预设的状态检测算法,依序对所述多帧图像进行检测,得到各帧图像中所述一人体部位对应的角度;
[0084] 依序根据各帧图像中所述角度的角度值,生成所述转动机构对应的转动命令,并发送至机器人的控制端。
[0085] 进一步地,所述通过预设的状态检测算法,依序对所述多帧图像进行检测,得到各帧图像中所述一人体部位对应的角度之后,进一步包括:
[0086] 根据各帧图像及其之前和/或之后预设数量的图像中所述一人体部位对应的角度,分别对各帧图像中所述一人体部位对应的角度进行滤波。
[0087] 进一步地,所述 θ为转动机构的转动扇区的圆心角, 表示取下整。
[0088] 进一步地,所述保守区间的区间长度为所述执行区间的区间长度的一半。
[0089] 综上所述,本发明提供的一种减弱机器人转动抖动的方法及计算机可读存储介质,通过滤波算法对各帧图像检测到的角度进行滤波,即对输入控制端的转动命令进行滤
波,初步减轻抖动现象;通过将转动机构的转动扇区划分为若干个执行区间,并在执行区间
的基础上设置保守区间,当转动命令中的角度值所处的执行区间与转动机构当前所处的执
行区间相同时,或相连且转动命令中的角度值落在保守区间时,使转动机构维持原先的状
态,进一步减轻了抖动效果。本发明可有效避免机器人的转动机构转动时来回抖动的问题,
提升转动的稳定性。
[0090] 以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括
在本发明的专利保护范围内。