自平衡机器人及其速度控制装置和速度控制方法转让专利

申请号 : CN201610654100.5

文献号 : CN107685325B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张洋张虎

申请人 : 北京小米移动软件有限公司北京爱其科技有限公司

摘要 :

本公开关于自平衡机器人及其速度控制装置和速度控制方法,涉及机器人领域,能精确有效地实现限速。该方法包括:获取处于加速状态的自平衡机器人的倾斜角度值和电机脉宽调制值;在所述倾斜角度值的绝对值大于倾斜角度限制值时或所述电机脉宽调制值的绝对值大于电机脉宽调制限制值时,检测自平衡机器人的运行速度;以及利用预设运行速度上限值和所述运行速度调整自平衡机器人的重心角度,直至检测到的倾斜角度值的绝对值小于等于倾斜角度限制值且检测到的电机脉宽调制值的绝对值小于等于电机脉宽调制限制值。

权利要求 :

1.一种用于自平衡机器人的速度控制方法,其特征在于,该方法包括:获取处于加速状态的自平衡机器人的倾斜角度值和电机脉宽调制值;

当所述倾斜角度值的绝对值大于倾斜角度限制值或者所述电机脉宽调制值的绝对值大于电机脉宽调制限制值时,检测所述自平衡机器人的运行速度;

利用预设运行速度上限值和所述运行速度来调整所述自平衡机器人的重心角度,直至所述倾斜角度值的绝对值小于等于所述倾斜角度限制值并且所述电机脉宽调制值的绝对值小于等于所述电机脉宽调制限制值;

其中,该方法还包括:使用以下公式来利用所述预设运行速度上限值和所述运行速度调整所述自平衡机器人的重心角度:Aset=Aset+Kp*(Spd_set-Spd_mov)其中,Aset是所述自平衡机器人的重心角度,Kp是转换常数,Spd_set是所述预设运行速度上限值,以及Spd_mov是所述自平衡机器人的运行速度。

2.根据权利要求1所述的方法,其特征在于,该方法还包括:检测处于加速状态的所述自平衡机器人是否摔倒;以及

在所述自平衡机器人摔倒时,使所述自平衡机器人的电机停止运转。

3.根据权利要求1所述的方法,其特征在于,该方法还包括:当所述倾斜角度值的绝对值小于等于所述倾斜角度限制值或者所述电机脉宽调制值的绝对值小于等于所述电机脉宽调制限制值时:判断是否接收到停止加速运动指令;以及

在接收到所述停止加速运动指令时,通过逐渐减小所述自平衡机器人的重心角度来使所述自平衡机器人减速至平衡状态。

4.根据权利要求1至3中任一权利要求所述的方法,其特征在于,所述倾斜角度限制值和所述电机脉宽调制限制值通过以下步骤获得:获取处于平衡状态的所述自平衡机器人的电机脉宽调制值;以及依据所获取的平衡状态下的电机脉宽调制值来确定所述倾斜角度限制值和所述电机脉宽调制限制值。

5.根据权利要求4所述的方法,其特征在于,该方法还包括:在所述自平衡机器人已经开始工作且在平衡点附近来回摆动时,确定所述自平衡机器人处于平衡状态。

6.一种用于自平衡机器人的速度控制装置,其特征在于,该装置包括:第一获取模块,用于获取处于加速状态的自平衡机器人的倾斜角度值和电机脉宽调制值;

第一检测模块,用于在所述倾斜角度值的绝对值大于倾斜角度限制值时或者在所述电机脉宽调制值的绝对值大于电机脉宽调制限制值时,检测所述自平衡机器人的运行速度;

以及

速度控制模块,用于利用预设运行速度上限值和所述第一检测模块检测到的运行速度来调整所述自平衡机器人的重心角度,直至所述第一获取模块获取的倾斜角度值的绝对值小于等于所述倾斜角度限制值并且所述第一获取模块获取的电机脉宽调制值的绝对值小于等于所述电机脉宽调制限制值;

其中,所述速度控制模块使用以下公式来利用所述预设运行速度上限值和所述运行速度调整所述自平衡机器人的重心角度:Aset=Aset+Kp*(Spd_set-Spd_mov)其中,Aset是所述自平衡机器人的重心角度,Kp是转换常数,Spd_set是所述预设运行速度上限值,以及Spd_mov是所述自平衡机器人的运行速度。

7.根据权利要求6所述的装置,其特征在于,该装置还包括:第二检测模块,用于检测处于加速状态的所述自平衡机器人是否摔倒;以及停止运转模块,用于在所述自平衡机器人摔倒时,使所述自平衡机器人的电机停止运转。

8.根据权利要求6所述的装置,其特征在于,该装置还包括:第二判断模块,用于在所述倾斜角度值的绝对值小于等于所述倾斜角度限制值并且所述电机脉宽调制值的绝对值小于等于所述电机脉宽调制限制值时,判断是否接收到停止加速运动指令;以及减速模块,用于在所述第二判断模块判定接收到所述停止加速运动指令时,通过逐渐减小所述自平衡机器人的重心角度来使所述自平衡机器人减速至平衡状态。

9.根据权利要求6至8中任一权利要求所述的装置,其特征在于,该装置还包括:第二获取模块,用于获取处于平衡状态的所述自平衡机器人的电机脉宽调制值;以及第一确定模块,用于依据所获取的平衡状态下的电机脉宽调制值来确定所述倾斜角度限制值和所述电机脉宽调制限制值。

10.根据权利要求9所述的装置,其特征在于,该装置还包括:平衡状态确定模块,用于在所述自平衡机器人已经开始工作且在平衡点附近来回摆动时,确定所述自平衡机器人处于平衡状态。

11.一种用于自平衡机器人的速度控制装置,其特征在于,该装置包括:处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:

获取处于加速状态的自平衡机器人的倾斜角度值和电机脉宽调制值;

在所述倾斜角度值的绝对值大于倾斜角度限制值时或者在所述电机脉宽调制值的绝对值大于电机脉宽调制限制值时,检测所述自平衡机器人的运行速度;以及利用预设运行速度上限值和所述运行速度来调整所述自平衡机器人的重心角度,直至所述倾斜角度值的绝对值小于等于所述倾斜角度限制值并且所述电机脉宽调制值的绝对值小于等于所述电机脉宽调制限制值;

其中,所述处理器还被配置为使用以下公式来利用所述预设运行速度上限值和所述运行速度调整所述自平衡机器人的重心角度:Aset=Aset+Kp*(Spd_set-Spd_mov)其中,Aset是所述自平衡机器人的重心角度,Kp是转换常数,Spd_set是所述预设运行速度上限值,以及Spd_mov是所述自平衡机器人的运行速度。

12.一种自平衡机器人,其特征在于,该自平衡机器人包括权利要求6至11中任一权利要求所述的装置。

说明书 :

自平衡机器人及其速度控制装置和速度控制方法

技术领域

[0001] 本公开涉及机器人领域,尤其涉及自平衡机器人及其速度控制装置和速度控制方法。

背景技术

[0002] 目前,为了保证驾驶者的安全,载人自平衡电动车的速度控制方法为:首先设置自平衡电动车的速度最高值Vmax,其中Vmax小于车速极限值,也即自平衡电动车的车速只能达到Vmax值,但是始终达不到车速极限值;然后,当车速达到了Vmax值时,通过增加电机驱动力,使车体在行驶过程中有个加速的过程,由于惯性作用,驾驶者相对于车体会向后仰,从而达到减速限制的目的。
[0003] 通过突然加速达到限速的目的,就要求自平衡电动车的电机的额定功率要比实际工作功率大很多,以保证自平衡电动车有足够的功率来既可以保持车身不倾倒又可以做到突然加速。然而,由于自平衡机器人系统基本上都采用直流有刷小功率电机,因此上述速度控制方法并不适用于非载人的自平衡机器人系统。

发明内容

[0004] 为克服相关技术中存在的问题,本公开提供一种自平衡机器人及其速度控制装置和速度控制方法。
[0005] 根据本公开实施例的第一方面,提供一种用于自平衡机器人的速度控制方法,该方法包括:
[0006] 获取处于加速状态的自平衡机器人的倾斜角度值和电机脉宽调制值;
[0007] 当所述倾斜角度值的绝对值大于倾斜角度限制值时或者所述电机脉宽调制值的绝对值大于电机脉宽调制限制值时,检测所述自平衡机器人的运行速度;
[0008] 利用预设运行速度上限值和所述运行速度来调整所述自平衡机器人的重心角度,直至所述倾斜角度值的绝对值小于等于所述倾斜角度限制值并且所述电机脉宽调制值的绝对值小于等于所述电机脉宽调制限制值。
[0009] 可选地,根据本公开实施例的第一方面的方法还包括:检测处于加速状态的所述自平衡机器人是否摔倒;以及在所述自平衡机器人摔倒时,使所述自平衡机器人的电机停止运转。
[0010] 可选地,根据本公开实施例的第一方面的方法还包括:在所述倾斜角度值的绝对值小于等于所述倾斜角度限制值并且所述电机脉宽调制值的绝对值小于等于所述电机脉宽调制限制值时,判断是否接收到停止加速运动指令;以及在接收到所述停止加速运动指令时,通过逐渐减小所述自平衡机器人的重心角度来使所述自平衡机器人减速至平衡状态。
[0011] 可选地,所述倾斜角度限制值和所述电机脉宽调制限制值通过以下步骤获得:获取处于平衡状态的所述自平衡机器人的电机脉宽调制值;以及依据所获取的平衡状态下的电机脉宽调制值来确定所述倾斜角度限制值和所述电机脉宽调制限制值。
[0012] 可选地,根据本公开实施例的第一方面的方法还包括:在所述自平衡机器人已经开始工作且在平衡点附近来回摆动时,确定所述自平衡机器人处于平衡状态。
[0013] 可选地,根据本公开实施例的第一方面的方法还包括:使用以下公式来利用所述预设运行速度上限值和所述运行速度调整所述自平衡机器人的重心角度:
[0014] Aset=Aset+Kp*(Spd_set-Spd_mov)
[0015] 其中,Aset是所述自平衡机器人的重心角度,Kp是转换常数,Spd_set是所述预设运行速度上限值,以及Spd_mov是所述自平衡机器人的运行速度。
[0016] 根据本公开实施例的第二方面,提供一种用于自平衡机器人的速度控制装置,该装置包括:
[0017] 第一获取模块,用于获取处于加速状态的自平衡机器人的倾斜角度值和电机脉宽调制值;
[0018] 第一检测模块,用于在所述倾斜角度值的绝对值大于倾斜角度限制值时或者在所述电机脉宽调制值的绝对值大于电机脉宽调制限制值时,检测所述自平衡机器人的运行速度;以及
[0019] 速度控制模块,用于利用预设运行速度上限值和所述第一检测模块检测到的运行速度来调整所述自平衡机器人的重心角度,直至所述第一获取模块获取的倾斜角度值的绝对值小于等于所述倾斜角度限制值并且所述第一获取模块获取的电机脉宽调制值的绝对值小于等于所述电机脉宽调制限制值。
[0020] 可选地,根据本公开实施例的第二方面的装置还包括:第二检测模块,用于检测处于加速状态的所述自平衡机器人是否摔倒;以及停止运转模块,用于在所述自平衡机器人摔倒时,使所述自平衡机器人的电机停止运转。
[0021] 可选地,根据本公开实施例的第二方面的装置还包括:第二判断模块,用于在所述倾斜角度值的绝对值小于等于所述倾斜角度限制值并且所述电机脉宽调制值的绝对值小于等于所述电机脉宽调制限制值时,判断是否接收到停止加速运动指令;以及减速模块,用于在所述第二判断模块判定接收到所述停止加速运动指令时,通过逐渐减小所述自平衡机器人的重心角度来使所述自平衡机器人减速至平衡状态。
[0022] 可选地,根据本公开实施例的第二方面的装置还包括:第二获取模块,用于获取处于平衡状态的所述自平衡机器人的电机脉宽调制值;以及第一确定模块,用于依据所获取的平衡状态下的电机脉宽调制值来确定所述倾斜角度限制值和所述电机脉宽调制限制值。
[0023] 可选地,根据本公开实施例的第二方面的装置还包括:平衡状态确定模块,用于在所述自平衡机器人已经开始工作且在平衡点附近来回摆动时,确定所述自平衡机器人处于平衡状态。
[0024] 可选地,根据本公开实施例的第二方面,所述速度控制模块使用以下公式来利用所述预设运行速度上限值和所述运行速度调整所述自平衡机器人的重心角度:
[0025] Aset=Aset+Kp*(Spd_set-Spd_mov)
[0026] 其中,Aset是所述自平衡机器人的重心角度,Kp是转换常数,Spd_set是所述预设运行速度上限值,以及Spd_mov是所述自平衡机器人的运行速度。
[0027] 根据本公开实施例的第三方面,提供一种用于自平衡机器人的速度控制装置,该装置包括:
[0028] 处理器;
[0029] 用于存储处理器可执行指令的存储器;
[0030] 其中,所述处理器被配置为:
[0031] 获取处于加速状态的自平衡机器人的倾斜角度值和电机脉宽调制值;
[0032] 在所述倾斜角度值的绝对值大于倾斜角度限制值时或者在所述电机脉宽调制值的绝对值大于电机脉宽调制限制值时,检测所述自平衡机器人的运行速度;
[0033] 利用预设运行速度上限值和所述运行速度来调整所述自平衡机器人的重心角度,直至所述倾斜角度值的绝对值小于等于所述倾斜角度限制值并且所述电机脉宽调制值的绝对值小于等于所述电机脉宽调制限制值。
[0034] 根据本公开实施例的第四方面,提供一种自平衡机器人,该自平衡机器人包括上面描述的根据本公开实施例的装置。
[0035] 根据本公开实施例的第五方面,提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由自平衡机器人的处理器执行时,使得自平衡机器人能够执行一种用于自平衡机器人的速度控制方法,所述方法包括:
[0036] 获取处于加速状态的自平衡机器人的倾斜角度值和电机脉宽调制值;
[0037] 在所述倾斜角度值的绝对值大于倾斜角度限制值时或者在所述电机脉宽调制值的绝对值大于电机脉宽调制限制值时,检测所述自平衡机器人的运行速度;
[0038] 利用预设运行速度上限值和所述运行速度来调整所述自平衡机器人的重心角度,直至所述倾斜角度值的绝对值小于等于所述倾斜角度限制值并且所述电机脉宽调制值的绝对值小于等于所述电机脉宽调制限制值。
[0039] 本公开的实施例提供的技术方案是在自平衡机器人处于加速状态中时,通过利用预设运行速度上限值和检测到的运行速度来调整自平衡机器人的重心角度来实现限速的目的,而不是在处于加速状态的自平衡机器人需要限速时,通过电机驱动自平衡机器人突然加速来达到限速的目的,因此其既不要求电机的额定功率要比实际工作功率大很多又能够达到限速的目的。
[0040] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

[0041] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0042] 图1是根据一示例性实施例示出的一种用于自平衡机器人的速度控制方法的流程图。
[0043] 图2是根据一示例性实施例示出的重心角度的示意图。
[0044] 图3是根据一示例性实施例示出的一种用于自平衡机器人的速度控制方法的流程图。
[0045] 图4是根据一示例性实施例示出的一种用于自平衡机器人的速度控制方法的流程图。
[0046] 图5是根据一示例性实施例示出的一种用于自平衡机器人的速度控制装置的框图。
[0047] 图6是根据一示例性实施例示出的一种用于自平衡机器人的速度控制装置的框图。
[0048] 图7是根据一示例性实施例示出的一种用于自平衡机器人的速度控制装置的框图。
[0049] 图8是根据一示例性实施例示出的一种用于自平衡机器人的速度控制装置的框图。

具体实施方式

[0050] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,否则不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
[0051] 图1是根据一示例性实施例示出的一种用于自平衡机器人的速度控制方法的流程图。如图1所示,该方法可以包括步骤S101至步骤S103。
[0052] 在步骤S101中,获取处于加速状态的自平衡机器人的倾斜角度值Aslp和电机脉宽调制值Pmve。
[0053] 其中,自平衡机器人的电机的脉宽调制值Pmve不同,电机的工作功率会不同,相应的电机转速也会不同。通常,电机脉宽调制值Pmve越高,电机转速也越高。另外,由于施加给自平衡机器人的电机的脉宽调制信号是正负变化的,因此步骤S101中获取到的电机脉宽调制值Pmve也会有正值、负值。
[0054] 另外,当自平衡机器人处于加速运动的过程中时,自平衡机器人的倾斜角度Aslp也有可能会随时变化,类似于人在行走过程中会随时前倾后仰一样。极限情况下,自平衡机器人的倾斜角度Aslp会在正负90度的范围内变化。
[0055] 在步骤S102中,在所述倾斜角度值Aslp的绝对值大于倾斜角度限制值Amax时或者所述电机脉宽调制值Pmve的绝对值大于电机脉宽调制限制值Pmax时,检测所述自平衡机器人的运行速度Spd_mov。
[0056] 在步骤S103中,利用预设运行速度上限值Spd_set和所述运行速度Spd_mov来调整所述自平衡机器人的重心角度Aset,直至所述倾斜角度值Aslp的绝对值小于等于所述倾斜角度限制值Amax并且所述电机脉宽调制值Pmve的绝对值小于等于所述电机脉宽调制限制值Pmax。
[0057] 另外,在根据本公开的实施例中提及的所获取的倾斜角度值Aslp等于采用诸如传感器、陀螺仪等检测工具检测到的自平衡机器人的倾斜角度值减去自平衡机器人的重心角度值。因此,当在步骤S103中调整了重心角度值之后,所获取的倾斜角度值Aslp也会相应地被调整。
[0058] 本公开实施例中提及的重心角度指的是以自平衡机器人平衡状态下的重心点所处的垂直线为基准的角度值,如图2中用两个双箭头示出了两个重心角度。
[0059] 这样,通过步骤S101至步骤S103的技术方案,在自平衡机器人处于加速状态中时,通过利用预设运行速度上限值Spd_set和所述运行速度Spd_mov来调整自平衡机器人的重心角度Aset来实现限速的目的,而不是在处于加速状态的自平衡机器人需要限速时,通过电机驱动自平衡机器人突然加速来达到限速的目的,因此根据本公开实施例的速度控制方法既不要求电机的额定功率要比实际工作功率大很多又能够达到限速的目的。
[0060] 在根据本公开实施例的一种实施方式中,在步骤S103中,可以通过以下公式来调整自平衡机器人的重心角度Aset:
[0061] Aset=Aset+Kp*(Spd_set-Spd_mov)  (1)
[0062] 其中,Kp是转换常数。
[0063] 本领域技术人员应当理解的是,上述重心角度Aset的调整公式仅是示例。也即,可以采用各种各样的方式来调整重心角度Aset,例如采用如下公式进行调整:Aset=Aset+Kp1*(Spd_set2-Spd_mov2),其中Kp1是转换常数。
[0064] 由于自平衡机器人的重心角度Aset与电机脉宽调制值之间存在着一定的关系,因此调整了重心角度Aset也就相应地调整了电机脉宽调制值。例如,电机脉宽调制值与重心角度Aset之间的关系可以用下面的公式来表示:
[0065] 电机脉宽调制值=k1*angle+k2*anglespeed+k3*Spd_mov+k4*position  (2)[0066] 其中,k1、k2、k3和k4是常数,angle表示采用诸如传感器和陀螺仪之类的检测工具检测到的自平衡机器人的倾斜角度值减去采用公式(1)调整后的重心角度值Aset,anglespeed表示自平衡机器人的倾斜角度变化速度,Spd_mov表示自平衡机器人的运行速度,position表示自平衡机器人偏离平衡位置的距离。
[0067] 这样,当在步骤S103中对自平衡机器人进行限速操作时,通过调整重心角度值就能够使施加给自平衡机器人的电机的脉宽调制值相应的减小。电机脉宽调制值减小了,则电机的转速就会下降,从而能够达到限速的目的。
[0068] 可选地,根据本公开实施例的速度控制方法的又一方面,所述速度控制方法还可以包括以下步骤:检测处于加速状态的所述自平衡机器人是否摔倒;以及在所述自平衡机器人摔倒时,使所述自平衡机器人的电机停止运转。上述步骤可以在步骤S101至步骤S103中任一步骤之前或之后执行。这样,就能够在自平衡机器人摔倒之后及时地停止电机运转,而不必继续执行如图1所示的速度控制过程。
[0069] 可选地,根据本公开实施例的一个方面,如图3所示,所述速度控制方法还可以包括以下步骤:在所述倾斜角度值Aslp的绝对值小于等于所述倾斜角度限制值Amax并且所述电机脉宽调制值Pmve的绝对值小于等于所述电机脉宽调制限制值Pmax时,则在步骤S105中,判断是否接收到停止加速运动指令;以及在在步骤S105中判定接收到所述停止加速运动指令时,在步骤S106中,通过逐渐减小所述自平衡机器人的重心角度来使所述自平衡机器人减速至平衡状态。例如,假设自平衡机器人目前正在以5°的重心角度向前加速运动,则在步骤S106中,可以通过使重心角度依次减小至4°、3°、2°、1°等等来逐渐使自平衡机器人减速至平衡状态。
[0070] 另外,如图3所示,如果在步骤S105中判定没有接收到所述停止加速运动指令,则返回步骤S101。通过步骤S105和步骤S106,就能够在不需要执行图1所示的速度控制过程的情况下使自平衡机器人平稳地减速到平衡状态。
[0071] 本公开实施例中提及的平衡状态指的是自平衡机器人已经开始工作且在平衡点附近来回摆动时的状态。
[0072] 在根据本公开的一个实施例的一个方面中,所述倾斜角度限制值Amax和所述电机脉宽调制限制值Pmax可以通过以下步骤获得:获取处于平衡状态的所述自平衡机器人的电机脉宽调制值Pbal;以及依据所获取的平衡状态下的电机脉宽调制值Pbal来确定所述倾斜角度限制值Amax和所述电机脉宽调制限制值Pmax。
[0073] 例如,电机脉宽调制限制值Pmax可以是平衡状态下的电机脉宽调制值Pbal的倍数,例如4倍、5倍等,这可以根据实际情况设定。
[0074] 设定倾斜角度限制值Amax的目的是为了避免自平衡机器人在加速运行过程中因倾斜角度太大而摔倒,因此,倾斜角度限制值Amax的设定与自平衡机器人的重心、质量、平衡状态下的电机脉宽调制值Pbal等有关。例如,如果平衡状态下的电机脉宽调制值Pbal较大,则说明该自平衡机器人的质量很大或者重心很高,因此在该自平衡机器人加速运动时就不能使该自平衡机器人跑的太快,因此可以使倾斜角度限制值Amax较小,以便及时地对该自平衡机器人进行限速。举例而言,当自平衡机器人平衡状态下的电机脉宽调制值Pbal小于600时,可以将倾斜角度限制值Amax设置成10°;当自平衡机器人平衡状态下的电机脉宽调制值Pbal位于600至1200的范围内时,可以将倾斜角度限制值Amax设置成6°;当自平衡机器人平衡状态下的电机脉宽调制值Pbal大于1200时,可以将倾斜角度限制值Amax设置成3°。本领域技术人员应当理解的是,以上倾斜角度限制值Amax的设置仅是示例说明,其可以依据实际情况进行修改。
[0075] 另外,平衡状态下的电机脉宽调制值Pbal可以通过如下方式获得:在自平衡机器人处于平衡状态下时,采集多个电机脉宽调制值Pbal1、Pbal2、......、Pbaln,然后对这n个Pbal值分别取绝对值并然后取平均即可,也即:(|Pbal1|+|Pbal2|+...+|Pbaln|)/n。实际上,Pbal的获取方式多种多样,以上仅是举例,例如还可以通过均方值的方式来计算Pbal。
[0076] 以下结合图4来详细描述一下根据本公开实施例的一个方面的速度控制方法的详细流程。
[0077] 在自平衡机器人开机初始化之后,首先在步骤S401中,确定自平衡机器人是否已经开始工作并且处于平衡状态,也即如果自平衡机器人已经开始工作并且在平衡点附近来回摆动,则转至步骤S402,否则继续执行步骤S401。
[0078] 然后在步骤S402中,获取平衡状态下的自平衡机器人的电机脉宽调制值Pbal。上面已经详细描述了如何获取Pbal值,这里不再赘述。
[0079] 然后在步骤S403中,依据平衡状态下的电机脉宽调制值Pbal来确定电机脉宽调制限制值Pmax和倾斜角度限制值Amax。以上也已经详细描述了如何确定电机脉宽调制限制值Pmax和倾斜角度限制值Amax,此处不再赘述。
[0080] 然后在步骤S404中,判定是否接收到加速运动指令,如果没有则转至步骤S402,如果接收到则转至步骤S405。
[0081] 在步骤S405中,获取加速状态下的自平衡机器人的倾斜角度值Aslp和电机脉宽调制值Pmve。该步骤与结合图1描述的步骤S101相类似,此处不再赘述。
[0082] 然后在步骤S406中,判断所述倾斜角度值Aslp的绝对值是否小于等于倾斜角度限制值Amax而且所述电机脉宽调制值Pmve的绝对值是否小于等于电机脉宽调制限制值Pmax。如果是则转至步骤S407,否则转至步骤S409。
[0083] 在步骤S407中,判断是否接收到停止加速运动指令。如果接收到则转至步骤S408,如果没有接收到则转至步骤S405。
[0084] 在步骤S408中,通过逐渐减小自平衡机器人的重心角度来使自平衡机器人减速至平衡状态。这在结合图2描述的步骤S105中进行了详细描述,此处不再赘述。
[0085] 在步骤S409中,判断自平衡机器人是否摔倒。如果摔倒则转至步骤S410,如果没有摔倒则转至步骤S411。
[0086] 在步骤S410中,使自平衡机器人的电机停止运转。
[0087] 在步骤S411中,检测自平衡机器人的运行速度Spd_mov。
[0088] 然后在步骤S412中,利用预设运行速度上限值Spd_set和检测到的运行速度Spd_mov来调整自平衡机器人的重心角度Aset。这在结合图1描述的步骤S103中进行了详细描述,此处不再赘述。
[0089] 然后在步骤S413中,获取加速状态下的自平衡机器人的倾斜角度值Aslp和电机脉宽调制值Pmve。该步骤与结合图1描述的步骤S101相类似,此处不再赘述。
[0090] 然后在步骤S414中,判断检测到的倾斜角度值Aslp的绝对值是否小于等于倾斜角度限制值Amax而且检测到的电机脉宽调制值Pmve的绝对值是否小于等于电机脉宽调制限制值Pmax。如果是则转至步骤S415,否则转至步骤S411。
[0091] 在步骤S415中,停止调整自平衡机器人的重心角度并将步骤S412中得到的重心角度值设定为自平衡机器人的重心角度值。
[0092] 然后在步骤S416中,使自平衡机器人继续进行加速运动,并转至步骤S405。
[0093] 上述的步骤S411至步骤S414实际上就是通过反复调整自平衡机器人的重心角度来反复调整自平衡机器人的倾斜角度和电机脉宽调制值的过程,以实现限速的目的。而且,步骤S409实际上可以位于任何一个其他步骤之前或之后。
[0094] 根据本公开实施例的又一方面,还提供一种用于自平衡机器人的速度控制装置,如图5所示,该装置可以包括第一获取模块501、第一检测模块503和速度控制模块504。以下对这些模块进行详细描述。
[0095] 第一获取模块501用于获取处于加速状态的自平衡机器人的倾斜角度值Aslp和电机脉宽调制值Pmve。
[0096] 自平衡机器人的电机的脉宽调制值Pmve不同,电机的工作功率会不同,相应的电机转速也会不同。通常,电机脉宽调制值Pmve越高,电机转速也越高。另外,由于施加给自平衡机器人的电机的脉宽调制信号是正负变化的,因此第一获取模块501获取的电机脉宽调制值Pmve也会有正值、负值。
[0097] 当自平衡机器人处于加速运动的过程中时,自平衡机器人的倾斜角度Aslp也有可能会随时变化,类似于人在行走过程中会随时前倾后仰一样。极限情况下,自平衡机器人的倾斜角度Aslp会在正负90度的范围内变化。
[0098] 第一检测模块503用于在所述第一获取模块501获取的倾斜角度值Aslp的绝对值大于倾斜角度限制值Amax时或者在所述第一获取模块501获取的电机脉宽调制值Pmve的绝对值大于电机脉宽调制限制值Pmax时,检测所述自平衡机器人的运行速度Spd_mov。
[0099] 速度控制模块504用于利用预设运行速度上限值Spd_set和所述第一检测模块503检测到的运行速度Spd_mov来调整所述自平衡机器人的重心角度Aset,直至所述第一获取模块501获取的倾斜角度值Aslp的绝对值小于等于所述倾斜角度限制值Amax并且所述第一获取模块501获取的电机脉宽调制值Pmve的绝对值小于等于所述电机脉宽调制限制值Pmax。
[0100] 另外,在根据本公开的实施例中提及的第一获取模块501所获取的倾斜角度值Aslp等于采用诸如传感器、陀螺仪等检测工具检测到的自平衡机器人的倾斜角度值减去自平衡机器人的重心角度值。因此,当速度控制模块504调整了重心角度值之后,第一获取模块501获取的倾斜角度值Aslp也会相应地被调整。
[0101] 本公开实施例中提及的重心角度指的是以自平衡机器人平衡状态下的重心点所处的垂直线为基准的角度值,如图2中用两个双箭头示出了两个重心角度。
[0102] 通过采用根据本公开实施例的速度控制装置,在自平衡机器人处于加速状态中时,速度控制模块504通过利用预设运行速度上限值Spd_set和所述运行速度Spd_mov来调整自平衡机器人的重心角度Aset来实现限速的目的,而不是在处于加速状态的自平衡机器人需要限速时,通过电机驱动自平衡机器人突然加速来达到限速的目的,因此根据本公开实施例的速度控制装置既不要求电机的额定功率要比实际工作功率大很多又能够达到限速的目的。
[0103] 在根据本公开实施例的速度控制装置的一个实施方式中,速度控制模块504可以采用以下公式来调整自平衡机器人的重心角度Aset:
[0104] Aset=Aset+Kp*(Spd_set-Spd_mov)  (4)
[0105] 其中,Kp是转换常数。
[0106] 本领域技术人员应当理解的是,上述重心角度Aset的调整公式仅是示例。也即,可以采用各种各样的方式来调整重心角度Aset,例如采用如下公式进行调整:Aset=Aset+Kp1*(Spd_set2-Spd_mov2),其中Kp1是转换常数。
[0107] 由于自平衡机器人的重心角度Aset与电机脉宽调制值之间存在着一定的关系,因此调整了重心角度Aset也就相应地调整了电机脉宽调制值。例如,电机脉宽调制值与重心角度Aset之间的关系可以用下面的公式来表示:
[0108] 电机脉宽调制值=k1*angle+k2*anglespeed+k3*Spd_mov+k4*position  (4)[0109] 其中,k1、k2、k3和k4是常数,angle表示采用诸如传感器和陀螺仪之类的检测工具检测到的自平衡机器人的倾斜角度值减去采用公式(1)调整后的重心角度值Aset,anglespeed表示自平衡机器人的倾斜角度变化速度,Spd_mov表示自平衡机器人的运行速度,position表示自平衡机器人偏离平衡位置的距离。
[0110] 这样,当速度控制模块504对自平衡机器人进行限速操作时,通过调整重心角度值就能够使施加给自平衡机器人的电机的脉宽调制值相应的减小。电机脉宽调制值减小了,则电机的转速就会下降,从而能够达到限速的目的。
[0111] 可选地,根据本公开实施例的速度控制装置的又一方面,如图6所示,该速度控制装置还可以包括:第一判断模块502,用于判断第一获取模块501获取的倾斜角度值Aslp是否小于等于倾斜角度限制值Amax而且所述第一获取模块501获取的电机脉宽调制值Pmve是否小于等于电机脉宽调制限制值Pmax。
[0112] 可选地,根据本公开实施例的速度控制装置的又一方面,如图6所示,该速度控制装置还可以包括:第二检测模块505,用于检测处于加速状态的所述自平衡机器人是否摔倒;以及停止运转模块506,用于在所述自平衡机器人摔倒时,使所述自平衡机器人的电机停止运转。虽然在图6中显示,第二检测模块505是与第一判断模块502连接的,但是实际上,第二检测模块505可以与任何一个其他模块连接,也即任何一个其他模块的动作都可以用于触发第二检测模块505来检测自平衡机器人是否摔倒,以便速度控制模块504可以不必继续执行速度控制。
[0113] 可选地,根据本公开实施例的速度控制装置的又一方面,如图6所示,所述速度控制装置还可以包括:第二判断模块507,用于在所述第一判断模块502判定检测到的倾斜角度值Aslp的绝对值小于等于所述倾斜角度限制值Amax并且所述第一判断模块502判定检测到的电机脉宽调制值Pmve的绝对值小于等于所述电机脉宽调制限制值Pmax时,判断是否接收到停止加速运动指令;以及减速模块508,用于在所述第二判断模块507判定接收到所述停止加速运动指令时,通过逐渐减小所述自平衡机器人的重心角度来使所述自平衡机器人减速至平衡状态。例如,假设自平衡机器人目前正在以5度的重心角度向前加速运动,则减速模块508可以通过使重心角度依次减小至4度、3度、2度、1度等等来逐渐使自平衡机器人减速至平衡状态。
[0114] 可选地,根据本公开实施例的速度控制装置的又一方面,如图6所示,该速度控制装置还可以包括:第二获取模块509,用于获取处于平衡状态的所述自平衡机器人的电机脉宽调制值Pbal;以及第一确定模块510,用于依据第二获取模块509所获取的平衡状态下的电机脉宽调制值Pbal来确定所述倾斜角度限制值Amax和所述电机脉宽调制限制值Pmax。倾斜角度限制值Amax和电机脉宽调制限制值Pmax确定之后,第一判断模块502就能够执行前面描述的判断了。
[0115] 例如,第一确定模块510可以将电机脉宽调制限制值Pmax确定为等于平衡状态下的电机脉宽调制值Pbal的倍数,例如4倍、5倍等,这可以根据实际情况设定。
[0116] 设定倾斜角度限制值Amax的目的是为了避免自平衡机器人在加速运行过程中因倾斜角度太大而摔倒,因此,倾斜角度限制值Amax的设定与自平衡机器人的重心、质量、平衡状态下的电机脉宽调制值Pbal等有关。例如,如果平衡状态下的电机脉宽调制值Pbal较大,则说明该自平衡机器人的质量很大或者重心很高,因此在该自平衡机器人加速运动时就不能使该自平衡机器人跑的太快,因此第一确定模块510可以使倾斜角度限制值Amax较小,以便在加速运动过程中速度控制模块504能够及时地对该自平衡机器人进行限速。举例而言,当自平衡机器人平衡状态下的电机脉宽调制值Pbal小于600时,第一确定模块510可以将倾斜角度限制值Amax设置成10°;当自平衡机器人平衡状态下的电机脉宽调制值Pbal位于600至1200的范围内时,第一确定模块510可以将倾斜角度限制值Amax设置成6°;当自平衡机器人平衡状态下的电机脉宽调制值Pbal大于1200时,第一确定模块510可以将倾斜角度限制值Amax设置成3°。本领域技术人员应当理解的是,以上倾斜角度限制值Amax的设置仅是示例说明,其可以依据实际情况进行修改。
[0117] 另外,第二获取模块509可以通过如下方式获得平衡状态下的电机脉宽调制值Pbal:在自平衡机器人处于平衡状态下时,采集多个电机脉宽调制值Pbal1、Pbal2、......、Pbaln,然后对这n个Pbal值分别取绝对值并然后取平均,也即:(|Pbal1|+|Pbal2|+...+|Pbaln|)/n。实际上,Pbal的获取方式多种多样,以上仅是举例,例如第二获取模块509还可以通过均方值的方式来计算Pbal。
[0118] 可选地,根据本公开实施例的速度控制装置的又一方面,如图6所示,该速度控制装置还可以包括平衡状态确定模块511,用于在所述自平衡机器人已经开始工作且在平衡点附近来回摆动时,确定所述自平衡机器人处于平衡状态。
[0119] 另外,在根据本公开实施例的速度控制装置中,第一获取模块501、第一检测模块503和第二检测模块505可以分别作为单独的模块被实现,或者也可以整体作为一个模块来实现。第一判断模块502和第二判断模块507也可以分别作为单独的模块被实现,或者也可以整体作为一个判断模块来实现,或者第一判断模块502可以与第一检测模块503一起被实现为一个模块,第二判断模块507与减速模块508一起被实现为一个模块。
[0120] 另外,在自平衡机器人启动之后,上述根据本公开实施例的速度控制装置中的各个模块执行操作的具体方式已经结合图1、图2和图4在根据本公开实施例的速度控制方法中进行了详细描述,此处将不做详细阐述说明。
[0121] 图7是根据一示例性实施例示出的一种用于自平衡机器人的速度控制装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
[0122] 参照图7,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电力组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。
[0123] 处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的用于自平衡机器人的速度控制方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件
802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
[0124] 存储器804被配置为存储各种类型的数据以支持在装置800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
[0125] 电力组件806为装置800的各种组件提供电力。电力组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
[0126] 多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当装置800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
[0127] 音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
[0128] I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
[0129] 传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到装置800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
[0130] 通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。
在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
[0131] 在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的用于自平衡机器人的速度控制方法。
[0132] 在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述的用于自平衡机器人的速度控制方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
[0133] 图8是根据一示例性实施例示出的一种用于自平衡机器人的速度控制装置1900的框图。参照图8,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述用于自平衡机器人的速度控制方法。
[0134] 装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出(I/O)接口1958。装置1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
[0135] 根据本公开实施例的速度控制装置和速度控制方法能够适用于非载人的自平衡机器人,尤其是小功率的自平衡机器人,这种自平衡机器人的结构可以任意搭建。自平衡机器人的造型不同,其车身质量、车身质心高度等均会不相同,但是根据本公开实施例的速度控制装置和速度控制方法均能够精确、有效地实现限速目的。
[0136] 根据本公开实施例的又一方面,还提供一种自平衡机器人,该自平衡机器人包括上面描述的根据本公开实施例的速度控制装置。
[0137] 本领域技术人员在考虑说明书及实践本公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0138] 应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。