具有反馈控制功能的机器人、运动控制系统、方法和介质与流程

文档序号:15279385发布日期:2018-08-28 23:21阅读:116来源:国知局

本发明涉及多关节机器人领域,特别是一种具有反馈控制功能的机器人、一种具有反馈控制功能的运动控制系统、一种反馈控制方法以及一种存储有程序的计算机可读介质。



背景技术:

在运动控制领域,电机等运动部件是实现运动控制的核心部件,比如机器人的运行就需要电机配合丝杠或减速器等作为运动执行部件来带动机器人运动。

以电机配合减速器为例,电机配合减速器是多关节机器人(或称为多关节机械手、多轴机器人、机械臂等)的主要运动执行部件,多关节机器人主要是根据预定的路线从一个初始位置夹取目标物体到目标位置,适用于诸多工业领域的机械自动化作业。

现在市场上的多关节机器人主要包括四轴机器人(具有四个关节)和六轴机器人(具有六个关节),他们均包括有基座、手臂和末端的物体夹持部,手臂上关节的多少决定了机器人的“轴”的数量,每一个关节都是由一个电机的转动来驱动、以实现关节的运动。

目前,用户需要通过人机交互设备(如电脑、示教器等)实现对多关节机器人的参数设定和控制,目前市场上的人机交互设备大都是针对机器人整体而设计,用户一般通过编辑每个关节的运动参数实现对机器人的运动控制,所述的运动参数实际上是控制运动部件(如电机)的运动参数,用户编辑机器人的运动参数后,发送给机器人本体的运动控制部件(或称为驱控器等),运动控制部件对接收到的运动参数进行解算后控制运动部件运动,如专利申请号为201710438383.4的中国专利申请即公开了一种多关节机器人。

结合参考附图1,附图1示出了一种多关节机器人100,机器人100是一种四关节机器人,机器人100包括有底座1、大臂2、小臂3,小臂3上还可以连接有腕(附图1中未示出),腕上可以有爪、以实现对物体的抓取等功能,例如专利申请号为201710381661.7的中国专利申请公开了一种物体夹持部,该物体夹持部可以作为爪安装在腕关节上。

在机器人100的各个关节上分别设置有运动部件(电机和减速器),例如在底座1的外壳内设置有一套电机和减速器,减速器的输出轴连接底座1的上盖;底座1的上盖安装大臂2,大臂2的底部设置有另一套电机4和减速器5,减速器5的输出轴连接大臂2的本体;在大臂2的上部设置有另一套电机和减速器,减速器的输出轴连接小臂3的本体;在小臂3的前端还可以设置有另一套电机和减速器,减速器的输出轴连接腕的本体;腕上可以安装各种末端执行器,例如专利申请号为201710381661.7公开的物体夹持部。

底座1内的电机旋转运动可以带动底座1的上盖沿水平方向360度旋转运动、进而带动机器人100的大臂2、小臂3等沿水平方向360度旋转;电机4的旋转运动可以带动大臂2沿s1方向俯向下运动、或沿s2方向后仰向上运动,进而带着小臂3等沿s1或s2方向运动;大臂2上部的电机旋转运动可以带动小臂3进行旋转运动,进而带着腕等旋转运动;小臂3的另一端的电机旋转运动可以带动腕进行旋转运动,进而带着末端执行器进行旋转运动;末端执行器上的电机还可以带动末端执行器进行夹取物体等操作。

通过不同的运动参数控制上述多个电机按用户设定的运动路线运动,就可以实现对机器人100的精确控制,使机器人100完成用户设定的各种功能。

对各个电机(例如电机4)的控制是通过运动控制部件实现的,运动控制部件可以单独设置在机器人100的外部、通过连接线与机器人100上的各个电机连接;运动控制部件也可以安装在机器人100的本体外壳内。

结合参考附图2,附图2示出了运动控制系统200(例如机器人)的电路原理,机器人200包括有机器人控制器201、网关202、控制部203、驱动部204、运动部件205、编码器206等,运动控制系统200可以包括有多个运动部件205(例如机器人100中设置有4个或5个电机),也可以仅包括一个运动部件205;当运动控制系统200包括有多个运动部件205时,每个运动部件205可以分别对应有各自的控制部部203和驱动部204,也可以采用同一个多轴的控制部203和驱动部204同时控制和驱动多个运动部件205。

所述机器人控制器201可以是示教器,还可以是安装有上位机软件的电脑,还可以是安装有app的手机/pad等,以实现人机交互,使得用户可以通过机器人控制器201配置运动参数、控制运动部件205的运行状态、显示运动曲线等功能。

网关202是连通机器人控制器201和控制部203的部件,例如可以是usb转can网关、rs232转can网关等,可以将用户通过机器人控制器201设置的运动参数转换为控制部203可读格式的数据、并发送给控制部203,还可以将控制部203产生的各种反馈数据转换为机器人控制器201可读格式的数据、并发送给机器人控制器201。

所述控制部203实现对机器人控制器201发送来的运动参数的解算,将用户设置的运动参数产生控制运动部件运动的每个微步的周期值p(即pwm波形对应的波表数据),作为实际的电机控制数据(一般为pwm波),通过调整pwm波的周期和占空比等数据来调整运动部件205的运动状态。

驱动部204是运动部件205(电机)的驱动单元,可以根据控制部203产生的实际的电机控制数据产生对应的驱动电流、以驱动电机运动。

在运动控制系统200中,运动部件205可以仅仅是电机,也可以是电机结合减速器,还可以是电机结合丝杠等。例如在机器人100上的基座1、大臂2、小臂3、腕等关节上均需要设置一组电机+减速器作为各自的运动部件。

编码器206设置在运动部件205的输出端的转轴上、检测运动部件205的实际运动数据。编码器206可以直接设置在电机和/或减速器的输出轴上,当电机和/或减速器通过传动机构(例如皮带等)连接有其他转轴时、编码器206也可以设置在其他转轴上,编码器206还可以设置在丝杠上检测丝杠的实际运动数据,等等。

编码器206跟随运动部件205运动,检测运动部件的实际运动数据。具体的,编码器206在跟随运动部件205运动时、可以实时产生脉冲数据,每个脉冲表示一个码值,编码器206的分辨率通常是用户可设或可选的,例如一款单圈2000线的编码器表示旋转一周最大可以反馈2000个脉冲数据,用户可以将其分辨率调整为1000线、表示编码器每旋转一周反馈1000个脉冲数据(或返回2000个脉冲数据、但仅处理1000个脉冲数据),编码器每返回一个脉冲数据通常表示为1线,每两线之间是一个完整的脉冲。因此,用户如果设置好了运动参数、编码器的分辨率等数据,编码器206就可以正确的反馈运动部件205的实际位置。

在机器人100实际运行时,例如用户通过机器人控制器201设定了一组运动参数,使得电机4带动大臂2沿s1方向俯向下运动15度,控制部203会将用户设置的运动参数计算为电机4运动的微步数,例如电机运动10000微步为减速器5旋转15度,减速器5旋转15度即会带动大臂2运动15度,减速器5的转轴上安装的编码器对应产生相应的理论脉冲数据,因此控制部203将这15度换算为电机4的10000微步。

当电机4通过减速器5带动大臂2沿s1方向运动过程中,电机4应当运动10000微步、以带动大臂2旋转15度、编码器206产生83或84个脉冲数据(以每圈2000线计算),但是在此过程中因机器人100受到s2方向的过载力(例如机器人200在此过程中碰到物体)等因素的影响而只运动了95000微步,丢失了5000微步,此情况称之为丢步(或失步),即电机在运转时丢失了一定的微步数、实际运转的微步数小于理论运转的微步数。

现有技术解决上述问题的方法通常是:每隔一定的时间将接受到的编码器206反馈的脉冲数据进行计算、得到大臂2实际运动的位置与理论应当到达的位置之间的差值,此时需要将机器人100停下、然后根据上述差值重新计算后续的机器人100各个关节的运动轨迹数据,再讲计算后的各个关节的运动轨迹数据发送给各个关节,将之前电机4丢掉的微步数加到重新计算后的机器人100的运动轨迹数据中。

因此,上述的解决丢步的方法精度较差、机器人100的运动误差较大,且调整时需要机器人100停止运动、使得机器人的应用严重受限。



技术实现要素:

为了解决上述问题,本发明提供了一种具有反馈控制功能的机器人,可以实时的检测和调整机器人的运动轨迹,不需要将机器人停止、然后再计算和调整,且使得机器人的定位精度极高、误差极小。

本发明提供的具有反馈控制功能的机器人包括有:控制部、驱动部、运动部件、编码器,

所述控制部,用于根据运动参数产生控制所述运动部件运动的每个微步的周期值p;

所述驱动部,用于根据所述每个微步的周期值p产生驱动所述运动部件的驱动电流;

所述运动部件,用于根据所述驱动电流进行运动;

所述编码器,用于检测所述运动部件的实际运动数据;

所述控制部包括有第一计算部、检测部、第二计算部、调整部,

所述第一计算部,用于根据所述运动参数、所述编码器的分辨率计算得到所述编码器两线之间的理论微步数值s0、每个理论微步数值对应的理论周期值qn,n为正整数;

所述检测部,用于实时接收所述编码器的脉冲数据;

所述第二计算部,用于根据所述编码器两线之间的理论微步数值s0、每个理论微步数值对应的理论周期值qn、所述编码器当前两线之间的实际微步数值sn计算得到所述编码器当前两线之间的理论时间值tn与实际时间值tqn之间的时间差值dtn;

所述调整部,用于根据所述时间差值dtn计算得到所述编码器的后两线之间的理论微步数值对应的实际周期值pn+1,作为所述驱动部更新后的周期值p。

本发明采用将用户设置的运动参数解算为编码器两线之间的理论运动数据,然后实时检测编码器每两线之间实际的脉冲数据,计算得到编码器当前的两线之间的理论时间值与实际时间值的时间差值,这个时间差值即为运动部件在编码器的当前两线之间产生的运动误差,然后我们将这个时间差值补偿到后两线的运动数据中,即将前两线的运动误差在后两线的运动数据中进行补偿,实现了对运动误差的实时补偿,各个运动部件可以进行各自的检测和补偿,而不需要机器人重新对各个关节的运动轨迹进行重新规划,补偿效果极好,使得机器人的运动精度极高。

作为一种举例说明,本发明所述的具有反馈控制功能的机器人中,所述第一计算部计算得到的所述编码器每两线之间的理论微步数值s0是相等的。

作为又一种举例说明,本发明所述的具有反馈控制功能的机器人中,所述第一计算部计算得到的所述每个理论微步数值对应的理论周期值在所述编码器的两线之间是相等的。

作为又一种举例说明,本发明所述的具有反馈控制功能的机器人中,

所述编码器的后两线之间的理论微步数值对应的实际周期值pn+1为:所述编码器后两线之间的理论时间值tn+1与所述编码器当前两线之间的所述时间差值dtn的差值、再除以所述理论微步数值s0。

作为又一种举例说明,本发明所述的具有反馈控制功能的机器人中,

所述编码器的后两线之间的理论微步数值对应的实际周期值pn+1为:所述编码器后两线之间的理论微步数值对应的理论周期值qn+1减去所述编码器当前两线之间的所述时间差值dtn与所述理论微步数值s0的比值。

为了解决上述技术问题,本发明还提供了一种具有反馈控制功能的运动控制系统,可以实时的检测和调整运动控制系统中的运动部件的运动轨迹,不需要将整个系统停止、然后再计算和调整,且使得运动控制系统的定位精度极高、误差极小。

本发明所述的具有反馈控制功能的运动控制系统包括有控制部、驱动部、运动部件、编码器,

所述控制部,用于根据运动参数产生控制所述运动部件运动的每个微步的周期值p;

所述驱动部,用于根据所述每个微步的周期值p产生驱动所述运动部件的驱动电流;

所述运动部件,用于根据所述驱动电流进行运动;

所述编码器,用于检测所述运动部件的实际运动数据;

所述控制部根据运动参数产生控制所述运动部件运动的每个微步的周期值p包括:

根据所述运动参数、所述编码器的分辨率计算得到所述编码器两线之间的理论微步数值s0、每个理论微步数值对应的理论周期值qn,n为正整数;

实时接收所述编码器的脉冲数据;

根据所述编码器两线之间的理论微步数值s0、每个理论微步数值对应的理论周期值qn、所述编码器当前两线之间的实际微步数值sn计算得到所述编码器当前两线之间的理论时间值tn与实际时间值tqn之间的时间差值dtn;

根据所述时间差值dtn计算得到所述编码器的后两线之间的理论微步数值对应的实际周期值pn+1,作为所述驱动部更新后的周期值p。

作为一种举例说明,本发明所述的具有反馈控制功能的运动控制系统中,计算得到的所述编码器每两线之间的理论微步数值s0是相等的。

作为又一种举例说明,本发明所述的具有反馈控制功能的运动控制系统中,计算得到的所述每个理论微步数值对应的理论周期值在所述编码器的两线之间是相等的。

作为又一种举例说明,本发明所述的具有反馈控制功能的运动控制系统中,所述编码器的后两线之间的理论微步数值对应的实际周期值pn+1为:所述编码器后两线之间的理论时间值tn+1与所述编码器当前两线之间的所述时间差值dtn的差值、再除以所述理论微步数值s0。

作为又一种举例说明,本发明所述的具有反馈控制功能的运动控制系统中,所述编码器的后两线之间的理论微步数值对应的实际周期值pn+1为:所述编码器后两线之间的理论微步数值对应的理论周期值qn+1减去所述编码器当前两线之间的所述时间差值dtn与所述理论微步数值s0的比值。

为了解决上述技术问题,本发明还提供了一种反馈控制方法,应用于机器人,可以实时的检测和调整机器人的运动轨迹,不需要将机器人停止、然后再计算和调整,且使得机器人的定位精度极高、误差极小。

本发明所述的反馈控制方法中,所述机器人包括有依序设置的控制部、驱动部、运动部件和编码器;

所述方法包括:

所述控制部根据运动参数、所述编码器的分辨率计算得到所述编码器两线之间的理论微步数值s0、每个理论微步数值对应的理论周期值qn,n为正整数;

所述编码器将产生的脉冲数据实时发送给所述控制器;

所述控制部根据所述编码器两线之间的理论微步数值s0、每个理论微步数值对应的理论周期值qn、所述编码器当前两线之间的实际微步数值sn计算得到所述编码器当前两线之间的理论时间值tn与实际时间值tqn之间的时间差值dtn;

所述控制部根据所述时间差值dtn计算得到所述编码器的后两线之间的理论微步数值对应的实际周期值pn+1,作为所述驱动部更新后的周期值p;

所述驱动部根据所述周期值p产生驱动所述运动部件的驱动电流;

所述运动部件根据所述驱动电流进行运动。

作为一种举例说明,本发明所述的反馈控制方法中,所述控制部计算得到的所述编码器每两线之间的理论微步数值s0是相等的。

作为又一种举例说明,本发明所述的反馈控制方法中,所述控制部计算得到的所述每个理论微步数值对应的理论周期值在所述编码器的两线之间是相等的。

作为又一种举例说明,本发明所述的反馈控制方法中,所述编码器的后两线之间的理论微步数值对应的实际周期值pn+1为:所述编码器后两线之间的理论时间值tn+1与所述编码器当前两线之间的所述时间差值dtn的差值、再除以所述理论微步数值s0。

作为又一种举例说明,本发明所述的反馈控制方法中,所述编码器的后两线之间的理论微步数值对应的实际周期值pn+1为:所述编码器后两线之间的理论微步数值对应的理论周期值qn+1减去所述编码器当前两线之间的所述时间差值dtn与所述理论微步数值s0的比值。

为了解决上述技术问题,本发明还提供了又一种具有反馈控制功能的机器人,可以实时的检测和调整机器人的运动轨迹,不需要将机器人停止、然后再计算和调整,且使得机器人的定位精度极高、误差极小。

本发明所述的具有反馈控制功能的机器人包括有控制部、驱动部、运动部件和编码器;所述控制部包括有处理器和存储器;

所述控制部,用于根据运动参数产生控制所述运动部件运动的每个微步的周期值p;

所述驱动部,用于根据所述每个微步的周期值p产生驱动所述运动部件的驱动电流;

所述运动部件,用于根据所述驱动电流进行运动;

所述编码器,用于检测所述运动部件的实际运动数据;

所述存储器存储有计算机程序;

所述处理器用于运行所述计算机程序,以执行如下步骤:

根据所述运动参数、所述编码器的分辨率计算得到所述编码器两线之间的理论微步数值s0、每个理论微步数值对应的理论周期值qn,n为正整数;

实时接收所述编码器的脉冲数据;

根据所述编码器两线之间的理论微步数值s0、每个理论微步数值对应的理论周期值qn、所述编码器当前两线之间的实际微步数值sn计算得到所述编码器当前两线之间的理论时间值tn与实际时间值tqn之间的时间差值dtn;

根据所述时间差值dtn计算得到所述编码器的后两线之间的理论微步数值对应的实际周期值pn+1,作为所述驱动部更新后的周期值p。

为了解决上述技术问题,本发明还提供了一种存储有程序的计算机可读介质,所述程序被包括有控制部、驱动部、运动部件和编码器的机器人运行,可以实时的检测和调整机器人的运动轨迹,不需要将机器人停止、然后再计算和调整,且使得机器人的定位精度极高、误差极小。

本发明所述的存储有程序的计算机可读介质中,所述程序被包括有控制部、驱动部、运动部件和编码器的机器人运行,

所述控制部,用于根据运动参数产生控制所述运动部件运动的每个微步的周期值p;

所述驱动部,用于根据所述每个微步的周期值p产生驱动所述运动部件的驱动电流;

所述运动部件,用于根据所述驱动电流进行运动;

所述编码器,用于检测所述运动部件的实际运动数据;

以执行如下步骤:

根据所述运动参数、所述编码器的分辨率计算得到所述编码器两线之间的理论微步数值s0、每个理论微步数值对应的理论周期值qn,n为正整数;

实时接收所述编码器的脉冲数据;

根据所述编码器两线之间的理论微步数值s0、每个理论微步数值对应的理论周期值qn、所述编码器当前两线之间的实际微步数值sn计算得到所述编码器当前两线之间的理论时间值tn与实际时间值tqn之间的时间差值dtn;

根据所述时间差值dtn计算得到所述编码器的后两线之间的理论微步数值对应的实际周期值pn+1,作为所述驱动部更新后的周期值p。

本发明的机器人通过将用户设置的运动参数解算为编码器两线之间的理论微步数值和周期值,然后实时检测编码器的脉冲数据、得到两线之间的实际运动时间,再计算出编码器两线之间理论的运动时间、二者的差值是当前两线之间的运动误差,然后我们将这个时间差值补偿到后两线之间、改变后两线之间的周期值,使得后两线之间的运动更趋近于理论的运动轨迹,然后再检测下一个两线之间的各种数据,再在后续的两线之间进行补偿,这样就实现了对运动误差的实时补偿,且每个关节均可以自主的检测本身的运动状态,而不需要机器人再次进行整体的运动规划和数据计算,达到了不需要停止机器人即可进行实时补偿的效果,提高了机器人的运动精度、降低了精度误差。

附图说明

图1是本发明的多关节机器人100的结构原理图;

图2是本发明的运动控制系统200的原理框图;

图3是本发明的控制部203的原理框图;

图4是本发明的运动控制系统200执行的流程图;

图5是本发明的反馈控制方法s500的流程图;

图6是本发明的机器人600的原理框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

作为一个具体实施例,结合参考附图1和附图2,附图1示出了多关节机器人100的结构,附图2示出了运动控制系统200的框图。

机器人100是一种四关节机器人,机器人100包括有底座1、大臂2、小臂3,小臂3上还可以连接有腕(附图1中未示出),腕上可以有爪、以实现对物体的抓取等功能,例如专利申请号为201710381661.7的中国专利申请公开了一种物体夹持部,该物体夹持部可以作为爪安装在腕关节上。

在机器人100的各个关节上分别设置有运动部件(电机和减速器),例如在底座1的外壳内设置有一套电机和减速器,减速器的输出轴连接底座1的上盖;底座1的上盖安装大臂2,大臂2的底部设置有另一套电机4和减速器5,减速器5的输出轴连接大臂2的本体;在大臂2的上部设置有另一套电机和减速器,减速器的输出轴连接小臂3的本体;在小臂3的前端还可以设置有另一套电机和减速器,减速器的输出轴连接腕的本体;腕上可以安装各种末端执行器。

底座1内的电机旋转运动可以带动底座1的上盖沿水平方向360度旋转运动、进而带动机器人100的大臂2、小臂3等沿水平方向360度旋转;电机4的旋转运动可以带动大臂2沿s1方向俯向下运动、或沿s2方向后仰向上运动,进而带着小臂3等沿s1或s2方向运动;大臂2上部的电机旋转运动可以带动小臂3进行旋转运动,进而带着腕等旋转运动;小臂3的另一端的电机旋转运动可以带动腕进行旋转运动,进而带着末端执行器进行旋转运动;末端执行器上的电机还可以带动末端执行器进行夹取物体等操作。

通过不同的运动参数控制上述多个电机按用户设定的运动路线运动,就可以实现对机器人100的精确控制,使机器人100完成用户设定的各种功能。

运动控制系统200可以是机器人系统(例如包括机器人100),机器人200包括有机器人控制器201、网关202、控制部203、驱动部204、运动部件205、编码器206等,运动控制系统200可以包括有多个运动部件205(例如机器人100中设置有4个或5个电机),也可以仅包括一个运动部件205;当运动控制系统200包括有多个运动部件205时,每个运动部件205可以分别对应有各自的控制部部203和驱动部204,也可以采用同一个多轴的控制部203和驱动部204同时控制和驱动多个运动部件205。

运动部件205可以是机器人100中的电机4和减速器5的组合,机器人100包括有4-5个电机,那么运动控制系统200就可以包括有4-5个运动部件205,每个运动部件205可以对应有各自的控制部203和驱动部204,所有的运动部件205也可以共同用一个组控制部203和驱动部204来实现控制和驱动,这可以根据控制部203和驱动部204的驱动能力进行设置。

所述机器人控制器201可以是示教器,还可以是安装有上位机软件的电脑,还可以是安装有app的手机/pad等,以实现人机交互,使得用户可以通过机器人控制器201配置运动参数、控制运动部件205的运行状态、显示运动曲线等功能。

网关202是连通机器人控制器201和控制部203的部件,例如可以是usb转can网关、rs232转can网关等,可以将用户通过机器人控制器201设置的运动参数转换为控制部203可读格式的数据、并发送给控制部203,还可以将控制部203产生的各种反馈数据转换为机器人控制器201可读格式的数据、并发送给机器人控制器201。

所述控制部203实现对机器人控制器201发送来的运动参数的解算,将用户设置的运动参数产生控制运动部件运动的每个微步的周期值p(即pwm波形对应的波表数据),作为实际的电机控制数据(一般为pwm波),通过调整pwm波的周期和占空比等数据来调整运动部件205的运动状态。

驱动部204是运动部件205(电机)的驱动单元,可以根据控制部203产生的实际的电机控制数据产生对应的驱动电流、以驱动电机运动。

其中,控制部203和驱动部204共同构成了运动控制部件,运动控制部件安装在机器人100上可以作为机器人100上的各个电机的驱控机构,运动控制部件也可以单独与电机(或者电机与减速器的结合)等连接在一起构成其他形式的运动控制系统。

编码器206设置在运动部件205的输出端的转轴上、检测运动部件205的实际运动数据。编码器206可以直接设置在电机和/或减速器的输出轴上,当电机和/或减速器通过传动机构(例如皮带等)连接有其他转轴时、编码器206也可以设置在其他转轴上,编码器206还可以设置在丝杠上检测丝杠的实际运动数据,等等。

编码器206跟随运动部件205运动,检测运动部件的实际运动数据。具体的,编码器206在跟随运动部件205运动时、可以实时产生脉冲数据,每个脉冲表示一个码值,编码器206的分辨率通常是用户可设或可选的,例如一款单圈2000线的编码器表示旋转一周最大可以反馈2000个脉冲数据,用户可以将其分辨率调整为1000线、表示编码器每旋转一周反馈1000个脉冲数据(或返回2000个脉冲数据、但仅处理1000个脉冲数据),编码器每返回一个脉冲数据通常表示为1线,每两线之间是一个完整的脉冲。因此,用户如果设置好了运动参数、编码器的分辨率等数据,编码器206就可以正确的反馈运动部件205的实际位置。

在机器人100实际运行时,例如用户通过机器人控制器201设定了一组运动参数,使得电机4带动大臂2沿s1方向俯向下运动15度,控制部203会将用户设置的运动参数计算为电机4运动的微步数,例如电机运动10000微步为减速器5旋转15度,减速器5旋转15度即会带动大臂2运动15度,减速器5的转轴上安装的编码器对应产生相应的理论脉冲数据,因此控制部203将这15度换算为电机4的10000微步。

在本实施例中,结合参考附图3,所述控制部203包括有第一计算部301、检测部302、第二计算部303、调整部304。

当用户需要运动控制系统200工作时,首先通过机器人控制器201设置各种运动参数,运动参数可以包括有设备参数、运动控制参数、传动参数、编码器参数等与运动部件205和运动控制部件相关的各种参数,第一计算部301可以将用户设置的运动参数、编码器的分辨率计算得到编码器两线之间的理论微步数值s0以及每个理论微步数值对应的理论周期值qn,n为正整数。

例如,运动部件205为电机4和减速器5的组合时,用户可以设置减速器的输出轴的旋转角度(通常称为p)、旋转速度(通常称为v)、旋转时间(通常称为t),其中:

p一般是指减速器5的输出轴的旋转角度,电机输出轴的转速与减速器的输出轴的转速具有一个固定的减速比,所述减速比是减速器固有参数或用户可设,例如一款电机的输出轴的转速为1500r/min,减速器的输出轴的转速为25r/min,那么该减速器的减速比为60:1,此时p是指减速器的输出轴的旋转角度,需要解算为电机的旋转角度后才能控制电机的运动、以达到带动减速器按运动参数进行运动的目的;

v一般是指与电机4连接的减速器5的输出轴的旋转速度(单位为度/秒),电机输出轴的转速与减速器的转速按减速比60:1换算后才能得到电机4的运动参数;

t即为时间(单位秒),即为电机4开始运动后的时间点,电机开始运动时为0,设定一个时间t后即为电机4或减速器5运动到的某时刻,因此一般情况下下一条pvt的时间t要大于上一条的时;

有时用户只需要设置p和t即可,速度v根据p和t即可解算成合适的值。

编码器206的分辨率通常是用户可设或可选的,例如一款单圈2000线的编码器表示旋转一周最大可以反馈2000个脉冲数据,用户可以将其分辨率调整为1000线、表示编码器每旋转一周反馈1000个脉冲数据(或返回2000个脉冲数据、但仅处理1000个脉冲数据),编码器每返回一个脉冲数据通常表示为1线,每两线之间是一个完整的脉冲。

以编码器206的分辨率为1000线为例,减速器5的输出轴为25r/min时,表示减速器5每转一圈用时2.4s(秒),因此编码器每2.4ms(毫秒)反馈一个脉冲数据,即两线之间的时间为2.4ms,根据电机4的步距角等数据可以计算出2.4ms内电机4需要的驱动电流的数量(即理论微步数值s0)和驱动电流的大小(即对应的理论周期值qn)。

检测部302实时接收编码器206反馈的脉冲数据,每个脉冲数据表示编码器206在对应的两线间运动的实际时间tqn,还可以检测到在每个脉冲内电机4实际运动的微步数值sn。

第二计算部303则根据编码器206两线之间的理论微步数值s0、每个理论微步数值s0对应的理论周期值qn、编码器206当前两线之间的实际微步数值sn计算出编码器206当前两线之间的理论时间值tn和实际时间值qn之间的时间差值dtn,这个时间差值就表示编码器206的当前两线之间的实际运动的情况与理论运动的情况之间的误差,检测到该误差后就可以对该误差进行补偿。

调整部304可以根据上述时间差值dtn计算得到编码器206的后两线之间的理论微步数值s0对应的实际周期值pn+1,一旦编码器206的当前两线存在运动误差,这个实际周期值pn+1与第一计算部301解算得到的理论周期值qn+1大小不同,即实际周期值pn+1是对理论周期值qn+1的修正。

通过上述论述可以看出,本发明实时的检测编码器206每两线之间的实际运动数据,根据运动误差来修正后两线之间的理论运动数据,使得后两线之间的运动轨迹更靠近用户实际需要的运动轨迹,再根据后两线之间的实际运动数据计算得到后两线的后两线之间的实际运动数据,对后两线的运动误差(或者还包括当前两线之间未能完全补偿到的误差)继续进行实时补偿,整个过程是一个实时检测、实时补偿的过程,而不是现有技术中的每隔一段时间再进行修正的方式;当运动控制系统200包括有多个运动部件205时(例如多关节机器人100包括有4-5个电机),每个运动部件205可以由各自对应的控制部203进行实时计算和补偿,而不需要将每个运动部件205的状态上报给机器人控制器201、再由机器人控制器201进行统一的计算处理、计算得到全新的各个运动部件205的运动数据,再用新的运动数据去驱控各个运动部件205,使得本发明的实时反馈控制效果更好,使机器人100的定位精度极高、误差极小。

作为一种举例说明,第一计算部301计算得到的编码器206每两线之间的理论微步数值s0是相等的,即第一计算部301计算得到的第一和第二线之间、第二和第三线之间、第n和第n+1线之间的所有的理论微步数值s0都是相等的,这就使得运动部件205在每两线之间的运动的微步数是均分的,易于计算和补偿。

作为一种变形,第一计算部301计算得到的编码器206每两线之间的理论微步数值s0也可以是不相等的,也可以达到本发明的精确反馈控制的目的。

作为又一种举例说明,第一计算部301计算得到的每个理论微步数值对应的理论周期还在编码器206的两线之间是相等的,即第一计算部301计算得到的第一和第二线之间的理论周期值相等、运动部件205在第一和第二线之间是匀速运动的;运动部件205在第二线和第三线之间是匀速运动的……,但编码器的第一线和第二线之间与第二线和第三线之间并不必须是匀速运动的,这使得运动部件205的控制和反馈控制更容易实现。

作为一种变形,第一计算部301计算得到的每个理论微步数值对应的理论周期还在编码器206的两线之间也可以是不相等的,即运动部件205在每两线之间的运动不是匀速运动,可以是变速运动。

作为又一种举例说明,编码器206的后两线之间的理论微步数值s0对应的实际周期值pn+1为:编码器206后两线之间的理论时间值tn+1与编码器206当前两线之间的所述时间差值dtn的差值、再除以所述理论微步数值s0。通过这种方法可以方便的计算得到后两线之间的理论微步数值对应的实际周期值pn+1,方便进行误差补偿。

作为一种变形,编码器206的后两线之间的理论微步数值s0对应的实际周期值pn+1还可以为:编码器206后两线之间的理论微步数值对应的理论周期值qn+1减去编码器206当前两线之间的所述时间差值dtn与所述理论微步数值s0的比值,也可以方便的进行误差补偿。

作为又一种具体实施例,运动控制系统200中的控制部203是由芯片实现的,例如dsp芯片、arm芯片、fgpa芯片、gpu芯片或者各种芯片的组合。本发明的实现反馈控制可以是在控制部203内实现一系列的步骤,结合参考附图4,用户通过机器人控制器201设置了运动参数后,通过网关202发送给控制部203,控制部203根据用户设置的各种运动参数自主实现对各个运动部件205的控制以及利用编码器206实现反馈控制,包括:

步骤s401:根据所述运动参数、所述编码器206的分辨率计算得到所述编码器206两线之间的理论微步数值s0、每个理论微步数值对应的理论周期值qn,n为正整数;

例如,运动部件205为电机4和减速器5的组合时,用户可以设置减速器的输出轴的旋转角度(通常称为p)、旋转速度(通常称为v)、旋转时间(通常称为t),其中:

p一般是指减速器5的输出轴的旋转角度,电机输出轴的转速与减速器的输出轴的转速具有一个固定的减速比,所述减速比是减速器固有参数或用户可设,例如一款电机的输出轴的转速为1500r/min,减速器的输出轴的转速为25r/min,那么该减速器的减速比为60:1,此时p是指减速器的输出轴的旋转角度,需要解算为电机的旋转角度后才能控制电机的运动、以达到带动减速器按运动参数进行运动的目的;

v一般是指与电机4连接的减速器5的输出轴的旋转速度(单位为度/秒),电机输出轴的转速与减速器的转速按减速比60:1换算后才能得到电机4的运动参数;

t即为时间(单位秒),即为电机4开始运动后的时间点,电机开始运动时为0,设定一个时间t后即为电机4或减速器5运动到的某时刻,因此一般情况下下一条pvt的时间t要大于上一条的时;

有时用户只需要设置p和t即可,速度v根据p和t即可解算成合适的值。

编码器206的分辨率通常是用户可设或可选的,例如一款单圈2000线的编码器表示旋转一周最大可以反馈2000个脉冲数据,用户可以将其分辨率调整为1000线、表示编码器每旋转一周反馈1000个脉冲数据(或返回2000个脉冲数据、但仅处理1000个脉冲数据),编码器每返回一个脉冲数据通常表示为1线,每两线之间是一个完整的脉冲。

以编码器206的分辨率为1000线为例,减速器5的输出轴为25r/min时,表示减速器5每转一圈用时2.4s(秒),因此编码器每2.4ms(毫秒)反馈一个脉冲数据,即两线之间的时间为2.4ms,根据电机4的步距角等数据可以计算出2.4ms内电机4需要的驱动电流的数量(即理论微步数值s0)和驱动电流的大小(即对应的理论周期值qn)。

控制部203根据上述解算得到的从开始到编码器206反馈第一个脉冲(即开始到第一线)产生对应的运动数据,驱动部204即根据接收到的运动数据产生驱动电流,驱动运动部件205运动,编码器206跟随运动部件205而运动,并实时反馈脉冲数据。

步骤s402:实时接收所述编码器的脉冲数据,每个脉冲数据表示编码器206在对应的两线间运动的实际时间tqn,还可以检测到在每个脉冲内电机4实际运动的微步数值sn。

步骤s403:根据所述编码器206两线之间的理论微步数值s0、每个理论微步数值对应的理论周期值qn、所述编码器206当前两线之间的实际微步数值sn计算得到所述编码器206当前两线之间的理论时间值tn与实际时间值tqn之间的时间差值dtn,检测到该误差后就可以对该误差进行补偿。

步骤s404:根据所述时间差值dtn计算得到所述编码器的后两线之间的理论微步数值对应的实际周期值pn+1,作为所述驱动部更新后的周期值p。一旦编码器206的当前两线存在运动误差,这个实际周期值pn+1与解算得到的理论周期值qn+1大小不同,即实际周期值pn+1是对理论周期值qn+1的修正。

通过上述论述可以看出,本发明实时的检测编码器206每两线之间的实际运动数据,根据运动误差来修正后两线之间的理论运动数据,使得后两线之间的运动轨迹更靠近用户实际需要的运动轨迹,再根据后两线之间的实际运动数据计算得到后两线的后两线之间的实际运动数据,对后两线的运动误差(或者还包括当前两线之间未能完全补偿到的误差)继续进行实时补偿,整个过程是一个实时检测、实时补偿的过程,而不是现有技术中的每隔一段时间再进行修正的方式;当运动控制系统200包括有多个运动部件205时(例如多关节机器人100包括有4-5个电机),每个运动部件205可以由各自对应的控制部203进行实时计算和补偿,而不需要将每个运动部件205的状态上报给机器人控制器201、再由机器人控制器201进行统一的计算处理、计算得到全新的各个运动部件205的运动数据,再用新的运动数据去驱控各个运动部件205,使得本发明的实时反馈控制效果更好,使机器人100的定位精度极高、误差极小。

作为一种举例说明,步骤s401中计算得到的编码器206每两线之间的理论微步数值s0是相等的,即计算得到的第一和第二线之间、第二和第三线之间、第n和第n+1线之间的所有的理论微步数值s0都是相等的,这就使得运动部件205在每两线之间的运动的微步数是均分的,易于计算和补偿。

作为一种变形,步骤s401中计算得到的编码器206每两线之间的理论微步数值s0也可以是不相等的,也可以达到本发明的精确反馈控制的目的。

作为又一种举例说明,步骤s401中计算得到的每个理论微步数值对应的理论周期还在编码器206的两线之间是相等的,即计算得到的第一和第二线之间的理论周期值相等、运动部件205在第一和第二线之间是匀速运动的;运动部件205在第二线和第三线之间是匀速运动的……,但编码器的第一线和第二线之间与第二线和第三线之间并不必须是匀速运动的,这使得运动部件205的控制和反馈控制更容易实现。

作为一种变形,步骤s401中计算得到的每个理论微步数值对应的理论周期还在编码器206的两线之间也可以是不相等的,即运动部件205在每两线之间的运动不是匀速运动,可以是变速运动。

作为又一种举例说明,编码器206的后两线之间的理论微步数值s0对应的实际周期值pn+1为:编码器206后两线之间的理论时间值tn+1与编码器206当前两线之间的所述时间差值dtn的差值、再除以所述理论微步数值s0。通过这种方法可以方便的计算得到后两线之间的理论微步数值对应的实际周期值pn+1,方便进行误差补偿。

作为一种变形,编码器206的后两线之间的理论微步数值s0对应的实际周期值pn+1还可以为:编码器206后两线之间的理论微步数值对应的理论周期值qn+1减去编码器206当前两线之间的所述时间差值dtn与所述理论微步数值s0的比值,也可以方便的进行误差补偿。

作为又一种具体实施例,结合参考附图5,本发明还提供了反馈控制方法s500,应用于机器人100,包括有步骤:

s501:控制部203根据运动参数、编码器206的分辨率计算得到编码器206两线之间的理论微步数值s0、每个理论微步数值对应的理论周期值qn,n为正整数。

例如,运动部件205为电机4和减速器5的组合时,用户可以设置减速器的输出轴的旋转角度(通常称为p)、旋转速度(通常称为v)、旋转时间(通常称为t),其中:

p一般是指减速器5的输出轴的旋转角度,电机输出轴的转速与减速器的输出轴的转速具有一个固定的减速比,所述减速比是减速器固有参数或用户可设,例如一款电机的输出轴的转速为1500r/min,减速器的输出轴的转速为25r/min,那么该减速器的减速比为60:1,此时p是指减速器的输出轴的旋转角度,需要解算为电机的旋转角度后才能控制电机的运动、以达到带动减速器按运动参数进行运动的目的;

v一般是指与电机4连接的减速器5的输出轴的旋转速度(单位为度/秒),电机输出轴的转速与减速器的转速按减速比60:1换算后才能得到电机4的运动参数;

t即为时间(单位秒),即为电机4开始运动后的时间点,电机开始运动时为0,设定一个时间t后即为电机4或减速器5运动到的某时刻,因此一般情况下下一条pvt的时间t要大于上一条的时;

有时用户只需要设置p和t即可,速度v根据p和t即可解算成合适的值。

编码器206的分辨率通常是用户可设或可选的,例如一款单圈2000线的编码器表示旋转一周最大可以反馈2000个脉冲数据,用户可以将其分辨率调整为1000线、表示编码器每旋转一周反馈1000个脉冲数据(或返回2000个脉冲数据、但仅处理1000个脉冲数据),编码器每返回一个脉冲数据通常表示为1线,每两线之间是一个完整的脉冲。

以编码器206的分辨率为1000线为例,减速器5的输出轴为25r/min时,表示减速器5每转一圈用时2.4s(秒),因此编码器每2.4ms(毫秒)反馈一个脉冲数据,即两线之间的时间为2.4ms,根据电机4的步距角等数据可以计算出2.4ms内电机4需要的驱动电流的数量(即理论微步数值s0)和驱动电流的大小(即对应的理论周期值qn)。

控制部203根据上述解算得到的从开始到编码器206反馈第一个脉冲(即开始到第一线)产生对应的运动数据,驱动部204即根据接收到的运动数据产生驱动电流,驱动运动部件205运动,编码器206跟随运动部件205而运动,并实时反馈脉冲数据。

步骤s502:编码器206将产生的脉冲数据实时发送给控制部203,控制部203实时接收到编码器206产生的脉冲数据,每个脉冲数据表示编码器206在对应的两线间运动的实际时间tqn,还可以检测到在每个脉冲内电机4实际运动的微步数值sn。

步骤s503:控制部203根据所述编码器206两线之间的理论微步数值s0、每个理论微步数值对应的理论周期值qn、编码器206当前两线之间的实际微步数值sn计算得到编码器206当前两线之间的理论时间值tn与实际时间值tqn之间的时间差值dtn,检测到该误差后就可以对该误差进行补偿。

步骤s504:控制部203根据所述时间差值dtn计算得到编码器206的后两线之间的理论微步数值对应的实际周期值pn+1,作为驱动部204更新后的周期值p,一旦编码器206的当前两线存在运动误差,这个实际周期值pn+1与解算得到的理论周期值qn+1大小不同,即实际周期值pn+1是对理论周期值qn+1的修正。

步骤s505:驱动部203根据所述周期值p产生驱动运动部件205的驱动电流,驱动电流与控制部203计算得到的理论微步数值s0和实际周期值pn+1是对应的。

步骤s506:运动部件205根据驱动电流进行运动,带动机器人100的各个关节按照用户设定的运动参数进行运动。

通过上述论述可以看出,本发明实时的检测编码器206每两线之间的实际运动数据,根据运动误差来修正后两线之间的理论运动数据,使得后两线之间的运动轨迹更靠近用户实际需要的运动轨迹,再根据后两线之间的实际运动数据计算得到后两线的后两线之间的实际运动数据,对后两线的运动误差(或者还包括当前两线之间未能完全补偿到的误差)继续进行实时补偿,整个过程是一个实时检测、实时补偿的过程,而不是现有技术中的每隔一段时间再进行修正的方式;当机器人100包括有多个运动部件205时(例如包括有4-5个电机),每个运动部件205可以由各自对应的控制部203进行实时计算和补偿,而不需要将每个运动部件205的状态上报给机器人控制器201、再由机器人控制器201进行统一的计算处理、计算得到全新的各个运动部件205的运动数据,再用新的运动数据去驱控各个运动部件205,使得本发明的实时反馈控制效果更好,使机器人100的定位精度极高、误差极小。

作为一种举例说明,步骤s501中控制部203计算得到的编码器206每两线之间的理论微步数值s0是相等的,即计算得到的第一和第二线之间、第二和第三线之间、第n和第n+1线之间的所有的理论微步数值s0都是相等的,这就使得运动部件205在每两线之间的运动的微步数是均分的,易于计算和补偿。

作为一种变形,步骤s501中控制部203计算得到的编码器206每两线之间的理论微步数值s0也可以是不相等的,也可以达到本发明的精确反馈控制的目的。

作为又一种举例说明,步骤s501中控制部203计算得到的每个理论微步数值对应的理论周期还在编码器206的两线之间是相等的,即计算得到的第一和第二线之间的理论周期值相等、运动部件205在第一和第二线之间是匀速运动的;运动部件205在第二线和第三线之间是匀速运动的……,但编码器206的第一线和第二线之间与第二线和第三线之间并不必须是匀速运动的,这使得运动部件205的控制和反馈控制更容易实现。

作为一种变形,步骤s501中计算得到的每个理论微步数值对应的理论周期还在编码器206的两线之间也可以是不相等的,即运动部件205在每两线之间的运动不是匀速运动,可以是变速运动。

作为又一种举例说明,编码器206的后两线之间的理论微步数值s0对应的实际周期值pn+1为:编码器206后两线之间的理论时间值tn+1与编码器206当前两线之间的所述时间差值dtn的差值、再除以所述理论微步数值s0。通过这种方法可以方便的计算得到后两线之间的理论微步数值对应的实际周期值pn+1,方便进行误差补偿。

作为一种变形,编码器206的后两线之间的理论微步数值s0对应的实际周期值pn+1还可以为:编码器206后两线之间的理论微步数值对应的理论周期值qn+1减去编码器206当前两线之间的所述时间差值dtn与所述理论微步数值s0的比值,也可以方便的进行误差补偿。

作为又一种示例性实施例,结合参考附图6,本发明还提供了又一种具有反馈控制功能的机器人600,与机器人100和运动控制系统200相同的是,机器人600同样包括有机器人200包括有机器人控制器201、网关202、控制部203、驱动部204、运动部件205、编码器206等,不同的是控制部203包括有处理器207和存储器208。

其中存储器208中存储有计算机程序,所述计算机程序可以被处理器207运行以执行步骤s401-步骤s404,实现对机器人600的反馈控制。

作为又一种示例性实施例,本发明还提供了一种存储有程序的计算机可读介质,所述程序被包括有控制部203、驱动部204、运动部件205和编码器206的机器人100或机器人600运行,以执行步骤s401-步骤s404,实现对机器人100或机器人600的反馈控制。

本发明提供的具有反馈控制功能的机器人将用户设置的运动参数解算为编码器的每两线之间的微步数和每个微步数对应的周期值,然后驱动部根据解算得到的周期值产生驱动电流、驱动运动部件运动;在此过程中,控制部还利用接受到的编码器反馈的脉冲数据计算当前两线之间的实际运动情况与理论运动情况的误差,然后将这个误差补偿到后两线之间的运动数据中,再检测到后两线之间的编码器反馈的脉冲数据时、再次计算后两线之间的实际运动情况与理论运动情况的误差,然后将这个误差再次补偿到后两线的后两线的运动数据中,并依次进行实时补偿,达到了根据运动部件的当前运动状态进行实时补偿修正的目的,这样机器人在运动过程中的实际运动轨迹与理论运动轨迹之间的误差是被实时补偿的,机器人的定位精度极高、运动误差极小,且不需要机器人停止后再进行补偿计算,解决了背景技术中存在的技术问题。

以上所述的仅为本发明的具体实施例,所应理解的是,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想,并不用于限定本发明的保护范围,凡在本发明的思想和原则之内所做的任何修改、等同替换等等,均应包含在本发明的保护范围之内。

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