智能移动的方法、装置、机器人及存储介质与流程

文档序号:14940504发布日期:2018-07-13 20:35阅读:152来源:国知局

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



背景技术:

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

一般而言,机器人在移动时,通常由驱动器控制左右驱动轮进行移动或旋转,并对左右驱动轮的速度进行闭环。其中,闭环过程可以参考图1,机器人时刻获取左右驱动轮当前输出的实际速度,并根据该速度对驱动器输出的目标速度进行修正,以实现机器人的正常移动。但是,上述方法中仅对速度进行闭环,并未对机器人的整体位置进行闭环,降低了机器人的位置精确度,同时,在移动过程中,由于速度会阶跃跳变,容易出现震荡摆尾的现象。



技术实现要素:

有鉴于此,本发明实施例提供一种智能移动的方法、装置、机器人及存储介质,以解决机器人移动过程中由于速度阶跃跳变带来的震荡摆尾的现象以及位置精确度低的技术问题的技术问题。

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

根据移动对象的当前位姿和目标位姿确定所述移动对象的移动阶段,所述移动阶段包括:原地旋转阶段和/或线型移动阶段;

基于速度平滑算法对所述移动阶段进行轨迹规划;

根据轨迹规划结果控制所述移动对象进行移动,并在移动过程中,利用轨迹跟踪算法修正所述移动对象的移动控制参数。

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

阶段确定模块,用于根据移动对象的当前位姿和目标位姿确定所述移动对象的移动阶段,所述移动阶段包括:原地旋转阶段和/或线型移动阶段;

轨迹规划模块,用于基于速度平滑算法对所述移动阶段进行轨迹规划;

移动控制模块,用于根据轨迹规划结果控制所述移动对象进行移动,并在移动过程中,利用轨迹跟踪算法修正所述移动对象的移动控制参数。

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

一个或多个处理器;

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

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

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

上述提供的智能移动的方法、装置、机器人和存储介质,通过移动对象的当前位姿和目标位姿确定移动阶段,并根据速度平滑算法对各移动阶段进行轨迹规划,以使移动对象根据轨迹规划结果进行移动,并在移动过程中通过轨迹跟踪算法实时修正移动控制参数的技术手段,实现了根据实际情况确定出适合移动对象的移动阶段,并规划出速度平滑的移动轨迹,避免了由于速度阶跃跳变带来的震荡摆尾的现象,同时,保证了移动对象实际移动轨迹的精确度。

附图说明

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

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

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

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

图4为本发明实施例三提供的一种智能移动的方法的流程图;

图5为本发明实施例四提供的一种智能移动的方法的流程图;

图6为本发明实施例四提供的智能移动的方法的原理框图;

图7为本发明实施例五提供的一种智能移动的装置的结构示意图;

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

具体实施方式

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

实施例一

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

具体的,参考图2,本实施例提供的智能移动的方法具体包括:

s101、根据移动对象的当前位姿和目标位姿确定移动对象的移动阶段。

在本实施例中,移动对象是具有智能移动功能的机器人。当前位姿为当前采样时刻移动对象确定的自身位姿数据。目标位姿为本次移动过程中,移动对象计划达到的位姿数据。其中,当前位姿包括:当前角度和当前位置,目标位姿包括目标角度和目标位置。具体的,在移动对象的移动范围内建立坐标系,移动对象根据该坐标系可以确定自身当前位置。同时,预先设定基准角度,移动对象根据该基准角度可以确定自身当前角度。可选的,当前位姿可以通过里程计或者定位算法等方式进行确定。

具体的,移动阶段可以包括原地旋转阶段和/或线型移动阶段。原地旋转阶段是指移动对象仅改变当前角度,而当前位置并不会发生变化。线型移动阶段是指移动对象的当前位置发生变化。在实际线型移动阶段中,移动对象并不能进行准确的直线移动,多为略带弧度的圆弧移动,此时,由于圆弧移动可能导致移动对象的当前角度发生变化,因此,线型移动阶段不仅包括当前位置变化,还可能包括当前角度变化。

示例性的,移动对象获取到目标位姿后,根据自身当前位姿和目标位姿确定达到目标位姿的移动阶段。一般而言,目标位姿不同于当前位姿。如果当前位姿中的当前角度与目标姿态中的目标角度不同,那么移动阶段中必然包括原地旋转阶段,如果当前位姿中的当前位置与目标位姿中的目标位置不同,那么移动阶段中必然包括线型移动阶段。在实际应用中,可以根据当前位姿和目标位姿的实际比较结果,确定移动阶段的具体内容。

可选的,当移动阶段包括原地旋转阶段和线型移动阶段时,可以根据实际情况设定原地旋转阶段和线型移动阶段的先后顺序,同时,还可以根据实际情况设置多个原地旋转阶段和多个线型移动阶段,并设置各阶段的顺序。例如,根据当前位姿和目标位姿的比较结果确定移动对象包括两个原地旋转阶段和一个线型移动阶段,并确定移动阶段的执行顺序为:原地旋转阶段-线型移动阶段-原地旋转阶段。其中,具体的设定执行顺序的规则本实施例不作限定。

s102、基于速度平滑算法对移动阶段进行轨迹规划。

具体的,速度平滑算法是指通过对相关参数进行插补的方式保证理想状态下,移动对象在移动过程中速度变化率尽可能的平滑不会出现阶跃跳变。进一步的,轨迹规划是指通过运动规划方法预先确定理想状态下,移动对象在对应的移动阶段中的移动轨迹。根据该移动轨迹可以确定理想状态下,各采样时刻移动对象期望达到的子目标位姿。如果移动对象的实际移动轨迹与规划的移动轨迹一致,那么每个采样时刻得到的当前位姿与对应的子目标位姿均相同。可选的,轨迹规划的具体内容可以根据实际情况进行设定,如五次多项式算法、轨迹模型算法等。一般而言,在进行轨迹规划时,可以对相关参数进行插值,以保证规划出速度平滑的移动轨迹。举例而言,通过五次多项式算法对原地旋转过程进行规划时,可以对理想状态下,期望移动对象在各采样时刻期望达到的理想角度进行插值,以保证根据理想角度得到速度平滑的移动轨迹。

可选的,原地旋转阶段时,可以根据当前角度和目标角度,利用运动规划方法确定移动对象由当前角度原地旋转至目标角度的移动轨迹。线型移动阶段时,为了防止移动对象速度变化率过大,将线型移动阶段分为至少一个移动子阶段和停止阶段,每个移动子阶段移动对象均经历变速运动和匀速运动两个阶段,其中,每个移动子阶段的匀速移动参数可以根据自身加速度限制条件确定,此时,设置至少一个移动子阶段的好处是在移动对象靠近目标位置的过程中,结合自身的实际条件进行移动,如果需要速度变化过大而自身条件并不允许一次变化到设定速度,则可以分为多个移动子阶段,以通过多次变速、匀速的移动保证速度变化平滑。停止阶段是指移动对象靠近目标位置后,使移动对象静止下来的阶段,设置停止阶段的好处是可以避免移动对象突然停止带来的速度阶跃跳变的现象,保证了速度平滑。其中,移动子阶段的划分规则可以根据实际情况进行设定,如设定运动周期,并根据运动周期进行划分,或者,预先设定多个匀速移动参数,并根据匀速移动参数进行划分。可选的,由于线型移动阶段可能会涉及角度变化,因此,线型移动阶段中保证速度变化平滑时,可以是根据实际情况保证线速度变化平滑和角速度变化平滑,以保证线型移动的准确性。

需要说明的是,在轨迹规划过程中,可能会规划出多条移动轨迹,此时,可以在多条移动轨迹中选择一条移动轨迹作为最终的移动轨迹。在移动轨迹选择时,通常选择最优轨迹。其中,预先确定每条移动轨迹的加权分后,根据加权分选择最优轨迹。每条移动轨迹的加权分可以通过移动过程中离障碍物的距离、离目标位置的距离和与目标角度的差值等参数进行设定。

s103、根据轨迹规划结果控制移动对象进行移动,并在移动过程中,利用轨迹跟踪算法修正移动对象的移动控制参数。

其中,轨迹规划结果为s102中最终得到的移动轨迹。

具体的,根据移动轨迹控制移动对象进行移动时,具体为根据移动轨迹确定使移动对象按照移动轨迹准确运行的全部可行的指令空间,并在指令空间中选择最优的控制参数作为移动控制参数,以根据移动控制参数控制移动对象进行移动。其中,选择最优的控制参数时通常参考下述三种评价指标:目标位姿的朝向、移动对象与障碍物的距离以及移动对象移动时最快的速度(线速度和角速度)。可选的,将上述三种评价指标进行线性组合以作为选择最优的控制参数时的参考依据,其具体的组合规则本实施例不作限定。

其中,移动控制参数包括线速度控制参数和角速度控制参数,通过线速度控制参数和角速度控制参数可以分别实现移动对象的线型移动和原地旋转。具体的,移动控制参数为控制移动对象中驱动移动装置运行的驱动器的驱动参数,以使驱动器根据控制参数控制移动装置的电机进行运转。例如,移动对象为移动小车,移动装置为左右驱动轮,那么移动控制参数可以是驱动左右驱动轮电机运行的驱动器的驱动参数。

考虑到移动对象根据移动控制参数进行移动时,由于设备硬件条件、移动空间环境等因素的限制,可能会导致实际移动的轨迹与规划的移动轨迹不一致,此时如果继续控制移动对象移动将会使移动对象无法准确的到达目标位姿。因此,为了保证使移动对象准确的到达目标位姿,本实施例采用在移动对象的移动过程中,利用轨迹跟踪算法对移动对象的移动过程进行跟踪。其具体为:在移动过程中,根据设定的采样间隔,在当前采样时刻获取移动对象的实际位姿(当前位姿),并根据移动轨迹确定该采样时刻下移动对象期望达到的子目标位姿。分析实际位姿和子目标位姿的差值以实现根据差值对下一采样时刻的移动控制参数进行修正,以使移动对象实际移动的轨迹与规划的移动轨迹尽可能的一致。其中,修正移动控制参数的具体方式本实施例不作限定。

本实施例提供的技术方案,通过移动对象的当前位姿和目标位姿确定移动阶段,并根据速度平滑算法对各移动阶段进行轨迹规划,以使移动对象根据轨迹规划结果进行移动,并在移动过程中通过轨迹跟踪算法实时修正移动控制参数的技术手段,实现了根据实际情况确定出适合移动对象的移动阶段,并规划出速度平滑的移动轨迹,避免了由于速度阶跃跳变带来的震荡摆尾的现象,同时,保证了移动对象实际移动轨迹的精确度。

在上述实施例的基础上,根据移动对象的当前位姿和目标位姿确定移动对象的移动阶段可以进一步包括:确定移动对象当前位姿中的当前角度和当前位置以及目标位姿中的目标角度和目标位置;若当前位置与目标位置相同,则确定移动阶段包括:原地旋转阶段;若当前位置与目标位置不相同且当前角度与目标角度不相同,则确定移动阶段包括:原地旋转阶段和线型移动阶段;若当前位置与目标位置不相同且当前角度与目标角度相同,则确定移动阶段包括:线型移动阶段。

具体的,当移动对象获取到目标位姿后,将目标位姿中的目标位置和目标角度分别与当前位姿中的当前位置和当前角度进行比较。一般而言,可以得到三类比较结果:

第一类:当前位置与目标位置相同。此类结果说明移动对象的位置无需改变,仅需从当前角度移动到目标角度。即规划从当前角度原地旋转至目标角度的原地旋转轨迹,并根据原地旋转轨迹进行移动,且在移动过程中通过轨迹跟踪算法进行轨迹跟踪。执行完毕本次规划的原地旋转阶段的操作后,确认是否到达目标位姿,如果没有到达目标位姿,则重新执行原地旋转操作,直到到达目标位姿为止。

第二类:当前位置与目标位置不相同且当前角度与目标角度不相同。此类结果说明移动对象需要改变当前位置和当前角度,才能到达目标位姿。此时,移动阶段包括原地旋转阶段和线型移动阶段。即通过原地旋转到达目标角度,通过线型移动到达目标位置。其中,原地旋转和线型移动的先后顺序可以根据实际情况进行设备。

可选的,若当前位置与目标位置不相同且当前角度与目标角度不相同,则确定移动阶段包括:原地旋转阶段和线型移动阶段具体可以包括:若当前位置与目标位置不相同且当前角度与目标角度的差值大于或等于第二角度差值,则确定移动阶段包括:起始旋转阶段、线型移动阶段和结束旋转阶段,且设定移动顺序为执行起始旋转阶段,并在起始旋转阶段结束后确认移动对象的当前角速度小于或等于角速度阈值时执行线型移动阶段,在线型移动阶段结束后确认移动对象在预设停止范围内且满足第二起始移动参数与停止参数相同时执行结束旋转阶段;若当前位置与目标位置不相同且当前角度与目标角度的差值小于第二角度差值,则确定移动阶段包括线型移动阶段和结束旋转阶段,且设定移动顺序为执行线型移动阶段,在线型移动阶段结束后确认移动对象在预设停止范围内且满足第二起始移动参数与停止参数相同时执行结束旋转阶段。

具体的,第二角度差值可以根据实际情况进行设定。当前角度与目标角度的差值大于或等于第二角度差值时,可以先执行原地旋转操作,确定当前角度旋转至目标角度的旋转规划轨迹,并根据旋转规划轨迹使得移动对象原地旋转以向目标角度靠近,并在旋转结束后获取的当前角速度小于或等于角速度阈值时执行线型移动阶段。角速度阈值可以根据实际情况设备,一般而言,角速度阈值设为0,当前角速度为0时,说明移动对象停止了原地旋转操作,并进入线型移动阶段。

进一步的,起始旋转阶段可以分为起始原地旋转阶段和起始原地旋转停止阶段。其中,起始原地旋转阶段中,通过轨迹规划和轨迹跟踪算法使移动对象由当前角度旋转至目标角度,并在起始原地旋转阶段结束后,确定当前角速度是否为零,如果为零,则说明旋转结束,此时,可以执行线型移动操作,如果不为零,则说明虽然到达目标角度,但是旋转并未结束,此时,进入起始原地旋转停止阶段,以停止原地旋转操作。在停止原地旋转操作时,进行轨迹规划时仍然是以到达目标角度为结束角度,并设定结束时角速度为零。可选的,移动对象可能会先减速旋转后反向旋转以到达目标角度。可选的,在到达目标角度后,继续确认当前角速度是否为零,如果为零,则执行线型移动操作,否则,继续进行起始原地旋转停止阶段,直到角速度为零为止。

一般而言,设定线型移动操作结束时移动对象需在预设停止范围内且满足起始移动参数与停止参数相同。预设停止范围包括目标位置,移动对象停止在该范围内时,便可以确定停止在目标位置,存在的误差可以忽略不计。停止参数是指预先设定的移动对象停止线型移动时的参数,可选的,其包括停止线速度和停止角速度,且停止线速度和停止角速度设定为0。

可选的,线型移动阶段可以包括移动子阶段和停止阶段。其中,移动子阶段是指移动对象由当前位置移动到预设停止范围的阶段。一般而言,起始旋转阶段结束后进入移动子阶段。可选的,根据轨迹规划和轨迹跟踪算法控制移动对象进入预设停止范围内时,移动对象的线速度和/或角速度可能会不为零,所以为了保证移动对象在目标位置时线速度和角速度均为零,增加了移动停止阶段。具体的,在移动子阶段确认移动对象进入预设停止范围后,确定当前线速度和当前角速度是否均为零,若不是,则进入停止阶段,若是,则进入结束旋转阶段。一般而言,移动子阶段结束时刻的当前线速度和当前角速度并不会均为零,因此,可以直接进入停止阶段。停止阶段时,获取当前时刻的第二起始移动参数,以进行轨迹规划,其中,第二起始移动参数的具体内容可以根据实际情况进行设定,优选包括当前线速度和当前角速度。根据轨迹规划结果移动完毕后,继续确定当前时刻的第二起始移动参数是否为停止参数。即确定当前线速度和当前角速度是否均为零,若为零,则进入结束旋转阶段,否则,继续移动停止阶段,直到第二起始移动参数为停止参数。

进一步的,由于线型移动阶段时,移动对象实际移动轨迹为带有弧度的线型轨迹,因此可能会导致移动过程中当前角度与目标角度的差值大于或等于第一角度差值的情况,第一角度差值可以根据实际情况进行设定。此时,若继续进行线型移动而不改变当前角度,那么将会导致移动对象离目标位姿越来越远的情况。为了防止上述情况,将移动子阶段分为非角度规划的移动子阶段和角度规划的移动子阶段。由于停止阶段是在预设停止范围内执行的操作,因此,无需考虑停止阶段时当前角度与目标角度的差值是否大于第一角度差值。

其中,非角度规划的移动子阶段是指在进入移动子阶段时,当前角度与目标角度的差值小于第一角度差值,此时,仅需基于线速度进行轨迹规划。角度规划的移动子阶段是指在进入移动子阶段时,当前角度与目标角度的差值大于或等于第一角度差值,此时,不仅需要基于线速度进行轨迹规划,还需要基于角速度进行轨迹规划,以保证移动过程中,移动对象朝目标位姿进行移动。由于线型移动阶段包括至少一个移动子阶段,可以在每个移动子阶段结束后,确定移动对象是否达进入预设停止范围,若没有到达预设停止范围,则确认当前角度与目标角度的差值是否小于第一角度差值,若是,则确定下一移动子阶段为非角度规划的移动子阶段,否则确认下一移动子阶段为角度规划的移动子阶段,并返回执行规划移动子阶段的移动轨迹,直到当前移动子阶段结束后,移动对象进入预设停止范围,并进入停止阶段。

进一步的,由于线型移动操作具体为带有弧度的移动操作,因此,在线型移动结束后,会再次执行原地旋转操作,以保证到达目标角度,具体的,在执行完毕本次规划的原地旋转阶段的操作后,可以确认是否到达目标位姿,如果没有到达目标位姿,则重新执行原地旋转操作,直到到达目标位姿为止。其中,将先执行原地旋转操作确认为起始旋转阶段,再次执行原地旋转操作确认为结束旋转阶段。

进一步的,当前角度与目标角度的差值小于第二角度差值时,只需执行线型移动操作,并在确定移动至预设停止范围内且满足第二起始移动参数与停止参数相同后,执行原地旋转操作,以保证到达目标角度。即当前仅包括线型移动阶段和结束旋转阶段,且线型移动阶段和结束旋转阶段与差值大于第二角度差值时相同。

第三类:当前位置与目标位置不相同且当前角度与目标角度相同。此类结果说明移动对象无需改变当前角度,仅通过改变当前位置到达目标位置即可。此时,移动阶段可以仅包括线型移动阶段。

为了进一步保证移动准确性,可以在线型移动阶段结束后,再次进入结束旋转阶段。可选的,线型移动阶段同样可以包括:至少一个移动子阶段和停止阶段,移动子阶段可以包括:非角度规划的移动子阶段和角度规划的移动子阶段。

通过将移动阶段根据实际情况分为多个不同的阶段,可以更好的实现移动过程中的速度平滑,防止速度阶跃跳变。

实施例二

图3为本发明实施例二提供的一种智能移动的方法的流程图。本实施例是在上述实施例的基础上进行具体化。具体的,本实施例中移动阶段包括原地旋转阶段。参考图3,本实施例提供的智能移动的方法具体包括:

s201、根据移动对象的当前位姿和目标位姿确定移动对象的移动阶段包括原地旋转阶段。

具体的,根据当起位姿和目标位姿确定当前角度与目标角度不同,因此,需要执行原地旋转操作,即移动阶段包括原地旋转阶段。

s202、确定移动对象的当前旋转参数。

其中,当前旋转参数包括:当前角度θinit、当前角速度和当前角加速度当前角度为当前位姿中的角度,当前角速度和当前角加速度为移动对象当前时刻测得的角速度和角加速度。

s203、根据目标位姿确定移动对象的目标旋转参数。

其中,目标旋转参数包括:目标角度θ0、第一目标角速度和第一目标角加速度目标角度为目标位姿中的目标角度,第一目标角速度和第一目标角加速度为旋转至目标角度时期望移动对象达到的角速度和角加速度。一般而言,第一目标角速度和第一目标角加速度设为0。

s204、根据当前旋转参数和目标旋转参数进行轨迹规划。

为了保证移动对象准确的旋转至目标角度,先对原地旋转阶段进行轨迹规划,以确定移动对象理想运行状态下的移动轨迹。轨迹规划时,可以采用现有的多种运动规划方法。在本实施例中,示例性的选择了五次多项式算法进行轨迹规划。下面对基于五次多项式算法构造轨迹规划公式进行详细描述:

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

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

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

从上述公式可知,如果想要确定移动对象的轨迹规划结果,需要明确规划系数的具体值。其中,规划系数的具体确定过程为:

设定初始参数,初始参数包括当前旋转参数、目标旋转参数以及运动周期t1。此时,t1为原地旋转运动周期。进一步,根据初始参数可以得到:s0=0,s1=θinit-θ0,此时,规划系数计算公式如下:

a0=s0(2-1)

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

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

其中,st1表示为t1时刻移动对象期望旋转的角度。

对式(3)进行微分计算,可得:

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

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

具体的,根据(3)、式(4)以及式(5)可以得到移动对象任意t1时刻期望旋转的角度、角速度以及角加速度,并根据角度、角速度以及角加速度确定移动对象t1时刻期望到达的理想角度、理想角速度以及理想角加速度。

其中,确定理想角度θt1的公式为:

θt1=θinit+st1(6)

根据式(6)可以实现在轨迹规划过程中对角度参数的插补,以确定移动对象在原地旋转阶段各采样时刻对应的理想角度。

确定理想角速度的公式为:

确定理想角加速度的公式为:

具体的,式(6)、式(7)以及式(8)为最终得到的轨迹规划公式。需要说明的是,在实际应用过程中可以根据实际情况在式(6)、式(7)以及式(8)中选择性的构造至少一个轨迹规划公式。

s205、根据轨迹规划结果控制移动对象进行移动,并在移动过程中,更新移动对象的当前位姿。

具体的,根据轨迹规划结果确定移动对象移动过程中全部采样时刻的移动控制参数为qrq=(vrq,wrq),vrq和vrq分别为控制指令参数中线速度控制参数和角速度控制参数。进一步的,根据移动控制参数控制移动对象进行初始移动。

进一步的,在移动过程中,根据采样间隔获取当前时刻(当前采样时刻)移动对象的当前位姿,记为pc(t)=(xc(t),yc(t),θc(t)),xc(t)和yc(t)表示当前时刻移动对象实际的位置,θc(t)表示当前时刻移动对象实际的角度,t为当前时刻,即采样时刻。

s206、根据轨迹规划结果确定与当前时刻对应的子目标位姿。

其中,子目标位姿为根据轨迹结果确定的当前采样时刻下移动对象期望到达的位姿。子目标位姿可以表示为pr(t)=(xr(t),yr(t),θr(t))t,xr(t)和yr(t)表示当前时刻移动对象期望到达的子目标位置,θr(t)表示当前时刻移动对象期望到达的子目标角度,t为当前时刻。

由于移动对象执行原地旋转操作,因此,xr(t)和xc(t),yr(t)和yc(t)相同,θr(t)可以根据式(6)确定。

s207、根据当前位姿和子目标位姿确定当前时刻的运行差值。

确定运行差值的公式为:

其中,表示为误差参数。根据pe(t)可以确定出t时刻移动对象期望运行到的子目标位姿和实际运行到的当前位姿的差异程度。由于原地旋转阶段仅是角度发生改变,位置并未改变,因此,运行差值可以仅体现为角度差值,即式(9)可以变换为:

θe(t)=θr(t)-θc(t)(10)

s208、根据运行差值修正移动对象的移动控制参数。

具体的,移动对象通过控制器控制自身移动。其中,控制器为设置在移动对象内部,在移动过程中根据移动控制参数控制移动装置的电机进行运转的装置,其可以为软件和/或硬件。进一步的,根据运行差值确定修正后的移动控制参数,以保证通过修正后的移动控制参数控制移动对象移动时,有效减小运行差值,保证移动准确性。

进一步的,原地旋转阶段和线型移动阶段可以采用不同的控制器。本实施例中,原地旋转阶段采用的控制器为比例-积分-微分(proportionintegrationdifferentiation,pid)控制器,确定pid控制器的移动控制参数的公式为:

其中,qq(t)为修正后的移动控制参数,为根据θe(t)确定的旋转速度差值。kp为控制器的比例参数,ki为控制器的积分参数,kd为控制器的谐振参数。一般而言,每个控制器在执行一个完整的移动过程时对应的控制参数(比例参数、积分参数和谐振参数)不可更改,其中,控制参数的具体数据可以根据实际情况进行设定。

由于移动对象仅执行原地旋转操作,因此,线速度参数vxz(t)为0,移动控制参数中仅包含角速度控制参数。

进一步的,根据移动控制参数控制移动对象移动时,需要将移动控制参数转换成对应电机的运转参数。假设,移动对象包括左轮和右轮,左轮由左轮驱动电机控制移动,右轮由右轮驱动电机控制移动。此时,需要将移动控制参数转换成左轮驱动电机和右轮驱动电机的运行参数,以使左轮驱动电机和右轮驱动电机分别执行不同的运行过程,实现移动对象的移动。其中,将移动控制参数转换成左轮驱动电机和右轮驱动电机的运行参数采用如下公式:

其中,vl(t)代表左轮驱动电机的运行参数,vr(t)代表右轮驱动电机的运行参数。进一步的,根据qc(t)控制移动对象原地旋转后,并将下一时刻作为当前采样时刻,返回执行s205,以继续进行轨迹跟踪,直到移动对象根据轨迹规划结果移动到目标角度。其中,在根据qc(t)控制移动对象原地旋转时,可以结合当前时刻的实际运行速度,对qc(t)进行调整,以实现原地旋转过程中的速度闭环,使得下一时刻的旋转结果更加准确。

本实施例提供的技术方案,当确定移动阶段包括原地旋转阶段时,通过当前旋转参数和目标旋转参数确定原地旋转轨迹,以实现角速度插补,得到速度平滑的原地旋转轨迹,避免了原地旋转过程中,由于速度跳变带来的震荡摆尾的现象。进一步的,根据原地旋转轨迹控制移动对象移动,并在移动过程中,通过获取当前时刻的当前位姿和根据原地旋转轨迹确定的当前时刻的子目标位姿确定移动对象原地旋转时实际旋转与期望旋转间的运行差值,并根据运行差值修正移动控制参数,实现了在速度闭环的基础上进行位姿闭环,保证了原地旋转过程的准确性。

实施例三

图4为本发明实施例三提供的一种智能移动的方法的流程图。本实施例是在上述实施例的基础上进行具体化。具体的,本实施例中,移动阶段包括:线型移动阶段,线型移动阶段包括至少一个移动子阶段和停止阶段。其中,移动子阶段是移动对象由当前位置向目标位置移动的阶段,停止阶段是移动对象距离目标位置足够近后停止移动的阶段。一般而言,移动对象进入线型移动阶段后,优先执行至少一个移动子阶段,而后执行停止阶段。参考图4,本实施例提供的智能移动的方法具体包括:

s301、根据移动对象的当前位姿和目标位姿确定移动对象的移动阶段包括线型移动阶段。

具体的,根据当起位姿和目标位姿确定当前位置与目标位置不同,因此,需要执行线型移动操作,即移动阶段包括线型移动阶段。

s302、根据设定运动周期确定相对于当前时刻的下一移动子阶段。

其中,运动周期的具体值可以根据实际情况进行设定。当前时刻为下一移动子阶段的起始时刻。每个移动子阶段均包括变速移动阶段和匀速移动阶段,移动对象先经历变速移动阶段后执行匀速移动阶段。这样做的好处是,当移动对象的速度变化幅度大时,可以通过设定多个移动子阶段,保证移动对象加速度变化率平稳,进而实现移动对象移动速度平滑。

s303、利用移动对象的加速度限制条件确定下一移动子阶段的待选的全部匀速移动参数。

示例性的,加速度限制条件包括:当前线速度和当前角速度、硬件参数以及与障碍物的距离等。根据加速度限制条件可以确定出下一移动子阶段中全部可行的匀速移动参数。匀速移动参数为移动对象匀速移动阶段的运动参数。

考虑到实际移动中,移动对象的线型移动是带有弧度的线型移动,此时可能会导致移动过程中当前角度与目标角度的差值过大的情况,因此,线型移动过程中,需要对差值过大的情况和差值很小的情况进行分别处理。具体的,该步骤具体包括:

s3031、确定当前位姿中的当前角度与目标位姿中的目标角度的差值是否小于第一角度差值。若小于第一角度差值,则执行s3032,若大于或等于第一角度差值,则执行s3033。

其中,第一角度差值可以根据实际情况进行设定。

s3032、利用移动对象的加速度限制条件确定下一移动子阶段的待选的全部匀速线型移动参数。

具体的,如果当前角度与目标角度的差值小于第一角度差值,则在下一移动子阶段过程中,无需在线型移动时对移动对象的角速度进行规划。此时,匀速移动参数为匀速线型移动参数,匀速线型移动参数具体包括:目标匀线速度、目标线加速度和目标线加速度变化率。其中,目标匀线速度根据加速度限值条件确定,目标加速度变化率为对目标加速度进行一阶计算后得到的,即将目标加速度的变化值与对应的变化时长作差后得到目标加速度变化率。一般而言,目标加速度和目标加速度变化率设为0,以保证移动对象在变速移动阶段完毕后执行匀速移动阶段。

s3033、利用移动对象的加速度限制条件确定下一移动子阶段的待选的全部匀速线型移动参数和全部旋转速度参数。

具体的,如果当前角度与目标角度的差值大于或等于第一角度差值,则在下一移动子阶段过程中,需要在线型移动时对移动对象的角速度进行规划。此时,匀速移动参数为匀速线型移动参数和旋转速度参数,匀速线型移动参数具体包括:目标匀线速度、目标线加速度和目标线加速度变化率。旋转速度参数包括:第二目标角速度、第二目标角加速度和目标角加速度变化率。目标匀线速度和第二目标角速度根据加速度限值条件确定。目标角加速度变化率为对第二目标角加速度进行一阶计算后得到的,即将第二目标角加速度的变化值与对应的变化时长作差后得到目标角加速度变化率。一般而言,第二目标交加速度和目标角加速度变化率设为0,以保证移动对象匀速移动阶段时角速度匀速变化。

其中,每个匀速线型移动参数和旋转速度参数可以组成一个匀速移动参数。

s304、根据移动对象在当前时刻的第一起始移动参数和全部匀速移动参数,确定下一移动子阶段的全部移动轨迹。

其中,起始移动参数与匀速移动参数对应,当匀速移动参数为匀速线型移动参数时,起始移动参数包括当前时刻的当前线速度、当前线加速度和当前线加速度变化率。当匀速移动参数包括匀速线型移动参数和旋转速度参数时,起始移动参数包括当前时刻的当前线速度、当前线加速度、当前线加速度变化率、当前角速度、当前角加速度和当前角速度变化率。

由于s303中确定了下一移动子阶段的全部可行的匀速移动参数,因此,对下一移动子阶段进行轨迹规划时,需要确定出全部可行的移动轨迹。其中,每个匀速移动参数对应一条移动轨迹。

进一步的,下一移动子阶段包括变速运动阶段和匀速运动阶段。因此,在确定移动轨迹时,需要分别确定出变速运行阶段移动轨迹和匀速运动阶段的速度变化规律,进而得到移动轨迹。具体的,该步骤具体包括如下:

s3041、根据移动对象在当前时刻的起始移动参数和全部匀速移动参数规划变速运动阶段的全部速度变化轨迹,以确定移动对象在变速运动阶段各采样时刻对应的理想速度参数。

下面以确定一条速度变化轨迹为例对变速运动阶段速度变化轨迹规划进行描述:

具体的,当前角度与目标角度的差值小于第一角度差值时,根据当前线速度当前线加速度当前线加速度变化率目标匀线速度目标线加速度和目标线加速度变化率首先确定变速运动阶段的线速度变化轨迹。线速度变化轨迹规划时,可以采用现有的多种运动规划方法。在本实施例中,示例性的选择了五次多项式算法进行线速度变化轨迹规划。下面对基于五次多项式算法对构造线速度变化轨迹进行详细描述,具体的,五次多项式算法的运功规划过程可参考式(1),其中,初始参数包括:以及运动周期t1。此时,t1为变速运动阶段的运动周期。进一步的,s0=0,根据公式(2-1)-(2-6)确定五次多项式的系数,并得到公式(3)-公式(5),进而得到公式(6)-公式(8)。其中,公式(6)表示移动对象t时刻期望达到的线速度,其可表示为公式(7)表示移动对象t时刻期望达到的线加速度、公式(8)表示移动对象t时刻期望达到的线加速度变化率。进一步的,根据公式(6)-公式(8)便可以得到速度变化轨迹规划结果,且通过公式(8)实现了变速运动阶段对线速度的插值。

具体的,当前角度与目标角度的差值大于或等于第一角度差值时,除了对线速度变化轨迹进行规划,还需要对角速度变化轨迹进行规划,其中,角速度变化轨迹规划方法与线速度轨迹规划方法类似。此时,初始参数包括:当前角速度当前角加速度当前角速度变化率第二目标角速度第二目标角加速度和目标角加速度变化率以及运动周期t1。相应的,s0=0,进一步的,根据公式(2-1)-(2-6)确定五次多项式的系数,并得到式(3)-式(5),进而得到公式(6)-公式(8)。其中,公式(6)表示移动对象t时刻期望达到的角速度,其可以表示为公式(7)表示移动对象t时刻期望达到的角加速度、公式(8)表示移动对象t时刻期望达到的角加速度变化率。进一步的,根据公式(6)-公式(8)便可以得到角速度变化轨迹规划结果,且通过公式(6)实现了变速运动阶段对角速度的插值。

s3042、根据变速运动阶段的全部速度变化轨迹和全部匀速移动参数,利用第一线型轨迹模型确定下一移动子阶段的全部移动轨迹。

其中,第一线型轨迹模型为预先设定的可以规划出移动子阶段移动轨迹的计算模型。

具体的,移动对象开始进入移动子阶段时,获取移动对象的角速度,并确认角速度是否小于设定阈值。该阈值通常取为0.001度/秒。无论变速运动阶段是否对角速度进行了规划,移动对象都是执行带有弧度的直线运动,因此,在线型移动中,移动对象可能一直带有角速度。此时,如果角速度过小,那么可以忽略角速度。如果角速度过大,那么必须要考虑角速度对移动子阶段移动轨迹的影响。一般而言,当角速度小于0.001度/秒时,均可以忽略角速度,当角速度大于或等于0.001度/秒时,均需要结合角速度规划移动轨迹。

当角速度小于0.001度/秒时,线型轨迹模型为:

其中,t为当前时刻,xt和yt为当前位置,θt为当前角度,v为当前速度δt为采样间隔,其根据实际情况进行设定,xt+1和yt+1为下一时刻的位置,θt+1为下一时刻的角度。

当角速度大于或等于0.001度/秒时,线型轨迹模型为:

t为当前时刻,xt和yt为当前位置,θt为当前角度,v为当前速度w为当前角速度t为采样间隔,其根据实际情况进行设定,xt+1和yt+1为下一时刻的位置,θt+1为下一时刻的角度。

由于预先对变速移动阶段的速度变化进行了规划,因此,根据式(13)或式(14)可以确定出变速运动阶段的轨迹,达到目标匀线速度或者目标匀线速度和目标匀角速度后,继续利用式(13)或式(14)确定匀速移动阶段的轨迹,进而得到下一移动子阶段一条完整的移动轨迹。

进一步的,采用上述方式,便可以得到下一移动子阶段的全部移动轨迹。

s305、按照设定轨迹选取规则,在全部移动轨迹中选择一条移动轨迹作为轨迹规划结果。

设定轨迹选取规则可以根据实际情况进行设定,如预先为每条移动轨迹评定加权分,并选择评分最优的一条移动轨迹作为轨迹规划结果。其中,加权项可以包括:离障碍物距离、离目标位姿的距离、离目标位姿的姿态解等至少一项,姿态解为姿态解算方法。评分最优规格可以根据实际情况进行设定。

s306、根据轨迹规划结果控制移动对象进行移动,并在移动过程中,更新移动对象的当前位姿。

其中,根据轨迹规划结果控制移动对象进行移动的过程与原地旋转过程中控制移动对象进行移动的过程相似,即确定qrq=(vrq,wrq),在此不作赘述。此时,移动对象进入下一子移动阶段,即将下一子移动阶段变为当前移动子阶段。

具体的,在移动过程中,根据采样间隔,间隔获取当前采样时刻移动对象的位姿作为当前位姿,即pc(t)=(xc(t),yc(t),θc(t))。

s307、根据轨迹规划结果确定与当前时刻对应的子目标位姿。

其中,子目标位姿为pr(t)=(xr(t),yr(t),θr(t))t,其可以根据轨迹规划结果确定。

s308、根据当前位姿和子目标位姿确定当前时刻的运行差值。

具体的,利用公式(9)得到当前时刻的运行差值pe(t)。

s309、根据运行差值修正移动对象的移动控制参数。

本示例中,线型移动阶段采用的控制器为满足李雅普诺夫渐近稳定性要求的控制器,确定满足李雅普诺夫渐近稳定性要求的控制器的移动控制参数的公式如下:

其中,kx,ky,kθ分别是对应的控制器的系统参数,其可以根据实际情况进行设定。为修正后的移动控制参数。进一步的,利用公式(12)将修正后的移动控制参数转换为左右驱动轮的运行参数,以驱动左右驱动轮进行移动。

s310、更新移动对象的当前位姿。

具体的,由于每个移动子阶段都有对应的设定运动周期,当设定运动周期结束后,确定当前移动子阶段结束并获取移动对象当前时刻的位姿为当前位姿。

s311、确定当前位姿中的当前位置是否在预设停止范围内。若确定当前位姿中的当前位置在预设停止范围内,则执行s312。若确定当前位姿中的当前位置未在预设停止范围内,则返回执行s302。

具体的,预设停止范围可以根据实际情况进行设定。如果当前位置在预设停止范围内,则说明说移动对象已经距离目标位置足够近,在理想的误差范围内,此时,执行s312,如果不是,则说明移动对象距离目标位置还有一定的距离,需要继续移动,此时,确认移动对象需要进入下一移动子阶段,并返回执行s302,以实现下一移动子阶段的移动。

s312、获取当前时刻的第二起始移动参数和设定的停止参数。

当移动对象进入预设停止范围内后,进入停止阶段。此时,获取预先设定的停止参数。一般而言,停止参数包括:停止线速度、停止线加速度、停止线加速度变化率、停止角速度、停止角加速度和停止角加速度变化率。由于停止阶段是为了控制移动对象停止线型移动,因此,设定移动对象最终停止时,停止参数均为0。同时,获取当前时刻的第二起始移动参数,其包括:当前时刻的当前线速度、当前线加速度、当前线加速度变化率、当前角速度、当前角加速度和当前角加速度变化率。

s313、根据第二起始移动参数和停止参数规划停止阶段的速度变化轨迹。

具体的,速度变化轨迹的确定方式与变速移动阶段的速度变化轨迹规划方法类似。其包括线速度变化轨迹和角速度变化轨迹。规划线速度变化轨迹时,初始参数包括:当前线速度当前线加速度当前线加速度变化率停止线速度为0、停止线加速度为0、停止线加速度变化率为0以及运动周期t1。通常情况,为零。相应的,s0=0,规划角速度变化轨迹时,初始参数包括:当前角速度当前角加速度当前角速度变化率停止角速度为0、停止角加速度为0、停止角加速度变化率为0以及运动周期t1。通常情况,为零。相应的,s0=0,进一步的,根据公式(2-1)-(2-6)确定五次多项式的系数,并得到式(3)-式(5),进而分别得到线速度变化轨迹规划结果和角速度变化轨迹规划结果公式(6)-公式(8),且通过公式(6)实现了停止阶段对线速度或角速度的插值。

s314、根据停止阶段的速度变化轨迹,利用第二线型轨迹模型确定停止阶段的停止移动轨迹。

本实施例中优选为第二线型轨迹模型与第一线型轨迹模型相同,即利用公式(13)或公式(14)确定停止阶段的停止移动轨迹。

s315、根据轨迹规划结果控制移动对象进行移动,并在移动过程中,更新移动对象的当前位姿。

其与s306相同,在此不作赘述。

s316、根据轨迹规划结果确定与当前时刻对应的子目标位姿。

其与s307相同,在此不作赘述。

s317、根据当前位姿和子目标位姿确定当前时刻的运行差值。

其与s308相同,在此不作赘述。

s318、根据运行差值修正移动对象的移动控制参数。

其与s309相同,在此不作赘述。

s319、更新第二起始移动参数。

具体的,当移动对象根据停止移动轨迹完成移动后,获取当前的第二起始移动参数。

s320、判断第二起始移动参数与停止参数是否相同。若确定第二起始移动参数与停止参数相同,则执行s321。若确定第二起始移动参数与停止参数不同,则返回执行s313。

具体的,判断第二起始移动参数与停止参数是否相同,是为了确定移动对象是否已经停止了移动。如果停止了移动,则说明移动对象执行完线型移动阶段。如果没有停止移动,则需要继续执行停止阶段,直到移动对象停止移动。其中,第二起始移动参数中的全部数据与停止参数中对应的全部数据均相同时,才确定第二起始移动参数与停止参数相同。

s321、停止移动。

此时,移动对象可能并未准确的在目标位置,而是在预设停止范围内的其他位置处。一般而言,预设停止范围内的任意位置均可以默认是满足误差范围的位置,即移动对象停在预设停止范围的任意位置处均默认为移动对象停在了目标位置处。

本实施例提供的技术方案,当移动阶段包括线型移动阶段时,将线型移动阶段分为至少一个移动子阶段和停止阶段,并将移动子阶段分为变速移动阶段和匀速移动阶段,在各阶段均预先确定了满足速度平滑的移动轨迹,避免了由于速度跳变带来的震荡摆尾的现象,且可以保证移动对象停止在目标位置处。同时,利用轨迹跟踪算法实时对实际移动轨迹进行跟踪,实现了在速度闭环的基础上进行位姿闭环,保证了线型移动过程的准确性。

实施例四

图5为本发明实施例四提供的一种智能移动的方法的流程图。本实施例在上述实施例的基础上进行示例描述。本实施例中移动对象为配置有左轮和右轮的移动小车。图6为本发明实施例四提供的智能移动的方法的原理框图。参考图6,本示例中通过速度平滑算法规划移动轨迹,并根据移动轨迹规划结果确定qrq,并利用公式(12)进行速度变换,得到左右驱动轮的运行参数,并通过控制器控制左、右轮进行移动以实现移动小车的移动,并在移动过程中获取pc(t),根据轨迹规划结果确定pr(t),进而计算误差pe(t),之后通过轨迹跟踪算法修正移动控制参数qq(t),进而继续控制小车进行移动,其中,在控制移动小车进行移动时,控制器控制左、右轮进行移动的过程默认为驱动器执行,此时,驱动器还可以通过移动小车当前时刻的实际速度对速度变换得到的运行参数进行修正,以实现速度闭环,保证速度控制的准确性。

具体的,参考图5,本实施例提供的智能移动的方法包括:

s401、获取移动小车的起始位姿和目标位姿。

具体的,移动小车处于原地停止阶段,即对应停止状态,可记为stop状态。此时,移动小车可以处于上电后准备移动的阶段,也可以处于上一移动过程结束后的停止阶段。

进一步的,移动小车获取输入的目标位姿,并在获取目标位姿后,利用里程计的方式确定当前的起始位姿。目标位姿包括目标位置和目标角度,起始位姿包括起始位置和起始角度。

s402、确定起始位置和目标位置是否一致。若一致,则确认移动阶段包括原地旋转阶段,并执行s414。若不一致,则执行s403。

具体的,当起始位置和目标位置一致时,原地旋转阶段包括结束原地旋转阶段。此时,移动小车仅需通过结束原地旋转操作原地旋转至目标角度即可。

s403、确定起始角度和目标角度间的差值是否大于或等于第二角度差值。若大于或等于第二角度差值,则确认移动阶段包括起始旋转阶段、线型移动阶段和结束旋转阶段,并执行s404。若小于第二角度差值,则确认移动阶段包括线型移动阶段和结束旋转阶段,并执行s409。

其中,起始旋转阶段包括起始原地旋转阶段和起始原地旋转停止阶段。优先执行起始原地旋转阶段,并在起始原地旋转阶段执行完毕后,确认是否需要执行起始原地旋转停止阶段。线型移动阶段包括至少一个移动子阶段和移动停止阶段,移动子阶段包括角度规划的移动子阶段和非角度规划的移动子阶段,其中,可以根据移动小车在当前移动子阶段结束后获取的实际数据确定下一移动子阶段执行角度规划的移动子阶段或非角度规划的移动子阶段。

s404、执行起始原地旋转操作。

此时,移动小车处于起始原地旋转状态,记为start_rotate状态。

具体的,该操作阶段中,通过五次多项式算法利用公式(1)–(8)确定原地旋转轨迹。此时,当前角度为移动小车的实际角度,当前角速度和当前角加速度为0。目标角度为目标位姿中的目标角度,第一目标角速度和第一目标角加速度为0。

进一步的,轨迹规划结束后,根据轨迹规划结果确定起始移动控制参数,并控制移动小车的左右轮进行原地旋转,并在原地旋转过程中,通过轨迹跟踪算法,结合公式(10)–(12)修正移动控制参数,以保证起始原地旋转操作的准确性。

s405、确定移动小车的当前角速度是否大于0。若是,则执行s406。否则,执行s408。

具体的,在起始原地旋转操作结束后,获取当前时刻的当前角速度并确认是否大于0,如果是,则说明移动小车还在继续原地旋转,否则,说明移动小车已经停止了旋转。

s406、执行起始原地旋转停止操作。

此时,移动小车处于起始原地旋转停止状态,记为stop_start_rotate状态。

具体的,该操作阶段中,通过五次多项式算法利用公式(1)–(8)确定原地旋转轨迹。此时,当前角度为移动小车当前时刻的角度,当前角速度为当前时刻的角速度、当前角加速度为当前时刻的角加速度。目标角度为目标位姿中的目标角度,第一目标角速度和第一目标角加速度为0。

进一步的,轨迹规划结束后,根据轨迹规划结果确定移动控制参数,并控制移动小车的左右轮进行原地旋转,并在原地旋转过程中,通过轨迹跟踪算法,结合公式(10)–(12)修正移动控制参数,以保证起始原地旋转停止操作的准确性。

s407、确定移动小车的当前角速度是否为0。若是,则执行s408。否则,继续执行s406。

在起始原地旋转停止操作结束后,如果移动小车当前时刻的当前角速度等于0,则说明移动小车停止了原地旋转操作。否则,说明移动小车还未停止原地旋转操作,需要继续停止原地旋转。

s408、获取移动小车的当前角度,并确认当前角度和目标角度间的差值是否大于或等于第一角度差值。若小于第一角度差值,则执行s409。若大于或等于第一角度差值,执行s410。

具体的,获取当前位姿中的当前角度。

s409、执行非角度规划的移动子操作。执行s411

此时,移动小车处于非角度规划的移动子状态,记为forward状态。该状态包括至少一个移动子阶段。

具体的,该移动子阶段中,首先利用加速度限制条件确定目标匀线速度,而后通过五次多项式算法利用公式(1)–(8)确定变速运动阶段的线速度变化轨迹。此时,目标加速度和目标加速度变化率为0。

进一步的,轨迹规划结束后,根据公式(13)–(14)确定移动子阶段的移动轨迹,并根据移动轨迹确定移动控制参数以控制移动小车的左右轮进行线型移动,并移动过程中,通过轨迹跟踪算法,结合公式(9)、(15)以及(12)得到修正后的移动控制参数,以保证移动子阶段的准确性。

s410、执行角度规划的移动子操作。执行s411

此时,移动小车处于非角度规划的移动子状态,记为forward-rotate状态。该阶段同样包括至少一个移动子阶段。

具体的,该移动子阶段中,首先利用加速度限制条件确定目标匀线速度和目标匀角速度,而后通过五次多项式算法利用公式(1)–(8)分别确定变速运动阶段的线速度变化轨迹和角速度变化轨迹。此时,目标加速度目标加速度变化率第二目标角加速度和目标角加速度变化率为0。

进一步的,轨迹规划结束后,根据公式(13)–(14)确定移动子阶段的移动轨迹,并根据移动轨迹确定移动控制参数以控制移动小车的左右轮进行线型移动,并移动过程中,通过轨迹跟踪算法,结合公式(9)、(15)以及(12)得到修正后的移动控制参数,以保证移动子阶段的准确性。

s411、更新移动小车当前位姿,并确认当前位姿中的当前位置是否在预设停止范围内。若是,则执行s412,否则,返回执行s408。

s412、执行线型移动阶段的停止操作。

此时,移动小车处于线型移动阶段的停止状态,记为stop-move状态。

具体的,该停止阶段中通过五次多项式算法利用公式(1)–(8)分别确定停止阶段的线速度变化轨迹和角速度变化轨迹。此时,停止参数均设为0。

进一步的,轨迹规划结束后,根据公式(13)–(14)确定停止阶段的停止移动轨迹,并根据停止移动轨迹确定移动控制参数以控制移动小车的左右轮进行线型移动,并移动过程中,通过轨迹跟踪算法,结合公式(9)、(15)以及(12)得到修正后的移动控制参数,以保证停止阶段的准确性。

s413、确认移动小车当前角速度和当前线速度是否均为零。若是,则执行s414。否则,返回执行s412。

可选的,线型移动阶段的停止操作结束后,确定当前起始移动参数与停止参数是否全部相同。

s414、执行结束原地旋转操作。

此时,移动小车处于结束原地旋转状态,记为stop_rotate状态。该状态是为了保证停止时,移动小车的当前角度可以尽可能的靠近目标角度,修正前述移动过程中带来的角度变化。

通过五次多项式算法利用公式(1)–(8)确定原地旋转轨迹。此时,当前角度为移动小车当前时刻的角度,当前角速度为当前时刻的角速度和当前角加速度为当前时刻的角加速度,一般而言,当前角速度和当前角加速度均为0。目标角度为目标位姿中的目标角度,第一目标角速度和第一目标角加速度为0。

进一步的,轨迹规划结束后,根据轨迹规划结果确定移动控制参数,并控制移动小车的左右轮进行原地旋转。在原地旋转过程中,通过轨迹跟踪算法,结合公式(10)–(12)修正移动控制参数,以保证结束原地旋转停止操作的准确性。

s415、更新移动小车的当前位姿,并确认当前位姿是否为目标位姿。若是,则执行s416。否则,返回执行s414。

具体的,在结束原地旋转操作结束后,确定当前位姿是否在基于目标位姿设定的位姿误差范围,若在该范围,则说明移动小车到达目标位姿。否则,说明移动小车并未达到目标位姿,继续执行s414。可选的,由于stop-move状态后,移动小车已经进入满足误差范围的位置中,因此,在stop_rotate状态后,仅需判断当前角度是否为目标角度,如果不是目标角度则再次进入stop_rotate状态,直到达到目标角度。

s416、确认移动小车停止移动。

此时,移动小车再次进入stop状态。

本实施例提供的技术方案,将移动小车根据不同的情况分为不同的移动状态,使得移动过程中线速度和角速度尽可能平滑,避免了由于速度跳变带来的震荡摆尾的现象,且可以保证移动小车停止在目标位置处。同时,利用轨迹跟踪算法实时对实际移动轨迹进行跟踪,实现了在速度闭环的基础上进行位姿闭环,保证了移动过程的准确性。

实施例五

图7为本发明实施例五提供的一种智能移动的装置的结构示意图。本实施例提供的智能移动的装置可以包括:阶段确定模块501、轨迹规划模块502和移动控制模块503。

其中,阶段确定模块501,用于根据移动对象的当前位姿和目标位姿确定移动对象的移动阶段,移动阶段包括:原地旋转阶段和/或线型移动阶段;轨迹规划模块502,用于基于速度平滑算法对移动阶段进行轨迹规划;移动控制模块503,用于根据轨迹规划结果控制移动对象进行移动,并在移动过程中,利用轨迹跟踪算法修正移动对象的移动控制参数。

本实施例提供的技术方案,通过移动对象的当前位姿和目标位姿确定移动阶段,并根据速度平滑算法对各移动阶段进行轨迹规划,以使移动对象根据轨迹规划结果进行移动,并在移动过程中通过轨迹跟踪算法实时修正移动控制参数的技术手段,实现了根据实际情况确定出适合移动对象的移动阶段,并规划出速度平滑的移动轨迹,避免了由于速度阶跃跳变带来的震荡摆尾的现象,同时,保证了移动对象实际移动轨迹的精确度。

在上述实施例的基础上,移动阶段为原地旋转阶段,轨迹规划模块302包括:第一参数确定单元,用于确定所述移动对象的当前旋转参数,当前旋转参数包括:当前角度、当前角速度和当前角加速度;第二参数确定单元,用于根据目标位姿确定移动对象的目标旋转参数,目标旋转参数包括:目标角度、第一目标角速度和第一目标角加速度;第一规划单元,用于根据当前旋转参数和目标旋转参数进行轨迹规划,以确定移动对象在原地旋转阶段各采样时刻对应的理想角度。

在上述实施例的基础上,移动阶段为线型移动阶段,线型移动阶段包括:至少一个移动子阶段,轨迹规划模块302包括:子阶段确定单元,用于根据设定运动周期确定相对于当前时刻的下一移动子阶段,当前时刻为下一移动子阶段的起始时刻;第三参数确定单元,用于利用移动对象的加速度限制条件确定下一移动子阶段的待选的全部匀速移动参数;第二规划单元,用于根据移动对象在当前时刻的第一起始移动参数和全部匀速移动参数,确定下一移动子阶段的全部移动轨迹;轨迹选择单元,用于按照设定轨迹选取规则,在全部移动轨迹中选择一条移动轨迹作为轨迹规划结果。相应的,智能移动的装置还包括:第一位姿更新模块,用于根据轨迹规划结果控制移动对象进行移动,并在移动过程中,利用轨迹跟踪算法修正移动对象的移动控制参数之后,更新移动对象的当前位姿;第一停止判断模块,用于若确定当前位姿中的当前位置未在预设停止范围内,则重新确定下一移动子阶段的轨迹规划结果并进行移动,直到所述当前位置在所述预设停止范围内。

在上述实施例的基础上,第三参数确定单元包括:差值确定子单元,用于确定当前位姿中的当前角度与目标位姿中的目标角度的差值是否小于第一角度差值;第一线型参数确定子单元,用于若小于第一角度差值,则利用移动对象的加速度限制条件确定下一移动子阶段的待选的全部匀速线型移动参数;第二线型参数确定子单元,用于若大于或等于第一角度差值,则利用移动对象的加速度限制条件确定下一移动子阶段的待选的全部匀速线型移动参数和全部旋转速度参数;匀速线型移动参数包括:目标匀线速度、目标线加速度和目标线加速度变化率,旋转速度参数包括:第二目标角速度、第二目标角加速度和目标角加速度变化率。

在上述实施例的基础上,移动子阶段包括变速运动阶段和匀速运动阶段,第二规划单元包括:速度规划子单元,用于根据移动对象在当前时刻的第一起始移动参数和全部匀速移动参数规划变速运动阶段的全部速度变化轨迹,以确定移动对象在变速运动阶段各采样时刻对应的理想速度参数;轨迹规划子单元,用于根据变速运动阶段的全部速度变化轨迹和全部匀速移动参数,利用第一线型轨迹模型确定下一移动子阶段的全部线型移动轨迹。

在上述实施例的基础上,线型移动阶段还包括:停止阶段;轨迹规划模块303还包括:第四参数确定单元,用于确定移动对象的当前位置在预设停止范围内后,获取当前时刻的第二起始移动参数和设定的停止参数,停止参数包括:停止线速度、停止线加速度、停止线加速度变化率、停止角速度、停止角加速度和停止角加速度变化率;速度规划单元,用于根据第二起始移动参数和停止参数规划停止阶段的速度变化轨迹;轨迹规划单元,用于根据速度变化轨迹,利用第二线型轨迹模型确定停止阶段的停止移动轨迹;相应的,智能移动的装置还包括:参数更新模块,用于根据轨迹规划结果控制移动对象进行移动,并在移动过程中,利用轨迹跟踪算法修正移动对象的移动控制参数之后,更新第二起始移动参数;参数判断模块,用于若确定第二起始移动参数与停止参数不同,则确定停止阶段的轨迹规划结果并进行移动,直到第二起始移动参数与停止参数相同。

在上述实施例的基础上,阶段确定模块501包括:位姿确定单元,用于确定移动对象当前位姿中的当前角度和当前位置以及目标位姿中的目标角度和目标位置;第一阶段确定单元,用于若当前位置与目标位置相同,则确定移动阶段包括:原地旋转阶段;第二阶段确定单元,用于若当前位置与目标位置不相同且当前角度与目标角度不相同,则确定移动阶段包括:原地旋转阶段和线型移动阶段;第三阶段确定单元,用于若当前位置与目标位置不相同且当前角度与目标角度相同,则确定移动阶段包括:线型移动阶段。

在上述实施例的基础上,所述第二阶段确定单元具体包括:第一顺序确定子单元,用于若当前位置与目标位置不相同且当前角度与目标角度的差值大于或等于第二角度差值,则确定移动阶段包括:起始旋转阶段、线型移动阶段和结束旋转阶段,且设定移动顺序为执行起始旋转阶段,并在起始旋转阶段结束后确认移动对象的当前角速度小于或等于角速度阈值时执行线型移动阶段,在线型移动阶段结束后确认移动对象在预设停止范围内且满足第二起始移动参数与停止参数相同时执行结束旋转阶段;第二顺序确定子单元,用于若当前位置与目标位置不相同且当前角度与目标角度的差值小于第二角度差值,则确定移动阶段包括线型移动阶段和结束旋转阶段,且设定移动顺序为执行线型移动阶段,在线型移动阶段结束后确认移动对象在预设停止范围内且满足第二起始移动参数与停止参数相同时执行结束旋转阶段。

在上述实施例的基础上,移动控制模块503包括:第二位姿更新模块,用于根据轨迹规划结果控制移动对象进行移动,并在移动过程中,更新移动对象的当前位姿;子位姿确定模块,用于根据轨迹规划结果确定与当前时刻对应的子目标位姿;运行差值确定模块,用于根据当前位姿和子目标位姿确定当前时刻的运行差值;控制参数修正模块,用于根据运行差值修正移动对象的移动控制参数。

本实施例提供的智能移动的装置可以用于执行上述任意实施例提供的智能移动的方法具备相应的功能和有益效果。

实施例六

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

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

存储器61作为一种计算机可读存储介质,用于存储一个或多个程序,如本发明实施例中的智能移动的方法对应的程序指令/模块(例如,智能移动的装置中的阶段确定模块501、轨迹规划模块502和移动控制模块503)。处理器60通过运行存储在存储器61中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的智能移动的方法。

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

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

实施例七

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

根据移动对象的当前位姿和目标位姿确定所述移动对象的移动阶段,移动阶段包括:原地旋转阶段和/或线型移动阶段;

基于速度平滑算法对移动阶段进行轨迹规划;

根据轨迹规划结果控制移动对象进行移动,并在移动过程中,利用轨迹跟踪算法修正移动对象的移动控制参数。

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

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

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

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

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