本申请涉及机器人领域,具体而言,涉及一种用于机器人的速度平滑方法及装置。
背景技术:
通常轮式机器人一般使用电机来驱动轮子运动,而为了使轮式机器人的运动平稳没有顿挫感并且能避障和准确到达目标,则必须要规划速度。
发明人发现,由于一般轮式机器人的电机驱动器都集成有速度平滑模块,平滑模块能解决一部分的轮式机器人运动需求,不过一般都存在调试繁琐,效果一般的问题,并且只以电机为被控对象,没有以机器人为整体作为速度规划的对象,所以一般仍需要在控制端再配置速度规划模块。这样就造成了控制的繁琐和结构复杂。
针对相关技术中机器人运动过程中平稳性较差的问题,目前尚未提出有效的解决方案。
技术实现要素:
本申请的主要目的在于提供一种用于机器人的速度平滑方法及装,以解决机器人运动过程中平稳性较差的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种用于机器人的速度平滑方法。
根据本申请的用于机器人的速度平滑方法包括:接收机器人局部路径规划器的角速度和线速度;根据机器人底盘运动模型将所述角速度和线速度转换为机器人左右轮的目标控制速度;以及对所述目标控制速度执行预设平滑处理得到实际下发速度后输入电机控制器。
进一步地,对所述目标控制速度执行预设平滑处理得到实际下发速度后输入电机控制器包括:判断所述目标控制速度是否大于最大预设限速;如果判断所述目标控制速度不大于最大预设限速,则判断上一次实际下发速度是否不小于零且目标控制速度大于实际下发速度;如果判断所述目标控制速度大于最大预设限速,则将最大速度配置为最大预设限速度。
进一步地,方法还包括:判断上一次实际下发速度是否大于零且目标控制速度大于实际下发速度;如果判断上一次实际下发速度大于零且目标控制速度大于实际下发速度,则判断当前为加速过程,同时配置加速时间;判断上一次实际下发速度是否小于零且目标控制速度小于实际下发速度;如果判断上一次实际下发速度小于零且目标控制速度小于实际下发速度,则判断当前为加速过程,同时配置加速时间。
进一步地,方法还包括:判断上一次实际下发速度大于零且目标控制速度小于实际下发速度;如果判断上一次实际下发速度大于零且目标控制速度小于实际下发速度,则判断当前为减速过程,同时配置减速时间;判断上一次实际下发速度小于零且目标控制速度大于实际下发速度;如果判断上一次实际下发速度小于零且目标控制速度大于实际下发速度,则判断当前为减速过程,同时配置减速时间。
进一步地,方法还包括:根据所述加速时间或所述减速时间配置速度步长,判断所述目标控制速度是否大于所述实际下发速度;如果判断所述目标控制速度大于所述实际下发速度,则实际下发速度加上速度步长得到当前实际下发速度;如果判断所述目标控制速度不大于所述实际下发速度,则实际下发速度减去速度步长得到当前实际下发速度;将所述当前实际下发速度输出值电机控制器。
进一步地,所述预设平滑处理包括:线性平滑、分段平滑以及曲线平滑中的任一一种。
根据本申请的另一方面,提供了一种用于机器人的速度平滑装置。
根据本申请的用于机器人的速度平滑装置包括:局部路径规划器加减速度模块,用于接收机器人局部路径规划器的角速度和线速度;差分速度平滑模块,用于根据机器人底盘运动模型将所述角速度和线速度转换为机器人左右轮的目标控制速度;以及所述差分速度平滑模块,还用于对所述目标控制速度执行预设平滑处理得到实际下发速度后输入电机控制器。
进一步地,所述局部路径规划器加减速度模块用于配置加速度参数或减速度参数,并根据电机的极限设置速度参数最大值。
进一步地,所述差分速度平滑模块中的预设平滑处理包括:线性平滑、分段平滑以及曲线平滑中的任一一种。
进一步地,所述差分速度平滑模块差分速度平滑模块采用开环方式用于根据从局部路径规划器接收的速度执行预设平滑处理。
进一步地,所述差分速度平滑模块采用闭环方式用于当电机异常或者速度过低过高时会调节平滑输出。
在本申请实施例中,采用接收机器人局部路径规划器的角速度和线速度的方式,通过根据机器人底盘运动模型将所述角速度和线速度转换为机器人左右轮的目标控制速度,达到了对所述目标控制速度执行预设平滑处理得到实际下发速度后输入电机控制器的目的,从而实现了对转化的左右轮速度进行了线性的平滑过程,并且可调,可结合机器人整体给出比较好的速度控制的技术效果,进而解决了机器人运动过程中平稳性较差的技术问题。把平滑模块完全集成在机器人控制端更利于和局部路径规划器配合使用,电机驱动器只需要提供最块的响应速度即可。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请第一实施例的用于机器人的速度平滑方法示意图;
图2是根据本申请第二实施例的用于机器人的速度平滑方法示意图;
图3是根据本申请第三实施例的用于机器人的速度平滑方法示意图;
图4是根据本申请第四实施例的用于机器人的速度平滑方法示意图;
图5是根据本申请第五实施例的用于机器人的速度平滑方法示意图;
图6是根据本申请一优选实施例的用于机器人的速度平滑装置示意图;
图7是根据本申请实施例中的速度平滑流程示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请中,术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”、“中”、“竖直”、“水平”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本申请及其实施例,并非用于限定所指示的装置、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。
并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本申请中的具体含义。
此外,术语“安装”、“设置”、“设有”、“连接”、“相连”、“套接”应做广义理解。例如,可以是固定连接,可拆卸连接,或整体式构造;可以是机械连接,或电连接;可以是直接相连,或者是通过中间媒介间接相连,又或者是两个装置、元件或组成部分之间内部的连通。对于本领域普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
如图1所示,该方法包括如下的步骤s102至步骤s106:
步骤s102,接收机器人局部路径规划器的角速度和线速度;
由于局部路径规划器规划的速度是机器人的速度,并且规划的速度存在较大的波动,单单使用电机驱动器的速度平滑可能会造成机器人行走时有顿挫感,另外由于电机驱动器只是针对电机并没有针对机器人,要达到好的效果则需要加入速度平滑模块。通过速度平滑模块接收机器人局部路径规划器的角速度和线速度。通过角速度用于调节机器人的转向,通过线速度用于调节机器人的前进或后退。
此外,直接连接局部路径规划器,和配合ros机器人操作系统达到参数可配置,可动态修改的目的。
步骤s104,根据机器人底盘运动模型将所述角速度和线速度转换为机器人左右轮的目标控制速度;
根据机器人底盘模型转化为机器人左右轮的速度。在局部规划器接收到角速度、线速度后,会根据机器人的底盘模型将相应的角速度和线速度转化为机器人左右轮的目标控制速度。
步骤s106,对所述目标控制速度执行预设平滑处理得到实际下发速度后输入电机控制器。
针对目标控制速度经过速度平滑得到更加线性的实际下发速度命令输出到电机控制器。
通过上述步骤可以解决局部路径规划器规划出的速度存在不理想,波动大导致机器人运行不平稳或者不正常的缺陷。进而解决了规划的角速度和线速度不能直接用于电机控制器,对转化的左右轮速度进行了线性的平滑过程,并且可调,可结合机器人整体给出比较好的速度控制效果。
从以上的描述中,可以看出,本申请实现了如下技术效果:
在本申请实施例中,采用接收机器人局部路径规划器的角速度和线速度的方式,通过根据机器人底盘运动模型将所述角速度和线速度转换为机器人左右轮的目标控制速度,达到了对所述目标控制速度执行预设平滑处理得到实际下发速度后输入电机控制器的目的,从而实现了对转化的左右轮速度进行了线性的平滑过程,并且可调,可结合机器人整体给出比较好的速度控制的技术效果,进而解决了机器人运动过程中平稳性较差的技术问题。把平滑模块完全集成在机器人控制端更利于和局部路径规划器配合使用,电机驱动器只需要提供最块的响应速度即可。
根据本申请实施例,作为本实施例中的优选,如图2所示,对所述目标控制速度执行预设平滑处理得到实际下发速度后输入电机控制器包括:
步骤s202,判断所述目标控制速度是否大于最大预设限速;
步骤s204,如果判断所述目标控制速度不大于最大预设限速,则判断上一次实际下发速度是否不小于零且目标控制速度大于实际下发速度;
步骤s206,如果判断所述目标控制速度大于最大预设限速,则将最大速度配置为最大预设限速度。
通过上述步骤,通过最大预设限速对目标控制速度进行相应的配置。
根据本申请实施例,作为本实施例中的优选,如图3所示,在上述步骤中的判断上一次实际下发速度是否不小于零且目标控制速度大于实际下发速度包括:
步骤s302,判断上一次实际下发速度是否大于零且目标控制速度大于实际下发速度;
步骤s304,如果判断上一次实际下发速度大于零且目标控制速度大于实际下发速度,则判断当前为加速过程,同时配置加速时间;
步骤s306,如果判断所述目标控制速度大于最大预设限速,则将最大速度配置为最大预设限速度;
步骤s308,如果判断上一次实际下发速度小于零且目标控制速度小于实际下发速度,则判断当前为加速过程,同时配置加速时间。
通过上述步骤,判断出机器人当前是处于加速还是减速的状态,并配置相应的加速或减速时间。
根据本申请实施例,作为本实施例中的优选,如图4所示,在上述步骤中还包括:
步骤s402,判断上一次实际下发速度大于零且目标控制速度小于实际下发速度;
步骤s404,如果判断上一次实际下发速度大于零且目标控制速度小于实际下发速度,则判断当前为减速过程,同时配置减速时间;
步骤s406,判断上一次实际下发速度小于零且目标控制速度大于实际下发速度;
步骤s408,如果判断上一次实际下发速度小于零且目标控制速度大于实际下发速度,则判断当前为减速过程,同时配置减速时间。
通过上述步骤,通过最大预设限速对目标控制速度进行相应的配置。
根据本申请实施例,作为本实施例中的优选,如图5所示,在上述步骤中还包括:
步骤s502,根据所述加速时间或所述减速时间配置速度步长,判断所述目标控制速度是否大于所述实际下发速度;
步骤s504,如果判断所述目标控制速度大于所述实际下发速度,则实际下发速度加上速度步长得到当前实际下发速度;
步骤s506,如果判断所述目标控制速度不大于所述实际下发速度,则实际下发速度减去速度步长得到当前实际下发速度;
步骤s508,将所述当前实际下发速度输出值电机控制器。
通过上述步骤,对目标控制速度线性平滑后得到实际下发速度。
作为本实施例中的优选,所述预设平滑处理包括:线性平滑、分段平滑以及曲线平滑中的任一一种。具体地,根据速度命令设置不同的加减速段或者加减速变化的曲线加速度减速度,可以做到更加平滑和稳定的加速减速过程。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本申请实施例,还提供了一种用于实施上述用于机器人的速度平滑方法的装置,如图6所示,该装置包括:局部路径规划器加减速度模块100,用于接收机器人局部路径规划器的角速度和线速度;差分速度平滑模块200,用于根据机器人底盘运动模型将所述角速度和线速度转换为机器人左右轮的目标控制速度;以及所述差分速度平滑模块200,还用于对所述目标控制速度执行预设平滑处理得到实际下发速度后输入电机控制器。其中,差分速度平滑模块200是结合底盘运动模型给出的,局部路径规划器加减速度模块100分别链接局部规划器和差分速度平滑模块200。差分速度平滑模块200直接与电机控制器相连。
在本申请实施例中的局部路径规划器加减速度模块100中由于局部路径规划器规划的速度是机器人的速度,并且规划的速度存在较大的波动,单单使用电机驱动器的速度平滑可能会造成机器人行走时有顿挫感,另外由于电机驱动器只是针对电机并没有针对机器人,要达到好的效果则需要加入速度平滑模块。通过速度平滑模块接收机器人局部路径规划器的角速度和线速度。通过角速度用于调节机器人的转向,通过线速度用于调节机器人的前进或后退。
此外,直接连接局部路径规划器,和配合ros机器人操作系统达到参数可配置,可动态修改的目的。
在本申请实施例的差分速度平滑模块200中根据机器人底盘模型转化为机器人左右轮的速度。在局部规划器接收到角速度、线速度后,会根据机器人的底盘模型将相应的角速度和线速度转化为机器人左右轮的目标控制速度。
在本申请实施例的差分速度平滑模块200中针对目标控制速度经过速度平滑得到更加线性的实际下发速度命令输出到电机控制器。
局部路径规划器模块规划的速度为角速度和线速度,局部路径规划器加减速度模块100具有调节转向的角速度控制和调节前进的线速度控制。通过差分速度平滑模块200接收局部路径规划器的控制速度,输出控制左右轮电机的控制速度。
通过上述模块,以解决局部路径规划器规划出的速度存在不理想,波动大导致机器人运行不平稳或者不正常的缺陷。进而解决了规划的角速度和线速度不能直接用于电机控制器,对转化的左右轮速度进行了线性的平滑过程,并且可调,可结合机器人整体给出比较好的速度控制效果。
作为本实施例中的优选,所述局部路径规划器加减速度模块100用于配置加速度参数或减速度参数,并根据电机的极限设置速度参数最大值。
作为本实施例中的优选,所述差分速度平滑模块200中的预设平滑处理包括:线性平滑、分段平滑以及曲线平滑中的任一一种。
作为本实施例中的优选,所述差分速度平滑模块200差分速度平滑模块采用开环方式用于根据从局部路径规划器接收的速度执行预设平滑处理。
作为本实施例中的优选,所述差分速度平滑模块200采用闭环方式用于当电机异常或者速度过低过高时会调节平滑输出。
请参考图7,是本申请一实施例中的实现流程图。其中,a,泛指命令速度;b,是实际下发速速;c,是步长,可以根据参数可调。
首先,局部路径规划器向局部路径规划器加减速度模块100发送角速度和线速度,并根据底盘驱动模型转化为左右轮速度a。
其次,判断所述目标控制速度是否大于最大预设限速;
判断所述目标控制速度是否大于最大预设限速;
如果判断所述目标控制速度不大于最大预设限速,则判断上一次实际下发速度是否不小于零且目标控制速度大于实际下发速度;
如果判断所述目标控制速度大于最大预设限速,则将最大速度配置为最大预设限速度。
然后,判断是加速还是减速。
判断上一次实际下发速度是否大于零且目标控制速度大于实际下发速度;
如果判断上一次实际下发速度大于零且目标控制速度大于实际下发速度,则判断当前为加速过程,同时配置加速时间;
判断上一次实际下发速度是否小于零且目标控制速度小于实际下发速度;
如果判断上一次实际下发速度小于零且目标控制速度小于实际下发速度,则判断当前为加速过程,同时配置加速时间。
或者,判断上一次实际下发速度大于零且目标控制速度小于实际下发速度;
如果判断上一次实际下发速度大于零且目标控制速度小于实际下发速度,则判断当前为减速过程,同时配置减速时间;
判断上一次实际下发速度小于零且目标控制速度大于实际下发速度;
如果判断上一次实际下发速度小于零且目标控制速度大于实际下发速度,则判断当前为减速过程,同时配置减速时间。
最后,判断所述目标控制速度a是否大于所述实际下发速度b;
根据所述加速时间或所述减速时间配置速度步长,判断所述目标控制速度是否大于所述实际下发速度;
如果判断所述目标控制速度大于所述实际下发速度,则实际下发速度加上速度步长得到当前实际下发速度;
如果判断所述目标控制速度不大于所述实际下发速度,则实际下发速度减去速度步长得到当前实际下发速度;
将所述当前实际下发速度输出值电机控制器。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。