移动控制方法、装置、机器人及存储介质与流程

文档序号:11518721阅读:231来源:国知局
移动控制方法、装置、机器人及存储介质与流程

本发明涉及机器人控制技术领域,尤其涉及一种移动控制方法、装置、机器人及存储介质。



背景技术:

具有移动功能的机器人,是一类能够通过传感器感知环境和自身状态,实现在有障碍物的环境中面向目标的自主导航运动,从而完成预定任务的机器人系统。

一般而言,该机器人在移动时,通常由驱动器控制左右驱动轮进行移动或旋转,并对左右驱动轮的速度进行闭环。其中,闭环过程可以参考图1,机器人时刻获取左右驱动轮当前输出的实际速度,并根据该速度对驱动器输出的目标速度进行修正,以实现机器人的正常移动。但是,上述方法中仅对速度进行闭环,并未对机器人的整体位置进行闭环,降低了机器人的位置精确度,进而影响了机器人路径规划的精确度。



技术实现要素:

有鉴于此,本发明实施例提供一种移动控制方法、装置、机器人及存储介质,以解决机器人移动过程中位置精确度低的技术问题。

第一方面,本发明实施例提供了一种移动控制方法,包括:

获取目标对象的控制参数、第一实际位置数据和第一目标位置数据;

根据所述控制参数、所述第一实际位置数据和所述第一目标位置数据确定所述目标对象的期望速度,并利用所述期望速度控制所述目标对象进行移动;

判断所述目标对象是否满足预设的停止移动条件,若是,则执行预设的停止操作。

第二方面,本发明实施例还提供了一种移动控制装置,包括:

获取模块,用于获取目标对象的控制参数、第一实际位置数据和第一目标位置数据;

第一移动模块,用于根据所述控制参数、所述第一实际位置数据和所述第一目标位置数据确定所述目标对象的期望速度,并利用所述期望速度控制所述目标对象进行移动;

停止确认模块,用于判断所述目标对象是否满足预设的停止移动条件,若是,则执行预设的停止操作。

第三方面,本发明实施例还提供了一种机器人,包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

一个或多个移动装置,用于实现机器人的移动操作以及旋转操作;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的移动控制方法。

第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的移动控制方法。

本发明实施例提供的移动控制方法、装置、机器人及存储介质,通过获取目标对象的控制参数、第一实际位置数据和第一目标位置数据确定目标对象的期望速度,并根据期望速度控制目标对象进行移动,如果目标对象满足预设停止移动条件,则执行预设停止操作的技术方案,实现了在目标对象的移动过程中对目标对象的位置参数进行闭环,保证了目标对象移动路径的精确度,解决了移动过程中位置精确度低的问题。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为现有技术中速度闭环示意图;

图2为本发明实施例一提供的一种移动控制方法的流程图;

图3a为本发明实施例二提供的一种移动控制方法的流程图;

图3b为现有技术中移动停止方法的流程图;

图3c为本发明实施例二提供的移动方法的流程图;

图3d为本发明实施例二提供的原地旋转方法的流程图;

图3e为本发明实施例二提供的正向移动方法的流程图;

图3f为机器人的移动空间示意图;

图3g为机器人移动过程的算法框图;

图3h为机器人停止过程的示意图;

图3i为机器人原地旋转过程的算法框图;

图3j为机器人正向移动过程的算法框图;

图4为本发明实施例三提供的一种移动控制装置的结构示意图;

图5为本发明实施例四提供的一种机器人的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。

实施例一

图2为本发明实施例一提供的一种移动控制方法的流程图。本实施例提供的移动控制方法可以由移动控制装置执行,该移动控制装置可以通过软件和/或硬件的方式实现,并集成于具有智能移动功能的机器人中,其中,机器人是指可以自动执行工作的机器装置。它既可以接受人类指挥,又可以运行预先编排的程序,也可以根据以人工智能技术制定的原则纲领行动,如移动小车。

s110、获取目标对象的控制参数、第一实际位置数据和第一目标位置数据。

在本实施例中,目标对象是具有智能移动功能的机器人。控制参数是与目标对象移动相关的参数,其不随着目标对象移动而发生改变,一般包括系统参数和/指令控制参数。系统参数为目标对象中安装的控制系统的参数,如比例-积分-微分(proportionintegrationdifferentiation,pid)控制器参数、直线运动控制器参数等。指令控制参数为目标对象移动前对其移动过程进行规划时确定的可以控制目标对象移动的指令参数。需要说明的是,不可变控制参数仅针对目标对象一次完整的智能移动过程,如果目标对象开始一次新的智能移动过程,那么可以根据该次智能移动过程的场景调节不可变控制参数,并在调节完成后保存,直到本次智能移动过程结束为止。

具体的,第一实际位置数据为目标对象移动过程中获取的实时位置,其可以通过里程计或者定位算法获取。第一目标位置数据为与第一实际位置数据对应的时刻目标对象期望到达的目标位置,其可以通过运动规划确定。可选的,在目标对象的移动范围内建立坐标系,该坐标系不仅包括二维平面坐标,还包括角度数据。即预先设定基准角度,并根据该基准角度确定目标对象当前行进方向的角度数据。

进一步的,预先设定采样间隔,并根据该采样间隔,间隔获取控制参数、第一实际位置数据和第一目标位置数据。其中,采样间隔的具体数值可以根据实际情况进行设定。

s120、根据控制参数、第一实际位置数据和第一目标位置数据确定目标对象的期望速度,并利用期望速度控制目标对象进行移动。

在目标对象移动的过程中,第一实际位置数据通常与第一目标位置数据之间存在误差,根据该误差可以确定目标对象当前数据获取时刻的移动轨迹偏差,进而对目标对象的移动数据进行调整和/或更新目标对象后续的规划移动轨迹,以提高目标对象移动过程的精准性。

具体的,根据控制参数、第一实际位置数据和第一目标位置数据确定期望速度时,可以是根据第一实际位置数据和第一目标位置数据确定目标对象的位置误差,进而根据位置误差结合控制参数确定当前数据获取时刻的期望速度。其中,期望速度包括期望线速度和/或期望角速度,优选包括期望线速度和期望角速度。

进一步的,根据期望速度控制目标对象进行移动时,可以是根据期望线速度和期望角速度控制目标对象进行圆弧运动,以保证目标对象向目标停止位置移动靠近。一般而言,目标对象具有至少一个移动装置。例如,目标对象具有左右共两个驱动轮,或者左右各两个驱动轮,那么在控制目标对象移动时,需要分别控制每个移动装置进行移动,即期望速度可以视为一个矩阵参数,其中包括每个移动装置的子速度,进而根据子速度控制对应的移动装置。

s130、判断目标对象是否满足预设的停止移动条件。若是,则执行s140,否则,返回执行s110。

具体的,预先设定停止移动条件,以使目标对象判断是否需要执行预设的停止操作。其中,预设的停止移动条件的具体内容可以根据实际情况进行设定。例如,设定移动停止位置,并获取目标对象移动后当前时刻的第一实际位置数据,判断第一实际位置数据是否到达移动停止位置,进而确定是否执行预设停止操作。移动停止位置为移动操作的停止位置,并非目标停止位置,一般而言,移动停止位置与目标停止位置的距离小于距离阈值。又如,不设定固定的移动停止位置,而是获取目标对象当前时刻的第一实际位置数据,并根据第一实际位置数据确定目标对象与目标停止位置的距离是否小于或等于设定距离阈值,如果小于或等于预设距离阈值,则说明满足预设停止条件,执行预设停止操作,如果大于预设距离阈值,则说明不满足预设停止条件,此时需要重新确定目标对象的期望速度并进行移动。

具体的,如果不满足预设停止条件,则重新确定目标对象的期望速度并进行移动,其具体可以是返回执行获取目标对象的控制参数、第一实际位置数据和第一目标位置数据的操作,此时,获取的各类参数优选为利用期望速度控制目标对象进行移动后的采样时刻获取的参数。一般而言,目标对象移动后,都需要在移动后获取当前时刻的第一实际位置数据,以确定是否满足预设的停止移动条件。据此,设定目标对象根据期望速度进行移动的移动时间与数据获取的采样间隔相同。

s140、执行预设的停止操作。

示例性的,目标对象满足预设停止条件后,其当前的实际位置距目标停止位置还有一段间隔。因此,将目标对象由当前的实际位置移动到目标停止位置的操作称为预设的停止操作。

具体的,预设的停止操作至少包括原地旋转过程和/或正向移动过程。其中,原地旋转过程为控制目标对象进行原地旋转操作,直到旋转后目标对象的角度数据与目标停止位置的角度数据相同为止。正向移动过程为控制目标对象进行前进操作,直到前进后目标对象的二维平面坐标与目标停止位置的二维平面坐标相同为止。需要说明的是,在实际的移动过程中,目标对象并不能进行准确的直线移动,多为略带弧度的圆弧操作,本实施例中将目标对象向前执行略带弧度的圆弧操作默认为正向直线移动。一般而言,如果预设的停止操作同时包括原地旋转过程和直线移动过程时,两个过程在执行时的先后顺序可以根据实际情况进行设定,本实施例并不对此进行限定。

可选的,在执行预设的停止操作过程中,仍然需要获取目标对象的实际位置信息,并根据该实际位置信息确认目标对象是否到达目标停止位置,如果到达目标停止位置,则停止移动。

本实施例提供的技术方案,通过获取目标对象的控制参数、第一实际位置数据和第一目标位置数据确定目标对象的期望速度,并根据期望速度控制目标对象进行移动,如果目标对象满足预设停止移动条件,则执行预设停止操作,否则,重新确定目标对象的期望速度并控制目标对象进行移动的技术方案,实现了在目标对象的移动过程中对目标对象的位置参数进行闭环,保证了目标对象移动路径的精确度,解决了移动过程中位置精确度低的问题。

实施例二

图3a为本发明实施例二提供的一种移动控制方法的流程图。本实施例提供的移动控制方法是在上述实施例的基础上进行具体化。具体的,参考图3a,本实施例提供的移动控制方法具体包括:

s201、利用动态窗口法确定目标对象移动过程中的最佳控制指令以及对应的规划轨迹,以根据最佳控制指令和规划轨迹确定目标对象的控制指令参数和第一目标位置数据。

在本实施例中,控制参数包括系统参数和指令控制参数。

动态窗口法(dynamicwindowapproach,dwa)是一种基于传感器的局部路径规划和避障方法,它将目标对象看成一个动态实体并考虑到了目标对象快速移动时所受的运动学与动力学约束。一般情况下,考虑到目标对象的运动学约束,优化过程是通过直接搜索目标对象的速度空间来完成的。该速度空间是由目标对象能到达的速度对组成,其中,速度对用(v,ω)表示,v表示直线速度,ω表示旋转速度。速度空间也可以称为指令空间,用q=(v,ω)表示。也可以理解为将当前搜索空间约束为目标对象可行的指令空间。在确定指令空间后,使用目标函数对搜索空间内的所有指令进行评价,选择使目标函数最大化的指令作为最佳控制指令。根据最佳控制指令可以模拟出目标对象移动过程以及与该移动过程对应的规划轨迹。上述目标函数在选取时,通常参考下述三种评价指标:目标停止位置的朝向、目标对象与障碍物的距离以及目标对象移动时最快的速度(直线速度和旋转速度)。可选的,目标函数是上述三种评价指标的线性组合,其具体的组合规则本实施例不作限定。

进一步的,在目标对象的移动过程中,可以根据规划轨迹确定目标对象每个数据获取时刻的第一目标位置数据。在本实施例中,第一目标位置数据可以表示为pr(t)=(xr(t),yr(t),θr(t))t,其中,xr(t)和yr(t)表示当前数据获取时刻目标对象期望到达的二维平面坐标位置,θr(t)表示当前数据获取时刻目标对象期望到达的角度数据,t为当前数据获取时刻,即采样时刻。

一般而言,目标对象在移动前通过动态窗口法确定目标对象移动过程中的最佳控制指令以及对应的规划轨迹后,根据最佳控制指令控制目标对象进行初始移动,并开始获取目标对象的控制参数、第一实际位置数据和第一目标位置数据。其中,最佳控制指令确定后通常不会发生改变,即将最佳控制指令作为控制指令参数。在本实施例中,控制指令参数表示为qr=(vr,wr),vr和wr分别为控制指令参数中直线速度参数和旋转速度参数。

s202、获取目标对象的控制参数、第一实际位置数据和第一目标位置数据。

具体的,控制参数中系统参数为确定目标对象实际控制参数的控制器的参数。该控制器设置在目标对象内部,其可以为软件和/或硬件,并满足李雅普诺夫渐近稳定性要求。

在本实施例中,第一实际位置数据表示为pc(t)=(xc(t),yc(t),θc(t)),其中,xc(t)和yc(t)表示当前数据获取时刻目标对象实际的二维平面坐标位置,θc(t)表示当前数据获取时刻目标对象实际的角度数据,t为当前数据获取时刻,即采样时刻。

s203、根据第一实际位置数据和第一目标位置数据确定目标对象的位置误差数据。

具体的,确定位置误差数据的公式为:

其中,表示为误差参数。根据公式(1)便可以确定当前数据采样时刻对应的位置误差数据pe(t)。

s204、利用位置误差数据、第一实际位置数据和控制参数确定目标对象当前时刻的实际控制参数。

示例性的,实际控制参数为对应的控制器在控制目标对象移动时,输出的控制参数。进一步的,实际控制参数的确定公式为:

其中,kx,ky,kθ分别是对应的控制器的系统参数,其可以根据实际情况进行设定,为实际控制参数,其包括直线控制速度参数vq(t)和旋转控制速度参数wq(t)。由式(2)可知,实际控制参数也可以理解为根据控制参数、第一实际位置数据和第一目标位置数据对控制指令参数进行修正,以得到当前数据获取时刻控制器输出的实际控制参数。利用公式(2)确定实际控制参数的过程也可以称为轨迹跟踪控制算法,该算法可以保证实际控制参数的准确性。

s205、对实际控制参数进行速度变换,以确定目标对象的期望速度,期望速度包括第一子速度和第二子速度。

在本实施例中,目标对象包括至少一个移动装置,优选包括第一移动装置和第二移动装置。第一移动装置和第二移动装置优选为第一驱动轮和第二驱动轮,其中,第一驱动轮和第二驱动轮中的一个为左驱动轮,另一个为右驱动轮。具体的,目标对象在实际移动中,需要分别控制第一移动装置和第二移动装置进行移动。因此,需要将实际控制参数转换成分别控制第一移动装置和第二移动装置进行移动的期望速度。可选的,控制第一移动装置进行移动的期望速度称为第一子速度,控制第二移动装置进行移动的期望速度称为第二子速度。

进一步的,当第一移动装置和第二移动装置左右设置时,对实际控制参数进行速度变换的公式参考如下:

其中,qc1(t)表示期望速度,vl1(t)表示左移动装置对应的期望速度,vr1(t)表示右移动装置对应的期望速度。vl1(t)和vr1(t)中的一个为第一子速度,另一个为第二子速度。b为第一移动装置和第二移动装置之间的间距。

s206、利用第一子速度控制目标对象的第一移动装置进行移动。

s207、利用第二子速度控制目标对象的第二移动装置进行移动。

s208、判断目标对象是否满足预设的停止移动条件,若是,则执行s209,否则,返回执行s202。

示例性的,预设的停止移动条件为根据第一实际位置数据确定目标对象与目标停止位置的距离小于或等于设定距离阈值。可选的,每次获取到第一实际位置数据时,均判断第一实际位置数据与目标停止位置的距离值,并确认距离值与距离阈值的关系。还可选的,预先设定数据获取时间段,当满足该时间段后的下一个数据获取时刻开始,每次获取到第一实际位置数据时均判断第一实际位置数据与目标停止位置的距离值,并确认距离值与距离阈值的关系。比如时间段为3,那么前3个数据获取时刻获取到的第一实际位置数据不与目标停止位置进行比较,在第4个数据获取时刻开始,将每次获取的第一实际位置数据均与目标停止位置进行比较,并确认距离值与距离阈值的关系。其中,目标停止位置为目标对象移动停止点的位置,距离阈值可以根据实际情况进行设定。一般而言,上述过程中描述的距离值为目标对象与目标停止位置的直线距离值。

现有技术中,目标对象停止操作的流程可参考图3b,其一般为在目标对象移动到一定范围内时,停止其移动操作,并执行原地旋转操作,直到目标对象当前姿态逼近目标姿态为止。其中,一定范围是以停止目标停止位置为圆心设定长度为半径的圆圈,目标对象每次原地旋转设定的角度。上述方法在实际执行过程中,通常会导致实际停止位置与停止目标点之间存在一定偏差。为了防止上述情况发生,本实施例中提出了当目标对象满足预设的停止移动条件时,分别对目标对象执行原地旋转操作和正向移动操作,以保证目标对象的停止位置为目标停止位置。实际应用中,可以先对目标对象执行原地旋转操作后再执行正向移动操作,也可以先对目标对象执行正向移动操作后再执行原地旋转操作。优选采用先对目标对象执行原地旋转操作后再执行正向移动操作。

s209、对目标对象执行原地旋转操作,以使目标对象原地旋转至目标角度。

由于目标对象每次原地旋转设定的角度,因此会出现由于旋转角度过大导致目标对象来回重复执行原地旋转操作的情况,为了防止上述情况的发生,本实施例中采用了运动规划方法。具体的,参考图3c,该步骤具体通过s2091-s2097的步骤实现:

s2091、获取目标对象满足预设的停止移动条件时的实际角度以及目标角度。

其中,设定目标对象满足预设的停止移动条件时的实际位置数据为pinit=[xinit,yinit,θinit]t,目标停止位置的停止位置数据为po=[xo,yo,θo]t。那么,原地旋转操作的旋转目标位置数据为p′o=[xinit,yinit,θ0]t。即,实际角度为θinit,目标角度为θ0。其中,实际位置数据可以通过里程计或者定位算法得到。

s2092、根据实际角度以及目标角度确定目标对象的旋转规划。

为了保证目标对象原地旋转时的准确性,先对目标对象原地旋转进行预先规划,以在实际的原地旋转过程中根据旋转规划结果对旋转速度进行修正。

进一步的,对目标对象进行旋转规划时,可以采用现有的多种运动规划方法。在本实施例中,示例性的选择了五次多项式法进行旋转规划。下面对基于五次多项式法构造旋转规划公式进行详细描述:

五次多项式法的运功规划过程可以表示为:

s(t1)=a0+a1t1+a2t12+a3t13+a4t14+a5t15(4)

其中,a0、a1、a2、a3、a4以及a5为规划系数,t1为目标对象当前的旋转时刻(本实施例中t1为目标对象从开始移动时开始计时直到当前的总移动时刻与原地旋转开始时刻的差值),s(t1)为t1时刻的旋转规划结果。

从上述公式可知,如果想要确定目标对象的旋转规划结果,需要明确规划系数的具体值。

进一步的,规划系数的具体确定过程为:

设定初始参数包括:实际角度θinit、初始角速度0、初始角加速度0、目标角度θ0、目标角速度0、目标角加速度0和原地旋转过程中数据采样周期t1。进一步,可以得到:此时,规划系数计算公式如下:

a0=s0(5-1)

进一步的,确定规划系数后,式(4)可以表示为:

st1=a0+a1t1+a2t12+a3t13+a4t14+a5t15(6)

其中,st1表示为t1时刻目标对象期望旋转的角度。对式(6)进行微分计算,可得:

其中,表示为t1时刻目标对象期望旋转的角速度。对式(7)进行微分计算,可得:

其中,表示为t1时刻目标对象期望旋转的角加速度。

进一步的,根据式(6)、式(7)以及式(8)便可以构造出目标对象的旋转规划公式。具体的,根据(6)、式(7)以及式(8)可以得到目标对象任意t1时刻期望旋转的角度、角速度以及角加速度,并根据期望旋转的角度、角速度以及角加速度确定目标对象t1时刻期望到达的目标旋转角度、目标旋转角速度以及目标旋转角加速度。

其中,确定目标旋转角度θt1的公式为:

θt1=θinit+st1(9)

确定目标旋转角速度的公式为:

确定目标旋转角加速度的公式为:

具体的,式(9)、式(10)以及式(11)为最终得到的旋转规划公式。需要说明的是,在实际应该过程中可以根据实际情况在式(9)、式(10)以及式(11)中选择性的构造至少一个旋转规划公式。

s2093、执行旋转操作,并获取旋转过程中当前旋转时刻的实际旋转角度。

具体的,当前旋转时刻为t1时刻。实际旋转角度可以通过目标对象的里程计获取,还可以通过定位算法获取。

s2094、根据旋转规划确定当前旋转时刻的目标旋转角度。

示例性的,根据式(9)确定t1时刻的目标旋转角度θt1。

s2095、利用实际旋转角度和目标旋转角度确定当前旋转时刻的旋转速度,并根据旋转速度旋转目标对象。

具体的,根据实际旋转角度和目标旋转角度可以明确目标对象实际旋转过程与期望旋转过程的误差数据,进而根据误差数据调节目标对象的旋转速度,以保证旋转过程更加精准。参考图3d,该步骤具体可以通过s20951-s20956的步骤实现:

s20951、根据实际旋转角度和目标旋转角度确定当前旋转时刻的角度误差数据。

设定当前旋转时刻得到的目标对象的位置数据为:pxt1=[xinit,yinit,θxt1]t,其中,实际旋转角度为θxt1,那么角度误差数据为:θe=θt1-θxt1。

s20952、获取旋转控制器的系统参数。

其中,旋转控制器为设置在目标对象内部,并且在原地旋转过程中确定旋转速度的装置,其可以为软件和/或硬件。一般而言,旋转控制器的系统参数可以根据实际情况设定,并在一次完整的旋转过程中不可更改。为在本实施例中,旋转控制器选为pid控制器。对应的系统参数包括:比例参数kp,积分参数ki和微分参数kd。

s20953、根据角度误差数据和旋转控制器的系统参数确定目标对象当前旋转时刻的旋转速度。

具体的,确定当前时刻的旋转速度公式如下:

其中,t1表示当前旋转时刻,qxz(t1)表示当前旋转时刻的旋转速度,其包括当前旋转时刻的直线旋转速度参数vxz(t)和当前旋转时刻的旋转速度参数wxz(t)。由于目标对象进行原地旋转操作,因此,vxz(t)=0。

s20954、对旋转速度执行旋转速度变换,以确定目标对象的期望旋转速度,期望旋转速度包括第一旋转子速度和第二旋转子速度。

具体的,设定目标对象包括第一移动装置和第二移动装置,那么为了保证目标对象实现原地旋转操作,仍然需要将旋转速度转换成控制第一移动装置和第二移动装置的第一旋转子速度和第二旋转子速度。进一步的,当第一移动装置和第二移动装置左右设置时,对旋转速度进行旋转速度变换的公式参考如下:

其中,vl2(t1)表示左移动装置对应的期望速度,vr2(t1)表示右移动装置对应的期望速度。vl2(t1)和vr2(t1)中的一个为第一子速度,另一个为第二子速度。b为第一移动装置和第二移动装置之间的间距。其中,由于目标对象进行原地旋转操作,所以该过程中线速度vxz(t1)=0。

s20955、利用第一旋转子速度控制目标对象的第一移动装置进行旋转。

s20956、利用第二旋转子速度控制目标对象的第二移动装置进行旋转。

s2096、判断目标对象是否原地旋转至目标角度。若是,则执行s2097,否则,执行s2094。

具体的,在每个旋转时刻目标对象执行一次原地旋转操作后,均获取旋转后的实际旋转角度,并确认实际旋转角度是否为目标角度,若是,则确认目标对象原地旋转至目标角度,否则重新确定目标对象的旋转速度并旋转目标对象。由于在判断目标对象是否原地旋转至目标角度时已经获取了实际旋转角度,所以在实际应用中若目标对象没有原地旋转至目标角度,则可以返回执行s2094。

s2097、停止原地旋转操作。

s210、控制目标对象正向移动至目标停止位置,并在移动至目标停止位置时停止移动操作。

具体的,原地旋转停止时刻时目标对象的角度数据与目标停止位置的角度数据相同,但是目标对象的二维平面坐标位置与目标停止位置的二维平面坐标位置还存在差异,因此,需要将目标对象正向移动至目标停止位置。

可选的,参考图3e,该步骤具体可以通过s2101-s2107的步骤实现:

s2101、获取目标对象停止原地旋转操作时的位置数据和目标停止位置的停止位置数据。

其中,停止原地旋转操作时的位置数据可以通过里程计或者定位算法得到。

s2102、根据位置数据和停止位置数据确定目标对象的移动规划。

为了保证目标对象正向移动时的准确性,先对目标对象正向移动过程进行预先规划,以在实际的正向移动过程中根据移动规划结果对正向移动速度进行修正。

进一步的,对目标对象进行移动规划时,可以采用现有的多种运动规划方法。在本实施例中,示例性的选择了五次多项式法进行移动规划。下面对基于五次多项式法构造移动规划公式进行详细描述:

五次多项式法的运功规划过程可以参考公式(4),并将公式(4)中t1均改为t2。其中,a0、a1、a2、a3、a4以及a5为规划系数,t2为目标对象当前的移动时刻(本实施例中t2为目标对象从开始移动时开始计时直到当前的总移动时刻与正向移动开始时刻的差值),s(t2)为t2时刻的移动规划结果。从公式(4)可知,如果想要确定目标对象的移动规划结果,需要明确规划系数的具体值。

具体的,规划系数的具体确定过程为:

设定目标停止位置为po=[x0,y0,θ0]t,目标对象停止原地旋转操作时的原地旋转目标位置数据为p′o=[xinit,yinit,θ0]t。进一步,可以得到s0=0,同时,由于目标对象在实际应用中每次正向移动均成圆弧运动,所以为了保证移动规划的准确性,需要确定圆弧运动的方向单位向量。具体的,方向单位向量为:且每次正向移动的方向单位向量相同。

进一步的,规划系数计算公式参考公式(5-1)至公式(5-6),在确定规划系数后,式(4)可以表示为:

st2=a0+a1t2+a2t22+a3t23+a4t24+a5t25(14)

其中,st2表示为t2时刻目标对象期望正向移动的轨迹位置数据。对式(14)进行微分计算,可得:

其中,表示为t2时刻目标对象期望达到的轨迹速度。对式(15)进行微分计算,可得:

其中,表示为t2时刻目标对象期望达到的轨迹加速度。

进一步的,根据式(14)、式(15)以及式(16)便可以构造出目标对象的移动规划公式。具体的,根据式(14)、式(15)以及式(16)便可以得到目标对象任意t2时刻期望正向移动的轨迹位置数据、轨迹速度以及轨迹加速度。为了保证规划结果的准确性,将轨迹位置数据、轨迹速度以及轨迹加速度结合方向单位向量,以确定出目标对象t2时刻期望到达的目标位置数据、目标速度以及目标加速度。

其中,确定目标位置数据pr(t2)的公式为:

确定目标速度的公式为:

确定目标加速度为:

示例性的,式(17)、式(18)以及式(19)为最终得到的移动规划公式。需要说明的是,在实际应该过程中,可以根据实际情况在式(17)、式(18)以及式(19)中选择性的构造至少一个移动规划公式。

s2103、执行移动操作,并获取移动过程中当前移动时刻的第二实际位置数据。

具体的,当前移动时刻为t2时刻。第二实际位置数据pc(t2)可以通过目标对象的里程计获取,还可以通过定位算法获取。

s2104、根据移动规划确定当前移动时刻的第二目标位置数据。

具体的,根据式(17)确定t2时刻的第二目标位置数据pr(t2)。

s2105、利用第二实际位置数据和第二目标位置数据确定当前移动时刻的移动速度,并根据移动速度移动目标对象。

示例性的,根据第二实际位置数据和第二目标位置数据可以明确目标对象实际正向移动过程与期望正向移动过程的移动误差数据,进而根据移动误差数据调节目标对象的移动速度,以保证正向移动过程更加精准。

具体的,可以利用公式(1)确定第二目标位置数据与第二实际位置数据的移动误差数据,仅需将公式(1)中第一实际位置数据替换为第二实际位置数据,将第一目标位置数据替换为第二目标位置数据。进一步的,目标对象正向移动时,确定正向移动控制参数的控制器可选满足李雅普诺夫渐近稳定性要求,其与目标对象进行移动时的控制器可以相同,也可以不同。可选的,目标对象移动时和正向移动时可以共用同一控制器,当然也可以使用不同的控制器。其中,正向移动对应的控制器的系统参数与移动对应的控制器的系统参数类型相同。据此,可以利用式(2)确定目标对象t2时刻的正向移动控制参数。此时,kx,ky,kθ分别是正向移动对应的控制器的系统参数,xr(t2)和yr(t2)分别表示第二目标位置数据中二维平面坐标位置。由于正向移动过程不涉及到旋转操作,因此可以设定wr=0。

进一步的,设定目标对象包括第一移动装置和第二移动装置,那么为了控制两个移动装置进行正向移动,需要对正向移动控制参数进行速度变化以确定两个移动装置的移动速度,该移动速度同样包括第一正向子速度和第二正向子速度。在速度变化时,可以参考公式(3),此时,vl1(t2)和vr1(t2)中的一个为第一正向子速度,另一个为第二正向子速度。b为第一移动装置和第二移动装置之间的间距。具体的,利用第一正向子速度控制第一移动装置进行正向移动,利用第二正向子速度控制第二移动装置进行正向移动,以实现目标对象的正向移动。

s2106、判断目标对象是否移动至目标停止位置。若是,则执行s2107,否则,返回执行s2104。

具体的,在每个正向移动时刻目标对象执行一次正向移动后,均获取正向移动后的第二实际位置数据,并确认第二实际位置数据是否为目标停止位置的停止位置数据,若是,则确认目标对象正向移动至目标停止位置,否则重新确定目标对象的移动速度并进行移动。由于在判断目标对象是否正向移动至目标停止位置时已经获取了第二实际位置数据,所以在实际应用中若目标对象没有正向移动至目标停止位置,则可以返回执行s2104。

s2107、停止移动操作。

下面对本实施例提供的移动控制方法进行示例性的描述:

具体的,目标对象为具有移动功能的机器人,该机器人包括一个左驱动轮以及一个右驱动轮。图3f为机器人的移动空间示意图。参考图3f,机器人21需要从当前位置移动到目标停止位置22,并在该移动空间中存在障碍物23、障碍物24。在本示例中,机器人21移动至目标停止位置22共分为两个过程:移动过程和停止过程。停止过程中执行的预设停止操作分为:原地旋转操作和正向移动操作。

进一步的,图3g为机器人移动过程的算法框图。参考图3g,机器人21利用dwa确定控制指令参数qr以及规划轨迹,其中,规划轨迹为图3f中的轨迹25。具体的,根据qr控制移动机器人21进行移动,并在数据获取时刻获取第一实际位置数据pc(t)以及控制参数,同时根据规划轨迹确定第一目标位置数据pr(t)。进一步的,利用公式(1)确定误差参数pe(t),之后通过控制器利用公式(2)确定实际控制参数qq(t),其中该控制器计算过程可以称为轨迹跟踪控制算法。利用公式(3)对qq(t)进行速度变换,以确定期望速度qc1(t),其中,qc1(t)包括:vl1(t)和vr1(t),利用vl1(t)控制左驱动轮进行移动,利用vr1(t)控制右驱动轮进行移动,进而实现机器人的一次移动。上述移动过程中机器人实现了位置闭环,保证了移动精准性。可选的,在机器人移动过程中,不仅实现位置闭环,还同时可选实现速度闭环,其中,分别通过pid控制器控制左驱动轮和右驱动轮,也可以将pid控制器控制左驱动轮和右驱动轮的过程理解为驱动机器人进行移动的驱动器运行的过程。在本示例中,速度闭环过程可以通过驱动器执行。具体的,速度闭环的实现方法为获取目标对象移动过程中的实际速度,并根据实际速度对期望速度进行调节以得到修正速度,其具体的调节方式本实施例不作限定。在后续的停止过程中如果也需要实现速度闭环,那么其采用的调节方式与本过程中的调节方式相同。

参考图3h,机器人每次完成移动后,均确认当前的pc(t)与目标停止位置po的距离,并与设定的距离阈值r进行比较。如果满足dist(pc(t)-po)<r或者dist(pc-po)=r,则确认满足预设的停止移动条件,进而执行使机器人原地旋转至目标角度(也可以称为目标姿态)的原地旋转操作和使机器人正向移动到目标停止位置po的正向移动操作po。如果不满足上述停止移动条件,则重新根据图3g的移动算法执行移动操作,并判断是否满足预设的停止移动条件。需要说明的是,机器人完成移动后的实际位置数据为pinit=[xinit,yinit,θinit]t

图3i为机器人原地旋转过程的算法框图。在执行原地旋转过程前,需要对原地旋转操作进行旋转规划,以确定公式(6),并根据公式(6)确定公式(9)。执行原地旋转操作,参考图3i,获取当前旋转时刻t1的实际旋转角度θxt1以及根据公式(9)确定对应的目标旋转角度θt1,进而确定角度误差数据θe。利用pid控制器根据公式(12)确定对应的旋转速度qxz(t1),并对qxz(t1)进行速度变换,以确定期望旋转速度qc2(t1),其中,qc2(t1)包括:vl2(t1)和vr2(t1)。具体的,利用vl2(t1)控制左驱动轮进行原地旋转操作,利用vr2(t1)控制右驱动轮进行原地旋转操作,进而实现机器人的一次原地旋转操作。上述旋转过程中机器人实现了旋转角度闭环,保证了旋转的精准性。可选的,在机器人的原地旋转过程中,不仅实现旋转角度闭环,还同时可选实现速度闭环。

机器人每次完成原地旋转后,均确认当前的实际旋转角度θxt1与目标角度θo是否相同。若相同,则结束原地旋转过程并执行正向移动过程,以保证机器人移动到po。若不相同,则重新根据图3i的原地旋转算法执行原地旋转操作。需要说明的是,机器人完成原地旋转后的实际位置数据为p′o=[xinit,yinit,θ0]t

图3j为机器人正向移动过程的算法框图。在执行正向移动过程前,需要对正向移动操作进行移动规划,以确定公式(14),并根据公式(14)确定公式(17)。进一步的,在执行正向移动操作时,参考图3j,获取当前正向移动时刻t2的第二实际位置数据pc(t2)以及根据公式(14)确定对应的第二目标位置数据pr(t2),进而利用公式(1)确定误差参数pe(t2)。之后利用公式(2)确定实际控制参数qq(t2),并在确定qq(t2)时,引入其中xr(t2)和yr(t2)分别表示第二目标位置数据pr(t2)中二维平面坐标位置,且wr=0。进一步的,利用公式(3)对qq(t2)进行速度变换,以确定期望速度qc1(t2),其中,qc1(t2)包括:vl1(t2)和vr1(t2),利用vl1(t2)可以控制左驱动轮进行正向移动,利用vr1(t2)可以控制右驱动轮进行正向移动,进而实现机器人的一次正向移动。上述正向移动过程中机器人实现了位置闭环,保证了正向移动精准性。可选的,在机器人正向移动过程中,不仅实现位置闭环,还同时可选实现速度闭环,其中,分别通过pid控制器控制左驱动轮和右驱动轮。

机器人每次完成正向移动后,确认当前的pc(t2)与po是否相同。若相同,则结束正向移动过程。若不相同,则重新根据图3j的原地旋转算法执行正向移动操作。

本实施例提供的技术方案,通过动态窗口法确定目标对象移动过程中的最佳控制指令以及对应的规划轨迹,实际了目标对象移动过程的避障,并且在实际移动过程中,通过获取第一目标位置数据和第一实际位置数据确定控制目标对象移动的期望速度,实现了位置闭环,保证了目标对象执行规划路径的精确度,当满足预设停止移动条件后,执行原地旋转操作和正向移动,其中,在执行原地旋转操作时实现了角度闭环,在正向移动时实现了位置闭环,这样做的好处是可以克服目标对象移动停止时与目标停止位置的距离过大,且易来回打转的问题。

实施例三

图4为本发明实施例三提供的一种移动控制装置的结构示意图。参考图4,本实施例提供的移动控制装置具体包括:获取模块301、第一移动模块302以及停止确认模块303。

其中,获取模块301,用于获取目标对象的控制参数、第一实际位置数据和第一目标位置数据;第一移动模块302,用于根据控制参数、第一实际位置数据和第一目标位置数据确定目标对象的期望速度,并利用期望速度控制目标对象进行移动;停止确认模块303,用于判断目标对象是否满足预设的停止移动条件;若是,则执行预设的停止操作。

本实施例提供的技术方案,通过获取目标对象的控制参数、第一实际位置数据和第一目标位置数据确定目标对象的期望速度,并根据期望速度控制目标对象进行移动,如果目标对象满足预设停止移动条件,则执行预设停止操作的技术方案,实现了在目标对象的移动过程中对目标对象的位置参数进行闭环,保证了目标对象移动路径的精确度,解决了移动过程中位置精确度低的问题。

在上述实施例的基础上,第一移动模块302包括:误差确定子模块,用于根据第一实际位置数据和第一目标位置数据确定目标对象的位置误差数据;参数确定子模块,用于利用位置误差数据、第一实际位置数据和控制参数确定目标对象当前时刻的实际控制参数;速度确定子模块,用于对实际控制参数进行速度变换,以确定目标对象的期望速度,期望速度包括第一子速度和第二子速度;移动控制子模块,用于利用第一子速度控制目标对象的第一移动装置进行移动;移动控制子模块,用于利用第二子速度控制目标对象的第二移动装置进行移动。

在上述实施例的基础上,控制参数包括:系统参数和控制指令参数。

进一步的,该移动控制装置还包括:指令确定模块,用于在获取目标对象的控制参数、第一实际位置数据和第一目标位置数据之前,利用动态窗口法确定目标对象移动过程中的最佳控制指令以及对应的规划轨迹,以根据最佳控制指令和规划轨迹确定目标对象的控制指令参数和第一目标位置数据。

在上述实施例的基础上,停止确认模块303包括:判断子模块,用于判断目标对象是否满足预设的停止移动条件;原地旋转子模块,用于若满足预设的停止移动条件,则对目标对象执行原地旋转操作,以使目标对象原地旋转至目标角度;正向移动子模块,用于控制目标对象正向移动至目标停止位置,并在移动至目标停止位置时停止移动操作;返回子模块,用于若不满足预设的停止移动条件,则重新确定目标对象的期望速度并进行移动。

在上述实施例的基础上,原地旋转子模块包括:角度获取单元,用于获取目标对象满足预设的停止移动条件时的实际角度以及目标角度;旋转规划单元,用于根据实际角度以及目标角度确定目标对象的旋转规划;旋转执行单元,用于执行旋转操作,并获取旋转过程中当前旋转时刻的实际旋转角度;第一数据获取单元,用于根据旋转规划确定当前旋转时刻的目标旋转角度;旋转速度确定单元,用于利用实际旋转角度和目标旋转角度确定当前旋转时刻的旋转速度,并根据旋转速度旋转目标对象;旋转停止判断单元,用于判断目标对象是否原地旋转至目标角度;若是,则停止原地旋转操作,否则,重新确定目标对象的旋转速度并旋转目标对象。

在上述实施例的基础上,旋转速度确定单元包括:第一误差子单元,用于根据实际旋转角度和目标旋转角度确定当前旋转时刻的角度误差数据;参数获取子单元,用于获取旋转控制器的系统参数;速度确定子单元,用于根据角度误差数据和旋转控制器的系统参数确定目标对象当前旋转时刻的旋转速度;速度变换子单元,用于对旋转速度执行旋转速度变换,以确定目标对象的期望旋转速度,期望旋转速度包括第一旋转子速度和第二旋转子速度;第一旋转单元,用于利用第一旋转子速度控制目标对象的第一移动装置进行旋转;第二旋转单元,用于利用第二旋转子速度控制目标对象的第二移动装置进行旋转。

在上述实施例的基础上,正向移动子模块包括:位置获取单元,用于获取目标对象停止原地旋转操作时的位置数据和目标停止位置的停止位置数据;移动规划单元,用于根据位置数据和停止位置数据确定目标对象的移动规划;正向移动单元,用于执行移动操作,并获取移动过程中当前移动时刻的第二实际位置数据;第二数据获取单元,用于根据移动规划确定当前移动时刻的第二目标位置数据;移动速度确定单元,用于利用第二实际位置数据和第二目标位置数据确定当前移动时刻的移动速度,并根据移动速度移动目标对象;移动停止判断单元,用于判断目标对象是否移动至目标停止位置,若是,则停止移动操作,否则,重新确定目标对象的移动速度并进行移动。

在上述实施例的基础上,预设的停止移动条件为根据第一实际位置数据确定目标对象与目标停止位置的距离小于或等于设定距离阈值。

本发明实施例提供的移动控制装置适用于上述任意实施例提供的移动控制方法具备相应的功能和有益效果。

实施例四

图5为本发明实施例四提供的一种机器人的结构示意图。如图5所示,该机器人包括处理器40、存储装置41、移动装置42、输入装置43和输出装置44;机器人中处理器40的数量可以是一个或多个,图5中以一个处理器40为例,机器人中移动装置42的数量可以是一个或多个,图5中以两个移动装置42为例;机器人中的处理器40、存储装置41、移动装置42、输入装置43和输出装置44可以通过总线或其他方式连接,图5中以通过总线连接为例。

其中,移动装置42,用于实现机器人的移动操作以及旋转操作。上述方法实施例提及的各种控制器均可以默认为设置于处理器40中。

存储装置41作为一种计算机可读存储介质,用于存储一个或多个程序,如本发明实施例中的移动控制方法对应的程序指令/模块(例如,移动控制装置中的获取模块301、第一移动模块302和停止确认模块303)。处理器40通过运行存储在存储装置41中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的移动控制方法。

存储装置41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储装置41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至机器人。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置44可用于接收输入的数字或字符信息,以及产生与机器人的用户设置以及功能控制有关的键信号输入。输出装置45可包括显示屏等显示设备。

实施例五

本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种移动控制方法,该移动控制方法包括:

在获取目标对象的控制参数、第一实际位置数据和第一目标位置数据;

根据控制参数、第一实际位置数据和第一目标位置数据确定目标对象的期望速度,并利用期望速度控制目标对象进行移动;

判断目标对象是否满足预设的停止移动条件,若是,则执行预设的停止操作。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的移动控制方法操作,还可以执行本发明任意实施例所提供的移动控制方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是机器人,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的移动控制方法。

值得注意的是,上述移动控制装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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