CN115702064A - 机器人控制装置、机器人控制方法及机器人控制程序 - Google Patents

机器人控制装置、机器人控制方法及机器人控制程序 Download PDF

Info

Publication number
CN115702064A
CN115702064A CN202080102378.6A CN202080102378A CN115702064A CN 115702064 A CN115702064 A CN 115702064A CN 202080102378 A CN202080102378 A CN 202080102378A CN 115702064 A CN115702064 A CN 115702064A
Authority
CN
China
Prior art keywords
axis
command
robot
motion
operation command
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.)
Pending
Application number
CN202080102378.6A
Other languages
English (en)
Inventor
春尾七星
前川清石
白土浩司
冈原卓矢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of CN115702064A publication Critical patent/CN115702064A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1633Programme controls characterised by the control loop compliant, force, torque control, e.g. combined with position control
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40476Collision, planning for collision free path

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

机器人控制装置(200)具有:轴电动机控制部,其控制对机器人(101)的各轴进行驱动的各轴电动机;以及动作指令生成部(24),其生成向不考虑障碍物而使机器人(101)从动作起点移动至动作终点为止的情况下的动作时间变得最短的各轴电动机的第1动作指令,并且对轴之中的在通过第1动作指令进行动作的情况下动作时间变得最长的轴进行选择而作为代表轴,第1动作指令包含向代表轴以外的其他轴的动作指令即其他轴指令和向代表轴的动作指令即代表轴指令,动作指令生成部(24)对其他轴指令进行调整以使得缩短其他轴指令的动作时间,在判断为与包含代表轴指令及调整后的其他轴指令在内的第2动作指令相对应的第1轨道是避免机器人(101)和障碍物的碰撞的轨道的情况下,将与第1轨道相对应的第2动作指令输出至轴电动机控制部。

Description

机器人控制装置、机器人控制方法及机器人控制程序
技术领域
本发明涉及对机器人进行控制的机器人控制装置、机器人控制方法及机器人控制程序。
背景技术
作为在对机器人进行控制的机器人控制装置的1个,存在执行向通过指尖工具保持工件而输送工件的机器人的控制的装置。该机器人控制装置生成包含工件、指尖工具在内的机器人这样的移动对象物和障碍物不发生碰撞的轨道,沿生成的轨道使工件移动。
专利文献1所记载的控制装置在使工件从起点移动至终点时,针对每个电动机而生成在工件输送中使用的电动机的动作时间变得最短的凸轮曲线,对多个电动机之中的最长时间动作的电动机的凸轮曲线进行保持。该控制装置将起点和终点之间的位置之中的工件不与障碍物发生碰撞的位置设定为经由点,通过对凸轮曲线进行调整以使得剩余的电动机的凸轮曲线经过经由点,从而缩短移动的动作时间。
专利文献1:日本特开2014-37029号公报
发明内容
但是,在上述专利文献1的技术中,控制装置对各轴的动作指令进行调整以使得经过由用户指定出的经由点,因此存在如果没有由用户指定适当的经由点,则移动的动作时间变长这样的问题。
本发明就是鉴于上述情况而提出的,其目的在于得到即使不由用户指定适当的经由点,也能够避免机器人和障碍物的碰撞并且抑制移动的动作时间的机器人控制装置。
为了解决上述的课题,并达到目的,本发明的机器人控制装置具有:轴电动机控制部,其控制对使机器人的关节移动的多个轴各自进行驱动的各轴电动机;以及存储部,其对机器人的信息即机器人信息、包含机器人的特定位置开始动作的动作起点的信息和机器人的特定位置结束动作的动作终点的信息在内的端点信息及障碍物相对于机器人的信息即障碍物信息进行存储。另外,本发明的机器人控制装置具有动作指令生成部,其基于机器人信息及端点信息而生成向在不考虑障碍物而使机器人的特定位置从动作起点移动至动作终点为止的情况下移动的动作时间即第1动作时间变得最短的各轴电动机的动作指令即第1动作指令,并且对轴之中的在通过第1动作指令动作的情况下动作时间变得最长的轴进行选择而作为代表轴。第1动作指令包含向代表轴以外的轴即其他轴的动作指令即其他轴指令和向代表轴的动作指令即代表轴指令。动作指令生成部基于机器人信息及端点信息对其他轴指令进行调整,以使得缩短其他轴指令的动作时间即第2动作时间,动作指令生成部在基于障碍物信息而判断为与包含代表轴指令及调整后的其他轴指令在内的第2动作指令相对应的第1轨道是避免机器人和障碍物的碰撞的轨道的情况下,将与第1轨道相对应的第2动作指令输出至轴电动机控制部。
发明的效果
本发明所涉及的机器人控制装置具有下述效果,即,即使不由用户指定适当的经由点,也能够避免机器人和障碍物的碰撞并且抑制移动的动作时间。
附图说明
图1是表示具有实施方式1所涉及的机器人控制装置的机器人系统的概略结构的图。
图2是表示由实施方式1所涉及的机器人控制装置进行控制的机器人的一个例子的图。
图3是表示实施方式1所涉及的机器人控制装置的结构的图。
图4是表示通过实施方式1所涉及的机器人控制装置进行的轨道生成的处理顺序的流程图。
图5是用于对实施方式1所涉及的机器人控制装置所选择的代表轴进行说明的图。
图6是用于对实施方式1所涉及的机器人控制装置所设定的经由区域进行说明的图。
图7是表示实施方式1所涉及的机器人控制装置基于经由区域而生成轨道的处理的详细的处理顺序的流程图。
图8是用于对由实施方式1所涉及的机器人控制装置生成其他轴的临时动作指令的处理进行说明的图。
图9是用于对在由实施方式1所涉及的机器人控制装置生成其他轴的临时动作指令时使用的临时中继点进行说明的图。
图10是表示由实施方式1所涉及的机器人控制装置对其他轴的动作指令进行调整的处理的处理顺序的流程图。
图11是用于对由实施方式1所涉及的机器人控制装置使其他轴的动作指令的加减速定时偏移的处理进行说明的图。
图12是用于对由实施方式1所涉及的机器人控制装置使其他轴的动作指令的临时中继点处的轴角度偏移以使得缩短动作时间的处理进行说明的图。
图13是用于对由实施方式1所涉及的机器人控制装置通过使代表轴的动作指令的开始定时偏移从而对代表轴的动作指令进行调整的处理进行说明的图。
图14是用于对由实施方式1所涉及的机器人控制装置通过对动作中的代表轴的最高速度进行变更从而对代表轴的动作指令进行调整的处理进行说明的图。
图15是表示具有实施方式2所涉及的机器人控制装置的机器人系统的概略结构的图。
图16是用于对实施方式2所涉及的机器人控制装置所设定的经由区域进行说明的图。
图17是表示实施方式2所涉及的机器人控制装置基于经由区域而生成轨道的处理的详细的处理顺序的流程图。
图18是用于对由实施方式2所涉及的机器人控制装置生成其他轴的临时动作指令的处理进行说明的图。
图19是表示由实施方式2所涉及的机器人控制装置对其他轴的动作指令进行调整的处理的处理顺序的流程图。
图20是用于对由实施方式2所涉及的机器人控制装置合并的连续方向的动作指令进行说明的图。
图21是用于对由实施方式2所涉及的机器人控制装置使其他轴的动作指令的加减速定时偏移以使得缩短动作时间的处理进行说明的图。
图22是用于对由实施方式2所涉及的机器人控制装置使其他轴的动作指令的临时中继点处的轴角度偏移以使得缩短动作时间的处理进行说明的图。
图23是用于对由实施方式2所涉及的机器人控制装置通过使代表轴的动作指令的开始定时偏移从而对代表轴的动作指令进行调整的处理进行说明的图。
图24是用于对由实施方式2所涉及的机器人控制装置通过对动作中的代表轴的最高速度一并变更从而对代表轴的动作指令进行调整的处理进行说明的图。
图25是用于对由实施方式2所涉及的机器人控制装置通过对动作中的代表轴的最高速度进行局部变更从而对代表轴的动作指令进行调整的处理进行说明的图。
图26是用于对由实施方式2所涉及的机器人控制装置将经由区域变更至从干涉点分离特定距离的空间的处理进行说明的图。
图27是用于对由实施方式2所涉及的机器人控制装置将经由区域变更至在内部不包含障碍物的位置的处理进行说明的图。
图28是表示通过实施方式3所涉及的机器人控制装置进行的轨道生成的处理顺序的流程图。
图29是表示由实施方式3所涉及的机器人控制装置对其他轴的动作指令进行调整的处理的处理顺序的流程图。
图30是用于对实施方式3所涉及的机器人控制装置所使用的各轴电动机的动作指令进行说明的图。
图31是表示由实施方式3所涉及的机器人控制装置对全轴的动作指令进行调整的处理的处理顺序的流程图。
图32是表示实施方式1至3所涉及的机器人控制装置的硬件结构的图。
具体实施方式
下面,基于附图,对本发明的实施方式所涉及的机器人控制装置、机器人控制方法及机器人控制程序详细地进行说明。
实施方式1
图1是表示具有实施方式1所涉及的机器人控制装置的机器人系统的概略结构的图。机器人系统100具有机器人101和对机器人101进行控制的机器人控制装置200。机器人101是保持工件103而输送工件103的装置,具有对工件103进行保持的指尖工具102。机器人101被用于产品的生产等。
工件103是机器人101的输送对象。机器人控制装置200是对机器人101所具有的各电动机进行控制,由此对与各电动机连接的轴各自的动作进行控制的计算机。机器人控制装置200对机器人101所具有的轴的动作进行控制,由此对指尖工具102的位置进行控制。
此外,在下面的说明中,将保持有工件103的状态的指尖工具102称为指尖工具102。因此,机器人控制装置200对机器人101进行控制,以使得包含指尖工具102在内的机器人101不与障碍物31碰撞。在下面的说明中,作为机器人101和障碍物31碰撞的例子,对指尖工具102和障碍物31的碰撞进行说明。即,实施方式1的机器人控制装置200对机器人101进行控制,以使得指尖工具102不与障碍物31碰撞。具体地说,机器人控制装置200在指尖工具102从动作起点PS移动至动作终点PG为止时,对机器人101进行控制以使得指尖工具102不与障碍物31碰撞。
图2是表示由实施方式1所涉及的机器人控制装置进行控制的机器人的一个例子的图。在图2中,图示出机器人101所具有的轴。在图2中,对机器人101具有第1轴A1至第6轴A6这6个轴的情况进行说明,但机器人101所具有的轴数也可以小于或等于5轴,也可以大于或等于7轴。机器人101使第1轴A1至第6轴A6进行动作,由此使指尖工具102移动。
图3是表示实施方式1所涉及的机器人控制装置的结构的图。机器人控制装置200具有障碍物模型存储部21、机器人模型存储部22、端点存储部23、动作指令生成部24和各轴电动机控制部。机器人101具有各轴电动机和各轴编码器。
机器人控制装置200的各轴电动机控制部以机器人101的轴的数量进行配置。因此,机器人控制装置200的各轴电动机控制部是第1轴电动机控制部B1至第6轴电动机控制部B6这6个。此外,在图3中,省略了第2轴电动机控制部B2至第5轴电动机控制部B5的图示。
机器人101的各轴电动机以机器人101的轴的数量进行配置。因此,机器人101的各轴电动机是第1轴电动机M1至第6轴电动机M6这6个。此外,在图3中,省略了第2轴电动机M2至第5轴电动机M5的图示。
机器人101的各轴编码器以机器人101的轴的数量进行配置。因此,机器人101的各轴编码器是第1轴编码器E1至第6轴编码器E6这6个。此外,在图3中,省略了第2轴编码器E2至第5轴编码器E5的图示。
障碍物模型存储部21对障碍物31等的包含于机器人系统100内的全部障碍物的障碍物信息进行存储。障碍物模型的障碍物信息是表示障碍物31的形状及设置位置的信息。障碍物信息的例子是障碍物31的3DCAD(Three Dimensional Computer Aided Design、3维CAD)数据。另外,障碍物信息也可以是从外面包含障碍物31的简易模型的形状及位置信息。
机器人模型存储部22对与机器人101相关的信息即机器人信息进行存储。机器人信息至少包含有表示机器人101的形状的形状信息、表示机器人101的尺寸的尺寸信息、各轴电动机能够实现的旋转的最高速度、各轴电动机的扭矩的限制的信息即扭矩限制信息及各轴电动机能够实现的旋转角的角度范围的信息。
端点存储部23对与动作起点PS及动作终点PG相关的信息即端点信息进行存储。在端点信息中包含有动作起点PS处的指尖工具102的坐标、指尖工具102的姿态的信息及机器人101的各轴的关节角度的信息。另外,在端点信息中包含有动作终点PG处的指尖工具102的坐标、指尖工具102的姿态的信息及机器人101的各轴的关节角度的信息。
动作指令生成部24连接于障碍物模型存储部21、机器人模型存储部22、端点存储部23。动作指令生成部24从障碍物模型存储部21读出障碍物信息,从机器人模型存储部22读出机器人信息,从端点存储部23读出端点信息。
动作指令生成部24基于障碍物信息、机器人信息及端点信息,生成一边避开在机器人系统100内配置的障碍物31,一边从指定出的动作起点PS移动至动作终点PG为止时的指尖工具102的轨道。具体地说,动作指令生成部24基于机器人信息及端点信息,生成满足针对机器人101的限制的轨道,基于生成的轨道及障碍物信息,判断轨道是否与障碍物31碰撞。下面,有时将障碍物信息、机器人信息及端点信息称为动作信息。动作指令生成部24将与生成的轨道相对应的各轴电动机的动作指令输出至各轴电动机控制部。
在机器人101内的各轴电动机连接有各轴编码器。各轴编码器实时地取得各轴电动机的关节角度的数据即关节角数据,向各轴电动机控制部进行反馈。
各轴电动机控制部使用从各轴编码器发送来的关节角数据,对各轴电动机进行反馈控制。
接下来,对由动作指令生成部24生成指尖工具102的轨道的顺序进行说明。图4是表示通过实施方式1所涉及的机器人控制装置进行的轨道生成的处理顺序的流程图。
动作指令生成部24读出动作信息(步骤S110)。在动作信息中包含有障碍物信息、机器人信息和端点信息。具体地说,动作指令生成部24从障碍物模型存储部21读出障碍物信息,从机器人模型存储部22读出机器人信息,从端点存储部23读出端点信息。在端点信息中包含有动作起点PS及动作终点PG处的机器人101的各轴的关节角度。
接下来,动作指令生成部24生成从动作起点PS至动作终点PG为止的关节插补轨道R0(步骤S120)。关节插补轨道R0是在指尖工具102不考虑障碍物31而从动作起点PS移动至动作终点PG为止时,机器人101的动作时间变得最短的轨道。
动作指令生成部24基于关节插补轨道R0,生成各轴的动作指令。与关节插补轨道R0相对应的动作指令是第1动作指令。在该第1动作指令中,包含有向其他轴的动作指令即其他轴指令和向代表轴的动作指令即代表轴指令。通过第1动作指令使机器人101动作的情况下的动作时间是第1动作时间。
在实施方式1中,对机器人控制装置200作为动作指令而使用机器人101所包含的各轴的速度指令值的情况进行说明。动作指令生成部24将生成的关节插补轨道R0设定为临时轨道。
接下来,动作指令生成部24从各轴中选择针对临时轨道的动作时间的贡献度最大的轴即代表轴。即,动作指令生成部24从各轴中对决定临时轨道的动作时间的代表轴进行选择(步骤S130)。另外,动作指令生成部24从临时轨道所包含的各轴的动作指令中,对代表轴的动作指令进行选择。
在实施方式1中,代表轴定义为是从动作起点PS至动作终点PG为止的角度变化量相对于各轴电动机能够输出的最高速度变得最大的轴。代表轴在不考虑障碍物31而从动作起点PS至动作终点PG为止以最短时间进行动作的情况下,能够视作对动作时间的贡献度最大的轴即动作时间最长的轴。
代表轴在不考虑障碍物31而从动作起点PS至动作终点PG为止以最短时间进行动作的情况下,成为在至少1个轴的角度变化量充分地变大的动作中,对轴进行驱动的轴电动机的角速度与轴电动机能够实现的最高速度一致的轴。另外,在全部轴的角度变化量小的情况下,代表轴成为在动作中达到的最高速度相对于轴电动机能够实现的最高速度之比小于1而最大的轴。此外,在下面的说明中,有时将代表轴以外的轴称为其他轴。
图5是用于对实施方式1所涉及的机器人控制装置所选择的代表轴进行说明的图。在这里,对机器人101的轴数为3个的情况下的代表轴进行说明。图5示出了通过关节插补轨道R0使机器人101进行动作的情况下的与代表轴及其他轴的速度指令值相对应的角速度的变化。
下面,有时将代表轴或者其他轴称为轴j。另外,有时将代表轴称为代表轴j′。在图5中,示出了针对代表轴j′的角速度的图形、针对代表轴以外的轴即其他轴j_b的角速度的图形和针对代表轴j′以外的轴即其他轴j_c的角速度的图形。各图形的横轴为时间,纵轴为轴的角速度。
图5的上部所示的图形是与针对代表轴j′的速度指令值相对应的角速度的图形,中部所示的图形是与针对其他轴j_b的速度指令值相对应的角速度的图形,下部所示的图形是与针对其他轴j_c的速度指令值相对应的角速度的图形。动作指令生成部24作为代表轴j′,对满足以下的式(1)的轴j进行选择。
【式1】
Figure BDA0004014222640000091
在这里,θSj是动作起点PS处的轴j的角度,θGj是动作终点PG处的轴j的角度,v_maxj是轴j的轴电动机能够实现的最高速度。式(1)是对决定临时动作的动作时间的代表轴j′进行选择的算式。式(1)的右边示出了轴j的角度变化量相对于轴j的轴电动机能够实现的最高速度v_maxj处于何种程度的大小。将角度变化量除以最高速度v_maxj而得到的值变得最大的轴j成为代表轴j′。即,轴j的角度变化量相对于轴电动机能够输出的最高速度v_maxj的比例变得最大的轴是代表轴。
如与针对代表轴j′的速度指令值相对应的角速度的图形所示,在代表轴j′的角度变化量充分大的情况下,在动作中实现的代表轴j′的轴电动机的最高速度v-j′与代表轴j′的轴电动机能够实现的最高速度v_maxj′一致。“-”是连接号,附加在vj′的上部。以下,同样地“-”全部是连接号。动作指令生成部24在临时轨道中,基于以下的式(2)对由代表轴j′以外的其他轴实现的电动机的最高速度vj-进行计算。
【式2】
Figure BDA0004014222640000101
在图5中,将其他轴j_b的轴电动机能够实现的最高速度通过v_maxj_b表示,将其他轴j_c的轴电动机能够实现的最高速度通过v_maxj_c表示。另外,在临时轨道中将在其他轴j_b的动作中实现的其他轴j_b的最高速度通过最高速度v-j_b表示,在临时轨道中将在其他轴j_c的动作中实现的其他轴j_c的最高速度通过最高速度v-j_c表示。
动作指令生成部24如果对代表轴的动作指令进行选择,则对第1重复计数器进行初始化。即,动作指令生成部24对第1重复计数器代入i=1(步骤S140)。第1重复计数器是后面记述的对重复进行变更经由区域的处理时的重复次数进行计数的计数器。第1重复计数器在步骤S220的处理中被使用。
接下来,动作指令生成部24对经由区域的候选进行设定,从候选中对指尖工具102的特定位置所经过的经由区域进行指定(步骤S150)。
图6是用于对实施方式1所涉及的机器人控制装置所设定的经由区域进行说明的图。在图6中,作为经由区域的候选的例子,图示出经由区域601和经由区域603。
经由区域的候选是由用户基于障碍物31的配置而预先设定的。此外,动作指令生成部24也可以基于从障碍物模型存储部21取得的障碍物信息,将经由区域的候选设定为不存在障碍物31的区域。
动作指令生成部24在对经由区域进行指定时,从多个经由区域的候选中对1个经由区域进行指定。在这里,对由动作指令生成部24指定出经由区域601的情况进行说明。动作指令生成部24生成在任意的时刻指尖工具102的特定位置经过经由区域601的任意位置的轨道602。
动作指令生成部24相对于以机器人101的整体为基准的机器人动作空间即XYZ空间,生成经由区域601、603及轨道602。此外,动作指令生成部24也可以相对于以机器人101的关节角为基准的关节角空间,生成经由区域601、603及轨道602。
动作指令生成部24在指定出经由区域后,对第2重复计数器进行初始化。即,动作指令生成部24对第2重复计数器代入i2=1(步骤S160)。第2重复计数器是对重复进行针对1个经由区域而生成轨道的处理时的重复次数进行计数的计数器。第2重复计数器在步骤S210的处理中被使用。
动作指令生成部24在对第2重复计数器进行初始化后,基于通过步骤S150选择出的经由区域而生成轨道。在该情况下,动作指令生成部24基于生成轨道,生成代表轴以外的其他轴的动作指令和代表轴的动作指令。
动作指令生成部24在前述的其他轴的动作指令的动作时间比第1动作时间长的情况下,对其他轴的动作指令进行调整而生成与关节插补轨道R0不同的轨道,缩短生成轨道的动作时间(步骤S170)。与其他轴的动作指令相对应的机器人101的动作时间是第2动作时间。在步骤S170中,动作指令生成部24对其他轴的动作指令进行调整,以使得第2动作时间变短。
包含其他轴的调整后的动作指令及没有调整的代表轴的动作指令在内的动作指令是第2动作指令。与该第2动作指令相对应的轨道是第1轨道。动作指令生成部24在对其他轴的动作指令进行调整后,使用调整后的动作指令而生成轨道。该轨道有时成为避开障碍物31的轨道。
另外,动作指令生成部24判断生成的轨道是否满足特定的条件。具体地说,动作指令生成部24基于障碍物信息,判断生成的轨道即生成轨道是否避开障碍物31(步骤S180)。此外,关节插补轨道R0是与最短的动作时间相对应的轨道,因此生成轨道中的动作时间与关节插补轨道R0相比不会变短。另外,在这里,由于仅对其他轴的动作指令进行调整,因此生成轨道中的动作时间与关节插补轨道R0相比不会变长。即,在该时刻,生成轨道中的动作时间与关节插补轨道R0中的动作时间相同,成为最短动作时间。
在生成轨道避开障碍物31的情况下(步骤S180,Yes),动作指令生成部24跳转至步骤S260的处理。即,动作指令生成部24将与最短动作时间的生成轨道相对应的动作指令进行输出。在这里的动作指令生成部24所存储的生成轨道是最短动作时间的生成轨道。因此,动作指令生成部24将第2动作指令之中的与避开障碍物31的第1轨道相对应的动作指令进行输出。
在生成轨道与障碍物31发生干涉的情况下(步骤S180,No),动作指令生成部24对代表轴的动作指令进行调整,使用调整后的动作指令而生成轨道(步骤S190)。包含其他轴的调整后的动作指令及代表轴的调整后的动作指令在内的动作指令是第3动作指令。通过该第3动作指令产生的机器人101的动作时间是第3动作时间,与第3动作指令相对应的轨道是第2轨道。下面,有时将通过步骤S170、S190调整后的动作指令称为调整完成的动作指令。
动作指令生成部24判断生成轨道是否满足特定的条件。具体地说,动作指令生成部24基于其他轴及代表轴的调整完成的动作指令而生成轨道。而且,动作指令生成部24判断生成轨道是否避开障碍物31且是否满足生成轨道中的动作时间=关节插补轨道R0中的动作时间(步骤S200)。此时,动作指令生成部24基于障碍物信息,判断生成轨道是否避开障碍物31。
在满足步骤S200的条件的情况下(步骤S200,Yes),动作指令生成部24将与最短动作时间的生成轨道相对应的动作指令输出至各轴电动机控制部(步骤S260)。动作指令生成部24基于所存储的生成轨道,对动作时间进行计算。动作指令生成部24从各动作时间中对最短动作时间进行选择,将与最短动作时间的生成轨道相对应的动作指令进行输出。在这里的动作指令生成部24将第3动作指令之中的与避开障碍物31、成为最短动作时间的第2轨道相对应的动作指令进行输出。
在不满足步骤S200的条件的情况下(步骤S200,No),动作指令生成部24判断第2重复计数器的计数值是否成为所设定的最大值。即,动作指令生成部24判断是否成为i2=最大重复次数(步骤S210)。
在不成为i2=最大重复次数的情况下(步骤S210,No),动作指令生成部24在i2加上1(步骤S230),返回至步骤S170的处理。
在该情况下,动作指令生成部24对表示机器人101的动作条件的动作指令参数进行变更而执行步骤S170的处理。即,动作指令生成部24一边对动作指令参数进行变更,一边对能够避免碰撞的动作指令进行探索。具体地说,动作指令生成部24作为动作指令参数,将各轴电动机的角度变化的次数、各角度变化的开始定时、各角度变化中的最高速度、各轴电动机输出最高速度的时间的长度即输出时间、各角度变化中的加速度及各角度变化中的减速度的至少1个变更为新的值而执行步骤S170的处理。
由此,动作指令生成部24历经多次而执行步骤S170的处理,因此能够通过多个条件执行步骤S170的处理。各轴电动机的1次角度变化是在从各轴电动机的速度为0的状态起进行加速或者减速后,各轴电动机的速度再次成为0为止的动作。
在成为i2=最大重复次数的情况下(步骤S210,Yes),动作指令生成部24判断第1重复计数器的计数值是否成为所设定的最大值。即,动作指令生成部24判断是否成为i=最大重复次数(步骤S220)。
在成为i=最大重复次数的情况下(步骤S220,Yes),动作指令生成部24将与最短动作时间的生成轨道相对应的动作指令输出至各轴电动机控制部(步骤S260)。
在不成为i=最大重复次数的情况下(步骤S220,No),动作指令生成部24对经由区域进行变更(步骤S240)。即,动作指令生成部24从所设定的经由区域中对其他经由区域进行指定。而且,动作指令生成部24在i加上1(步骤S250),返回至步骤S160的处理。
在这里,对动作指令生成部24基于经由区域而生成轨道的处理进行说明。图7是表示实施方式1所涉及的机器人控制装置基于经由区域而生成轨道的处理的详细的处理顺序的流程图。以下进行说明的步骤S310至S430的处理与在图4中说明的步骤S170至S200的处理相对应。
动作指令生成部24对第2重复计数器进行初始化,即,对第2重复计数器代入i2=1(步骤S160)。
动作指令生成部24如果对第2重复计数器代入i2=1,则在经由区域内的任意的一点对指尖工具102的特定位置所经过的临时的中继点(以下,称为临时中继点PR)进行设定(步骤S310)。
另外,动作指令生成部24决定机器人101的各轴电动机的电动机角度,以使得指尖工具102的特定位置到达临时中继点PR。换言之,动作指令生成部24决定临时中继点PR处的机器人101的各轴电动机的电动机角度(步骤S320)。即,动作指令生成部24针对经由区域内的临时中继点PR,对包含指尖工具102在内的关节角的组进行设定。
此外,也可以取代动作指令生成部24,而是由用户作为临时中继点PR,对经由区域内的任意的位置和此时的机器人101的姿态进行指定。另外,动作指令生成部24也可以作为临时中继点PR而随机地对经由区域内的点进行选择。临时中继点PR不是必须在轨道上经过,而是为了对初始轨道进行计算而临时指定的。
接下来,动作指令生成部24对通过步骤S320决定出的各轴电动机的电动机角度中的各轴电动机的角速度进行指定。即,动作指令生成部24通过决定出的关节角对经过临时中继点PR时的经过速度进行指定(步骤S330)。在这里被指定的角速度是为了对初始轨道进行计算而临时设定的角速度。
接下来,动作指令生成部24基于端点信息、指定出的临时中继点PR的位置及指定出的角速度,对在动作起点PS、动作终点PG、临时中继点PR处各轴的驱动所能够使用的最大驱动扭矩进行计算(步骤S340)。接下来,动作指令生成部24生成代表轴以外的轴即其他轴的临时动作指令(步骤S350)。
图8是用于对由实施方式1所涉及的机器人控制装置生成其他轴的临时动作指令的处理进行说明的图。图9是用于对在由实施方式1所涉及的机器人控制装置生成其他轴的临时动作指令时使用的临时中继点进行说明的图。如图9所示,临时中继点PR设定于经由区域601内。
图8的上部所示的图形是针对代表轴j′的角速度的图形。另外,中部所示的图形是其他轴j_b在动作起点PS处通过最大驱动扭矩进行了加速的情况下的角速度的图形,下部所示的图形是其他轴j_b在临时中继点PR处通过最大驱动扭矩进行了加速的情况下的角速度的图形。各图形的横轴为时间,纵轴为角速度。
首先,对图8的上部所示的图形进行说明。动作指令生成部24使用关节插补轨道R0的代表轴j′的动作指令,求出从动作起点PS至临时中继点PR为止的动作时间t1、从临时中继点PR至动作终点PG为止的动作时间t2。从动作起点PS处的代表轴j′的角度θSj′至临时中继点PR处的代表轴j′的角度θRj′为止的角度变化量与从时刻t=0至t1为止的代表轴j′的动作指令的积分值一致的时刻成为t1
接下来,使用图8的中部所示的图形对向代表轴j′以外的轴j_b的临时动作指令的生成方法进行说明。动作指令生成部24对在动作起点PS处通过最大驱动扭矩进行了加速的情况下的指令直线L1的斜率进行计算。另外,动作指令生成部24对直至临时中继点PR为止通过最大驱动扭矩进行了减速的情况下的指令直线L2的斜率进行计算。并且,动作指令生成部24生成表示机器人101的各轴电动机能够实现的最高速度的指令直线L3。
动作指令生成部24对由指令直线L1、L2、L3及角速度0的直线这4条直线包围的梯形的面积S1进行计算。在这里,指令直线L1和角速度0的直线之间的交点是时刻t=0。动作指令生成部24决定成为指令直线L2和角速度0的直线之间的交点的时刻,以使得面积S1的值等于从轴j_b的动作起点PS至临时中继点PR为止的角度变化量的绝对值|θRj-θSj|。从时刻t=0至成为指令直线L2和角速度0的直线之间的交点的时刻为止的动作时间是动作时间t1j。因此,指令直线L2和角速度0的直线之间的交点是时刻t1j。θSj是动作起点PS处的轴j_b的角度,θRj是临时中继点PR处的轴j_b的角度。
如果将指令直线L1的斜率设为a(>0),将指令直线L2的斜率设为b(<0),则动作指令生成部24能够基于以下的式(3)对指令直线L2和角速度0的直线之间的交点即时刻t1j进行计算。
【式3】
Figure BDA0004014222640000161
在这里,在t1j>t1的情况下,由前述4条直线包围的梯形的波形成为从动作起点PS至临时中继点PR为止的轴j_b的动作指令。
另一方面,在t1j≤t1的情况下,动作指令生成部24将动作中的最高速度从v_maxj变更为ovrd1j*v_maxj,以使得从动作起点PS至临时中继点PR为止的动作时间成为t1。动作指令生成部24通过关于ovrd1j而解以下的式(4),从而对ovrd1j*v_maxj进行计算。
Figure BDA0004014222640000162
接下来,对图8的下部所示的图形进行说明。动作指令生成部24对从临时中继点PR起通过最大驱动扭矩进行了加速的情况下的指令直线L5的斜率进行计算。并且,动作指令生成部24对直至动作终点PG为止通过最大驱动扭矩进行了减速的情况下的指令直线L6的斜率进行计算。在此基础上,动作指令生成部24生成表示机器人101的各轴电动机能够实现的最高速度的指令直线L7。
动作指令生成部24对由指令直线L5、L6、L7及角速度0的直线这4条直线包围的梯形的面积S2进行计算。
动作指令生成部24决定指令直线L6和角速度0的直线之间的交点即时刻t1j+t2j,以使得S2的值等于从轴j_b的临时中继点PR至动作终点PG为止的角度变化量的绝对值|θGj-θRj|。θGj是动作终点PG处的轴j_b的角度,θRj是临时中继点PR处的轴j_b的角度。在这里,角速度0的直线和指令直线L5之间的交点是时刻t1j的点。因此,从时刻t1j至成为指令直线L6和角速度0的直线之间的交点的时刻t1j+t2j为止的动作时间是动作时间t2j
如果将指令直线L5的斜率设为c(>0),将指令直线L6的斜率设为d(<0),则动作指令生成部24能够基于以下的式(5)对指令直线L6和角速度0的直线之间的交点即时刻t1j+t2j进行计算。
【式5】
Figure BDA0004014222640000171
在这里,在t2j>t2的情况下,由指令直线L5、L6、L7及角速度0的直线这4条包围的梯形的波形成为从临时中继点PR至动作终点PG为止的轴j_b的动作指令。
另一方面,在t2j≤t2的情况下,动作指令生成部24将动作中的最高速度从v_maxj变更为ovrd2j*v_maxj,以使得从临时中继点PR至动作终点PG为止的动作时间成为t2。动作指令生成部24通过关于ovrd2j而解以下的式(6),从而对ovrd2j*v_maxj进行计算。
【式6】
Figure BDA0004014222640000172
以下进行说明的步骤S360的处理与在图4中说明的步骤S170的处理相对应,步骤S370至S380的处理与在图4中说明的步骤S180的处理相对应。
动作指令生成部24在生成其他轴的临时动作指令后,对其他轴的动作指令进行调整(步骤S360)。动作指令生成部24生成对其他轴的动作指令进行调整后的轨道。关于对其他轴的动作指令进行调整的步骤S360的处理的详细内容在后面记述。在实施方式1中,在对其他轴的动作指令进行调整之后,对代表轴的动作指令进行调整。
接下来,动作指令生成部24基于调整完成的其他轴的动作指令及代表轴的动作指令,对轨道中的动作时间进行计算,判断轨道中的动作时间是否满足特定条件。
具体地说,动作指令生成部24在基于调整完成的其他轴的动作指令及代表轴的动作指令而使机器人101动作的情况下,判断针对机器人101的生成轨道是否避开障碍物31(步骤S370)。即,动作指令生成部24在通过与动作指令相对应的轨道使机器人101动作的情况下,判断机器人101的整体即机器人101主体、指尖工具102及工件103是否与障碍物31发生碰撞。
在生成轨道与障碍物31发生干涉的情况下(步骤S370,No),动作指令生成部24不使生成轨道存储为输出轨道的候选,而是对代表轴的动作指令进行调整(步骤S400)。动作指令生成部24可以通过使动作指令的开始定时偏移从而对代表轴的动作指令进行调整,也可以通过对动作中的最高速度进行变更从而对代表轴的动作指令进行调整。
另一方面,在生成轨道避开障碍物31的情况下(步骤S370,Yes),动作指令生成部24将生成轨道存储为输出轨道的候选(步骤S380)。此外,动作指令生成部24也可以对输出轨道的候选和与输出轨道的候选相对应的动作指令一起进行存储。随后,动作指令生成部24跳转至步骤S260的处理。
在这里,对步骤S360的详细的处理即调整其他轴的动作指令的处理进行说明。图10是表示由实施方式1所涉及的机器人控制装置对其他轴的动作指令进行调整的处理的处理顺序的流程图。
动作指令生成部24将通过图7的步骤S350生成的临时动作指令设定为暂时性的动作指令即暂时动作指令(步骤S510)。
接下来,动作指令生成部24对暂时动作指令下的动作时间超过关节插补轨道R0中的动作时间的全部其他轴进行选择(步骤S520)。
接下来,动作指令生成部24使动作指令的加减速定时偏移,以使得将选择出的其他轴的动作时间缩短(步骤S530)。具体地说,动作指令生成部24决定加减速定时的偏移量以使得将选择出的其他轴的动作时间缩短,基于决定出的加减速定时的偏移量而生成动作指令。由此,动作指令生成部24对动作指令进行变更,以使得选择出的其他轴的动作时间缩短。
图11是用于对由实施方式1所涉及的机器人控制装置使其他轴的动作指令的加减速定时偏移的处理进行说明的图。在图11中,对作为其他轴而选择出轴j的情况进行说明。
图11的上部所示的图形是与针对代表轴的速度指令值相对应的角速度的图形,中部所示的图形是与针对其他轴的变更前的速度指令值相对应的角速度的图形,下部所示的图形是与针对其他轴的变更后的速度指令值相对应的角速度的图形。各图形的横轴为时间,纵轴为轴的角速度。在图11的下部所示的图形中,将变更前的角速度的波形通过虚线示出,将变更后的角速度的波形通过实线示出。此外,在图11及其以后的附图中,在记载有虚线的波形和实线的波形这两者的图形中,虚线的波形是变更前的角速度,实线的波形是变更后的角速度。
动作指令生成部24基于通过步骤S350生成的临时动作指令,对从轴j的动作起点PS至临时中继点PR为止的动作时间t1j和从代表轴的动作起点PS至临时中继点PR为止的动作时间t1进行计算。动作指令生成部24确认t1j=t1是否成立。
接下来,动作指令生成部24基于通过步骤S350生成的临时动作指令,对从轴j的临时中继点PR至动作终点PG为止的动作时间t2j和从代表轴的临时中继点PR至动作终点PG为止的动作时间t2进行计算。动作指令生成部24确认t2j=t2是否成立。
动作指令生成部24在t1j=t1和t2j=t2这两者不成立的情况下,不对轴j的动作指令的加减速定时进行变更。
在图11中,示出了仅t1j=t1成立,t2j=t2不成立的情况。在该情况下,从动作起点PS至临时中继点PR为止的动作中的轴j的轴电动机的最高速度ovrd1j*v_maxj没有达到轴j的轴电动机能够实现的最高速度v_maxj。因此,动作指令生成部24在从动作起点PS至临时中继点PR为止的动作中的轴j的轴电动机的最高速度使用满足ovrd1j<ovrd1j_New<1的ovrd1j_New。即,动作指令生成部24将从动作起点PS至临时中继点PR为止的动作中的轴j的轴电动机的最高速度变更为ovrd1j_New*v_maxj
另外,动作指令生成部24作为动作起点PS处的加速度,使用通过步骤S350计算出的指令直线L1的斜率,即,在图8中说明的指令直线L1的斜率。同样地,动作指令生成部24作为临时中继点PR处的减速度,使用通过步骤S350计算出的指令直线L2的斜率,即,在图8中说明的指令直线L2的斜率。
此外,动作指令生成部24可以在经由区域内的轨道生成每次重复时对ovrd1j_New的值进行变更。换言之,动作指令生成部24可以在步骤S210中每次判断是否成为i2=最大重复次数时,对ovrd1j_New的值进行变更。动作指令生成部24例如在重复的初始时设定为ovrd1j_New=1,在重复次数每次增加时使ovrd1j_New分别减小一定量。
动作指令生成部24使用以下的式(7),对从轴j的动作起点PS至临时中继点PR为止的动作时间t1j的变更后的动作时间t1j_New进行计算。
【式7】
Figure BDA0004014222640000201
接下来,对仅t2j=t2成立,t1j=t1不成立的情况进行说明。在该情况下,从临时中继点PR至动作终点PG为止的动作中的轴j的电动机的最高速度ovrd2j*v_maxj没有达到轴j的电动机能够实现的最高速度v_maxj。因此,动作指令生成部24在从临时中继点PR至动作终点PG为止的动作中的轴j的电动机的最高速度使用满足ovrd2j<ovrd2j_New<1的ovrd2j_New。即,动作指令生成部24将从临时中继点PR至动作终点PG为止的动作中的轴j的电动机的最高速度变更为ovrd2j_New*v_maxj
另外,动作指令生成部24作为临时中继点PR处的加速度,使用通过步骤S350计算出的指令直线L5的斜率,即,在图8中说明的指令直线L5的斜率。同样地,动作指令生成部24作为动作终点PG处的减速度,使用通过步骤S350计算出的指令直线L6的斜率,即,在图8中说明的指令直线L6的斜率。
此外,动作指令生成部24可以在经由区域内的轨道生成每次重复时对ovrd2j_New的值进行变更。换言之,动作指令生成部24可以在步骤S210中每次判断是否成为i2=最大重复次数时,对ovrd2j_New的值进行变更。动作指令生成部24例如在重复的初始时设定为ovrd2j_New=1,在重复次数每次增加时使ovrd2j_New分别减小一定量。
动作指令生成部24使用以下的式(8)对从轴j的临时中继点PR至动作终点PG为止的动作时间t2j的变更后的动作时间t2j_New进行计算。
【式8】
Figure BDA0004014222640000211
如上所述,动作指令生成部24针对在步骤S530中变更动作指令后的各其他轴,对变更后的动作指令的执行时间即与变更后的动作指令相对应的动作时间进行计算。另外,动作指令生成部24针对各其他轴,对暂时动作指令的执行时间即与暂时动作指令相对应的动作时间进行计算。
接下来,动作指令生成部24针对各其他轴,判断变更后的动作指令下的动作时间是否小于或等于暂时动作指令下的动作时间。即,动作指令生成部24针对全部其他轴,判断其他轴是否是变更后的动作指令下的动作时间=暂时动作指令下的动作时间(步骤S540)。
在其他轴中的变更后的动作指令下的动作时间=暂时动作指令下的动作时间的情况下(步骤S540,Yes),动作指令生成部24将变更后的动作指令存储为输出轨道的候选。即,针对变更后的动作指令下的动作时间=暂时动作指令下的动作时间的其他轴,动作指令生成部24将变更后的动作指令设定为暂时动作指令(步骤S550)。
动作指令生成部24针对变更后的动作指令下的动作时间>暂时动作指令下的动作时间的其他轴(步骤S540,No),不对暂时动作指令进行变更,进入至步骤S560的处理。
动作指令生成部24对通过步骤S530变更动作指令后的其他轴之中的、暂时动作指令下的动作时间超过关节插补轨道R0中的动作时间的其他轴进行选择(步骤S560)。
接下来,动作指令生成部24使动作指令的临时中继点PR处的其他轴的角度即轴角度偏移,以使得缩短通过步骤S520选择出的其他轴的动作时间(步骤S570)。动作指令生成部24生成使临时中继点PR处的轴角度偏移后的动作指令。
图12是用于对由实施方式1所涉及的机器人控制装置使其他轴的动作指令的临时中继点处的轴角度偏移以使得缩短动作时间的处理进行说明的图。在图12中,对选择出轴j的情况进行说明。
图12的上部所示的图形是与针对代表轴的速度指令值相对应的角速度的图形,中部所示的图形是与针对其他轴的变更前的速度指令值相对应的角速度的图形,下部所示的图形是与针对其他轴的变更后的速度指令值相对应的角速度的图形。各图形的横轴为时间,纵轴为轴的角速度。
动作指令生成部24将临时中继点PR处的轴j的角度从θRj变更为θRj_New。另外,动作指令生成部24作为动作起点PS处的加速度,使用通过步骤S350计算出的指令直线L1的斜率,即,在图8中说明的指令直线L1的斜率。另外,动作指令生成部24作为临时中继点PR处的减速度,使用通过步骤S350计算出的指令直线L2的斜率,即,在图8中说明的指令直线L2的斜率。
另外,动作指令生成部24作为临时中继点PR处的加速度,使用通过步骤S350计算出的指令直线L5的斜率,即,在图8中说明的指令直线L5的斜率。另外,动作指令生成部24作为动作终点PG处的减速度,使用通过步骤S350计算出的指令直线L6的斜率,即,在图8中说明的指令直线L6的斜率。
动作指令生成部24从满足以下的式(9)的范围对θRj_New进行指定。
【式9】
RjSj|>|θRj-New-θSj| …(9)
动作指令生成部24使用以下的式(10)对从轴j的动作起点PS至临时中继点PR为止的动作时间t1j的变更后的动作时间t1j_New的值进行计算。在图12中,示出了ovrd1j_New=1的情况。
【式10】
Figure BDA0004014222640000231
动作指令生成部24使用以下的式(11)对从轴j的临时中继点PR至动作终点PG为止的动作时间t2j的变更后的动作时间t2j_New的值进行计算。在图12中,示出了ovrd2j_New=1的情况。
【式11】
Figure BDA0004014222640000232
如图12所示,动作指令生成部24使轴j的动作指令的临时中继点PR处的轴角度偏移以使得缩短动作时间,由此能够减小角度变化量。对轴角度进行变更前的梯形的面积T1和对轴角度进行变更后的梯形的面积T2之间的差分与角度变化量的削减量相对应。
接下来,动作指令生成部24针对各其他轴,判断变更后的动作指令下的动作时间是否小于或等于暂时动作指令下的动作时间。即,动作指令生成部24针对全部其他轴,判断其他轴是否是变更后的动作指令下的动作时间=暂时动作指令下的动作时间(步骤S580)。
在针对其他轴的变更后的动作指令下的动作时间=暂时动作指令下的动作时间的情况下(步骤S580,Yes),动作指令生成部24将变更后的动作指令存储为输出轨道的候选。即,针对变更后的动作指令下的动作时间=暂时动作指令下的动作时间的其他轴,动作指令生成部24将变更后的动作指令设定为暂时动作指令(步骤S590)。动作指令生成部24生成与通过步骤S550或者步骤S590设定出的暂时动作指令相对应的轨道。
在不是针对其他轴的变更后的动作指令下的动作时间=暂时动作指令下的动作时间的情况下(步骤S580,No),动作指令生成部24不对暂时动作指令进行变更。即,动作指令生成部24针对变更后的动作指令下的动作时间>暂时动作指令下的动作时间的轴,不对暂时动作指令进行变更,结束对其他轴的动作指令进行调整的处理。
以下进行说明的步骤S400的处理与在图4中说明的步骤S190的处理相对应,步骤S410至S430的处理与在图4中说明的步骤S200的处理相对应。
图13是用于对由实施方式1所涉及的机器人控制装置通过使代表轴的动作指令的开始定时偏移从而对代表轴的动作指令进行调整的处理进行说明的图。图14是用于对由实施方式1所涉及的机器人控制装置通过对动作中的代表轴的最高速度进行变更从而对代表轴的动作指令进行调整的处理进行说明的图。
图13的上部所示的图形是针对代表轴的角速度的图形,下部所示的图形是针对其他轴的角速度的图形。另外,图14的上部所示的图形是针对代表轴的角速度的图形,下部所示的图形是针对其他轴的角速度的图形。图13及图14所示的各图形的横轴为时间,纵轴为轴的角速度。
动作指令生成部24对通过步骤S360调整后的其他轴的动作指令之中的代表轴的动作指令进行调整,以使得与动作时间最长的其他轴j_l的动作时间t1jl+t2jl相匹配(步骤S400)。
动作指令生成部24基于图13所示的方法及图14所示的方法之中的任意方法,对代表轴的动作指令进行调整。在图13所示的方法和图14所示的方法中,指尖工具102所经过的位置改变。因此,动作指令生成部24例如使用一个方法而生成代表轴的动作指令,仅在生成轨道与障碍物31碰撞的情况下,使用另一个方法而生成代表轴的动作指令。
首先,使用图13,对由动作指令生成部24通过使代表轴的动作指令的开始定时偏移从而对代表轴的动作指令进行调整的方法进行说明。动作指令生成部24在调整后的代表轴的动作时间(Δt+Δt1j′+Δt2j′)不超过其他轴之中的动作时间最长的其他轴j_l的动作时间(Δt1j_l+Δt2j_l)的范围,对动作指令的开始定时的偏移量即时间Δt进行选择。
接下来,使用图14,对由动作指令生成部24通过对代表轴的动作中的最高速度进行变更从而对代表轴的动作指令进行调整的方法进行说明。动作指令生成部24将最高速度从v_maxj′变更为ovrdj′*v_maxj′。动作指令生成部24作为ovrdj′,使用关于ovrdj′而解以下的式(12)所得到的值。动作指令生成部24作为加速度及减速度,使用与调整前的代表轴的动作指令相同的值。在式(12)中,代表轴的动作指令中的加速度为a_j′,减速度为b_j′。
【式12】
Figure BDA0004014222640000251
接下来,动作指令生成部24基于其他轴的调整完成的动作指令及代表轴的调整完成的动作指令而生成轨道,判断生成轨道是否满足特定的条件。具体地说,动作指令生成部24在通过基于其他轴的调整完成的动作指令及代表轴的调整完成的动作指令的生成轨道使机器人101动作的情况下,判断指尖工具102是否与障碍物31发生干涉。即,动作指令生成部24判断生成轨道是否避开障碍物31(步骤S410)。
在生成轨道避开障碍物31的情况下(步骤S410,Yes),动作指令生成部24将生成轨道存储为输出轨道的候选(步骤S420)。此外,动作指令生成部24也可以对输出轨道的候选和与输出轨道的候选相对应的动作指令一起进行存储。
另一方面,在生成轨道与障碍物31发生干涉的情况下(步骤S410,No),动作指令生成部24不使生成轨道存储为输出轨道的候选,而是跳转至生成经过指定的经由区域的其他轨道的处理的重复处理。即,动作指令生成部24判断第2重复计数器的计数值即i2是否成为i2=最大重复次数(步骤S210)。
接下来,动作指令生成部24判断基于调整完成的其他轴的动作指令及代表轴的动作指令使机器人101动作的情况下的动作时间是否小于或等于关节插补轨道R0中的动作时间。即,动作指令生成部24判断是否生成轨道中的动作时间=关节插补轨道R0中的动作时间(步骤S430)。
在生成轨道中的动作时间=关节插补轨道R0中的动作时间的情况下(步骤S430,Yes),动作指令生成部24跳转至步骤S260的处理。在生成轨道中的动作时间>关节插补轨道R0中的动作时间的情况下(步骤S430,No),动作指令生成部24跳转至生成经过指定的经由区域的其他轨道的处理的重复处理。即,动作指令生成部24判断第2重复计数器的计数值即i2是否成为i2=最大重复次数(步骤S210)。
在不成为i2=最大重复次数的情况下(步骤S210,No),动作指令生成部24在i2加上1(步骤S230),返回至步骤S310的处理。
在成为i2=最大重复次数的情况下(步骤S210,Yes),动作指令生成部24在步骤S380或者步骤S420的处理中,判断避开障碍物31的生成轨道的存储数是否大于或等于1个(步骤S215)。
动作指令生成部24在避开障碍物31的生成轨道的存储数大于或等于1个的情况下(步骤S215,Yes),跳转至对经由区域进行变更的处理的重复处理。即,动作指令生成部24在存储有大于或等于1个避开障碍物31的轨道的情况下,跳转至在图4中说明的步骤S220的处理。
另一方面,动作指令生成部24在避开障碍物31的生成轨道的存储数为0的情况下(步骤S215,No),动作指令生成部24追加新的经由区域(步骤S216)。然后,动作指令生成部24返回至步骤S140的处理。
如图4中说明所述,在成为i=最大重复次数的情况下(步骤S220,Yes),动作指令生成部24将与最短动作时间的生成轨道相对应的动作指令输出至各轴电动机控制部(步骤S260)。
另一方面,在不成为i=最大重复次数的情况下(步骤S220,No),动作指令生成部24对经由区域进行变更(步骤S240)。而且,动作指令生成部24执行在图4中说明的步骤S250的处理,然后,返回至步骤S160的处理。
在实施方式1中,动作指令生成部24存储有机器人101和障碍物31不发生碰撞的生成轨道,将与该生成轨道相对应的动作指令进行输出,因此能够避免机器人101和障碍物31的碰撞。由此,机器人控制装置200能够使生产效率提高。
另外,动作指令生成部24即使不由用户指定经由区域,也能够对动作指令进行探索,因此与对经由区域进行指定而生成轨道的情况相比,生成动作时间缩短的轨道变得容易。
另外,动作指令生成部24首先在不对代表轴的动作指令进行变更而生成轨道的情况下,不使动作时间增加就能够生成避免碰撞的轨道。另外,动作指令生成部24在如果不对代表轴的动作指令进行变更则无法生成能够避免干涉的轨道的情况下,对代表轴的动作指令进行变更而生成轨道,因此即使在避免碰撞的轨道复杂的情况下,也能够生成能够避免干涉的轨道。
另外,动作指令生成部24基于经由区域对动作指令进行探索,因此能够削减对能够避免碰撞的动作指令进行探索所需的时间。
另外,动作指令生成部24追加最初所指定的经由区域以外的经由区域的候选,因此动作时间变得最短的轨道的导出变得容易。
如上所述,根据实施方式1,动作指令生成部24在对其他轴的动作指令进行调整后,将代表轴的动作指令从关节插补轨道R0中的代表轴的动作指令进行变更。而且,动作指令生成部24针对变更后的动作指令而生成轨道,在没有与障碍物31的干涉的情况下,将生成轨道存储为输出轨道的候选。因此,动作指令生成部24能够仅生成避免与障碍物31的碰撞且能够由机器人101执行的轨道而作为输出轨道的候选。
另外,动作指令生成部24在生成轨道中的动作时间比关节插补轨道R0中的动作时间长的情况下,对经由区域进行变更而生成新的轨道。因此,动作指令生成部24与对经由点进行限定的情况相比较,能够生成动作时间同等以下的轨道。
另外,动作指令生成部24在按照生成轨道进行动作的情况下,优先将动作时间小于或等于关节插补轨道R0中的动作时间的轨道进行输出。另外,动作指令生成部24在全部生成轨道比关节插补轨道R0中的动作时间长的情况下,在生成轨道中对动作时间最短的轨道进行选择。因此,动作指令生成部24在避免与障碍物31的干涉的轨道中,能够对动作时间变得最短的轨道进行选择。
另外,动作指令生成部24将动作时的角度变化量相对于各轴电动机能够输出的最高速度变得最大的轴设定为代表轴,对代表轴的动作指令进行选择。动作指令生成部24将选择出的代表轴的动作指令作为初始值,以避开障碍物31的方式对各轴电动机的动作指令进行探索,因此能够高效地对动作时间短的路径进行探索。并且,动作指令生成部24不将经由点指定为阳而对各轴电动机的动作指令进行探索,因此与将经由点指定为阳的情况相比较,能够缩短动作时间。
实施方式2
接下来,使用图4、图14及图15至图27对实施方式2进行说明。在实施方式2中,机器人控制装置200在存在多个经由区域的情况下生成轨道。
图15是表示具有实施方式2所涉及的机器人控制装置的机器人系统的概略结构的图。图16是用于对实施方式2所涉及的机器人控制装置所设定的经由区域进行说明的图。关于图15的各结构要素之中的与图1所示的实施方式1的机器人系统100具有同一功能的结构要素标注同一标号,省略重复的说明。
实施方式2的机器人系统100与实施方式1的机器人系统100的不同点在于,使用2个经由区域601a、601b。此外,经由区域也可以大于或等于3个。存在由多个构成的经由区域601a、601b的情况下的一个例子,是在机器人系统100内配置有多个障碍物31、32的情况。
机器人系统100的动作指令生成部24在使指尖工具102的特定位置从动作起点PS移动至动作终点PG为止时,对机器人101进行控制以使得指尖工具102不与障碍物31、32发生碰撞。
接下来,对由动作指令生成部24生成指尖工具102的轨道的顺序进行说明。在实施方式2中,动作指令生成部24也通过在实施方式1的图4中说明的处理顺序执行主要的步骤而生成轨道。因此,对在图4中说明的主要步骤的处理之中的与实施方式1不同的处理进行说明。
在实施方式2的步骤S150中,动作指令生成部24将指尖工具102的特定位置所经过的经由区域的候选设定多个。而且,动作指令生成部24从设定出的多个经由区域的候选中,对任意数量(多个)的经由区域进行设定。即,动作指令生成部24从设定出的多个经由区域的候选中对多个经由区域进行指定。动作指令生成部24例如如图16所示,对2个经由区域601a、601b进行指定。
经由区域的候选由用户基于障碍物31、32的配置而预先设定。此外,动作指令生成部24可以基于从障碍物模型存储部21取得的障碍物信息,将经由区域的候选设定为不存在障碍物31的区域。
动作指令生成部24如果对多个经由区域进行设定,则基于设定出的多个经由区域而生成轨道。具体地说,动作指令生成部24生成在任意的时刻指尖工具102的特定位置经过各经由区域的任意位置的轨道。
在实施方式2中,动作指令生成部24基于经由区域而生成轨道的处理与实施方式1不同。图17是表示实施方式2所涉及的机器人控制装置基于经由区域而生成轨道的处理的详细的处理顺序的流程图。关于图17所示的处理之中的与在图7中说明的处理相同的处理,省略重复的说明。
在下面的说明中,将通过实施方式2的步骤S150选择出的经由区域的组所包含的经由区域分别称为经由区域m。m设为从1至经由区域的组所包含的经由区域的总数为止的自然数。通过m表示的各数值与指尖工具102所经过的次序对应。
动作指令生成部24对第2重复计数器进行初始化,即对第2重复计数器代入i2=1(步骤S160)。动作指令生成部24在经由区域m内的任意的一点即临时中继点PR对指尖工具102的特定位置所经过的临时中继点PR进行设定(步骤S310)。这些步骤S160、S310的处理与在实施方式1中说明的步骤S160、S310的处理相同。此外,在下面的说明中,有时将临时中继点PR之中的第X(X是1至m的自然数)个临时中继点PR称为PX
接下来,动作指令生成部24决定临时中继点PR处的机器人101的各轴电动机的电动机角度(步骤S320)。即,动作指令生成部24针对经由区域m内的临时中继点PR,对包含指尖工具102的关节角的组进行设定。
此外,也可以取代动作指令生成部24,而是由用户作为临时中继点PR,对经由区域内的任意的位置和此时的机器人101的姿态进行指定。另外,动作指令生成部24也可以作为临时中继点PR而随机地对经由区域内的点进行选择。动作指令生成部24针对m个经由区域的全部经由区域而执行临时中继点PR的指定。
动作指令生成部24如果决定电动机角度,则生成代表轴以外的轴即其他轴的临时动作指令(步骤S350)。具体地说,动作指令生成部24基于动作起点PS、动作终点PG及临时中继点PR的位置而生成其他轴的临时动作指令。
动作指令生成部24在生成其他轴的临时动作指令后,对其他轴的动作指令进行调整(步骤S360)。关于生成其他轴的临时动作指令的步骤S350的处理及对其他轴的动作指令进行调整的步骤S360的处理的详细内容在后面记述。以下,步骤S370及其以后的处理是与在实施方式1中说明的处理相同的处理。
图18是用于对由实施方式2所涉及的机器人控制装置生成其他轴的临时动作指令的处理进行说明的图。图18的图形示出了经由区域为2个的情况下的关节插补轨道的各轴电动机的角速度。即,在图18中为m=2。
图18的上部所示的2个图形是针对代表轴的角速度的图形。另外,中部所示的图形及下部所示的图形是针对其他轴的角速度的图形。各图形的横轴为时间,纵轴为角速度。
动作指令生成部24生成使指尖工具102从动作起点PS分别停止于m个临时中继点PR而移动至动作终点PG为止的关节插补轨道。以下,将实施方式2中的关节插补轨道称为关节插补轨道R1。图18的上部所示的图形之中的左侧的图形与关节插补轨道R1相对应,右侧的图形与关节插补轨道R0相对应。
机器人101所包含的全部轴具有相同的动作时间。在这里,将从动作起点PS至临时中继点P1为止的动作时间设为t1j,将从临时中继点Pk-1至临时中继点Pk为止的动作时间设为tkj(k为2至m为止的自然数),将从临时中继点PR至动作终点PG为止的动作时间设为tm+1j
动作指令生成部24针对代表轴,不使用关节插补轨道R1中的动作指令,而是使用关节插补轨道R0中的动作指令。动作指令生成部24针对代表轴,使用关节插补轨道R0中的动作指令而对从动作起点PS动作至临时中继点P1为止时的动作时间t1j进行计算。
另外,动作指令生成部24针对代表轴,使用关节插补轨道R0中的动作指令,对从临时中继点Pk-1动作至临时中继点Pk为止时的动作时间tkj进行计算。在图18中,临时中继点Pk-1=P1,临时中继点Pk=P2,动作时间tkj=t2
另外,动作指令生成部24针对代表轴,使用关节插补轨道R0中的动作指令,对从临时中继点PR动作至动作终点PG为止时的动作时间tm+1j进行计算。在图18中,临时中继点PR=P2,动作时间tm+1j=t3
例如,从动作起点PS处的代表轴j′的角度θsj′至临时中继点P1处的代表轴j′的角度θR1′为止的角度变化量,与从时刻t=0至t1j为止的代表轴j′的动作指令的积分值一致的时刻成为t1j
动作指令生成部24通过与实施方式1相同的处理对其他轴的动作时间t1j、tkj、tm+1j进行计算。在这里,从动作起点PS动作至临时中继点P1为止时的动作时间是动作时间t1j,从临时中继点Pk-1动作至临时中继点Pk为止时的动作时间是动作时间t2j,从临时中继点PR动作至动作终点PG为止时的动作时间是动作时间t3j
在这里,对图17的步骤S360的详细的处理即对其他轴的动作指令进行调整的处理进行说明。图19是表示由实施方式2所涉及的机器人控制装置对其他轴的动作指令进行调整的处理的处理顺序的流程图。关于图19所示的处理之中的与在图10中说明的处理相同的处理而省略重复的说明。
动作指令生成部24将通过图17的步骤S350生成的临时动作指令设定为暂时性的动作指令即暂时动作指令(步骤S510)。
接下来,动作指令生成部24对移动方向相同且连续的区间的动作进行合并(步骤S521)。换言之,动作指令生成部24在各轴的暂时动作指令中对进行连续方向的角度变化的区间进行合并。移动方向相同且连续的区间的组是在关于轴j而存在从临时中继点Pk-1至临时中继点Pk为止的区间和从临时中继点Pk至临时中继点Pk+1为止的区间的情况下,以下的式(13)成立的区间的组。
【式13】
sgn(|θkjk-1j|)=sgn(|θk+1jkj|) …(13)
图20是用于对由实施方式2所涉及的机器人控制装置合并的连续方向的动作指令进行说明的图。图20的图形示出了作为移动方向的旋转方向相同且连续的区间的角速度。图20的左侧所示的图形是合并前的角速度的图形,右侧所示的图形是合并后的角速度的图形。各图形的横轴为时间,纵轴为角速度。
在图20中,将临时中继点Pk-1至Pk为止的区间的动作时间通过t1j表示,将临时中继点Pk至Pk+1为止的区间的动作时间通过t2j表示,将临时中继点Pk+1至Pk+2为止的区间的动作时间通过t3j表示。
从临时中继点Pk-1至Pk为止的区间和从临时中继点Pk至Pk+1为止的区间是相同旋转方向的动作。因此,动作指令生成部24对从临时中继点Pk-1至Pk为止的区间和从临时中继点Pk至Pk+1为止的区间进行合并。由此,动作指令生成部24对连续地在相同方向进行角度变化的区间进行合并。
在该情况下,动作指令生成部24在合并后的区间中的加速度使用与从临时中继点Pk-1至Pk为止的区间的加速度相同的加速度。另外,动作指令生成部24在合并后的减速度使用与从临时中继点Pk-1至Pk为止的区间相同的减速度。另外,动作指令生成部24将合并后的区间的动作时间设为从临时中继点Pk-1至Pk为止的区间的动作时间和从临时中继点Pk至Pk+1为止的区间的动作时间之和。合并后的区间中的轴j的动作指令的最高速度v-k-1j是关于v-k-1j解以下的式(14)而决定的。在这里,加速度设为a,减速度设为b。
【式14】
Figure BDA0004014222640000331
在下面的说明中,在合并后的区间,将轴j的角速度成为0的时刻的mj(<m)个轴j的成为角度θkj的位置称为合并后的临时中继点。
接下来,动作指令生成部24使动作指令的加减速定时偏移,以使得缩短选择出的其他轴的动作时间(步骤S530)。具体地说,动作指令生成部24决定加减速定时的偏移量,基于决定出的加减速定时的偏移量而生成动作指令,以使得选择出的其他轴的动作时间缩短。
图21是用于对由实施方式2所涉及的机器人控制装置使其他轴的动作指令的加减速定时偏移,以使得缩短动作时间的处理进行说明的图。在图21中,对作为其他轴而选择轴j的情况进行说明。
图21的上部所示的图形是与针对代表轴的关节插补轨道R0的速度指令值相对应的角速度的图形。中部所示的图形是与针对其他轴的变更前的速度指令值相对应的角速度的图形,下部所示的图形是与针对其他轴的变更后的速度指令值相对应的角速度的图形。各图形的横轴为时间,纵轴为轴的角速度。
在图21中,将从临时中继点Pk-1至Pk为止的区间的动作时间通过t1j表示,将从临时中继点Pk至Pk+1为止的区间的动作时间通过t2j表示,将从临时中继点Pk+1至Pk+2为止的区间的动作时间通过t3j表示。
动作指令生成部24从动作起点PS至合并后的临时中继点P1为止的动作指令起依次对动作指令的最高速度进行变更,由此缩短动作时间。具体地说,动作指令生成部24将从合并后的临时中继点Pk-1至合并后的临时中继点Pk为止的动作指令的最高速度,从最高速度ovrdkj*v_maxj变更为最高速度ovrdkj_New*v_maxj(0<ovrdkj_New<1)。
另外,动作指令生成部24在合并后的临时中继点Pk-1处的加速度使用步骤S521所使用的加速度。同样地,动作指令生成部24在合并后的临时中继点Pk-1处的减速度使用步骤S521所使用的减速度。
此外,动作指令生成部24可以在经由区域内的轨道生成每次重复时对ovrdkj_New的值进行变更。动作指令生成部24例如重复的初始设定为ovrdkj_New=1,在重复次数每次增加时使ovrdkj_New分别减小一定量。
动作指令生成部24使用以下的式(15),对从合并后的临时中继点Pk-1至合并后的临时中继点Pk为止的动作时间tkj的变更后的动作时间tkj_New进行计算。
【式15】
Figure BDA0004014222640000341
在图21的下部的图形中,图示出k=1的情况下的动作时间。即,在图21的下部的图形中,图示出变更后的动作时间即动作时间t1j_New
如图21所示,动作指令生成部24使轴j的动作指令的临时中继点Pk处的轴角度偏移以使得缩短动作时间,由此能够减小角度变化量。对轴角度进行变更前的梯形的面积T3和对轴角度进行变更后的梯形的面积T4之间的差分与角度变化量的削减量相对应。
接下来,动作指令生成部24关于通过步骤S530对动作指令进行变更后的各其他轴,判断变更后的动作指令下的动作时间是否小于或等于暂时动作指令下的动作时间。即,动作指令生成部24针对全部其他轴,判断其他轴是否是变更后的动作指令下的动作时间=暂时动作指令下的动作时间(步骤S540)。
在其他轴中的变更后的动作指令下的动作时间=暂时动作指令下的动作时间的情况下(步骤S540,Yes),动作指令生成部24将变更后的动作指令存储为输出轨道的候选。即,针对变更后的动作指令下的动作时间=暂时动作指令下的动作时间的其他轴,动作指令生成部24将变更后的动作指令设定为暂时动作指令(步骤S550)。
动作指令生成部24针对变更后的动作指令下的动作时间>暂时动作指令下的动作时间的其他轴(步骤S540,No),不对暂时动作指令进行变更,进入至步骤S560的处理。
动作指令生成部24对通过步骤S530变更后的其他轴之中的暂时动作指令下的动作时间超过关节插补轨道R0中的动作时间的其他轴进行选择(步骤S560)。
接下来,动作指令生成部24使动作指令的临时中继点PR处的轴角度偏移,以使得将通过步骤S521合并后的其他轴的动作时间缩短(步骤S571)。动作指令生成部24生成使临时中继点PR的轴角度偏移后的动作指令。下面,步骤S580及其以后的处理是与在实施方式1中说明的处理相同的处理。
图22是用于对由实施方式2所涉及的机器人控制装置使其他轴的动作指令的临时中继点处的轴角度偏移以使得缩短动作时间的处理进行说明的图。在图22中,对选择了轴j的情况进行说明。
图22的上部所示的图形是与针对代表轴的关节插补轨道R0的速度指令值相对应的角速度的图形。中部所示的图形是与针对其他轴的变更前的速度指令值相对应的角速度的图形,下部所示的图形是与针对其他轴的变更后的速度指令值相对应的角速度的图形。各图形的横轴为时间,纵轴为轴的角速度。
动作指令生成部24将临时中继点PR处的轴j的角度从θRkj变更为θRkj_New。另外,动作指令生成部24作为动作起点PS处的加速度,使用步骤S521所使用的加速度。另外,动作指令生成部24作为临时中继点PR处的减速度,使用步骤S521所使用的减速度。
动作指令生成部24从满足以下的式(16)的范围对θRkj_New进行指定。
【式16】
RkjRk-1j|>|θRkj-New-θRk-1j| …(16)
动作指令生成部24使用以下的式(17)对从轴j的合并后的临时中继点Pk-1至合并后的临时中继点Pk为止的变更后的动作时间tkj_New的值进行计算。在图22中,示出了ovrdkj_New=1的情况。在这里,将加速度设为a,将减速度设为b。
【式17】
Figure BDA0004014222640000361
动作指令生成部24使用以下的式(18)对从轴j的合并后的临时中继点Pk至合并后的临时中继点Pk+1为止的变更后的动作时间tk+1j_New的值进行计算。在图22中,示出了ovrdk+1j_New=1的情况。在这里,将加速度设为c,将减速度设为d。
【式18】
Figure BDA0004014222640000362
在图22的下部的图形中,图示出k=1的情况下的动作时间。即,在图22的下部的图形中,图示出变更后的动作时间即动作时间t1j_New及动作时间t2j_New
如图22所示,动作指令生成部24使轴j的动作指令的临时中继点Pk处的轴角度偏移以使得缩短动作时间,由此能够减小角度变化量。对轴角度进行变更前的梯形的面积T5和对轴角度进行变更后的梯形的面积T6之间的差分与角度变化量的削减量相对应。
在这里,对由动作指令生成部24对代表轴的动作指令进行调整的处理即步骤S400的处理进行说明。动作指令生成部24例如可以通过使动作指令的开始定时偏移从而对代表轴的动作指令进行调整。另外,动作指令生成部24可以通过对动作中的最高速度一并变更从而对代表轴的动作指令进行调整,也可以通过对动作中的最高速度进行局部变更从而对代表轴的动作指令进行调整。
图23是用于对由实施方式2所涉及的机器人控制装置通过使代表轴的动作指令的开始定时偏移从而对代表轴的动作指令进行调整的处理进行说明的图。图24是用于对由实施方式2所涉及的机器人控制装置通过对动作中的代表轴的最高速度一并变更从而对代表轴的动作指令进行调整的处理进行说明的图。图25是用于对由实施方式2所涉及的机器人控制装置通过对动作中的代表轴的最高速度进行局部变更从而对代表轴的动作指令进行调整的处理进行说明的图。
图23至图25的上部所示的图形都是针对代表轴的关节插补轨道R0中的角速度的图形,下部所示的图形都是针对其他轴的关节插补轨道R1中的角速度的图形。
动作指令生成部24对通过步骤S360调整后的其他轴的动作指令之中的代表轴的动作指令进行调整,以使得与动作时间最长的轴j_l的动作时间Σ1m′tkj_l_New相匹配。
如图23所示,动作指令生成部24在通过使动作指令的开始定时偏移从而对代表轴的动作指令进行调整的情况下,通过Δt使动作指令的开始定时偏移。在该情况下,动作指令生成部24对调整后的代表轴的动作时间Δt+Σ1 mtk不超过动作时间最长的轴j_l的动作时间Σ1 m′tkj_l_New的范围的Δt进行选择。
如图24所示,动作指令生成部24在通过对动作中的最高速度一并变更从而对代表轴的动作指令进行调整的情况下,将最高速度从v_maxj′变更为ovrdj′*v_maxj′。动作指令生成部24作为ovrdj′而使用关于ovrdj′而解以下的式(19)所得到的值。另外,动作指令生成部24作为加速度及减速度,使用与调整前的代表轴的动作指令相同的加速度及减速度。在式(19)中,代表轴的动作指令中的加速度为a_j′,减速度为b_j′。
【式19】
Figure BDA0004014222640000381
如图25所示,动作指令生成部24在通过对动作中的最高速度进行局部变更从而对代表轴的动作指令进行调整的情况下,将与从轴j_l的合并后的临时中继点Pk-1至合并后的临时中继点Pk为止的动作相对应的代表轴的动作指令区间的动作时间变更为tkj_l_New。在这里,在从轴j_l的合并后的临时中继点Pk-1至合并后的临时中继点Pk为止的动作是从合并前的临时中继点Pk′-1至合并前的临时中继点Pk′+Δk为止的Δk+1个动作指令的合并的情况下,对应的代表轴的动作指令区间是从时刻tk′至时刻tk′+Δk的区间。
将代表轴相对于从轴j_l的合并后的临时中继点Pk-1至合并后的临时中继点Pk为止的动作的最高速度设为ovrdkj′*v_maxj′。另外,在实施方式2中,对动作指令区间进行切换时的速度变更所花费的时间包含于后面的动作区间。在该情况下,动作指令生成部24根据通过步骤S360调整后的其他轴的动作指令和代表轴的临时中继点PR的位置及速度信息,在时刻tkj_l_New对代表轴的驱动所能够使用的最大驱动扭矩进行计算。接下来,动作指令生成部24求出通过最大驱动扭矩对轴j进行驱动的情况下的加速度ak。在这里的动作指令生成部24通过解以下的式(20)而决定ovrdkj′
【式20】
Figure BDA0004014222640000382
在图25中,作为代表轴的变更后的最高速度,图示出ovrd1j′*v_maxj′、ovrd2j′*v_maxj′和ovrd3j′*v_maxj′
动作指令生成部24从步骤S160至S230为止,执行与实施方式1相同的处理。在这里,对实施方式2的步骤S240的处理即由动作指令生成部24对经由区域进行变更的处理进行说明。
动作指令生成部24在生成的轨道与障碍物31、32的任意者发生干涉的情况下,从通过步骤S150设定出的经由区域的候选中对1个候选进行指定,将当前的经由区域变更为所指定出的经由区域。另外,动作指令生成部24也可以以干涉点为基准,将当前的经由区域变更为从干涉点分离特定距离的空间的经由区域。干涉点是由动作指令生成部24生成的轨道与障碍物31、32的任意者初次碰撞的时刻的机器人101和所碰撞的障碍物的交叉部分的位置。
图26是用于对由实施方式2所涉及的机器人控制装置将经由区域变更至从干涉点分离特定距离的空间的处理进行说明的图。在图26中,对障碍物为障碍物31~33这3个的情况进行说明。在这里,示出了轨道初次碰撞的障碍物为障碍物31的情况。
动作指令生成部24将经过干涉点PX的经由区域(未图示)变更为从干涉点PX分离特定距离的经由区域604。在这里的特定距离例如是指尖工具102的特定位置的尺寸的数倍左右的距离。此外,特定距离也可以是机器人101的特定位置的尺寸的数倍左右的距离。动作指令生成部24对经由区域604进行追加的方向优选在从干涉点PX观察时是从障碍物31的物体中心远离的方向。
动作指令生成部24从通过步骤S150设定出的经由区域的候选中对1个候选进行指定而对经由区域进行变更,在即使执行针对全部候选对动作指令进行调整的处理也没有输出的轨道的情况下,可以追加经由区域。
另外,动作指令生成部24在生成轨道中的动作时间比关节插补轨道R0中的动作时间长的情况下,从通过步骤S150指定出的经由区域的候选中对1个候选进行选择,将当前的经由区域变更为指定出的经由区域。另外,动作指令生成部24如图27所示,可以使当前的经由区域的位置在内部不包含障碍物31~33的范围进行移动。
图27是用于对由实施方式2所涉及的机器人控制装置将经由区域变更至在内部不包含障碍物的位置的处理进行说明的图。在图26中,对障碍物为障碍物41这1个的情况进行说明。在这里,将变更前的经由区域示出为经由区域605,将变更后的经由区域示出为经由区域606。
从经由区域605向经由区域606的移动方向,优选是机器人101的各轴的角度变化量减小的方向。
动作指令生成部24在即使使经由区域605的位置移动至经由区域606的位置,动作时间也不缩短的情况下,可以从通过步骤S150设定出的经由区域的候选中对1个候选进行指定而对经由区域进行变更。
在实施方式2中,动作指令生成部24也与实施方式1同样地,将在按照生成轨道进行动作的情况下动作时间小于或等于关节插补轨道R0中的动作时间的轨道优先输出。另外,动作指令生成部24在全部生成轨道比关节插补轨道R0中的动作时间长的情况下,在生成轨道中对动作时间最短的轨道进行选择。因此,动作指令生成部24能够在避免与障碍物31的干涉的轨道中对动作时间变得最短的轨道进行选择。
如上所述,根据实施方式2,动作指令生成部24在配置多个障碍物、设定多个经由区域的情况下,也与实施方式1同样地能够生成经过经由区域的轨道。即,动作指令生成部24在对其他轴的动作指令进行调整后,对代表轴的动作指令进行调整,针对调整后的动作指令而生成轨道。而且,动作指令生成部24在没有与障碍物31的干涉的情况下,将生成轨道存储为输出轨道的候选。因此,动作指令生成部24能够仅生成避免与各障碍物的碰撞且能够由机器人101执行的轨道而作为输出轨道的候选。
另外,动作指令生成部24与实施方式1同样地,与对经由点进行限定而不变更经由点的位置的情况相比较,能够生成动作时间同等以下的轨道。另外,动作指令生成部24与实施方式1同样地,能够在避免与障碍物的干涉的轨道中生成动作时间变得最短的轨道。
实施方式3
接下来,使用图28至图31对实施方式3进行说明。在实施方式3中,机器人控制装置200通过机器学习对各轴的动作指令进行调整。在实施方式3中,也与实施方式1同样地,说明在指尖工具102的特定位置从动作起点PS移动至动作终点PG为止时,生成以指尖工具102不与障碍物31碰撞的方式进行动作的轨道的方法。
在实施方式3中,不指定指尖工具102的经由区域。另外,实施方式3的机器人101及机器人控制装置200的结构与实施方式1的机器人101及机器人控制装置200的结构相同。
下面,在实施方式3中,对由动作指令生成部24生成指尖工具102的轨道的处理进行说明。图28是表示通过实施方式3所涉及的机器人控制装置进行的轨道生成的处理顺序的流程图。实施方式3的机器人控制装置200由动作指令生成部24执行与在实施方式1的图4中说明的步骤S110至S140的处理相同的处理。
另外,动作指令生成部24在步骤S140的处理后,使用机器学习而执行学习处理,该学习处理在机器人动作的限制下生成在避免与障碍物31的干涉的轨道中动作时间变得最短的轨道所对应的各轴电动机的动作指令。在该学习处理中包含有对其他轴的动作指令进行调整而缩短动作时间的处理、和对至少包含代表轴的各轴电动机的动作指令进行调整而生成轨道的处理。
具体地说,动作指令生成部24在步骤S140的处理后,执行步骤S170至S200的处理。在该情况下,动作指令生成部24取代步骤S190而是执行步骤S191的处理。即,在生成轨道无法避开障碍物31的情况下(步骤S180,No),动作指令生成部24对包含代表轴的全轴的动作指令进行调整,生成轨道(步骤S191)。关于步骤S191的处理即对全轴的动作指令进行调整的处理的详细内容,在后面记述。
动作指令生成部24在步骤S200的处理中轨道不满足步骤S200的条件的情况下(步骤S200,No),判断第1重复计数器的计数值是否成为所设定的最大值。即,动作指令生成部24判断是否成为i=最大重复次数(步骤S220)。
在不成为i=最大重复次数的情况下(步骤S220,No),在i加上1(步骤S250),返回至步骤S170的处理。另一方面,在成为i=最大重复次数的情况下(步骤S220,Yes),动作指令生成部24将与最短动作时间的生成轨道相对应的动作指令输出至各轴电动机控制部(步骤S260)。
在这里,使用图29对实施方式3中的步骤S170的处理即对其他轴的动作指令进行调整的处理的详细内容进行说明。图29是表示由实施方式3所涉及的机器人控制装置对其他轴的动作指令进行调整的处理的处理顺序的流程图。图30是用于对实施方式3所涉及的机器人控制装置所使用的各轴电动机的动作指令进行说明的图。在图30中,图示出表现各轴电动机的动作指令的值的参数。
在实施方式3中,动作指令生成部24作为各轴电动机的动作指令而使用电动机速度指令。另外,在实施方式3中,动作指令生成部24为了简化各轴电动机的动作指令的调整,使用图30所示的参数而作为动作指令参数。
第1个动作指令参数是动作中的角度变化的次数。动作中的角度变化是从各轴电动机的速度为0的状态起进行加速,在达到指定的最高速度后以恒定速度运转,在经过一定程度的时间后进行减速的一系列的电动机动作中的角度变化。在实施方式3中,将机器人101的轴j的轴电动机即j轴电动机的动作中的角度变化的次数设为jk。
第2个动作指令参数是各角度变化的开始定时。各角度变化的开始定时相对于机器人101的j轴电动机的动作指令而存在jk个。在实施方式3中,将第jk个角度变化的开始定时设为timejk
第3个动作指令参数是各角度变化中的角速度的最高速度。各角度变化中的最高速度相对于机器人101的j轴电动机的动作指令而存在jk个。在实施方式3中,将第jk个角度变化中的最高速度设为v_maxjk
第4个动作指令参数是各轴电动机输出最高速度的时间的长度。各轴电动机输出最高速度的时间的长度相对于机器人101的j轴电动机的动作指令而存在jk个。在实施方式3中,将第jk个角度变化中的各轴电动机输出最高速度的时间的长度即输出时间设为ctjk
第5个动作指令参数是各角度变化中的加速度。各角度变化中的加速度相对于机器人101的j轴电动机的动作指令而存在jk个。在实施方式3中,将第jk个各角度变化中的加速度设为ajk
第6个动作指令参数是各角度变化中的减速度。各角度变化中的减速度相对于机器人101的j轴电动机的动作指令而存在jk个。在实施方式3中,将第jk个各角度变化中的减速度设为djk
首先,动作指令生成部24针对全部其他轴而设定动作中的角度变化的次数即jk(步骤S810)。在关节插补轨道R0中,全部轴为jk=1。
动作指令生成部24对在与障碍物31之间避免干涉的轨道进行学习而生成轨道。避免该干涉的轨道与关节插补轨道R0相比自由度高,因此动作指令生成部24优选以大于或等于jk=2的轴存在多个的方式生成轨道。
接下来,动作指令生成部24关于各角度变化,对加速度ajk及减速度djk的临时的值进行设定(步骤S820)。在该情况下,动作指令生成部24作为ajk及djk,对不超过各轴电动机单体能够输出的最大加速度的值进行设定。
接下来,动作指令生成部24对在重复一次学习的处理中重复次数的判断所使用的计数器即第1学习用计数器进行初始化。即,动作指令生成部24对第1学习用计数器代入i2=1(步骤S830)。第1学习用计数器是后面记述的步骤S870的处理所使用的计数器。
接下来,动作指令生成部24生成动作指令参数之中的开始定时timejk、最高速度v_maxjk及输出时间ctjk的候选即候选C1(步骤S840)。具体地说,动作指令生成部24生成设定了动作指令参数之中的角度变化的开始定时timejk、各角度变化中的最高速度v_maxjk和各轴电动机输出最高速度的输出时间ctjk的初始值的动作指令的候选C1。在这里的动作指令生成部24作为v_maxjk,对不超过各轴电动机能够输出的最高速度的值进行设定。另外,动作指令生成部24作为timejk,对不超过关节插补轨道R0中的动作时间的值进行设定。
动作指令生成部24基于在下一个步骤S850的处理中使用的参数学习算法,决定所要生成的候选C1的组数。在步骤S850的处理中使用的参数学习算法是对动作指令参数进行学习的算法。即,在步骤S850的处理中使用的参数学习算法是对表现动作指令的参数的评价函数(后面记述的评价函数J1)进行学习的算法。
动作指令生成部24例如在步骤S850的处理中使用群强化学习或者遗传算法的情况下,准备多个成为候选C1的动作指令参数的组。另外,动作指令生成部24在步骤S850的处理中使用贝叶斯优化的情况下,准备一组成为候选C1的动作指令参数的组。
接下来,动作指令生成部24基于评价函数J1,对生成的各候选C1的值进行更新(步骤S850)。即,动作指令生成部24基于评价函数J1,对角度变化的开始定时timejk、各角度变化中的最高速度v_maxjk及各轴电动机输出最高速度的输出时间ctjk的各值进行更新。动作指令生成部24以将评价函数J1的评价值V1最小化的方式对动作指令参数的各候选C1的值进行更新。
动作指令生成部24作为评价函数J1,例如使用以下的式(21)所示的函数。在式(21)中,c1是满足c1>0的任意的常数,tact是使用的动作指令参数的候选C1中的动作指令下的动作时间。
[式21]
Figure BDA0004014222640000441
式(21)所示的函数的第1项,在动作中发生机器人101和障碍物31的碰撞的情况下变大。式(21)所示的函数的第2项,与根据成为候选C1的动作指令参数而生成动作指令时的动作时间成正比。减小式(21)所示的函数的值即评价值V1的候选C1是避免机器人101和障碍物31的碰撞,抑制动作时间的候选。即,动作指令生成部24基于对评价函数J1进行学习的参数学习算法,生成避免机器人101和障碍物31的碰撞并且抑制第3动作时间的参数的候选C1。动作时间越短则评价值V1变得越低。
如前述所示,动作指令生成部24所使用的步骤S850的参数学习算法例如是群强化学习、遗传算法、贝叶斯优化等任意的黑箱优化方法。
接下来,动作指令生成部24确认更新后的动作指令参数的候选C1之中的评价函数J1的值即评价值V1小于或等于事先指定的指定值TH1的候选C1是否存在大于或等于1个(步骤S860)。事先指定的指定值TH1例如是关节插补轨道R0中的动作时间的2倍左右的值。
在评价值V1小于或等于指定值TH1的候选C1不存在的情况下(步骤S860,No),动作指令生成部24判断重复次数是否成为最大重复次数。即,动作指令生成部24判断是否成为i2=最大重复次数(步骤S870)。
在i2=最大重复次数的情况下(步骤S870,Yes),跳转至步骤S191的处理即对包含代表轴的全轴的动作指令进行调整的处理。在不是i2=最大重复次数的情况下(步骤S870,No),动作指令生成部24在i2加上1(步骤S880),返回至步骤S850的处理。
动作指令生成部24在评价值V1小于或等于指定值TH1的候选C1不存在(步骤S860,No),不是i2=最大重复次数的情况下(步骤S870,No),重复步骤S850至S880为止的处理。
在评价值V1小于或等于指定值TH1的候选C1存在1个的情况下(步骤S860,Yes),动作指令生成部24对在重复一次学习的处理中重复次数的判断所使用的计数器即第2学习用计数器进行初始化。即,动作指令生成部24对第2学习用计数器代入i3=1(步骤S890)。第2学习用计数器是后面记述的步骤S930的处理所使用的计数器。
接下来,动作指令生成部24基于评价值V1小于或等于指定值TH1的参数的候选C1,生成动作指令参数之中的开始定时timejk、最高速度v_maxjk、输出时间ctjk、加速度ajk及减速度djk的候选即候选C2(步骤S900)。具体地说,动作指令生成部24生成设定了动作指令参数之中的角度变化的开始定时timejk、各角度变化中的最高速度v_maxjk、各轴电动机输出最高速度的输出时间ctjk、加速度ajk的初始值及减速度djk的初始值的动作指令的候选即候选C2。在这里的动作指令生成部24在步骤S860中使用评价值V1小于或等于指定值TH1的候选C1的timejk、v_maxjk及ctjk
动作指令生成部24基于在下一个步骤S910的处理中使用的参数学习算法,决定所要生成的候选C2的数量。在步骤S910的处理中使用的参数学习算法是对动作指令参数进行学习的算法。即,在步骤S910的处理中使用的参数学习算法是对表现动作指令的参数的评价函数(后面记述的评价函数J2)进行学习的算法。
动作指令生成部24例如在步骤S910的处理中使用群强化学习或者遗传算法的情况下,准备多个成为候选C2的动作指令参数的组。另外,动作指令生成部24在步骤S910的处理中使用贝叶斯优化的情况下,准备一组成为候选C2的动作指令参数的组。
接下来,动作指令生成部24基于评价函数J2,对生成的各候选C2的值进行更新(步骤S910)。即,动作指令生成部24基于评价函数J2,对角度变化的开始定时timejk、各角度变化中的最高速度v_maxjk、各轴电动机输出最高速度的输出时间ctjk、加速度ajk及减速度djk的各值进行更新。动作指令生成部24以将评价函数J2的评价值V2最小化的方式,对动作指令参数的各候选C2的值进行更新。
动作指令生成部24作为评价函数J2,例如使用以下的式(22)所示的函数。在式(22)中,c1是满足c1>0的任意的常数,c2是满足c2>0的任意的常数。另外,tact是使用的动作指令参数的候选C2中的动作指令下的动作时间。torque_o在动作中存在超过扭矩限制的轴的情况下是最大超过量的绝对值,在动作中任意的轴都不超过扭矩限制的情况下设为0。
[式22]
Figure BDA0004014222640000461
式(22)所示的函数的第1项在动作中发生机器人101和障碍物31的碰撞的情况下变大。式(22)所示的函数的第2项与根据成为候选C2的动作指令参数而生成动作指令时的动作时间成正比。式(22)所示的函数的第3项是与机器人101的扭矩限制相关的项,越违反限制则第3项的值变得越大。在这里,机器人101的扭矩限制由于依赖于机器人101的姿态及各轴速度,因此在动作中值发生变化。减小式(22)所示的函数的值即评价值V2的候选C2是避免机器人101和障碍物31的碰撞、满足动作中的机器人101的扭矩限制且抑制动作时间的候选。即,动作指令生成部24基于对评价函数J2进行学习的参数学习算法,生成避免机器人101和障碍物31的碰撞、且满足动作中的机器人101的扭矩限制并且抑制第3动作时间的参数的候选C2。动作时间越短则评价值V2变得越低。
如前述所示,动作指令生成部24所使用的步骤S910的参数学习算法例如是群强化学习、遗传算法、贝叶斯优化等任意的黑箱优化方法。
接下来,动作指令生成部24确认更新后的动作指令参数的候选C2之中的评价函数J2的值即评价值V2小于或等于事先指定的指定值TH2的候选C2是否存在大于或等于1个(步骤S920)。事先指定的指定值TH2例如是关节插补轨道R0中的动作时间的值。
在评价值V2小于或等于指定值TH2的候选C2存在1个的情况下(步骤S920,Yes),动作指令生成部24将评价值V2变得最小的候选C2设定为其他轴的动作指令(步骤S950)。即,动作指令生成部24选择1个动作时间变得最短的候选C2,将选择出的候选C2设定为对其他轴的动作指令进行调整时的参数。
另一方面,在评价值V2小于或等于指定值TH2的候选C2不存在的情况下(步骤S920,No),动作指令生成部24判断重复次数是否成为最大重复次数。即,动作指令生成部24判断是否成为i3=最大重复次数(步骤S930)。
在i3=最大重复次数的情况下(步骤S930,Yes),动作指令生成部24将评价值V2变得最小的候选C2设定为其他轴的动作指令(步骤S950)。
在不是i3=最大重复次数的情况下(步骤S930,No),动作指令生成部24在i3加上1(步骤S940),返回至步骤S910的处理。
动作指令生成部24在评价值V2小于或等于指定值TH2的候选C2不存在(步骤S920,No),不是i3=最大重复次数的情况下(步骤S930,No),重复步骤S910至S940为止的处理。而且,如果评价值V2小于或等于指定值TH2的候选C2存在1个,或者成为i3=最大重复次数,则动作指令生成部24将评价值V2变得最小的候选C2设定为其他轴的动作指令(步骤S950)。然后,动作指令生成部24执行步骤S170的处理。
如果图28所示的步骤S170的处理完成,则动作指令生成部24确认使用通过步骤S950设定出的动作指令使机器人101动作的情况下的动作时间是否小于或等于关节插补轨道R0中的动作时间。即,动作指令生成部24判断生成轨道是否避开障碍物31(步骤S180)。
动作指令生成部24在生成轨道避开障碍物31的情况下(步骤S180,Yes),执行步骤S260的处理。另一方面,在生成轨道无法避开障碍物31的情况下(步骤S180,No),动作指令生成部24对包含代表轴在内的全轴的动作指令进行调整,通过调整后的动作指令而生成轨道(步骤S191)。
在这里,使用图31对实施方式3中的步骤S191的处理,即,对包含代表轴在内的全轴的动作指令进行调整的处理的详细内容进行说明。图31是表示由实施方式3所涉及的机器人控制装置对全轴的动作指令进行调整的处理的处理顺序的流程图。
首先,动作指令生成部24针对包含代表轴在内的全轴而对动作中的角度变化的次数即jk进行设定(步骤S1010)。动作指令生成部24关于其他轴的jk,优选设定为通过步骤S950所设定的值。
接下来,动作指令生成部24关于各角度变化,对加速度ajk及减速度djk的临时的值进行设定(步骤S1020)。动作指令生成部24关于其他轴的加速度ajk及减速度djk,优选设定为通过步骤S950所设定的值。
接下来,动作指令生成部24对在重复学习的处理中重复次数的判断所使用的计数器即第3学习用计数器进行初始化。即,动作指令生成部24对第3学习用计数器代入i4=1(步骤S1030)。第3学习用计数器是后面记述的步骤S1070的处理所使用的计数器。
接下来,动作指令生成部24生成动作指令参数之中的开始定时timejk、最高速度v_maxjk、输出时间ctjk、加速度ajk及减速度djk的候选即候选C3(步骤S1040)。具体地说,动作指令生成部24生成动作指令参数之中的角度变化的开始定时timejk、各角度变化中的最高速度v_maxjk、各轴电动机输出最高速度的输出时间ctjk、设定有加速度ajk的初始值及减速度djk的初始值的动作指令的候选即候选C3。
动作指令生成部24基于在下一个步骤S1050的处理中使用的参数学习算法,决定所要生成的候选C3的数量。在步骤S1050的处理中使用的参数学习算法是对动作指令参数进行学习的算法。即,在步骤S1050的处理中使用的参数学习算法是对表现动作指令的参数的评价函数(后面记述的评价函数J3)进行学习的算法。
动作指令生成部24例如在步骤S1050的处理中使用群强化学习或者遗传算法的情况下,准备多个成为候选C3的动作指令参数的组。另外,动作指令生成部24在步骤S1050的处理中使用贝叶斯优化的情况下,准备一组成为候选C3的动作指令参数的组。
接下来,动作指令生成部24基于评价函数J3,对生成的各候选C3的值进行更新(步骤S1050)。即,动作指令生成部24基于评价函数J3,对角度变化的开始定时timejk、各角度变化中的最高速度v_maxjk、各轴电动机输出最高速度的输出时间ctjk、加速度ajk及减速度djk的各值进行更新。动作指令生成部24对动作指令参数的各候选C3的值进行更新,以使得将评价函数J3的评价值V3最小化。
动作指令生成部24作为评价函数J3,例如使用将上述的式(22)所示的算式的J2调换为J3的算式。减小该式(22)所示的函数的值即评价值V3的候选C3是避免机器人101和障碍物31的碰撞、满足动作中的机器人101的扭矩限制且抑制动作时间的候选。即,动作指令生成部24基于对评价函数J3进行学习的参数学习算法,生成避免机器人101和障碍物31的碰撞、且满足动作中的机器人101的扭矩限制且抑制第3动作时间的参数的候选C3。动作时间越短则评价值V3变得越低。
如前述所示,动作指令生成部24所使用的步骤S1050的参数学习算法,例如是群强化学习、遗传算法、贝叶斯优化等任意的黑箱优化方法。
接下来,动作指令生成部24确认更新后的动作指令参数的候选C3之中的评价函数J3的值即评价值V3小于或等于事先指定的指定值TH3的候选C3是否存在大于或等于1个(步骤S1060)。事先指定的指定值TH3例如是关节插补轨道R0中的动作时间的值。
在评价值V3小于或等于指定值TH3的候选C3存在1个的情况下(步骤S1060,Yes),动作指令生成部24将评价值V3变得最小的候选C3设定为各轴的动作指令(步骤S1090)。即,动作指令生成部24选择1个动作时间变得最短的候选C3,将选择出的候选C3设定为对各轴的动作指令进行调整时的参数。
另一方面,在评价值V3小于或等于指定值TH3的候选C3不存在的情况下(步骤S1060,No),动作指令生成部24判断重复次数是否成为最大重复次数。即,动作指令生成部24判断是否成为i4=最大重复次数(步骤S1070)。
在i4=最大重复次数的情况下(步骤S1070,Yes),动作指令生成部24将评价值V3变得最小的候选C3设定为各轴的动作指令(步骤S1090)。
在不是i4=最大重复次数的情况下(步骤S1070,No),动作指令生成部24在i4加上1(步骤S1080),返回至步骤S1050的处理。
动作指令生成部24在评价值V3小于或等于指定值TH3的候选C3不存在(步骤S1060,No),不是i4=最大重复次数的情况下(步骤S1070,No),重复步骤S1050至S1080为止的处理。而且,如果评价值V3小于或等于指定值TH3的候选C3存在1个或者成为i4=最大重复次数,则动作指令生成部24将评价值V3变得最小的候选C3设定为其他轴的动作指令(步骤S1090)。然后,动作指令生成部24执行在图28中说明的步骤S200及其以后的处理。
在步骤S220的处理中,在不成为i=最大重复次数的情况下(步骤S220,No),动作指令生成部24在i加上1(步骤S250),返回至步骤S170的处理。即,在第1重复计数器的值没有达到最大重复次数的情况下,动作指令生成部24返回至步骤S170的处理而对其他轴的动作指令进行调整,再生成轨道。在该情况下,动作指令生成部24通过对在步骤S170的处理中设定的动作中的角度变更次数的jk进行变更,从而能够生成与前一次的试验不同的轨道。
在实施方式3中,动作指令生成部24也与实施方式1、2同样地,将在按照生成轨道进行动作的情况下动作时间小于或等于关节插补轨道R0中的动作时间的轨道优先输出。另外,动作指令生成部24在全部生成轨道比关节插补轨道R0中的动作时间长的情况下,在生成轨道中对动作时间最短的轨道进行选择。因此,动作指令生成部24能够在避免与障碍物31的干涉的轨道中对动作时间变得最短的轨道进行选择。此外,也可以将在实施方式3中说明的学习处理应用于实施方式2中的轨道的生成处理。
如上所述,根据实施方式3,动作指令生成部24将各轴电动机的动作指令通过有限个数的动作指令参数进行表现,通过使用已有的学习算法对动作指令参数进行调整,从而生成轨道。因此,动作指令生成部24能够通过有限次数的调整试验而生成避开障碍物31的轨道。另外,动作指令生成部24能够以短时间对避免碰撞的动作指令进行计算。
在这里,对机器人控制装置200的硬件结构进行说明。图32是表示实施方式1至3所涉及的机器人控制装置的硬件结构的图。
机器人控制装置200能够通过图32所示的控制电路即处理器301及存储器302实现。处理器301的例子是CPU(也称为Central Processing Unit、中央处理装置、处理装置、运算装置、微处理器、微型计算机、处理器、DSP(Digital Signal Processor))或者系统LSI(Large Scale Integration)。存储器302的例子是RAM(Random Access Memory)或者ROM(Read Only Memory)。
机器人控制装置200是处理器301将存储器302所存储的用于执行机器人控制装置200的动作的程序读出并执行而实现的。另外,该程序可以说是使计算机执行机器人控制装置200的顺序或者方法。由机器人控制装置200执行的程序成为包含动作指令生成部24及各轴电动机控制部在内的模块结构,它们下载至主存储装置上,它们生成于主存储装置上。
存储器302对障碍物信息、机器人信息及端点信息进行存储。存储器302还被用作由处理器301执行各种处理时的暂时存储器。
由处理器301执行的程序可以通过可安装的形式或者可执行的形式的文件存储于计算机可读取的存储介质而作为计算机程序产品进行提供。另外,由处理器301执行的程序也可以经由互联网等网络而提供给机器人控制装置200。
另外,也可以将机器人控制装置200通过专用的硬件实现。另外,关于机器人控制装置200的功能,可以将一部分通过专用的硬件实现,将一部分通过软件或者固件实现。
以上的实施方式所示的结构表示一个例子,也能够与其他公知技术组合,也能够将实施方式彼此组合,在不脱离主旨的范围也能够将结构的一部分省略、变更。
标号的说明
21障碍物模型存储部,22机器人模型存储部,23端点存储部,24动作指令生成部,31~33、41障碍物,100机器人系统,101机器人,102指尖工具,103工件,200机器人控制装置,301处理器,302存储器,601、601a、601b、603~606经由区域,602轨道,B1第1轴电动机控制部,B2第2轴电动机控制部,B3第3轴电动机控制部,B4第4轴电动机控制部,B5第5轴电动机控制部,B6第6轴电动机控制部,E1第1轴编码器,E2第2轴编码器,E3第3轴编码器,E4第4轴编码器,E5第5轴编码器,E6第6轴编码器,M1第1轴电动机,M2第2轴电动机,M3第3轴电动机,M4第4轴电动机,M5第5轴电动机,M6第6轴电动机,L1~L3、L5~L7指令直线,PG动作终点,PR临时中继点,PS动作起点。

Claims (11)

1.一种机器人控制装置,其特征在于,具有:
轴电动机控制部,其控制对使机器人的关节移动的多个轴分别进行驱动的各轴电动机;
存储部,其对所述机器人的信息即机器人信息、包含所述机器人的特定位置开始动作的动作起点的信息和所述机器人的特定位置结束动作的动作终点的信息在内的端点信息、及障碍物相对于所述机器人的信息即障碍物信息进行存储;以及
动作指令生成部,其基于所述机器人信息及所述端点信息而生成向在不考虑所述障碍物而使所述机器人的特定位置从所述动作起点移动至所述动作终点为止的情况下移动的动作时间即第1动作时间变得最短的所述各轴电动机的动作指令即第1动作指令,并且对所述轴之中的在通过所述第1动作指令动作的情况下动作时间变得最长的轴进行选择而作为代表轴,
所述第1动作指令包含向所述代表轴以外的轴即其他轴的动作指令即其他轴指令、和向所述代表轴的动作指令即代表轴指令,
所述动作指令生成部基于所述机器人信息及所述端点信息对所述其他轴指令进行调整,以使得缩短所述其他轴指令的动作时间即第2动作时间,
所述动作指令生成部在基于所述障碍物信息而判断为与包含所述代表轴指令及调整后的所述其他轴指令在内的第2动作指令相对应的第1轨道是避免所述机器人和所述障碍物的碰撞的轨道的情况下,将与所述第1轨道相对应的第2动作指令输出至所述轴电动机控制部。
2.根据权利要求1所述的机器人控制装置,其特征在于,
所述动作指令生成部基于所述机器人信息及所述端点信息对所述代表轴指令进行调整,
所述动作指令生成部在基于所述障碍物信息而判断为与包含调整后的所述代表轴指令及调整后的所述其他轴指令在内的第3动作指令相对应的第2轨道是避免所述机器人和所述障碍物的碰撞的轨道,且所述第3动作指令的动作时间即第3动作时间不比所述第2动作时间长的情况下,将所述第3动作指令之中的所述第3动作时间变得最短的第3动作指令输出至所述轴电动机控制部。
3.根据权利要求2所述的机器人控制装置,其特征在于,
所述动作指令生成部在即使对所述其他轴指令进行调整,也无法避免所述机器人和所述障碍物的碰撞的情况下,对所述代表轴指令进行调整。
4.根据权利要求2或3所述的机器人控制装置,其特征在于,
所述动作指令生成部对所述其他轴指令及所述代表轴指令的至少一者进行调整,以使得经过在从所述动作起点至所述动作终点为止之间配置的1个或者多个经由区域。
5.根据权利要求4所述的机器人控制装置,其特征在于,
所述动作指令生成部在所述第3动作时间不与所述第1动作时间变得相同的情况下,对所述经由区域进行变更而对所述其他轴指令及所述代表轴指令的至少一者进行调整。
6.根据权利要求5所述的机器人控制装置,其特征在于,
所述动作指令生成部作为表现所述动作指令的参数而应用针对每个所述经由区域不同的参数,对所述其他轴指令及所述代表轴指令的至少一者进行调整。
7.根据权利要求2所述的机器人控制装置,其特征在于,
所述动作指令生成部基于对表现所述动作指令的参数的评价函数进行学习的参数学习算法,生成避免所述机器人和所述障碍物的碰撞并且抑制所述第3动作时间的所述参数的候选,将所述机器人的动作时间变得最短的候选设定为对所述其他轴指令或者所述代表轴指令进行调整时的参数。
8.根据权利要求7所述的机器人控制装置,其特征在于,
所述参数包含所述各轴电动机的角度变化的次数、各角度变化的开始定时、各角度变化中的最高速度、各轴电动机输出最高速度的时间即输出时间的长度、各角度变化中的加速度、各角度变化中的减速度的至少1个。
9.根据权利要求7或8所述的机器人控制装置,其特征在于,
所述动作指令生成部生成满足所述机器人的扭矩限制的所述参数的候选。
10.一种机器人控制方法,其控制对使机器人的关节移动的多个轴分别进行驱动的各轴电动机,
该机器人控制方法的特征在于,包含:
取得所述机器人的信息即机器人信息、包含所述机器人的特定位置开始动作的动作起点的信息和所述机器人的特定位置结束动作的动作终点的信息在内的端点信息的第1取得步骤、及对障碍物相对于所述机器人的信息即障碍物信息进行存储的存储步骤;
基于所述机器人信息及所述端点信息而生成向在不考虑所述障碍物而使所述机器人的特定位置从所述动作起点移动至所述动作终点为止的情况下移动的动作时间即第1动作时间变得最短的所述各轴电动机的动作指令即第1动作指令的第1生成步骤;
对所述轴之中的在通过所述第1动作指令动作的情况下动作时间变得最长的轴进行选择而作为代表轴的选择步骤;以及
生成避免所述机器人和所述障碍物的碰撞的轨道的第2生成步骤,
所述第1动作指令包含向所述代表轴以外的轴即其他轴的动作指令即其他轴指令和向所述代表轴的动作指令即代表轴指令,
在所述第2生成步骤中,
基于所述机器人信息及所述端点信息对所述其他轴指令进行调整,以使得缩短所述其他轴指令的动作时间即第2动作时间,
在基于所述障碍物信息,判断为与包含所述代表轴指令及调整后的所述其他轴指令在内的第2动作指令相对应的第1轨道是避免所述机器人和所述障碍物的碰撞的轨道的情况下,将与所述第1轨道相对应的第2动作指令输出至对各轴电动机进行控制的轴电动机控制部。
11.一种机器人控制程序,其控制对使机器人的关节移动的多个轴分别进行驱动的各轴电动机,
该机器人控制程序的特征在于,使计算机执行:
取得所述机器人的信息即机器人信息、包含所述机器人的特定位置开始动作的动作起点的信息和所述机器人的特定位置结束动作的动作终点的信息在内的端点信息的第1取得步骤、及对障碍物相对于所述机器人的信息即障碍物信息进行存储的存储步骤;
基于所述机器人信息及所述端点信息而生成向在不考虑所述障碍物而使所述机器人的特定位置从所述动作起点移动至所述动作终点为止的情况下移动的动作时间即第1动作时间变得最短的所述各轴电动机的动作指令即第1动作指令的第1生成步骤;
对所述轴之中的在通过所述第1动作指令动作的情况下动作时间变得最长的轴进行选择而作为代表轴的选择步骤;以及
生成避免所述机器人和所述障碍物的碰撞的轨道的第2生成步骤,
所述第1动作指令包含向所述代表轴以外的轴即其他轴的动作指令即其他轴指令和向所述代表轴的动作指令即代表轴指令,
在所述第2生成步骤中,
基于所述机器人信息及所述端点信息对所述其他轴指令进行调整,以使得缩短所述其他轴指令的动作时间即第2动作时间,
在基于所述障碍物信息而判断为与包含所述代表轴指令及调整后的所述其他轴指令在内的第2动作指令相对应的第1轨道是避免所述机器人和所述障碍物的碰撞的轨道的情况下,将与所述第1轨道相对应的第2动作指令输出至对各轴电动机进行控制的轴电动机控制部。
CN202080102378.6A 2020-07-08 2020-07-08 机器人控制装置、机器人控制方法及机器人控制程序 Pending CN115702064A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/026686 WO2022009333A1 (ja) 2020-07-08 2020-07-08 ロボット制御装置、ロボット制御方法、およびロボット制御プログラム

Publications (1)

Publication Number Publication Date
CN115702064A true CN115702064A (zh) 2023-02-14

Family

ID=79552456

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080102378.6A Pending CN115702064A (zh) 2020-07-08 2020-07-08 机器人控制装置、机器人控制方法及机器人控制程序

Country Status (5)

Country Link
US (1) US20230226691A1 (zh)
JP (1) JP7313564B2 (zh)
CN (1) CN115702064A (zh)
DE (1) DE112020007414T5 (zh)
WO (1) WO2022009333A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023149298A1 (ja) * 2022-02-04 2023-08-10 三菱電機株式会社 軌道生成装置
WO2023162031A1 (ja) * 2022-02-22 2023-08-31 三菱電機株式会社 ロボット制御装置およびロボット制御方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4942672B2 (ja) * 2008-01-25 2012-05-30 三菱電機株式会社 ロボット軌道制御装置及びロボット軌道制御方法
JP5980042B2 (ja) * 2012-08-16 2016-08-31 キヤノン株式会社 搬送装置の制御方法及び搬送システム
JP6217089B2 (ja) 2013-02-21 2017-10-25 セイコーエプソン株式会社 ロボット制御システム、ロボット、ロボット制御方法及びプログラム
JP6282140B2 (ja) 2014-02-26 2018-02-21 キヤノン株式会社 軌道生成方法、ロボット装置、プログラム及び記録媒体
JP7158862B2 (ja) 2018-02-05 2022-10-24 キヤノン株式会社 情報処理方法及び情報処理装置

Also Published As

Publication number Publication date
JP7313564B2 (ja) 2023-07-24
DE112020007414T5 (de) 2023-05-11
WO2022009333A1 (ja) 2022-01-13
US20230226691A1 (en) 2023-07-20
JPWO2022009333A1 (zh) 2022-01-13

Similar Documents

Publication Publication Date Title
JP3900789B2 (ja) モータの速度・加速度決定方法、加減速生成方法、加減速制御方法、加減速制御装置及びモータ制御装置
JP4673377B2 (ja) 数値制御機械の移動可能な機械要素の移動案内のための方法、装置および該装置用コンピュータプログラム
EP3486612B1 (en) Method for generating a trajectory
CN115702064A (zh) 机器人控制装置、机器人控制方法及机器人控制程序
Gu et al. Focused trajectory planning for autonomous on-road driving
US9764471B2 (en) Trajectory generation apparatus for robot to generate trajectory including curved portion
JP7067289B2 (ja) 動作計画装置及び動作計画方法
CN109765887A (zh) 一种自动驾驶控制方法
JP2009053926A (ja) 経路計画装置及び経路計画方法
Kai et al. A multi-task reinforcement learning approach for navigating unsignalized intersections
US11185981B2 (en) Robot control apparatus, robot control method, and program
Nishitani et al. Deep merging: Vehicle merging controller based on deep reinforcement learning with embedding network
JP2003334740A (ja) 許容速度決定方法および速度制御装置
JPH0969006A (ja) ロボットの接続動作時に速度制御を行なうための曲線補間方法
CN107054363A (zh) 用于运行在环岛交通中的车辆的纵向调节设备的方法
Wang et al. Speed profile optimization for enhanced passenger comfort: An optimal control approach
CN112689807A (zh) 路径段之间的时间优化的移动引导
JP2000148223A (ja) 曲線補間加減速制御方法
JP6926533B2 (ja) ロボットの動作プログラム生成装置
JP2000353006A (ja) 数値制御装置
EP0483756B1 (en) Robot controlling method and apparatus
JP3204042B2 (ja) ロボットの軌道の生成装置
JP2005044230A (ja) ロボット制御装置
JP6617582B2 (ja) 車両操舵制御装置
JP7199952B2 (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