CN108481322B - 具有精确控制功能的机器人、运动控制部件、方法和介质 - Google Patents
具有精确控制功能的机器人、运动控制部件、方法和介质 Download PDFInfo
- Publication number
- CN108481322B CN108481322B CN201810178959.2A CN201810178959A CN108481322B CN 108481322 B CN108481322 B CN 108481322B CN 201810178959 A CN201810178959 A CN 201810178959A CN 108481322 B CN108481322 B CN 108481322B
- Authority
- CN
- China
- Prior art keywords
- encoder
- line
- micro
- stepping
- theoretical
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Manipulator (AREA)
Abstract
一种具有精确控制功能的机器人,包括有:控制部、驱动部、运动部件、编码器,控制部包括有解算单元、波表、计算调整单元,解算单元,用于根据运动参数、编码器的分辨率解算得到一组波表数据、以及编码器两线之间的理论微步数值,波表数据表示编码器每两线之间的理论时间值;波表,用于存储波表数据;计算调整单元,用于依据波表取出的编码器当前两线之间的波表数据、编码器两线之间的理论微步数值、编码器检测到的当前两线之间的实际运动时间计算得到编码器的后两线之间的每个微步对应的实际周期值,作为驱动部更新后的周期值。本发明提供的机器人不需要将机器人停止、然后再计算和调整,可以达到精确控制的目的,误差极小。
Description
技术领域
本发明涉及多关节机器人领域,特别是一种具有精确控制功能的机器人、一种精确控制方法、一种具有精确控制功能的运动控制部件和一种存储有程序的计算机可读介质。
背景技术
在运动控制领域,电机等运动部件是实现运动控制的核心部件,比如机器人的运行就需要电机配合丝杠或减速器等作为运动执行部件来带动机器人运动。
以电机配合减速器为例,电机配合减速器是多关节机器人(或称为多关节机械手、多轴机器人、机械臂等)的主要运动执行部件,多关节机器人主要是根据预定的路线从一个初始位置夹取目标物体到目标位置,适用于诸多工业领域的机械自动化作业。
现在市场上的多关节机器人主要包括四轴机器人(具有四个关节)和六轴机器人(具有六个关节),他们均包括有基座、手臂和末端的物体夹持部,手臂上关节的多少决定了机器人的“轴”的数量,每一个关节都是由一个电机的转动来驱动、以实现关节的运动。
目前,用户需要通过人机交互设备(如电脑、示教器等)实现对多关节机器人的参数设定和控制,目前市场上的人机交互设备大都是针对机器人整体而设计,用户一般通过编辑每个关节的运动参数实现对机器人的运动控制,所述的运动参数实际上是控制运动部件(如电机)的运动参数,用户编辑机器人的运动参数后,发送给机器人本体的运动控制部件(或称为驱控器等),运动控制部件对接收到的运动参数进行解算后控制运动部件运动,如专利申请号为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,所述波表数据表示所述编码器每两线之间的理论时间值Tn,n为正整数;
所述波表,用于存储所述波表数据;
所述计算调整单元,用于依据所述波表取出的所述编码器当前两线之间的波表数据、所述编码器两线之间的理论微步数值S0、所述编码器检测到的当前两线之间的实际运动时间TQn计算得到所述编码器的后两线之间的每个微步对应的实际周期值Pn+1,作为所述驱动部更新后的周期值P。
作为一种举例说明,本发明所述的具有精确控制功能的机器人中,所述计算调整单元包括有计时单元,用于对所述编码器检测到的实际运动数据进行计时,得到所述编码器当前两线之间的实际运动时间TQn。
作为又一种举例说明,本发明所述的具有精确控制功能的机器人中,所述计算调整单元还包括有计算单元和调整单元;
所述计算单元,用于计算得到所述编码器当前两线之间的理论时间值Tn与实际运动时间TQn之间的时间差值DTn;
所述调整单元,用于根据所述时间差值DTn、所述编码器两线之间的理论微步数值S0、所述编码器后两线之间的理论时间值Tn+1计算得到所述编码器后两线之间的每个微步对应的所述实际周期值Pn+1,作为所述驱动部更新后的周期值P。
作为又一种举例说明,本发明所述的具有精确控制功能的机器人中,所述编码器的后两线之间的每个微步对应的实际周期值Pn+1为:所述编码器后两线之间的理论时间值Tn+1与所述编码器当前两线之间的所述时间差值DTn的差值、再除以所述理论微步数值S0。
作为又一种举例说明,本发明所述的具有精确控制功能的机器人中,所述计算调整单元由FPGA芯片实现。
作为又一种举例说明,本发明所述的具有精确控制功能的机器人中,所述编码器每两线之间的理论微步数值S0是相等的。
作为又一种举例说明,本发明所述的具有精确控制功能的机器人中,所述编码器的两线之间的每个微步对应的实际周期值Pn是相等的。
为了解决上述技术问题,本发明还提供一种精确控制方法,应用于机器人,可以实时的检测和调整机器人的运动轨迹,不需要将机器人停止、然后再计算和调整,可以达到精确控制的目的,误差极小。
本发明提供的精确控制方法应用于机器人,所述机器人包括有依序设置的控制部、驱动部、运动部件和编码器;
所述方法包括:
根据运动参数、所述编码器的分辨率解算得到一组波表数据、以及所述编码器两线之间的理论微步数值S0,所述波表数据表示所述编码器每两线之间的理论时间值Tn,n为正整数;
对所述编码器检测到的实际运动数据进行计时,得到所述编码器当前两线之间的实际运动时间TQn;
依据所述编码器当前两线之间的波表数据、所述编码器两线之间的理论微步数值S0、所述编码器检测到的当前两线之间的实际运动时间TQn计算得到所述编码器的后两线之间的每个微步对应的实际周期值Pn+1,作为所述驱动部更新后的周期值P。
作为一种举例说明,本发明所述的精确控制方法中,依据所述编码器当前两线之间的波表数据、所述编码器两线之间的理论微步数值S0、所述编码器检测到的当前两线之间的实际运动时间TQn计算得到所述编码器的后两线之间的每个微步对应的实际周期值Pn+1包括:
首先计算得到所述编码器当前两线之间的理论时间值Tn与实际运动时间TQn之间的时间差值DTn;
然后根据所述时间差值DTn、所述编码器两线之间的理论微步数值S0、所述编码器后两线之间的理论时间值Tn+1计算得到所述编码器后两线之间的每个微步对应的所述实际周期值Pn+1,作为所述驱动部更新后的周期值P。
作为又一种举例说明,本发明所述的精确控制方法中,所述编码器的后两线之间的每个微步对应的实际周期值Pn+1为:所述编码器后两线之间的理论时间值Tn+1与所述编码器当前两线之间的所述时间差值DTn的差值、再除以所述理论微步数值S0。
为了解决上述技术问题,本发明还提供一种具有精确控制功能的运动控制部件,用于依据控制参数控制运动部件运动,可以实时的检测和调整运动部件的运动轨迹,不需要将运动部件停止、然后再计算和调整,可以达到精确控制的目的,误差极小。
本发明所述的具有精确控制功能的运动控制部件用于依据控制参数控制运动部件运动,所述运动部件的输出端设置有检测所述运动部件的实际运动数据的编码器;
所述运动控制部件包括有控制部和驱动部;
所述控制部,用于根据运动参数产生控制所述运动部件运动的每个微步的周期值P;
所述驱动部,用于根据所述每个微步的周期值P产生驱动所述运动部件的驱动电流;
所述控制部包括有解算单元、波表、计算调整单元,
所述解算单元,用于根据所述运动参数、所述编码器的分辨率解算得到一组波表数据、以及所述编码器两线之间的理论微步数值S0,所述波表数据表示所述编码器每两线之间的理论时间值Tn,n为正整数;
所述波表,用于存储所述波表数据;
所述计算调整单元,用于依据所述波表取出的所述编码器当前两线之间的波表数据、所述编码器两线之间的理论微步数值S0、所述编码器检测到的当前两线之间的实际运动时间TQn计算得到所述编码器的后两线之间的每个微步对应的实际周期值Pn+1,作为所述驱动部更新后的周期值P。
作为一种举例说明,本发明所述的具有精确控制功能的运动控制部件中,所述计算调整单元包括有计时单元,用于对所述编码器检测到的实际运动数据进行计时,得到所述编码器当前两线之间的实际运动时间TQn。
作为又一种举例说明,本发明所述的具有精确控制功能的运动控制部件中,所述计算调整单元还包括有计算单元和调整单元;
所述计算单元,用于计算得到所述编码器当前两线之间的理论时间值Tn与实际运动时间TQn之间的时间差值DTn;
所述调整单元,用于根据所述时间差值DTn、所述编码器两线之间的理论微步数值S0、所述编码器后两线之间的理论时间值Tn+1计算得到所述编码器后两线之间的每个微步对应的所述实际周期值Pn+1,作为所述驱动部更新后的周期值P。
作为又一种举例说明,本发明所述的具有精确控制功能的运动控制部件中,所述编码器的后两线之间的每个微步对应的实际周期值Pn+1为:所述编码器后两线之间的理论时间值Tn+1与所述编码器当前两线之间的所述时间差值DTn的差值、再除以所述理论微步数值S0。
作为又一种举例说明,本发明所述的具有精确控制功能的运动控制部件中,所述计算调整单元由FPGA芯片实现。
作为又一种举例说明,本发明所述的具有精确控制功能的运动控制部件中,所述编码器每两线之间的理论微步数值S0是相等的。
作为又一种举例说明,本发明所述的具有精确控制功能的运动控制部件中,所述编码器的两线之间的每个微步对应的实际周期值Pn是相等的。
为了解决上述技术问题,本发明还提供一种存储有程序的计算机可读介质,所述程序被包括有控制部和驱动部的运动控制部件运行以控制运动部件运动,所述运动部件的输出端设置有检测所述运动部件的实际运动数据的编码器;以执行上述精确控制方法。
本发明的机器人通过将用户设置的运动参数解算为编码器两线之间的理论微步数值和周期值,然后实时检测编码器的脉冲数据、得到两线之间的的实际运动时间,再计算出后两线之间的每个微步对应的实际周期值,使得后两线之间的运动更趋近于理论的运动轨迹,然后再检测下一个两线之间的各种数据,再在后续的两线之间进行补偿,这样就实现了对运动误差的实时补偿,且每个关节均可以自主的检测本身的运动状态,而不需要机器人再次进行整体的运动规划和数据计算,达到了不需要停止机器人即可进行实时补偿的效果,达到了精确控制的效果、降低了精度误差。
附图说明
图1是本发明的多关节机器人100的结构原理图;
图2是本发明的运动控制系统200的原理框图;
图3是本发明的自动停止方法S300的流程图;
图4是本发明的运动控制系统200的又一原理框图;
图5是本发明的精确控制方法S500的流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
作为一个具体实施例,结合参考附图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。
当用户需要运动控制系统200工作时,首先通过机器人控制器201设置各种运动参数,运动参数可以包括有设备参数、运动控制参数、传动参数、编码器参数等与运动部件205和运动控制部件相关的各种参数,解算单元301根据所述运动参数、所述编码器206的分辨率解算得到一组波表数据、以及所述编码器206两线之间的理论微步数值S0,所述波表数据表示所述编码器206每两线之间的理论时间值Tn,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)。
因此,解算单元301可以将运动参数等数据解算为一组完整的波表数据,这一组波表数据就表示运动部件205的完整的运动轨迹,现有技术中解算得到的这一组波表数据是不分组、不分段的,后续的一个波形产生单元直接按顺序从波表中取波表数据、依次生成对应的波形数据,驱动部204根据依次接收到的波形数据产生对应的驱动电流,本发明则是按照编码器206的每两线之间作为一组的形式解算得到波表数据。
波表302用于存储波表数据,波表302是由存储器实现的,例如DDR存储器、SSD存储器等。
计算调整单元303则依据所述波表取出的所述编码器206当前两线之间的波表数据、所述编码器206两线之间的理论微步数值S0、所述编码器206检测到的当前两线之间的实际运动时间TQn计算得到所述编码器206的后两线之间的每个微步对应的实际周期值Pn+1,作为所述驱动部204更新后的周期值P。
计算调整单元303根据波表数据、理论微步数值S0和编码器检测到的当前两线之间的实际运动时间TQn计算得到了在当前两线之间、运动部件205的理论运动轨迹与实际运动轨迹之间的误差,然后对这个进行修正,修正是通过计算得到后两线之间的每个微步对应的实际周期值Pn+1来替换理论周期值Qn+1实现的,即实际周期值Pn+1是对理论周期值Qn+1的修正。
通过上述论述可以看出,本发明实时的检测编码器206每两线之间的实际运动数据,根据运动误差来修正后两线之间的理论运动数据,使得后两线之间的运动轨迹更靠近用户实际需要的运动轨迹,再根据后两线之间的实际运动数据计算得到后两线的后两线之间的实际运动数据,对后两线的运动误差(或者还包括当前两线之间未能完全补偿到的误差)继续进行实时补偿,整个过程是一个实时检测、实时补偿的过程,而不是现有技术中的每隔一段时间再进行修正的方式;当运动控制系统200包括有多个运动部件205时(例如多关节机器人100包括有4-5个电机),每个运动部件205可以由各自对应的控制部203进行实时计算和补偿,而不需要将每个运动部件205的状态上报给机器人控制器201、再由机器人控制器201进行统一的计算处理、计算得到全新的各个运动部件205的运动数据,再用新的运动数据去驱控各个运动部件205,使得本发明的实时反馈控制效果更好,使机器人100的定位精度极高、误差极小,是一种精确控制的方案。
作为一种举例说明,所述计算调整单元303包括有计时单元304,计时单元304用于对编码器206检测到的实际运动数据进行计时,得到编码器206当前两线之间的实际运动时间TQn。编码器206产生的实际运动数据是脉冲数据,可以用计时器对编码器206产生的脉冲数据进行计时,得到实际时间值,作为编码器206当前两线之间的实际运动时间TQn。
作为一种变形,所述计算调整单元303还可以采用一个计数器来实现对编码器206产生的实际运动数据进行计时,得到编码器206当前两线之间的实际运动时间TQn。
作为又一种变形,还可以设置有一个单独的计时器(例如计时电路)来实现对编码器206产生的实际运动数据进行计时,然后再将计时的结果发送给计算调整单元303。
作为一种举例说明,结合参考附图3,所述计算调整单元303还包括有计算单元305和调整单元306。
所述计算单元305用于计算得到所述编码器206当前两线之间的理论时间值Tn与实际运动时间TQn之间的时间差值DTn;这个时间差值就表示编码器206的当前两线之间的实际运动的情况与理论运动的情况之间的误差,检测到该误差后就可以对该误差进行补偿。
所述调整单元306用于根据所述时间差值DTn、所述编码器206两线之间的理论微步数值S0、所述编码器206后两线之间的理论时间值Tn+1计算得到所述编码器206后两线之间的每个微步对应的所述实际周期值Pn+1,一旦编码器206的当前两线存在运动误差,这个实际周期值Pn+1与第一计算部301解算得到的理论周期值Qn+1大小不同,即实际周期值Pn+1是对理论周期值Qn+1的修正。
作为一种变形,所述计算调整单元303还可以根据所述编码器当前两线之间的理论时间值Tn、实际运动时间TQn、编码器206两线之间的理论微步数值S0、编码器206后两线之间的理论时间值Tn+1直接计算得到所述编码器206后两线之间的每个微步对应的所述实际周期值Pn+1,而不需要先计算得到编码器206当前两线之间的理论时间值Tn与实际运动时间TQn之间的时间差值DTn,再计算得到编码器后两线之间的每个微步对应的所述实际周期值Pn+1。
作为又一种举例说明,所述编码器206的后两线之间的每个微步对应的实际周期值Pn+1为:所述编码器206后两线之间的理论时间值Tn+1与所述编码器206当前两线之间的所述时间差值DTn的差值、再除以所述理论微步数值S0。通过这种方法可以方便的计算得到后两线之间的理论微步数值对应的实际周期值Pn+1,方便进行误差补偿。
作为一种变形,编码器206的后两线之间的理论微步数值S0对应的实际周期值Pn+1还可以为:编码器206后两线之间的理论微步数值对应的理论周期值Qn+1减去编码器206当前两线之间的所述时间差值DTn与所述理论微步数值S0的比值,也可以方便的进行误差补偿。
作为又一种举例说明,所述计算调整单元303由FPGA芯片实现。
作为一种变形,所述计算调整单元303还可以由DSP芯片实现,或者还可以由ARM芯片实现,或者还可以由多种芯片的组合实现。
作为又一种举例说明,解算单元301计算得到的编码器206每两线之间的理论微步数值S0是相等的,即解算单元301计算得到的第一和第二线之间、第二和第三线之间、第n和第n+1线之间的所有的理论微步数值S0都是相等的,这就使得运动部件205在每两线之间的运动的微步数是均分的,易于计算和补偿。
作为一种变形,解算单元301计算得到的编码器206每两线之间的理论微步数值S0也可以是不相等的,也可以达到本发明的精确反馈控制的目的。
作为又一种举例说明,解算单元301计算得到的每个理论微步数值对应的理论周期还在编码器206的两线之间是相等的,即解算单元301计算得到的第一和第二线之间的理论周期值相等、运动部件205在第一和第二线之间是匀速运动的;运动部件205在第二线和第三线之间是匀速运动的……,但编码器的第一线和第二线之间与第二线和第三线之间并不必须是匀速运动的,这使得运动部件205的控制和反馈控制更容易实现。
作为一种变形,解算单元301计算得到的每个理论微步数值对应的理论周期还在编码器206的两线之间也可以是不相等的,即运动部件205在每两线之间的运动不是匀速运动,可以是变速运动。
作为又一种具体实施例,结合参考附图4,本发明还提供了一种具有精确控制功能的运动控制部件401,实际上运动控制部件401是由机器人100中的控制部203和驱动部204组成的,运动控制部件401可以用在机器人100中、作为机器人100中的运动部件205(例如电机4)的控制和驱动部分;运动控制部件401也可以单独连接到运动部件、作为单独的运动部件的控制和驱动部分,例如在一个测试减速器的系统中,运动控制部件401可以驱动电机、进而带动减速器运动,在减速器的输出轴上可以设置有编码器206作为检测部件。
同样的,在实际应用时,运动控制部件401、运动部件205、编码器206等可以组成一个运动控制系统(例如运动控制系统200),还可以包括有运动控制部件控制器(替代附图1中的机器人控制器201)和网关202。
所述运动控制部件控制器可以是示教器,还可以是安装有上位机软件的电脑,还可以是安装有APP的手机/Pad等,以实现人机交互,使得用户可以通过运动控制部件控制器配置运动参数、控制运动部件205的运行状态、显示运动曲线等功能。
网关202是连通运动控制部件控制器和运动控制部件401的部件,例如可以是USB转CAN网关、RS232转CAN网关等,可以将用户通过运动控制部件控制器设置的运动参数转换为运动控制部件401可读格式的数据、并发运动控制部件401,还可以将运动控制部件401产生的各种反馈数据转换为运动控制部件控制器可读格式的数据、并发送给运动控制部件控制器。
所述控制部203实现对运动控制部件控制器发送来的运动参数的解算,将用户设置的运动参数产生控制运动部件运动的每个微步的周期值P(即PWM波形对应的波表数据),作为实际的电机控制数据(一般为PWM波),通过调整PWM波的周期和占空比等数据来调整运动部件205的运动状态。
驱动部204是运动部件205(电机)的驱动单元,可以根据控制部203产生的实际的电机控制数据产生对应的驱动电流、以驱动电机运动。
编码器206设置在运动部件205的输出端的转轴上、检测运动部件205的实际运动数据。编码器206可以直接设置在电机和/或减速器的输出轴上,当电机和/或减速器通过传动机构(例如皮带等)连接有其他转轴时、编码器206也可以设置在其他转轴上,编码器206还可以设置在丝杠上检测丝杠的实际运动数据,等等。
编码器206跟随运动部件205运动,检测运动部件的实际运动数据。具体的,编码器206在跟随运动部件205运动时、可以实时产生脉冲数据,每个脉冲表示一个码值,编码器206的分辨率通常是用户可设或可选的,例如一款单圈2000线的编码器表示旋转一周最大可以反馈2000个脉冲数据,用户可以将其分辨率调整为1000线、表示编码器每旋转一周反馈1000个脉冲数据(或返回2000个脉冲数据、但仅处理1000个脉冲数据),编码器每返回一个脉冲数据通常表示为1线,每两线之间是一个完整的脉冲。因此,用户如果设置好了运动参数、编码器的分辨率等数据,编码器206就可以正确的反馈运动部件205的实际位置。
下面以运动控制部件401是机器人100中的一个组成部分进行更详细的说明。
在机器人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。
当用户需要运动控制系统200工作时,首先通过机器人控制器201设置各种运动参数,运动参数可以包括有设备参数、运动控制参数、传动参数、编码器参数等与运动部件205和运动控制部件相关的各种参数,解算单元301根据所述运动参数、所述编码器206的分辨率解算得到一组波表数据、以及所述编码器206两线之间的理论微步数值S0,所述波表数据表示所述编码器206每两线之间的理论时间值Tn,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)。
因此,解算单元301可以将运动参数等数据解算为一组完整的波表数据,这一组波表数据就表示运动部件205的完整的运动轨迹,现有技术中解算得到的这一组波表数据是不分组、不分段的,后续的一个波形产生单元直接按顺序从波表中取波表数据、依次生成对应的波形数据,驱动部204根据依次接收到的波形数据产生对应的驱动电流,本发明则是按照编码器206的每两线之间作为一组的形式解算得到波表数据。
波表302用于存储波表数据,波表302是由存储器实现的,例如DDR存储器、SSD存储器等。
计算调整单元303则依据所述波表取出的所述编码器206当前两线之间的波表数据、所述编码器206两线之间的理论微步数值S0、所述编码器206检测到的当前两线之间的实际运动时间TQn计算得到所述编码器206的后两线之间的每个微步对应的实际周期值Pn+1,作为所述驱动部204更新后的周期值P。
计算调整单元303根据波表数据、理论微步数值S0和编码器检测到的当前两线之间的实际运动时间TQn计算得到了在当前两线之间、运动部件205的理论运动轨迹与实际运动轨迹之间的误差,然后对这个进行修正,修正是通过计算得到后两线之间的每个微步对应的实际周期值Pn+1来替换理论周期值Qn+1实现的,即实际周期值Pn+1是对理论周期值Qn+1的修正。
通过上述论述可以看出,本发明实时的检测编码器206每两线之间的实际运动数据,根据运动误差来修正后两线之间的理论运动数据,使得后两线之间的运动轨迹更靠近用户实际需要的运动轨迹,再根据后两线之间的实际运动数据计算得到后两线的后两线之间的实际运动数据,对后两线的运动误差(或者还包括当前两线之间未能完全补偿到的误差)继续进行实时补偿,整个过程是一个实时检测、实时补偿的过程,而不是现有技术中的每隔一段时间再进行修正的方式;当运动控制系统200包括有多个运动部件205时(例如多关节机器人100包括有4-5个电机),每个运动部件205可以由各自对应的控制部203进行实时计算和补偿,而不需要将每个运动部件205的状态上报给机器人控制器201、再由机器人控制器201进行统一的计算处理、计算得到全新的各个运动部件205的运动数据,再用新的运动数据去驱控各个运动部件205,使得本发明的实时反馈控制效果更好,使机器人100的定位精度极高、误差极小,是一种精确控制的方案。
作为一种举例说明,所述计算调整单元303包括有计时单元304,计时单元304用于对编码器206检测到的实际运动数据进行计时,得到编码器206当前两线之间的实际运动时间TQn。编码器206产生的实际运动数据是脉冲数据,可以用计时器对编码器206产生的脉冲数据进行计时,得到实际时间值,作为编码器206当前两线之间的实际运动时间TQn。
作为一种变形,所述计算调整单元303还可以采用一个计数器来实现对编码器206产生的实际运动数据进行计时,得到编码器206当前两线之间的实际运动时间TQn。
作为又一种变形,还可以设置有一个单独的计时器(例如计时电路)来实现对编码器206产生的实际运动数据进行计时,然后再将计时的结果发送给计算调整单元303。
作为一种举例说明,结合参考附图3,所述计算调整单元303还包括有计算单元305和调整单元306。
所述计算单元305用于计算得到所述编码器206当前两线之间的理论时间值Tn与实际运动时间TQn之间的时间差值DTn;这个时间差值就表示编码器206的当前两线之间的实际运动的情况与理论运动的情况之间的误差,检测到该误差后就可以对该误差进行补偿。
所述调整单元306用于根据所述时间差值DTn、所述编码器206两线之间的理论微步数值S0、所述编码器206后两线之间的理论时间值Tn+1计算得到所述编码器206后两线之间的每个微步对应的所述实际周期值Pn+1,一旦编码器206的当前两线存在运动误差,这个实际周期值Pn+1与第一计算部301解算得到的理论周期值Qn+1大小不同,即实际周期值Pn+1是对理论周期值Qn+1的修正。
作为一种变形,所述计算调整单元303还可以根据所述编码器当前两线之间的理论时间值Tn、实际运动时间TQn、编码器206两线之间的理论微步数值S0、编码器206后两线之间的理论时间值Tn+1直接计算得到所述编码器206后两线之间的每个微步对应的所述实际周期值Pn+1,而不需要先计算得到编码器206当前两线之间的理论时间值Tn与实际运动时间TQn之间的时间差值DTn,再计算得到编码器后两线之间的每个微步对应的所述实际周期值Pn+1。
作为又一种举例说明,所述编码器206的后两线之间的每个微步对应的实际周期值Pn+1为:所述编码器206后两线之间的理论时间值Tn+1与所述编码器206当前两线之间的所述时间差值DTn的差值、再除以所述理论微步数值S0。通过这种方法可以方便的计算得到后两线之间的理论微步数值对应的实际周期值Pn+1,方便进行误差补偿。
作为一种变形,编码器206的后两线之间的理论微步数值S0对应的实际周期值Pn+1还可以为:编码器206后两线之间的理论微步数值对应的理论周期值Qn+1减去编码器206当前两线之间的所述时间差值DTn与所述理论微步数值S0的比值,也可以方便的进行误差补偿。
作为又一种举例说明,所述计算调整单元303由FPGA芯片实现。
作为一种变形,所述计算调整单元303还可以由DSP芯片实现,或者还可以由ARM芯片实现,或者还可以由多种芯片的组合实现。
作为又一种举例说明,解算单元301计算得到的编码器206每两线之间的理论微步数值S0是相等的,即解算单元301计算得到的第一和第二线之间、第二和第三线之间、第n和第n+1线之间的所有的理论微步数值S0都是相等的,这就使得运动部件205在每两线之间的运动的微步数是均分的,易于计算和补偿。
作为一种变形,解算单元301计算得到的编码器206每两线之间的理论微步数值S0也可以是不相等的,也可以达到本发明的精确反馈控制的目的。
作为又一种举例说明,解算单元301计算得到的每个理论微步数值对应的理论周期还在编码器206的两线之间是相等的,即解算单元301计算得到的第一和第二线之间的理论周期值相等、运动部件205在第一和第二线之间是匀速运动的;运动部件205在第二线和第三线之间是匀速运动的……,但编码器的第一线和第二线之间与第二线和第三线之间并不必须是匀速运动的,这使得运动部件205的控制和反馈控制更容易实现。
作为一种变形,解算单元301计算得到的每个理论微步数值对应的理论周期还在编码器206的两线之间也可以是不相等的,即运动部件205在每两线之间的运动不是匀速运动,可以是变速运动。
作为又一种具体实施例,结合参考附图5,附图5示出了一种精确控制方法S500,应用于机器人100,所述方法S500包括:
步骤S501:根据运动参数、所述编码器206的分辨率解算得到一组波表数据、以及所述编码器206两线之间的理论微步数值S0,所述波表数据表示所述编码器206每两线之间的理论时间值Tn,n为正整数。
当用户需要运动机器人100工作时,首先通过机器人控制器201设置各种运动参数,运动参数可以包括有设备参数、运动控制参数、传动参数、编码器参数等与运动部件205和运动控制部件相关的各种参数,根据所述运动参数、所述编码器206的分辨率解算得到一组波表数据、以及所述编码器206两线之间的理论微步数值S0,所述波表数据表示所述编码器206每两线之间的理论时间值Tn,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)。
因此,可以将运动参数等数据解算为一组完整的波表数据,这一组波表数据就表示运动部件205的完整的运动轨迹,现有技术中解算得到的这一组波表数据是不分组、不分段的,后续的一个波形产生单元直接按顺序从波表中取波表数据、依次生成对应的波形数据,驱动部204根据依次接收到的波形数据产生对应的驱动电流,本发明则是按照编码器206的每两线之间作为一组的形式解算得到波表数据。
步骤S502:对所述编码器206检测到的实际运动数据进行计时,得到所述编码器206当前两线之间的实际运动时间TQn。
步骤S503:依据所述编码器206当前两线之间的波表数据、所述编码器206两线之间的理论微步数值S0、所述编码器206检测到的当前两线之间的实际运动时间TQn计算得到所述编码器206的后两线之间的每个微步对应的实际周期值Pn+1,作为所述驱动部204更新后的周期值P。
根据波表数据、理论微步数值S0和编码器检测到的当前两线之间的实际运动时间TQn计算得到了在当前两线之间、运动部件205的理论运动轨迹与实际运动轨迹之间的误差,然后对这个进行修正,修正是通过计算得到后两线之间的每个微步对应的实际周期值Pn+1来替换理论周期值Qn+1实现的,即实际周期值Pn+1是对理论周期值Qn+1的修正。
通过上述论述可以看出,本发明实时的检测编码器206每两线之间的实际运动数据,根据运动误差来修正后两线之间的理论运动数据,使得后两线之间的运动轨迹更靠近用户实际需要的运动轨迹,再根据后两线之间的实际运动数据计算得到后两线的后两线之间的实际运动数据,对后两线的运动误差(或者还包括当前两线之间未能完全补偿到的误差)继续进行实时补偿,整个过程是一个实时检测、实时补偿的过程,而不是现有技术中的每隔一段时间再进行修正的方式;当运动控制系统200包括有多个运动部件205时(例如多关节机器人100包括有4-5个电机),每个运动部件205可以由各自对应的控制部203进行实时计算和补偿,而不需要将每个运动部件205的状态上报给机器人控制器201、再由机器人控制器201进行统一的计算处理、计算得到全新的各个运动部件205的运动数据,再用新的运动数据去驱控各个运动部件205,使得本发明的实时反馈控制效果更好,使机器人100的定位精度极高、误差极小,是一种精确控制的方案。
作为一种举例说明,步骤S503中依据所述编码器206当前两线之间的波表数据、所述编码器206两线之间的理论微步数值S0、所述编码器206检测到的当前两线之间的实际运动时间TQn计算得到所述编码器206的后两线之间的每个微步对应的实际周期值Pn+1包括:
首先计算得到所述编码器206当前两线之间的理论时间值Tn与实际运动时间TQn之间的时间差值DTn;这个时间差值就表示编码器206的当前两线之间的实际运动的情况与理论运动的情况之间的误差,检测到该误差后就可以对该误差进行补偿。
然后根据所述时间差值DTn、所述编码器206两线之间的理论微步数值S0、所述编码器206后两线之间的理论时间值Tn+1计算得到所述编码器206后两线之间的每个微步对应的所述实际周期值Pn+1,一旦编码器206的当前两线存在运动误差,这个实际周期值Pn+1与第一计算部301解算得到的理论周期值Qn+1大小不同,即实际周期值Pn+1是对理论周期值Qn+1的修正。
作为一种变形,还可以根据所述编码器当前两线之间的理论时间值Tn、实际运动时间TQn、编码器206两线之间的理论微步数值S0、编码器206后两线之间的理论时间值Tn+1直接计算得到所述编码器206后两线之间的每个微步对应的所述实际周期值Pn+1,而不需要先计算得到编码器206当前两线之间的理论时间值Tn与实际运动时间TQn之间的时间差值DTn,再计算得到编码器后两线之间的每个微步对应的所述实际周期值Pn+1。
作为又一种举例说明,步骤S503中所述编码器206的后两线之间的每个微步对应的实际周期值Pn+1为:所述编码器206后两线之间的理论时间值Tn+1与所述编码器206当前两线之间的所述时间差值DTn的差值、再除以所述理论微步数值S0。通过这种方法可以方便的计算得到后两线之间的理论微步数值对应的实际周期值Pn+1,方便进行误差补偿。
作为一种变形,编码器206的后两线之间的理论微步数值S0对应的实际周期值Pn+1还可以为:编码器206后两线之间的理论微步数值对应的理论周期值Qn+1减去编码器206当前两线之间的所述时间差值DTn与所述理论微步数值S0的比值,也可以方便的进行误差补偿。
作为又一种示例性实施例,本发明还提供了一种存储有程序的计算机可读介质,所述程序被包括有控制部203和驱动部204的运动控制部件401运行以控制运动部件205运动,所述运动部件205的输出端设置有检测所述运动部件205的实际运动数据的编码器206,以执行所述精确控制方法S500。
本发明提供的具有反馈控制功能的机器人将用户设置的运动参数解算为编码器的每两线之间的微步数和每个微步数对应的周期值,然后驱动部根据解算得到的周期值产生驱动电流、驱动运动部件运动;在此过程中,控制部还利用接受到的编码器反馈的脉冲数据计算当前两线之间的实际运动情况与理论运动情况的误差,然后将这个误差补偿到后两线之间的运动数据中,再检测到后两线之间的编码器反馈的脉冲数据时、再次计算后两线之间的实际运动情况与理论运动情况的误差,然后将这个误差再次补偿到后两线的后两线的运动数据中,并依次进行实时补偿,达到了根据运动部件的当前运动状态进行实时补偿修正的目的,这样机器人在运动过程中的实际运动轨迹与理论运动轨迹之间的误差是被实时补偿的,机器人的定位精度极高、运动误差极小,且不需要机器人停止后再进行补偿计算,解决了背景技术中存在的技术问题。
以上所述的仅为本发明的具体实施例,所应理解的是,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想,并不用于限定本发明的保护范围,凡在本发明的思想和原则之内所做的任何修改、等同替换等等,均应包含在本发明的保护范围之内。
Claims (18)
1.一种具有精确控制功能的机器人,包括有:控制部、驱动部、运动部件、编码器,
所述控制部,用于根据运动参数产生控制所述运动部件运动的每个微步的周期值;
所述驱动部,用于根据所述每个微步的周期值产生驱动所述运动部件的驱动电流;
所述运动部件,用于根据所述驱动电流进行运动;
所述编码器,用于检测所述运动部件的实际运动数据;
其特征在于:
所述控制部包括有解算单元、波表、计算调整单元,
所述解算单元,用于根据所述运动参数、所述编码器的分辨率解算得到一组波表数据、以及所述编码器两线之间的理论微步数值,所述波表数据表示所述编码器每两线之间的理论时间值;
所述波表,用于存储所述波表数据;
所述计算调整单元,用于依据所述波表取出的所述编码器当前两线之间的波表数据、所述编码器两线之间的理论微步数值、所述编码器检测到的当前两线之间的实际运动时间计算得到所述编码器的后两线之间的每个微步对应的实际周期值,作为所述驱动部更新后的周期值。
2.根据权利要求1所述的具有精确控制功能的机器人,其特征在于:
所述计算调整单元包括有计时单元,用于对所述编码器检测到的实际运动数据进行计时,得到所述编码器当前两线之间的实际运动时间。
3.根据权利要求2所述的具有精确控制功能的机器人,其特征在于:
所述计算调整单元还包括有计算单元和调整单元;
所述计算单元,用于计算得到所述编码器当前两线之间的理论时间值与实际运动时间之间的时间差值;
所述调整单元,用于根据所述时间差值、所述编码器两线之间的理论微步数值、所述编码器后两线之间的理论时间值计算得到所述编码器后两线之间的每个微步对应的所述实际周期值,作为所述驱动部更新后的周期值。
4.根据权利要求3所述的具有精确控制功能的机器人,其特征在于:
所述编码器的后两线之间的每个微步对应的实际周期值为:所述编码器后两线之间的理论时间值与所述编码器当前两线之间的所述时间差值的差值、再除以所述理论微步数值。
5.根据权利要求1、2、3或4所述的具有精确控制功能的机器人,其特征在于:
所述计算调整单元由FPGA芯片实现。
6.根据权利要求1所述的具有精确控制功能的机器人,其特征在于:
所述编码器每两线之间的理论微步数值是相等的。
7.根据权利要求1所述的具有精确控制功能的机器人,其特征在于:
所述编码器的两线之间的每个微步对应的实际周期值是相等的。
8.一种精确控制方法,应用于机器人,所述机器人包括有依序设置的控制部、驱动部、运动部件和编码器;
其特征在于,所述方法包括:
根据运动参数、所述编码器的分辨率解算得到一组波表数据、以及所述编码器两线之间的理论微步数值,所述波表数据表示所述编码器每两线之间的理论时间值;
对所述编码器检测到的实际运动数据进行计时,得到所述编码器当前两线之间的实际运动时间;
依据所述编码器当前两线之间的波表数据、所述编码器两线之间的理论微步数值、所述编码器检测到的当前两线之间的实际运动时间计算得到所述编码器的后两线之间的每个微步对应的实际周期值,作为所述驱动部更新后的周期值。
9.根据权利要求8所述的精确控制方法,其特征在于:
依据所述编码器当前两线之间的波表数据、所述编码器两线之间的理论微步数值S0、所述编码器检测到的当前两线之间的实际运动时间计算得到所述编码器的后两线之间的每个微步对应的实际周期值包括:
首先计算得到所述编码器当前两线之间的理论时间值与实际运动时间之间的时间差值;
然后根据所述时间差值、所述编码器两线之间的理论微步数值、所述编码器后两线之间的理论时间值计算得到所述编码器后两线之间的每个微步对应的所述实际周期值,作为所述驱动部更新后的周期值。
10.根据权利要求9所述的精确控制方法,其特征在于:
所述编码器的后两线之间的每个微步对应的实际周期值为:所述编码器后两线之间的理论时间值与所述编码器当前两线之间的所述时间差值的差值、再除以所述理论微步数值。
11.一种具有精确控制功能的运动控制部件,用于依据控制参数控制运动部件运动,所述运动部件的输出端设置有检测所述运动部件的实际运动数据的编码器;
所述运动控制部件包括有控制部和驱动部;
所述控制部,用于根据运动参数产生控制所述运动部件运动的每个微步的周期值;
所述驱动部,用于根据所述每个微步的周期值产生驱动所述运动部件的驱动电流;
其特征在于:
所述控制部包括有解算单元、波表、计算调整单元,
所述解算单元,用于根据所述运动参数、所述编码器的分辨率解算得到一组波表数据、以及所述编码器两线之间的理论微步数值,所述波表数据表示所述编码器每两线之间的理论时间值;
所述波表,用于存储所述波表数据;
所述计算调整单元,用于依据所述波表取出的所述编码器当前两线之间的波表数据、所述编码器两线之间的理论微步数值、所述编码器检测到的当前两线之间的实际运动时间计算得到所述编码器的后两线之间的每个微步对应的实际周期值,作为所述驱动部更新后的周期值。
12.根据权利要求11所述的具有精确控制功能的运动控制部件,其特征在于:
所述计算调整单元包括有计时单元,用于对所述编码器检测到的实际运动数据进行计时,得到所述编码器当前两线之间的实际运动时间。
13.根据权利要求12所述的具有精确控制功能的运动控制部件,其特征在于:
所述计算调整单元还包括有计算单元和调整单元;
所述计算单元,用于计算得到所述编码器当前两线之间的理论时间值与实际运动时间之间的时间差值;
所述调整单元,用于根据所述时间差值、所述编码器两线之间的理论微步数值、所述编码器后两线之间的理论时间值计算得到所述编码器后两线之间的每个微步对应的所述实际周期值,作为所述驱动部更新后的周期值。
14.根据权利要求13所述的具有精确控制功能的运动控制部件,其特征在于:
所述编码器的后两线之间的每个微步对应的实际周期值为:所述编码器后两线之间的理论时间值与所述编码器当前两线之间的所述时间差值的差值、再除以所述理论微步数值。
15.根据权利要求11、12、13或14所述的具有精确控制功能的运动控制部件,其特征在于:
所述计算调整单元由FPGA芯片实现。
16.根据权利要求11所述的具有精确控制功能的运动控制部件,其特征在于:
所述编码器每两线之间的理论微步数值是相等的。
17.根据权利要求11所述的具有精确控制功能的运动控制部件,其特征在于:
所述编码器的两线之间的每个微步对应的实际周期值是相等的。
18.一种存储有程序的计算机可读介质,其特征在于:所述程序被包括有控制部和驱动部的运动控制部件运行以控制运动部件运动,所述运动部件的输出端设置有检测所述运动部件的实际运动数据的编码器;
以执行如权利要求8-10中任意一项所述精确控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810178959.2A CN108481322B (zh) | 2018-03-05 | 2018-03-05 | 具有精确控制功能的机器人、运动控制部件、方法和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810178959.2A CN108481322B (zh) | 2018-03-05 | 2018-03-05 | 具有精确控制功能的机器人、运动控制部件、方法和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108481322A CN108481322A (zh) | 2018-09-04 |
CN108481322B true CN108481322B (zh) | 2019-08-16 |
Family
ID=63341605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810178959.2A Active CN108481322B (zh) | 2018-03-05 | 2018-03-05 | 具有精确控制功能的机器人、运动控制部件、方法和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108481322B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109702743A (zh) * | 2019-01-10 | 2019-05-03 | 北京镁伽机器人科技有限公司 | 运动控制系统和用于运动控制系统的丢步报警方法 |
CN109807895B (zh) * | 2019-02-21 | 2021-07-20 | 深圳镁伽科技有限公司 | 运动控制部件、机器人以及运动控制系统 |
CN110253567B (zh) * | 2019-05-22 | 2021-07-20 | 深圳镁伽科技有限公司 | 用于控制机器人运动的运动控制系统、方法及机器人 |
CN110253569B (zh) * | 2019-05-22 | 2021-07-20 | 深圳镁伽科技有限公司 | 用于控制机器人运动的运动控制部件、系统以及方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5225691A (en) * | 1992-05-18 | 1993-07-06 | Avalon Engineering, Inc. | Semiconductor wafer cassette mapper with emitter and detector arrays for slot interrogation |
CN102059699A (zh) * | 2010-12-09 | 2011-05-18 | 中国矿业大学 | 三自由度混合驱动柔索并联机器人控制装置及方法 |
CN105045098A (zh) * | 2015-05-29 | 2015-11-11 | 芜湖希美埃机器人技术有限公司 | 一种机器人喷涂轨迹自动生成系统的控制方法 |
CN106056633A (zh) * | 2016-06-07 | 2016-10-26 | 速感科技(北京)有限公司 | 运动控制方法、装置及系统 |
CN106373478A (zh) * | 2016-08-29 | 2017-02-01 | 合肥工业大学 | 一种六自由度地震体验试验系统及其控制方法 |
CN107718017A (zh) * | 2017-10-24 | 2018-02-23 | 北京镁伽机器人科技有限公司 | 运动部件的参数显示方法、介质、运动控制部件和机器人 |
-
2018
- 2018-03-05 CN CN201810178959.2A patent/CN108481322B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5225691A (en) * | 1992-05-18 | 1993-07-06 | Avalon Engineering, Inc. | Semiconductor wafer cassette mapper with emitter and detector arrays for slot interrogation |
CN102059699A (zh) * | 2010-12-09 | 2011-05-18 | 中国矿业大学 | 三自由度混合驱动柔索并联机器人控制装置及方法 |
CN105045098A (zh) * | 2015-05-29 | 2015-11-11 | 芜湖希美埃机器人技术有限公司 | 一种机器人喷涂轨迹自动生成系统的控制方法 |
CN106056633A (zh) * | 2016-06-07 | 2016-10-26 | 速感科技(北京)有限公司 | 运动控制方法、装置及系统 |
CN106373478A (zh) * | 2016-08-29 | 2017-02-01 | 合肥工业大学 | 一种六自由度地震体验试验系统及其控制方法 |
CN107718017A (zh) * | 2017-10-24 | 2018-02-23 | 北京镁伽机器人科技有限公司 | 运动部件的参数显示方法、介质、运动控制部件和机器人 |
Also Published As
Publication number | Publication date |
---|---|
CN108481322A (zh) | 2018-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108481322B (zh) | 具有精确控制功能的机器人、运动控制部件、方法和介质 | |
CN108453733A (zh) | 具有反馈控制功能的机器人、运动控制系统、方法和介质 | |
JP4361071B2 (ja) | サーボ制御装置 | |
CN105328697B (zh) | 一种模块化六自由度机械手及其控制方法 | |
EP2703130A2 (en) | Robot | |
CN109605344B (zh) | 一种多自由度开环步进串联机械臂及其控制方法 | |
CN108663993B (zh) | 一种基于实时控制器的多轴伺服控制系统 | |
US9434075B2 (en) | Method for operating a multi-limb manipulator | |
JP2010238174A (ja) | 位置決め装置及び位置決め方法 | |
CN105033996A (zh) | 基于手推示教式五轴水平关节机器人的控制系统 | |
CN108582082A (zh) | 具有精确回零位功能的机器人、回零位方法、系统和介质 | |
CN106737642A (zh) | 基于双伺服电机的减速驱动装置、驱动系统及控制方法 | |
JP2014119853A (ja) | 移動体が反転するときの位置誤差を補正するサーボ制御装置 | |
CN109445274A (zh) | 一种柔性空间机械臂振动控制方法及系统 | |
CN204235546U (zh) | 机械臂控制装置 | |
JPS59163614A (ja) | ロボツト動力学的運動になじまぬ座標系での産業用ロボツト駆動方法 | |
CN108582081A (zh) | 具有回零位功能的机器人、回零位方法、系统和介质 | |
CN111026037B (zh) | 基于windows平台工业机器人运动控制器及控制方法 | |
CN107645979B (zh) | 用于使机器人手臂的运动同步的机器人系统 | |
JP7267688B2 (ja) | ロボットシステム、ロボットアームの制御方法、物品の製造方法、駆動装置および駆動装置の制御方法 | |
CN109702743A (zh) | 运动控制系统和用于运动控制系统的丢步报警方法 | |
CN106976077A (zh) | 一种杆式并串联结构搬运机械手 | |
KR101411503B1 (ko) | 로봇 제어 장치 및 그 방법 | |
CN206223385U (zh) | 一种二自由度闭链柔性机构振动测量控制装置 | |
WO2016181504A1 (ja) | 数値制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |