超步自调整方法、运动控制部件、机器人
技术领域
本发明涉及运动控制领域,具体涉及一种超步自调整方法、一种具有超步自调整功能的运动控制部件、一种机器人。
背景技术
在运动控制领域,电机等运动部件是实现运动控制的核心部件,比如机器人的运行就需要电机配合丝杠或减速器等作为运动执行部件来带动机器人运动。
以电机配合减速器为例,电机配合减速器是机械臂(或称为机械手、多轴机器人、多关节机器人等)的主要运动执行部件,多轴机器人主要是根据预定的路线从一个初始位置夹取目标物体到目标位置,适用于诸多工业领域的机械自动化作业。
现在市场上的多轴机器人主要包括四轴机器人(具有四个关节)和六轴机器人(具有六个关节),他们均包括有基座、手臂和末端的物体夹持部,手臂上关节的多少决定了机器人的“轴”的数量,每一个关节都是由一个电机的转动来驱动、以实现关节的运动。
目前,用户需要通过人机交互设备(如电脑、示教器等)实现对机器人的参数设定和控制,目前市场上的人机交互设备大都是针对机器人整体而设计,用户一般通过编辑每个关节的运动参数实现对机器人的运动控制,所述的运动参数实际上是控制运动部件(如电机)的运动参数,用户编辑机器人的运动参数后,发送给机器人本体的运动控制部件(或称为驱控器等),运动控制部件对接收到的运动参数进行解算后控制运动部件运动,如专利申请号为201210002141.8的中国专利申请文件即公开了一种机器人***。
结合参考附图1,附图1示出了一种运动控制***(例如机器人***)100,包括有机器人控制器101、CAN数据线102、运动控制部件103、电机107,运动控制部件103包括有控制部104、波形产生部105、驱动部106等,运动控制***100可以仅包含有一个电机107和运动控制部件103,也可以包含多个电机107和对应的运动控制部件103,例如对于一个四轴机器人,具有四个可以活动的关节,每个关节处均设置有一个电机107,以及对应的运动控制部件103。
在运动控制***100中,电机107可以单独作为运动部件使用,电机107也可以连接减速器后、共同作为一个运动部件使用,电机107还可以连接丝杠后、共同作为一个运动部件使用,等等。
所述机器人控制器101可以是示教器,还可以是安装有上位机软件的电脑,还可以是安装有APP的手机/Pad等,以实现人机交互,使得用户可以通过机器人控制器101配置运动参数、控制电机106运行状态、显示运动曲线等功能。
所述CAN数据线102实现机器人控制器101和运动控制部件103之间的通信,CAN总线是一种标准总线,广泛应用于汽车电子、工业控制、运动控制等领域,CAN总线数据具有固定的格式,CAN数据线102可以是双绞线或同轴线等。作为替代,还可以通过串行通信等替代CAN数据线102实现二者之间的通信。
所述运动控制部件103实现对机器人控制器101发送来的运动参数的解算,得到实际的电机控制数据(一般为PWM波),通过调整PWM波的周期和占空比等调节电机107的运行状态。
其中,控制部104实现对运动参数的解算,可以将运动参数解算成为对应的产生PWM波形的波表数据,波表数据中的周期值P不同、则表示电机运行的快慢不同。
波形产生部105是一种PWM波形发生器,例如由FPGA芯片实现的PWM波形发生器,可以根据控制部104产生的波表数据生成对应的PWM波形数据。
控制部104和波形产生部105也可以是一个部件,例如由可由一片内嵌有ARM内核的FPGA芯片实现,该芯片既可以实现控制部104的功能、同时又可以实现波形产生部105的功能。
驱动部106是电机107的驱动单元,可以根据波形产生部105产生的PWM波形数据驱动电机107运动。
用户通过机器人控制器101编辑好运动参数后,可以通过CAN数据线102发送到运动控制部件103中,控制部104将接收到的运动参数解算为一组周期值P构成的波表,周期值不同则代表电机运动的速度不同,波形产生部105则根据解算得到的周期P生成一组PWM波形数据,而驱动部106则根据PWM波形数据驱动电机107运动。
结合参考附图2,附图2示出了一种典型的四轴机器人200,四轴机器人200包括有底座1、大臂2、小臂3,还可以包括安装在小臂3末端的物体抓取部(附图2中未示出),在四轴机器人200的各个关节上分别设置有电机和减速器,例如在底座1上设置有一套电机和减速器,电机和减速器可以带动大臂2等在水平方向上进行360度旋转,而在大臂2的底部设置有另一套电机4和减速器5,电机4和减速器5的旋转可以带动大臂2等沿S1或S2方向上下摆动,在小臂3上也设置有电机和减速器,该电机和减速器可以带动小臂3等沿S1或S2方向摆动,还可以在物体抓取部上设置有电机和减速器,带动物体抓取部运动,物体抓取部可以抓取物体(即负载),将抓取的物体运送到目的位置。
电机4即可以采用运动控制***100中的电机107,通过运动控制部件103实现对电机4的控制,使电机4按用户通过机器人控制器101设定的参数沿S1方向俯向下运动或沿S2方向后仰运动。
假设用户通过机器人控制器101设定了一组运动参数,使得电机4带动大臂2沿S1方向俯向下运动15度,控制部104会将用户设置的运动参数计算为电机4运动的微步数,例如电机运动10000微步为减速器5旋转15度,减速器5旋转15度即会带动大臂2运动15度,因此控制器104将这15度换算为电机4的10000微步。
当电机4通过减速器5带动大臂2沿S1方向运动过程中,电机4应当运动10000微步、以带动大臂2旋转15度,但是在此过程中因机器人受到S2方向的过载力(例如机器人200在此过程中碰到物体)等因素的影响而只运动了95000微步,丢失了5000微步,此情况称之为丢步(或失步),即电机在运转时丢失了一定的微步数、实际运转的微步数小于理论运转的微步数。
现有技术有很多解决该问题的方法,例如通过编码器检测电机4实际运动的微步数,然后与理论微步数进行比较后,后续补偿电机4丢失的微步数。
当电机4通过减速器5带动大臂2沿S1方向运动过程中,电机4应当运动10000微步、以带动大臂2旋转15度,但是在此过程中受到了S1方向的同向力或机器人200的负载过大等因素的影响而导致电机4运动了12000微步,即电机4超步运转了2000步,此情况称之为超步,即电机在运转时多运转了一定的微步数、实际运转的微步数大于理论运转的微步数。
目前,现有技术大多是对丢步这一情况进行补偿处理,而对超步的情况没有处理方法。
发明内容
为了解决上述问题,本发明提供了一种超步自调整方法,可以检测运动部件超步的情况,出现超步时增加驱动电流、以提高运动部件的驱动能力,降低超步带来的影响。
本发明提供一种超步自调整方法,应用于运动控制部件,所述运动控制部件包括有控制部、驱动部,
所述控制部,用于根据控制参数产生控制波形;
所述驱动部,用于根据所述控制波形产生驱动电流、驱动运动部件运动;
所述方法包括:
实时检测驱动部产生的驱动能力指示值SG;
当检测到驱动能力指示值SG超过一个驱动能力指示阈值SG0,调整驱动能力指示下限值SGmin、使驱动能力指示下限值SGmin大于当前驱动能力指示值SG;
当驱动部检测到调整后的驱动能力指示下限值SGmin大于当前驱动能力指示值SG,提高所述驱动电流,使所述驱动能力指示值SG下降。
作为一种举例说明,本发明所述的超步自调整方法中,在所述运动部件空载运动的状态下,所述控制部根据使所述运动部件匀速运动的控制参数产生所述控制波形,所述驱动部根据所述控制波形驱动运动部件做匀速运动、并产生所述的驱动能力指示阈值SG0,且所述驱动能力指示阈值SG0在一个限定范围内。
作为又一种举例说明,本发明所述的超步自调整方法中,所述驱动能力指示阈值SG0的产生方法是:
根据下述公式(1)、调整SGT的值,使得所述驱动部产生的驱动能力指示值SG达到所述限定范围内,此时的驱动能力指示值SG即为所述驱动能力指示阈值SG0;
SG=SG(空载输入)-SGT………………………公式(1)
其中,所述SG(空载输入)是空载状态下,所述驱动部产生的驱动电流对应的驱动能力值;
SGT是一个常量。
作为又一种举例说明,本发明所述的超步自调整方法中,在所述运动部件带负载匀速运动的状态下,所述控制部根据所述驱动部产生的驱动能力指示值SG计算得到驱动能力指示下限值SGmin和驱动能力指示上限值SGmax,计算方法是:
根据下述公式(2)、调整所述驱动部产生的驱动电流,使所述驱动部产生的驱动能力指示值SG达到所述限定范围内,此时SG(负载输入)即为所述驱动能力指示下限值SGmin;
SG=SG(负载输入)-SG(负载)-SGT………………公式(2)
其中,SG(负载输入)是带负载运动的状态下,所述驱动部产生的驱动电流对应的驱动能力值;
SG(负载)是所述负载对应的驱动能力值;
SGT是所述驱动能力指示阈值SG0对应的SGT值;
根据下述公式(3)计算得到所述驱动能力指示上限值SGmax:
SGmax=SGmin+SGoffset………………………………公式(3)
其中SGoffset是常量。
作为又一种举例说明,本发明所述的超步自调整方法中,所述方法还包括一个修正步骤:
在所述运动部件堵转的状态下,依据下述公式(4)、再次调整所述驱动部产生的驱动电流和所述SGT,使所述驱动部产生的驱动能力指示值SG为零,且使所述驱动能力指示阈值SG0大于所述驱动能力指示上限值SGmax;
SG=SG(堵转输入)-SG(堵转负载)-SGT………………公式(4)
其中,SG(堵转输入)是堵转状态下,所述驱动部产生的驱动电流对应的驱动能力值;
SG(堵转负载)是堵转状态下负载对应的驱动能力值;
最终修正得到驱动能力指示阈值SG0、驱动能力指示上限值SGmax、驱动能力指示下限值SGmin。
作为又一种举例说明,本发明所述的超步自调整方法中,所述方法还包括一个插值步骤:
在所述运动部件以最小速度匀速运动状态下,以上述步骤计算得到最小速度对应的驱动能力指示阈值SG01;
在所述运动部件以最大速度匀速运动状态下,以上述步骤计算得到最大速度对应的驱动能力指示阈值SG02;
当所述驱动部根据所述控制波形驱动运动部件以任一速度做匀速V运动时,所述速度V对应的驱动能力指示阈值SG0是由最大速度与对应的驱动能力指示阈值SG02、最小速度与对应的驱动能力指示阈值SG01做线性插值计算得到。
作为又一种举例说明,本发明所述的超步自调整方法中,当驱动部检测到调整后的驱动能力指示下限值SGmin大于当前驱动能力指示值SG,提高所述驱动电流,使所述驱动能力指示值SG下降到所述驱动能力指示下限值SGmin和驱动能力指示上限值SGmax之间后,所述控制部将所述驱动能力指示下限值SGmin调整回原数值。
为了解决上述问题,本发明还提供了一种存储有计算机程序的计算机可读介质,可以检测运动部件超步的情况,出现超步时增加驱动电路、以提高运动部件的驱动能力,降低超步带来的影响。
本发明提供的计算机可读介质中,所述计算机程序供一个或多个处理器运行以执行上述超步自调整方法。
为了解决上述问题,本发明还提供了一种具有超步自调整功能的运动控制部件,可以检测运动部件超步的情况,出现超步时增加驱动电路、以提高运动部件的驱动能力,降低超步带来的影响。
本发明提供的具有超步自调整功能的运动控制部件,所述运动控制部件包括有控制部、驱动部、存储器;
所述控制部,用于根据控制参数产生控制波形;
所述驱动部,用于根据所述控制波形产生驱动电流、驱动运动部件运动;
所述存储器,用于存储计算机程序;
当所述计算机程序被所述控制部、所述驱动部执行时,实现上述超步自调整方法。
为了解决上述问题,本发明还提供了一种机器人,可以检测运动部件超步的情况,出现超步时增加驱动电路、以提高运动部件的驱动能力,降低超步带来的影响。
本发明提供的机器人,包括有上述具有超步自调整功能的运动控制部件。
本发明提供了一种超步自调整方法,实时检测驱动部产生的驱动能力指示值SG,并设置驱动能力指示阈值SG0,一旦出现超步的情况,即意味着驱动能力指示值SG大于驱动能力指示阈值SG0,因此通过调整驱动能力指示下限值SGmin的方式,调整驱动部产生的驱动电流、使驱动电流增加,驱动电流的增加会使得电机的驱动能力提高,进而驱动能力指示值SG会下降,电机驱动能力的提高意味着电机可以承受更大的负载,即一定程度上减小了超步的情况。
附图说明
图1是本发明的运动控制***100的原理框图;
图2是本发明的机器人200的结构原理图;
图3是本发明具体实施例中驱动能力指示值SG的变化曲线示意图;
图4是本发明的具体实施例中超步自调整方法S400的流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
作为一种具体实施例,结合参考附图1和附图2,本实施例提供一种运动控制***100(机器人***),运动控制***100包括有机器人控制器101、CAN数据线102、运动控制部件103、电机107,运动控制部件103包括有控制部104、波形产生部105、驱动部106等,运动控制***100可以仅包含有一个电机107和运动控制部件103,也可以包含多个电机107和对应的运动控制部件103,例如对于四轴机器人200,具有四个可以活动的关节,每个关节处均设置有一个电机107(即机器人200中的电机4),以及对应的运动控制部件103。
运动控制***100的电机107安装在机器人200的关节上,作为机器人200的一部分,因此用户可以通过运动控制***100来控制机器人200运动。
在运动控制***100中,电机107可以单独作为运动部件使用,电机107也可以连接减速器后、共同作为一个运动部件使用,电机107还可以连接丝杠后、共同作为一个运动部件使用,等等。
所述机器人控制器101可以是示教器,还可以是安装有上位机软件的电脑,还可以是安装有APP的手机/Pad等,以实现人机交互,使得用户可以通过机器人控制器101配置运动参数、控制电机106运行状态、显示运动曲线等功能。
所述CAN数据线102实现机器人控制器101和运动控制部件103之间的通信,CAN总线是一种标准总线,广泛应用于汽车电子、工业控制、运动控制等领域,CAN总线数据具有固定的格式,CAN数据线102可以是双绞线或同轴线等。作为替代,还可以通过串行通信等替代CAN数据线102实现二者之间的通信。
所述运动控制部件103实现对机器人控制器101发送来的运动参数的解算,得到实际的电机控制数据(一般为PWM波),通过调整PWM波的周期和占空比等调节电机107的运行状态。
其中,控制部104实现对运动参数的解算,可以将运动参数解算成为对应的产生PWM波形的波表数据,波表数据中的周期值P不同、则表示电机运行的快慢不同。
波形产生部105是一种PWM波形发生器,例如由FPGA芯片实现的PWM波形发生器,可以根据控制部104产生的波表数据生成对应的PWM波形数据。
控制部104和波形产生部105也可以是一个部件,例如由可由一片内嵌有ARM内核的FPGA芯片实现,该芯片既可以实现控制部104的功能、同时又可以实现波形产生部105的功能。
驱动部106是电机107的驱动单元,可以根据波形产生部105产生的PWM波形数据产生对应的驱动电流、驱动电机107运动。
用户通过机器人控制器101编辑好运动参数后,可以通过CAN数据线102发送到运动控制部件103中,控制部104将接收到的运动参数解算为一组周期值P构成的波表,周期值不同则代表电机运动的速度不同,波形产生部105则根据解算得到的周期P生成一组PWM波形数据,而驱动部106则根据PWM波形数据驱动电机107运动。
结合参考附图2,附图2示出了一种典型的四轴机器人200,四轴机器人200包括有底座1、大臂2、小臂3,还可以包括安装在小臂3末端的物体抓取部(附图2中未示出),在四轴机器人200的各个关节上分别设置有电机和减速器,例如在底座1上设置有一套电机和减速器,电机和减速器可以带动大臂2等在水平方向上进行360度旋转,而在大臂2的底部设置有另一套电机4和减速器5,电机4和减速器5的旋转可以带动大臂2等沿S1或S2方向上下摆动,在小臂3上也设置有电机和减速器,该电机和减速器可以带动小臂3等沿S1或S2方向摆动,还可以在物体抓取部上设置有电机和减速器,带动物体抓取部运动,物体抓取部可以抓取物体(即负载),将抓取的物体运送到目的位置。
电机4即对应运动控制***100中的电机107,通过运动控制部件103实现对电机4的控制,使电机4按用户通过机器人控制器101设定的参数沿S1方向俯向下运动或沿S2方向后仰运动。
在电机4运动过程中,驱动部106会实时产生驱动能力指示值SG,驱动能力指示值SG表示驱动部106剩余的驱动能力,也即电机4剩余的带动负载的能力,SG越大、即表示驱动能力越高,当SG为0、即意味着驱动部106的驱动能力耗尽。
结合参考附图3,附图3示出了驱动能力指示值SG的变化曲线,其中横轴为电机负载的使用比率(即电机4的实际负载与电机4理论可承受的最大负载的比值),纵轴是驱动能力指示值SG,可以看出,随着电机负载的使用比率的增加、驱动能力指示值SG的值不断下降,最终在电机负载的使用比率为100%时、SG基本为0。
而电机驱动负载的能力与驱动部106输出的驱动电流的值有关,驱动电流越大、电机4的驱动能力越高,当电机4满载时,需要驱动部106输出最大的电流,但是当电机4在空载(即电机4没有负载)或负载小的情况下,就不需要驱动部106输出最大的电流,可以用较小的电流驱动电机4运动,这可以提高电机4的使用寿命。
为了能够根据电机4的负载的不同而实时调节驱动电流的大小,以达到延长电机4的使用寿命的目的,可以通过设置驱动能力指示下限值SGmin和驱动能力指示上限值SGmax两个参数,来调节驱动电流的大小。
驱动能力指示下限值SGmin即为驱动能力指示值SG的下限,驱动能力指示上限值SGmax即为驱动能力指示值SG的上限,当驱动部106的驱动能力指示值SG超过驱动能力指示上限值SGmax时、驱动部106调低输出的驱动电流(因为此时意味着电机4的负载小),当驱动部106的驱动能力指示值SG小于驱动能力指示下限值SGmin时、驱动部106调高输出的驱动电流(因为此时意味着电机4的负载大),当驱动部106的驱动能力指示值SG在驱动能力指示下限值SGmin和驱动能力指示上限值SGmax之间时,即意味着此时电机4的负载合适,不需要调节驱动电流。
上述根据电机4的负载调节驱动电流的方法却不能解决超步这一问题,例如,机器人200不带负载、驱动部106输出2A的驱动电流驱动电机4,电机4驱动机器人200的大臂2沿S1方向俯向下运动时,用户施加给大臂2与其运动方向(即沿S1方向)同向的力,这会使得电机4实际运动的微步数超出了其理论上应该运动的微步数,但此时驱动部106输出的驱动能力指示值SG不断变大,根据上述调整方法,驱动部106输出的驱动电流会不断变小,这会使得超步的状况更加严重,无法解决超步这一问题。
为了解决上述问题,本实施例提供了一种超步自调整方法S400,结合参考附图4,附图4示出了本发明的超步自调整方法S400的流程,方法S400包括:
步骤S401:实时检测驱动部106产生的驱动能力指示值SG。
用户通过机器人控制器101配置好运动参数后通过CAN数据线102传输给电机4对应的运动控制部件103上的控制部104,控制部104根据接收到的控制参数产生控制波形,波形产生部105如果是单独设置,那么波形产生勃105会根据控制波形生成PWM波形,驱动部106根据控制波形(或是PWM波形)产生驱动电流、驱动电机4运动,且驱动部106还产生对应的驱动能力指示值SG。
本发明的步骤S401即为实时检测驱动部106产生的驱动能力指示值SG,步骤S401即可以由驱动部106实现,也可以由控制部104实现,还可以由一个单独的检测器实现。
步骤S402:当检测到驱动能力指示值SG超过一个驱动能力指示阈值SG0,调整驱动能力指示下限值SGmin、使驱动能力指示下限值SGmin大于当前驱动能力指示值SG。
本步骤中,首先设置一个驱动能力指示阈值SG0,实时比较驱动部106产生的驱动能力指示值SG和驱动能力指示阈值SG0,当比较的结果为驱动能力指示值SG小于等于驱动能力指示阈值SG0、不做任何处理。
当检测到驱动能力指示值SG大于驱动能力指示阈值SG0,即意味着超步这一问题出现,需要将驱动部106产生的驱动电流加大,以提高电机4的驱动能力。
为了达到提高驱动电流的目的,首先将驱动能力指示下限值SGmin调整到大于检测到的驱动能力指示值SG,步骤S402可以由控制部104实现,可以由波形产生部105实现,甚至还可以由一个单独的处理器来实现。
步骤S403:当驱动部106检测到调整后的驱动能力指示下限值SGmin大于当前驱动能力指示值SG,提高所述驱动电流,使所述驱动能力指示值SG下降。
步骤S402中已经将驱动能力指示下限值SGmin调整到大于检测到的驱动能力指示值SG,由于现在驱动能力指示值SG小于驱动能力指示阈值SGmin,因此驱动部106自动的增加驱动电流,由于驱动电流增加、电机4的驱动能力提高,电机4可以带动更重的负载,人再向大臂2施加沿S1方向的同向力就会受阻,驱动部106产生的驱动能力指示值SG自然会下降,这样就一定程度上解决了超步这一问题。
作为更进一步的说明,一旦检测到驱动部106产生的驱动能力指示值SG还是大于驱动能力指示阈值SG0,那么可以继续提高驱动能力指示下限值SGmin,驱动部106可以继续提高驱动电流,电机4的驱动能力进一步被提高,电机4的带动负载的能力进一步被提高,这一过程可以重复进行、直到驱动部106产生电机4的最大额定电流。
由于超步这一问题产生后,现有技术无法提高驱动部106的驱动电流以提高电机4的驱动能力,本发明通过设置一个指示超步的驱动能力指示阈值SG0,一旦驱动能力指示值SG超过驱动能力指示阈值SG0即认为超步情况出现,那么就提高驱动能力指示下限值SGmin、是驱动能力指示值SG小于驱动能力指示下限值SGmin,驱动部106会自动提高驱动电流、提高电机4的带负载能力,驱动能力指示值SG会自动下降,电机4的带负载能力的提高即意味着降低了超步这一问题,同时兼顾了驱动电流的实时调节功能,进而延长了电机4的使用寿命。
作为一种举例说明,本发明的驱动能力指示阈值SG0是这样得到的:
在电机4空载运动的状态下,所述控制部104根据使所述电机4匀速运动的控制参数产生所述控制波形,所述驱动部106根据所述控制波形驱动电机4做匀速运动、并产生所述的驱动能力指示阈值SG0,且所述驱动能力指示阈值SG0在一个限定范围内,这个限定范围是驱动能力指示值SG应该在的合理范围,可以由用户设定。
空载是本领域的一个常识概念,当电机4没有安装在机器人200上、而单独运动时,空载即为电机4的输出轴没有安装任何负载,或者电机4与减速器连接后、减速器的输出轴没有安装任何负载;当电机4安装在机器人200上、用于驱动大臂2旋转运动时,空载即为机器人200的物体抓取部(末端执行器)没有抓取任何负载。
作为一种变形,所述驱动能力指示阈值SG0还可以是经过差值步骤得到:
在电机4以最小速度匀速运动状态下,以上述步骤S402计算得到最小速度对应的驱动能力指示阈值SG01;
在电机4以最大速度匀速运动状态下,再次以上述步骤S402计算得到最大速度对应的驱动能力指示阈值SG02;
当所述驱动部106根据所述控制波形驱动电机4以任一速度V做匀速运动时,所述速度V对应的驱动能力指示阈值SG0是由最大速度与对应的驱动能力指示阈值SG02、最小速度与对应的驱动能力指示阈值SG01做线性插值计算得到。
这是因为驱动能力指示阈值SG0和电机4的运动速度(或者是大臂2的运动速度)直接关联,基本成线性关系,因此可以预先测出最小速度对应的驱动能力指示阈值SG01、再测出最大速度对应的驱动能力指示阈值SG02,当电机4以某一速度运动时,只需要进行线性插值计算出对应的驱动能力指示阈值SG0即可,而不需要每次都进行测量,节约了用户使用机器人200的时间。
作为一种举例说明,所述驱动能力指示阈值SG0的产生方法是:
根据下述公式(1)、调整SGT的值,使得所述驱动部106产生的驱动能力指示值SG达到所述限定范围内,此时的驱动能力指示值SG即为所述驱动能力指示阈值SG0;
SG=SG(空载输入)-SGT………………………公式(1)
其中,所述SG(空载输入)是空载状态下,所述驱动部106产生的驱动电流对应的驱动能力值;例如当驱动部106产生的驱动电流为2A时,电流值2A经过换算得到对应的SG(空载输入)值。
SGT是一个常量,是由于电机发热、电机损耗等原因造成的驱动能力损耗值,用户可以设置SGT的数值,也可以调整SGT的数值。
作为一种变形,所述驱动能力指示阈值SG0也可以是固定设置在控制部104或驱动部106等内的一个固定值。
作为又一种举例说明,所述驱动能力指示上限值SGmax和驱动能力指示下限值SGmin可以是这样计算得到:
在电机4带负载匀速运动的状态下,所述控制部104根据所述驱动部106产生的驱动能力指示值SG计算得到驱动能力指示下限值SGmin和驱动能力指示上限值SGmax,计算方法是:
根据下述公式(2)、调整所述驱动部106产生的驱动电流,使所述驱动部106产生的驱动能力指示值SG达到所述限定范围内,此时SG(负载输入)即为所述驱动能力指示下限值SGmin;
SG=SG(负载输入)-SG(负载)-SGT………………公式(2)
其中,SG(负载输入)是带负载运动的状态下,所述驱动部106产生的驱动电流对应的驱动能力值,可以用驱动电流换算得到;
SG(负载)是所述负载对应的驱动能力值,可以根据负载的大小计算得到;
SGT是所述驱动能力指示阈值SG0对应的SGT值,一旦上述SGO固定、空载时的电流固定、SGT值即是一个固定值;
根据下述公式(3)计算得到所述驱动能力指示上限值SGmax:
SGmax=SGmin+SGoffset………………………………公式(3)
其中SGoffset是常量,例如SGoffset为256。
作为说明,当电机4没有安装在机器人200上、而单独运动时,负载即为安装在电机4的输出轴上的物体;当电机4没有安装在机器人200上、且连接有减速器时,负载是减速器的输出轴上的物体;当电机4安装在机器人200上、驱动大臂2旋转运动时,负载是机器人200的物体抓取部(末端执行器)抓取的物体。
作为一种变形,所述驱动能力指示下限值SGmin和驱动能力指示上限值SGmax也可以是固定设置在控制部104或驱动部106等内的固定值。
作为又一种举例说明,上述计算得到的驱动能力指示阈值SG0、驱动能力指示上限值SGmax、驱动能力指示下限值SGmin还可以通过一个修正步骤进行修正:
在电机4堵转的状态下,依据下述公式(4)、再次调整所述驱动部106产生的驱动电流和所述SGT,使所述驱动部106产生的驱动能力指示值SG为零,且使所述驱动能力指示阈值SG0大于所述驱动能力指示上限值SGmax;
SG=SG(堵转输入)-SG(堵转负载)-SGT………………公式(4)
其中,SG(堵转输入)是堵转状态下,所述驱动部产生的驱动电流对应的驱动能力值,可以根据驱动电流换算得到;
SG(堵转负载)是堵转状态下负载对应的驱动能力值,是一个固定值;
最终修正得到驱动能力指示阈值SG0、驱动能力指示上限值SGmax、驱动能力指示下限值SGmin。
堵转是本领域的一个常识概念,即电机在旋转速度实际为0时、驱动部106仍然输出驱动电流,此时电机本该正常运转,但一般由于受外力影响而无法运动。例如电机4本该驱动大臂2沿S1方向俯向下运动,此时有人拖住了大臂2、使得大臂2无法沿S1方向俯向下运动、而是停在某个位置不动,此时即为堵转。
堵转状态下,驱动部106产生的驱动能力指示值SG实际上最终应该为0,即堵转时驱动部106无法再驱动电机4,但上述步骤计算得到的SGT值可能不合适而造成堵转时驱动部产生的驱动能力指示值SG最终不是0。那么此时就需要微调SGT值微调SGT值即意味着上述计算得到的驱动能力指示阈值SG0和驱动能力指示下限值SGmin也跟着进行微调,直到驱动部106产生的驱动能力指示值SG最终应该为0,SGT的值被固定。
此过程最终修正了上述空载和带负载匀速运动状态下计算得到的驱动能力指示阈值SGO和驱动能力指示下限值SGmin(对应的也修正了驱动能力指示上限值SGmax),且驱动能力指示阈值SGO大于驱动能力指示下限值SGmin,此时驱动能力指示阈值SG0才能产生作用。
根据上述修正步骤,本实施例最终得到了驱动能力指示阈值SGO、驱动能力指示下限值SGmin、驱动能力指示上限值SGmax,且驱动能力指示阈值SGO>驱动能力指示上限值SGmax>驱动能力指示下限值SGmin。
作为一种变形,所述修正步骤也可以被省略,会使得上述空载和带负载匀速运动状态下计算得到的驱动能力指示阈值SGO和驱动能力指示下限值SGmin不够精确,但已经可以一定程度的解决超步问题。
作为又一种举例说明,当驱动部106检测到调整后的驱动能力指示下限值SGmin大于当前驱动能力指示值SG,提高所述驱动电流,使所述驱动能力指示值SG下降到所述驱动能力指示阈值SG0之下后,所述控制部106将所述驱动能力指示下限值SGmin调整回原数值,即超步问题被解决。
经过上述空载、带负载匀速运动、堵转等情况下的计算和修正后,已经得到了驱动能力指示阈值SGO、驱动能力指示下限值SGmin、驱动能力指示上限值SGmax,且驱动能力指示阈值SGO>驱动能力指示上限值SGmax>驱动能力指示下限值SGmin。
那么,在机器人200或电机4正常运动的过程中,一旦检测到驱动部106产生的驱动能力指示值SG小于驱动能力指示下限值SGmin,即意味着此时驱动能力不足,需要将驱动部106输出的驱动电流提高;一旦检测到驱动部106产生的驱动能力指示值SG大于驱动能力指示上限值SGmax,即意味着驱动能力过多,可以将驱动部106输出的驱动电流降低,以延长电机4的寿命;一旦检测到驱动部106产生的驱动能力指示值SG大于驱动能力指示阈值SG0,即意味着超步问题的发生,即将驱动能力指示下限值SGmin提高到大于此时的驱动能力指示值SG,驱动部106根据此情况会提高输出的驱动电流,进而提高了电机4的带负载能力,驱动部106产生的驱动能力指示值SG如果继续大于驱动能力指示阈值SG0,那么需要将驱动能力指示下限值SGmin进一步提高,进而进一步提高驱动部106输出的驱动电流,直到检测到驱动部106产生的驱动能力指示值SG所述驱动能力指示阈值SG0之下后,然后将驱动能力指示下限值SGmin和驱动能力指示上限值SGmax调整回原数值,机器人200恢复正常工作。
作为一种示例性实施例,还提供一种存储有计算机程序的计算机可读介质,所述计算机程序供一个或多个处理器运行以执行上述超步自调整方法S400。
作为又一种示例性实施例,上述运动控制部件103还可以包括有存储器,存储器用于存储计算机程序,当计算机程序被所述控制部104、所述驱动部106执行时,实现上述超步自调整方法S400。
作为一种说明,所述存储器可以是由多个存储器构成,例如控制部104内有一个存储器、用于存储供控制部104执行的计算机程序,驱动部106内有一个存储器、用于存储供驱动部106执行的计算机程序;所述存储还可以是由一个单独的存储器构成,例如设置一个单独的DRAM存储器。
作为又一种示例性实施例,所述运动控制部件103可以放置在各种机器人上,作为机器人的一部分。
本发明提供的超步自调整方法S400通过设置一个驱动能力指示阈值SG0,一旦超步问题发生,驱动部106产生的驱动能力指示值SG即会大于驱动能力指示阈值SG0,然后本发明将驱动能力指示下限值SGmin提高到大于驱动能力指示值SG,驱动部106就会自动调整驱动电流、使驱动电流增大,那么电机的带负载能力增加,驱动部106产生的驱动能力指示值SG随之会下降,直到超步问题被解决,本发明巧妙的利用超步时驱动能力指示值SG的变化状态来确定超步情况的发生,然后利用驱动部106的驱动能力上限值SGmax和驱动能力下限值SGmin与驱动能力指示值SG的关系来调整驱动电流,驱动电流增加意味着电机带负载能力提高,因人为因素或负载过重而引起的超步问题随之被部分或全部解决,驱动电流可以逐步调节至电机的最大额定电流,以使电机达到最大的带负载能力,本发明顾延长了电机使用寿命、又可以解决超步的问题。
以上所述的仅为本发明的具体实施例,所应理解的是,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想,并不用于限定本发明的保护范围,凡在本发明的思想和原则之内所做的任何修改、等同替换等等,均应包含在本发明的保护范围之内。