CN110536783A - 编程支持装置、机器人系统、编程支持方法以及程序生成方法 - Google Patents
编程支持装置、机器人系统、编程支持方法以及程序生成方法 Download PDFInfo
- Publication number
- CN110536783A CN110536783A CN201880025770.8A CN201880025770A CN110536783A CN 110536783 A CN110536783 A CN 110536783A CN 201880025770 A CN201880025770 A CN 201880025770A CN 110536783 A CN110536783 A CN 110536783A
- Authority
- CN
- China
- Prior art keywords
- condition
- job task
- input
- task
- support device
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 342
- 230000008569 process Effects 0.000 claims abstract description 309
- 230000007613 environmental effect Effects 0.000 claims abstract description 121
- 238000003860 storage Methods 0.000 claims abstract description 42
- 230000009471 action Effects 0.000 claims abstract description 34
- 230000033001 locomotion Effects 0.000 claims description 61
- 238000011156 evaluation Methods 0.000 claims description 40
- 230000004044 response Effects 0.000 claims description 38
- 238000010276 construction Methods 0.000 description 30
- 238000012545 processing Methods 0.000 description 29
- 238000012790 confirmation Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 20
- 238000013500 data storage Methods 0.000 description 19
- 238000004088 simulation Methods 0.000 description 16
- 230000008859 change Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000007689 inspection Methods 0.000 description 5
- 230000015572 biosynthetic process Effects 0.000 description 4
- 230000000116 mitigating effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000010337 G2 phase Effects 0.000 description 1
- 241000406668 Loxodonta cyclotis Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000916 dilatatory effect Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000007788 roughening Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical group CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/1661—Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
- G05B19/41865—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/34—Director, elements to supervisory
- G05B2219/34418—Scheduler for sequential control, task planning, control sequence
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40108—Generating possible sequence of steps as function of timing and conflicts
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/50—Machine tool, machine tool null till machine tool work handling
- G05B2219/50391—Robot
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Stored Programmes (AREA)
- Manipulator (AREA)
- Numerical Control (AREA)
Abstract
编程支持装置(100)包括:作业任务存储部(114),存储多个作业任务,所述作业任务定义机器人(2)的动作模式;第一条件设定部(412),关于多个作业任务中的任意一个,依据对用户界面(130)的输入来设定环境条件,所述环境条件用于指定机器人(2)的动作环境;第二条件设定部(417),依据对用户界面(130)的输入来设定多个作业任务中使机器人(2)执行的多个执行对象的作业任务;以及规划支持部(501),在由第二条件设定部(417)设定的决定多个执行对象的作业任务的执行顺序的执行流程中,基于执行顺序确定至少一个作业任务是否满足环境条件。
Description
技术领域
本公开涉及编程支持装置、机器人系统、编程支持方法以及程序生成方法。
背景技术
已公开有一种作业计划装置,其包括:划分部,将包含多个执行主体的动作按照每个执行主体划分为多个动作;以及调整部,基于依存信息来调节多个动作中执行主体相一致的多个动作中的至少一个动作的开始定时,所述依存信息表示包括由划分部划分的动作在内的多个动作之间的依存关系。
在先技术文献
专利文献
专利文献1:日本特开2016-59985号公报
发明内容
本公开的目的在于,提供有效减轻机器人的动作编程负担的编程支持装置、机器人系统、编程支持方法以及程序生成方法。
根据本公开一个方面的编程支持装置包括:任务存储部,存储多个作业任务,所述作业任务定义机器人的动作模式;第一条件设定部,关于多个作业任务中的任一个,响应对用户界面的输入来设定环境条件,所述环境条件用于指定机器人的动作环境;第二条件设定部,响应于对用户界面的输入,设定多个作业任务中使机器人执行的多个执行对象的作业任务;以及规划支持部,在决定了由第二条件设定部设定的多个执行对象的作业任务的执行顺序的执行流程中,基于该执行顺序来判定至少一个作业任务是否满足环境条件。
发明效果
根据本公开,能够提供有效减轻机器人的动作编程负担的编程支持装置、机器人系统、编程支持方法以及程序生成方法。
附图说明
图1是示出机器人系统的整体配置的示意图;
图2是示出编程支持装置的功能配置的框图;
图3是示例性地示出主画面的示意图;
图4是示出环境构建模块的功能配置的框图;
图5是示例性地示出环境构建画面的示意图;
图6是示例性地示出模型选择画面的示意图;
图7是示例性地示出属性输入画面的示意图;
图8是示例性地示出图标选择画面的示意图;
图9是示例性地示出状态输入画面的示意图;
图10是示出条件设定模块的功能配置的框图;
图11是示例性地示出规划画面的示意图;
图12是示例性地示出第一约束条件的输入画面的示意图;
图13是示例性地示出顺序指定画面的示意图;
图14是示出编程模块的功能配置的框图;
图15是示出仿真模块的功能配置的框图;
图16是示例性地示出仿真画面的示意图;
图17是示例性地示出仿真对象的选择画面的示意图;
图18是示出编程支持装置的硬件配置的框图;
图19是示出编程支持过程的流程图;
图20是示出环境构建过程的流程图;
图21是示出属性数据注册过程的流程图;
图22是示出状态数据注册过程的流程图;
图23是示出编程支持条件的设定过程的流程图;
图24是示出第一约束条件的设定过程的流程图;
图25是示出各个条件的设定过程的流程图;
图26是示出各个条件的创建过程的流程图;
图27是示出第二约束条件的设定过程的流程图;
图28是示出运算等级的设定过程的流程图;
图29是示出程序生成过程的流程图;
图30是示出仿真过程的流程图;
图31是示例性地示出多个作业任务的执行流程的示意图;
图32是示例性地示出每个作业任务的环境条件的表;
图33是示例性地示出作业任务的执行定时的环境状态的表;
图34是示例性地示出定时条件的表;
图35是示出检查过程的流程图。
具体实施方式
以下,参照附图详细说明实施方式。在说明中,对于相同元素或具有相同功能的元素标记相同的附图标记,并省略重复描述。根据本实施方式的机器人系统是通过使机器人执行由操作者示教的动作,来将诸如加工、装配等各种作业自动化的系统。
1.机器人系统
如图1所示,机器人系统1包括机器人2、机器人控制器3和编程支持装置100。
机器人2例如是多轴(例如六轴或七轴)串联式垂直多关节机器人,并被配置成能够以在其末端部2a保持工具的状态执行各种作业。机器人2只要在预定的范围内能够自由地改变末端部2a的位置和姿态,则不一定限于六轴垂直多关节机器人。例如,机器人2也可以是在六轴的基础上添加了一个冗余轴的七轴垂直多关节机器人。
机器人控制器3根据预先生成的动作程序来控制机器人2。动作程序包括例如机器人2的末端部2a的路径信息。路径信息是指定末端部2a的位置/姿态随时间的转变的信息。例如,路径信息包括按时序列排列的多个位置/姿态目标值。机器人控制器3计算用于使末端部2a的位置/姿态与上述位置/姿态一致的关节角度目标值(机器人2的各关节的角度目标值),并根据该关节角度目标值来控制机器人2。
编程支持装置100是支持上述动作程序的编程的装置。编程支持装置100被配置为执行:存储多个作业任务,该作业任务定义机器人的动作模式;关于多个作业任务中的任一个,响应对用户界面的输入来设定环境条件,该环境条件用于指定机器人2的动作环境;响应于对用户界面的输入,设定多个作业任务中使机器人2执行的多个执行对象的作业任务;以及在决定了多个执行对象的作业任务的执行顺序的执行流程中,基于该执行顺序来判定至少一个作业任务是否满足环境条件。
动作模式是预先生成的动作指令,以使机器人2执行预定的作业。动作模式包含执行该预定的作业的过程中的上述路径信息。
编程支持装置100可以基于执行流程的其他作业任务中的机器人2的动作内容和该执行流程的执行顺序,来确定该执行流程中的任意一个所述作业任务的执行定时的环境状态,并且判定该环境状态是否满足该一个作业任务的环境条件。
图31示意性地示出了例如用于在包含盒子11的环境中使机器人2动作的三个作业任务的执行流程,其中,盒子11具有盖子12并容纳有螺栓13。图31的(a)示出了打开盖子12的作业任务“任务01”。图31的(b)示出了从盒子11取出螺栓13的另一个作业任务“任务02”。图31的(c)示出了关闭盒子11的盖子12的又一个作业任务“任务03”。
由任务01、02、03的每一个定义的动作模式包含物理地操作作业对象的动作。例如,由任务01定义的动作模式包含将盖子12作为作业对象以将盖子12从关闭状态变成打开状态的动作。由任务02定义的动作模式包含从盒子11内取出螺栓13的动作。由任务03定义的动作模式包含将盖子12从打开状态变成关闭状态的动作。
如图32所示,任务01、02和03中的每一个中设定有上述的环境条件。每个环境条件包含用于指定机器人的作业环境中包含的物体的状态的条件。机器人的作业环境中包含的物体可以包括上述的作业对象以及其他物体。例如,任务01的打开盖子12的动作只有在盖子12关闭的状态下才能执行。因此,在任务01中,将“盖子12关着”设定为用于指定作为该任务的作业对象的盖子12的状态的环境条件。任务02的从盒子11内取出螺栓13的动作只有在螺栓13位于盒子11内并且盖子12打开的状态下才能执行。因此,在任务02中,将“螺栓13位于盒子11中”设定为用于指定作为该任务的作业对象的螺栓13的状态的环境条件,并将“盖子12开着”设定为用于指定作为其他物体的盖子12的状态的环境条件。此外,任务03的关闭盖子12的动作只有在盖子12打开的状态下才能执行。因此,在任务03中,将“盖子12开着”设定为用于指定作为该任务的作业对象的盖子12的状态的环境条件。
如图31所示,在执行流程依次包括两个或更多个作业任务的情况下,编程支持装置100可以至少基于在前的作业任务(以下称为“第一作业任务”)中的机器人的动作内容,来确定后续的作业任务(以下称为“第二作业任务”)的执行定时的环境状态,并且判定该环境状态是否满足第二作业任务的环境条件。
更具体地,在由第一作业任务定义的动作模式包含对作业对象进行物理操作的动作,并且第二作业任务的环境条件包含用于指定该作业对象的状态的条件的情况下,编程支持装置100可以将机器人2依据第一作业任务进行动作后的该作业对象的状态确定为第二作业任务的执行定时的环境状态,并且判定该环境状态是否满足第二作业任务的环境条件。
环境状态是指当机器人2依据执行流程进行动作时在执行流程中的各个定时在机器人2的作业环境中实际发生的状态。与环境条件同样地,环境状态包含机器人2的作业环境中包含的物体的状态。机器人2的作业环境中包含的物体可以包括上述的作业对象以及其他物体。
例如,如图33所示,编程支持装置100将机器人依据任务01进行动作后的盖子12的状态、即“打开”指定为任务02的执行定时的环境状态。此外,由于任务01不包含对螺栓13的动作,因此编程支持装置100不会在机器人2依据任务01进行动作的前后更改螺栓13的状态,任务02中继续将螺栓13的状态设为“在盒子11中”。编程支持装置100判定这些环境状态是否满足任务02的环境条件。由于任务02中的环境条件包含“螺栓13在盒子11中”和“盖子12开着”,因此该环境状态满足任务02中的环境条件。
在执行流程依次包括第一作业任务、第二作业任务和第三作业任务的情况下,编程支持装置100也可以至少基于第一作业任务中的机器人的动作内容来确定第二作业任务的执行定时的环境状态,至少基于第二作业任务中的机器人的动作内容来更新该环境状态并确定第三作业任务的执行定时的环境状态,并且判定该环境条件是否满足第三作业任务的环境条件。
例如,如上所述,编程支持装置100基于任务01中机器人的动作内容,将任务02的执行定时的盖子12和螺栓13的状态设为“打开”和“在盒子11内”。此外,编程支持装置100将机器人依据任务02进行动作后的螺栓13的状态、即“在盒子11之外”确定为任务03的执行定时的环境状态。此外,由于任务02不包含对盖子12的动作,因此编程支持装置100不会在机器人2依据任务02进行动作的前后更改盖子12的状态,在任务03中仍继续将盖子12的状态设为“打开”。编程支持装置100判定这些环境状态是否满足任务03的环境条件。由于任务03中的环境条件包含“盖子12开着”但不包含螺栓13的条件,因此该环境状态满足任务03中的环境条件。
编程支持装置100也可以基于执行流程中的任意一个作业任务的环境条件和该执行流程中其他作业任务中的机器人2的动作内容,来生成该一个作业任务和该其他作业任务之间所需的顺序条件,用以该一个作业任务满足该环境条件,并且判定该执行流程的执行顺序是否满足该顺序条件。
例如,编程支持装置100对于执行流程,基于作为机器人2根据任务01进行动作后的盖子12的状态的“打开”、作为机器人2根据任务03进行动作后的盖子12的状态的“关闭”、以及由任务02的环境条件指定的“盖子12开着”之间的关系,生成任务02在任务01之后且在任务03之前执行的顺序条件。在图31中,任务01、任务02和任务03依次排列,因此图31的执行流程的执行顺序满足该顺序条件。
编程支持装置100可以被配置为还基于对用户界面的输入来在至少两个执行对象的作业任务之间指定执行定时的关系的定时条件。定时条件的具体示例除包括用于指定作业任务的顺序的条件之外,还包括用于指定在作业任务之间应确保的等待时间的条件。在此情况下,编程支持装置100也可以在决定执行顺序以满足定时条件的执行流程中基于该执行顺序来判定至少一个作业任务是否满足环境条件。
图34示出了设定定时条件的示例。在图34的示例中,在任务01和任务02之间设定“任务01在任务02之前执行”,在任务02和任务03之间设定“任务03在任务02之后执行”的条件。当设定了这样的定时条件时,根据满足该定时条件的执行流程,在任务02的执行定时的盖子12的状态必然为“打开”。因此,当设定了图34所示的定时条件时,将盖子12的状态指定为任务02的环境条件并不是必须的。换句话说,如果任务02的环境条件包含“盖子开着”,则设定图34的定时条件不是必须的。
动作程序例如由控制机器人2等一个或多个控制对象的控制器(例如机器人控制器3)执行。编程支持装置100执行动作程序的编程支持的控制对象不限于一个机器人2。例如,编程支持装置100可以被配置为:执行用于控制多个控制对象(例如,多个机器人2)的动作程序的编程支持。
2.编程支持装置
以下,对编程支持装置100的配置进行具体说明。如图2所示,编程支持装置100包括由一个或多个计算机构成的主体110、以及用户界面130。
用户界面130具有例如监视器131和输入设备132。监视器131是用于显示从主体110输出的信息的装置。监视器131只要可进行图形显示即可,可以是任意的装置,作为其具体示例,可举出液晶面板等。输入设备132是用于向主体110输入信息的装置。输入设备132只要可输入期望的信息即可,可以是任意的装置,作为其具体示例,可举出键盘、鼠标等。监视器131和输入设备132可以集成为兼具输入功能和显示功能的触摸面板。
主体110包括主模块200、环境构建模块300、条件设定模块400、编程模块500以及仿真模块600,作为功能性配置(以下称为“功能模块”)。
主模块200是用于响应用户的输入来调用编程支持装置100的各种功能的模块。
环境构建模块300是用于构建用于机器人2的动作仿真的环境模型数据(模型数据)的模块。环境模型数据例如是三维表面数据,其中机器人2及其周围环境的模型由多边形构成。环境构建模块300将构建的环境模型数据写入环境数据存储部111中。
条件设定模块400是用于设定包括第一约束条件和第二约束条件的编程支持条件的模块,第一约束条件是每个作业任务的执行上的约束条件,第二约束条件是有关作业任务之间的关系的约束条件。
第一约束条件包括诸如上述环境条件之类的为实现作业任务的目的而不可避免的条件。例如,对于将工件放入带盖盒子或从中取出的作业任务来说,在开盖状态下执行是上述不可避免的条件。另外,对于使用工具进行加工的作业任务来说,握持工具以及工具处于开启状态等是上述不可避免的条件。
第二约束条件包括诸如上述定时条件之类的定义作业任务之间的关系的条件。作业任务之间的关系既可以是可从第一约束条件导出的条件,也可以是无法从第一约束条件导出的条件。第二约束条件还包括并非为实现每个作业任务而不可避免的条件。
编程模块500是用于根据条件设定模块400设定的编程支持条件来执行动作程序的编程支持的模块。例如,编程模块500根据上述编程支持条件生成动作程序,并将该动作程序写入动作程序存储部112中。编程模块500也可以检查用于生成动作程序的临时流程。
仿真模块600是用于执行机器人2的动作仿真的模块。动作仿真是指在仿真环境下使机器人2的模型动作。例如,仿真模块600在由上述环境模型数据(存储在环境数据存储部111中的环境模型数据)确定的仿真环境下依据上述动作程序(存储在动作程序存储部112中的动作程序)使机器人2的模型动作。
主模块200具有画面数据生成部201和模块切换部202。画面数据生成部201生成用于在监视器131上显示主画面A1(参照图3)的数据。主画面A1是用于调用编程支持装置100的各种功能的操作画面。模块切换部202与用户界面上的一个或多个按钮相关联,用于响应对主画面A1的操作输入来切换要执行的模块。
如图3所示,主画面A1具有例如环境构建按钮A2、规划按钮A3、仿真按钮A4和结束按钮A5。环境构建按钮A2是用于启动环境构建模块300的按钮。规划按钮A3是用于启动条件设定模块400和编程模块500的按钮。仿真按钮A4是用于启动仿真模块600的按钮。结束按钮A5是用于关闭主画面并结束主模块200的处理的按钮。
以下,对环境构建模块300、条件设定模块400、编程模块500和仿真模块600的配置进行说明。
(1)环境构建模块
如图4所示,环境构建模块300包括画面数据生成部301、更新部302、模型添加部303、绘图数据生成部304、属性数据注册部305和状态数据注册部306,作为更细分的功能模块。
画面数据生成部301生成用于在监视器131上显示环境构建画面B1的数据。环境构建画面B1是用于构建环境模型数据的输入画面。
参照图5,根据环境构建画面B1,能够(通过模型添加按钮B3)将模型添加到仿真环境(由仿真环境区域B2表示),(通过属性设定按钮B4)定义模型的属性,以及(通过状态设定按钮B5)设定模型的状态。以下,该模型也被称为“输入目标模型”。该模型在仿真环境中表示物体。作为环境构建画面B1的若干功能性特征,输入目标模型也可以从在仿真环境区域(B2)中显示的图像中选择。如图5中所示,环境创建画面B1例如具有仿真环境区域B2、模型添加按钮B3、属性设定按钮B4、状态设定按钮B5和结束按钮B6。仿真环境区域B2是通过三维图像等来显示构建中的由环境模型数据所表示的仿真环境的区域。
模型添加按钮B3是用于将模型数据添加到环境模型数据的按钮。模型数据例如是由多边形构成的三维表面数据。
属性设定按钮B4是用于输入用于确定包含在环境模型数据中的物体的数据(以下称为“属性数据”)的按钮。
状态设定按钮B5是用于输入表示包含在环境模型数据中的物体的状态的数据(以下称为“状态数据”)的按钮。作为状态数据的具体示例,在物体为带盖盒子的情况下,可以举出“盖子打开的状态”、“盖子关闭的状态”等。在物体为通过切换开启/关闭而使用的工具的情况下,可以举出“开启状态”、“关闭状态”等。
结束按钮B6是用于关闭环境构建画面B1并结束环境构建模块300的处理的按钮。
回到图4,更新部302响应对输入设备132的操作输入而更新环境构建画面B1的显示用数据。例如,响应于模型添加按钮B3被点击,更新部302更新环境构建画面B1的显示用数据,以显示模型选择画面C1。响应于属性设定按钮B4被点击,更新部302更新环境构建画面B1的显示用数据,以显示属性输入画面D1。此外,响应于状态设定按钮B5被点击,更新部302更新环境构建画面B1的显示用数据,以显示状态输入画面F1。
当模型添加按钮B3被点击时(图5),在用户界面上打开图6所示的模型选择画面C1。模型选择画面C1是用于选择要添加到环境模型数据的模型数据的画面。如图6所示,模型选择画面C1具有列表显示区域C2和添加按钮C3。列表显示区域C2显示可添加到环境模型数据的模型数据的列表。添加按钮C3是用于指示添加在列表显示区域C2中选择的模型数据的按钮。
当属性设定按钮B4被点击时(图5),在用户界面上打开图7所示的属性输入画面D1。属性输入画面D1是用于输入输入目标模型的属性数据的画面。输入目标模型可以通过点击作为环境模型数据的构成元素而被显示在仿真环境区域B2(图5)中的模型中的一个来选择。如图7所示,属性输入画面D1具有输入框D2、输入框D3、图标添加按钮D4和注册按钮D5。输入框D2是用于输入输入目标模型的类别(例如“机器人”、“工具”、“工件”、“装置”等)的输入框。输入框D2可以被配置为能够对预先注册的选项进行选择输入(参见图7的(b))。输入框D3是用于输入输入目标模型的名称的输入框。图标添加按钮D4是用于输入要与输入目标模型相关联的图标数据的按钮。例如,可以在随着图标添加按钮D4的点击而被显示的图标选择画面E1(图8)中输入图标数据。
如图8所示,图标选择画面E1具有列表显示区域E2和添加按钮E3。列表显示区域E2显示可用图标数据的列表。添加按钮E3是用于指示添加在列表显示区域E2中选择的图标数据的按钮。
返回到图7,注册按钮D5是用于指示注册在属性输入画面D1中输入的数据的按钮。注册按钮D5是用于将输入的属性数据与输入目标模型(或者“物体”、或者仿真环境中的“模型部件”)相关联地注册(或记录)到存储器中的按钮。
当状态设定按钮B5被点击时(图5),图9所示的状态输入画面F1在用户界面上打开。如图9所示,状态输入画面F1包括输入框F2、输入框F3和注册按钮F4。输入框F2是用于选择输入目标模型的输入框。输入框F2可以被配置为可以对已注册在环境数据存储部111中的模型名进行选择输入。输入框F3是用于输入状态的名称的输入框。注册按钮F4是用于指示注册在状态输入画面F1中输入的数据的按钮。注册按钮F4是用于将输入的状态与输入目标模型(或者“物体”,或者仿真环境中的“模型部件”)相关联地注册(或记录)到存储器中的按钮。
返回到图4,在环境构建画面B1(图5)中模型添加按钮B3被点击从而模型数据被添加到环境模型数据之后,更新部302更新仿真环境区域B2中的显示用数据,以显示添加后的仿真环境的图像。
进一步参照图4,响应于对用户界面130的输入,模型添加部303将模型数据添加到环境数据存储部111的环境模型数据中。例如,响应于模型添加按钮B3(图5)被点击,模型添加部303参照模型数据存储部113,生成模型数据的列表,并将其作为显示列表显示区域C2(图6)的显示用数据输出给更新部302。
模型数据存储部113存储也可以预先创建好的多个模型数据(或数据元素)。模型数据存储部113可以设置在编程支持装置100中,也可以设置在编程支持装置100的其他装置(例如,用于三维设计的计算机)中。
进而参照图6所示的模型选择画面C1,此后,模型添加部分303从模型数据存储部113获取通过点击添加按钮C3而选择的模型数据,并将其添加到环境数据存储部111的环境模型数据中。
绘图数据生成部304使用存储在环境数据存储部111中的环境模型数据来生成仿真环境的绘图数据,并将其作为仿真环境区域B2(图5)的显示用数据输出给更新部302。
响应于对用户界面130的输入,属性数据注册部305将属性数据添加到环境数据存储部111的环境模型数据中。例如,属性数据注册部305响应注册按钮D5(图7)的点击而获取在属性输入画面D1(图7)中输入的数据,并将该数据与输入目标模型相关联地写入环境数据存储部111中。
响应对用户界面130的输入,状态数据注册部306将上述状态数据添加到环境数据存储部111的环境模型数据中。例如,状态数据注册部306响应注册按钮F4(图9)的点击而获取在状态输入画面F1(图9)中输入的数据,并将该数据与输入目标模型相关联地写入环境数据存储部111中。
(2)条件设定模块
条件设定模块400(图2)分别设定第一约束条件和第二约束条件。如图10所示,条件设定模块400具有画面数据生成部401、第一更新部402、第二更新部403、第三更新部404、列表生成部405、约束菜单生成部406、第一输入支持部408、第二输入支持部409、选项信息获取部410、条件读取部411、第一条件设定部412、临时流程生成部416、第二条件设定部417、运算等级设定部418以及条件注册部419,作为更细分的功能模块。
画面数据生成部401生成用于将输入画面(参见图11)显示到监视器131中的显示用数据,并将其输出给监视器131,该输入画面包含用于输入第一约束条件的第一输入区域和用于输入第二约束条件的第二输入区域。画面数据生成部401也可以生成还包含列表显示区域的输入画面的显示用数据,该列表显示区域表示多个作业任务的列表。画面数据生成部401也可以生成输入画面的显示用数据,以使列表显示区域被布置在第一输入区域和第二输入区域之间。
例如,画面数据生成部401生成图11所示的规划画面G1(输入画面)的显示用数据。规划画面G1具有列表显示区域G2、第一输入区域G9、第二输入区域G20、约束菜单显示区域G32、第三输入区域G34、条件注册按钮G36、规划按钮G37、以及保存按钮G38。
列表显示区域G2显示预先创建好的多个作业任务的列表。列表显示区域G2排列显示与多个作业任务分别对应的多个列表元素G3。列表元素G3可以按照预定的时序列排列。列表元素G3包含名称显示部G5和图标显示部G6。名称显示部G5以文本格式显示作业任务的名称。图标显示部G6显示与作业任务的内容相关的一个或多个图标(例如,作业对象的图标)。
第一输入区域G9是用于输入第一约束条件的区域。第一输入区域G9包括作业内容输入区域G10和约束条件输入区域G16。
作业内容输入区域G10是用于输入确定作业任务的内容的信息(以下称为“作业内容信息”)的区域。作业内容信息包括例如用于确定作业对象的信息和用于确定针对作业对象的动作内容的信息。作业对象只要是通过机器人2进行作业的对象,就可以是任意的物体。在对工件进行作业时机器人2所使用的工具也是机器人2进行搬运作业的对象,因此包含在作业对象中。
例如,作业内容输入区域G10包含多个项目指定按钮G11、图标选择区域G12、输入内容显示区域G13和名称输入区域G15。项目指定按钮G11是用于选择上述作业内容信息的项目的按钮。图标选择区域G12对能够向通过点击项目指定按钮G11而被选择的项目输入的选项进行图标显示。例如,当项目指定按钮G11中的“对象”按钮被点击时,对象的选项(例如,盒子、螺栓、容纳在盒子中的物体等)被显示为图标。此外,例如,当项目指定按钮G11中的“工具”按钮被点击时,工具的选项(例如,螺丝刀、扳手、夹具等)被显示为图标。输入内容显示区域G13显示已输入的作业内容信息。名称输入区域G15获取作业任务的名称的输入。
约束条件输入区域G16是用于输入约束条件的区域。约束条件输入区域G16具有多个条件输入部G17。每个条件输入部G17获取一个约束条件的输入。条件输入部G17具有新创建按钮G18和显示部G19。新创建按钮G18是用于显示条件创建画面H1(稍后参照图12描述)的按钮。显示部G19显示在条件创建画面H1中创建的条件。
第二输入区域G20是用于输入第二约束条件的区域。第二输入区域G20具有条件输入部G21和结果输出部G29。条件输入部G21包括流程显示部G22和标签G28。流程显示部G22显示其中排列了多个流程元素G24的临时流程G23和至少一个条件元素G25。临时流程G23表示包含由控制对象(例如机器人2)执行的作业任务的过程。临时流程G23示出了为构成动作程序而选择的多个作业任务的执行顺序。多个流程元素G24与多个作业任务分别对应。
当编程支持装置100针对多个控制对象(例如机器人)执行动作程序的编程支持时,第二输入区域G20也可以以使用图11的取名为“过程1”和“过程2”的标签例示的方式,显示与多个控制对象分别对应的多个临时流程G23。
条件元素G25表示在临时流程G23中的作业任务之间设定的第二约束条件。例如,条件元素G25与分别对应于两个作业任务的两个流程元素G24相关联地显示,该两个作业任务是第二约束条件的设定对象。
在图示的例子中显示了三个条件G25、G26、G27。条件元素G25示出了将第一个作业任务和第二个作业任务组成一组的约束条件,显示为将第一个流程元素G24和第二个流程元素G24框起来的框架。条件元素G26示出了决定应在第五个作业任务与第六个作业任务之间确保的时间间隔的约束条件,被表示在连接第五个流程元素G24和第六个流程元素G24的线上。条件元素G27示出了决定应在第三个作业任务和第五个作业任务之间确保的时间间隔的约束条件,被表示在不经过第四个流程元素G24而连接第三个流程元素G24和第五各流程元素G24的线上。标签G28设置在流程显示部G22的上部,用于切换条件输入部G21和结果输出部G29的显示。
结果输出部G29显示由编程模块500生成的执行流程。结果输出部G29包含显示执行流程的流程显示部G30和标签G31。流程显示部G30被显示在与流程显示部G22相同的位置处。标签G31被设置与上述标签G28不同的位置,且流程显示部G30的上部。如果在流程显示部G22被显示的状态下点击标签G31,则能够显示流程显示部G30,如果在流程显示部G30被显示的状态下点击标签G28,则能够显示流程显示部G22。
约束菜单显示区域G32显示可向第二输入区域G20中输入的多个约束条件的列表。约束菜单显示区域G32排列显示与多个约束条件分别对应的多个菜单元素G33。作为一个例子,约束菜单显示区域G32在第一输入区域G9和第二输入区域G20之间与列表显示区域G2相邻布置。
第三输入区域G34获取编程支持中的运算等级(稍后描述)的输入。例如,第三输入区域G34被配置为使得可通过单选按钮G35选择多个预先设定的运算等级。作为一个例子,第三输入区域G34被布置在第一输入区域G9和第二输入区域G20之间,并在与约束菜单显示区域G32相反的一侧与列表显示区域G2相邻布置。
条件注册按钮G36是用于指示注册向第一输入区域G9、第二输入区域G20和第三输入区域G34输入的内容的按钮。规划按钮G37是用于指示依据对第一输入区域G9、第二输入区域G20和第三输入区域G34的输入内容执行编程支持的按钮。执行编程支持例如也可以是生成用于使机器人控制器动作的动作程序。保存按钮G38是用于指示保存通过编程支持生成的动作程序的按钮。
规划画面G1的配置仅仅是一个例子。只要输入画面包含第一输入区域和第二输入区域,输入画面可以以任何方式配置。例如,输入画面可以被配置为使得第一输入区域和第二输入区域位于列表显示区域的上方和下方。输入画面也可以被配置为将第一输入区域的至少一部分和第二输入区域的至少一部分切换显示在相同的位置。
返回到图10,响应于对用户界面130的输入,第一更新部402更新第一输入区域G9的显示用数据。第一更新部402也可以更新第一输入区域G9的显示用数据,使得可以输入在列表显示区域G2中选择的作业任务的第一约束条件。例如,当在列表显示区域G2中任意的列表元素G3被点击(选择)时,第一更新部402更新第一输入区域G9的显示用数据,使得可以输入与该列表元素G3相对应的作业任务的第一约束条件。更具体地,第一更新部402更新第一输入区域G9的显示用数据,以便对于关于该作业任务具有已注册信息的项目,在该项目的输入部分显示该信息,而对于其他项目,使该项目的输入部分为空白。例如,作业任务针对若干项目(对象、工具等)也可以具有已经设定的条件。第一更新部402从稍后描述的条件读取部411获取已注册的信息。
另外,响应于对第一输入区域G9的输入,第一更新部402更新第一输入区域G9的显示用数据。例如,当通过对项目指定按钮G11和图标选择区域G12进行操作而输入了作业内容信息时,第一更新部402更新输入内容显示区域G13以反映输入内容。响应于对名称输入区域G15的文本输入,第一更新部402将输入内容显示在名称输入区域G15中。响应于条件输入部G17中的新创建按钮G18被点击,第一更新部402更新第一输入区域G9的显示用数据以显示条件创建画面H1。
例如,如图12所示,条件创建画面H1具有输入框H2、输入框H3、输入框H4以及创建按钮H5。输入框H2是用于输入作业对象的输入框。输入框H3是用于输入约束条件的应用定时的输入框。应用定时是表示在作业任务的执行期间的哪个时间点应用约束条件的信息。输入框H4是用于输入作为约束条件的一个例子的状态指定条件的输入框,状态指定条件用于指定作业对象的状态。输入框H2、H3和H4可以被配置为可对预先注册的选项进行选择输入(参见图12(b))。创建按钮H5是用于指示创建依据在条件创建画面H1中输入的数据的条件的按钮。
返回到图10,第一更新部402创建依据在条件创建画面H1中输入的数据的条件,并更新第一输入区域G9的显示用数据以将该条件显示在显示部G19上。
响应于对用户界面130的输入,第二更新部403更新第二输入区域G20的显示用数据。第二更新部403更新第二输入区域G20的显示用数据,以显示在列表显示区域G2中选择的多个作业任务,使得可以输入所述多个作业任务之间的第二约束条件。
第二更新部403也可以更新第二输入区域G20的显示用数据,以显示在列表显示区域G2中选择的多个作业任务的临时流程G23,并使得可在所述多个作业任务之间输入第二约束条件。例如,每当进行将在列表显示区域G2中选择的列表元素G3布置到第二输入区域G20中的输入时,第二更新部403更新显示用数据,以将与该列表元素G3对应的作业任务添加到第二输入区域G20的显示中。更具体地,第二更新部403更新显示用数据,以将与该作业任务相对应的流程元素G24添加到临时流程G23中。
作为用于将在列表显示区域G2中选择的列表元素G3布置到第二输入区域G20中的输入的具体示例,可举出将列表元素G3从一列表显示区域G2拖动输入到第二输入区域G20,或将在列表显示区域G2中复制的列表元素G3粘贴到第二输入区域G20的输入等,但并非仅限于这些。
当编程支持装置100对多个控制对象执行动作程序的编程支持时,第二更新部403也可以更新第二输入区域G20的显示用数据,以显示与多个控制对象分别对应的多个临时流程G23。
通过在第二输入区域G20中显示临时流程G23,能够在临时流程G23中的作业任务之间(流程元素G24之间)输入第二约束条件。例如,当进行了将在约束菜单显示区域G32中选择的菜单元素G33布置到第二输入区域G20的流程元素G24之间的输入时,第二更新部403更新第二输入区域G20的显示用数据,以将与菜单元素G33对应的约束条件插入到该流程元素G24之间。
作为将在约束菜单显示区域G32中选择的菜单元素G33布置到第二输入区域G20中的输入的具体示例,可举出将菜单元素G33从约束菜单显示区域G32拖动输入到第二输入区域G20,或将在约束菜单显示区域G32中复制的菜单元素G33粘贴到第二输入区域G20的输入等,但并非仅限于这些。
当编程支持装置100对多个控制对象执行动作程序的编程支持时,第二更新部403也可以更新第二输入区域G20的显示用数据,以在不同控制对象的流程元素G24之间插入约束条件。
例如,也可以通过最初选择两个流程元素来插入或添加第二约束条件。选择两个流程元素可以包括点击(或选择)连接两个流程元素G24的线。响应于连接流程元素G24的线被点击,第二更新部403更新第二输入区域G20的显示用数据,以显示规制输入画面J1。规制输入画面J1是用于向与流程元素G24之间对应的作业任务之间输入约束条件的画面。如图13所示,规制输入画面J1具有输入框J2。输入框J2是用于输入有无顺序约束(有无禁止顺序变更)的输入框。例如,输入框J2可以被配置为使得能够选择输入“有”(表示有顺序约束)和“无”(表示没有顺序约束)(参见图13(b))。
返回到图10,并且参照图11,临时流程G23由临时流程生成部416生成。当在第二输入区域G20中显示有第一个作业任务的流程元素的状态下第二个作业任务的列表元素G3被拖拽到第二输入区域G20时,临时流程生成部416基于拖拽完成位置与现有的流程元素G24之间的位置关系,来设定第一个作业任务和第二个作业任务的顺序,生成最初的临时流程G23。例如,如果临时流程G23包含与第一个作业任务对应的第一流程元素G24,并且与第二个作业任务对应的列表元素G3的拖拉完成位置在流程元素G24的下方,则生成第二个流程元素G24,并且临时流程G23被更新以在第一个作业任务之后执行第二个作业任务。如果拖拽的完成位置在第一流程元素G24的上方,则临时流程G23被更新以在第一个作业任务之前执行第二个作业任务。
此后,每当列表元素G3从列表显示区域G2被拖拽到第二输入区域G20(或者,每当为了插入到临时流程G23而作业任务以其他任意方法被选择时),临时流程生成部416将与列表元素G3对应的作业任务插入到临时流程G23中。此时,临时流程生成部416根据现有的流程元素G24和拖动完成位置之间的关系来求出作业任务的插入位置。
当编程支持装置100针对多个控制对象执行动作程序的编程支持时,临时流程生成部416可以生成与多个控制对象分别对应的多个临时流程G23。
响应于对用户界面130的输入,第三更新部404更新第三输入区域G34的显示用数据。例如,第三更新部404更新显示用数据以开启在第三输入区域G34中点击或选择的单选按钮G35。
列表生成部405生成用于显示在列表显示区域G2中的作业任务的列表,并将其输出到画面数据生成部401。例如,列表生成部405参照作业任务存储部114,生成作业任务的列表。
作业任务存储部114存储由用户预先创建的多个作业任务。作业任务存储部114可以设置在编程支持装置100中,也可以设置在编程支持装置100的其他设备(例如,机器人控制器3)中。
约束菜单生成部406生成用于显示在约束菜单显示区域G32中的约束条件的列表,并将其输出到画面数据生成部401。例如,约束菜单生成部406参照约束菜单存储部407,生成约束菜单的列表。约束菜单存储部407存储预先创建的多个约束菜单。
选项信息获取部410从上述环境数据存储部111获取第一选项信息和第二选项信息,第一选项信息用于确定包含在环境模型数据中的物体,第二选项信息表示该物体的状态。
第一输入支持部408设定作业对象的选项,并生成用于显示该选项的数据。例如,第一输入支持部408在条件创建画面H1中生成用于向输入框H2中(图12)选择输入作业对象的选项。第一输入支持部408可以基于第一选项信息来设定作业对象的选项。在此情况下,由环境构建模块300获取的信息被用作作业对象的选项。
第二输入支持部409根据成为状态的指定对象的作业对象,设定状态指定条件的选项,并生成用于显示该选项的数据。例如,第二输入支持部409在条件创建画面H1中根据向输入框H2中输入的作业对象,生成用于向输入框H4(图12)中选择输入状态的选项。第二输入支持部409可以基于第二选项信息来设定状态指定条件的选项。在此情况下,由环境构建模块300获取的信息被用作状态指定条件的选项。例如,第二输入支持部409从第二选项信息中提取输入到输入框H2的作业对象的状态,并将提取结果作为状态指定条件的选项。
响应于对用户界面130的输入,第一条件设定部412设定第一约束条件,并将其与作为该第一约束条件的对象的作业任务的识别信息相关联地写入用于临时存储的条件缓冲器415中。
如上所述,第一约束条件可以包含用于指定作业任务的作业对象的状态的状态指定条件。在此情况下,第一条件设定部412可以包括对象设定部413和状态设定部414作为更细分的功能模块。对象设定部413基于对第一输入区域G9的输入来设定作业任务的作业对象。例如,对象设定部413基于在输入内容显示区域G13中显示的内容来设定作业任务的作业对象。状态设定部414基于对第一输入区域G9的输入来设定状态指定条件。例如,状态设定部414根据输入到条件输入部G17中的内容来设定作业对象的状态指定条件。
响应于对用户界面130的输入,第二条件设定部417设定第二约束条件,该第二约束条件是关于作业任务彼此间的关系的约束条件。例如,第二条件设定部417基于在第二输入区域G20中向作业任务之间输入的约束条件来设定第二约束条件。
当编程支持装置100对多个控制对象执行动作程序的编程支持时,第二条件设定部分417也可以对不同控制对象的作业任务之间设定约束条件。
响应于对用户界面130的输入,运算等级设定部418设定编程支持中的运算等级(稍后描述)。例如,运算等级设定部418设定用来调节用于判定能否采用稍后描述的执行流程的标准的运算等级。
条件注册部419将第一约束条件和第二约束条件中的至少一者注册到条件存储部中。例如,条件注册部419将条件缓冲器415的存储内容(例如,与第一约束条件相关联)写入个体条件存储部420中。此外,条件注册部419将由第二条件设定部417设定的第二约束条件与作为该第二约束条件的对象的作业任务相关联地写入作业间条件存储部422中。此外,条件注册部419将在第二输入区域G20中显示的多个作业任务作为执行对象的任务而写入执行对象存储部421中。例如,条件注册部419将与临时流程G23的多个流程元素G24分别对应的多个作业任务作为执行对象的作业而写入执行对象存储部421中。此外,条件注册部419将由运算等级设定部418设定的运算等级写入运算条件存储部423中。
条件读取部411从条件存储部读取第一约束条件和第二约束条件中的至少一者。例如,条件读取部411从个体条件存储部420读取第一约束条件。
(3)编程模块
编程模块500响应规划按钮G37(图11)被点击而启动。如图14所示,编程模块500包括规划支持部501和程序生成部510,作为更细分的功能模块。
规划支持部501基于第一约束条件和第二约束条件来检查至少一个作业任务的执行定时。检查是指确认是否满足第一约束条件和第二约束条件。例如,规划支持部501执行:存储用于定义机器人的动作模式的多个作业任务;针对多个作业中的任一个,响应对用户界面的输入来设定用于指定机器人2的动作环境的环境条件;以及在决定了多个执行对象的作业任务的执行顺序的执行流程中,基于该执行顺序来判定至少一个作业任务是否满足环境条件。执行流程可以由规划支持部501自动生成,或者也可以由用户设定并输入。下面,对规划支持部501自动生成执行流程的情形进行说明。
例如,规划支持部501包括判定部504、流程调节部503、路径信息获取部505、连接任务生成部506、流程评价部507以及更新部502,作为更细分的功能模块。
判定部504基于存储在个体条件存储部420中的第一约束条件和存储在任务间条件存储部422中的第二约束条件,检查至少一个作业任务的执行定时。判定部504在决定了多个执行对象的作业任务的执行顺序的执行流程中,基于该执行顺序来确定至少一个作业任务是否满足环境条件。
例如,判定部504基于执行流程的其他作业任务中的机器人2的动作内容和该执行流程的执行顺序,来确定该执行流程中的任意一个作业任务的执行定时的环境状态,并且判定该环境状态是否满足该一个作业任务的环境条件。
在执行流程依次包括第一作业任务和第二作业任务的情况下,判定部504可以至少基于第一作业任务中的机器人2的动作内容来确定第二作业任务的执行定时的环境状态,并且判定该环境状态是否满足第二作业任务的环境条件。
更具体地,在由第一作业任务定义的动作模式包含用于物理地操作作业对象的动作,并且第二作业任务的环境条件包含用于指定该作业对象的状态的条件的情况下,判定部504可以将机器人2根据第一作业任务进行动作后的该作业对象的状态确定为第二作业任务的执行定时的环境状态,并且判定该环境状态是否满足第二作业任务的环境条件。
在执行流程依次包括第一作业任务、第二作业任务以及第三作业任务的情况下,判定部504可以至少基于第一作业任务中的机器人2的动作内容来确定第二作业任务的执行定时的环境状态,将该环境状态至少基于第二作业任务中的机器人2的动作内容进行更新并确定第三作业任务的执行定时的环境状态,并且判定该环境状态是否满足第三作业任务的环境条件。
判定部504可以基于执行流程的任意一个作业任务的环境条件和该执行流程的其他作业任务中的机器人2的动作内容,来生成该一个作业任务与该其他作业任务之间所需的顺序条件以使该一个作业任务满足该环境条件,并且判定该执行流程的执行顺序是否满足该顺序条件。
流程调节部503生成作为判定部504的判定对象的执行流程,以使其满足定时条件。此外,当判定在执行流程中任何作业任务不满足环境条件时,改变执行顺序以便满足定时条件。例如,流程调节部503在满足定时条件的范围内,随机地生成存储在执行对象存储部421中的多个作业任务的执行流程。此后,当判定在执行流程中任何作业任务不满足环境条件时,流程调节部503随机地改变执行顺序以满足定时条件。此后,流程调节部503反复改变执行顺序,直至达到满足定时条件的执行流程中不包含不满足环境条件的作业任务的状态为止。每当生成或改变执行流程时,流程调节部503将其结果改写到用于临时存储的流程缓冲器508中。
当编程支持装置100针对多个控制对象执行动作程序的编程支持时,流程调节部503也可以生成与多个控制对象分别对应的多个执行流程。
路径信息获取部505,针对至少一个作业任务,获得定义机器人2的动作路径(末端部2a的位置和姿态随时间的变化)的第一路径信息。例如,路径信息获取部505从执行对象存储部421读取执行对象的作业任务的全部第一路径信息。
连接任务生成部506基于存储在流程缓冲器508中的执行流程、通过路径信息获取部505获取的第一路径信息、以及存储在环境数据存储部111中的环境数据,生成第二路径信息,该第二路径信息定义在作业任务之间的机器人2的动作路径。例如,连接任务生成部506以连接在前的作业任务的动作路径的终点和后续的作业任务的动作路径的起点,并且避免机器人2与其周围配置物发生冲撞的方式生成第二路径信息,并将其写入用于临时存储的路径缓冲器509中。
例如,连接任务生成部506重复执行生成可避免冲突的途径点,并修正路径以使其通过该途经点,直到在整个路径上能够避免碰撞为止。例如,在日本专利第4103057号等中公开了更具体的路径生成方法。
流程评价部507基于与第一约束条件以及第二约束条件不同的评价条件来评价执行流程和第一路径信息以及第二路径信息中的至少一者,并基于评价结果判定执行流程能否采用。例如,流程评价部507基于评价条件评价执行流程、第一路径信息和第二路径信息,并基于评价结果来判定执行流程能否采用。例如,评价结果可以是执行流程作为动作程序执行时的执行时间、动作程序被执行时的能耗等的参考值。可以将评价结果与标准值进行比较,以判定评价条件是否满足以及是否可以采用执行流程。
更具体地,流程评价部507针对依照执行流程、第一路径信息和第二路径信息的动作程序导出预定的评价值,如果该评价值达到合格线,则认为可以采用执行流程,如果评价值未达到合格线,则认为不能采用执行流程。作为评价值的具体示例,可举出动作程序的执行时间或动作程序的功耗(根据动作程序动作的机器人2的功耗)。评价值也可以组合执行时间和功耗来导出。
此外,流程评价部507也可以在预定时间内重复执行流程的生成和评价值的导出,并将可获得最佳评价值的执行流程评价为能够采用。例如,流程评价部507也可以将动作程序的执行时间最小的执行流程评价为能够采用,或者也可以将动作程序的功耗最小的执行流程评价为能够采用。
流程评价部507也可以根据存储在运算条件存储部423中的运算等级来调节用于判定执行流程能否采用的标准。例如,流程评价部507随着存储在运算条件存储部423中的运算等级变高,可以提高合格线,也可以延长重复进行执行流程的生成和评价值的导出的时间。
此外,流程评价部507可以根据存储在运算条件存储部423中的运算等级来调节要评价的动作程序的精度。例如,流程评价部507随着存储在运算条件存储部423中的操作等级降低,可以通过简化评价对象的动作程序来缩短操作时间。作为简化的具体示例,可举出省略第二路径信息的生成以将作业任务之间的移动路径形成为直线状,或者将作业任务之间的时间设为恒定值,或者粗化环境模型数据中的网格等等。
更新部502更新第二输入区域G20的显示用数据,以在结果输出部G29中显示由流程评价部507评价为能够采用的执行流程。
程序生成部510基于由规划支持部501判定为能够采用的执行流程,生成机器人2的动作程序。例如,动作程序是根据上述执行流程排布第一路径信息和第二路径信息而得的。
程序注册部511响应于对用户界面130的输入,将由程序生成部510生成的动作程序注册在动作程序存储部112中。例如,响应于保存按钮G38被点击,程序注册部511将动作程序写入动作程序存储部112中。
编程模块500只要至少基于执行定时的检查结果来执行编程支持即可,因此不一定需要执行动作程序的自动生成。例如,编程模块500可以被配置为:当用户输入的执行流程不满足第一约束条件和第二约束条件中的至少一个时进行表示该情况的警告显示。
(4)仿真模块
如图15所示,仿真模块600具有画面数据生成部601、更新部602、程序设定部603、仿真执行部604、以及动画数据生成部605,作为更细化的功能模块。
另外,参照图16,画面数据生成部601生成用于在监视器131上显示仿真画面K1的数据。仿真画面K1是用于以图形方式显示仿真结果的画面。
如图16所示,仿真画面K1具有绘图区域K2、程序选择按钮K3、仿真执行按钮K4和结束按钮K5。绘图区域K2是用于通过三维图像等显示仿真结果的区域。程序选择按钮K3是用于选择仿真对象的动作程序的按钮。仿真执行按钮K4是用于指示执行仿真的按钮。结束按钮K5是用于关闭仿真画面K1并结束仿真模块600的处理的按钮。
返回到图15,响应于对输入设备132的操作输入,更新部602更新仿真画面K1的显示用数据。例如,响应于上述程序选择按钮K3被点击,更新部602更新仿真画面K1的显示用数据,以显示程序选择画面L1。程序选择画面L1是用于选择仿真对象的动作程序的画面。
如图17所示,程序选择画面L1具有列表显示区域L2和选择按钮L3。列表显示区域L2显示可选择的动作程序(例如,存储在动作程序存储部112中的动作程序)的列表。选择按钮L3是指示选择在列表显示区域L2中选择的动作程序的按钮。
此外,在仿真执行按钮K4被点击,并且根据该仿真结果的动画数据(后述)被生成之后,更新部602更新绘图区域K2的显示用数据,以将该动画数据显示在列表显示区域L2。
返回到图15,程序设定部603将在程序选择画面L1中选择的动作程序设定为仿真对象的动作程序。仿真执行部604执行机器人2的动作仿真。例如,仿真执行部604在由存储在环境数据存储部111中的环境模型数据确定的仿真环境下,依照仿真对象的动作程序来使机器人2的模型动作。
动画数据生成部605根据仿真执行部604的仿真结果生成机器人2的模型的动画数据。
图18是示例性地示出主体110的硬件配置的框图。如图18所示,主体110具有电路120,电路120具有一个或多个处理器121、存储部122、通信端口125、输入输出端口126。存储部122包括内存123和存储器124。存储器124记录用于构成主体110的上述各功能模块的程序。存储器124只要可以由计算机读取可以是任何的。作为具体示例,可举出硬盘、非易失性半导体存储器、磁盘、光盘等。内存123临时存储从存储器124加载的程序和处理器121的运算结果等。处理器121与内存123协作执行程序,从而构成各个功能模块。
响应于来自处理器121的指令,通信端口125在与机器人控制器3之间执行电信号的输入输出。响应于来自处理器121的指令,输入输出端口126在与监视器131以及输入设备132之间进行电信号的输入输出。
3.程序生成方法
接着,作为程序生成方法和编程支持方法的一个示例,对由编程支持装置100执行的程序生成过程进行说明。
(1)概要
如图19所示,首先,编程支持装置100执行步骤S01。在步骤S01中,画面数据生成部201生成主画面A1的显示用数据并将其输出到监视器131。
接着,编程支持装置100执行步骤S02。在步骤S02中,模块切换部202确认环境构建按钮A2是否被点击。
如果在步骤S02中判定环境构建按钮A2已被点击,则编程支持装置100执行步骤S03。在步骤S03中,环境构建模块300构建用于机器人2的动作仿真的环境模型数据。稍后将描述具体的处理内容。
如果在步骤S02中判定环境构建按钮A2未被点击,则编程支持装置100执行步骤S04。在步骤S04中,模块切换部202确认规划按钮A3是否被点击。
如果在步骤S04中判定规划按钮A3已被点击,则编程支持装置100执行步骤S05、S06。在步骤S05中,条件设定模块400执行设定包括第一约束条件和第二约束条件的编程支持条件的处理。在步骤S06中,编程模块500根据由条件设定模块400设定的编程支持条件,执行动作程序的编程支持。例如,编程模块500根据编程支持条件生成动作程序。这些具体过程的细节将在后面描述。
如果在步骤S04中判定规划按钮A3未被点击,则编程支持装置100执行步骤S07。在步骤S07中,模块切换部202确认仿真按钮A4有没有被点击。
如果在步骤S07中判定仿真按钮A4已被点击,则编程支持装置100执行步骤S08。在步骤S08中,执行机器人2的动作仿真。稍后将描述具体的处理内容。
在执行步骤S03、S06、S08之后,编程支持装置100执行步骤S09。当在步骤S07中判定仿真按钮A4未被点击的情况下,编程支持装置100也执行步骤S09。在步骤S09中,模块切换部202确认结束按钮A5有没有被点击。
如果在步骤S09中判定结束按钮A5未被点击,则编程支持装置100使处理返回到步骤S02。之后,直到结束按钮A5被点击,重复进行与环境构建按钮A2、规划按钮A3或仿真按钮A4被点击相应的处理。
如果在步骤S09中判定结束按钮A5已被点击,则编程支持装置100关闭主画面A1并结束处理。
(2)环境模型数据构建过程
接下来,对上述步骤S03中的环境模型数据的构建过程进行说明。如图20所示,编程支持装置100首先执行步骤S11。在步骤S11中,画面数据生成部301生成环境构建画面B1的显示用数据并将其输出到监视器131。
接着,编程支持装置100执行步骤S12。在步骤S12中,更新部302确认模型添加按钮B3有没有被点击。
如果在步骤S12中判定模型添加按钮B3已被点击,则编程支持装置100执行步骤S13。在步骤S13中,模型添加部303参照模型数据存储部113生成模型数据的列表,更新部302使用该列表,生成模型选择画面C1,并更新环境构建画面B1的显示用数据以显示模型选择画面C1。
接着,编程支持装置100执行步骤S14。在步骤S14中,模型添加部303等待模型选择画面C1中的模型数据的选择输入。
接着,编程支持装置100执行步骤S15。在步骤S15中,模型添加部303从模型数据存储部113获取在模型选择画面C1中选择的模型数据,并将其添加到环境数据存储部111的环境模型数据中。
接着,编程支持装置100执行步骤S16、S17。在步骤S16中,绘图数据生成部304使用存储在环境数据存储部111中的环境模型数据,生成仿真环境的绘图数据,并将其作为仿真环境区域B2的显示用数据输出给更新部302。
在步骤S17中,更新部302根据从绘图数据生成部304输出的数据来更新仿真环境区域B2的显示用数据。
如果在步骤S12中判定模型添加按钮B3未被点击,则编程支持装置100执行步骤S18。在步骤S18中,模型添加部303确认是否已经将至少一个模型数据添加到环境模型数据中。
如果在步骤S18中判定存在已添加到环境模型数据的模型数据,则编程支持装置100执行步骤S19。在步骤S19中,更新部302确认属性设定按钮B4有没有被点击。
如果在步骤S19中判定属性设定按钮B4已被点击,则编程支持装置100执行步骤S20。在步骤S20中,属性数据注册部305注册输入目标模型的属性数据。稍后将描述具体的处理内容。
如果在步骤S19中判定属性设定按钮B4未被点击,则编程支持装置100执行步骤S21。在步骤S21中,模型添加部303确认状态设定按钮B5有没有被点击。
如果在步骤S21中判定状态设定按钮B5已被点击,则编程支持装置100执行步骤S22。在步骤S22中,状态数据注册部306注册输入目标模型的状态数据。稍后将描述具体的处理内容。
在执行步骤S17、S20和S22之后,编程支持装置100执行步骤S23。当在步骤S21中判定状态设定按钮B5未被点击时、以及当在步骤S18中判定没有已添加到环境模型数据的模型数据时,编程支持装置100也执行步骤S23。在步骤S23中,更新部302确认结束按钮B6有没有被点击。
如果在步骤S23中判定结束按钮B6未被点击,则编程支持装置100将处理返回到步骤S12。此后,重复进行环境模型数据的构建过程,直到结束按钮B6被点击。
如果在步骤S23中判定结束按钮B6已被点击,则编程支持装置100关闭环境构建画面B1并结束处理。
(属性数据注册过程)
如图21所示,编程支持装置100首先执行步骤S31。在步骤S31中,更新部302向环境画面B1的显示用数据添加属性输入画面D1以进行显示。
接着,编程支持装置100执行步骤S32。在步骤S32中,更新部302判定有无对属性输入画面D1的信息输入。
如果在步骤S32中判定存在对属性输入画面D1的信息输入,则编程支持装置100执行步骤S33。在步骤S33中,更新部302更新属性输入画面D1的显示用数据,以反映输入内容。
接着,编程支持装置100执行步骤S34。如果在步骤S32中判定没有对属性输入画面D1的信息输入,则编程支持装置100不执行步骤S33而是执行步骤S34。在步骤S34中,更新部302确认注册按钮D5有没有被点击。
如果在步骤S34中判定注册按钮D5未被点击,则编程支持装置100使处理返回到步骤S32。此后,重复进行与属性数据的输入相应的属性输入画面D1的显示用数据的更新,直到注册按钮D5被点击。
如果在步骤S34中判定注册按钮D5已被点击,则编程支持装置100执行步骤S35。在步骤S35中,属性数据注册部305获取在属性输入画面D1中输入的数据,并将其与输入目标模型相关联地写入环境数据存储部111中。这样,属性数据的注册过程结束。
(状态数据注册过程)
如图22所示,编程支持装置100首先执行步骤S41。在步骤S41中,更新部302向环境构建画面B1的显示用数据添加状态输入画面F1以进行显示。
接着,编程支持装置100执行步骤S42。在步骤S42中,更新部302判定有无对状态输入画面F1的信息输入。
如果在步骤S42中判定存在对状态输入画面F1的信息输入,则编程支持装置100执行步骤S43。在步骤S43中,更新部302更新状态输入画面F1的显示用数据,以反映输入内容。
接着,编程支持装置100执行步骤S44。如果在步骤S42中判定没有对状态输入画面F1的信息输入,则编程支持装置100不执行S43而是执行步骤S44。在步骤S44中,更新部302确认注册按钮F4有没有被点击。
如果在步骤S44中判定注册按钮F4未被点击,则编程支持装置100将处理返回到步骤S。此后,重复进行与状态数据的输入相应的状态输入画面F1的显示用数据的更新,直到注册按钮F4被点击。
如果在步骤S44中判定注册按钮F4已被点击,则编程支持装置100执行步骤S45。在步骤S45中,状态数据注册部306获取在状态输入画面F1中输入的数据,并将其与输入目标模型相关联地写入环境数据存储部111中。这样,状态数据的注册过程结束。
(3)编程支持条件设定过程
接着,对步骤S03中的编程支持条件的设定过程进行说明。
(概要)
如图23所示,编程支持装置100首先执行步骤S51。在步骤S51中,列表生成部405生成用于显示到列表显示区域G2的任务作业的列表,并将其输出给画面数据生成部401。
接着,编程支持装置100执行步骤S52。在步骤S52中,约束菜单生成部406生成用于显示到约束菜单显示区域G32的约束条件的列表,并将其输出给画面数据生成部401。
接着,编程支持装置100执行步骤S53。在步骤S53中,画面数据生成部401生成规划画面G1的显示用数据并将其输出给监视器131。此后,响应于对规划画面G1的操作输入,设定编程支持条件的处理开始,并一直持续到规划按钮G37被点击(步骤S54)。如果规划按钮G37被点击,则编程支持条件的设定过程完成。
以下,将编程支持条件的设定过程分为第一约束条件设定过程、第二约束条件设定过程以及运算等级设定过程进行说明。
(第一约束条件设定过程)
如图24所示,编程支持装置100首先执行步骤S61。在步骤S61中,第一更新部402等待列表显示区域G2上的作业任务的选择输入(例如,列表元素G3被点击)。
接着,编程支持装置100执行步骤S62。在步骤S62中,条件读取部411确认在所述个体条件存储部420中是否存储有针对在列表显示区域G2中选择的作业任务(以下,简称为“选择任务”)的第一约束条件。
如果在步骤S62中判定为选择任务的第一约束条件存储在个体条件存储部420中,则编程支持装置100执行步骤S63。在步骤S63中,条件读取部411读取存储在个体条件存储部420中的第一约束条件。
接着,编程支持装置100执行步骤S64。如果在步骤S62中判定为选择任务的第一约束条件没有存储在个体条件存储部420中,则编程支持装置100不执行步骤S63而是执行步骤S64。在步骤S64中,第一更新部402更新第一输入区域G9的显示用数据,以使选择任务的第一约束条件能够输入。
更具体地,第一更新部402更新第一输入区域G9的显示用数据,以对于具有在步骤S63中从个体条件存储部420读取的信息的项目,将该信息显示在该项目的输入部分,而对于其他项目,将其输入部分设为空栏。
接着,编程支持装置100执行步骤S65。在步骤S65中,第一更新部402确认有无用于添加第一约束条件的输入。如果在步骤S65中判定存在用于添加第一约束条件的输入,则编程支持装置100执行步骤S66。步骤S66包括基于对第一输入区域G9的输入内容来设定第一约束条件的处理。稍后将描述具体的处理内容。
接着,编程支持装置100执行步骤S67。如果在步骤S65中判定不存在用于添加第一约束条件的输入,则编程支持装置100不执行步骤S66而是执行步骤S67。在步骤S67中,条件注册部419确认条件注册按钮G36有没有被点击。
如果在步骤S67中判定条件注册按钮G36未被点击,则编程支持装置100执行步骤S68。在步骤S68中,第一更新部402确认在列表显示区域G2中是否选择了其他作业任务。
如果在步骤S68中判定没有选择其他作业任务,则编程支持装置100使处理返回到步骤S65。此后,重复执行基于对第一输入区域G2的输入来设定选择任务的第一约束条件的处理,直到条件住注册按钮G36被点击,或者在列表显示区域G2中其他作业任务被选择。
如果在步骤S68中判定选择了其他选择任务,则编程支持装置100使处理返回到步骤S62,开始针对新选择的作业任务的第一约束条件的设定处理。
如果在步骤S67中判定条件注册按钮G36已被点击,则编程支持装置100执行步骤S69。在步骤S69中,条件注册部419将第一输入区域G9中的第一约束条件的设定结果写入个体条件存储部420中。这样,第一约束条件的设定过程结束。
接着,对上述步骤S66中的条件设定过程进行说明。如图25所示,编程支持装置100首先执行步骤S81。在步骤S81中,第一更新部402确认作业内容输入区域G10中的项目指定按钮G11有没有被点击。
如果在步骤S81中判定项目指定按钮G11已被点击,则编程支持装置100执行步骤S82。在步骤S82中,第一更新部402更新图标选择区域G12的显示用数据,以在图标选择区域G12中显示作业内容信息(例如作业对象等)的图标,该作业内容信息作为用于与项目指定按钮G11对应的项目的选项。
接着,编程支持装置100执行步骤S83。在步骤S83中,第一更新部402等待图标选择区域G12上的图标的选择输入。
接着,编程支持装置100执行步骤S84。在步骤S84中,第一更新部402更新第一输入区域G9的显示用数据,以将在图标选择区域G12中选择的图标显示在输入内容显示区域G13中。
如果在步骤S81中判定项目指定按钮G11未被点击,则编程支持装置100执行步骤S85。在步骤S85中,判定有无对作业内容输入区域G10的名称输入区域G15的文本输入。
如果在步骤S85中判定存在对名称输入区域G15的文本输入,则编程支持装置100执行步骤S86。在步骤S86中,第一更新部402更新第一输入区域G9中的显示用数据,以将输入内容显示在名称输入区域G15中。
如果在步骤S85中判定不存在对名称输入区域G15的文本输入,则编程支持装置100执行步骤S87。在步骤S87中,第一更新部402确认在约束条件输入区域G16的条件输入部G17中是否点击了新创建按钮G18。
如果在步骤S87中判定新创建按钮G18已被点击,则编程支持装置100执行步骤S88。步骤S88包括创建要被设定为第一约束条件的条件的处理。稍后将描述具体的处理内容。
在执行步骤S84、S86和S88之后,编程支持装置100执行步骤S89。在步骤S89中,第一条件设定部412响应对第一输入区域G9的输入而设定第一约束条件,并将其与作业任务的识别信息相关联地写入用于临时存储的条件缓冲器415中,该作业任务是该第一约束条件的对象。这样,步骤S66结束。
如果在步骤S87中判定新创建按钮G18未被点击,则编程支持装置100不执行步骤S89而是完成步骤S66。
接下来,对上述步骤S88中的条件创建过程进行说明。如图26所示,编程支持装置100首先执行步骤S91。在步骤S91中,选择信息获取部410从环境数据存储部111获取第一选项信息,该第一选项信息用于确定环境模型数据中包含的物体。第一输入支持部408基于所述第一宣讲信息设定作业对象的选项,并生成用于显示该选项的数据。
接着,编程支持装置100执行步骤S92。在步骤S92中,第一更新部402更新第一输入区域G9的显示用数据,以显示条件创建画面H1。此时,第一更新部402使用由第一输入支持部408生成的数据,将上述作业对象的选项设置到输入框H2中。
接着,编程支持装置100执行步骤S93。在步骤S93中,第一更新部402等待输入框中2上的作业对象的选择输入。
接着,编程支持装置100执行步骤S94。在步骤S94中,选项信息获取部410从环境数据存储部111获取第二选项信息,该第二选项信息表示向输入框H2输入的作业对象的状态。第二输入支持部409基于第二选项信息来设定状态指定条件的选项,并生成用于显示该选项的数据。第一更新部402使用由第二输入支持部409生成的数据,将上述状态指定条件的选项设置到输入框H4中。
接着,编程支持装置100执行步骤S95。在步骤S95中,第一更新部402确认有无对输入框H3或输入框H4的输入。
如果在步骤S95中判定存在对输入框H3或输入框H4的输入,则编程支持装置100执行步骤S96。在步骤S96中,第一更新部402更新第一输入区域G9中的显示用数据,以在条件创建画面H1中反映输入内容。
接着,编程支持装置100执行步骤S97。在步骤S97中,第一更新部402确认创建按钮H5有没有被点击。
如果在步骤S97中判定创建按钮H5未被点击,则编程支持装置100使处理返回到步骤S95。此后,重复执行与向输入框H3或输入框H4的输入相应的条件创建画面H1的显示内容的更新,直到创建按钮H5被点击。
如果在步骤S97中判定创建按钮H5已被点击,则编程支持装置100执行步骤S98。在步骤S98中,第一更新部402创建根据在条件创建画面H1中输入的数据的条件。
接着,编程支持装置100执行步骤S99。在步骤S99中,第一更新部402更新第一输入区域G9的显示用数据,以将在步骤S98中创建的条件显示在显示部G19中。这样,步骤S88结束。
(第二约束条件设定过程)
如图27所示,编程支持装置100首先执行步骤S101。在步骤S101中,第二更新部403确认有无向第二输入区域G20添加作业任务的输入。例如,第二更新部403确认列表元素G3是否从列表显示区域G2吧被拖拽到第二输入区域G20。
如果在步骤S101中判定为列表元素G3从列表显示区域G2被拖拽到第二输入区域G20,则编程支持装置100执行步骤S103。在步骤S103中,临时流程生成部416生成被显示到第二输入区域G20的多个作业任务的临时流程G23。临时流程生成部416根据第二输入区域G20中现有的流程元素G24与拖拽完成位置之间的关系,来设定任务作业的执行顺序,并据此产生临时流程G23。
接着,编程支持装置100执行步骤S104。在步骤S104中,第二更新部403更新第二输入区域G20的显示用数据,以显示在步骤S103中生成的临时流程G23,并使得可以在临时流程G23中的作业任务之间输入第二约束条件。
如果在步骤S101中判定不存在向第二输入区域G20添加作业任务的输入,则编程支持装置100执行步骤S105。在步骤S105中,第二更新部403确认是否在第二输入区域G20中显示了两个或更多个作业任务。
如果在步骤S105中判定在第二输入区域G20中显示了两个或更多个作业任务,则编程支持装置100执行步骤S106。在步骤S106中,第二更新部403确认有无将约束条件添加到第二输入区域G20的输入。
如果在步骤S106中判定存在添加约束条件的输入,则编程支持装置100执行步骤S107。在步骤S107中,第二更新部403更新第二输入区域G20的显示用数据,以在临时流程G23的显示中反映约束条件的添加。例如,当菜单元素G33从约束菜单显示区域G32被拖拽到第二输入区域G20中,并且在两个流程元素G24之间结束拖动时,第二更新部403更新第二输入区域G20的显示用数据,以在该两个流程元件G24之间插入菜单元素G33的约束条件。
接着,编程支持装置100执行步骤S108。在步骤S108中,第二条件设定部417基于在第二输入区域G20中输入到作业任务之间的约束条件来设定第二约束条件。
在执行步骤S104和S108之后,编程支持装置100执行步骤S109。当在步骤S105中判定在第二输入区域G20中没有显示一个或多个作业任务时,以及当在步骤S106中判定不存在添加约束条件的输入时,编程支持装置100不执行步骤S104、S108而是执行步骤S109。在步骤S109中,条件注册部419确认条件注册按钮G36有没有被点击。
如果在步骤S109中判定条件注册按钮G36未被点击,则编程支持装置100使处理返回到步骤S101。之后,重复执行基于对第二输入区域G20的输入来设定第二约束条件的处理,直到条件注册按钮G36被点击。
如果在步骤S109中判定条件注册按钮G36已被点击,则编程支持装置100执行步骤S110。在步骤S110中,条件注册部419将由第二条件设定部417设定的第二约束条件与作业任务相关联地写入条件存储部422中,该作业任务是该第二约束条件的对象。另外,条件注册部419将与临时流程G23的多个流程元素G24分别对应的多个作业任务作为执行对象的任务而写入执行对象存储部421中。这样,第二约束条件的设定过程结束。
(运算等级设定过程)
如图28所示,编程支持装置100首先执行步骤S121。在步骤S121中,第三更新部404确认运算等级是否已输入到第三输入区域G34中。
如果在步骤S121中判定向第三输入区域G34中输入了运算等级,则编程支持装置100执行步骤S122。在步骤S122中,第三更新部404更新第三输入区域G34的显示用数据,以反映对第三输入区域G34的输入内容。例如,第三更新部404更新显示用数据,以将在第三输入区域G34中被点击的单选按钮G35开启。
接着,编程支持装置100执行步骤S123。在步骤S123中,运算等级设定部418响应对第三输入区域G34的输入而设定运算等级。
接着,编程支持装置100执行步骤S124。当在步骤S121中判定在第三输入区域G34中没有输入运算等级,则编程支持装置100不执行步骤S122、S123而是执行步骤S124。在步骤S124中,条件注册部419确认条件注册按钮G36有没有被点击。
如果在步骤S124中判定条件注册按钮G36未被点击,则编程支持装置100使处理返回到步骤S121。此后,重复执行基于对第三输入区域G34的输入来设定运算等级的处理,直到条件注册按钮G36被点击。
如果在步骤S124中判定条件注册按钮G36已被点击,则编程支持装置100执行步骤S125。在步骤S125中,条件注册部419将由运算等级设定部418设定的运算等级写入运算条件存储部423中。这样,运算等级的设定过程结束。
(4)程序生成过程
如图29所示,编程支持装置100首先执行步骤S131。在步骤S131中,流程调节部503等待规划按钮G37被点击。
接着,编程支持装置100执行步骤S132。如参照图35在后进一步说明的那样,在步骤S132中,规划支持部501生成满足第一约束条件和第二约束条件的执行流程。
接着,编程支持装置100执行步骤S134。在步骤S134中,连接任务生成部506基于存储在流程缓冲器508中的执行流程、由路径信息获取部505获取的第一路径信息以及存储在环境数据存储部111中的环境模型数据,生成第二路径信息,该第二路径信息定义机器人2在作业任务之间的动作路径。
接着,编程支持装置100执行步骤S135。在步骤S135中,流程评价部507基于与第一约束条件以及第二约束条件不同的评价条件来评价执行流程、第一路径信息和第二路径信息。例如,流程评价部507基于评价条件来导出执行流程、第一路径信息和第二路径信息的评价值(例如,上述执行时间或功耗等)。
接着,编程支持装置100执行步骤S136。在步骤S136中,流程评价部507判定能否采用执行流程。例如,流程评价部507在评价值达到合格线时认为能够采用执行流程,在评价值没有达到合格线时认为不能采用执行流程。
如果在步骤S136中判定执行流程不能采用,则编程支持装置100使处理返回到步骤S132。此后,重复进行执行流程的生成和评价值的计算,直到执行流程能够采用。
如果在步骤S136中判定能够采用评价值,则编程支持装置100执行步骤S137。在步骤S137中,更新部502更新第一输入区域G9的显示用数据,以将能够采用的执行流程显示在结果输出部G29中。
接着,编程支持装置100执行步骤S138。在步骤S138中,程序生成部510基于在步骤S131至S136中生成的执行流程来生成机器人2的动作程序。
接着,编程支持装置100执行步骤S139。在步骤S139中,程序注册部511确认保存按钮G38有没有被点击。
如果在步骤S139中判定保存按钮G38未被点击,则编程支持装置100执行步骤S140。在步骤S140中,流程调节部503确认规划按钮G37有没有被再次点击。
如果在步骤S140中判定规划按钮G37没有被再次点击,则编程支持装置100使处理返回到步骤S139。
如果在步骤S140中判定规划按钮G37已被再次点击,则编程支持装置100使处理返回到步骤S132。由此,再次执行动作程序的生成。
如果在步骤S139中判定保存按钮G38已被点击,则编程支持装置100执行步骤S141。在步骤S141中,程序注册部511将在步骤S138中生成的动作程序写入动作程序存储部112中。这样,动作程序的生成过程结束。
接下来,参照图35,对在上述步骤S132中生成满足第一约束条件和第二约束条件的执行流程的过程进行具体例示。
在步骤S201中,流程调节部503生成执行流程以满足定时条件。例如,流程调节部503根据定时条件将多个执行对象的作业任务分组。具体地,对于每个定时条件,将与该定时条件有关的所有作业任务以满足定时条件的状态分组。与定时条件无任何关联的作业任务单独组成一组。作为分组的结果,如果多个执行对象的作业任务仅包含一组,则满足定时条件的执行流程仅存在一个。当多个执行对象的作业任务被分为多个组时,流程调节部503通过将该多个组彼此随机地排布来生成执行流程。
接着,编程支持装置100执行步骤S202、S203、S204。在步骤S202中,判定部504选择第一约束条件的确认对象的作业任务。在步骤S203中,判定部504基于在执行流程中比确认对象的作业任务位于更靠前的作业任务的执行顺序,来决定确认对象的作业任务的执行定时的环境状态。例如,如果任务02(图32~图34)是作业流程中的确认对象,则判定部504根据任务01位于任务02的前面且任务03位于任务02的后面,而决定在任务02的执行定时盖子12开着。在步骤S204中,判定部504确认在步骤S203中决定的环境状态是否满足第一约束条件。
如果在步骤S204中判定执行环境不满足第一约束条件,则编程支持装置100执行步骤S205。在步骤S205中,流程调节部503调节执行流程,以满足定时条件。例如,流量调节部503改变基于定时条件分组的上述多个组之间的顺序。此后,编程支持装置100使处理返回到步骤S202。
如果在步骤S204中判定执行环境满足第一约束条件,则编程支持装置100执行步骤S206。在步骤S206中,判定部504确认对于执行流程中的所有作业任务,是否完成了第一约束条件的确认。
如果在步骤S206中判定还剩有未确认的作业任务,则编程支持装置100执行步骤S207。在步骤S207中,判定部504选择未确认的作业任务中的一个。之后,编程支持装置100使处理返回到步骤S202。以后,编程支持装置100重复步骤S202~S207,直到所有作业任务被判定为满足环境条件。
如果在步骤S206中判定对所有作业任务的第一约束条件的确认已经完成,则编程支持装置100结束执行流程的生成处理。
(5)仿真过程
如图30所示,编程支持装置100首先执行步骤S151。在步骤S151中,画面数据生成部601生成仿真画面K1的显示用数据并将其输出给监视器131。
接着,编程支持装置100执行步骤S152。在步骤S152中,更新部602确认程序选择按钮K3有没有被点击。
如果在步骤S152中判定程序选择按钮K3已被点击,则编程支持装置100执行步骤S153。在步骤S153中,程序设定部603参照动作程序存储部112,生成动作程序的列表。更新部602更新环境构建画面B1的显示用数据,以显示将该列表包含在列表显示区域L2中的程序选择画面L1。
接着,编程支持装置100执行步骤S154。在步骤S154中,程序设定部603等待程序选择画面L1上的动作程序的选择输入。
接着,编程支持装置100执行步骤S155。在步骤S155中,程序设定部603将在程序选择画面L1中选择的动作程序设定为仿真对象的动作程序。
如果在步骤S152中判定程序选择按钮K3未被点击,则编程支持装置100执行步骤S156。在步骤S156中,仿真执行部604确认仿真对象的动作程序是否已设定。
如果在步骤S156中判定已设定仿真对象的动作程序,则编程支持装置100执行步骤S157。在步骤S157中,更新部602确认仿真执行按钮K4有没有被点击。
如果在步骤S157中判定仿真执行按钮K4已被点击,则编程支持装置100执行步骤S158。在步骤S158中,仿真执行部604在由存储在仿真数据存储部111中的环境模型数据确定的仿真环境下,依据仿真对象的动作程序来使机器人2的模型动作。
接着,编程支持装置100执行步骤S159。在步骤S159中,动画数据生成部605根据仿真执行部604的仿真结果,生成机器人2的模型的动画数据。更新部602更新绘图区域K2的显示用数据,以在列表显示区域L2中显示动画数据。
在执行步骤S155、S159之后,编程支持装置100执行步骤S160。当在步骤S156中判定仿真对象的动作程序尚未设定时、以及当在步骤S15中判定仿真执行按钮K4未被点击时,编程支持装置100也执行步骤S160。在步骤S160中,更新部602确认结束按钮K5有没有被点击。
如果在步骤S160中判定结束按钮K5未被点击,则编程支持装置100使处理返回到步骤S152。
如果在步骤S160中判定结束按钮K5已被点击,则编程支持装置100关闭仿真画面K1并结束处理。
[本实施方式的效果]
如以上说明,编程支持装置100包括:作业任务存储部114,存储多个作业任务,所述作业任务定义机器人2的动作模式;第一条件设定部412,关于多个作业任务中的任一个,响应对用户界面130的输入来设定环境条件,所述环境条件用于指定机器人2的动作环境;第二条件设定部417,响应于对用户界面130的输入,设定多个作业任务中使机器人2执行的多个执行对象的作业任务;以及规划支持部501,在决定了由第二条件设定部417设定的多个执行对象的作业任务的执行顺序的执行流程中,基于该执行顺序来判定至少一个作业任务是否满足环境条件。
作为每个作业任务的执行上的约束条件的环境条件倾向于比有关作业任务彼此间的关系的约束条件具有更高的通用性。实际上,环境条件可适用于作业任务而不管包含该作业任务的动作程序如何,而有关作业任务彼此间的关系的约束条件对于每个动作程序可以是唯一的。因此,通过可以将针对作业任务的执行流程的条件设定为环境条件,转用已注册内容变得容易。换句话说,至少能够将一部分条件作为可重复使用的数据。从而,编程时可容易利用已注册的动作程序,因此对减轻动作编程的负担是有效的。
规划支持部501可以基于执行流程的其他作业任务中机器人2的动作内容和该执行流程的执行顺序,确定该执行流程中的任意一个作业任务的执行定时的环境状态,并且判定该环境状态是否满足该一个作业任务的环境条件。在此情况下,通过将可通过执行顺序确定的环境状态与环境条件进行比较,能够在执行流程中,判定至少一个作业任务是否满足环境条件。
在执行流程依次包括第一作业任务和第二作业任务的情况下,规划支持部501可以至少基于第一作业任务中机器人的动作内容来确定第二作业任务的执行定时的环境状态,并且判定该环境状态是否满足第二作业任务的环境条件。
在执行流程依次包括第一作业任务、第二作业任务和第三作业任务的情况下,规划支持部501也可以至少基于第一作业任务中的机器人的动作内容来确定第二作业任务的执行定时的环境状态,并且将该环境状态至少基于第二作业任务中的机器人的动作内容进行更新,并确定第三作业任务的执行定时的环境状态,并且判定该环境状态是否满足第三作业任务的环境条件。在此情况下,通过根据与依次排布的作业任务相应的机器人2的动作内容依次更新环境状态,能够更容易地判定作业任务是否满足环境条件。
当由第一作业任务定义的动作模式包含对作业对象进行物理操作的动作,第二作业任务的环境条件包含用于指定该作业对象的状态的条件时,规划支持部501可以将机器人2依据第一作业任务进行动作后的该作业对象的状态确定为第二作业任务的执行定时的环境状态,并且判定该环境状态是否满足第二作业任务的环境条件。在此情况下,能够更容易地判定作业任务是否满足环境条件。
规划支持部501可以基于执行流程中的任意一个作业任务的环境条件和该执行流程中其他作业任务中的机器人2的动作内容,来生成该一个作业任务和该其他作业任务之间所需的顺序条件,用以该一个作业任务满足该环境条件,并且判定该执行流程的执行顺序是否满足该顺序条件。在此情况下,通过将环境条件替换为顺序条件,能够容易地判定作业任务是否满足环境条件。
在执行流程包含第一作业任务和第二作业任务,其中所述第一作业任务定义了包含用于对作业对象进行物理操作的动作的动作模式,所述第二作业任务中设定了包含用于指定该作业对象的状态的条件在内的环境条件的情况下,规划支持部501可以基于机器人依据第一作业任务进行动作后的该作业对象的状态与第二作业任务的环境条件所指定的该作业对象的状态之间的关系,生成第一作业任务与第二作业任务之间的顺序条件。在此情况下,能够更容易地判定作业任务是否满足环境条件。
第二条件设定部417可以被配置为,还基于对用户界面130的输入来设定定时条件,该定时条件用于指定至少两个执行对象的作业任务之间的执行定时的关系,规划支持部501在以满足定时条件的方式决定的执行顺序的执行流程中,可以基于该执行顺序来判定至少一个作业任务是否满足环境条件。在此情况下,通过不仅可以输入环境条件而且还可以输入定时条件的灵活的用户界面,能够提高便利性。此外,通过将环境条件的至少一部分输入为定时条件时,能够减轻判定是否满足环境条件的运算负荷。
编程支持装置100可以还包括画面数据生成部401,该画面数据生成部401生成用于将规划画面G1显示在用户界面130中的数据,该规划画面G1包含用于输入环境条件的第一输入区域G9和用于选择多个执行对象的作业任务的第二输入区域G20。在此情况下,区分能够转用已注册内容的部分与需要新设定条件的部分变得更加容易。
编程支持装置100可以还包括:第一更新部402,响应对用户界面130的输入来更新第一输入区域G9的显示用数据;以及第二更新部403,响应对用户界面130的输入来更新第二输入区域G20的显示用数据。画面数据生成部401可以生成还包含列表显示区域G2的规划画面G1的显示用数据,该列表显示区域G2表示多个作业任务的列表。第一更新部402可以更新第一输入区域G9的显示用数据,使得可以输入在列表显示区域G2中选择的作业任务的环境条件,第二更新部403可以更新第二输入区域G20的显示用数据,以显示在列表显示区域G2中选择的多个作业任务,并可以输入该多个作业任务之间的定时条件。在此情况下,作为环境条件的输入对象的作业任务的选择和作为定时条件的输入对象的作业任务的选择均变得容易。
编程支持装置100可以还包括临时流程生成部416,生成显示到第二输入区域G20的多个作业任务的临时流程。第二更新部403可以更新第二输入区域G20的显示用数据,以显示临时流程,并使得能够在临时流程的作业任务之间输入定时条件。在此情况下,在设定临时流程之后,可以通过用于指定其中不可更改部分的直观的操作过程来输入第二约束条件。因此,操作者更容易输入第二约束条件。
环境条件可以包括状态指定条件,该状态指定条件用于指定作业任务的作业对象的状态。第一条件设定部412可以具有:对象设定部413,基于对第一输入区域G9的输入来设定作业对象;以及状态设定部414,基于对第一输入区域G9的输入来设定状态指定条件。在此情况下,可以通过输入在操作者的判断中不容易混淆的作业对象以及状态指定条件来设定第一约束条件,因此操作者可以更容易地输入第一约束条件。
编程支持装置100可以还包括:第一输入支持部408,设定作业对象的选项,并生成用于显示该选项的数据;以及第二输入支持部409,根据作为状态的指定对象的作业对象,设定状态指定条件的选项,并生成用于显示该选项的数据。在此情况下,由于根据作业对象的输入来支持状态指定条件的输入,所以操作者可以更容易地输入第一约束条件。
编程支持装置100可以还包括选项信息获取部410,选项信息获取部410从环境数据存储部111获取第一选项信息和第二选项信息,第一选项信息确定包含在环境模型数据中的物体;第二选项信息表示该物体的状态,环境数据存储部111存储用于机器人2的仿真的环境模型数据。第一输入支持部408可以基于第一选项信息来设定作业对象的选项。第二输入支持部409可以基于第二选项信息来设定状态指定条件的选项。在此情况下,通过使用环境模型数据设定选项,操作者更容易输入第一约束条件。
画面数据生成部401可以生成规划画面G1的显示用数据,使得列表显示区域G2被布置在第一输入区域G9和第二输入区域G20之间。在此情况下,通过将列表显示区域布置在第一输入区域和第二输入区域,操作者的可操作性进一步增强,其中该列表显示区域共用于作为环境条件的输入对象的作业任务的选择和作为定时条件的输入对象的作业任务的选择。
编程支持装置100可以还包括:条件注册部419,至少将环境条件与作业任务相关联地注册到条件存储部中;以及条件读取部411,从条件存储部读取环境条件。在此情况下,通过使已注册的约束条件能够被读取,使得已注册的动作程序变得更容易利用。
规划支持部501可以具有:判定部504,基于执行流程的执行顺序,来判定该执行流程中至少一个作业任务是否满足环境条件;流程调节部503,当判定执行流程中的任一个作业任务不满足环境条件时,改变执行顺序以满足定时条件;以及流程评价部507,基于与环境条件以及定时条件不同的评价条件来评价该执行流程,并且基于评价结果来判定该执行流程能否采用。在此情况下,通过添加基于与约束条件不同的评价条件的评价过程,可提供可靠性更高的编程支持。
规划支持部501可以还具有连接任务生成部506,该连接任务生成部506基于执行流程以及用于机器人2的动作仿真的环境模型数据,来生成连接任务,该连接任务定义机器人2在作业任务之间的动作模式,流程评价部507可以基于评价条件来评价执行流程、多个执行对象的作业任务以及至少一个连接任务,并基于评价结果来判定执行流程能否采用。在此情况下,由于还考虑机器人在作业任务之间的动作模式来判定执行流程能否采用,因此可提供可靠性更高的编程支持。
还可以包括运算等级设定部418,该运算等级设定部418响应对用户界面130的输入来设定运算等级,运算等级调节用于判定执行流程能否采用的标准。在此情况下,可根据用户需求来调节编程支持的速度和可靠性之间的平衡。
以上,对实施方式进行了说明,但本发明不限于上述的实施方式,可在不脱离其主旨的范围内进行各种变形。例如,编程支持装置100只要至少包括条件设定模块400和编程模块500即可,也可以不包括主模块200、环境构建模块300和仿真模块600。
对于上述实施方式,附注以下内容。
(附注1)
一种编程支持装置,包括:
第一条件设定部,关于使机器人执行的多个作业任务,响应对用户界面的输入来设定第一约束条件,所述第一约束条件是每个所述作业任务的执行上的约束条件;
第二条件设定部,响应对所述用户界面的输入来设定第二约束条件,所述第二约束条件是关于所述作业任务之间的关系的约束条件;以及
规划支持部,基于所述第一约束条件和所述第二约束条件,检查至少一个所述作业任务的执行定时。
(附注2)
根据附注1所述的编程支持装置,还包括:画面数据生成部,生成用于在用户界面上显示输入画面的数据,所述输入画面包含第一输入区域和第二输入区域,所述第一输入区域用于输入所述第一约束条件,所述第二输入区域用于输入所述第二约束条件。
(附注3)
根据附注2所述的编程支持装置,还包括:
第一更新部,响应对所述用户界面的输入来更新所述第一输入区域的显示用数据;以及
第二更新部,响应对所述用户界面的输入来更新所述第二输入区域的显示用数据,
其中,所述画面数据生成部生成所述输入画面的显示用数据,该输入画面还包括列表显示区域,该列表显示区域表示所述多个作业任务的列表,
所述第一更新部更新所述第一输入区域的显示用数据,以便能够输入在所述列表显示区域中选择的所述作业任务的所述第一约束条件,
所述第二更新部更新所述第二输入区域的显示用数据,以便显示在所述列表显示区域中选择的多个所述作业任务,并能够输入所述多个作业任务之间的所述第二约束条件。
(附注4)
根据附注3所述的编程支持装置,还包括:临时流程生成部,生成显示到第二输入区域的所述多个作业任务的临时流程,
其中,所述第二更新部更新所述第二输入区域的显示用数据,以便显示所述临时流程,并能够在所述临时流程中的所述作业任务之间输入第二约束条件。
(附注5)
根据附注3或4所述的编程支持装置,其中,
所述第一约束条件包含状态指定条件,所述状态指定条件用于指定所述作业任务的作业对象的状态,
所述第一条件设定部包括:
对象设定部,基于对所述第一输入区域的输入来设定所述作业对象;以及
状态设定部,基于对所述第一输入区域的输入来设定所述状态指定条件。
(附注6)
根据附注5所述的编程支持装置,还包括:
第一输入支持部,设定所述作业对象的选项,并生成用于显示该选项的数据;以及
第二输入支持部,根据作为所述状态的指定对象的所述作业对象,设定所述状态指定条件的选项,并生成用于显示该选项的数据。
(附注7)
根据附注6所述的编程支持装置,还包括:选项信息获取部,从环境数据存储部获取第一选项信息和第二选项信息,所述环境数据存储部中存储用于所述机器人的动作仿真的环境信息,所述第一选项信息确定包含在所述环境模型数据中的物体,所述第二选项信息表示该物体的状态,
其中,所述第一输入支持部基于所述第一选项信息来设定所述作业对象的选项,
所述第二输入支持部基于所述第二选项信息来设定所述状态指定条件的选项。
(附注8)
根据附注7所述的编程支持装置,其中,所述画面数据生产部生成所述输入画面的显示用数据,以使所述列表显示区域被布置在所述第一输入区域和所述第二输入区域之间。
(附注9)
根据附注2至8中任一项所述的编程支持装置,还包括:
条件注册部,将所述第一约束条件和所述第二约束条件中的至少一个注册到条件存储部中;以及
条件读取部,从所述条件存储部中读取所述第一约束条件和所述第二约束条件中的至少一者。
(附注10)
根据附注1至9中任一项所述的编程支持装置,其中,所述规划支持部还执行:基于所述执行定时的检查结果来生成所述多个作业任务的执行流程。
(附注11)
根据附注10所述的编程支持装置,还包括:路径信息获取部,关于至少一个所述作业任务,获取第一路径信息,所述第一路径信息定义所述机器人的动作路径,
所述规划设定部还具有:
定时检查部,基于所述第一约束条件和所述第二约束条件,来检查至少一个所述作业任务的执行定时;以及
流程生成部,基于所述执行定时的检查结果,来生成所述执行流程以满足所述第一约束条件和所述第二约束条件;以及
流程评价部,基于与所述第一约束条件以及所述第二约束条件不同的评价条件来评价所述执行流程和所述第一路径信息,并基于评价结果来判定所述执行流程能否采用。
(附注12)
根据附注11所述的编程支持装置,其中,
所述规划设定部还具有:连接任务生成部,基于所述执行流程、第一路径信息和用于所述机器人的动作仿真的环境数据,来生成第二路径信息,所述第二路径信息定义所述机器人在所述作业任务之间的动作路径;
所述流程评价部基于所述评价条件来评价所述执行流程、所述第一路径信息以及所述第二路径信息,并基于评价结果来判定所述执行流程能否采用。
(附注13)
根据附注11或12所述的编程支持装置,还包括:运算等级设定部,根据对用户界面的输入来设定运算等级,所述运算等级调节用于判定所述执行流程能否采用的标准。
(附注14)
根据附注10至13中任一项所述的编程支持装置,还包括:程序生成部,基于由所述规划支持部生成的所述执行流程,来生成所述机器人的动作程序。
(附注15)
一种机器人系统,包括:
附注14所述的编程支持装置;
所述机器人;以及
控制器,根据由所述程序生成部生成的所述动作程序来控制所述机器人。
(附注16)
一种编程支持方法,由编程支持装置执行,并包括:
关于使机器人执行的多个作业任务,响应对用户界面的输入来设定第一约束条件,所述第一约束条件是每个所述作业任务的执行上的约束条件;
响应对所述用户界面的输入来设定第二约束条件,所述第二约束条件是有关所述作业任务之间的关系的约束条件;以及
基于所述第一约束条件和所述第二约束条件,检查至少一个所述作业任务的执行定时。
(附注17)
一种程序生成方法,由编程支持装置执行,并包括:
关于使机器人执行的多个作业任务,响应对用户界面的输入来设定第一约束条件,所述第一约束条件是每个所述作业任务的执行上的约束条件;
响应对所述用户界面的输入来设定第二约束条件,所述第二约束条件是有关所述作业任务之间的关系的约束条件;
关于至少一个所述作业任务,获取第一路径信息,所述第一路径信息定义所述机器人的动作路径;
基于所述第一约束条件和所述第二约束条件,来检查至少一个所述作业任务的执行定时;
基于所述执行定时的检查结果,来生成所述多个作业任务的执行流程以满足所述第一约束条件和所述第二约束条件;以及
基于所述执行流程,来生成所述机器人的动作程序。
[附图标记说明]
1…机器人系统,2…机器人,3…机器人控制器,100…编程支持装置,111…环境数据存储部,114…作业任务存储部,130…用户界面,401…画面数据生成部,402…第一更新部,403…第二更新部,408…第一输入支持部,409…第二输入支持部,410…选项信息获取部,411…条件读取部,412…第一条件设定部,413…对象设定部,414…状态设定部,416…临时流程生成部,417…第二条件设定部,418…运算等级设定部,419…条件注册部,420…个体条件存储部,422…任务间条件存储部,501…规划支持部,503…流程控制部,504…判定部,505…路径信息获取部,506…连接任务生成部,507…流程评价部,510…程序生成部,G1…规划画面(输入画面),G2…列表显示区域,G9…第一输入区域,G20…第二输入区域。
Claims (20)
1.一种编程支持装置,包括:
作业任务存储部,存储多个作业任务,所述多个作业任务定义机器人的动作模式;
第一条件设定部,关于所述多个作业任务中的任一个,响应对用户界面的输入来设定环境条件,所述环境条件用于指定所述机器人的动作环境;
第二条件设定部,响应于对所述用户界面的输入,设定所述多个作业任务中使所述机器人执行的多个执行对象的作业任务;以及
规划支持部,在决定了由所述第二条件设定部设定的所述多个执行对象的作业任务的执行顺序的执行流程中,基于该执行顺序来判定至少一个所述作业任务是否满足所述环境条件。
2.如权利要求1所述的编程支持装置,其中,
所述规划支持部基于所述执行流程的其他作业任务中所述机器人的动作内容和该执行流程的所述执行顺序,确定该执行流程中的任意一个所述作业任务的执行定时的环境状态,并且判定该环境状态是否满足该一个作业任务的所述环境条件。
3.如权利要求1或2所述的编程支持装置,其中,
在所述执行流程依次包括第一作业任务和第二作业任务的情况下,所述规划支持部至少基于所述第一作业任务中的所述机器人的动作内容来确定所述第二作业任务的执行定时的环境状态,并且判定该环境状态是否满足所述第二作业任务的所述环境条件。
4.如权利要求3所述的编程支持装置,其中,
在所述执行流程依次包括第一作业任务、第二作业任务和第三作业任务的情况下,所述规划支持部至少基于所述第一作业任务中的所述机器人的动作内容来确定所述第二作业任务的执行定时的所述环境状态,并将该环境状态至少基于所述第二作业任务中的所述机器人的动作内容进行更新并确定所述第三作业任务的执行定时的所述环境状态,并且判定该环境状态是否满足所述第三作业任务的所述环境条件。
5.如权利要求3或4所述的编程支持装置,其中,
当由所述第一作业任务定义的动作模式包含对作业对象进行物理操作的动作、所述第二作业任务的所述环境条件包含用于指定该作业对象的状态的条件时,所述规划支持部将所述机器人依据所述第一作业任务进行动作后的该作业对象的状态确定为所述第二作业任务的执行定时的环境状态,并且判定该环境状态是否满足所述第二作业任务的所述环境条件。
6.如权利要求1所述的编程支持装置,其中,
所述规划支持部基于所述执行流程的任意一个所述作业任务的环境条件和该执行流程的其他所述作业任务中的所述机器人的动作内容,来生成该一个作业任务与该其他作业任务之间所需的顺序条件,用以该一个作业任务满足该环境条件,并且判定该执行流程的执行顺序是否满足该顺序条件。
7.如权利要求6所述的编程支持装置,其中,
在所述执行流程包含第一作业任务和第二作业任务,其中所述第一作业任务定义了包含用于对作业对象进行物理操作的动作的动作模式,所述第二作业任务中设定了包含用于指定该作业对象的状态的条件在内的环境条件的情况下,所述规划支持部基于所述机器人依据所述第一作业任务进行动作后的该作业对象的状态与所述第二作业任务的所述环境条件所指定的该作业对象的状态的之间的关系,生成所述第一作业任务与所述第二作业任务之间的所述顺序条件。
8.如权利要求1至7中任一项所述的编程支持装置,其中,
所述第二条件设定部被配置为,还基于对所述用户界面的输入来设定定时条件,该定时条件用于指定至少两个所述执行对象的作业任务之间的执行定时的关系,
所述规划支持部在以满足所述定时条件的方式决定了所述执行顺序的所述执行流程中,基于该执行顺序来判定至少一个所述作业任务是否满足所述环境条件。
9.如权利要求8所述的编程支持装置,还包括:
画面数据生成部,生成用于在所述用户界面上显示输入画面的数据,所述输入画面包含第一输入区域和第二输入区域,所述第一输入区域用于输入所述环境条件,所述第二输入区域用于选择所述多个执行对象的作业任务。
10.如权利要求9所述的编程支持装置,还包括:
第一更新部,响应对所述用户界面的输入来更新所述第一输入区域中的显示用数据;以及
第二更新部,响应对所述用户界面的输入来更新所述第二输入区域中的显示用数据,
其中,所述画面数据生成部生成所述输入画面的显示用数据,该输入画面还包括列表显示区域,该列表显示区域示出所述多个作业任务的列表,
所述第一更新部更新所述第一输入区域的显示用数据,以便能够输入在所述列表显示区域中选择的所述作业任务的所述环境条件,
所述第二更新部更新所述第二输入区域的显示用数据,以便显示在所述列表显示区中选择的多个所述作业任务,并能够输入所述多个作业任务之间的所述定时条件。
11.如权利要求10所述的编程支持装置,还包括:
临时流程生成部,生成显示到第二输入区域的所述多个作业任务的临时流程,
其中,所述第二更新部更新所述第二输入区域的显示用数据,以便显示所述临时流程,并能够在所述临时流程中的所述作业任务之间输入所述定时条件。
12.如权利要求10或11所述的编程支持装置,其中,
所述画面数据生成部生成所述输入画面的显示用数据,以使所述列表显示区域被布置在所述第一输入区域和所述第二输入区域之间。
13.如权利要求1至12中任一项所述的编程支持装置,还包括:
条件注册部,至少将所述环境条件与所述作业任务相关联地注册到条件存储部中;以及
条件读取部,从所述条件存储部读取所述环境条件。
14.如权利要求8至12中任一项所述的编程支持装置,其中,所述规划支持部具有:
判定部,基于所述执行流程的所述执行顺序,来判定该执行流程中的至少一个所述作业任务是否满足所述环境条件;
流程调节部,当判定为所述执行流程中的任一个所述作业任务不满足所述环境条件时,所述流程调节部改变所述执行顺序以满足所述定时条件;以及
流程评价部,当所述执行流程不包含不满足所述环境条件的所述作业任务时,所述流程评价部基于与所述环境条件以及所述定时条件不同的评价条件来评价所述执行流程,并且基于评价结果来判定该执行流程能否采用。
15.如权利要求14所述的编程支持装置,其中,
所述规划支持部还具有:
连接任务生成部,基于所述执行流程和模型数据来生成连接任务,所述模型数据用于所述机器人的动作仿真,所述连接任务定义所述作业任务之间的所述机器人的动作模式,
所述流程评价部基于所述评价条件来评价所述执行流程、所述多个执行对象的作业任务以及至少一个所述连接任务,并基于评价结果来判定所述执行流程能否采用。
16.如权利要求14或15所述的编程支持装置,还包括:
运算等级设定部,响应对所述用户界面的输入来设定运算等级,该运算等级调节用于判定所述执行流程能否采用的标准。
17.如权利要求14至16中任一项所述的编程支持装置,还包括:
程序生成部,基于由所述规划支持部判定为能够采用的所述执行流程来生成所述机器人的动作程序。
18.一种机器人系统,包括:
权利要求17所述的编程支持装置;
所述机器人;以及
控制器,根据由所述程序生成部生成的所述动作程序来控制所述机器人。
19.一种编程支持方法,由编程支持装置执行,并包括:
存储多个作业任务,所述作业任务定义机器人的动作模式;
关于所述多个作业任务中的任一个,响应对用户界面的输入来设定环境条件,所述环境条件用于指定所述机器人的动作环境;
响应于对所述用户界面的输入,设定所述多个作业任务中使所述机器人执行的多个执行对象的作业任务;以及
在决定了所述多个执行对象的作业任务的执行顺序的执行流程中,基于所述执行顺序来判定至少一个所述作业任务是否满足所述环境条件。
20.一种程序生成方法,由编程支持装置执行,并包括:
存储多个作业任务,所述作业任务定义机器人的动作模式;
关于所述多个作业任务中的任一个,响应对用户界面的输入来设定环境条件,所述环境条件用于指定所述机器人的动作环境;
响应于对所述用户界面的输入,设定所述多个作业任务中使所述机器人执行的多个执行对象的作业任务;
关于至少一个所述作业任务,获取第一路径信息,所述第一路径信息定义所述机器人的动作路径;
在决定了所述多个执行对象的作业任务的执行顺序的执行流程中,基于该执行顺序来判定至少一个所述作业任务是否满足所述环境条件;以及
当所述执行流程不包含不满足所述环境条件的所述作业任务时,基于该执行流程来生成所述机器人的动作程序。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017083091 | 2017-04-19 | ||
JP2017-083091 | 2017-04-19 | ||
PCT/JP2018/016011 WO2018194094A1 (ja) | 2017-04-19 | 2018-04-18 | プログラミング支援装置、ロボットシステム、プログラミング支援方法及びプログラム生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110536783A true CN110536783A (zh) | 2019-12-03 |
CN110536783B CN110536783B (zh) | 2022-06-14 |
Family
ID=63856134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880025770.8A Active CN110536783B (zh) | 2017-04-19 | 2018-04-18 | 编程支持装置、机器人系统、编程支持方法以及存储介质 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11813750B2 (zh) |
EP (1) | EP3613548A4 (zh) |
JP (1) | JP6455646B1 (zh) |
CN (1) | CN110536783B (zh) |
WO (1) | WO2018194094A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111325499A (zh) * | 2020-01-22 | 2020-06-23 | 上海擎朗智能科技有限公司 | 一种物品派送方法、装置、机器人和存储介质 |
CN113021361A (zh) * | 2019-12-25 | 2021-06-25 | 精工爱普生株式会社 | 程序制作系统、程序制作装置以及机器人系统 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7316048B2 (ja) * | 2019-01-09 | 2023-07-27 | 株式会社Subaru | 作業計画装置 |
JP7255210B2 (ja) * | 2019-01-31 | 2023-04-11 | セイコーエプソン株式会社 | 制御装置、ロボットシステム、及び表示方法 |
JP6717401B1 (ja) * | 2019-04-01 | 2020-07-01 | 株式会社安川電機 | プログラミング支援装置、ロボットシステム及びプログラミング支援方法 |
US20220355475A1 (en) * | 2019-08-30 | 2022-11-10 | Nec Corporation | Information processing device, control method, and storage medium |
JP6754883B1 (ja) * | 2019-11-27 | 2020-09-16 | 株式会社安川電機 | 制御システム、ローカルコントローラ及び制御方法 |
CN114981741A (zh) * | 2020-01-31 | 2022-08-30 | 三菱电机株式会社 | 控制装置、机器学习装置及控制方法 |
US20230072244A1 (en) * | 2020-02-25 | 2023-03-09 | Nec Corporation | Control device, control method and storage medium |
WO2023171722A1 (ja) * | 2022-03-08 | 2023-09-14 | 株式会社安川電機 | プログラム生成装置、及びプログラム生成方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1478638A (zh) * | 2003-05-29 | 2004-03-03 | 上海交通大学 | 面向对象的机器人通用开放控制系统 |
CN1876334A (zh) * | 2005-06-07 | 2006-12-13 | 发那科株式会社 | 机械手控制装置及机械手控制方法 |
CN101648378A (zh) * | 2008-08-11 | 2010-02-17 | 悠进机器人股份公司 | 基于机器人中间件结构及情节的控制系统 |
JP2010253565A (ja) * | 2009-04-21 | 2010-11-11 | Advanced Telecommunication Research Institute International | コミュニケーションロボット開発支援装置 |
WO2012140770A1 (ja) * | 2011-04-14 | 2012-10-18 | 三菱電機株式会社 | ロボット制御装置 |
CN103433923A (zh) * | 2007-01-12 | 2013-12-11 | 汉斯乔格·巴尔特斯 | 用于产生机器人的方法和系统 |
CN103458151A (zh) * | 2012-05-31 | 2013-12-18 | 京瓷办公信息系统株式会社 | 信息发送装置 |
CN103862472A (zh) * | 2012-12-18 | 2014-06-18 | 株式会社安川电机 | 示教数据生成装置、机器人系统以及示教数据生成方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4103057B2 (ja) | 1998-06-29 | 2008-06-18 | 株式会社安川電機 | ロボットの動作経路計画方法およびその装置 |
US6292715B1 (en) * | 1998-10-27 | 2001-09-18 | Perry Investments, Inc. | Robotic process planning method and apparatus using templates |
JP3990262B2 (ja) * | 2002-12-02 | 2007-10-10 | ファナック株式会社 | 産業用ロボット |
US20050137734A1 (en) | 2003-12-23 | 2005-06-23 | Asml Netherlands B.V. | Method of operating a lithographic apparatus or lithographic processsing cell, lithographic apparatus and lithographic processing cell |
JP5513146B2 (ja) * | 2010-01-29 | 2014-06-04 | 株式会社デンソーウェーブ | ロボットシミュレータ |
US9164656B1 (en) * | 2013-01-09 | 2015-10-20 | Daniel S. Keller | Graphical display for scheduling and monitoring tasks |
US9351569B1 (en) * | 2013-02-11 | 2016-05-31 | Automated Cells and Equipment, Inc. | Parts supply drawer system for robot assisted manufacturing |
JP5939213B2 (ja) * | 2013-08-09 | 2016-06-22 | 株式会社安川電機 | ロボット制御装置及びロボット制御方法 |
JP6394218B2 (ja) | 2014-09-16 | 2018-09-26 | 株式会社安川電機 | 作業計画装置、作業計画方法および作業計画プログラム |
JP6432883B2 (ja) | 2014-11-21 | 2018-12-05 | 国立研究開発法人産業技術総合研究所 | 動作指令生成装置、動作指令生成方法、コンピュータプログラム、及び処理システム |
JP6455530B2 (ja) | 2015-02-03 | 2019-01-23 | 株式会社安川電機 | 動作指令生成装置、動作指令生成方法、コンピュータプログラム、及び処理システム |
JP6558037B2 (ja) * | 2015-04-10 | 2019-08-14 | 富士通株式会社 | 運用管理プログラム、運用管理方法、および運用管理装置 |
JP6953691B2 (ja) * | 2016-08-12 | 2021-10-27 | 富士通株式会社 | 工程計画支援装置、工程計画支援方法および工程計画支援プログラム |
KR101849972B1 (ko) * | 2016-12-27 | 2018-05-31 | 엘지전자 주식회사 | 로봇 청소기 및 그의 제어방법 |
-
2018
- 2018-04-18 CN CN201880025770.8A patent/CN110536783B/zh active Active
- 2018-04-18 JP JP2018545402A patent/JP6455646B1/ja active Active
- 2018-04-18 EP EP18788111.5A patent/EP3613548A4/en active Pending
- 2018-04-18 WO PCT/JP2018/016011 patent/WO2018194094A1/ja unknown
-
2019
- 2019-10-17 US US16/655,254 patent/US11813750B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1478638A (zh) * | 2003-05-29 | 2004-03-03 | 上海交通大学 | 面向对象的机器人通用开放控制系统 |
CN1876334A (zh) * | 2005-06-07 | 2006-12-13 | 发那科株式会社 | 机械手控制装置及机械手控制方法 |
CN103433923A (zh) * | 2007-01-12 | 2013-12-11 | 汉斯乔格·巴尔特斯 | 用于产生机器人的方法和系统 |
CN101648378A (zh) * | 2008-08-11 | 2010-02-17 | 悠进机器人股份公司 | 基于机器人中间件结构及情节的控制系统 |
JP2010253565A (ja) * | 2009-04-21 | 2010-11-11 | Advanced Telecommunication Research Institute International | コミュニケーションロボット開発支援装置 |
WO2012140770A1 (ja) * | 2011-04-14 | 2012-10-18 | 三菱電機株式会社 | ロボット制御装置 |
CN103458151A (zh) * | 2012-05-31 | 2013-12-18 | 京瓷办公信息系统株式会社 | 信息发送装置 |
CN103862472A (zh) * | 2012-12-18 | 2014-06-18 | 株式会社安川电机 | 示教数据生成装置、机器人系统以及示教数据生成方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113021361A (zh) * | 2019-12-25 | 2021-06-25 | 精工爱普生株式会社 | 程序制作系统、程序制作装置以及机器人系统 |
CN113021361B (zh) * | 2019-12-25 | 2024-01-30 | 精工爱普生株式会社 | 程序制作系统、程序制作装置以及机器人系统 |
CN111325499A (zh) * | 2020-01-22 | 2020-06-23 | 上海擎朗智能科技有限公司 | 一种物品派送方法、装置、机器人和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110536783B (zh) | 2022-06-14 |
WO2018194094A1 (ja) | 2018-10-25 |
EP3613548A1 (en) | 2020-02-26 |
US11813750B2 (en) | 2023-11-14 |
JP6455646B1 (ja) | 2019-01-23 |
US20200047339A1 (en) | 2020-02-13 |
JPWO2018194094A1 (ja) | 2019-06-27 |
EP3613548A4 (en) | 2021-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110536783A (zh) | 编程支持装置、机器人系统、编程支持方法以及程序生成方法 | |
US6282455B1 (en) | Walk-through human/machine interface for industrial control | |
JP5671251B2 (ja) | プロセス制御システム内の操作者インターフェースディスプレイのためのアニメーションおよびイベントの構成 | |
US20100070241A1 (en) | Computer-based method for automated modelling and design of buildings | |
CN109760042A (zh) | 编程辅助装置、机器人系统以及程序生成方法 | |
US6880130B2 (en) | Specifying timing and triggering functionality in a graphical program using graphical program nodes | |
CN112534091B (zh) | 用于设计和制作针织部件的工具 | |
GB2495434A (en) | Method Of Assigning Parameters In Recipe Configuration | |
US7437684B2 (en) | Graphical interface system for manipulating a virtual dummy | |
EP3673334B1 (en) | Method for engineering autonomous system with reusable skills | |
US20050044450A1 (en) | System and method for evaluating usability using virtual user | |
Bortolini et al. | Toward a real-time reconfiguration of self-adaptive smart assembly systems | |
Vanderdonckt et al. | Deriving the Navigational Structure of a User Interface. | |
Aksonov et al. | Interactive design of CNC equipment operator panels | |
CN106463095A (zh) | 绘图软件 | |
JP6133356B2 (ja) | データ処理装置の複数のデータ構造体と複数のマンマシンインタフェース要素とを接続する方法、データ処理装置、コンピュータプログラムおよびディジタル記憶媒体 | |
JP4652072B2 (ja) | シミュレーション機能付設計支援装置及び方法並びにシミュレーション機能付運転支援装置及び方法 | |
JP7322099B2 (ja) | 情報処理方法、情報処理装置、ロボット装置、プログラム、およびコンピュータ読み取り可能な記録媒体 | |
JP3315890B2 (ja) | データ処理システム | |
US20220358698A1 (en) | System and Method for Visualizing Process Information in Industrial Applications | |
JP4212396B2 (ja) | 図形要素選択プログラム | |
Yin et al. | Design of virtual instrument software system based on nested state machine | |
Dai | Centralized, application-oriented graphical interaction control using an example of planning robotic tasks | |
Gaona Bedolla | Development of an informatic tool to model, control and simulate interpreted Petri nets | |
Valkeapää | AUTOMATIC TEST CREATION ENVIRONMENT WITH AN INDUSTRIAL ROBOT |
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 |