一种控制舵机的方法与流程

文档序号:14133237阅读:265来源:国知局

本发明涉及一种机电设备,尤其涉及一种控制舵机的方法。



背景技术:

舵机是一种角度位置伺服的伺服电机,适用于那些需要角度不断变化并可以保持的控制系统。舵机在机器人中已经普遍应用。

舵机机器人的动作编程一般有两种方式:第一种方式为离线编程模式,编程者在外部控制设备,如控制电脑或手机中,对机器人中的各个舵机的转动角度、转动时间进行编排,最终机器人根据预先编排的动作顺序依次执行;第二种方式为示教模式,编程者手动操作机器人,旋转各个舵机,使得机器人位于某一动作的执行后状态,然后将各舵机的输出轴的角度位置信息传递给外部控制设备并保存,从而完成一个动作的编程。

现有的舵机机器人在示教模式下编程有一个缺点。在示教模式下,为了让编程者能手动操作舵机输出轴的转动,舵机输出轴的输出扭矩被关闭。由于缺乏输出扭矩,舵机机器人不能保持形状。这样,在示教模式对舵机机器人编程非常不方便,通常需要多个人同时协同操作,才能“勉强”完成多舵机机器人的一个动作编程。机器人的舵机越多,编程越不方便。



技术实现要素:

有鉴于现有技术的上述缺陷,本发明提供了一种新的控制舵机的方法,要解决的技术问题是:使得舵机机器人的动作编程更为方便。

为解决上述问题,本发明采取的技术方案是:一种控制舵机的方法,所述舵机具有示教模式,所述方法包括:在所述示教模式下,当舵机输出轴受到外力矩作用时,如果所述外力矩超过所述舵机所设定的输出扭矩,所述舵机输出轴保持所设定的扭矩输出并沿着外力矩的方向转动,然后当所述外力矩减小至不超过所述舵机所设定的输出扭矩时,所述舵机输出轴保持所设定的扭矩输出并保持在当前位置;同时,允许外部设备实时获得舵机输出轴的当前位置信息。

优选地,所述方法还包括,在所述示教模式下,在外部控制设备中设定扭矩输出限值,所述舵机依据在外部控制设备中所设定的扭矩输出限值保持扭矩输出。

优选地,所述方法还包括,当所述舵机被切换到示教模式时,所述舵机依据原先所设定的扭矩输出限值保持扭矩输出。

优选地,所述方法还包括:当所述舵机被切换到示教模式时,所述舵机依据示教模式默认扭矩输出限值保持扭矩输出,示教模式默认扭矩输出限值的信息储存在所述的控制单元的存储器中,或者,由所述外部控制设备提供。

优选地,所述方法还包括,在所述示教模式下,重复执行步骤a:将舵机输出轴的当前位置作为舵机输出轴的目标位置,以实现所述舵机输出轴保持扭矩输出并保持在目标位置。

优选地,步骤a的执行条件为,舵机输出轴的当前位置与舵机输出轴的目标位置的差值大于预设值;当舵机输出轴的当前位置与舵机输出轴的目标位置的差值小于预设值,不执行步骤a。

优选地,所述预设值为固定值。

优选地,所述方法还包括,在所述示教模式下,允许用户在外部控制设备中设定所述预设值的大小,所述舵机依据在外部控制设备中设定的所述预设值的大小来判定是否执行步骤a。

优选地,所述方法还包括:通过所述控制单元中的程序来重复执行步骤a。

优选地,所述舵机还具有离线编程模式。

优选地,所述方法还包括:当所述舵机被切换到离线编程模式时,所述舵机依据离线编程模式默认扭矩输出限值保持扭矩输出,所述离线编程模式默认扭矩输出限值为所述舵机的最大扭矩输出,或者,储存在所述的控制单元的存储器中,或者,在所述外部控制设备中设定。

优选地,所述方法还包括:当所述舵机从示教模式切换到离线编程模式时,离线编程模式下输出扭矩限值被自动设定成在示教模式中设定的扭矩输出限值。

优选地,所述舵机还具有在线编程模式,所述方法还包括,在所述在线编程模式下,重复执行步骤b:将外部控制设备中实时调整的舵机输出轴的目标位置信息传递给所述舵机,舵机依据在外部控制设备中实时调整的目标位置的信息控制舵机输出轴的转动位置。

优选地,步骤b的执行条件为,舵机输出轴的当前位置与舵机输出轴的目标位置的差值大于预设值;当舵机输出轴的当前位置与舵机输出轴的目标位置的差值小于预设值时,不执行步骤b。

优选地,所述方法还包括:在示教模式和在线编程模式之间来回相互切换进行动作编程。

优选地,所述方法还包括:当所述舵机被切换到在线编程模式时,所述舵机依据在线编程模式默认扭矩输出限值保持扭矩输出,在线编程模式默认扭矩输出限值为所述舵机的最大扭矩输出,或者,储存在所述的控制单元的存储器中,或者,在所述外部控制设备中设定。

优选地,所述方法还包括:当所述舵机从示教模式切换到在线编程模式时,在线编程模式下输出扭矩限值被自动设定成在示教模式中设定的扭矩输出限值。

优选地,所述方法还包括:在所述在线编程模式下,在外部控制设备中设定的扭矩输出限值,所述舵机依据在外部控制设备中设定的扭矩输出限值保持扭矩输出。

优选地,所述方法还包括:当所述舵机从示教模式切换到在线编程模式时,所述舵机依据原先在在线编程模式下设定的扭矩输出限值保持扭矩输出。

优选地,所述方法还包括,在所述示教模式下,重复执行步骤b:将外部控制设备中实时调整的舵机输出轴的目标位置信息传递给所述舵机,舵机依据在外部控制设备中实时调整的目标位置的信息控制舵机输出轴的转动位置。

优选地,步骤b的执行条件为,舵机输出轴的当前位置与舵机输出轴的目标位置的差值大于预设值;当舵机输出轴的当前位置与舵机输出轴的目标位置的差值小于预设值时,不执行步骤b。

优选地,所述舵机为数字舵机,或者,所述控制单元包括mcu。

优选地,所述方法还包括,当所述舵机断电并恢复供电时,所述舵机按照下述方式之一控制所述舵机输出轴:

1)恢复供电时将舵机输出轴的当前位置作为原点位置;

2)允许用户设定原点位置,所述舵机恢复供电时控制输出轴转到用户设定原点位置,所述用户设定原点位置的信息储存在所述的控制单元的存储器中,或者,由所述外部控制设备提供;

3)断电前重复执行步骤c:将舵机输出轴的实时调整的当前位置作为原点位置并进行储存;恢复供电时,所述舵机控制输出轴保持在当前位置。

优选地,步骤c的执行条件为,舵机输出轴的当前位置与设定原点位置的差值大于预设值;当舵机输出轴的当前位置与舵机输出轴的目标位置的差值小于预设值,不执行步骤c。

优选地,所述舵机包括壳体、电机、角度位置传感器、控制单元、减速齿轮组,所述电机、位置传感器、控制单元、减速齿轮组安装于所述壳体内部。

本发明还提供了一种控制机器人的方法,所述机器人包括多个舵机,所述方法包括:按照本发明所提供的方法,在示教模式下所述多个舵机进行动作编程。

本发明还提供了另一种控制机器人的方法,所述机器人至少包括第一舵机和的第二舵机,所述方法包括:按照本发明所提供的方法,在示教模式下对第一舵机进行动作编程,在离线编程模式下对第二舵机进行动作编程。

本发明还提供了又一种控制机器人的方法,所述机器人至少包括第一舵机和第二舵机,所述方法包括:按照本发明所提供的方法,在示教模式下对第一舵机进行编程,在在线编程模式下对第二舵机进行动作编程。

本发明的有益效果为:对舵机机器人在示教模式下进行动作编程时,由于舵机的输出扭矩被保持,编程者手动操作各个舵机的转动时,机器人能保持操作后形状,这样极大地方便了舵机机器人的动作编程。

以下对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。

具体实施方式

本文所使用的术语“舵机”应该被理解为至少包括如下结构的设备:电机、角度位置传感器、控制单元;在大部分情况下,舵机还包括减速齿轮组;在机器人应用中,舵机的上述结构通常被封装于壳体内部,露出输出轴。其中,电机、角度位置传感器、控制单元构成舵机的必要的伺服系统,以控制舵机输出轴的转动角度和转动速度。

本发明所提供的舵机主要用于家庭或玩具机器人,舵机中的电机通常为直流电机。各种类型的直流电机,如有刷电机或无刷电机、各种励磁方式的电机,皆适用本发明。

本文所使用的术语“角度位置传感器”应当被理解为任何适用于探测舵机输出轴转动位置并将位置信息转变成电信号的设备,也可以称为“编码器”。最常用的角度位置传感器是电位器和磁编码器,其它任何适用于舵机的角度位置传感器也适用本发明。

本文所使用的术语“控制单元”应当被理解为:任何与用于与电机、角度位置传感器以及外部控制设备进行电连接的电路部分及电路部分的必要的结构支撑。控制单元的两个主要作用是:供电以及信号传递。按照控制电路的不同,可以将舵机分为模拟舵机和数字舵机。模拟舵机的控制电路中无微控制器mcu,数字舵机的控制电路中含有微控制器mcu。数字舵机可以利用mcu很方便地实现本发明所提供的方法,模拟舵机的控制电路中加装合适的计算单元和存储单元也可以实现本发明所提供的方法。

本文所使用的术语“外部控制设备”应当被理解为任何适用于控制舵机输出轴的转动的电子设备,如机器人控制器、电脑、智能手机、手持示教器等。

本文所使用的术语“示教模式”应当被理解为包括如下步骤的动作编程方式:编程者手动旋转舵机输出轴,并将舵机输出轴的角度位置进行记录在外部控制设备的相应控制程序中。

本文所使用的术语“在线编程模式”应当被理解为包括如下步骤的动作编程方式:编程者在外部控制设备的相应控制程序中实施调整舵机输出轴的转动角度,在此过程中,舵机根据编程者的调整实时地舵机输出轴的转动位置。

本文所使用的术语“离线编程模式”应当被理解为包括如下步骤的动作编程方式:编程者在外部控制设备的相应控制程序中设定舵机输出轴的转动角度,在此过程中,舵机输出轴不会根据编程者的设定实时地舵机输出轴的转动位置。

本文所采用的描述“保持扭矩输出”及类似的描述应当被理解为:当舵机输出轴偏离目标位置后,控制单元会提供电流来控制舵机输出轴以设定的扭矩输出回到目标位置。

本文所采用的术语“目标位置”应当被理解为:在没有受到足够的外力矩的阻挡的情况下,舵机输出轴应当保持的位置;当舵机输出轴受外力矩的作用而偏离目标位置时,舵机输出轴具有回到目标位置的倾向。

作为一种优选的具体实施方式,本发明所提供的舵机包括壳体、电机、角度位置控制器、减速齿轮组、控制单元。其中,所述电机、角度位置控制器、减速齿轮组、控制单元被安装于所述壳体内,输出轴从壳体内伸出。该舵机为数字舵机,控制单元包含微处理器(mcu)。

该具体实施方式中的舵机应用于小型的玩具机器人,尺寸在40*20*40mm左右,最大扭矩13kg*cm,外壳为塑料。此种类型的舵机的各种配置,包括尺寸和参数的设定在本领域已经是熟知的技术,在此不再详述。除了该具体实施方式中阐述的舵机外,各种其它应用场合以及各种其它参数的舵机都是本领域所熟知的技术。很显然,本发明所提供的原理不仅仅适用于该具体实施方式中所阐述的舵机,也适用于其它各种应用场合以及各种参数的舵机。

该具体实施方式中的外部控制设备包括:机器人控制器或者安装有相应控制程序的电脑。机器人由舵机、连接件、机器人控制器和其它结构组成,其中,连接件的作用是将舵机及机器人控制器连接在一起,以及传动。机器人控制器的作用是接收外部输入信息,运算并输出。特别地,可以输出信号给舵机并控制舵机输出轴的转动,以及,接受舵机输出轴的位置信号并将其传递给其他外设。舵机之间以及舵机与机器人控制器之间通过连接线连接,以给舵机供电以及传递信号。这些设定也都是本领域所熟知的技术,在此不再详述。在该具体实施方式中,为了简化说明的目的,机器人只有一个舵机,控制一个自动起落杆的升降。

该具体实施方式的主要创新点是舵机控制方法,具体地说,在舵机的示教模式下,当舵机输出轴被外力转动时,并且外力矩大于输出扭矩限值时,舵机输出轴随外扭矩转动,然后当所述外力矩减小至不超过所述舵机所设定的输出扭矩限值时,所述舵机输出轴保持所设定的扭矩输出并保持在当前位置。

如前所述,现有的舵机也具有示教模式。在现有舵机的示教模式下,机器人控制器不给舵机中的电机提供电压输出,而从取消了舵机输出轴的扭矩,但角度位置控制器的电路依然在运作。编程者手动旋转舵机输出轴时,角度位置控制器将舵机输出轴的当前位置信息实时传递给机器人控制器,然后在电脑的相应控制程序中显示。编程者可以在电脑中保存想要的位置信息,从而完成一个动作编程。这样设定的缺点是:动作编程并不方便。当编程者完成第一个动作后,比如将自动起落杆升起,然后进行第二个动作编程时,由于没有扭矩的输出,如果不用手动保持自动起落杆的位置,自动起落杆便会落下,编程者无法将其直观地视为第二个动作的参考位置。特别是,当机器人的舵机数量较多时,示教模式下的动作编程尤为不方便。

该具体实施方式所提供的方法通过如下方式解决该问题:当舵机输出轴被外力转动到当前位置时,然后外力矩减少至不超过舵机扭矩输出限值时,舵机输出轴保持扭矩输出并保持在当前位置。这样,当编程者手动转动舵机输出轴时,机器人能实时保持手动操作后的状态。例如,在该具体实施方式中,针对较轻的自动起落杆,1kg*cm的扭矩输出足以保持自动起落杆的位置。当然,在其它一些应用场合,例如,包括10个舵机的机器人,扭矩输出需要更大才能保持形状,例如,3kg*cm以上。同时,为了使得编程者较为轻松地手动旋转舵机输出轴,舵机输出轴的扭矩输出需要小于13kg*cm的最大扭力,例如,设置在10kg*cm以下,成年人通常可以轻松地手动旋转舵机输出轴,如果针对儿童,舵机输出轴的扭矩输出需要设定得更小,例如,在5kg*cm以下。

舵机输出轴的扭矩输出的限值可以在外部控制设备,如电脑的相应控制程序中进行设定。所设定的保持扭矩输出的限值数据传递给舵机,舵机依据该数值控制舵机输出轴的输出扭矩的限值。这样外力矩不超过该扭矩输出限值时,舵机输出轴可以保持在当前位置。编程者在设定时,可以直接输入一个精确的输出扭矩的数值,也可以通过滑动条进行更方便的设定,或者通过不同的挡位来设定。在电脑的相应控制程序中将舵机输出轴的输出扭矩范围设定成1kg*cm~13kg*cm比较适宜,编程者根据的情况设定合适的扭矩输出。

扭矩输出的限值通过pwm的脉宽限值进行设定。即不允许pwm的脉宽超过特定值,从而实现扭矩限值的设定。

在该具体实施方式中,使舵机输出轴保持扭矩输出的方法是,在示教模式下,重复执行步骤a:当舵机输出轴的当前位置与舵机输出轴的目标位置的差值超过预设值时,将舵机输出轴的当前位置作为舵机输出轴的目标位置。也就是说,控制单元中的mcu保存目标位置的信息,当编程者手动转动舵机输出轴时,将角度位置传感器获得的舵机输出轴角度位置信息实时地传递给控制单元,并与mcu中保存的目标位置信息相比较,如果大于预设值,则将目标位置的信息更新为舵机输出轴的当前位置,通过这样一个巧妙的方法来使舵机输出轴保持扭矩输出。

作为一种优选的具体实施方式,步骤a的重复执行通过写入控制单元的程序来执行。作为该具体实施方式的变形,步骤a的重复执行也可以通过外部控制设备,如机器人控制器或者电脑中的程序来执行。

舵机输出轴的当前位置与目标位置比较的预设值可以设定为固定的值。例如,根据角度位置传感器的精度以及机器人动作编程的精度要求设定。舵机输出轴的当前位置与目标位置比较的预设值也可以由编程者来设定,在电脑的相应控制程序中设定预设值的大小,然后将该数值传递给舵机,舵机依据该数值来判定是否执行步骤a。当然,考虑到角度位置传感器的精度以及实际应用的需要,预设值的设定优选有一个最小值。

在外部控制设备中除了可以设定舵机输出轴的当前位置与目标位置比较的预设值,还可以在外部控制设备中设定示教模式默认扭矩输出的限值。示教模式默认扭矩输出的作用是,当舵机从其它模式或者断电状态切换到示教模式时,舵机可以依据示教模式默认扭矩输出的限值保持扭矩输出。在外部控制设备,如电脑的相应控制程序中设定的示教模式默认扭矩输出的限值可以储存在舵机的控制单元的存储器中,或者,也可以储存在外部设备中。其中,储存在舵机的控制单元的存储器中更为优选,这样,即使没有外部设备的连接,舵机也可以调用示教模式默认扭矩输出的数值数据。当然,示教模式默认扭矩输出的限值也可以作为一个固定值储存在舵机的控制单元的存储器中。

当编程者在示教模式下对机器人完成一系列动作编程后,便可以控制机器人和舵机按照预设的动作来执行。首先,外部控制设备需要向舵机发送一个从示教模式切换到执行模式的信号,舵机跳出步骤a的循环执行,开始接受外部控制设备的预设动作执行信息并执行预设的动作。动作执行完毕后,编程者还可以通过电脑中的相应控制程序重新切换到示教模式进行动作调整编程。

在该具体实施方式中,舵机的动作编程除了有示教模式外,还有离线编程模式。在离线编程模式下,编程者直接在电脑的相应控制程序中进行编程,然后再进入执行模式执行预设的动作。在编程过程中,舵机和外部控制设备之间没有动作信息传递。编程者可以在电脑的相应控制程序中进行示教模式和离线编程模式的切换,例如,先在示教模式中进行部分动作编程,然后再切换到离线编程模式中进行剩下的动作编程;或者,先在离线编程模式中进行部分动作编程,然后再切换到在线编程模式中进行剩下的动作编程。

当舵机从示教模式切换到离线编程模式时,舵机可以依据离线编程模式默认扭矩输出限值保持扭矩输出,离线编程模式默认扭矩输出限值为可以舵机的最大扭矩输出,也可以储存在所述的控制单元的存储器中,也可以在所述外部控制设备中设定;当舵机从示教模式切换到离线编程模式时,离线编程模式下输出扭矩限值还可以被自动设定成在示教模式中设定的扭矩输出限值。

舵机的动作编程还可以有在线编程模式。

在线编程模式与离线编程模式相比有所不同,在在线编程模式下进行动作编程,当编程者在电脑的相应控制程序中对舵机的转动角度进行实时调整时,舵机输出轴也会实时进行旋转。实现这一效果的方式是,在在线编程模式下,当舵机输出轴的当前位置与舵机输出轴的目标位置的差值大于预设值时,重复执行步骤b:将外部控制设备中实时调整的舵机输出轴的目标位置信息传递给所述舵机,舵机依据在外部控制设备中实施调整的目标位置的信息控制舵机输出轴的转动位置。

很显然,在线编程模式具有离线编程模式不具备的一些有益技术效果。在在线编程模式下进行动作编程能更直观地实时观察动作执行后的效果。如果将在线编程模式和示教模式两种方式进行结合使用,会使动作编程更加便利。例如,先在示教模式中进行部分动作编程,然后再切换到在线编程模式中进行精确性调整,然后重新切换到示教模式中继续动作编程。

当舵机在在线编程模式和示教模式之间来回切换时,对于舵机输出轴的扭矩输出,一个优选的方案是外部控制设备同时保存示教模式下的扭矩输出限值和在线模式下的扭矩输出限值,并在模式切换的时候自动更新该限值。

在对电脑的相应控制程序进行设计时,也可以把在线编程模式和示教模式进行整合,不再需要在线编程模式和示教模式的来回切换,也就是说,在示教模式下,当舵机输出轴的当前位置与舵机输出轴的目标位置的差值大于预设值时,重复执行步骤b:将外部控制设备中实时调整的舵机输出轴的目标位置信息传递给所述舵机,舵机依据在外部控制设备中实时调整的目标位置的信息控制舵机输出轴的转动位置。在这样的设定中,编程者在示教模式下既可以实现示教编程,又可以实现在线编程,使得动作编程更为便利。

当舵机从示教模式切换到在线编程模式时,舵机可以依据在线编程模式默认扭矩输出限值保持扭矩输出,在线编程模式默认扭矩输出限值可以为所述舵机的最大扭矩输出,也可以储存在所述的控制单元的存储器中,还可以在所述外部控制设备中设定;当舵机从示教模式切换到在线编程模式时,在线编程模式下输出扭矩限值还可以被自动设定成在示教模式中设定的扭矩输出限值。

在在线编程模式对舵机进行动作编程时,还可以在外部设备中设定舵机输出轴扭矩输出的限值。在这种情况下,在设备控制设备中重新设定扭矩输出的限值,传递给所述舵机,舵机控制舵机输出轴的输出扭矩不能超过该限值。

在以上所述的控制舵机的方法中,还可以任意设置和存储舵机输出轴的原点位置。

在现有的舵机中,舵机输出轴的原点位置不能被任意改变,当舵机从断电状态回复供电状态时,舵机输出轴会默认原来的原点位置。

该具体实施方式中的方法还包括:当所述舵机断电并恢复供电时,所述舵机控制输出轴可以转到任何位置,并将该位置设定为原点位置,后续的执行或者断电以后的执行都以新的原位为初始位置。这样,编程者可以根据需要自行设定原点位置,设定的方法至少有三种选择。

第一种选择是,在断电模式编程者手动旋转舵机输出轴至目标位置后启动,将舵机输出轴的当前位置信息传递给电脑的相应控制程序,编程者在电脑的相应控制程序中将当前位置作为设定原点位置并进行储存,设定原点位置的信息可以储存在舵机的控制单元的存储器中,也可以储存在电脑的相应控制程序中。

第二种选择是,在示教模式下,编程者手动旋转舵机输出轴,在旋转的过程中,舵机输出轴的当前位置与设定原点位置的差值大于预设值时,重复执行步骤c:将舵机输出轴的实时调整的当前位置作为设定原点位置并进行储存。也就是,实时更新设定原点位置的信息。设定原点位置的信息可以储存在舵机的控制单元的存储器中,也可以储存在电脑的相应控制程序中。

第三种选择是,编程者直接在电脑的相应控制程序中设定所期望的设定原点位置,设定原点位置的信息可以仅仅储存在电脑的相应控制程序中,也可以传递给舵机并储存在舵机的控制单元的存储器中。

以上详细阐述了本发明所提供的舵机和机器人的一种优选的具体实施方式。在该具体实施方式中,为了简化说明的目的,机器人只有一个舵机。在实际应用中,机器人往往包含多个舵机,例如,人形机器人通常具有17个自由度,也就是包括17个舵机。

当机器人包括多个舵机时,本发明所提供的控制舵机和机器人的方法的有益效果更为明显。在示教模式下,按照以上具体实施方式所阐述的方法对所有舵机进行动作编程,使得多舵机机器人的动作编程更为方便。在动作编程的过程中,可以对编程模式进行统一切换,例如,将所有的舵机的编程模式统一切换到离线编程模式或在线编程模式。在动作编程的过程中,还可以针对不同舵机进行不同的编程模式切换,这样,便出现同时针对不同舵机采用不同模式进行动作编程的情况,例如,在示教模式下对第一舵机进行动作编程,在离线编程模式下对第二舵机进行动作编程;或者,在示教模式下对第一舵机进行编程,在在线编程模式下对第二舵机进行动作编程。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

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