CN114347039B - 机器人前瞻控制方法及相关装置 - Google Patents
机器人前瞻控制方法及相关装置 Download PDFInfo
- Publication number
- CN114347039B CN114347039B CN202210150794.4A CN202210150794A CN114347039B CN 114347039 B CN114347039 B CN 114347039B CN 202210150794 A CN202210150794 A CN 202210150794A CN 114347039 B CN114347039 B CN 114347039B
- Authority
- CN
- China
- Prior art keywords
- motion
- instruction
- robot
- instructions
- starting point
- 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/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
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
-
- 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/1628—Programme controls characterised by the control loop
-
- 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/1658—Programme controls characterised by programming, planning systems for manipulators characterised by programming language
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Automation & Control Theory (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Numerical Control (AREA)
- Manipulator (AREA)
Abstract
本申请提供的机器人前瞻控制方法及相关装置中,多关节机器人获取运动控制脚本,然后,从中确定出多条待优化运动指令;并将多条待优化运动指令中相邻的待优化运动指令所对应的运动状态进行平滑过渡,生成目标运动控制信息,然后,根据该目标运动控制信息,实现对多关节机器人进行控制;相较于采用单语句解析方式来完成运动指令解析和运动指令下发执行,本实施例一次获取多条待优化运动指令,将其中相邻的待优化运动指令在执行时的运动状态进行平滑过渡,使得多关节机器人工作时的运动过程更为平顺。
Description
技术领域
本申请涉及机器人领域,具体而言,涉及一种机器人前瞻控制方法及相关装置。
背景技术
在机器人开发中,所使用的控制语言通常可分为两种,分别为机器人控制***开发语言和机器人脚本语言。
其中,机器人控制***开发语言,用于为采用了单片机、嵌入式主板的多关节机器人开发控制***。而多关节机器人对实时性要求非常高,要求控制***在一个通讯周期内完成位姿技术、插补、轨迹规划等计算工作,因此,也就意味着用于开发机器人控制***的控制语言需要是资源占用少,计算效率高的语言。例如,目前机器人控制***开发语言通常采用C/C++、Pascal等语言。
然而,采用机器人控制***开发语言在机器人应用场景中进行工艺开发会存在一系列问题。例如,要求开发人员具备一定的开发经验,开发门槛高。并且,没有对访问权限进行控制,开发人员可以直接控制底层数据,从而无法保证机器人控制***数据安全性。因此,各大机器人厂商都会将机器人控制***开发语言与工艺开发语言隔离开来,也就是使用机器人脚本语言进行机器人工艺开发。
机器人脚本语言具备功能简单、容易上手、轻量级等特性,因此,被用于作为多关节机器人工艺开发的编程语言。机器人脚本语言一般安装在机器人示教器上,通过调用机器人控制***开放接口、RPC远程调用接口等方法与机器人控制***进行通信,向多关节机器人发送指令。
研究发现,目前的机器人脚本语言通常采用单语句解析方式来完成运动指令解析和运动指令下发执行。即执行每一条运动指令之前,机器人需要将末端的速度设置为0,然后,执行运动指令的过程中,机器人的末端可分为加速段、匀速段、减速段。因此,机器人在执行完一条运动指令之后,无法得知后续是否还有其他待执行的运动指令,使得在执行这样大量稠密点位的运动指令时,会周期性的出现加速、减速过程,因此,不仅无法平滑地执行运动轨迹,而且也会导致运动指令的执行误差。
发明内容
为了克服现有技术中的至少一个不足,本申请提供一种机器人前瞻控制方法及相关装置,包括:
第一方面,本申请提供一种机器人前瞻控制方法,应用于多关节机器人,所述方法包括:
获取所述多关节机器人的运动控制脚本;
从所述运动控制脚本中确定出多条待优化运动指令;
将所述多条待优化运动指令中相邻的两条待优化运动指令进行平滑过渡,生成目标运动控制信息;
根据所述目标运动控制信息,控制所述多关节机器人。
第二方面,本申请提供一种机器人前瞻控制装置,应用于多关节机器人,所述机器人前瞻控制装置包括:
脚本解析模块,用于获取所述多关节机器人的运动控制脚本;
脚本执行模块,用于从所述运动控制脚本中确定出多条待优化运动指令;
脚本执行模块,还用于将所述多条待优化运动指令中相邻的两条待优化运动指令进行平滑过渡,生成目标运动控制信息;
脚本执行模块,还用于根据所述目标运动控制信息,控制所述多关节机器人。
第三方面,本申请提供一种多关节机器人,所述多关节机器人包括处理器以及存储器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,实现所述的机器人前瞻控制方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现所述的机器人前瞻控制方法。
相对于现有技术而言,本申请具有以下有益效果:
本实施提供的机器人前瞻控制方法及相关装置中,多关节机器人获取运动控制脚本,然后,从中确定出多条待优化运动指令;并将多条待优化运动指令中相邻待优化运动指令对应的运动状态进行平滑过渡,生成目标运动控制信息,然后,根据该目标运动控制信息,实现对多关节机器人进行控制;相较于采用单语句解析方式来完成运动指令解析和运动指令下发执行,本实施例一次获取多条待优化运动指令,将其中相邻待优化运动指令执行时的运动状态进行平滑过渡,使得多关节机器人工作时的运动过程更为平顺。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的运动轨迹以及点位示意图;
图2为本申请实施例提供的机器人控制设备结构示意图;
图3为本申请实施例提供的机器人控前瞻制方法流程示意图;
图4为本申请实施例提供的分段函数与运动轨迹关系示意图;
图5为本申请实施例提供的运动控制脚本执行原理流程图;
图6为本申请实施例提供的语法树索引原理流程图;
图7为本申请实施例提供的机器人前瞻控制装置结构示意图;
图8为本申请实施例提供的机器人前瞻控制装置细节示意图。
图标:120-存储器;130-处理器;140-通信单元;201-脚本解析模块;202-脚本执行模块。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
相关技术中,机器人脚本语言具备功能简单、容易上手、轻量级等特性,因此,被用于作为多关节机器人工艺开发的编程语言。
例如,在工业机器人领域,几乎每个机器人制造商都开发了自己专有的机器人脚本语言,例如,ABB使用RAPID编程语言作为其脚本语言,库卡使用KRL(库卡机器人语言)。Comau使用PDL2编程语言,Yaskawa使用INFORM编程语言,Kawasaki使用AS编程语言,Fanuc机器人使用Karel,Stabli机器人使用VAL3编程语言,Universal Robots使用URScript编程语言。
基于该机器人脚本语言的一些实施方式中,多关节机器人在执行复杂轨迹运动时,通常采用对复杂轨迹进行点位示教的方式,生成用于拟合该运动轨迹的多个途经点,并生成控制多关机机器人沿多个途经点运动的运动控制脚本。其中,需要示教的点位数量与运动轨迹越复杂程度相关,也就意味着脚本语言编写工作量的增加。
其他实施方式中,还可以采用离线编程的方式计算出多关机机器人运动的轨迹点,然而,这些轨迹点相对示教点位的轨迹点更加稠密。
发明人研究发现,受限于目前的机器人脚本语言通常采用单语句解析方式来完成运动指令解析和运动指令下发执行的特性。通过运动控制脚本控制多关节机器人沿稠密的点位运动时,无法平滑地执行运动轨迹,而且存在运动指令的执行误差。
示例性的,假定该多关节机器人执行运动控制脚本时,机器人末端的运动轨迹如图1所示。其中,该运动轨迹包括4个点位,分别标记为A、B、C、D,因此,4个点位将运动轨迹划分成3段运动轨迹,分别为点位A与点位B之间的轨迹LAB,点位B与点位点位C之间的轨迹LBC,点位C与点位D之间的轨迹LCD;而每段轨迹对应一条运动指令。
其中,执行轨迹LAB对应的运动指令时,多关节机器人末端的运动状态为分为3个阶段:
1、从轨迹LAB的起点位置开始加速;
2、加速到预设速度后,开始以预设速度匀速运动;
3、匀速运动到接近B点位置开始减速,减速至B点时,速度变为0。
同理,执行轨迹LBC对应的运动指令时,多关节机器人末端状态同样为分为3个阶段:
1、从轨迹LAB的起点位置开始加速;
2、加速到预设速度后,开始以预设速度匀速运动;
3、匀速运动到接近C点位置开始减速,减速至C点时,速度变为0。
由此可见,多关节机器人在执行大量稠密点位的运动指令时,会周期性的出现加速、减速过程。
鉴于此,本实施例提供一种应用于多关节机器人的机器人前瞻控制方法。该方法中,多关节机器人获取运动控制脚本,然后,从中确定出多条待优化运动指令;并将多条待优化运动指令进行优化处理,以获得优化后的目标运动控制信息,从而根据该目标运动控制信息控制多关机机器人,使得最终的控制效果与分别依次执行多条待优化运动指令的控制效果相同。
本实施例中的多关节机器人包括机器人本体以及机器控制设备。其中,如图2所示,该机器控制设备包括存储器120、处理器130、通信单元140。该存储器120、处理器130以及通信单元140各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
其中,该存储器120可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器120用于存储程序,该处理器130在接收到执行指令后,执行该程序。
该通信单元140用于通过通信协议收发数据。其中,该通信协议可以是串口通信协议、网络通信协议、EtherCat通信协议。一些实施方式中,该网络通信协议对应的网络可以包括有线网络、无线网络、光纤网络、远程通信网络、内联网、因特网、局域网(Local AreaNetwork,LAN)、广域网(Wide Area Network,WAN)、无线局域网(Wireless Local AreaNetworks,WLAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide AreaNetwork,WAN)、公共电话交换网(Public Switched Telephone Network,PSTN)、蓝牙网络、ZigBee网络、或近场通信(Near Field Communication,NFC)网络等,或其任意组合。在一些实施例中,网络可以包括一个或多个网络接入点。例如,网络可以包括有线或无线网络接入点,例如基站和/或网络交换节点,服务请求处理***的一个或多个组件可以通过该接入点连接到网络以交换数据和/或信息。
该处理器130可能是一种集成电路芯片,具有信号的处理能力,并且,该处理器可以包括一个或多个处理核(例如,单核处理器或多核处理器)。仅作为举例,上述处理器可以包括中央处理单元(Central Processing Unit,CPU)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、专用指令集处理器(Application SpecificInstruction-set Processor,ASIP)、图形处理单元(Graphics Processing Unit,GPU)、物理处理单元(Physics Processing Unit,PPU)、数字信号处理器(Digital SignalProcessor,DSP)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、可编程逻辑器件(Programmable Logic Device,PLD)、控制器、微控制器单元、简化指令集计算机(Reduced Instruction Set Computing,RISC)、或微处理器等,或其任意组合。
由于本实施例涉及机器人脚本语言,因此,为使本申请实施例的目的、技术方案和优点更加清楚,在对本实施例所提供机器人前瞻控制方法进行详细阐述之前,先对机器人脚本语言进行介绍。
依照国外机器人四大厂商的脚本语言,以及《工业机器人用户编程指令》国家标准等,将机器人脚本语言包括运动控制类指令、输入输出类指令、定时类指令、运算类指令、条件控制类指令、变量类指令、坐标切换类指令、网络通讯类指令、位置变量类指令和程序控制类指令。
运动控制类指令:
1、MOVJ:使用关节插补的方式移动到目标点。在机器人向目标点移动中,在不受轨迹约束的区间使用。
2、MOVL:使用直线插补的方式移动到目标点。在机器人向目标点移动的过程中,机器人末端姿态不变。
3、MOVC:机器人通过圆弧插补示教的3个点画圆移动。
4、MOVCA:通过示教圆的起始点和两个经过点,机器人走一个完整的圆。
5、MOVS:在焊接、切割、熔接、涂底漆等作业时,若使用自由曲线插补,对于不规则曲线工件的示教作业可变得容易。
6、IMOV:以关节或直线的插补方式从当前位置按照设定的增量距离移动。
7、MOVJEXT:机器人以关节插补方式向示教位置移动,外部轴用关节差补运动。
8、MOVLEXT:机器人以关节插补方式向示教位置移动,外部轴用关节差补运动。
9、MOVCEXT:机器人以圆弧插补方式向示教位置移动,外部轴用关节差补运动。
10、SPEED:SPEED指令以下的所有运动类指令的运动类指令的运动速度为:指令速度*上方状态栏的速度*SPEED的百分比。
11、SAMOV:机器人以关节插补运动到一个设定好的绝对位置。
12、MOVJDOUBLE:当设置为两台机器人时,令两台机器人同时走关节插补运动到目标位置。
13、MOVLDOUBLE:当设置为两台机器人时,令两台机器人同时走直线插补运动到目标位置。
14、MOVCDOUBLE:当设置为两台机器人时,令两台机器人同时走圆弧插补运动到目标位置。同时启停。
15、MOVCADOUBLE:当设置为两台机器人时,令两台机器人同时走圆弧插补运动到目标位置。同时启停。
16、MOVCOMM:以规定的插补方式运动到外部设备通过Modbus发给控制器的点位。
17、EXTMOV:外部轴按机器人线速度倍数的速度或恒速跟随机器人随动的指令。
18、GEARIN:让外部轴某轴随机器人某轴一起运动的指令。
19、MRESET:让外部轴某轴随机器人某轴一起运动的指令。
输入输出类指令:
1、DIN-IO:读取IO板的数字输入值,并存储到一个整型或布尔型变量中。
2、DIN-OUT:将IO板上对应的IO端口置高或置低。
3、ANI:将对应模拟输入口的输入值读入到目标变量中。
4、AOUT:将对应模拟输出口的输出值置为定义的值。
5、PULSEOUT:按照设定的脉冲频率与个数,在R1 PWM IO板上的DB9端子的引脚4(PWM+)上进行输出。
6、READ_DOUT:读数数字输出端口的输出状态,并存入目标变量中。
定时类指令:
1、TIMER:延时设置的值,然后继续运行。
运算类指令:
1、ADD:加法运算
2、SUB:减法运算
3、MUL:乘法运算
4、DIV:除法运算
5、MOD:取模运算
6、SIN:正弦运算
7、COS:余弦运算
8、ATAN:反正切运算
9、LOGICAL_OP:逻辑运算
条件控制指令:
1、CALL:调用另一个程序,被调用程序运行完后则返回原程序CALL指令的下一行继续运行。
2、IF:如果IF指令的条件满足时,则执行IF与ENDIF之间的指令,如果IF指令的条件不满足,则直接跳转到ENDIF指令继续运行ENDIF下面的指令,不运行IF与ENDIF之间的指令。
3、ELSEIF:ELSEIF指令必须***在IF和ENDIF之间。ELSEIF与ENDIF之间还可以***一条ELSE指令或多条ELSEIF指令。
4、ELSE:ELSE指令必须***在IF和ENDIF之间,但是一个IF指令只能嵌入一条ELSE指令。
5、WHILE:当WHILE指令的条件满足时,会循环运行WHILE与ENDWHILE两条指令之间的指令。
6、LABEL:JUMP指令跳转的目标标签。
7、JUMP:JUMP用于跳转,必须与LABEL(标签)指令配合使用
8、UTIL:UNTIL指令用于在一个运动过程中跳出,即在机器人的一个运动过程中暂停并开始下一个过程;当条件满足时,不论当前机器人是否运行,立即暂停并开始ENDUNTIL指令下面的一条指令。
9、CRAFTLINE:专用工艺指令,程序中运行该指令后,在专用工艺界面会跳转到对应的行数。
10、CLKSTART:CLKSTART指令用于计时。运行该指令开始计时,并将时间记录到一个局部或者全局DOUBLE变量中。
11、CLKSTOP:CLKSTOP指令用于停止对应序号的计时器计时。
12、CLKRESET:CLKRESET指令用于将对应序号的计时器归零。若没有使用该指令,下次运行CLKSTART指令会累积计时。
变量指令:
1、INT:定义局部整型变量,并同时赋值
2、DOUBLE:定义局部浮点型变量,并同时赋值
3、BOOL:定义局部布尔型变量,并同时赋值
4、SETINT:给已有整型变量赋值
5、SETDOUBLE:给已有浮点型变量赋值。
6、SETBOOL:给已有布尔型变量赋值。
坐标切换指令:
1、SWITCHTOOL:在程序运行中切换当前使用的工具手坐标系。
2、SWITCHUSER:在程序运行中切换当前使用的用户坐标系。
3、USERCOORD_TRANS:将B、C用户坐标系叠加,结果置入A用户坐标系。
4、SWITCHSYNC:外部轴协作运动时,提前切换外部轴组。
网络通讯指令:
1、SENDMSG:向另外一个网络设备发送字符串信息。
2、PARSEMSG:解析另外一台网络设备通过TCP发送的数据,并将数据参数多个变量中。
3、READCOMM:读取以太网或Modbus发送的点位存到位置变量中、个数存到数值变量中。
4、OPENMSG:打开网络通讯。
5、CLOSEMSG:关闭网络通讯。
6、PRINTMSG:通过提示条的方式打印字符串。
位置变量指令:
1、USERFRAME_SET:改变用户坐标系某一轴的值。
2、TOOLFRAME_SET:改变工具坐标系某一轴的值。
3、READPOS:将一个位置变量的某个轴的值读入到一个浮点型变量中。
4、POSADD:位置变量加法运算。
5、POSSUB:位置变量减法运算。
6、POSSET:该指令能够对位置变量(全局、局部)单一轴的值进行修改。
7、COPYPOS:将一个位置变量所有轴的值复制到另一个位置变量中。
8、POSADDALL:位置变量加法运算。
9、POSSUBALL:位置变量减法运算。
10、POSSETALL:该指令能够对位置变量(全局、局部)若干轴的值进行修改。
11、TOFFSETON:该指令能够对机器人的运行轨迹进行实时偏移。
12、TOFFSETOFF:轨迹偏移结束,此后的运动轨迹不再偏移。
程序控制指令:
1、PTHREAD_START:开启后台任务。后台任务执行一次即结束。
2、PTHREAD_END:关闭已开启的后台任务。
3、PAUSERUN:暂停程序运行。
4、CONTINUERUN:继续运行已暂停的程序。
5、STOPRUN:停止运行所有程序。
6、RESTARTRUN:重新运行已停止的程序。
基于上述指令,将上述指令进行组合以编写相应的运动控制脚本,使得该多关节机器人执行该运动控制脚本时,完成相应的控制任务。例如,该运动控制脚本的内容可以是:
FOR i FROM 1 TO 5 DO!循环5圈
K:=-i*10;!每圈向外10
MoveL offs(p10,K,0,-500),v500,fine,toot0;!xyz分别是k,0,-500:速度是500
MoveL offs(p10,K,400,-500),v500\V:=1000,z40\Z:=45,tool0;
MoveL offs(p10,K,400,150),v500,z40,toot0;
MoveL offs(p10,K,0,150),v500,z40,tool0;
MoveL offs(p10,K,0,-500),v500,z40,toot0;
ENDFOR
上述控制脚本中的“!”右侧的内容为左侧的指令注释内容;因此,上述控制脚本表示一组运动指令和for循环指令组合而成的控制工艺。其中,在运动指令中,可以指定该条指令的目标点,移动速度等参数。当多关节机器人执行上述运动控制脚本时,会根据指令类型和指定参数计算出对应的运行轨迹。
基于上述相关介绍,下面结合图3所示的流程图对本实施例所提供机器人前瞻控制方法的各步骤进行详细阐述。但应该理解的是,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。如图3所示,该机器人前瞻控制方法包括:
S101,获取多关节机器人的运动控制脚本。
S103,从运动控制脚本中确定出多条待优化运动指令。
S104,将多条待优化运动指令中相邻的待优化运动指令对应的运动状态进行平滑过渡,生成目标运动控制信息。
本实施例中,相邻的待优化运动指令的数量不做具体限定,可以是多条待优化运动指令中全部相邻的待优化运动指令,还可以是多条待优化运动指令中部分相邻的待优化运动指令,本领域技术人员可以根据具体使用场景进行适应性选择。
S105,根据目标运动控制信息,控制多关节机器人。
示例性的,假定将上述多条待优化运动指令依次执行后,多关节机器人末端的运动轨迹如图1所示。与相关技术中不同的是,本实施例并非采用单语句解析方式来完成运动指令解析和运动指令下发执行,而是多关节机器人获取轨迹LAB、轨迹LBC以及轨迹LCD对应的3条待优化指令。其中,将轨迹LAB对应的待优化运动指令表示为C1,轨迹LBC对应的待优化指令表示C2,轨迹LCD对应的待优化运动指令表示为C3。
然后,该多关节机器人从3条待优化指令中确定出相邻的待优化运动指令。如图1所示的运动方向,C1与C2为一组相邻的待优化运动指令,C2与C3为一组相邻待优化指令。
基于以上相邻的待优化运动指令,该多关节机器人将C1与C2之间的运动状态进行平滑过渡,将C2与C3之间的运动状态进行平滑过渡,使得多关节机器人的末端运动到点位B以及点位C时,不再需要将速度降至0;从而获得从点位A持续运动到点位D的目标运动控制信息。
如此,通过以上实施方式,多关节机器人获取运动控制脚本,然后,从中确定出多条待优化运动指令;并将多条待优化运动指令中相邻待优化运动指令对应的运动状态进行平滑过渡,生成目标运动控制信息,然后,根据该目标运动控制信息,实现对多关节机器人进行控制;相较于采用单语句解析方式来完成运动指令解析和运动指令下发执行,本实施例一次获取多条待优化运动指令,将其中相邻待优化运动指令执行时的运动状态进行平滑过渡,使得多关节机器人工作时的运动过程更为平顺。
研究发现,每条待优化运动指令的指令参数包括多关节机器人执行对应运动指令执行时的运动轨迹以及运动参数。因此,上述步骤S104可以通过以下实施方式对相邻待优化运动指令的运动状态进行平滑过渡:
S104-1,获取多条待优化运动指令各自的指令参数。
其中,每条指令参数包括多关节机器人执行对应待优化运动指令执行时的运动轨迹以及运动参数。应理解的是,多关节机器人执行对应待优化指令,使得末段从一个点位运动到另外一个点位时,通过分段函数描述多关节机器人末端的运动轨迹。
示例性的,继续以图1中的点位A以及点位B为例,多关节机器人的末端可以通过多条运动轨迹从点位A运动到点位B。如图4所示,假定多条运动轨迹的数量为3条,分别通过L1,L2,L3进行标记,则L1,L2,L3分别对应3个不同的分段函数。
S104-2,根据多条待优化运动指令各自对应的运动轨迹,生成多关节机器人的目标分段函数。
其中,目标分段函数用于描述多关节机器人的末端从起点运动到终点的运动轨迹,起点表示多条待优化运动指令中的第一条指令对应的运动起点,终点表示多条待优化运动指令中的最后一条指令对应的运动终点。
示例性的,继续以图1为例,针对轨迹LAB、轨迹LBC以及轨迹LCD,由于本实施例中的运动控制脚本不再采用单语句解析方式来完成运动指令解析和运动指令下发执行,因此,该多关机机器人根据以上3条运动轨迹生成目标优化函数,用于描述从点位A运动到点位D的运动轨迹。
S104-3,根据多条待优化运动指令各自对应的运动参数,生成多条待优化运动指令中相邻待优化运动指令之间的过渡运动参数。
本实施例不仅对多关节机器人从运动学的方面进行优化,还对多关节机器人从动力学的方面进行优化。所谓动力学,即上述运动参数包括多关节机器人执行每条待优化运动指令时,末端的速度、力矩、加速度中的至少一种。
示例性的,继续以图1所示的运动轨迹为例,假定多关节机器人沿轨迹LAB动时的速度为5m/s,沿轨迹LBC运动时的速度为9m/s,沿轨迹LCD运动时的速度为3m/s。可见,轨迹LAB与轨迹LBC之间的速度不一致,轨迹LBC与轨迹LCD之间的速度不一致;因此,该多关节机器人需要对轨迹LAB与轨迹LBC之间速度进行平滑过渡,对轨迹LBC与轨迹LCD之间的速度进行平滑过渡。
本实施例提供有预先配置的过渡时长,并将过渡时长内的运动参数的变化信息作为过渡运动参数。本实施例提供有多种拟合函数对过渡时长内运动参数的变化曲线进行拟合,本领域技术人员可以根据实施场景的需要进行适应性选择。以轨迹LAB与轨迹LBC为例,并且假定该过渡时长为1s,则需要多关节机器人在1s内将末端的速度从5m/s提升为9m/s,而1s内的速度变化曲线可以满足一次函数(例如,y=ax+b)或者S型函数(例如,sigmod函数)。
当然,力矩、加速度在过渡时长内的变化与以上示例中速度的变化原理相同,本实施例不再赘述。
S104-4,将目标分段函数以及过渡运动参数,作为目标运动控制信息。
如此,该多关节机器人通过对多条待优化运动指令的运动学信息以及动力学信息进行优化处理,获得相应的目标分段函数以及过渡运动参数,作为目标运动控制信息,用于控制多关节机器人。
研究还发现,每个机器人公司都有自己专有的机器人脚本语言,这就导致每次开始使用新的机器人品牌时,需要对该品牌的机器人脚本语言重新进行学习;以及在一家机器人上开发的工艺程序不能移植到另一家机器人公司的机器人上。此外,每家机器人生产厂商都有一套自己定义的通信协议,而机械接口在整个行业中都没有标准化,以及每个厂商支持的***设备如视觉***或力传感器都不一样,而且无法达到统一。
以上因素导致机器人厂商之间的相互排斥、无限竞争,以及社会资源的浪费。因此,本实施例依照国外机器人四大厂商的脚本语言,以及《工业机器人用户编程指令》国家标准等,建立基于预设脚本语法的机器人脚本语言,开放给国内各个机器人生产厂商,以此来打破工艺程序无法移植,不兼容,并使国内机器人生产厂商能够合作共赢的目的。而基于机器人脚本语言编写的运动控制脚本对多关节机器人进行控制的原理如图5所示:
S201,以深度遍历的方式访问运动控制脚本的语法树的子节点。
S202,判断该子节点是否为指令节点,若是,则执行S203,若否则返回执行S201。
S203,获取指令的关键字以及参数。
S204,检查指令参数是否满足参数合法条件,若是,则执行S205,若否,则执行S206。
S205,根据指令关键字调用控制库接口。
S206,抛出异常。
S207,多关节机器人的响应执行指令。
S208,判断当前节点是否拥有兄弟节点,若是,则执行S209,若否,则执行S210。
S209,返回父节点,并访问兄弟节点,然后,返回执行S201。
S210,判断当前节点是否有父节点,若是,则执行S211,若否,则结束对语法树的遍历过程。
S211,返回父节点,然后,返回执行S208。
在此基础上,本实施基于当前节点对运动指令进行前瞻规划,每前瞻规划一次,则从运动控制脚本中确定出多条待优化运动指令,因此,可选地实施方式中,该机器人前瞻控制方法还包括:
S102,获取运动控制脚本的语法树。
应理解的是,ANTLR(Another Tool for Language Recognition),其前身是PCCTS,它为包括Java,C++,C#在内的语言提供了一个通过语法描述来自动构造自定义语言的识别器,编译器和解释器的框架。因此,本实施例可以基于工具ANTLR构建脚本解析模块,用于解析运动控制脚本,生成运动控制脚本的语法树。
基于以上语法树,步骤S103可以包括以下实施方式:
S103-1,根据语法树,从运动控制脚本中确定出多条待优化运动指令。
其中,多关节机器人可以获取当前待执行的第一运动指令在语法树中的位置;然后,将第一运动指令在语法树中的位置作为索引起点,从语法树中索引出至少一条第二运动指令,其中,至少一条第二运动指令表示执行顺序位于第一运动指令之后,且连续依次执行的运动指令;最后,将第一运动指令以及至少一条第二运动指令,作为待优化运动指令。
应理解的是,基于工具ANTLR构建的脚本解析器,所解析出的语法树中,连续依次执行的运动指令在语法树中表现为互为兄弟节点的关系,而循环指令下循环执行的运动指令,则表现为循环指令的左子节点。因此,如图6所示,基于该语法树,多关节机器人可以通过以下实施方式对语法树进行索引,从中确定出至少一条第二运动指令:
S103-1-1,根据索引起点,从语法树中确定出索引起点的右兄弟节点。
S103-1-2,获取右兄弟节点的指令类型类型。
其中,在获取右兄弟节点的指令类型类型时,多关节机器人可以先判断右兄弟节点的指令类型是否为运动指令,若不是,则判断右兄弟节点的指令类型是否为循环指令,若不是,则最后判断兄弟节点的指令类型是否为预设终止指令。
若右兄弟节点的指令类型为运动指令,则执行步骤S103-1-3。
S103-1-3,将右兄弟节点对应的运动指令作为一条目标指令,并获取目标指令的指令数量。
S103-1-4,判断指令数量是否满足终止条件,若是,则执行步骤S103-1-9,若否,则执行步骤S103-1-5。
S103-1-5,将右兄弟节点作为新的索引起点;然后,返回执行步骤S103-1-1。
若右兄弟节点的指令类型为循环指令,则执行步骤S103-1-6。
S103-1-6,获取多关节机器人当前的运动状态。
S103-1-7,判断运动状态是否满足循环条件,若是,则执行步骤S103-1-8,若否,则执行S103-1-5,然后,返回执行步骤S103-1-1。
S103-1-8,将右兄弟节点的左子节点作为新的索引起点,然后,返回执行步骤S103-1-1。
若右兄弟节点的指令类型为预设终止指令(例如,IF等需要条件才能执行的指令),则执行步骤S103-1-9。
S103-1-9,将全部目标指令作为至少一条第二运动指令。
此外,在以上基于语法树索引第二运动指令的实施方式中,可以量索引出的目标指令按照指令执行的先后顺序缓存到预先配置的指令栈或者缓存队列中。还应理解的是,本实施例提供的机器人前瞻控制方法不仅适用于ANTLR新创建的机器人脚本语言,而且对现有机器人厂家所使用的机器人脚本语言同样适用。例如,ABB使用RAPID编程语言作为其脚本语言,库卡使用KRL(库卡机器人语言),Comau使用PDL2编程语言,Yaskawa使用INFORM编程语言,Kawasaki使用AS编程语言,Fanuc机器人使用Karel,Stabli机器人使用VAL3编程语言,Universal Robots使用URScript编程语言。
此外,正如图5所示的多关节机器人控制原理,运动控制脚本以及运动控制脚本中的指令均不能直接由处理器执行,因此,本实施例提供有机器人运动控制库,该机器人运动控制库中封装有多种控制方式的调用接口,使得多关节机器人可以根据实施场景的需要,通过RPC通信方式或者控制库调用方式,调取机器人运动控制库的相应接口;而机器人控制库中的调用接口则可以通过EtherCat协议控制多关机器机器人的关节电机。因此,以上步骤S105可以包括以下实施方式:
S105-1,根据目标运动控制信息,调用有机器人运动控制库控制多关节机器人。
基于以上机器人前瞻控制方法相同的发明构思,本实施例还提供与之相关的装置,包括:
本实施例还提供一种机器人前瞻控制装置,机器人前瞻控制装置包括至少一个可以软件形式存储于存储器120中的功能模块。如图7所示,从功能上划分,机器人前瞻控制装置可以包括:
脚本解析模块201,用于获取多关节机器人的运动控制脚本。
本实施例中,该脚本解析模块201用于实现图3中的步骤S101,关于该脚本解析模块201的详细描述可以参见步骤S101的详细描述。
脚本执行模块202,用于从运动控制脚本中确定出多条待优化运动指令;
脚本执行模块202,还用于将多条待优化运动指令中相邻的两条待优化运动指令进行平滑过渡,生成目标运动控制信息;
脚本执行模块202,还用于根据目标运动控制信息,控制多关节机器人。
本实施例中,该脚本执行模块202用于实现图3中的步骤S103-S105,关于该脚本执行模块202的详细描述可以参见步骤S103-S105的详细描述。
值得说明的是,一些实施方式中,以上机器人前瞻控制装置还可以包括其他功能模块,用于实现本实施例所提供的机器人前瞻控制方法的其他步骤或者子步骤。一些实施方式中,上述脚本解析模块201、脚本执行模块202同样可以用于实现本实施例所提供的机器人前瞻控制方法的其他步骤或者子步骤。
因此,为了使得本领域技术人员能够更为清楚的理解各功能模块的作用,下面结合图8给出以下实施方式,对各功能模块进行详细阐述。如图8所示,该脚本解析模块201包括:
指令接收模块:用于接收客户端实时发送或者离线形式的运动控制脚本中的指令。
词法解析模块:用于将收到的指令通过词法解析模块解析为Token。
语法解析模块:用于将解析后的Token通过语法解析模块解析为具有语义信息的语法段。
语法树构建模块:用于将语法段构建为树形结构,在执行时通过深度遍历的方式完成对所有语句的执行。
其中,词法解析模块则进一步包括:
词法解析模块:用于对机器人脚本语言单个词组的解析,主要包含关键字、数字、字符串、变量名、注释等内容的解析。
指令关键字解析模块:关键字通常是编程语言中保留的特殊字符串,在词法解析阶段需要能够将其识别出来。ANTLR中定义关键字时为可以忽略大小写,并且,ANTLR中提供的规则中,通常将大小写字母定义为一个fragment,然后关键字由fragment组成。
数值解析模块:用于识别脚本中用户定义的数值。
符号解析模块:用于识别脚本中除了字母意外的ASCII字符的一个或多个的组合,例如,包括“==”、“>”、“<”等符号。
字符串解析模块:用于识别脚本中的字符串,其中,字符串通常是由单引号或者双引号包围起来的一组字符、数字以及其他符合组合而成的,并且,在词法解析阶段通常使用一个正则表达式进行表示。
变量解析模块:用于识别脚本中的变量,其中,变量名通常是由字符开头,并可以包含下划线、数字等字符组成。
注释解析模块:用于识别脚本中的用户编写脚本时编辑的注释,其中,注释是由“/**/”包围的多行字符串,或者由“--”、“//”开头的单行字符串,在词法解析阶段采用正则表达式进行表示。
应理解的是,语法是由一系列词法或者语法组合而成。通过ANTLR为创建新的语法,并生成语法解析模块时,ANTLR中规定第一行为该语法名称,“:”后面是语法定义规则,可以是多个词法构成的句子,也可以是其他语法或者词法和语法一起构成的句子,因此,语法解析模块进一步包括:
运动指令解析模块:用于对指MOVJ、MOVL、MOVC等运动指令进行解析。通过ANTLR编辑指令的语法解析规则时,第一行为语法名称,冒号后面是MOVJ、MOVL、MOVC等词法,以及ident变量名和paramList参数序列。而参数序列paramList则由若干个param组成,param又可以为VJ、V、PL、ACC等参数赋值语句组成。具体语法解析规则的编辑方式可以参见ANTLR的相关手册。
输入输出指令解析模块:用于对输入输出指令包括数字IO信号、模拟IO信号、脉冲信号和读取信号几个指令。
定时器指令解析模块:用于对TIMER指令的进行解析。
运算指令解析模块:用于对加、减、乘、除、去模、正弦、余弦等运算规则进行解析。
条件控制指令解析模块:用于对IF/ELSE、CALL、WAIT、WHILE、LABEL、UNTIL、JUMP等指令进行解析。
变量指令解析模块:用于对INT、DOUBL、BOOL等指令进行解析,其中,变量指令通常会与赋值语句、运算语句等配合使用。
坐标切换指令解析模块:用于对用户坐标、工具坐标、工件坐标等指令进行解析。
网络通讯指令解析模块:用于对网络发包、收包、开启网络、关闭网络等通讯指令进行解析。
位置变量指令解析模块:用于对用户坐标设置、工具坐标设置、位置读取、位置运算等指令进行解析。
程序控制指令解析模块:用于对开启后台任务、介绍后台任务、暂停任务、继续任务、停止任务等指令进行解析。
应理解的是,上述词法解析模块以及语法解析模块各自子模块的解析规则,可以基于ANTLR的使用规则,根据实施场景的需要进行适应性调整,本实施例不做具体的限定。
脚本执行模块202包括:
运动指令执行模块:获取运动指令中的具体关键字,提取指令中的参数信息,根据不同的关键字校验参数是否符合要求。在运动指令执行模块中,会调用指令前瞻轨迹规划模块向前检索是否有运动指令,如果有运动指令时,会将所有运动指令全部提取出来统一进行轨迹规划。
输入输出指令执行模块(IO指令执行模块):获取输入输出指令中的具体关键字,提取指令中的参数信息,根据不通过的关键字校验参数是否符合要求,调用机器人运动控制库中的输入输出指令接口。
循环指令执行模块:用于对循环指令参数解析。
外设指令执行模块:用于解析外设指令参数,并调用运动控制库接口完成对外设的控制。
定时指令执行模块:获取定时指令关键字,提取指令中的参数信息,调用机器人运动控制库中的定时指令接口。
运算指令执行模块:获取运算指令中的具体关键字,提取指令中的参数,根据不同运算符进行运行,返回运算结果。
条件指令执行模块:获取条件指令中的具体关键字,提取指令中的表达式信息,根据表达式运算结果,判断是否访问该节点的子树。
变量指令执行模块:获取变量指令中的具体关键字,提取指令中的参数,将变量与变量值存入作用域,等待上下文调用。
坐标切换指令执行模块:获取坐标切换指令中的具体关键字,提取指令中的参数信息,调用机器人运动控制库中的坐标切换指令接口。
网络通信指令执行模块:获取网络通信指令中的具体关键字,提取指令中的参数信息,调用机器人运动控制库中的网络通信接口。
位置变量指令执行模块:获取位置变量指令中的具体关键字,提取指令中的参数信息,将位置变量与变量值存入作用域,等待上下文调用。
程序控制指令执行模块:获取程序控制指令中的具体关键字,提取指令中的参数信息,根据控制指令信息对脚本程序进行操作。
指令前瞻规划模块:以当前指令为起点,遍历子树及兄弟节点子树,向前检索是否存在其他的运动指令。前瞻结束后,提取所有运动控令的参数,通过轨迹规划算法计算出目标分段函数,并将计算结果返回给运动指令执行模块。运动指令执行模块会调用运动控制库接口,将指令发送给机器人运动控制库。
本实施例还提供一种多关节机器人,多关节机器人包括处理器以及存储器,存储器存储有计算机程序,计算机程序被处理器执行时,实现所述的机器人前瞻控制方法。
本实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时,实现所述的机器人前瞻控制方法。
需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。此外,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
还应该理解到,本实施例所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的各种实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (7)
1.一种机器人前瞻控制方法,其特征在于,应用于多关节机器人,所述方法包括:
获取所述多关节机器人的运动控制脚本;
获取所述运动控制脚本的语法树;
获取当前待执行的第一运动指令在所述语法树中的位置,并将所述第一运动指令在所述语法树中的位置作为索引起点;
根据所述索引起点,从所述语法树中确定出所述索引起点的右兄弟节点;
若所述右兄弟节点的指令类型为运动指令,则将所述右兄弟节点对应的运动指令作为一条目标指令,并获取所述目标指令的指令数量;
若所述指令数量不满足终止条件,则将所述右兄弟节点作为新的索引起点,返回执行所述根据所述索引起点,从所述语法树中确定出所述索引起点的右兄弟节点的步骤;
若所述指令数量满足所述终止条件,则将全部所述目标指令作为至少一条第二运动指令;
若所述右兄弟节点的指令类型为循环指令,则获取所述多关节机器人当前的运动状态;
若所述运动状态满足循环条件,则将所述右兄弟节点的左子节点作为新的索引起点,返回执行所述根据所述索引起点,从所述语法树中确定出所述索引起点的右兄弟节点的步骤;
若所述运动状态不满足所述循环条件,则将所述右兄弟节点作为新的索引起点,返回执行所述根据所述索引起点,从所述语法树中确定出所述索引起点的右兄弟节点的步骤;
若所述右兄弟节点的指令类型为预设终止指令,则将全部所述目标指令作为至少一条第二运动指令;
将所述第一运动指令以及所述至少一条第二运动指令,作为多条待优化运动指令;
将所述多条待优化运动指令中相邻的待优化运动指令对应的运动状态进行平滑过渡,生成目标运动控制信息;
根据所述目标运动控制信息,控制所述多关节机器人。
2.根据权利要求1所述的机器人前瞻控制方法,其特征在于,所述将所述多条待优化运动指令中相邻的待优化运动指令对应的运动状态进行平滑过渡,生成目标运动控制信息,包括:
获取所述多条待优化运动指令各自的指令参数,每条所述指令参数包括所述多关节机器人执行对应待优化运动指令时的运动轨迹以及运动参数;
根据所述多条待优化运动指令各自对应的运动轨迹,生成所述多关节机器人的目标分段函数,其中,所述目标分段函数用于描述所述多关节机器人的末端从起点运动到终点的运动轨迹,所述起点表示所述多条待优化运动指令中的第一条指令对应的运动起点,所述终点表示所述多条待优化运动指令中的最后一条指令对应的运动终点;
根据所述多条待优化运动指令各自对应的运动参数,生成所述多条待优化运动指令中相邻的待优化运动指令之间的过渡运动参数;
将所述目标分段函数以及所述过渡运动参数,作为所述目标运动控制信息。
3.根据权利要求1所述的机器人前瞻控制方法,其特征在于,所述运动控制脚本满足预设的脚本语法,所述获取所述运动控制脚本的语法树,包括:
根据所述脚本语法解析所述运动控制脚本,生成所述运动控制脚本的语法树。
4.根据权利要求1所述的机器人前瞻控制方法,其特征在于,所述多关节机器人配置有机器人运动控制库,所述根据所述目标运动控制信息,控制所述多关节机器人,包括:
根据所述目标运动控制信息,调用所述有机器人运动控制库控制所述多关节机器人。
5.一种机器人前瞻控制装置,其特征在于,应用于多关节机器人,所述机器人控制装置包括:
脚本解析模块,用于获取所述多关节机器人的运动控制脚本,获取所述运动控制脚本的语法树;
脚本执行模块,用于获取当前待执行的第一运动指令在所述语法树中的位置,并将所述第一运动指令在所述语法树中的位置作为索引起点;
根据所述索引起点,从所述语法树中确定出所述索引起点的右兄弟节点;
若所述右兄弟节点的指令类型为运动指令,则将所述右兄弟节点对应的运动指令作为一条目标指令,并获取所述目标指令的指令数量;
若所述指令数量不满足终止条件,则将所述右兄弟节点作为新的索引起点,返回执行所述根据所述索引起点,从所述语法树中确定出所述索引起点的右兄弟节点的步骤;
若所述指令数量满足所述终止条件,则将全部所述目标指令作为至少一条第二运动指令;
若所述右兄弟节点的指令类型为循环指令,则获取所述多关节机器人当前的运动状态;
若所述运动状态满足循环条件,则将所述右兄弟节点的左子节点作为新的索引起点,返回执行所述根据所述索引起点,从所述语法树中确定出所述索引起点的右兄弟节点的步骤;
若所述运动状态不满足所述循环条件,则将所述右兄弟节点作为新的索引起点,返回执行所述根据所述索引起点,从所述语法树中确定出所述索引起点的右兄弟节点的步骤;
若所述右兄弟节点的指令类型为预设终止指令,则将全部所述目标指令作为至少一条第二运动指令;
将所述第一运动指令以及所述至少一条第二运动指令,作为多条待优化运动指令;
脚本执行模块,还用于将所述多条待优化运动指令中相邻的两条待优化运动指令进行平滑过渡,生成目标运动控制信息;
脚本执行模块,还用于根据所述目标运动控制信息,控制所述多关节机器人。
6.一种多关节机器人,其特征在于,所述多关节机器人包括处理器以及存储器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,实现权利要求1-4任意一项所述的机器人前瞻控制方法。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现权利要求1-4任意一项所述的机器人前瞻控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210150794.4A CN114347039B (zh) | 2022-02-14 | 2022-02-14 | 机器人前瞻控制方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210150794.4A CN114347039B (zh) | 2022-02-14 | 2022-02-14 | 机器人前瞻控制方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114347039A CN114347039A (zh) | 2022-04-15 |
CN114347039B true CN114347039B (zh) | 2023-09-22 |
Family
ID=81094053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210150794.4A Active CN114347039B (zh) | 2022-02-14 | 2022-02-14 | 机器人前瞻控制方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114347039B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003200368A (ja) * | 2001-10-25 | 2003-07-15 | Yaskawa Electric Corp | 複数ロボットの作業教示方法および作業教示装置 |
CN109940611A (zh) * | 2019-02-26 | 2019-06-28 | 深圳市越疆科技有限公司 | 轨迹复现方法、***及终端设备 |
CN111400338A (zh) * | 2020-03-04 | 2020-07-10 | 平安医疗健康管理股份有限公司 | Sql优化方法、装置、存储介质及计算机设备 |
CN112035099A (zh) * | 2020-09-01 | 2020-12-04 | 北京天融信网络安全技术有限公司 | 一种抽象语法树中节点的向量化表示方法及装置 |
CN112069052A (zh) * | 2019-06-11 | 2020-12-11 | 腾讯科技(深圳)有限公司 | 一种异常对象检测方法、装置、设备及存储介质 |
CN112140100A (zh) * | 2019-06-28 | 2020-12-29 | 百度在线网络技术(北京)有限公司 | 机器人动作处理方法、装置、机器人和存储介质 |
CN112549021A (zh) * | 2020-11-16 | 2021-03-26 | 北京配天技术有限公司 | 机器人的控制方法、机器人及存储装置 |
CN112559554A (zh) * | 2020-12-24 | 2021-03-26 | 北京百家科技集团有限公司 | 一种查询语句优化方法及装置 |
CN112621758A (zh) * | 2020-12-28 | 2021-04-09 | 北京配天技术有限公司 | 实时在线修改示教点的方法及机器人控制设备 |
CN113836702A (zh) * | 2021-09-03 | 2021-12-24 | 深圳市如本科技有限公司 | 机器人示教编程方法及机器人示教编程装置 |
-
2022
- 2022-02-14 CN CN202210150794.4A patent/CN114347039B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003200368A (ja) * | 2001-10-25 | 2003-07-15 | Yaskawa Electric Corp | 複数ロボットの作業教示方法および作業教示装置 |
CN109940611A (zh) * | 2019-02-26 | 2019-06-28 | 深圳市越疆科技有限公司 | 轨迹复现方法、***及终端设备 |
CN112069052A (zh) * | 2019-06-11 | 2020-12-11 | 腾讯科技(深圳)有限公司 | 一种异常对象检测方法、装置、设备及存储介质 |
CN112140100A (zh) * | 2019-06-28 | 2020-12-29 | 百度在线网络技术(北京)有限公司 | 机器人动作处理方法、装置、机器人和存储介质 |
CN111400338A (zh) * | 2020-03-04 | 2020-07-10 | 平安医疗健康管理股份有限公司 | Sql优化方法、装置、存储介质及计算机设备 |
CN112035099A (zh) * | 2020-09-01 | 2020-12-04 | 北京天融信网络安全技术有限公司 | 一种抽象语法树中节点的向量化表示方法及装置 |
CN112549021A (zh) * | 2020-11-16 | 2021-03-26 | 北京配天技术有限公司 | 机器人的控制方法、机器人及存储装置 |
CN112559554A (zh) * | 2020-12-24 | 2021-03-26 | 北京百家科技集团有限公司 | 一种查询语句优化方法及装置 |
CN112621758A (zh) * | 2020-12-28 | 2021-04-09 | 北京配天技术有限公司 | 实时在线修改示教点的方法及机器人控制设备 |
CN113836702A (zh) * | 2021-09-03 | 2021-12-24 | 深圳市如本科技有限公司 | 机器人示教编程方法及机器人示教编程装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114347039A (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10732608B2 (en) | Translation module, processing module and control system | |
Björkelund et al. | On the integration of skilled robot motions for productivity in manufacturing | |
CN110480635B (zh) | 一种用于多机器人的控制方法及控制*** | |
CN111580806A (zh) | 一种协作机器人图形化编程*** | |
Hristu-Varsakelis et al. | On the structural complexity of the motion description language MDLe | |
JP3819639B2 (ja) | プログラミング装置 | |
Angleraud et al. | Coordinating shared tasks in human-robot collaboration by commands | |
Zheng et al. | A multi-agent path planning algorithm based on hierarchical reinforcement learning and artificial potential field | |
CN114347039B (zh) | 机器人前瞻控制方法及相关装置 | |
CN111954854A (zh) | 支持装置以及支持程序 | |
Del Bimbo et al. | Specification by-example of virtual agents behavior | |
Hettige et al. | MaSMT4: The AGR Organizational Model-Based Multi-Agent System Development Framework for Machine Translation | |
CN113561173B (zh) | 基于wince平台的运动控制器的编码解码及轨迹规划方法 | |
Dai et al. | IEC 61499 ontology model for semantic analysis and code generation | |
CN113961195A (zh) | 一种工业机器人编程语言解释方法 | |
CN110450160B (zh) | 一种开放式免编程机器人的控制方法 | |
Yang et al. | M2Coder: A Fully Automated Translator from Matlab M-functions to C/C++ Codes for ACS Motion Controllers | |
Du et al. | A new cloud robots training method using cooperative learning | |
Komenda et al. | Sustainable utilization of industrial robotic systems by facilitating programming through a human and process centred declarative approach | |
Wantia et al. | An online task planning framework reducing execution times in industrial environments | |
WO2023206267A1 (zh) | 调整自然语言语句的方法、装置及存储介质 | |
Solis et al. | Adaptive robot coordination: A subproblem-based approach for hybrid multi-robot motion planning | |
Dah-Achinanon et al. | BittyBuzz: a swarm robotics runtime for tiny systems | |
Ramasamy et al. | Online Path Planning in a Multi-agent-Controlled Manufacturing System | |
Pawletta et al. | Integrated Modeling, Simulation and Operation of High Flexible Discrete Event Controls |
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 |