移动机器人的运动控制方法及装置转让专利

申请号 : CN201910119532.X

文献号 : CN109557929B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈海波

申请人 : 深兰人工智能芯片研究院(江苏)有限公司深兰科技(上海)有限公司深兰机器人(常州)有限公司

摘要 :

本发明实施例涉及运动控制领域,公开了一种移动机器人的运动控制方法和装置,其中,移动机器人的运动控制方法,包括:获取所述移动机器人的运动路径;将所述运动路径拆分为多个运动点;计算所述运动路径在各个所述运动点处的曲率;根据所述移动机器人当前所处的运动点处的曲率控制所述移动机器人向下一个所述运动点移动,直至所述移动机器人到达所述运动路径的终点。本发明实施方式所提供的移动机器人的运动控制方法和装置具有提升移动机器人沿非固定曲率的移动路径运动时的控制精度的优点。

权利要求 :

1.一种移动机器人的运动控制方法,其特征在于,包括:获取所述移动机器人的运动路径;

将所述运动路径拆分为多个运动点;

计算所述运动路径在各个所述运动点处的曲率;

根据所述移动机器人当前所处的运动点处的曲率控制所述移动机器人向下一个所述运动点移动,直至所述移动机器人到达所述运动路径的终点;

其中,所述计算所述运动路径在各个所述运动点处的曲率,具体包括:建立空间坐标系,将所述运动路径及所述多个运动点映射到所述空间坐标系中;

获取各个所述运动点在所述空间坐标系中的坐标值;

根据各个所述运动点的坐标值,计算所述运动路径在各个所述运动点处的曲率;

其中,所述根据所述移动机器人当前所处的运动点处的曲率控制所述移动机器人向下一个所述运动点移动,具体包括:获取所述移动机器人当前所处的运动点处的曲率作为当前曲率;

判断所述当前曲率是否大于预设值;

若否,则根据路径跟随控制算法、控制所述移动机器人向下一个所述运动点移动;

若是,则根据原地旋转控制算法、控制所述移动机器人原地旋转第一角度后,根据所述路径跟随控制算法、控制所述移动机器人向下一个所述运动点处移动。

2.根据权利要求1所述的移动机器人的运动控制方法,其特征在于,所述根据各个所述运动点的坐标值,计算所述运动路径在各个所述运动点处的曲率,具体包括:根据各个所述运动点的坐标值,计算各个所述运动点处的k_cos曲率;

将各个所述运动点处的k_cos曲率作为所述运动路径在各个所述运动点处的曲率。

3.根据权利要求2所述的移动机器人的运动控制方法,其特征在于,所述根据各个所述运动点所对应的坐标值,计算各个所述运动点处的k_cos曲率,具体包括:计算各个所述运动点处的k_cos曲率 其中,

pi、pi-k、pi+k分别为所述运动路径上第i个所述运动点、第i-k个所述运动点和第i+k个所述运动点在所述空间坐标系中的坐标。

4.根据权利要求1所述的移动机器人的运动控制方法,其特征在于,所述根据各个所述运动点所对应的坐标值,计算所述运动路径在各个所述运动点处的曲率,具体包括:根据各个所述运动点所对应的坐标值,计算各个所述运动点处的U弦长曲率;

将各个所述运动点处的U弦长曲率作为所述运动路径在各个所述运动点处的曲率。

5.根据权利要求4所述的移动机器人的运动控制方法,其特征在于,所述根据各个所述运动点所对应的坐标值,计算各个所述运动点处的U弦长曲率,具体包括:计算各个所述运动点处的U弦长曲率 其中,

UL为定常量参数, 分别为第j+Uf个点和第j-Ub个点在所述空间坐标系中的坐标,第j+Uf个点和第j-Ub个点为运动点或两个运动点连线上的点,为第j个所述运动点处的U弦长曲率的符号, 为第j+Uf个所述运动点和第j-Ub个所述运动点之间的欧氏距离。

6.根据权利要求1所述的移动机器人的运动控制方法,其特征在于,所述判断所述当前曲率是否大于预设值,具体包括:获取所述移动机器人当前所处的运动点的一个N邻域内、除所述当前所处的运动点外的各个运动点处的曲率,其中,N为大于0的整数;

判断所述当前曲率是否同时大于预设阈值和所述各个运动点处的曲率中最大值的预设倍数;

若是,则所述当前曲率大于预设值,若否,则所述当前曲率不大于预设值。

7.根据权利要求1所述的移动机器人的运动控制方法,其特征在于,所述根据路径跟随控制算法、控制所述移动机器人向下一个所述运动点移动,具体包括:获取所述移动机器人的当前位姿p1(x1,y1,θ1)和下一个所述运动点处的目标位姿p2(x2,y2,θ2),其中,x1,y1为所述当前所处的所述运动点的坐标值,x2,y2为所述下一个所述运动点的坐标值,θ1为所述移动机器人在所述当前位姿 的朝向,θ2为所述移动机器人在下一个所述运动点的目标朝向;

根据所述当前位姿和所述目标位姿计算得到移动误差e1(ex,ey,eθ),其中,ex=x1-x2,ey=y1-y2,eθ=θ1-θ2;

根据所述移动误差求取所述移动机器人的线速度v和角速度w,其中,vr为预设的参考线速度, 为当前位置的曲率,l1、l2、l3、β分别为第一预设参数、第二预设参数、第三预设参数和第四预设参数;

控制所述移动机器人按照所述线速度和角速度向下一个所述运动点移动。

8.一种移动机器人的运动控制装置,其特征在于,包括:至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任一所述的移动机器人的运动控制方法。

说明书 :

移动机器人的运动控制方法及装置

技术领域

[0001] 本发明实施例涉及运动控制领域,特别涉及一种移动机器人的运动控制方法及装置。

背景技术

[0002] 移动机器人是一种自主控制移动、自动执行工作的智能装置,它可以在地面上或其他表面上移动,它既可以接受用户的指挥,又可以运行预先编排的程序,也可以根据以人工智能技术制定的原则纲领行动。随着科学技术的进步,移动机器人在诸如生产、军事、服务等领域均有应用,尤其在家居服务领域应用越来越广,例如吸尘、扫地、拖地、擦玻璃等清洁机器人以及用于割草的割草机器人等。
[0003] 为了保证移动机器人运动的安全性和工作效率,移动机器人通常是跟踪预先设定好的路径进行移动,现有技术中实现路径跟踪的方法主要包括控制算法结合人工控制策略和控制算法结合固定路径特征两种。两种路径跟踪方法的原理都是预先在移动机器人中存储多个离散的曲率和各个离散的曲率下移动机器人的运动状态,在运动路径规划完成后,将运动路径的曲率提供给移动机器人,移动机器人自动将运动路径的曲率与预存的曲率进行匹配,获取运动状态,从而跟随运动路径进行移动。
[0004] 然而,本发明的发明人发现:无论是控制算法结合人工控制的方法,还是控制算法结合固定路径特征的方法,其都局限于具有固定曲率的路径(如折线或直线圆弧组合曲线),对于非固定曲率的路径的循迹控制精度较差,容易导致移动机器人脱离路径。

发明内容

[0005] 本发明实施方式的目的在于提供一种移动机器人的运动控制方法及装置,提升移动机器人沿非固定曲率的运动路径运动时的控制精度。
[0006] 为解决上述技术问题,本发明的实施方式提供了一种移动机器人的运动控制方法,包括获取所述移动机器人的运动路径;将所述运动路径拆分为多个运动点;计算所述运动路径在各个所述运动点处的曲率;根据所述移动机器人当前所处的运动点处的曲率控制所述移动机器人向下一个所述运动点移动,直至所述移动机器人到达所述运动路径的终点。
[0007] 本发明的实施方式还提供了一种移动机器人的运动控制装置,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如前述的移动机器人的运动控制方法。
[0008] 本发明实施方式相对于现有技术而言,将运动路径拆分为多个运动点,通过求取运动路径在每个运动点处的曲率,并根据移动机器人当前所处的运动点处的曲率控制移动机器人向下一个运动点移动,即将移动机器人跟随运动路径移动的过程拆分为移动机器人自一个运动点朝向下一个运动点移动的过程。由于移动机器人自一个运动点朝向下一个运动点的移动过程根据移动机器人当前所处的运动点的曲率控制,其控制精度较高,从而使得移动机器人跟随运动路径移动的行走精度较高。由于本申请实施方式获取每个运动点的曲率,因此,即使是沿非固定曲率的运动路径运动,移动机器人依然可以保持较高的控制精度。
[0009] 另外,所述计算所述运动路径在各个所述运动点处的曲率,具体包括:建立空间坐标系,将所述运动路径及所述多个运动点映射到所述空间坐标系中;获取各个所述运动点在所述空间坐标系中的坐标值;根据各个所述运动点的坐标值,计算所述运动路径在各个所述运动点处的曲率。建立空间坐标系,将运动路径及运动点映射到空间坐标系中,通过空间坐标系的坐标表示运动点的位置,根据运动点的坐标值计算运动路径在各个运动点处的曲率,使得曲率的计算更为方便。
[0010] 另外,所述根据各个所述运动点的坐标值,计算所述运动路径在各个所述运动点处的曲率,具体包括:根据各个所述运动点的坐标值,计算各个所述运动点处的k_cos曲率;将各个所述运动点处的k_cos曲率作为所述运动路径在各个所述运动点处的曲率。
[0011] 另外,所述根据各个所述运动点所对应的坐标值,计算各个所述运动点处的k_cos曲率,具体包括:计算各个所述运动点处的k_cos曲率 其中,
[0012]
[0013] pi、pi-k、pi+k分别为所述运动路径上第i个所述运动点、第i-k个所述运动点和第i+k个所述运动点在所述空间坐标系中的坐标。
[0014] 另外,所述根据各个所述运动点所对应的坐标值,计算所述运动路径在各个所述运动点处的曲率,具体包括:根据各个所述运动点所对应的坐标值,计算各个所述运动点处的U弦长曲率;将各个所述运动点处的U弦长曲率作为所述运动路径在各个所述运动点处的曲率。
[0015] 另外,所述根据各个所述运动点所对应的坐标值,计算各个所述运动点处的U弦长曲率,具体包括:计算各个所述运动点处的U弦长曲率 其中,
[0016]
[0017] UL为定常量参数, 分别为第j+Uf个所述运动点和第j-Ub个所述运动点在所述空间坐标系中的坐标,
为第j个所述运动点处的U弦
长曲率的符号, 为第j+Uf个所述运动点和第j-Ub个所述运动点之间的欧氏距
离。
[0018] 另外,所述根据所述移动机器人当前所处的运动点处的曲率控制所述移动机器人向下一个所述运动点移动,具体包括:获取所述移动机器人当前所处的运动点处的曲率作为当前曲率;判断所述当前曲率是否大于预设值;若否,则根据路径跟随控制算法、控制所述移动机器人向下一个所述运动点移动;若是,则根据原地旋转控制算法、控制所述移动机器人原地旋转第一角度后,根据所述路径跟随控制算法、控制所述移动机器人向下一个所述运动点处移动。当移动机器人当前所处的运动点的曲率大于预设值时,根据原地旋转控制算法控制移动机器人原地旋转第一角度,利用原地旋转防止曲率过大而导致无法在移动过程中实现大角度转弯、确保循迹性,提升大曲率路径的运动精度。
[0019] 另外,所述判断所述当前曲率是否大于预设值,具体包括:获取所述移动机器人当前所处的运动点的一个N邻域内、除所述当前所处的运动点外的各个运动点处的曲率,其中,N为大于0的整数;判断所述当前曲率是否同时大于预设阈值和所述各个运动点处的曲率中最大值的预设倍数;若是,则所述当前曲率大于预设值,若否,则所述当前曲率不大于预设值。
[0020] 另外,所述根据路径跟随控制算法、控制所述移动机器人向下一个所述运动点移动,具体包括:获取所述移动机器人的当前位姿p1(x1,y1,θ1)和下一个所述运动点处的目标位姿p2(x2,y2,θ2),其中,x1,y1为所述当前所处的所述运动点的坐标值,x2,y2为所述下一个所述运动点的坐标值,θ1为所述移动机器人在所述当前位置的朝向,θ2为所述移动机器人在下一个所述运动点的目标朝向;根据所述当前位姿和所述目标位姿计算得到移动误差e1(ex,ey,eθ),其中,ex=x1-x2,ey=y1-y2,eθ=θ1-θ2;根据所述移动误差求取所述移动机器人的线速度v和角速度w,其中,
[0021]
[0022]
[0023] vr为预设的参考线速度, 为当前位置的曲率,l1、l2、l3、β分别为第一预设参数、第二预设参数、第三预设参数和第四预设参数;控制所述移动机器人按照所述线速度和角速度向下一个所述运动点移动。

附图说明

[0024] 一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
[0025] 图1是本发明实施方式的核心程序流程图;
[0026] 图2是本发明第一实施方式所提供的移动机器人的运动控制方法的程序流程图;
[0027] 图3是本发明第一实施方式所提供的获取移动机器人当前所处位置的k_cos曲率的程序流程图;
[0028] 图4是本发明第二实施方式所提供的移动机器人的运动控制方法的程序流程图;
[0029] 图5是本发明第二实施方式所提供的获取移动机器人当前所处位置的U弦长曲率的程序流程图;
[0030] 图6是本发明第三实施方式所提供的移动机器人的运动控制装置的结构示意图。

具体实施方式

[0031] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本发明而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本发明所要求保护的技术方案。
[0032] 参见图1,本发明实施方式的核心在于:步骤S101:获取所述移动机器人的运动路径。步骤S102:将所述运动路径拆分为多个运动点。步骤S103:计算所述运动路径在各个所述运动点处的曲率。步骤S104:根据所述移动机器人当前所处的运动点处的曲率控制所述移动机器人向下一个所述运动点移动,直至所述移动机器人到达所述运动路径的终点。本实施方式通过求取运动路径在每个运动点处的曲率,并根据移动机器人当前所处的运动点处的曲率控制移动机器人向下一个运动点移动,使得移动机器人跟随运动路径移动的行走精度较高。由于本申请实施方式获取每个运动点的曲率,因此,即使是非固定曲率的运动路径,移动机器人依然可以保持较高的行走精度。下面对本实施方式所提供的移动机器人的运动控制方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
[0033] 本发明的第一实施方式涉及一种移动机器人的运动控制方法,如图2所示,该方法包括以下步骤。
[0034] 步骤S201:获取移动机器人的运动路径。
[0035] 具体的,在本步骤中,预先根据移动机器人的工作情况和障碍物情况设定运动路径。例如,移动机器人需要从A位置经过B位置最终移动至C位置,则获取A位置到C位置再到B位置的运动路线,如果运动路线上存在障碍物,则弯曲设置运动路线避开障碍物,最终获得移动机器人的运动路径。
[0036] 步骤S202:将运动路径拆分为多个运动点。
[0037] 具体的,在本步骤中,可以根据移动机器人的尺寸和移动控制精度等参数,将运动路径拆分为多个运动点,每一个运动点都是运动路径上的店。每一个运动点即为移动机器人沿运动路径运动的中继点,将移动机器人沿运动路径移动的远程运动过程拆分为多次的短程运动过程,移动机器人自当前所处的运动点向下一个运动点移动的过程即为移动机器人沿运动路径的过程。
[0038] 步骤S203:获取移动机器人当前所处运动点的k_cos曲率,将k_cos曲率作为移动机器人当前所处运动点的曲率。
[0039] 在本步骤中,k_cos曲率即为k余弦曲率,通过计算移动机器人当前所处运动点的k_cos曲率,将k_cos曲率作为移动机器人当前所处运动点的曲率。获取移动机器人当前所处位置的k_cos曲率的步骤如图3所示,包括:
[0040] 步骤S301:建立空间坐标系,将运动路径和各个运动点分别映射到空间坐标系中,获取各个运动点在空间坐标系中的坐标值。
[0041] 在本步骤中,空间坐标系为世界坐标系。在环境中选择一个基准坐标系来描述摄像机的位置,并用它描述环境中任何物体的位置,该坐标系称为世界坐标系。可以理解的是,空间坐标系为世界坐标系仅为本实施方式中的一种具体实施方式,空间坐标系也可以是根据其他标准建立的坐标系,在此不进行一一列举。
[0042] 步骤S302:根据蒙特卡洛定位算法确定移动机器人当前所处位置的位姿。
[0043] 具体的,蒙特卡洛定位算法的具体计算步骤为:记录机器人的位置信息符合的多元高斯分布N(μ,Σ),μ为机器人初始位姿(x0,y0,θ0),Σ为协方差矩阵。从高斯分布N(μ,Σ)中采样出M个粒子,得到初始t时刻的M个粒子x的集合 来表示t时刻的置信度,每一个粒子x代表一个可能的位姿p(x,y,θ),(x,y为机器人在世界坐标系下坐标值,θ为机器人朝向,即世界坐标系x轴到机器人坐标系x轴的到角)。在t时刻,先根据里程计运动模p(xt|ut,xt-1)(u表示里程计数据),采样出每一个粒子得到粒子集的先验分布p(xt),然后进一步根据激光测量模型p(zt|m,xt)(z,m分别表示激光测量数据和栅格地图),更新每一个粒子的权值ω,均一化权值得到粒子集的后验分布p(xt|zt)。为了防止多次迭代后粒子退化,需要从后验分布p(xt|zt)中重采样。最后根据距离最近原则将粒子集分簇,权重最大簇的均值即为最优估计位姿popt(x,y,θ)。将popt作为移动机器人当前所处位置的位姿。
[0044] 步骤S303:根据移动机器人当前所处位置的坐标计算运动路径在移动机器人当前所处运动点的k_cos曲率。
[0045] 具体的,假设pi为控制路线上的第i个点,则i点处的k_cos曲率为:
[0046]
[0047] pi、pi-k、pi+k分别为所述运动路径上第i个所述运动点、第i-k个所述运动点和第i+k个所述运动点在所述空间坐标系中的坐标,pipi-k为pi、pi-k两点之间的向量,pipi+k为pi、pi+k两点之间的向量,‖pipi-k‖为向量pipi-k的范数,‖pipi+k‖为向量pipi+k的范数。
[0048] 可以理解的是,上述为计算运动路线上第i个运动点处的k_cos曲率的具体公式,运动路径上每一个运动点处的k_cos曲率都可以通过上述方法计算得到。
[0049] 步骤S204:判断移动机器人当前所处位置的k_cos曲率是否大于预设值,若否,则执行步骤S205,若是,则执行步骤S206。
[0050] 在本步骤中,设移动机器人当前所处的运动点为pi,运动点pi处的k_cos曲率为首先,获取运动点pi的一个N邻域[i-N,i+N](N为大于0的正整数)内除运动点pi外,所有运动点处的k_cos曲率,获取除运动点pi外,所有运动点处的k_cos曲率中的最大值[0051] 判断 是否同时大于预设阈值cthreshold和预设倍数α的 公示表示如下:若 同时大于预设阈值
cthreshold和预设倍数α的 则判定移动机器人当前所处运动点的k_cos曲率大于预设值,执行步骤S206;若 至少小于预设阈值cthreshold和预设倍数α的 中的一者,则判定移动机器人当前所处位置的k_cos曲率不大于预设值,执行步骤S205。
[0052] 在本实施方式中,预设阈值cthreshold为-0.4,预设倍数α为1.2。可以理解的是,上述仅为本实施方式中的一些具体参数的举例说明,在实际应用过程中,预设阈值cthreshold和预设倍数α均可根据实际情况灵活设置。
[0053] 步骤S205:根据路径跟随控制算法、控制移动机器人向下一个运动点移动。
[0054] 具体的,在本步骤中,首先获取移动机器人的当前位姿p1(x1,y1,θ1)和下一个运动点处的目标位姿p2(x2,y2,θ2),然后根据当前位姿p1和目标位姿p2计算得到移动误差e1(ex,ey,eθ)。
[0055] 其中,x1,y1为移动机器人当前所处的运动点的坐标值,x2,y2为下一个运动点的坐标值,θ1为移动机器人当前的朝向,θ2为移动机器人在下一个运动点的目标朝向;ex=x1-x2,ey=y1-y2,eθ=θ1-θ2。
[0056] 根据移动误差e1和路径跟随控制算法 计算得到移动机器人的线速度v和角速度w,其中, vr为预设的参考线速度,为当前位置的曲率,l1、l2、l3、β分别为第一预设参数、第二预设参数、第三预设参数和第四预设参数。需要说明的是参考角速度vr、第一预设参数l1、第二预设参数l2、第三预设参数l3和第四预设参数β为预先设置的固定值参数,其可以根据实际情况进行选取,例如,在本实施方式中,l1、l2、l3、β分别取2、2、2、1.5。
[0057] 最后控制移动机器人在线速度v和角速度w下移动至下一个运动点。
[0058] 步骤S206:控制移动机器人停止移动,根据原地旋转控制算法、控制移动机器人原地旋转第一角度。
[0059] 具体的,在本步骤中,当判定移动机器人当前所处运动点的k_cos曲率大于预设值时,控制移动机器人停止移动,获取移动机器人的当前位姿p1(x1,y1,θ1)和转动后的位姿p3(x1,y1,θ3),根据当前位姿p1和转动后的位姿p3计算得到第一角度θt,其中,θt=θ1-θ2。
[0060] 根据原地旋转控制算法 计算得到原地旋转角速度w0,其中, l为调节系数,可以理解的是,l为根据实际情况选取的调节系数,在此不进行限定。
[0061] 进一步的,移动机器人在根据原地旋转控制算法 原地旋转第一角度θt后,根据路径跟随控制算法 控制移动机器人向下一个运动点移动,具体步骤与步骤S205大致相同,在此不进行赘述。
[0062] 步骤S207:判断是否到达终点,若否,则执行步骤S203。
[0063] 具体的,在本步骤中,移动机器人根据路径跟随控制算法 移动至下一个运动点后,判断移动机器人是否到达终点,若否,则返回执行步骤S203。
[0064] 与现有技术相比,本发明第一实施方式所提供的移动机器人的运动控制方法,将运动路径拆分为多个运动点,通过求取运动路径在每个运动点处的曲率,并根据移动机器人当前所处的运动点处的曲率控制移动机器人向下一个运动点移动,由于移动机器人自一个运动点朝向下一个运动点的移动过程根据移动机器人当前所处的运动点的曲率控制,其控制精度较高,从而提升移动机器人沿运动路径移动的精准度。由于计算得到每个运动点处的曲率,因此,是非固定曲率的运动路径,移动机器人依然可以保持较高的行走精度。
[0065] 本发明的第二实施方式涉及一种移动机器人的运动控制方法。第二实施方式与第一实施方式大致相同,主要区别之处在于:在第一实施方式中,将运动点处的k_cos曲率作为运动点处的曲率。而在本发明第二实施方式中,将运动点处的U弦长曲率作为运动点处的曲率。此外,本领域技术人员可以理解,将运动点处的k_cos曲率作为运动点处的曲率和将运动点处的U弦长曲率作为运动点处的曲率仅为本发明的两种具体应用举例,在本发明的其它实施方式中,还可以是其他的计算方法,在此不进行穷举。具体步骤如图4所示,包括:
[0066] 步骤S401:获取移动机器人的运动路径。
[0067] 步骤S402:将运动路径拆分为多个运动点。
[0068] 具体的,本实施方式中的步骤S401和步骤S402与第一实施方式中的步骤S201和步骤S202大致相同,在此不再进行赘述。
[0069] 步骤S403:获取移动机器人当前所处运动点的U弦长曲率,将U弦长曲率作为移动机器人当前所处运动点的曲率。
[0070] 在本步骤中,通过计算移动机器人当前所处运动点的U弦长曲率 将U弦长曲率作为移动机器人当前所处运动点的曲率。获取移动机器人当前所处位置的U弦长曲率的步骤如图5所示,包括:
[0071] 步骤S501:建立空间坐标系,将运动路径和各个运动点分别映射到空间坐标系中,获取各个运动点在空间坐标系中的坐标值。
[0072] 步骤S502:根据蒙特卡洛定位算法确定移动机器人当前所处位置的位姿。
[0073] 具体的,本实施方式中的步骤S501和步骤S502与第一实施方式中的步骤S301和步骤S302大致相同,在此不再进行赘述
[0074] 步骤S503:根据移动机器人当前所处位置的坐标计算运动路径在移动机器人当前所处运动点的U弦长曲率。
[0075] 具体的,设pj为控制路线上的第j个运动点, 和 分别为第j+Uf个和第j-Ub个运动点,则j点处的U弦长曲率 为:
[0076]
[0077] 其中,UL为定常量参数, 分别为 和 在空间坐标系中的坐标。点 和点 为运动点或两个运动点连线上的点,
为第j个运动点处的U弦长曲
率的符号, 为第j+Uf个运动点和第j-Ub个运动点之间的欧氏距离。
[0078] 需要说明的是,UL可以根据实际需要进行灵活的选取,在此不进行限定。
[0079] 进一步的, 和 分别为pj点向前遍历点和向后遍历点,并且点 和点满足约束: 点 的确定方法为:以点pj为起点向前遍
历 ,若满足 || pj pj+ k| |< UL且 || pj pj+ k+1 || >U L则 停止遍 历。设
求解 即可求出t,从而得到
的坐标值。若||pjpj+k||=UL或者||pjpj+k+1||=UL,则 取pj+k或者pj+k+1。按照相同的方法即可求得点 在此不再赘述。
[0080] 可以理解的是,上述为计算运动路线上第j个运动点处的U弦长曲率的具体公式,运动路径上每一个运动点处的U弦长曲率都可以通过上述方法计算得到。
[0081] 步骤S404:判断移动机器人当前所处位置的U弦长曲率是否大于预设值,若否,则执行步骤S405,若是,则执行步骤S406。
[0082] 步骤S405:根据路径跟随控制算法、控制移动机器人向下一个运动点移动。
[0083] 步骤S406:控制移动机器人停止移动,根据原地旋转控制算法、控制移动机器人原地旋转第一角度。
[0084] 步骤S407:判断是否到达终点,若否,则执行步骤S403。
[0085] 具体的,本实施方式中的步骤S404至步骤S407与第一实施方式中的步骤S204至步骤S207大致相同,在此不再进行赘述。
[0086] 与现有技术相比,本实施方式所提供的移动机器人的运动控制方法,将运动路径拆分为多个运动点,通过求取运动路径在每个运动点处的U弦长曲率作为该运动点处的实际曲率,并根据移动机器人当前所处的运动点处的U弦长曲率控制移动机器人向下一个运动点移动,由于移动机器人自一个运动点朝向下一个运动点的移动过程根据移动机器人当前所处的运动点的U弦长曲率控制,其控制精度较高,从而提升移动机器人沿运动路径移动的精准度。由于计算得到每个运动点处的U弦长曲率,因此,是非固定曲率的运动路径,移动机器人依然可以保持较高的行走精度。
[0087] 上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
[0088] 本发明第三实施方式涉及一种移动机器人的运动控制装置,如图6所示,包括:包括:至少一个处理器601;以及,与至少一个处理器601通信连接的存储器602;其中,存储器602存储有可被至少一个处理器601执行的指令,指令被至少一个处理器601执行,以使至少一个处理器601能够执行如上述移动机器人的运动控制方法。
[0089] 其中,存储器602和处理器601采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器601和存储器602的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器601处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器601。
[0090] 处理器601负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器602可以被用于存储处理器601在执行操作时所使用的数据。
[0091] 本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。