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

文档序号:16895250发布日期:2019-02-15 23:33阅读:173来源:国知局
运动控制方法、装置、机器人及存储介质与流程

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



背景技术:

随着技术的发展,机器人得到越来越广泛的应用,尤其是机器人的直线运动应用在各行各业,但机器人在实际行走过程中,左右轮由于电机的差异性及机器人重量倾向等问题,使机器人偏离直线轨道,越走越偏。

为了控制机器人进行直线运动,现有技术主要采用陀螺仪和里程计来确定待行走直线的初始位置信息和机器人行走过程中具体的当前位置信息,再由初始位置信息和当前位置信息中的角速度的差值和当前位置偏离待行走直线的垂直距离,来判断机器人的行走是否偏离了待行走直线,如果出现偏离,则通过调整机器人的左右轮的速度,使机器人回到待行走直线上。但是,陀螺仪存在漂移和刻度因子误差,当用陀螺仪前一时刻机器人的行驶角速度来推断机器人现在的行驶角速度时,当前机器人行驶方向中必将引入之前产生的误差,形成累计误差,角速度的误差随着时间的积累也会变得越来越大。

为了克服这种缺陷,也有一些现有技术利用编码器控制机器人进行直线运动,但当机器人的左右轮出现打滑或空转等情况时,编码器无法检测,导致机器人不能继续直线运动。



技术实现要素:

本发明实施例提供一种运动控制方法、装置、机器人及存储介质,以保证机器人出现打滑或空转等情况时,仍然可以进行直线运动。

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

确定目标设备运动时在当前单位时间内左轮和右轮的运动速度偏差;

获取所述目标设备上陀螺仪当前单位时间内的偏航角速度;

根据所述运动速度偏差和所述偏航角速度确定所述左轮在当前单位时间内的实际速度;

根据所述实际速度控制所述目标设备的当前运动状态。

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

第一确定模块,用于确定目标设备运动时在当前单位时间内左轮和右轮的运动速度偏差;

获取模块,用于获取所述目标设备上陀螺仪当前单位时间内的偏航角速度;

第二确定模块,用于根据所述运动速度偏差和所述偏航角速度确定所述左轮在当前单位时间内的实际速度;

控制模块,用于根据所述实际速度控制所述目标设备的当前运动状态。

第三方面,本发明实施例还提供一种机器人,包括:电机、陀螺仪、左轮、右轮、左轮编码器和右轮编码器,还包括:

一个或多个控制器;

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

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

第四方面,本发明实施例还提供一种存储介质,其上存储有计算机程序,其特征在于,该程序被控制器执行时实现如第一方面所述的运动控制方法。

本发明实施例提供一种运动控制方法、装置、机器人及存储介质,通过确定目标设备运动时在当前单位时间内左轮和右轮的运动速度偏差,获取所述目标设备上陀螺仪当前单位时间内的偏航角速度,根据所述运动速度偏差和所述偏航角速度确定所述左轮在当前单位时间内的实际速度,根据所述实际速度控制所述目标设备的当前运动状态,解决了现有技术中单纯的采用左右轮编码器或者陀螺仪导致的目标设备行进过程中,无法保持直线行进的问题,保证了目标设备在打滑状态下依然可以进行直线运动,同时减小了误差。

附图说明

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

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

图3为本发明实施例三提供的一种运动控制装置的结构图;

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

具体实施方式

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

实施例一

图1为本发明实施例一提供的运动控制方法的流程图,本实施例可适用于通过左轮和右轮进行运动的设备,该方法可以由运动控制装置来执行,该装置集成在机器人中,具体的,该方法包括如下步骤:

s110、确定目标设备运动时在当前单位时间内左轮和右轮的运动速度偏差。

具体的,目标设备可以是具有左轮和右轮,可以通过控制左轮或右轮的速度来控制其运动状态的设备,例如机器人,实施例中以目标设备为机器人为例。单位时间可以根据实际需要设置,例如可以设置为5ms。运动速度偏差即为左轮和右轮在当前单位时间内的速度的偏差。

其中,获取左轮和右轮的速度以及根据左轮和右轮的速度确定左轮和右轮的运动速度偏差的方式可以根据实际需要设置,例如,可以在机器人的左轮和右轮分别设置左轮编码器和右轮编码器,当机器人运动时,左轮编码器和右轮编码器产生脉冲信号,控制器根据单位实际时间内获取的左轮编码器发送的左脉冲信号和右轮编码器发送的右脉冲信号,即可确定左轮和右轮的速度,进而确定左轮和右轮的运动速度偏差。需要说明的是,在确定左轮和右轮的运动速度偏差之前,控制器需要先接收运动指令,然后控制机器人的电机进行运动,其中,运动指令可以通过手机或电脑等智能终端发送。当然,也可以分别在左轮和右轮设置可以测量位移的传感器,以测量单位时间内左轮和右轮分别运行的位移,控制器根据位移和时间即可确定左轮和右轮的速度,进而确定左轮和右轮的运动速度偏差。

s120、获取所述目标设备上陀螺仪当前单位时间内的偏航角速度。

陀螺仪是一种用于测量角速度的装置,根据测量的角速度可以确定机器人的运动状态。实施例中采用的是一种三轴陀螺仪,可以测量机器人在三维空间的完整运动,例如mpu6050型号的陀螺仪。偏航角速度是机器人向左或向右运动产生的角速度,可以由陀螺仪直接测量。需要说明的是,当机器人处于打滑状态时,陀螺仪仍然可以测量机器人的偏航角速度,即陀螺仪不受打滑的影响,其中,打滑可以理解为是空转,当左轮处于打滑状态时,左轮的速度保持不变。

s130、根据所述运动速度偏差和所述偏航角速度确定所述左轮在当前单位时间内的实际速度。

当机器人的轮子出现打滑状态时,编码器是无法检测出的,如果机器人处于正常运行,可以直接根据左轮编码器和右轮编码器检测出机器人是否出现偏移,但是当机器人出现打滑状态时,由于编码器无法检测,导致机器人在前进过程中容易出现偏移。可以理解的是,陀螺仪虽然可以测量角速度,但存在漂移,会增大角速度的测量误差。

为此,本实施例根据左轮和右轮的运动速度偏差以及偏航角速度来确定左轮的实际速度,以提高测量精度,同时避免了单独采用运动速度偏差或单独采用偏航角速度引起的路线偏移问题。需要说明的是,如果右轮打滑,则陀螺仪会检测到机器人右偏,降低左轮速度,如果左轮打滑,陀螺仪会检测到机器人左偏,增加左轮速度。

具体的,根据运动速度偏差和偏航角速度确定左轮的实际速度的方式可以根据实际需要设置,例如可以根据设定的规则对运动速度偏差和偏航角速度进行计算,然后将计算结果确定为左轮的实际速度,其中,设定的规则可以是确定的运算规则,即将运动速度偏差和偏航角速度导入这种确定的运算规则即可确定左轮的实际速度,也可以是自适应调整的运算规则,即需要根据机器人的运动状态进行自适应调整,例如可以为运动速度偏差和偏航角速度设置不同的权重,以根据权重确定左轮当前单位时间内的实际速度,例如,初始状态机器人正常运行,分配给偏航角速度的权重为零,行驶过程中,出现打滑时,分配给偏航角速度的权重增大,其中,分配给运动速度偏差权重与分配给偏航角速度的权重之和为1。当然,也可以确定右轮的实际速度,根据左轮或右轮的实际速度控制机器人的运动状态,以保证机器人进行直线运动。

s140、根据所述实际速度控制所述目标设备的当前运动状态。

当确定左轮的实际速度之后,控制器即可根据该实际速度控制左轮的运动,进而控制机器人的运动状态,使其保持直线运动,同样的,也可以在确定右轮的实际速度之后,根据油轮的实际速度控制右轮的运动,以保证机器人进行直线运动。

本发明实施例一提供一种运动控制方法,通过确定目标设备运动时在当前单位时间内左轮和右轮的运动速度偏差,获取所述目标设备上陀螺仪当前单位时间内的偏航角速度,根据所述运动速度偏差和所述偏航角速度确定所述左轮在当前单位时间内的实际速度,根据所述实际速度控制所述目标设备的当前运动状态,解决了现有技术中单纯的采用左右轮编码器或者陀螺仪导致的目标设备行进过程中,无法保持直线行进的问题,保证了目标设备在打滑状态下依然可以进行直线运动,同时减小了误差。

实施例二

图2为本发明实施例二提供的一种运动控制方法的流程图,在上述实施例的基础上进行优化,具体的,该方法包括如下步骤:

s210、确定目标设备运动时在当前单位时间内左轮和右轮的运动速度偏差。

为了进一步明确运动速度偏差的确定过程,将s210具体化为:

s2101、在目标设备运动时,采集当前单位时间内所述目标设备上左轮编码器的左脉冲信号及右轮编码器的右脉冲信号。

具体的,编码器是一种将位移转换为电信号的设备。实际应用中,左轮编码器设置于左轮上,右轮编码器设置于右轮上,当机器人运动时,左轮编码器和右轮编码器分别根据左轮和右轮的旋转产生一定数量的脉冲信号,并发送给控制器。为了减小速度误差,实施例中设定左轮编码和右轮编码器完全相同。

s2102、根据所述左脉冲信号及右脉冲信号,分别计算所述左轮和右轮在当前单位时间内的运动速度。

具体的,左轮旋转一周,左轮编码器产生一定数量的脉冲信号,同样的,右轮旋转一周,右轮编码器也产生相同数量的脉冲信号,左轮和右轮旋转一周产生的位移是固定的,即根据获取的脉冲信号的个数即可确定左轮和右轮单位时间内运行的距离,根据距离和时间即可确定左轮和右轮的运动速度。例如,左轮和右轮旋转一周产生m个脉冲信号,左轮或右轮旋转一周产生的位移为s,假设控制器接收到的左脉冲信号的个数为n,单位时间为t,则可以计算单位时间内左轮的运动速度为:右轮的运动速度的计算方式类似。

s2103、将所述左轮与右轮的速度差值确定为所述左轮和右轮的运动速度偏差。

计算出左轮的运动速度和右轮的运动速度之后,即可计算左轮和右轮的速度偏差,即运动速度偏差。

s220、获取所述目标设备上陀螺仪当前单位时间内的偏航角速度。

s230、根据所述运动速度偏差、所述偏航角速度和设定的速度补偿公式,确定速度补偿值。

具体的,速度补偿公式,表示为:

bias=k1*z3+(1-k1)*z4

其中,bias表示当前单位时间内的速度补偿值,k1为权重系数,z3为当前单位时间内所述左轮和右轮的运动速度偏差,z4为当前单位时间内所述陀螺仪的偏航角速度。实际应用中,0≤k1≤1,而且按照由大到小的顺序调整,即k1的初始值为1,随着机器人的运动,可能会出现打滑的状态,此时k1的值逐渐减小,即运动速度偏差的权重减小,偏航角速度的权重增大,这样设置可以使编码器和陀螺仪相互补充,取长补短,既可以检测出机器人的打滑,又可以减小偏航角速度的误差,提高偏航角速度的准确性。

需要说明的是,机器人在运行过程中,如果左轮比右轮的速度快,机器人偏右,运动速度偏差z3为负,此时,偏航角速度z4也为负,速度补偿值bias也为负,反之,如果右轮比左轮速度块,机器人偏左,运动速度偏差z3为正,此时,偏航角速度z4也为正,速度补偿值bias也为正。

s240、根据所述速度补偿值、上一单位时间内所述左轮的实际速度和pid控制公式,确定所述左轮在当前单位时间内的实际速度。

pid控制主要是对速度补偿值的偏差进行调节与控制,以减小误差,而且pid控制操作简单。

具体的,pid控制公式,表示为:

v1=v0+kp(bias-next_bias)+kibias+kd(bias-2next_bias+last_bias)

其中,v1表示当前单位时间内所述左轮的实际速度,v0表示上一单位时间内所述左轮的实际速度,next_bias表示上一单位时间内的速度补偿值,last_bias为上上一单位时间内的速度补偿值,kp为pid控制器的比例系数,ki为pid控制器的积分系数,kd为pid控制器的微分系数。

具体的,若机器人向右偏,表明左轮的速度快,计算出的当前单位时间内左轮的实际速度v1应该减少,右轮速度此时不变,若机器人向左偏,表明左轮的速度慢,计算出的当前单位时间内左轮的实际速度v1应该增加,从而保证机器人行走在一条直线上。可以理解的是,pid控制虽然简单,容易操作,但pid控制的比例系数、积分系数和微分系数的值并非是固定的,而是需要根据实际情况调整,即需要对pid参数进行整定。

pid参数的整定,通常先确定比例系数kp,将积分系数ki和微分系数kd先设为0,比例系数kp从0增加直至系统出现振荡,然后减小比例系数kp直至系统不振荡,记录下此时的比例值,然后设定比例系数kp为当前比例值的60%-70%。比例系数kp确定后,设定一个较大的积分时间常数ti的初值,然后逐渐减小积分时间常数ti的值,直至系统出现振荡,之后再反过来,逐渐加大积分时间常数ti的值,直至系统振荡消失,记录此时的积分时间常数ti,设定积分时间常数为当前值的150%~180%,然后根据比例系数kp、积分时间常数ti以及积分系数ki的关系,确定积分系数ki,其中,比例系数kp、积分时间常数ti以及积分系数ki的关系为:ki=kp/ti。微分系数kd的确定过程类似,实际应用中,通常设置微分系数kd=0。

进一步的,为了减小机器人运行过程中,偏航角速度以及运动速度偏差的累计偏差,提高pid控制的准确性,保证机器人进行直线运动,实施还设定,以单位时间间隔将所述运动速度偏差及偏航角速度置0,即每隔单位时间,对运动速度偏差和偏航角速度进行一次清零。

s250、根据所述实际速度控制所述目标设备的当前运动状态。

本发明实施例二提供一种运动控制方法,在上述实施例的基础上进行优化,根据运动速度偏差和偏航角速度确定速度补偿值,并根据当前单位时间内的速度补偿值、上一单位时间内的速度补偿值以及上上一单位时间内的速度补偿值确定左轮的实际速度,以根据该实际速度控制目标设备的运动状态,以保证目标设备在打滑状态下也可以保持直线运动。

实施例三

图3为本发明实施例三提供的一种运动控制装置的结构图,该装置可以执行上述实施例所述的运动控制方法,参考图3,该装置包括:

第一确定模块310,用于确定目标设备运动时在当前单位时间内左轮和右轮的运动速度偏差;

获取模块320,用于获取所述目标设备上陀螺仪当前单位时间内的偏航角速度;

第二确定模块330,用于根据所述运动速度偏差和所述偏航角速度确定所述左轮在当前单位时间内的实际速度;

控制模块340,用于根据所述实际速度控制所述目标设备的当前运动状态。

本发明实施例三提供一种运动控制装置,通过确定目标设备运动时在当前单位时间内左轮和右轮的运动速度偏差,获取所述目标设备上陀螺仪当前单位时间内的偏航角速度,根据所述运动速度偏差和所述偏航角速度确定所述左轮在当前单位时间内的实际速度,根据所述实际速度控制所述目标设备的当前运动状态,解决了现有技术中单纯的采用左右轮编码器或者陀螺仪导致的目标设备行进过程中,无法保持直线行进的问题,保证了目标设备在打滑状态下依然可以进行直线运动,同时减小了误差。

在上述实施例的基础上,第二确定模块330,包括:

第一确定单元,用于根据所述运动速度偏差、所述偏航角速度和设定的速度补偿公式,确定速度补偿值;

第二确定单元,用于根据所述速度补偿值、上一单位时间内所述左轮的实际速度和pid控制公式,确定当前单位时间内所述左轮的实际速度。

在上述实施例的基础上,所述速度补偿公式,表示为:

bias=k1*z3+(1-k1)*z4

其中,bias表示当前单位时间内的速度补偿值,k1为权重系数,z3为当前单位时间内所述左轮和右轮的运动速度偏差,z4为当前单位时间内所述陀螺仪的偏航角速度;

所述pid控制公式,表示为:

v1=v0+kp(bias-next_bias)+kibias+kd(bias-2next_bias+last_bias)

其中,v1表示当前单位时间内所述左轮的实际速度,v0表示上一单位时间内所述左轮的实际速度,next_bias表示上一单位时间内的速度补偿值,last_bias为上上一单位时间内的速度补偿值,kp为pid控制器的比例系数,ki为pid控制器的积分系数,kd为pid控制器的微分系数。

在上述实施例的基础上,该装置还包括:

置0模块,用于以单位时间间隔将所述运动速度偏差及偏航角速度置0。

在上述实施例的基础上,第一确定模块310,包括:

采集单元,用于在目标设备运动时,采集当前单位时间内所述目标设备上左轮编码器的左脉冲信号及右轮编码器的右脉冲信号;

计算单元,用于根据所述左脉冲信号及右脉冲信号,分别计算所述左轮和右轮在当前单位时间内的运动速度;

确定单元,用于将所述左轮与右轮的速度差值确定为所述左轮和右轮的运动速度偏差。

本发明实施例三提供的运动控制装置与上述实施例提供的运动控制方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例具备执行运动控制方法相同的有益效果。

实施例四

图4为本发明实施例四提供的一种机器人的结构图,具体的,参考图4,该机器人包括:电机410、陀螺仪420、左轮430、右轮440、左轮编码器470、右轮编码器480、控制器450和存储器460,机器人中控制器450的数量可以是一个或多个,图4以一个控制器450为例,机器人中的电机410、陀螺仪420、左轮430、右轮440、左轮编码器470、右轮编码器480、控制器450和存储器460可以通过总线或其他方式连接,图4以通过总线连接为例。

具体的,电机410用于根据控制器450的控制指令驱动机器人运动,其中,控制指令为控制器450根据接收到的行动指令生成的指令,陀螺仪420用于测量机器人的偏航角速度,左轮430和右轮440通过旋转促使机器人运动,左轮编码器470用于根据左轮430的旋转生成对应的左脉冲信号,并将左脉冲信号发送给控制器450,右轮编码器480用于根据右轮440的旋转生成对应的右脉冲信号,并将右脉冲信号发送给控制器450。

存储器460作为一种存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中运动控制方法对应的程序指令/模块。控制器450通过运行存储在存储器460中的软件程序、指令以及模块,从而执行机器人的各种功能应用以及数据处理,即实现上述实施例的运动控制方法,可选的,控制器450可以是单片机,例如stm32f103型号的单片机。

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

本发明实施例四提供的机器人与上述实施例提供的运动控制方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例具备执行运动控制方法相同的有益效果。

实施例五

本发明实施例五还提供一种存储介质,其上存储有计算机程序,该程序被控制器执行时可以实现如本发明任意实施例所述的运动控制方法。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的运动控制方法中的操作,还可以执行本发明任意实施例所提供的运动控制方法中的相关操作,且具备相应的功能和有益效果。

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

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

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