CN114096968A - 模型生成装置、模型生成方法、控制装置以及控制方法 - Google Patents

模型生成装置、模型生成方法、控制装置以及控制方法 Download PDF

Info

Publication number
CN114096968A
CN114096968A CN202080050401.1A CN202080050401A CN114096968A CN 114096968 A CN114096968 A CN 114096968A CN 202080050401 A CN202080050401 A CN 202080050401A CN 114096968 A CN114096968 A CN 114096968A
Authority
CN
China
Prior art keywords
task state
task
model
target
data
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
CN202080050401.1A
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.)
Omron Corp
Original Assignee
Omron 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 Omron Corp filed Critical Omron Corp
Publication of CN114096968A publication Critical patent/CN114096968A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/17Mechanical parametric or variational design
    • 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/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • 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/40499Reinforcement learning algorithm
    • 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/40519Motion, trajectory planning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Geometry (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Manipulator (AREA)

Abstract

本发明的一方面涉及的模型生成装置使用多个学习数据集实施判定模型的机器学习模型,该多个学习数据集分别由表示两个对象物之间的位置关系的训练数据及表示在该位置关系中两个对象物是否相互接触的正解数据的组合构成。机器学习的实施通过针对各学习数据集以相对于训练数据的输入而输出适合于对应的正解数据的输出值的方式对判定模型进行训练而构成。

Description

模型生成装置、模型生成方法、控制装置以及控制方法
技术领域
本发明涉及模型生成装置、模型生成方法、控制装置以及控制方法。
背景技术
在生产产品的生产线中,利用机械手等的机器人装置。机械手的机构、末端执行器、工件等的构成要素根据执行的作业(任务)等具有多种变化,通过人工制定与这些全部对应的机器人装置的动作顺序,并向机器人装置示教对象作业是困难的。因此,以往采用如下方法:在决定了机构、末端执行器、工件等的构成要素的种类之后,一边通过人工使机器人装置动作并记录所执行的一系列动作中的姿态,一边直接示教所执行的作业。
然而,在该方法中,每当机构、末端执行器、工件等的构成要素发生变更时,便要向机器人装置示教所执行的作业。因此,向机器人装置示教所执行的作业会花费过多的成本。因此,近年来,正在研究利用机器学习使机器人装置掌握所执行的作业的方法。例如,在非专利文献1中,提出了通过强化学习使机器人装置掌握根据从摄像机得到的图像数据把持对象物的动作的方法。根据该方法,可以使向机器人装置示教把持对象物的动作的一系列处理的至少一部分自动化。因此,可以降低向机器人装置示教作业的成本。
现有技术文献
非专利文献
非专利文献1:Dmitry Kalashnikov,et al.“QT-Opt:Scalable DeepReinforcement Learning for Vision-Based Robotic Manipulation”arXiv preprintarXiv:1806.10293,2018.
发明内容
发明所要解决的技术问题
本申请的发明人们发现,在上述那样的机器人装置的现有控制方法中,存在如下问题点。例如,有时在坐标空间内表达末端执行器、工件、障碍物等的对象物的移动。该情况下,通过按每个坐标点保持表示两个对象物是否相互接触的值,从而可以表达两个对象物接触的边界。但是,在该表达方法中,表达两个对象物接触的边界的信息的数据量会根据对象物的组合、坐标的维数及分辨率(分辨能力)而爆发性地增加。例如,假定以三维位置及三维姿态表达对象物的坐标。该情况下,对象物的坐标以六维表达。因此,若提高表达接触的边界的信息的分辨率(分辨能力),则数据量以6次方的量级增加。因此,在上述表达方法中,在嵌入式系统等存储容量比较小的系统中,难以存储表达接触的边界的信息。此外,该问题点并不限于规定机器人装置的动作的场景,在处理两个对象物的接触的所有场景下都会产生。
本发明的一方面是鉴于这样的实际情况而完成的,其目的在于,提供一种用于减少表达两个对象物接触的边界的信息的数据量的技术。
用于解决问题的技术方案
本发明为了解决上述技术问题而采用以下的构成。
即,本发明的一方面涉及的模型生成装置具备:数据获取部,获取多个学习数据集,所述多个学习数据集分别由表示两个对象物之间的位置关系的训练数据及表示在所述位置关系中所述两个对象物是否相互接触的正解数据的组合构成;以及机器学习部,使用获取的所述多个学习数据集实施判定模型的机器学习,所述机器学习的实施通过针对各所述学习数据集以相对于所述训练数据的输入而输出适合于对应的所述正解数据的输出值的方式对所述判定模型进行训练而构成。
该构成涉及的模型生成装置通过机器学习生成用于判定在对象的位置关系中两个对象物是否接触的判定模型。根据通过机器学习生成的学习完毕的判定模型,即使以连续值提供对象的位置关系(例如坐标),也可以在不伴随判定模型的数据量大幅增加的情况下,判定在该位置关系下两个对象物是否相互接触。因此,根据该构成,可以大幅减少表达两个对象物接触的边界的信息的数据量。
此外,对象物也可以包括在实际空间或虚拟空间内能够进行处理的所有种类的物体。对象物例如可以为末端执行器、工件、障碍物等能够与机器人装置的动作相关联的物体。该情况下,机器人装置例如可以包括机械手等的工业用机器人、能够自动移动的移动体等。工业用机器人例如可以包括垂直多关节机器人、SCARA机器人、并联连杆机器人、正交机器人、协作机器人等。能够自动移动的移动体例如可以包括无人机、构成为可自动驾驶的车辆、移动机器人等。
一个对象物也可以由多个物体构成。在存在三个以上的物体的情况下,既可以将多个物体视为一个对象物,以判定在多个物体与其他物体之间是否产生接触的方式构成判定模型,或者,也可以将各个物体视为一个对象物,以判定在各个物体之间是否产生接触的方式构成判定模型。既可以准备分别判定在不同对象物之间是否产生接触的多个判定模型,或者,判定模型也可以构成为还受理表示对象物的种类等条件的信息的输入,并判定在与输入的条件对应的两个对象物之间是否产生接触。
构成判定模型的机器学习模型的种类也可以没有特别限定,可以根据实施方式适当地选择。判定模型例如可以采用神经网络、支持向量机、回归模型、决策树等的机器学习模型。两个对象物是否相互接触可以以实际空间或虚拟空间为对象进行判定。
在上述一方面涉及的模型生成装置中,所述两个对象物之间的所述位置关系可以通过相对坐标进行表达。相对坐标是从一方对象物观察另一方对象物时的坐标。可以选择两个对象物中的任意一个作为相对坐标的基准。根据该构成,可以适当且清楚地表达两个对象物之间的物理且相对的位置关系。但是,位置关系的表达方法也可以不限定于这样的例子,可以根据实施方式适当地选择。两个对象物之间的位置关系例如也可以通过各自的绝对坐标进行表达。此外,“坐标”可以包括位置及姿态的至少一方。在三维空间上,位置可以由前后、左右以及上下这三个轴表达,姿态可以由各轴的旋转(翻滚、俯仰、偏摆)表达。
在上述一方面涉及的模型生成装置中,所述两个对象物中的至少任意一个可以为通过机器人装置的动作进行移动的对象。根据该构成,在规定机器人装置的动作的场景下,能够减少表达两个对象物接触的边界的信息的数据量。此外,通过机器人装置的动作进行移动的对象物例如可以为末端执行器等的机器人装置的构成要素,也可以为机器人装置自身,例如也可以为通过末端执行器保持的工件等机器人装置的构成要素以外的物体。
另外,本发明的一方面涉及的控制装置用于控制在存在第一对象物及第二对象物的环境下执行使第一对象物移动的任务的机器人装置的动作,具备:状态获取部,获取所述机器人装置的当前的任务状态,所述任务状态由所述第一对象物与所述第二对象物之间的位置关系规定;行动决定部,以接近最终目标的任务状态的方式相对于获取的所述当前的任务状态而决定接下来转换的目标的任务状态;接触判定部,通过向学习完毕的判定模型提供所述第一对象物及所述第二对象物的对象的任务状态,从而判定在对象的任务状态下所述第一对象物与所述第二对象物是否相互接触,所述学习完毕的判定模型通过机器学习而被训练为:相对于表示所述第一对象物与所述第二对象物的位置关系的训练数据的输入而输出适合于表示在该位置关系下所述第一对象物与所述第二对象物是否相互接触的正解数据的输出值;指令决定部,决定向所述机器人装置提供的控制指令,以使所述机器人装置的任务状态从所述当前的任务状态变化为所述目标的任务状态;以及驱动部,通过向所述机器人装置提供已决定的所述控制指令,从而驱动所述机器人装置。
在该构成中,通过利用通过机器学习生成的学习完毕的判定模型,可以大幅减少表达第一对象物与第二对象物接触的边界的信息的数据量。因此,根据该构成,即使是嵌入式系统等的性能比较低的计算机,也可以实现能够以避免第一对象物与第二对象物的无用接触的方式适当地驱动机器人装置的控制装置。
另外,在以往的控制方法中,使向机器人装置提供的时间序列的控制指令与要执行的任务直接关联。因此,在执行任务的环境及对象物的至少一方稍微发生了变化的情况下,学习结果也无法应对该变化,有可能无法适当地执行该任务。相对于此,在该构成中,向机器人装置提供的控制指令的序列不是与任务直接关联,而是与对象物之间的位置关系(任务状态)的变化量相关联。即,可以不依赖于任务的内容地相对于位置关系的变化量生成或示教时间序列的控制指令。因此,根据该构成,可以提高执行掌握的任务的能力的通用性,由此,可以降低向机器人装置示教任务所花费的成本。
此外,机器人装置例如可以包括机械手等的工业用机器人、能够自动移动的移动体等。在机器人装置为机械手的情况下,第一对象物可以是机械手的末端执行器,第二对象物可以是作为通过末端执行器保持的对象的工件。该情况下,通过机械手执行的任务可以是通过末端执行器保持工件。另外,在末端执行器保持了工件之后,第一对象物可以是工件,第二对象物可以是配置工件的其他工件。该情况下,通过机械手执行的任务可以是将通过末端执行器保持的工件配置至其他的工件。末端执行器、工件以及其他工件的种类分别也可以没有特别限定,可以根据实施方式适当地选择。末端执行器例如可以为夹具、吸引器、螺丝刀等。工件例如可以为连接器、楔子等。其他的工件例如可以为插座、孔等。
任务是使机器人装置执行的作业,其种类可以没有特别限定,可以根据实施方式适当地选择。任务例如可以为部件搬运、部件嵌合、螺钉旋转等。任务例如也可以是工件的保持、工件的释放等简单的作业。任务例如可以是保持对象的工件并将对象的工件配置于指定的坐标(位置及姿态)等的对象工件的坐标的变更。任务例如可以是使用喷雾器作为末端执行器,通过该喷雾器从指定的相对坐标向工件喷雾涂料。另外,任务例如也可以是将安装于末端执行器的摄像机配置于指定的坐标。任务可以预先提供,也可以通过操作者的指定提供。
“最终目标”是最终到达点(目标),在完成任务的执行的时间点实现,根据所提供的任务进行设定。“目标”包括最终目标,可以为了实现任务的执行而适当地设定。设定的目标的数量既可以为一个(该情况下,仅设定最终目标),也可以为多个。最终目标以外的目标是从开始点至到达终点为止所经过的经过点。因此,也可以将最终目标简称为“目标(goal)”,将最终目标以外的目标称为“下位目标(子目标)”。下位目标也可以称为“经过点”。
在上述一方面涉及的控制装置中,所述第一对象物与所述第二对象物之间的位置关系可以通过相对坐标进行表达。根据该构成,能够适当且清楚地表达第一对象物与第二对象物之间的物理且相对的位置关系。但是,位置关系的表达方法也可以不限定于这样的例子,可以根据实施方式适当地选择。第一对象物与第二对象物之间的位置关系例如也可以通过各自的绝对坐标进行表达。
上述一方面涉及的控制装置还具备模型生成部,所述模型生成部利用所述学习完毕的判定模型的所述判定的结果生成推理模型,所述推理模型用于以使第一对象物不与第二对象物接触的方式根据所述当前的任务状态及所述最终目标的任务状态推理接下来转换的所述目标的任务状态。所述行动决定部利用生成的所述推理模型决定相对于所述当前的任务状态接下来转换的所述目标的任务状态。
根据学习完毕的判定模型,可以判定第一对象物与第二对象物是否相互接触。因此,通过利用学习完毕的判定模型的判定结果,可以构建能够以避免第一对象物与第二对象物的无用接触的方式从当前的任务状态及最终目标的任务状态推理目标的任务状态的推理模型。根据该构成,通过在控制机器人装置的动作的运用时利用该推理模型,即使不伴随判定模型的运算处理,也能够以使第一对象物与第二对象物相互不接触的方式决定目标的任务状态。因此,可以降低控制处理的运算成本。
此外,以使第一对象物不与第二对象物接触的方式推理目标的任务状态是指:避免在第一对象物与第二对象物之间产生意外接触地决定目标的任务状态,例如,也可以包括将末端执行器保持工件等第一对象物与第二对象物适当地接触的任务状态决定为目标的任务状态。
在上述一方面涉及的控制装置中,所述模型生成部也可以通过实施机器学习而生成所述推理模型。根据该构成,可以适当地生成能够用于执行任务的推理模型。此外,构成推理模型的机器学习模型的种类也可以没有特别限定,可以根据实施方式适当地选择。推理模型例如可以通过函数式、数据表等进行表达。在利用函数式进行表达的情况下,推理模型例如可以由神经网络、支持向量机、回归模型、决策树等构成。另外,机器学习的方法也可以没有特别限定,可以根据推理模型的结构适当地选择。推理模型的机器学习例如可以采用监督学习、强化学习等。
在上述一方面涉及的控制装置中,所述机器学习可以由强化学习构成,所述强化学习根据通过所述学习完毕的判定模型判定在对象的任务状态下所述第一对象物与所述第二对象物是否相互接触的结果、以及该对象的任务状态与所述最终目标的任务状态之间的距离设定有回报。所述回报可以是所述第一对象物与所述第二对象物相互不接触,而且所述距离越短则设定得越多,所述第一对象物与所述第二对象物相互接触、或者所述距离越长则设定得越少。所述机器学习的实施可以包括反复进行构成所述推理模型的运算参数的值的修正以得到多的所述回报。根据该构成,可以生成能够避免第一对象物与第二对象物的无用接触,并且能够以所述机器人装置的任务状态快速到达最终目标的任务状态的方式决定目标的任务状态的推理模型。由此,可以实现能够以适当地执行任务的方式控制机器人装置的控制装置。
在上述一方面涉及的控制装置中,所述推理模型可以由势场构成,所述势场规定表达所述任务状态的集合的任务空间内的各坐标的位势。所述模型生成部也可以通过在所述任务空间内利用所述学习完毕的判定模型,以所述第一对象物不与所述第二对象物接触的方式实施路径规划,从而生成从分别作为开始点而提供的多个任务状态的各个至所述最终目标的任务状态为止的路径,并且,也可以通过根据生成的各路径的通过频率设定所述各坐标的位势,从而生成所述势场。所述行动决定部也可以根据生成的所述势场中的、在与所述当前的任务状态对应的坐标设定的位势的梯度决定接下来转换的所述目标的任务状态。根据该构成,可以适当地生成能够用于执行任务的推理模型。
此外,势场中的各坐标的位势表示各坐标中的第一对象物及第二对象物的位置关系相对于到达最终目标的评价值。即,位势越高则表示该坐标中的位置关系到达最终目标的可能性越高,位势越低则表示该坐标中的位置关系到达最终目标的可能性越低。因此,通过向位势的梯度高的一方转换,可以从作为开始点的任意的任务状态适当地到达最终目标的任务状态。
作为上述各方式涉及的模型生成装置及控制装置的另一方式,本发明的一方面既可以是实现以上的模型生成装置或控制装置的各构成的信息处理方法,也可以是程序,还可以是存储这样的程序的计算机等可读的存储介质。计算机等可读的存储介质是指通过电、磁、光学、机械或化学作用存储程序等信息的介质。另外,本发明的一方面涉及的控制系统可以由上述任一方式涉及的模型生成装置及上述任一方式涉及的控制装置构成。另外,本发明的一方面涉及的模型生成装置可以由与上述控制装置的模型生成部相关的部分构成。
例如,本发明的一方面涉及的模型生成方法是由计算机执行如下步骤的信息处理方法,即:获取多个学习数据集的步骤,所述多个学习数据集分别由表示两个对象物之间的位置关系的训练数据及表示在所述位置关系中所述两个对象物是否相互接触的正解数据的组合构成;以及使用获取的所述多个学习数据集实施判定模型的机器学习的步骤,所述机器学习的实施通过针对各所述学习数据集以相对于所述训练数据的输入而输出适合于对应的所述正解数据的输出值的方式对所述判定模型进行训练而构成。
另外,例如,本发明的一方面涉及的模型生成程序是使计算机执行如下步骤的程序,即:获取多个学习数据集的步骤,所述多个学习数据集分别由表示两个对象物之间的位置关系的训练数据及表示在所述位置关系中所述两个对象物是否相互接触的正解数据的组合构成;以及使用获取的所述多个学习数据集实施判定模型的机器学习的步骤,所述机器学习的实施通过针对各所述学习数据集以相对于所述训练数据的输入而输出适合于对应的所述正解数据的输出值的方式对所述判定模型进行训练而构成。
另外,例如,本发明的一方面涉及的控制方法是用于控制在存在第一对象物及第二对象物的环境下执行使第一对象物移动的任务的机器人装置的动作的信息处理方法,所述控制方法由计算机执行如下步骤:获取所述第一对象物及所述第二对象物的当前的任务状态,所述任务状态由所述第一对象物与所述第二对象物之间的位置关系规定;以接近最终目标的任务状态的方式相对于获取的所述当前的任务状态而决定接下来转换的目标的任务状态;通过向学习完毕的判定模型提供所述第一对象物及所述第二对象物的对象的任务状态,从而判定在对象的任务状态下所述第一对象物与所述第二对象物是否相互接触,所述学习完毕的判定模型通过机器学习而被训练为:相对于表示所述第一对象物与所述第二对象物的位置关系的训练数据的输入而输出适合于表示在该位置关系下所述第一对象物与所述第二对象物是否相互接触的正解数据的输出值;决定向所述机器人装置提供的控制指令,以使所述机器人装置的任务状态从所述当前的任务状态变化为所述目标的任务状态;以及通过向所述机器人装置提供已决定的所述控制指令,从而控制所述机器人装置的动作。
另外,例如,本发明的一方面涉及的控制程序是用于控制在存在第一对象物及第二对象物的环境下执行使第一对象物移动的任务的机器人装置的动作的程序,其使计算机执行如下步骤:获取所述第一对象物及所述第二对象物的当前的任务状态,所述任务状态由所述第一对象物与所述第二对象物之间的位置关系规定;以接近最终目标的任务状态的方式相对于获取的所述当前的任务状态而决定接下来转换的目标的任务状态;通过向学习完毕的判定模型提供所述第一对象物及所述第二对象物的对象的任务状态,从而判定在对象的任务状态下所述第一对象物与所述第二对象物是否相互接触,其中,所述学习完毕的判定模型通过机器学习而被训练为:相对于表示所述第一对象物与所述第二对象物的位置关系的训练数据的输入而输出适合于表示在该位置关系下所述第一对象物与所述第二对象物是否相互接触的正解数据的输出值;决定向所述机器人装置提供的控制指令,以使所述机器人装置的任务状态从所述当前的任务状态变化为所述目标的任务状态;以及通过向所述机器人装置提供已决定的所述控制指令,从而控制所述机器人装置的动作。
发明效果
根据本发明,可以减少表达两个对象物接触的边界的信息的数据量。
附图说明
图1示意性地例示出本发明的适用场景的一例。
图2A示意性地例示出实施方式涉及的两个对象物之间的位置关系的一例。
图2B示意性地例示出实施方式涉及的两个对象物之间的位置关系的一例。
图3示意性地例示出按每个坐标点保持表示两个对象物是否接触的值的方式的一例。
图4示意性地例示出实施方式涉及的模型生成装置的硬件构成的一例。
图5示意性地例示出实施方式涉及的控制装置的硬件构成的一例。
图6示意性地例示出实施方式涉及的机器人装置的一例。
图7示意性地例示出实施方式涉及的模型生成装置的软件构成的一例。
图8示意性地例示出实施方式涉及的控制装置的软件构成的一例。
图9例示出实施方式涉及的模型生成装置的处理顺序的一例。
图10例示出与实施方式涉及的控制装置所进行的推理模型的生成相关的处理顺序的一例。
图11A示意性地例示出实施方式涉及的任务空间的一例。
图11B示意性地例示出实施方式涉及的任务空间的一例。
图11C示意性地例示出实施方式涉及的任务空间的一例。
图12示意性地例示出实施方式涉及的推理模型的构成及生成方法的一例。
图13示意性地例示出实施方式涉及的推理模型的构成及生成方法的一例。
图14A示意性地例示出实施方式涉及的学习数据的一例。
图14B示意性地例示出实施方式涉及的推理模型的构成的一例。
图15A例示出与实施方式涉及的控制装置对机器人装置的动作的控制相关的处理顺序的一例。
图15B例示出与实施方式涉及的控制装置对机器人装置的动作的控制相关的处理顺序的一例。
图16例示出实施方式涉及的各要素的计算过程的一例。
图17示意性地例示出实施方式涉及的各对象物的位置关系。
图18A示意性地示出末端执行器未保持工件时的各关节与指尖的关系的一例。
图18B示意性地示出末端执行器保持工件时的各关节与指尖的关系的一例。
图19例示出与变形例涉及的控制装置所进行的目标决定相关的子例程的处理顺序的一例。
图20示意性地例示出变形例涉及的模型生成装置的软件构成的一例。
具体实施方式
以下,根据附图对本发明的一方面涉及的实施方式(以下,也表述为“本实施方式”)进行说明。但是,以下说明的本实施方式在所有方面都仅为本发明的例示。当然,能够在不脱离本发明的范围的情况下进行各种改良和变形。也就是说,在实施本发明时,也可以适当地采用符合实施方式的具体构成。需要说明的是,本实施方式中利用自然语言来说明出现的数据,但是,更为具体而言,利用计算机可识别的模拟语言、命令、参数、机器语言等进行指定。
§1适用例
首先,使用图1对本发明的适用场景的一例进行说明。图1示意性地例示出本发明的适用场景的一例。如图1所示,本实施方式涉及的控制系统100具备模型生成装置1及控制装置3。模型生成装置1及控制装置3可以经由网络相互连接。网络的种类可以从例如因特网、无线通信网、移动通信网、电话网、专用网等中适当地进行选择。
<模型生成装置>
本实施方式涉及的模型生成装置1是构成为生成用于判定在对象的位置关系中两个对象物是否相互接触的判定模型50的计算机。具体而言,本实施方式涉及的模型生成装置1获取多个学习数据集121,该多个学习数据集121分别通过表示两个对象物之间的位置关系的训练数据122及表示在该位置关系中两个对象物是否相互接触的正解数据123的组合构成。
在本实施方式中,两个对象物之间的位置关系通过相对坐标进行表达。相对坐标是从一方的对象物观察另一方的对象物时的坐标。可以选择两个对象物中的任意一个作为相对坐标的基准。“坐标”可以包括位置及姿态中的至少一方。在三维空间上,位置可以由前后、左右以及上下这三个轴表达,姿态可以由各轴的旋转(翻滚、俯仰、偏摆)表达。在本实施方式中,相对坐标可以由三维的相对位置及三维的相对姿态的六维进行表达。此外,相对坐标的维数并不限于六维,可以适当地削减。
并且,本实施方式涉及的模型生成装置1使用获取的多个学习数据集121实施判定模型50的机器学习。机器学习的实施通过针对各学习数据集121,以相对于训练数据122的输入而输出适合于对应的正解数据123的输出值的方式对判定模型50进行训练而构成。通过该机器学习,能够构建掌握了判定在对象的位置关系中两个对象物是否相互接触的能力的学习完毕的判定模型50。
在本实施方式中,学习完毕的判定模型50用于判定在具备末端执行器T的机械手4、工件W以及其他的工件G所存在的空间中,在工件W与末端执行器T之间是否产生接触、以及在工件W与其他的工件G之间是否产生接触。机械手4是“机器人装置”的一例。末端执行器T、工件W以及其他的工件G是“对象物”的一例。末端执行器T、工件W以及其他的工件G的种类也可以分别没有特别限定,可以根据任务适当地进行选择。末端执行器T例如可以为夹具、吸引器、螺丝刀等。工件W例如可以为连接器、楔子等。其他的工件G例如可以为插座、孔等。其他的工件G是工件W的组装目标的对象物的一例。通过末端执行器T保持工件W例如可以是通过夹具把持工件、通过吸引器吸引保持工件、将工作保持在螺丝刀的前端,等等。
更为详细而言,作为一例,本实施方式涉及的机械手4执行通过末端执行器T保持工件W,并将保持的工件W组装于其他的工件G上的任务。该任务能够被分为通过末端执行器T保持工件W的第一任务以及将保持的工件W搬运至其他的工件G的第二任务这两个任务。在使末端执行器T移动而执行保持工件W的第一任务的场景下,学习完毕的判定模型50用于判定在工件W与末端执行器T之间是否产生无用的接触。另外,在将工件W保持之后使末端执行器T移动,从而执行将保持的工件W搬运至其他的工件G的第二任务的场景下,学习完毕的判定模型50用于判定在工件W与其他的工件G之间是否产生无用的接触。
也就是说,在本实施方式中,通过学习完毕的判定模型50判定是否产生接触的两个对象物中的至少任意一个是通过机器人装置(机械手4)的动作进行移动的对象。既可以是两个对象物中的仅任意一方为通过机器人装置的动作进行移动的对象,或者,也可以是两个对象物中的双方为通过机器人装置的动作进行移动的对象。但是,本发明的适用对象也可以不限定于这样的例子。本发明可以适用于判定两个对象物的接触的所有场景。
此外,如上所述,在判定是否接触的对象存在多个的情况下,也可以准备分别判定在不同的对象物之间是否产生接触的多个学习完毕的判定模型50。或者,学习完毕的判定模型50例如也可以构成为:还受理对象物的种类、对象物的识别符等表示对象物的条件的信息的输入,判定与输入的条件对应的两个对象物之间是否产生接触。也可以采用任何的方法。以下,为了便于说明,不区分学习完毕的判定模型50的判定对象地进行说明。
<控制装置>
本实施方式涉及的控制装置3是构成为在存在第一对象物及第二对象物的环境下控制执行使第一对象物相对于第二对象物移动的任务的机器人装置的动作的计算机。上述第一任务及第二任务是该“使第一对象物相对于第二对象物移动的任务”的一例。在执行第一任务的场景下,末端执行器T为第一对象物的一例,工件W为第二对象物的一例。另外,在执行第二任务的场景下,工件W为第一对象物的一例,其他的工件G为第二对象物的一例。如上所述,机械手4是机器人装置的一例。
首先,本实施方式涉及的控制装置3获取表示第一对象物及第二对象物的当前的任务状态的信息。任务状态由第一对象物与第二对象物(即,两个对象物)之间的位置关系规定。在本实施方式中,作为观测任务状态的视觉系的传感器而使用摄像机S1。另外,如后所述,为了测定机械手4的各关节的角度而使用编码器,为了测定末端执行器T对工件W的保持状态而使用触觉传感器。在本实施方式中,可以通过这些传感器观测当前的任务状态。
在此,进一步使用图2A及图2B,对根据第一对象物与第二对象物之间的位置关系规定任务状态的方法的具体例进行说明。图2A示意性地例示出执行上述第一任务的场景下的末端执行器T与工件W之间的位置关系的一例。图2B示意性地例示出执行上述第二任务的场景下的工件W与其他的工件G之间的位置关系的一例。如上所述,在本实施方式中,两个对象物之间的位置关系通过相对坐标进行表达。
在本实施方式中,如图2A所示,在如执行第一任务的场景等那样末端执行器T未保持工件W的期间,将末端执行器T的关注点T0作为机械手4的指尖进行处理。在第一任务中,工件W是末端执行器T的移动的目标物。末端执行器T与工件W之间的位置关系通过工件W相对于末端执行器T的相对坐标RC1进行表达。相对坐标RC1表示从以末端执行器T的关注点T0为原点的局部坐标系CT观察到的、以工件W的关注点W0为原点的局部坐标系CW。在本实施方式中,执行第一任务的场景下的机械手4的任务状态由该相对坐标RC1规定。
另一方面,如图2B所示,在如执行第二任务的场景等那样末端执行器T保持工件W的期间,将工件W的关注点W0作为机械手4的指尖进行处理。在第二任务中,其他的工件G是末端执行器T的移动的目标物。工件W与其他的工件G之间的位置关系通过其他的工件G相对于工件W的相对坐标RC2进行表达。相对坐标RC2表示从以工件W的关注点W0为原点的局部坐标系CW观察到的、以其他的工件G的关注点G0为原点的局部坐标系CG。在本实施方式中,执行第二任务的场景下的机械手4的任务状态由该相对坐标RC2规定。
即,在本实施方式中,在执行第一任务及第二任务的双方的场景下,任务状态由机械手4的指尖与目标物之间的位置关系(本实施方式中为相对坐标)规定。机械手4的指尖相当于第一对象物,目标物相当于第二对象物。由此,能够将第一任务及第二任务都理解为使机械手4的指尖相对于目标物移动的任务。因此,根据本实施方式,能够简化机械手4的控制处理,由此,能够降低生成或示教机械手4的动作的成本。
此外,各关注点(T0、W0、G0)可以任意地设定。另外,相对坐标的赋予方法也可以不限定于上述那样的例子,可以根据实施方式适当地决定。例如,相对坐标RC1也可以如表示从以工件W的关注点W0为原点的局部坐标系CW观察到的、以末端执行器T的关注点T0为原点的局部坐标系CT等那样,调换各相对坐标(RC1、RC2)的关系。另外,使指尖移动也可以不限于使指尖靠近目标物,可以根据实施方式适当地决定。使指尖移动例如可以是使指尖远离目标物、以目标物为基准将指尖移动至规定的位置,等等。
接着,本实施方式涉及的控制装置3以接近最终目标的任务状态的方式,相对于通过获取的信息表示的当前的任务状态而决定接下来转换的目标的任务状态。在执行第一任务的场景下,通过末端执行器T保持工件W的状态是最终目标的任务状态的一例。另外,在执行第二任务的场景下,将工件W配置于其他的工件G的所希望的位置的状态是最终目标的任务状态的一例。
另外,本实施方式涉及的控制装置3通过向学习完毕的判定模型50提供表示第一对象物及第二对象物的对象的任务状态的信息,从而判定在对象的任务状态下第一对象物与第二对象物是否相互接触。学习完毕的判定模型50通过上述机器学习被训练为:相对于表示第一对象物与第二对象物的位置关系的训练数据(训练数据122)的输入,输出适合于表示在该位置关系下第一对象物与第二对象物是否相互接触的正解数据(正解数据123)的输出值。
本实施方式涉及的控制装置3决定向机器人装置(机械手4)提供的控制指令,以使机器人装置(机械手4)的任务状态从当前的任务状态变化为目标的任务状态。然后,控制装置3通过向机器人装置提供决定的控制指令而驱动机器人装置。由此,本实施方式涉及的控制装置3能够控制执行使第一对象物相对于第二对象物移动的任务的机器人装置的动作。
<作用效果>
如上所述,本实施方式涉及的模型生成装置1通过机器学习生成用于判定在对象的位置关系中两个对象物是否接触的判定模型50。根据通过机器学习生成的学习完毕的判定模型50,即使以连续值提供对象的位置关系(在本实施方式中为相对坐标),也可以在不伴随判定模型50的数据量的大幅增加的情况下,判定在该位置关系下两个对象物是否相互接触。因此,根据本实施方式,能够大幅减少表达两个对象物接触的边界的信息的数据量。
在此,进一步使用图3对该作用效果的具体例进行说明。图3示意性地例示出按每个坐标点保持表示两个对象物是否相互接触的值的方式的一例。白色圆圈表示在与该坐标对应的位置关系中两个对象物相互不接触,黑色圆点表示在与该坐标对应的位置关系中两个对象物相互接触。在图3中,通过二维表达各坐标点,但在上述六维的相对坐标的空间中,各坐标点用六维进行表达。该情况下,若提高空间的分辨率(分辨能力),则数据量以6次方的量级增加。例如,当以实际空间中的运用中能够利用的分辨率设定坐标点时,该信息的数据量能够简单地成为千兆字节单位。
相对于此,在本实施方式中,通过学习完毕的判定模型50保持表示在对象的位置关系中两个对象物是否相互接触的信息。该学习完毕的判定模型50的运算参数的数量虽然依赖于相对坐标的维数,但可以不增加该运算参数的数量地处理连续值。因此,例如,如后所述,在由三层结构的神经网络构成判定模型50的情况下,可以将学习完毕的判定模型50的数据量抑制为数兆字节左右。因此,根据本实施方式,能够大幅减少表达两个对象物接触的边界的信息的数据量。由此,即使是嵌入式系统等的性能比较低的计算机,也可以实现能够以避免第一对象物与第二对象物的无用接触的方式适当地驱动机器人装置的控制装置3。
另外,在机器人装置的以往的控制方法中,使向机器人装置提供的时间序列的控制指令与执行的任务直接关联。即,在以往的控制方法中,通过控制指令的序列直接记述了执行的任务。因此,在执行任务的环境及对象物中的至少一方稍微发生了变化的情况下,学习结果也无法应对该变化,有可能无法适当地执行该任务。
例如,假定向机器人装置示教通过末端执行器保持工件的任务的场景。该情况下,只要工件被准确地配置于对象的地点,则机器人装置便可以根据学习结果通过末端执行器保持工件。另一方面,在工件的姿态与学习时不同、或者工件配置于与学习时不同的位置的情况下,通过末端执行器保持工件的坐标发生变化。由此,机器人装置在该场景下应执行的任务的内容实质上发生变化。因此,在根据学习结果得到的控制指令的序列下,机器人装置有可能无法通过末端执行器适当地保持工件。
这样,在以往的控制方法中,存在如下问题:在执行任务的环境及对象物中的至少一方稍微发生了变化的情况下,学习结果也无法应对该变化,若不重新学习该任务,则机器人装置有可能无法适当地执行该任务。基于该原因,为了使机器人装置通用地进行动作,即使是相同任务也按不同的状态学习控制指令,从而向机器人装置示教任务所花费的成本依然高。
相对于此,在本实施方式中,通过机械手4执行的任务的状态通过末端执行器T、工件W、其他的工件G等对象物间的相对关系、具体为对象物间的位置关系进行表达。由此,向机械手4提供的控制指令不是与任务直接关联,而是与对象物间的相对的位置关系的变化量相关联。即,不依赖于任务的内容,能够相对于使对象物的相对位置关系变化而生成或示教向机械手4提供的时间序列的控制指令。例如,在上述例子中,即使工件的坐标发生变化,在掌握末端执行器与工件之间的位置关系时,也考虑该工件的坐标的变化。因此,机器人装置能够根据学习结果适当地保持工件。因此,根据本实施方式,能够提高执行掌握的任务的能力的通用性,由此,能够降低向机械手4示教任务所花费的成本。
§2构成例
[硬件构成]
<模型生成装置>
接着,使用图4对本实施方式涉及的模型生成装置1的硬件构成的一例进行说明。图4示意性地例示出本实施方式涉及的模型生成装置1的硬件构成的一例。
如图4所示,本实施方式涉及的模型生成装置1是控制部11、存储部12、通信接口13、外部接口14、输入装置15、输出装置16以及驱动器17电连接而成的计算机。此外,在图4中,将通信接口及外部接口记载为“通信I/F”及“外部I/F”。
控制部11包括作为硬件处理器的CPU(Central Processing Unit:中央处理器)、RAM(Random Access Memory:随机存取存储器)、ROM(Read Only Memory:只读存储器)等,并构成为根据程序及各种数据执行信息处理。存储部12是存储器的一例,例如由硬盘驱动器、固态驱动器等构成。在本实施方式中,存储部12存储模型生成程序81、CAD(computer-aided design:计算机辅助设计)数据120、多个学习数据集121、学习结果数据125等的各种信息。
模型生成程序81是用于使模型生成装置1执行与判定模型50的机器学习相关的后述信息处理(图9)的程序。模型生成程序81包含该信息处理的一系列的命令。CAD数据120包含表示各对象物(末端执行器T、工件W、其他的工件G)的模型(例如三维模型)等的几何学构成的构成信息。CAD数据120可以通过公知的软件生成。多个学习数据集121使用于判定模型50的机器学习。学习结果数据125表示与通过机器学习生成的学习完毕的判定模型50相关的信息。学习结果数据125被作为执行模型生成程序81的结果而得到。之后详细进行叙述。
通信接口13例如为有线LAN(Local Area Network:局域网)模块、无线LAN模块等,且是用于经由网络进行有线或无线通信的接口。模型生成装置1通过利用该通信接口13,能够经由网络与其他的信息处理装置(例如控制装置3)进行数据通信。
外部接口14例如是USB(Universal Serial Bus:通用串行总线)端口、专用端口等,且是用于与外部装置连接的接口。外部接口14的种类及数量可以根据所连接的外部装置的种类及数量适当地选择。模型生成装置1也可以经由外部接口14与机械手4及摄像机S1连接,以便判定在实际空间中对象物是否接触。
输入装置15例如是鼠标、键盘等用于进行输入的装置。另外,输出装置16例如是显示器、扬声器等用于进行输出的装置。操作者可以利用输入装置15及输出装置16操作模型生成装置1。
驱动器17例如为CD驱动器、DVD驱动器等,且是用于读入存储介质91中存储的程序的驱动装置。驱动器17的种类可以根据存储介质91的种类适当地选择。上述模型生成程序81、CAD数据120以及多个学习数据集121中的至少任意一个也可以存储于该存储介质91中。
存储介质91是以计算机及其他装置、机械等能够读取所存储的程序等信息的方式,通过电、磁、光学、机械或化学作用存储该程序等信息的介质。模型生成装置1也可以从该存储介质91获取上述模型生成程序81、CAD数据120以及多个学习数据集121中的至少任意一个。
在此,在图4中,作为存储介质91的一例,例示出CD、DVD等的盘式存储介质。但是,存储介质91的种类并不限定于盘式,也可以为盘式以外的类型。作为盘式以外的存储介质,例如可以举出闪存等的半导体存储器。
此外,关于模型生成装置1的具体的硬件构成,可以根据实施方式适当地省略、替换以及追加构成要素。例如,控制部11也可以包含多个硬件处理器。硬件处理器可以由微处理器、FPGA(field-programmable gate array:现场可编程门阵列)、DSP(digital signalprocessor:数字信号处理器)等构成。存储部12也可以由控制部11包含的RAM及ROM构成。也可以省略通信接口13、外部接口14、输入装置15、输出装置16以及驱动器17中的至少任意一个。模型生成装置1也可以由多台计算机构成。该情况下,各计算机的硬件构成既可以一致,也可以不一致。另外,模型生成装置1除了是被设计为所提供的服务专用的信息处理装置之外,也可以是通用的服务器装置、PC(Personal Computer:个人计算机)等。
<控制装置>
接着,使用图5对本实施方式涉及的控制装置3的硬件构成的一例进行说明。图5示意性地例示出本实施方式涉及的控制装置3的硬件构成的一例。
如图5所示,本实施方式涉及的控制装置3是控制部31、存储部32、通信接口33、外部接口34、输入装置35、输出装置36以及驱动器37电连接的计算机。此外,在图5中,与图4同样将通信接口及外部接口记载为“通信I/F”及“外部I/F”。
控制装置3的控制部31~驱动器37分别可以与上述模型生成装置1的控制部11~驱动器17同样地构成。即,控制部31包括作为硬件处理器的CPU、RAM、ROM等,并构成为根据程序及数据执行各种信息处理。存储部32例如由硬盘驱动器、固态驱动器等构成。存储部32存储控制程序83、CAD数据320、机器人数据321、学习结果数据125、学习数据323、推理模型数据325等的各种信息。
控制程序83是用于使控制装置3执行与用于推理目标的任务状态的推理模型的生成相关的后述信息处理(图10)以及与机器人装置(机械手4)的动作的控制相关的后述信息处理(图15A及图15B)的程序。控制程序83包含这些信息处理的一系列的命令。CAD数据320与上述CAD数据120同样包含表示各对象物(末端执行器T、工件W、其他的工件G)的模型等的几何学构成的构成信息。机器人数据321包含各关节的参数等表示机械手4的构成的构成信息。学习结果数据125用于设定学习完毕的判定模型50。学习数据323用于生成推理模型。推理模型数据325表示与所生成的推理模型相关的信息。之后详细进行叙述。
通信接口33例如是有线LAN模块、无线LAN模块等,且是用于经由网络进行有线或无线通信的接口。控制装置3通过利用该通信接口33,能够经由网络与其他的信息处理装置(例如模型生成装置1)进行数据通信。
外部接口34例如是USB端口、专用端口等,且是用于与外部装置连接的接口。外部接口34的种类及数量可以根据所连接的外部装置的种类及数量适当地选择。控制装置3可以经由外部接口34与摄像机S1及机械手4连接。在本实施方式中,机械手4具备测定各关节的角度的编码器S2、以及测定作用于末端执行器T的力的触觉传感器S3。
摄像机S1、编码器S2以及触觉传感器S3各自的种类也可以没有特别限定,可以根据实施方式适当地决定。摄像机S1例如可以是构成为获取RGB图像的普通的数码相机、构成为获取深度图像的深度相机、构成为将红外线量图像化的红外线相机等。触觉传感器S3例如可以为接触式传感器(Tactile Sensor)等。
控制装置3可以经由外部接口34从各传感器(摄像机S1、各编码器S2、触觉传感器S3)获取感测数据(图像数据、角度数据、压力分布数据)。此外,与摄像机S1及机械手4的连接方法也可以不限定于这样的例子。例如,在摄像机S1及机械手4具备通信接口的情况下,控制装置3也可以经由通信接口33与摄像机S1及机械手4连接。
输入装置35例如是鼠标、键盘等用于进行输入的装置。另外,输出装置36例如是显示器、扬声器等用于进行输出的装置。操作者可以利用输入装置35及输出装置36操作控制装置3。
驱动器37例如为CD驱动器、DVD驱动器等,且是用于读入存储介质93中存储的程序的驱动装置。存储介质93的种类与上述存储介质91同样既可以为盘式,或者也可以为盘式以外的类型。上述控制程序83、CAD数据320、机器人数据321、学习结果数据125以及学习数据323中的至少任意一个也可以存储于存储介质93中。另外,控制装置3也可以从存储介质93获取上述控制程序83、CAD数据320、机器人数据321、学习结果数据125以及学习数据323中的至少任意一个。
此外,关于控制装置3的具体的硬件构成,能够根据实施方式适当地省略、替换以及追加构成要素。例如,控制部31也可以包含多个硬件处理器。硬件处理器可以由微处理器、FPGA、DSP等构成。存储部32也可以由控制部31包含的RAM及ROM构成。也可以省略通信接口33、外部接口34、输入装置35、输出装置36以及驱动器37中的至少任意一个。控制装置3也可以由多台计算机构成。该情况下,各计算机的硬件构成既可以一致,也可以不一致。另外,控制装置3除了是被设计为所提供的服务专用的信息处理装置以外,也可以是通用的服务器装置、通用的PC、PLC(programmable logic controller:可编程逻辑控制器)等。
<机械手>
接着,使用图6对本实施方式涉及的机械手4的硬件构成的一例进行说明。图6示意性地例示出本实施方式涉及的机械手4的硬件构成的一例。
本实施方式涉及的机械手4是六轴的垂直多关节型的工业用机器人,具备基座部40以及六个关节部41~46。各关节部41~46构成为通过内置伺服电机(未图示)而能够以各轴为中心进行旋转。第一关节部41与基座部40连接,使前端侧的部分绕基座的轴旋转。第二关节部42与第一关节部41连接,使前端侧的部分在前后方向上旋转。第三关节部43经由连杆491与第二关节部42连接,使前端侧的部分在上下方向上旋转。第四关节部44经由连杆492与第三关节部43连接,使前端侧的部分绕连杆492的轴旋转。第五关节部45经由连杆493与第四关节部44连接,使前端侧的部分在上下方向上旋转。第六关节部46经由连杆494与第五关节部45连接,使前端侧的部分绕连杆494的轴旋转。在第六关节部46的前端侧,与触觉传感器S3一起安装有末端执行器T。
各关节部41~46中还内置有编码器S2。各编码器S2构成为测定各关节部41~46的角度(控制量)。各编码器S2的测定数据(角度数据)可以用于控制各关节部41~46的角度。另外,触觉传感器S3构成为检测作用于末端执行器T的力。触觉传感器S3的测量数据(压力分布数据)可以用于推测保持于末端执行器T的工件W的位置及姿态、或者检测是否有异常的力作用于末端执行器T。
此外,机械手4的硬件构成也可以不限定于这样的例子。关于机械手4的具体的硬件构成,能够根据实施方式适当地省略、替换以及追加构成要素。例如,机械手4也可以具备编码器S2及触觉传感器S3以外的传感器,以便观测控制量或者其他的属性。例如,机械手4也可以还具备扭矩传感器。该情况下,机械手4可以通过扭矩传感器测定作用于末端执行器T的力,并根据扭矩传感器的测定值进行控制,以防过度的力作用于末端执行器T。另外,机械手4的轴数也可以不限于六轴。机械手4可以采用公知的工业用机器人。
[软件构成]
<模型生成装置>
接着,使用图7对本实施方式涉及的模型生成装置1的软件构成的一例进行说明。图7示意性地例示出本实施方式涉及的模型生成装置1的软件构成的一例。
模型生成装置1的控制部11将存储于存储部12的模型生成程序81加载至RAM中。然后,控制部11通过CPU对加载至RAM的模型生成程序81中包含的命令进行解释及执行,从而控制各构成要素。由此,如图7所示,本实施方式涉及的模型生成装置1作为如下的计算机进行动作,即,该计算机具备数据获取部111、机器学习部112以及保存处理部113来作为软件模块。即,在本实施方式中,模型生成装置1的各软件模块通过控制部11(CPU)实现。
数据获取部111获取多个学习数据集121。各学习数据集121由表示两个对象物之间的位置关系的训练数据122以及表示在该位置关系中两个对象物是否相互接触的正解数据123的组合构成。训练数据122被用作机器学习的输入数据。正解数据123被用作机器学习的教师信号(标签)。训练数据122及正解数据123的形式也可以没有特别限定,可以根据实施方式适当地选择。例如,训练数据122既可以直接利用两个对象物之间的相对坐标,或者也可以利用通过将相对坐标转换为特征量而得到的值。根据CAD数据120,可以判定在对象的位置关系中对象的两个对象物是否相互接触。因此,通过利用CAD数据120,可以生成各学习数据集121。
机器学习部112使用获取的多个学习数据集121实施判定模型50的机器学习。机器学习的实施通过针对各学习数据集121,以相对于训练数据122的输入而输出适合于对应的正解数据123的输出值的方式对判定模型50进行训练而构成。通过该机器学习,可以构建掌握了判定两个对象物是否相互接触的能力的学习完毕的判定模型50。保存处理部113生成与构建的学习完毕的判定模型50相关的信息作为学习结果数据125,并将生成的学习结果数据125保存于规定的存储区域。
(判定模型的构成)
接着,对判定模型50的构成的一例进行说明。本实施方式涉及的判定模型50由用于深度学习的多层结构的神经网络构成。在图7的例子中,判定模型50由三层的全连接型神经网络构成。判定模型50具备输入层501、中间(隐藏)层502以及输出层503。但是,判定模型50的结构并不限定于这样的例子,也可以根据实施方式适当地决定。例如,判定模型50所具备的中间层的数量并不限定于一个,也可以为两个以上。或者,也可以省略中间层502。
各层501~503中包含的神经元(节点)的数量可以根据实施方式适当地决定。例如,输入层501的神经元的数量可以根据表达两个对象物之间的位置关系的相对坐标的维数进行决定。另外,输出层503的神经元的数量可以根据表达两个对象物是否相互接触的方法进行决定。例如,在利用一个数值表达两个对象物是否相互接触(例如,用[0、1]的范围的数值表达)的情况下,输出层503的神经元的数量可以为一个。另外,例如,在通过表示接触的概率的第一数值以及表示未接触的概率的第二数值这两个数值表达两个对象物是否相互接触的情况下,输出层503的神经元的数量可以为两个。
邻接的层的神经元彼此适当地连接。在本实施方式中,各神经元与邻接层的所有神经元连接。然而,各神经元的连接关系也可以不限定于这样的例子,可以根据实施方式适当地设定。各连接中设定有权重(连接权)。各神经元中设定有阈值,基本来说,根据各输入与各权重之积的和是否超过阈值而决定各神经元的输出。阈值也可以通过激活函数进行表达。该情况下,通过将各输入与各权重之积的和输入激活函数,并执行激活函数的运算,从而决定各神经元的输出。激活函数的种类也可以没有特别限定,可以根据实施方式适当地选择。各层501~503中包含的各神经元间的连接的权重及各神经元的阈值是判定模型50的运算参数的一例。
在本实施方式中,机器学习部112使用多个学习数据集121,实施由上述神经网络构成的判定模型50的机器学习。具体而言,机器学习部112通过调整判定模型50的运算参数的值,从而针对各学习数据集121训练判定模型50的运算参数,以使当将训练数据122输入输入层501时从输出层503输出适合于正解数据123的输出值。由此,机器学习部112能够生成掌握了判定两个对象物是否相互接触的能力的学习完毕的判定模型50。
保存处理部113生成表示构建的学习完毕的判定模型50的结构及运算参数的信息作为学习结果数据125。并且,保存处理部113将生成的学习结果数据125保存至规定的存储区域。此外,学习结果数据125的内容只要能够再生学习完毕的判定模型50,则也可以不限定于这样的例子。例如,在使判定模型50的结构在各装置间共用的情况下,可以在学习结果数据125中省略表示判定模型50的结构的信息。
<控制装置>
接着,使用图8对本实施方式涉及的控制装置3的软件构成的一例进行说明。图8示意性地例示出本实施方式涉及的控制装置3的软件构成的一例。
控制装置3的控制部31将存储于存储部32的控制程序83加载至RAM中。然后,控制部31通过CPU对加载至RAM的控制程序83中包含的命令进行解释及执行,从而对各构成要素进行控制。由此,如图8所示,本实施方式涉及的控制装置3作为如下的计算机进行动作,即,该计算机具备目标设定部311、状态获取部312、行动决定部313、接触判定部314、指令决定部315、驱动部316、数据收集部317、模型生成部318以及保存处理部319作为软件模块。即,在本实施方式中,与上述模型生成装置1同样,控制装置3的各软件模块通过控制部31(CPU)实现。
目标设定部311根据执行的任务设定最终目标的任务状态。任务状态由执行的任务中的第一对象物与第二对象物之间的位置关系规定。在本实施方式中,位置关系通过上述相对坐标进行表达。“最终目标”是最终到达点(目标),在完成任务的执行的时间点实现。状态获取部312获取表示机器人装置(机械手4)的当前的任务状态的信息。“当前”是对机器人装置的动作进行控制的时间点,且是即将决定向机器人装置提供的控制指令之前的时间点。第一对象物及第二对象物可以根据执行的任务适当地设定。作为一例,在执行第一任务的场景下,第一对象物是末端执行器T,第二对象物是工件W。在执行第二任务的场景下,第一对象物是由末端执行器T保持的工件W,第二对象物是其他的工件G。
行动决定部313以接近最终目标的任务状态的方式,相对于通过获取的信息表示的当前的任务状态而决定接下来转换的目标的任务状态。“目标”包括最终目标,可以为了实现任务的执行而适当地设定。截止最终目标为止设定的目标的数量既可以为一个(该情况下,仅设定最终目标),也可以为多个。最终目标以外的目标是从任务的开始点至到达终点为止所经过的经过点。因此,也可以将最终目标简称为“目标(goal)”,将最终目标以外的目标称为“下位目标(子目标)”。下位目标也可以被称为“经过点”。“接下来转换的目标”是从当前的任务状态起接下来作为目标的任务状态(若是最终目标以外的目标则为暂定的任务状态),例如为朝向最终目标最接近当前的任务状态的目标。
接触判定部314通过保持学习结果数据125而具备学习完毕的判定模型50。接触判定部314参照学习结果数据125进行学习完毕的判定模型50的设定。学习完毕的判定模型50通过上述机器学习掌握了判定第一对象物与第二对象物是否相互接触的能力。接触判定部314通过向学习完毕的判定模型50提供表示第一对象物及第二对象物的对象的任务状态的信息,从而判定在对象的任务状态下第一对象物与第二对象物是否相互接触。
指令决定部315决定向机器人装置(机械手4)提供的控制指令,以使机器人装置(机械手4)的任务状态从当前的任务状态变化为目标的任务状态。驱动部316通过向机器人装置提供决定的控制指令而驱动机器人装置。在本实施方式中,通过这些一系列的处理控制机械手4的动作。
学习完毕的判定模型50对于是否接触的判定结果也可以直接利用于控制上述机器人装置的动作的场景。或者,学习完毕的判定模型50对于是否接触的判定结果也可以用于生成推理模型55,该推理模型用于推理从当前的任务状态及最终目标的任务状态起接下来转换的目标的任务状态。由此,学习完毕的判定模型50的判定结果可以间接地利用于控制上述机器人装置的动作的场景。在本实施方式中,作为学习完毕的判定模型50的判定结果的利用方法而选择后者的利用方法。
即,数据收集部317及模型生成部318利用学习完毕的判定模型50的判定结果生成推理模型55,该推理模型55被构成为以使第一对象物不与第二对象物接触的方式决定接下来转换的目标的任务状态。数据收集部317利用学习完毕的判定模型50的判定结果收集用于生成推理模型55的学习数据323。学习数据323的收集可以进一步利用CAD数据320。模型生成部318使用收集到的学习数据323生成推理模型55。学习数据323及推理模型55的详细情况之后进行叙述。
保存处理部319生成与生成的推理模型55相关的信息作为推理模型数据325,并将生成的推理模型数据325保存至规定的存储区域。在本实施方式中,行动决定部313通过保持推理模型数据325而具备生成的推理模型55。行动决定部313利用生成的推理模型55相对于当前的任务状态而决定接下来转换的目标的任务状态。
<其他>
关于模型生成装置1及控制装置3的各软件模块,在后述的动作例中详细进行说明。此外,在本实施方式中,对模型生成装置1及控制装置3的各软件模块均由通用的CPU实现的例子进行说明。但是,以上的软件模块的一部分或全部也可以通过一个或多个专用的处理器实现。另外,关于模型生成装置1及控制装置3各自的软件构成,也可以根据实施方式适当地省略、替换以及追加软件模块。
§3动作例
[模型生成装置]
接着,使用图9对模型生成装置1的动作例进行说明。图9是表示与本实施方式涉及的模型生成装置1进行的判定模型50的机器学习相关的处理顺序的一例的流程图。以下说明的处理顺序是本发明的“模型生成方法”的一例。但是,以下说明的各处理顺序仅为一例,各步骤可以在可能的范围内进行变更。进而,对于以下说明的各处理顺序,可以根据实施方式适当地省略、替换以及追加步骤。
(步骤S101)
在步骤S101中,控制部11作为数据获取部111进行动作,获取判定模型50的机器学习中使用的多个学习数据集121。各学习数据集121由表示两个对象物之间的位置关系的训练数据122以及表示在该位置关系中两个对象物是否相互接触的正解数据123的组合构成。
各学习数据集121的生成方法也可以没有特别限定,可以根据实施方式适当地选择。例如,利用CAD数据120,在虚拟空间上将两个对象物配置成各种位置关系。在本实施方式中,位置关系通过相对坐标进行表达。另外,在本实施方式中,两个对象物中的至少任意一个是通过机器人装置(机械手4)的动作而移动的对象。在假定执行上述第一任务的场景的情况下,末端执行器T及工件W分别为各对象物的一例。另外,在假定执行上述第二任务的场景的情况下,通过末端执行器T保持的工件W及其他的工件G分别为各对象物的一例。两个对象物中的一方为机械手4的指尖,另一方为目标物。各对象物的配置既可以由操作者指定,也可以随机决定。或者,也可以通过将一方对象物的位置固定,并按照规则变更另一方对象物的位置,从而实现各种位置关系。提供给另一方对象物的配置的规则可以适当地设定。由此,可以获取各位置关系中的相对坐标作为各学习数据集121的训练数据122。另外,CAD数据120中包含各对象物的模型。因此,根据CAD数据120,可以判定在对象的位置关系中对象的两个对象物是否相互接触。利用CAD数据120将在各位置关系中判定两个对象物是否相互接触的结果作为正解数据123与对应的训练数据122相关联。由此,可以生成各学习数据集121。此外,各学习数据集121的生成方法也可以不限定于这样的例子。也可以通过在实际空间上利用各对象物的实物而生成各学习数据集121。
各学习数据集121既可以通过计算机的动作自动生成,也可以通过至少部分地包含操作者的操作而手动生成。另外,各学习数据集121的生成既可以通过模型生成装置1进行,也可以通过模型生成装置1以外的其他的计算机进行。在由模型生成装置1生成各学习数据集121的情况下,控制部11自动地或者通过操作者经由输入装置15进行操作而手动地执行上述一系列的处理,从而获取多个学习数据集121。另一方面,在由其他的计算机生成各学习数据集121的情况下,控制部11例如经由网络、存储介质91等获取由其他的计算机生成的多个学习数据集121。该情况下,也可以从模型生成装置1中省略CAD数据120。也可以由模型生成装置1生成一部分的学习数据集121,由一个或多个其他的计算机生成其他的学习数据集121。
获取的学习数据集121的件数也可以无特别限定,可以根据实施方式适当地选择。当获取了多个学习数据集121时,控制部11使处理进入下一步骤S102。
(步骤S102)
在步骤S102中,控制部11作为机器学习部112进行动作,使用获取的多个学习数据集121实施判定模型50的机器学习。在本实施方式中,控制部11通过机器学习针对各学习数据集121对判定模型50进行训练,以在将训练数据122输入至输入层501时从输出层503输出适合于对应的正解数据123的输出值。由此,控制部11构建掌握了判定在对象的位置关系中两个对象物是否相互接触的能力的学习完毕的判定模型50。
机器学习的处理顺序可以根据实施方式适当地决定。作为一例,控制部11首先准备作为处理对象的判定模型50。准备的判定模型50的结构(例如层的数量、各层中包含的神经元的数量、邻接层的神经元彼此的连接关系等)、各神经元间的连接的权重的初始值、以及各神经元的阈值的初始值既可以通过模板提供,也可以通过操作者输入提供。另外,在进行再学习的情况下,控制部11也可以根据通过进行过去的机器学习而得到的学习结果数据准备判定模型50。
接着,控制部11将各学习数据集121中包含的训练数据122用作输入数据,将正解数据123用作教师信号,执行判定模型50(神经网络)的学习处理。在该学习处理中,可以使用批量梯度下降法、随机梯度下降法、小批量梯度下降法等。
例如,在第一步骤中,控制部11针对各学习数据集121将训练数据122输入判定模型50,执行判定模型50的运算处理。即,控制部11将训练数据122输入至输入层501,从输入侧起依次进行各层501~503中包含的各神经元的点火判定(即,进行正向传播的运算)。通过该运算处理,控制部11从判定模型50的输出层503获取与在训练数据122所表示的位置关系中两个对象物是否接触的判定结果对应的输出值。
在第二步骤中,控制部11根据损失函数算出从输出层503获取的输出值与正解数据123的误差(损失)。损失函数是评价学习模型的输出与正解的差分(即,差异的程度)的函数,从输出层503获取的输出值与正解数据123的差分值越大,则通过损失函数算出的误差的值越大。用于计算误差的损失函数的种类也可以没有特别限定,可以根据实施方式适当地选择。
在第三步骤中,控制部11通过误差反向传播(Back propagation)法,并使用算出的输出值的误差的梯度而算出判定模型50的各运算参数(各神经元间的连接的权重、各神经元的阈值等)的值的误差。在第四步骤中,控制部11根据算出的各误差更新判定模型50的运算参数的值。更新运算参数的值的程度可以根据学习率进行调节。学习率既可以通过操作者的指定提供,也可以作为程序内的设定值提供。
控制部11通过反复进行上述第一至第四步骤,从而针对各学习数据集121调整判定模型50的运算参数的值,以使从输出层503输出的输出值与正解数据123的误差之和变小。例如,控制部11也可以反复进行上述第一至第四步骤的处理,直到该误差之和变为阈值以下为止。阈值可以根据实施方式适当地设定。根据该机器学习的结果,控制部11能够针对各学习数据集121而构建被训练为在将训练数据122输入至输入层501时从输出层503输出适合于对应的正解数据123的输出值的学习完毕的判定模型50。该“适合”也可以包括在输出层503的输出值与教师信号(正解数据123)之间产生根据阈值等可容许的差异。当判定模型50的机器学习完成时,控制部11使处理进入下一步骤S103。
(步骤S103)
在步骤S103中,控制部11作为保存处理部113进行动作,将与通过机器学习构建的学习完毕的判定模型50相关的信息作为学习结果数据125保存至规定的存储区域。在本实施方式中,控制部11生成表示通过步骤S102构建的学习完毕的判定模型50的结构及运算参数的信息作为学习结果数据125。然后,控制部11将生成的学习结果数据125保存至规定的存储区域。
规定的存储区域例如可以为控制部11内的RAM、存储部12、外部存储装置、存储介质或者它们的组合。存储介质例如可以为CD、DVD等,控制部11也可以经由驱动器17将学习结果数据125存储至存储介质中。外部存储装置例如可以为NAS(Network AttachedStorage:网络附加存储)等的数据服务器。该情况下,控制部11也可以利用通信接口13经由网络将学习结果数据125存储至数据服务器中。另外,外部存储装置例如也可以为与模型生成装置1连接的外置的存储装置。
由此,当学习结果数据125的保存完成时,控制部11结束与学习完毕的判定模型50的生成相关的一系列处理。
此外,可以在任意的时刻向控制装置3提供生成的学习结果数据125。例如,控制部11也可以作为步骤S103的处理、或者与步骤S103的处理分开将学习结果数据125传送至控制装置3。控制装置3也可以通过接收该传送而获取学习结果数据125。另外,例如,控制装置3也可以利用通信接口33并经由网络访问模型生成装置1或数据服务器,从而获取学习结果数据125。另外,例如,控制装置3也可以经由存储介质93获取学习结果数据125。另外,例如,学习结果数据125也可以预先嵌入控制装置3。
进而,控制部11也可以通过定期或不定期地反复进行上述步骤S101~步骤S103的处理,从而更新或新生成学习结果数据125。在该重复时,可以适当地执行多个学习数据集121中的至少一部分的变更、修正、追加、删除等。然后,控制部11也可以通过在每次执行学习处理时向控制装置3提供更新后的或者新生成的学习结果数据125,从而更新控制装置3所保持的学习结果数据125。
[控制装置]
(A)推理模型的生成
接着,使用图10对与控制装置3的推理模型55的生成相关的动作例进行说明。图10是表示与本实施方式涉及的控制装置3进行的推理模型55的生成相关的处理顺序的一例的流程图。此外,以下说明的各处理顺序仅为一例,各步骤可以在可能的范围内进行变更。进而,对于以下说明的各处理顺序,可以根据实施方式适当地省略、替换以及追加步骤。
(步骤S201)
在步骤S201中,关于机械手4执行的任务,控制部31受理最终目标的任务状态的指定。任务状态通过第一对象物与第二对象物之间的位置关系进行表达。在本实施方式中,位置关系通过相对坐标进行表达。
最终的任务状态下的相对坐标的指定方法也可以没有特别限定,可以根据实施方式适当地选择。例如,最终的任务状态下的相对坐标也可以通过操作者经由输入装置35输入而直接指定。另外,例如,也可以通过操作者的输入而选择要执行的任务,并根据所选择的任务指定最终的任务状态下的相对坐标。另外,例如,也可以利用CAD数据320,在虚拟空间上将各对象物的模型配置为最终目标的位置关系,从而指定最终目标中的相对坐标。各对象物的模型的配置既可以通过模拟器自动地进行,也可以通过操作者的输入手动地进行。当指定了最终目标的任务状态时,控制部31使处理进入下一步骤S202。
(步骤S202~步骤S204)
在步骤S202中,控制部31将任意的任务状态设定为开始点。被设定为开始点的任务状态相当于开始执行任务的时间点的任务状态。作为开始点的任务状态既可以随机进行设定,或者也可以通过操作者的输入进行指定。操作者指定开始点的方法可以与上述最终目标的指定方法相同。另外,作为开始点的任务状态可以通过任意的算法决定。作为一例,也可以将各对象物的实物配置于实际空间,并通过摄像机拍摄各对象物,由此获取映现各对象物的图像数据。然后,也可以通过对获得的图像数据进行图像处理(例如,基于CAD数据320的匹配),从而决定作为开始点的任务状态。除此之外,作为开始点的任务状态也可以利用CAD数据320适当地决定。
在步骤S203中,控制部31作为接触判定部314进行动作,利用学习完毕的判定模型50判定在被设定为开始点的任务状态下两个对象物是否相互接触。具体而言,控制部31参照学习结果数据125进行学习完毕的判定模型50的设定。接着,控制部31将步骤S202中设定的任务状态的相对坐标输入学习完毕的判定模型50的输入层501。然后,作为学习完毕的判定模型50的运算处理,控制部31从输入侧起依次进行各层501~503中包含的各神经元的点火判定。由此,控制部31从学习完毕的判定模型50的输出层503获取与在被设定为开始点的任务状态下两个对象物是否相互接触的判定结果对应的输出值。
在步骤S204中,控制部31根据步骤S203的判定结果决定处理的分支目标。当在步骤S203中判定为在被设定为开始点的任务状态下两个对象物相互接触时,控制部31使处理返回到步骤S202,再次设定开始点的任务状态。另一方面,当判定为在被设定为开始点的任务状态下两个对象物相互不接触时,控制部31将所设定的开始点的任务状态认定为机械手4的当前的任务状态,并使处理进入下一步骤S205。
图11A示意性地例示出在任务空间SP中通过上述步骤S201~步骤S204的处理设定了开始点及最终目标的任务状态的场景的一例。任务空间SP表达规定任务状态的相对坐标的集合。表示任务空间SP的信息既可以保持于控制装置3,也可以不保持。属于任务空间SP的各节点(点)与两个对象物之间的相对坐标对应。在图11A的例子中,节点Ns与开始点的任务状态下的相对坐标对应,节点Ng与最终目标的任务状态下的相对坐标对应。在本实施方式中,任务空间SP中的两个对象物是否接触的边界面(接触边界面)根据学习完毕的判定模型50的判定结果而被导出。
(步骤S205~步骤S207)
在步骤S205中,控制部31以接近最终目标的任务状态的方式相对于当前的任务状态而决定接下来转换的目标的任务状态。
目标的任务状态的决定方法也可以没有特别限定,可以根据实施方式适当地选择。例如,目标的任务状态下的相对坐标也可以通过操作者的输入进行决定。与作为开始点的任务状态的设定同样地,目标的任务状态下的相对坐标既可以通过任意的算法进行决定,也可以利用CAD数据320适当地决定。另外,例如,控制部31也可以通过随机变更开始点的任务状态下的相对坐标,从而决定目标的任务状态下的相对坐标。另外,例如,控制部31也可以在任务空间SP内以接近节点Ng的方式选择从节点Ns分离规定距离的节点。控制部31也可以获取与所选择的节点对应的任务状态作为目标的任务状态。另外,例如,在通过后述的强化学习生成推理模型55的情况下,可以利用强化学习的过程中的推理模型55决定目标的任务状态。
另外,例如,目标的任务状态的决定中可以采用路径规划等公知的方法。作为一例,控制部31也可以在任务空间SP中设定作为目标的任务状态的候补的节点。节点的设定既可以通过随机采样等方法自动地进行,也可以通过操作者的输入手动地进行。也可以自动地进行一部分节点的设定,手动地进行剩余节点的设定。在进行了作为目标的任务状态的候补的节点的设定之后,控制部31可以适当地选择能够转换的节点的组合。选择能够转换的节点的组合的方法例如可以采用最近邻法等。在任务空间SP内,能够转换的节点的组合可以通过连结节点的边缘进行表达。接着,控制部31搜索从开始点的节点Ns至最终目标的节点Ng的路径。路径搜索的方法可以采用迪杰斯特拉(Dijkstra)法等。控制部31也可以获取与通过搜索得到的路径中包含的节点对应的任务状态作为目标的任务状态。
在步骤S206中,控制部31作为接触判定部314进行动作,利用学习完毕的判定模型50判定在所决定的目标的任务状态下两个对象物是否相互接触。除了判定的对象从开始点的任务状态替换为目标的任务状态这一点以外,控制部31可以与上述步骤S203同样地执行步骤S206的处理。即,控制部31将目标的任务状态的相对坐标输入学习完毕的判定模型50,执行学习完毕的判定模型50的运算处理。由此,控制部31从学习完毕的判定模型50获取与在目标的任务状态下两个对象物是否相互接触的判定结果对应的输出值。
在步骤S207中,控制部31根据步骤S206的判定结果决定处理的分支目标。当在步骤S206中判定为在目标的任务状态下两个对象物相互接触时,控制部31使处理返回到步骤S205,再次决定目标的任务状态。另一方面,当判定为在目标的任务状态下两个对象物相互不接触时,控制部31使处理进入下一步骤S208。
此外,步骤S207中的分支目标也可以不限定于这样的例子。例如,当判定为在目标的任务状态下两个对象物相互接触时,控制部31也可以使处理返回到步骤S202,从开始点的设定起重新进行处理。另外,例如,在多次决定了目标的任务状态之后,判定为在最后决定的目标的任务状态中两个对象物相互接触时,控制部31也可以使处理返回到步骤S205,从开始点起再次进行接下来转换的目标的任务状态的决定。接触之前决定的目标的任务状态的序列也可以作为无法到达最终目标的任务状态的失败事例进行收集。
图11B示意性地例示出在任务空间SP中通过上述步骤S205~步骤S207的处理决定了目标的任务状态的场景的一例。在图11B的例子中,节点N1与被决定为接着开始点的任务状态(节点Ns)下一个转换的目标的任务状态的任务状态下的相对坐标相对应。此外,在图11B的例子中,假定在步骤S205中决定了一次转换量的目标的任务状态。但是,步骤S205中决定的目标的任务状态的数量也可以不限于一个。在步骤S205中,控制部31也可以朝向最终目标的任务状态决定多次转换量的目标的任务状态(目标的任务状态的序列)。
(步骤S208)
在步骤S208中,控制部31使机械手4的当前的任务状态转换至通过步骤S205决定的目标的任务状态。然后,控制部31判定机械手4的任务状态是否到达了最终目标的任务状态、即转换目的地的任务状态是否为最终目标的任务状态。任务状态的转换可以通过模拟在虚拟空间上进行。当判定为到达了最终目标的任务状态时,控制部31使处理进入下一步骤S209。另一方面,当判定为未到达最终目标的任务状态时,控制部31使处理返回到步骤S205,决定进一步的目标的任务状态。
图11C示意性地例示出在任务空间SP中,通过上述步骤S208为止的处理决定了从开始点的任务状态向最终目标的任务状态转换的任务状态的序列的场景的一例。各节点N1~N4与从开始点的节点Ns到达最终目标的节点Ng之前被决定为目标的任务状态的任务状态下的相对坐标对应。节点N(k+1)表示接着节点N(k)下一个转换的目标的任务状态(k为1~3)。如图11C所例示,通过步骤S208为止的处理,控制部31能够得到从开始点至最终目标为止转换的目标的任务状态的序列。
(步骤S209)
在步骤S209中,控制部31判定是否反复进行步骤S202~步骤S208的处理。反复进行处理的基准可以根据实施方式适当地决定。
例如,也可以设定反复进行处理的规定次数。规定次数例如既可以通过设定值提供,也可以通过操作者的指定提供。该情况下,控制部31判定步骤S202~步骤S208的处理的执行次数是否达到了规定次数。当判定为执行次数未达到规定次数时,控制部31使处理返回到步骤S202,反复进行步骤S202~步骤S208的处理。另一方面,当判定为执行次数已达到规定次数时,控制部31使处理进入下一步骤S210。
另外,例如,控制部31也可以向操作者询问是否反复进行处理。该情况下,控制部31根据操作者的回答判定是否反复进行步骤S202~步骤S208的处理。当操作者回答反复进行处理时,控制部31使处理返回到步骤S202,反复进行步骤S202~步骤S208的处理。另一方面,当操作者回答不反复进行处理时,控制部31使处理进入下一步骤S210。
通过到步骤S209为止的处理,能够得到图11C所例示的从开始点至最终目标为止转换的目标的任务状态的一个以上的序列。控制部31作为数据收集部317进行动作,收集从该开始点至最终目标为止转换的目标的任务状态的一个以上的序列。然后,控制部31根据收集到的序列生成学习数据323。控制部31既可以直接获取收集到的序列作为学习数据323,也可以通过对收集到的序列执行某些信息处理而生成学习数据323。学习数据323的构成可以根据生成推理模型55的方法适当地决定。关于学习数据323的构成,之后进行叙述。
(步骤S210及步骤S211)
在步骤S210中,控制部31作为模型生成部318进行动作。即,控制部31使用利用学习完毕的判定模型50的判定结果得到的学习数据323生成推理模型55,该推理模型55用于以使第一对象物不与第二对象物接触的方式从当前的任务状态及最终目标的任务状态推理接下来转换的目标的任务状态。关于生成推理模型55的方法,之后进行叙述。
在步骤S211中,控制部31作为保存处理部319进行动作。即,控制部31生成与生成的推理模型55相关的信息作为推理模型数据325,并将生成的推理模型数据325保存至规定的存储区域。规定的存储区域例如可以为控制部31内的RAM、存储部32、外部存储装置、存储介质或者它们的组合。存储介质例如可以为CD、DVD等,控制部31也可以经由驱动器37将推理模型数据325存储至存储介质中。外部存储装置例如可以为NAS等的数据服务器。该情况下,控制部31也可以利用通信接口33经由网络将推理模型数据325存储至数据服务器中。另外,外部存储装置例如也可以为与控制装置3连接的外置的存储装置。
由此,当推理模型数据325的保存完成时,控制部31结束与推理模型55的生成相关的一系列处理。
<推理模型的生成方法>
接着,对上述步骤S210中的推理模型55的生成方法的具体例进行说明。在本实施方式中,控制部31可以通过以下两个方法中的至少任意一个方法生成推理模型55。
(1)第一方法
在第一方法中,控制部31通过实施机器学习而生成推理模型55。该情况下,推理模型55由机器学习模型构成。机器学习模型的种类也可以没有特别限定,可以根据实施方式适当地选择。推理模型55例如可以通过函数式、数据表等进行表达。在利用函数式进行表达的情况下,推理模型55例如可以由神经网络、支持向量机、回归模型、决策树等构成。另外,机器学习的方法也可以没有特别限定,可以根据推理模型55的构成适当地选择。推理模型55的机器学习的方法例如可以采用监督学习、强化学习等。以下,对构成推理模型55的机器学习模型及机器学习的方法各自的两个例子进行说明。
(1-1)第一例
图12示意性地示出构成推理模型55的机器学习模型及机器学习的方法的第一例。在第一例中,推理模型55采用神经网络,机器学习的方法采用监督学习。此外,在图12的例子中,为了便于说明,将推理模型55、学习数据323以及推理模型数据325各自的一例表述为推理模型551、学习数据3231以及推理模型数据3251。
(1-1-1)推理模型的构成例
在第一例中,推理模型551由三层结构的递归型神经网络构成。具体而言,推理模型551具备输入层N51、LSTM(长短期记忆:Long short-term memory)块N52以及输出层N53。LSTM块N52对应于中间层。
LSTM块52是具备输入门及输出门,并构成为能够学习信息的存储及输出的时刻的块(S.Hochreiter and J.Schmidhuber,“Long short-term memory”Neural Computation,9(8):1735-1780,November 15,1997)。LSTM块52也可以还具备调节信息的遗忘时刻的遗忘门(Felix A.Gers,Jürgen Schmidhuber and Fred Cummins,“Learning to Forget:Continual Prediction with LSTM”Neural Computation,pages 2451-2471,October2000)。LSTM块N52的构成可以根据实施方式适当地设定。
此外,推理模型551的结构也可以不限定于这样的例子,可以根据实施方式适当地决定。推理模型551也可以由不同结构的递归型神经网络构成。或者,推理模型551也可以不是递归型,而是与上述判定模型50同样由全连接型神经网络、或者卷积神经网络构成。或者,推理模型551也可以由多种神经网络的组合构成。例如,推理模型551所具备的中间层的数量也可以不限于一个,也可以为两个以上。或者,也可以省略中间层。除此之外,推理模型551的构成也可以与上述判定模型50相同。
(1-1-2)学习数据的构成例
推理模型551的监督学习中利用的学习数据3231由包含训练数据(输入数据)及正解数据(教师信号)的组合的多个学习数据集L30构成。训练数据可以由训练用的当前的任务状态L31下的相对坐标及训练用的最终目标的任务状态L32下的相对坐标构成。正解数据可以由训练用的目标的任务状态L33中的相对坐标构成。此外,训练数据及正解数据的形式也可以没有特别限定,可以根据实施方式适当地选择。例如,训练数据中既可以直接利用相对坐标,或者也可以利用通过将相对坐标转换为特征量而得到的值。
控制部31可以根据通过到步骤S209为止的处理得到的目标的任务状态的一个以上的序列而生成各学习数据集L30。例如,可以将由节点Ng表示的最终目标的任务状态用作训练用的最终目标的任务状态L32。另外,控制部31在将由节点Ns表示的开始点的任务状态设定为训练用的当前的任务状态L31的情况下,可以将由节点N1表示的任务状态设定为对应的正解数据中的训练用的目标的任务状态L33。同样地,控制部31在将由节点N(k)表示的任务状态设定为训练用的当前的任务状态L31的情况下,可以将由节点N(k+1)表示的任务状态设定为对应的正解数据中的训练用的目标的任务状态L33。控制部31在将由节点N4表示的任务状态设定为训练用的当前的任务状态L31的情况下,可以将由节点Ng表示的最终目标的任务状态设定为对应的正解数据中的训练用的目标的任务状态L33。由此,可以根据得到的目标的任务状态的一个以上的序列生成各学习数据集L30。
(1-1-3)关于步骤S210
在上述步骤S210中,控制部31使用获取的多个学习数据集L30实施推理模型551的机器学习(监督学习)。在第一例中,控制部31通过机器学习针对各学习数据集L30对推理模型551进行训练,以在将训练数据输入至输入层N51时从输出层N53输出适合于正解数据的输出值。由此,可以生成获得了从当前的任务状态及最终目标的任务状态推理接下来转换的目标的任务状态的能力的学习完毕的推理模型551。
推理模型551的机器学习的方法可以与上述判定模型50的机器学习的方法相同。即,在第一步骤中,控制部31针对各学习数据集L30向推理模型551的输入层N51输入训练数据,执行推理模型551的运算处理。由此,控制部31从推理模型551的输出层L53获取与相对于当前的任务状态推理接下来转换的目标的任务状态的结果对应的输出值。在第二步骤中,控制部31根据损失函数算出输出层L53的输出值与正解数据的误差。
接着,在第三步骤中,控制部31通过误差反向传播法,并使用算出的输出值的误差的梯度,算出推理模型551的各运算参数的值的误差。控制部31使用算出的误差的梯度,算出推理模型551的各运算参数(例如,各神经元间的连接的权重、各神经元的阈值等)的值的误差。在第四步骤中,控制部31根据算出的各误差更新推理模型551的运算参数的值。更新的程度可以根据学习率进行调节。学习率既可以通过操作者的指定提供,也可以作为程序内的设定值提供。
控制部31通过反复进行上述第一至第四步骤,从而针对各学习数据集L30调整推理模型551的运算参数的值,以使从输出层N53输出的输出值与正解数据的误差之和变小。或者,控制部31也可以反复进行上述第一至第四步骤,直到误差之和变为阈值以下为止。阈值可以根据实施方式适当地设定。或者,控制部31也可以将上述第一至第四步骤反复进行规定次数。反复进行调整的次数例如可以利用程序内的设定值进行指定,也可以通过操作者的输入进行指定。
根据该机器学习(监督学习)的结果,控制部31可以针对各学习数据集L30而构建被训练为在将训练数据输入至输入层N51时从输出层N53输出适合于对应的正解数据的输出值的学习完毕的推理模型551。即,可以构建获得了对从当前的任务状态及最终目标的任务状态推理接下来转换的目标的任务状态的能力的学习完毕的推理模型551。
在步骤S211中,控制部31生成表示通过监督学习构建的学习完毕的推理模型551的结构及运算参数的信息作为推理模型数据3251。然后,控制部31将生成的推理模型数据3251保存至规定的存储区域。此外,推理模型数据3251的内容只要能够再现学习完毕的推理模型551,便也可以不限定于这样的例子。例如,在推理模型551的结构在各装置间共用的情况下,可以在推理模型数据3251中省略表示推理模型551的结构的信息。
(1-1-4)其他
此外,在机器学习的方法采用监督学习的情况下,推理模型551的构成可以不限于神经网络。也可以采用神经网络以外的机器学习模型作为推理模型551。构成推理模型551的机器学习模型例如也可以采用支持向量机、回归模型、决策树等。监督学习的方法可以不限定于上述例子,可以根据机器学习模型的构成适当地选择。
(1-2)第二例
图13示意性地示出构成推理模型55的机器学习模型及机器学习的方法的第二例。在第二例中,机器学习的方法采用强化学习。此外,在图13的例子中,为了便于说明,将推理模型55、学习数据323以及推理模型数据325各自的一例表述为推理模型552、学习数据3232以及推理模型数据3252。
(1-2-1)推理模型的构成例
在第二例中,推理模型552可以采用价值基础、策略基础、或者这两者。在采用价值基础的情况下,推理模型552例如可以由状态价值函数、行动价值函数(Q函数)等的价值函数构成。状态价值函数构成为输出所提供的状态的价值。行动价值函数构成为相对于所提供的状态而输出各行动的价值。在采用策略基础的情况下,推理模型552例如可以由策略函数构成。策略函数构成为相对于所提供的状态而输出选择各行动的概率。在采用双方的情况下,推理模型552例如可以由价值函数(Critic)及策略函数(Actor)构成。各函数例如可以通过数据表、函数式等进行表达。在通过函数式进行表达的情况下,各函数可以由神经网络、线性函数、决策树等构成。此外,也可以通过由存在多个中间(隐藏)层的多层结构的神经网络构成各函数而实施深度强化学习。
(1-2-2)学习数据的构成例
在强化学习中,基本上通过按照策略进行行动而假定与学习的环境相互作用的智能体。智能体的实体例如为CPU。推理模型552通过上述构成作为决定行动的策略进行动作。智能体在所提供的学习的环境内观测与强化的行动相关的状态。在本实施方式中,作为观测对象的状态是由相对坐标规定的任务状态,被执行的行动是从当前的任务状态向目标的任务状态的转换。策略被构成为从当前的任务状态及最终目标的任务状态决定(推理)接下来转换的目标的任务状态。
智能体可以向推理模型552提供观测到的当前的任务状态(输入数据),从而推理接下来转换的目标的任务状态。智能体也可以根据该推理的结果决定目标的任务状态。或者,目标的任务状态可以随机进行决定。由此,智能体可以决定所采用的行动。当智能体执行向决定的目标的任务状态转换的行动时,观测到的任务状态向下一个任务状态转换。根据情况,智能体可以从学习的环境得到即时回报。
在反复进行该行动的决定及执行的试错的同时,智能体更新推理模型552以使即时回报的总和(即价值)最大化。由此,最佳的行动、即有望获取高价值的行动被强化,可以得到能够选择这样的行动的策略(学习完毕的推理模型552)。
因此,在强化学习中,学习数据3232由状态转换数据构成,该状态转换数据通过该试错得到,并表示通过被执行的行动而从当前的任务状态向下一个任务状态转换,且根据情况能够得到即时回报这样的状态转换。一件状态转换数据既可以由表示一个回合(episode)全部的状态转换的轨迹的数据构成,或者也可以由表示规定次数(一次以上)的状态转换的数据构成。在上述步骤S202~步骤S209的处理过程中,控制部31可以通过利用训练中的推理模型552执行上述试错,从而获取上述状态转换数据。
另外,为了根据状态转换算出即时回报,可以使用回报函数。回报函数可以通过数据表、函数式或者规则进行表达。在通过函数式进行表达的情况下,回报函数可以由神经网络、线性函数、决策树等构成。回报函数也可以由操作者等手动进行设定。
或者,回报函数可以被设定为:根据通过上述学习完毕的判定模型50判定在转换对象的任务状态下第一对象物与第二对象物是否相互接触的结果、以及该对象的任务状态与最终目标的任务状态之间的距离提供即时回报。具体而言,第一对象物与第二对象物相互不接触,且对象的任务状态与最终目标的任务状态之间的距离越短,则即时回报被设定得越多,第一对象物与第二对象物相互接触、或者该距离越长,则即时回报被设定得越少。以下的式1例示这样提供即时回报的回报函数的一例。
[式1]
Figure BDA0003464071080000461
sc表示通过策略决定的目标的任务状态。sg表示最终目标的任务状态。F(sc)表示通过学习完毕的判定模型50判定在任务状态sc下第一对象物与第二对象物是否相互接触的结果。可以设定为在判定为相互接触时F(sc)的值变小(例如为0),在判定为相互不接触时F(sc)的值变大(例如为1)。在学习完毕的判定模型50的输出值与该设定对应的情况下,也可以直接使用学习完毕的判定模型50的输出值作为F(sc)。
或者,回报函数可以通过逆向强化学习从通过专家得到的事例数据进行推测。事例数据可以由表示专家的演示(的轨迹)的数据构成。在本实施方式中,事例数据例如可以由表示以从任意的开始点的任务状态到达最终目标的任务状态的方式使第一对象物实际移动的路径的数据构成。生成事例数据的方法也可以没有特别限定,可以根据实施方式适当地选择。事例数据例如可以通过利用传感器等记录专家的演示的轨迹而生成。
逆向强化学习的方法可以没有特别限定,可以根据实施方式适当地选择。在逆向强化学习中,例如可以使用基于最大熵原理的方法、基于相对熵的最小化的方法、利用了生成敌对网络的方法(例如Justin Fu,et al.,“Learning Robust Rewards withAdversarial Inverse Reinforcement Learning”,arXiv:1710.11248,2018)等。在通过逆向强化学习得到回报函数的情况下,学习数据3232还可以具备用于逆向强化学习的事例数据。
(1-2-3)关于步骤S210
在上述步骤S210中,控制部31根据得到的状态转换数据更新推理模型552的运算参数的值以使价值最大化。调整推理模型552的运算参数的值的方法可以根据推理模型552的构成适当地选择。例如,在推理模型552由神经网络构成的情况下,推理模型552的运算参数的值可以通过误差反向传播法等,以与上述第一例同样的方法进行调整。
控制部31对推理模型552的运算参数的值进行调整,以使得到的价值(的期待值)最大化(例如,更新量成为阈值以下为止)。即,推理模型552的训练包括反复进行构成推理模型552的运算参数的值的修正以在满足规定的条件(例如,更新量成为阈值以下)之前得到较多的回报。由此,控制部31可以生成获得了从当前的任务状态及最终目标的任务状态推理接下来转换的目标的任务状态的能力的学习完毕的推理模型552。
此外,控制部31也可以在通过步骤S202~步骤S209的处理收集完学习数据3232之后,执行上述推理模型552的运算参数的值的调整。或者,控制部31也可以在反复进行步骤S202~步骤S210的处理的同时,执行上述推理模型552的运算参数的值的调整。
在推理模型552由价值基础构成的情况下,上述强化学习的方法可以使用TD(temporal difference:时序差分)法、TD(λ)法、蒙特卡罗法、动态规划法等。试错中的行动的决定既可以为同策略,也可以为异策略。作为具体例,强化学习的方法可以使用Q学习、Sarsa等。在试错时,也可以根据概率ε采用随机的行动(ε-贪心算法)。
另外,在推理模型552由策略基础构成的情况下,上述强化学习的方法可以使用策略梯度法、TRPO(trust region policy optimization:信赖域策略优化)、PPO(proximalpolicy optimization:近端策略优化)等。该情况下,控制部31在得到的价值增加的方向上算出策略函数的运算参数的梯度,并根据算出的梯度更新策略函数的运算参数的值。在策略函数的梯度的算出中,例如可以使用REINFORCE算法等。
另外,在推理模型55由双方构成的情况下,上述强化学习的方法可以使用演员评论家(Actor Critic)法、A2C(Advantage Actor Critic:优势演员评论家)、A3C(Asynchronous Advantage Actor Critic:异步优势演员评论家)等。
进而,在实施逆向强化学习的情况下,在执行上述强化学习的处理之前,控制部31还获取事例数据。事例数据既可以通过控制装置3生成,也可以通过其他的计算机生成。在通过其他的计算机生成的情况下,控制部31也可以经由网络、存储介质93等获取通过其他的计算机生成的事例数据。接着,控制部31通过利用获取的事例数据执行逆向强化学习,从而设定回报函数。然后,控制部31利用通过逆向强化学习设定的回报函数执行上述强化学习的处理。由此,控制部31可以利用通过逆向强化学习设定的回报函数,生成获得了从当前的任务状态及最终目标的任务状态推理接下来转换的目标的任务状态的能力的学习完毕的推理模型552。
在步骤S211中,控制部31生成表示通过强化学习构建的学习完毕的推理模型552的信息作为推理模型数据3252。表示学习完毕的推理模型552的信息例如可以包含数据表的各项目的值、函数式的系数的值等表示运算参数的信息。然后,控制部31将生成的推理模型数据3252保存至规定的存储区域。根据第二例,可以生成能够避免第一对象物与第二对象物的无用的接触,并且能够以使机器人装置的任务状态快速到达最终目标的任务状态的方式决定目标的任务状态的推理模型55。
(1-3)小结
在本实施方式中,在通过机器学习模型构成推理模型55的情况下,推理模型55的构成也可以采用上述两个例子中的至少任意一个。控制部31通过采用上述两个机器学习的方法中的至少任意一个,可以生成获得了以使第一对象物与第二对象物不接触的方式从当前的任务状态及从最终目标的任务状态推理接下来转换的目标的任务状态的能力的学习完毕的推理模型55。因此,根据第一方法,可以适当地生成能够用于执行任务的推理模型55。
(2)第二方法
图14A示意性地例示出第二方法中的学习数据323的一例。图14B示意性地例示出第二方法中的推理模型55的构成的一例。在第二方法中,推理模型55由势场构成,该势场规定表达任务状态的集合的任务空间SP内的各坐标的位势。此外,在图14A及图14B中,为了便于说明,将推理模型55、学习数据323以及推理模型数据325各自的一例表述为推理模型553、学习数据3233以及推理模型数据3253。
控制部31通过上述步骤S202~步骤S209的处理,在任务空间SP内利用学习完毕的判定模型50以使第一对象物不与第二对象物接触的方式实施路径规划。由此,如图14A所例示,控制部31可以生成表示从分别作为开始点(节点Ns)提供的多个任务状态的各个至最终目标的任务状态为止的路径Hb的学习数据3233。各开始点(节点Ns)可以随机提供。
在上述步骤S210中,控制部31根据由生成的学习数据3233表示的各路径Hb的通过频率设定各坐标的位势,从而生成势场。导出势场的方法也可以没有特别限定,可以根据实施方式适当地选择。控制部31例如也可以通过核密度估计、使用了高斯混合模型(GMM:Gaussian Mixture Model)的估计从学习数据3233导出势场。由此,可以得到图14B所例示的势场(推理模型553)。
势场中的各坐标的位势表示各坐标中的第一对象物及第二对象物的位置关系相对于到达最终目标的评价值。即,位势越高则表示该坐标中的位置关系到达最终目标的可能性越高,位势越低则表示该坐标中的位置关系到达最终目标的可能性越低。因此,通过向位势的梯度高的一方转换,可以从作为开始点的任意的任务状态适当地到达最终目标的任务状态。因此,根据第二方法,可以适当地生成能够用于执行任务的推理模型55。
在步骤S211中,控制部31生成表示生成的势场的信息作为推理模型数据3253。势场可以通过数据表、函数式等进行表达。然后,控制部31将生成的推理模型数据3253保存至规定的存储区域。
(3)小结
在本实施方式中,作为生成推理模型55的方法,可以采用上述两个方法中的至少任意一个。控制部31通过采用上述两个方法中的至少任意一个,可以生成构成为以使第一对象物不与第二对象物接触的方式从当前的任务状态及从最终目标的任务状态推理接下来转换的目标的任务状态的推理模型55。
此外,以使第一对象物不与第二对象物接触的方式推理目标的任务状态是指:避免在第一对象物与第二对象物之间产生意外接触地决定目标的任务状态,例如,也可以包括将末端执行器T保持工件W等第一对象物与第二对象物适当地接触的任务状态决定为目标的任务状态。即,作为避免对象的“接触”状态例如为在第一对象物与第二对象物之间作用有过度的力、以第一对象物及第二对象物中的一方呈正确的姿态组装于另一方以外的状态而接触等不适当地接触的状态。因此,“第一对象物不与第二对象物接触”可以被替换为“避免第一对象物以不适当的状态与第二对象物接触”。
(B)机器人装置的动作控制
接着,使用图15A、图15B以及图16,对与本实施方式涉及的控制装置3的机器人装置(机械手4)的动作控制相关的动作例进行说明。图15A及图15B是表示与本实施方式涉及的控制装置3对机器人装置(机械手4)的动作控制相关的处理顺序的一例的流程图。图16示出动作控制的过程中的各要素的计算处理的流程的一例。包括与上述推理模型55的生成相关的处理顺序在内,以下说明的处理顺序是本发明的“控制方法”的一例。但是,以下说明的各处理顺序仅为一例,各步骤可以在可能的范围内进行变更。进而,对于以下说明的各处理顺序,可以根据实施方式适当地省略、替换以及追加步骤。此外,以下说明的机器人装置(机械手4)的动作的控制既可以在实际空间上实施,或者也可以在虚拟空间上实施。
(步骤S301及步骤S302)
在步骤S301中,控制部31受理要执行的任务的指定。任务的指定的受理方法也可以没有特别限定,可以根据实施方式适当地选择。例如,控制部31也可以通过经由输入装置35输入任务的名称而受理要执行的任务的指定。另外,例如,控制部31也可以将表示要执行的任务的候补的列表输出至输出装置36,使操作者从列表中选择要执行的任务,由此受理要执行的任务的指定。
在本实施方式中,控制部31受理在存在第一对象物及第二对象物的环境下使第一对象物相对于第二对象物移动的任务的执行。具体而言,驱动机械手4,通过末端执行器T保持工件W,将所保持的工件W组装至其他的工件G的一系列作业是被指定的任务的一例。在本实施方式中,在前往保持工件W的第一任务的过程中,将末端执行器T的关注点T0作为机械手4的指尖进行处理,工件W是指尖的移动的目标物。另一方面,在保持工件W之后,将工件W组装至其他的工件G的第二任务的过程中,将保持于末端执行器T的工件W的关注点W0作为机械手4的指尖进行处理,作为工件W的组装目标的其他的工件W是指尖的移动的目标物。在各任务中,机械手4的指尖相当于第一对象物,目标物相当于第二对象物。
在步骤S302中,控制部31作为目标设定部311进行动作,根据所指定的任务设定最终目标的任务状态sg。如上所述,在本实施方式中,任务状态由机械手4的指尖与目标物之间的位置关系规定。另外,位置关系通过相对坐标进行表达。最终目标的任务状态sg中的相对坐标既可以通过CAD等的模拟器提供,也可以通过操作者的指定提供。最终目标的任务状态sg中的相对坐标可以通过与上述步骤S201相同的方法进行设定。当设定了最终目标的任务状态sg时,控制部31使处理进入下一步骤S303。
(步骤S303)
在步骤S303中,控制部31从观测执行任务的环境的各传感器获取感测数据。
在本实施方式中,作为观测执行任务的环境的视觉系的传感器而使用摄像机S1。另外,机械手4具备测定各关节(关节部41~46)的角度的编码器S2及测定作用于末端执行器T的力的触觉传感器S3。因此,控制部31可以从摄像机S1获取映现执行任务的环境的图像数据作为感测数据。另外,控制部31可以从各编码器S2获取机械手4中的各关节的角度的当前值q(j)(即,当前的测定值)作为感测数据。此外,以下为了便于说明,在特别区分“当前”等的时刻时标注(j)等表示时刻的符号,否则省略该符号。进而,控制部31可以从触觉传感器S3获取作用于末端执行器T上的力的测定数据作为感测数据。控制部31既可以从各传感器(摄像机S1、编码器S2、触觉传感器S3)直接获取感测数据,或者例如也可以通过经由其他的计算机等方式间接获取感测数据。摄像机S1及触觉传感器S3分别是观测工件W相对于末端执行器T的状态的传感器的一例。当获取了感测数据时,控制部31使处理进入下一步骤S304。
(步骤S304)
在步骤S304中,控制部31根据获取的感测数据判定末端执行器T是否保持工件W。判定方法也可以没有特别限定,可以根据感测数据适当地决定。
例如,在本实施方式中,作为感测数据,可以从摄像机S1获取映现任务的环境的图像数据。因此,控制部31也可以利用CAD数据320,相对于获取的图像数据匹配末端执行器T及工件W的模型。然后,控制部31也可以根据基于该匹配的结果确定的末端执行器T与工件W的位置关系,判定末端执行器T是否保持工件W。匹配的方法可以使用公知的图像处理方法。
另外,例如,在本实施方式中,作为感测数据,可以获取作用于末端执行器T的力的测定数据。因此,控制部31也可以根据由测定数据表现出的力的分布判定末端执行器T是否保持工件W。当根据测定数据推测出可认定为末端执行器T保持工件W的力作用于末端执行器T时,控制部31可以判定为末端执行器T保持工件W。另一方面,否则,控制部31可以判定为末端执行器T未保持工件W。
当根据感测数据完成了末端执行器T是否保持工件W的判定时,控制部31使处理进入下一步骤S305。
(步骤S305)
在步骤S305中,控制部31根据步骤S304的判定结果设定机械手4的动作模式。具体而言,当判定为末端执行器T未保持工件W时,控制部31将末端执行器T的关注点T0设定为机械手4的指尖,将动作模式设定为执行通过末端执行器T保持工件W的第一任务的模式。另一方面,当判定为末端执行器T保持工件W时,控制部31将工件W的关注点W0设定为机械手4的指尖,将动作模式设定为执行将由末端执行器T保持的工件W组装至其他的工件G的第二任务的模式。当动作模式的设定完成时,控制部31使处理进入下一步骤S306。
(步骤S306)
在步骤S306中,控制部31作为状态获取部312进行动作,获取机械手4的当前的任务状态s(j)
如上所述,在本实施方式中,在末端执行器T未保持工件W的情况下,任务状态s由工件W相对于末端执行器T的相对坐标规定。另一方面,在末端执行器T保持工件W的情况下,任务状态s由其他的工件G相对于工件W的相对坐标规定。在本实施方式中,控制部31利用CAD数据320相对于通过摄像机S1得到的图像数据匹配各对象物。控制部31可以根据该匹配的结果获取当前的任务状态s(j)
在此,进一步使用图17,对获取当前的任务状态s(j)的方法的一例进行说明。图17示意性地例示出各对象物的位置关系的一例。在图17的例子中,将观测空间的原点设定于机械手4的基座部40。但是,原点的位置也可以不限定于这样的例子,可以根据实施方式适当地决定。摄像机S1相对于原点的齐次坐标(TC)可以通过以下的式2进行表达。
[式2]
Figure BDA0003464071080000541
Rrc表示从原点的坐标系观察摄像机S1的坐标系的旋转分量,trc表示平行移动分量。以下,为了便于说明,假定以原点的齐次坐标(TR)满足以下的式3的方式校准摄像机S1。
[式3]
Figure BDA0003464071080000542
I表示单位矩阵。在图17的例子中,末端执行器T的关注点T0相对于原点的相对坐标是末端执行器T的坐标(Tt)。工件W的关注点W0相对于原点的相对坐标是工件W的坐标(Tw)。其他的工件G的关注点G0相对于原点的相对坐标是其他的工件G的坐标(Tg)。控制部31可以利用CAD数据320相对于图像数据匹配各对象物的模型,从而得到各坐标(Tt、Tw、Tg)的值。
[式4]
s=Tw -1·Tt …(式4)
在末端执行器T未保持工件W的情况下,任务状态s与末端执行器T及工件W的各坐标(Tt、Tw)的关系可以通过上述式4进行表达。因此,控制部31可以将根据匹配的结果得到的末端执行器T及工件W的各坐标的当前值(Tt(j)、Tw(j))代入上述式4,并执行上述式4的运算处理,从而算出当前的任务状态s(j)
[式5]
s=Tg -1·Tw …(式5)
另一方面,在末端执行器T保持工件W的情况下,任务状态s与工件W及其他的工件G的各坐标(Tw、Tg)的关系可以通过上述式5进行表达。因此,控制部31可以将根据匹配的结果得到的工件W及其他的工件G的各坐标的当前值(Tw(j)、Tg(j))代入上述式5,并执行上述式5的运算处理,从而算出当前的任务状态s(j)。此外,各坐标(Tt、Tw、Tg)的表达可以适当地选择。各坐标(Tt、Tw、Tg)的表达例如可以使用齐次坐标系。以下也是同样的。
在摄像机S1未被校准的情况下,控制部31也可以在通过摄像机S1得到的图像数据内进一步算出原点的坐标(TR)。原点的检测中可以使用标记等的记号。即,可以通过在图像数据内匹配记号而算出原点的坐标(TR)。控制部31可以通过将算出的原点的坐标(TR)适用于上述各运算,从而算出当前的任务状态s(j)。在之后的步骤中,根据CAD数据320执行匹配的案例也可以同样地进行处理。
当获取了当前的任务状态s(j)时,控制部31使处理进入下一步骤S307。此外,执行步骤S306的处理的时刻也可以不限定于这样的例子。步骤S306的处理可以在执行后述步骤S308之前的任意时刻执行。例如,在上述步骤S304中也根据CAD数据320进行匹配的情况下,该步骤S306的处理可以与上述步骤S304的处理一同执行。
(步骤S307)。
在步骤S307中,控制部31根据获取的感测数据算出机械手4的指尖的坐标的当前值x(j)。在本实施方式中,指尖坐标的当前值x(j)的算出中可以利用通过摄像机S1、各编码器S2以及触觉传感器S3中的至少任意一个得到的感测数据。控制部31可以通过以下两个方法中的至少任意一个算出指尖坐标的当前值x(j)
(1)第一方法
如图16所示,在第一方法中,控制部31通过正运动学计算,从通过各编码器S2得到的关节空间中的机械手4的各关节的角度的当前值q(j)导出观测空间中的机械手4的指尖的坐标的当前值x(j)。以下,分为末端执行器T未保持工件W的情况和保持工件W的情况进行说明。
(1-1)未保持工件W的情况
在末端执行器T未保持工件W的情况下,末端执行器T的关注点T0被设定为指尖。该情况下,控制部31通过正运动学计算从各关节的角度的当前值q(j)算出设定的指尖坐标的当前值x(j),其中,该正运动学计算使用通过各关节的第一齐次变换矩阵导出的第一变换矩阵群
Figure BDA0003464071080000561
作为变换函数。
[式6]
xt=φ(q) …(式6)
[式7]
φ(q)=0T1·…·n-1Tn …(式7)
具体而言,通过正运动学,末端执行器T的关注点T0的坐标(xt)与各关节的角度(q)的关系可以通过上述式6进行表达。角度(q)是具有与关节数对应的维数的变量。另外,各关节的第一齐次变换矩阵(m-1Tm)与第一变换矩阵群
Figure BDA0003464071080000571
的关系由上述式7提供(m为0~n。n为关节数)。第一齐次变换矩阵表示从比对象的关节更靠跟前侧的坐标系观察到的对象的关节的坐标系的相对坐标,用于将坐标从跟前侧的坐标系变换为对象的关节的坐标系。
各关节的第一齐次变换矩阵的参数的值除了各关节的角度以外是已知的,在本实施方式中,包含在机器人数据321中。该参数可以利用DH(Denavit-Hartenberg:迪纳维特-哈坦伯格)表示法、修正DH表示法等公知的方法进行设定。控制部31通过参照机器人数据321导出上述式7所示的第一变换矩阵群
Figure BDA0003464071080000572
然后,控制部31如上述式6那样将各关节的角度的当前值q(j)代入导出的第一变换矩阵群
Figure BDA0003464071080000574
从而执行第一变换矩阵群
Figure BDA0003464071080000573
的运算处理。根据该正运动学计算的结果,控制部31可以算出末端执行器T(的关注点T0)的坐标的当前值xt(j)。控制部31获取算出的当前值xt(j)作为指尖坐标的当前值x(j)
(1-2)保持工件W的情况
另一方面,在末端执行器T保持工件W的情况下,工件W的关注点W0被设定为指尖。该情况下,首先,控制部31获取用于将坐标从末端执行器T的关注点T0的坐标系变换为工件W的关注点W0的坐标系的第二齐次变换矩阵(tTw)。
获取第二齐次变换矩阵(tTw)的方法也可以没有特别限定,可以根据实施方式适当地选择。例如,当末端执行器T保持有工件W时,存在工件W相对于末端执行器T的位置及姿态恒定的案例。因此,第二齐次变换矩阵(tTw)也可以利用常数提供。
或者,控制部31也可以根据在步骤S303中获取的感测数据导出第二齐次变换矩阵(tTw)。作为导出方法的一例,控制部31也可以利用CAD数据320相对于通过摄像机S1得到的图像数据匹配末端执行器T及工件W的模型。控制部31可以根据该匹配的结果得到末端执行器T的坐标(Tt)及工件W的坐标(Tw)。与上述同样地,若假定摄像机S1被校准,则控制部31可以通过以下的式8从末端执行器T的坐标(Tt)及工件W的坐标(Tw)算出第二齐次变换矩阵(tTw)。
[式8]
tTw=Tt -1·Tw …(式8)
根据CAD数据320的匹配也可以在通过上述正运动学计算算出的末端执行器T的关注点T0的坐标(xt)附近实施。在该匹配及上述正运动学计算分别正确的情况下,通过匹配得到的末端执行器T的坐标(Tt)与通过正运动学计算算出的坐标(xt)一致。因此,控制部31也可以将通过正运动学计算算出的坐标(xt)用作坐标(Tt)。由此,控制部31可以导出第二齐次变换矩阵(tTw)。此外,在上述步骤S306的上述式4的运算处理中也同样,可以代替通过匹配得到的末端执行器T的坐标的当前值(Tt(j))而使用通过正运动学计算算出的坐标的当前值(xt(j))。
另外,作为导出方法的其他例子,通过触觉传感器S3测定的作用于末端执行器T的力的分布可能依赖于工件W相对于末端执行器T的位置及姿态。因此,控制单元31可以根据通过触觉传感器S3得到的测定数据推测工件W相对于末端执行器T的相对坐标(相对位置及相对姿态)。控制部31可以根据该推测的结果导出第二齐次变换矩阵(tTw)。
此外,根据感测数据导出第二齐次变换矩阵(tTw)的方法也可以不限于上述解析方法。在第二齐次变换矩阵(tTw)的导出中,例如也可以与判定模型50、推理模型551等同样地利用通过机器学习掌握了从感测数据推测第二齐次变换矩阵(tTw)的能力的学习完毕的机器学习模型。该情况下,控制部31向学习完毕的机器学习模型提供获取的感测数据,执行学习完毕的机器学习模型的运算处理。由此,控制部31可以从学习完毕的机器学习模型获取与第二齐次变换矩阵(tTw)的推测结果对应的输出值。
接着,控制部31通过将得到的第二齐次变换矩阵(tTw)乘以第一变换矩阵群
Figure BDA0003464071080000591
而算出第二变换矩阵群
Figure BDA0003464071080000592
第二变换矩阵群可以通过以下的式9进行表达。此外,第一齐次变换矩阵是第一变换式的一例,第二齐次变换矩阵是第二变换式的一例。第一变换矩阵群
Figure BDA0003464071080000593
是第一变换式群的一例,第二变换矩阵群
Figure BDA0003464071080000594
是第二变换式群的一例。各转换式的形式只要能够利用于指尖坐标的运算,便也可以没有特别限定。例如,各变换式既可以利用齐次坐标系以外的形式的变换矩阵进行表达,或者也可以利用矩阵以外的形式的数学式进行表达。
[式9]
φ(q)·tTw=xt·tTw …(式9)
控制部31通过将算出的第二变换矩阵群用作变换函数的正运动学计算,从各关节的角度的当前值q(j)算出设定的指尖坐标的当前值x(j)。即,控制部31将各关节的角度的当前值q(j)代入第二变换矩阵群
Figure BDA0003464071080000595
执行第二变换矩阵群
Figure BDA0003464071080000596
的运算处理。根据该正运动学计算的结果,控制部31可以算出工件W(的关注点W0)的坐标的当前值。控制部31获取算出的工件W的坐标的当前值作为指尖坐标的当前值x(j)
此外,在上述中,通过从感测数据导出第二齐次变换矩阵(tTw),即使末端执行器T中的工件W的保持状态发生变动,也可以获取反映了该变动的第二齐次变换矩阵(tTw)。由此,即使在末端执行器T中的工件W的保持状态可能发生变动的情况下,也可以适当地算出工件W的坐标的当前值、即机械手4的指尖坐标的当前值。
(2)第二方法
在第二方法中,控制部31通过利用CAD数据320相对于通过摄像机S1得到的图像数据匹配各对象物的模型,从而导出机械手4的指尖的坐标的当前值x(j)。该情况下,控制部31也可以从通过上述步骤S306在任务空间中获取的当前的任务状态s(j)导出机械手4的指尖的坐标的当前值x(j)
[式10]
x=φ(s)=Tw·s …(式10)
根据图17所示的各对象物的位置关系,末端执行器T未保持工件W的情况下的任务状态s与指尖的坐标x之间的关系可以通过上述式10进行表达。该情况下,从任务空间向观测空间的变换函数(ψ)通过工件W的坐标(Tw)提供。控制部31可以将通过上述步骤S306获取的当前的任务状态s(j)及通过匹配得到的工件W的坐标的当前值(Tw(j))代入式10,并执行上述式10的运算处理,从而算出机械手4的指尖的坐标的当前值x(j)
[式11]
x=φ(s)=Tg·s …(式11)
同样,末端执行器T保持工件W的情况下的任务状态s与指尖的坐标x之间的关系可以通过上述式11进行表达。该情况下,从任务空间向观测空间的变换函数(ψ)通过其他的工件G的坐标(Tg)提供。控制部31可以将通过上述步骤S306获取的当前的任务状态s(j)及通过匹配得到的其他的工件G的坐标的当前值(Tg(j))代入式11,并执行上述式11的运算处理,从而算出机械手4的指尖的坐标的当前值x(j)
此外,通过使用CAD数据320进行匹配而导出机械手4的指尖的坐标的当前值x(j)的方法也可以不限定于这样的例子。在末端执行器T未保持工件W的情况下,控制部31也可以通过上述匹配算出末端执行器T的坐标的当前值(Tt(j)),并获取算出的当前值(Tt(j))作为指尖的坐标的当前值x(j)。同样,在末端执行器T保持工件W的情况下,控制部31也可以通过上述匹配算出工件W的坐标的当前值(Tw(j)),并获取算出的当前值(Tw(j))作为指尖的坐标的当前值x(j)。即,控制部31也可以通过上述匹配直接导出机械手4的指尖的坐标的当前值x(j)
(3)小结
在本实施方式中,控制部31可以通过采用上述两个方法中的至少任意一个,从而算出机械手4的指尖的坐标的当前值x(j)。当算出了机械手4的指尖的坐标的当前值x(j)时,控制部31使处理进入下一步骤S308。此外,执行步骤S307的处理的时刻也可以不限定于这样的例子。步骤S307的处理可以在执行后述步骤S310的处理之前的任意时刻执行。例如,步骤S307的处理可以在上述步骤S306之前执行。另外,例如,在使用CAD数据320进行匹配的案例中,步骤S307的处理可以与上述步骤S306或步骤S304的处理一同执行。
(步骤S308)
在步骤S308中,控制部31作为行动决定部313进行动作,以接近最终目标的任务状态sg的方式,相对于获取的当前的任务状态s(j)而决定接下来转换的目标的任务状态ss(j)。在本实施方式中,控制部31参照推理模型数据325,并利用通过上述步骤S210的处理生成的推理模型55相对于当前的任务状态s(j)来决定接下来转换的目标的任务状态ss(j)
用于推理接下来转换的目标的任务状态ss(j)的推理模型55的运算处理可以根据该推理模型55的构成适当地执行。在推理模型55通过上述第一方法生成,推理模型55由函数式构成的情况下,控制部31将当前的任务状态s(j)及最终目标的任务状态sg代入函数式,并执行该函数式的运算处理。在推理模型55由神经网络构成的情况下,控制部31将当前的任务状态s(j)及最终目标的任务状态sg输入至输入层,并从输入侧起依次进行各层中包含的各神经元的点火判定。在推理模型55由数据表构成的情况下,控制部31将当前的任务状态s(j)及最终目标的任务状态sg与数据表进行对照。由此,作为推理模型55的输出,控制部31获取接下来转换的目标的任务状态ss(j)的推理结果。控制部31可以根据该推理结果决定接下来转换的目标的任务状态ss(j)
另外,在推理模型55通过上述第二方法生成、即推理模型55由势场构成的情况下,控制部31参照生成的势场中的、与当前的任务状态s(j)对应的坐标处设定的位势的值。然后,控制部31根据对与当前的任务状态s(j)对应的坐标设定的位势的梯度决定接下来转换的目标的任务状态ss(j)。具体而言,控制部31以向位势的梯度高的一方转换(例如,向梯度最高的一方转换规定距离)的方式决定目标的任务状态ss(j)
要决定的目标的任务状态的数量也可以不限于一个。在步骤S308中,控制部31也可以将已决定的目标的任务状态用作当前的任务状态,决定接下来进一步转换的目标的任务状态。控制部31也可以通过反复进行该处理而多次决定目标的任务状态。当决定了接下来转换的目标的任务状态ss(j)时,控制部31使处理进入下一步骤S309。
(步骤S309)
在步骤S309中,控制部31作为指令决定部315进行动作,根据决定的目标的任务状态ss(j)算出指尖的坐标的目标值xs(j)。如图16所示,控制部31可以通过利用上述变换函数(ψ),从而将任务空间中的目标的任务状态ss(j)变换为观测空间中的指尖的坐标的目标值xs(j)
即,末端执行器T未保持工件W的情况下从任务空间向观测空间的变换函数(ψ)通过上述式10提供。控制部31可以将决定的目标的任务状态ss(j)代入上述式10,并执行上述式10的运算处理,从而算出指尖的坐标的目标值xs(j)。另一方面,末端执行器T保持工件W的情况下从任务空间向观测空间的变换函数(ψ)通过上述式11提供。控制部31可以将决定的目标的任务状态ss(j)代入上述式11,并执行上述式11的运算处理,从而算出指尖的坐标的目标值xs(j)。当算出了指尖的坐标的目标值xs(j)时,控制部31使处理进入下一步骤S310。
(步骤S310)
在步骤S310中,控制部31作为指令决定部315进行动作,根据指尖坐标的当前值x(j)及指尖坐标的目标值xs(j)决定指尖坐标的变化量(Δx(j))。具体而言,如图16所示,控制部31根据指尖坐标的当前值(x(j))与目标值(xs(j))的偏差决定指尖坐标的变化量(Δx(j))。例如,指尖坐标的当前值及目标值的偏差(xs-x)与变化量(Δx)的关系可以通过以下的式12提供。此外,指尖坐标的变化量(Δx)是指尖坐标的当前值与目标值的差分的一例。
[式12]
Δx=α×(xs-x) …(式12)
α为任意的系数。例如,α的值可以在1以下且超过0的范围内适当地决定。α也可以被省略。控制部31可以将通过步骤S307及步骤S309得到的指尖坐标的当前值x(j)及指尖坐标的目标值xs(j)代入上述式12,并执行上述式12的运算处理,从而决定指尖坐标的变化量(Δx(j))。当决定了指尖坐标的变化量(Δx(j))时,控制部31使处理进入下一步骤S311。
(步骤S311)
在步骤S311中,控制部31作为指令决定部315进行动作,通过使用了上述正运动学计算中的变换函数的逆函数的逆运动学计算,根据已决定的指尖坐标的变化量(Δx(j))算出各关节的角度的变化量(Δq(j))。具体而言,指尖坐标的变化量(Δx)和各关节的角度的变化量(Δq)可以通过以下的式13进行表达。
[式13]
Figure BDA0003464071080000631
J是从上述正运动学计算中的变换函数导出的雅可比矩阵。ji表示第i个关节的矩阵分量,Δqi表示第i个关节的变化量。
在此,进一步使用图18A及图18B,对雅可比矩阵的计算方法的一例进行说明。图18A示意性地例示出末端执行器T未保持工件W时的各关节与指尖的关系的一例。图18B示意性地例示出末端执行器T保持工件W时的各关节与指尖的关系的一例。
如图18A所示,当末端执行器T未保持工件W时,雅可比矩阵的各关节的分量根据各关节与末端执行器T的位置关系算出。例如,控制部31可以通过以下的式14算出各关节的分量。另一方面,如图18B所示,当末端执行器T保持工件W时,雅可比矩阵的各关节的分量根据各关节与工件W的位置关系算出。例如,控制部31可以通过以下的式15算出各关节的分量。
[式14]
Figure BDA0003464071080000641
[式15]
Figure BDA0003464071080000642
zi表示第i个关节的齐次坐标中的旋转轴的分量,ai表示第i个关节的齐次坐标中的平行移动分量。zi及ai从第i个关节的第一齐次变换矩阵提取。at表示末端执行器T的齐次坐标中的平行移动分量。aw表示工件W的齐次坐标中的平行移动分量。at从末端执行器T的坐标(Tt)提取。aw从工件W的坐标(Tw)提取。雅可比矩阵的各分量ji表示各关节的第一齐次变换矩阵的微分分量。
控制部31按照上述式14及式15,并根据动作模式算出雅可比矩阵。此外,在本实施方式中,在末端执行器T未保持工件W的情况与末端执行器T保持工件W的情况之间,只是在雅可比矩阵的各分量中将末端执行器T的分量(at)与工件W的分量(aw)调换。因此,控制部31可以通过简单的计算处理算出各个情况下的雅可比矩阵。
接着,控制部31算出所算出的雅可比矩阵的逆矩阵(J-1)。控制部31使用算出的逆矩阵(J-1)执行逆运动学计算。具体而言,各变化量(Δx、Δq)与逆矩阵(J-1)的关系根据上述式13而被导出为以下的式16那样。
[式16]
Δq=J-1·Δx …(式160
控制部31可以通过将算出的逆矩阵(J-1)及指尖坐标的变化量(Δx(j))代入式16,并执行上述式16的运算处理,从而算出各关节的角度的变化量(Δq(j))。当算出了各关节的角度的变化量(Δq(j))时,控制部31使处理进入下一步骤S312。
(步骤S312)
在步骤S312中,控制部31作为指令决定部315进行动作,根据算出的各关节的角度的变化量决定相对于各关节的指令值。指令值的决定方法例如可以采用PID(Proportional-Integral-Differential:比例积分微分)控制、PI控制等公知的方法。相对于各关节的指令值是向机器人装置提供的控制指令的一例。在本实施方式中,控制部31可以通过步骤S309~步骤S312的处理决定向机械手4提供以使机械手4的任务状态从当前的任务状态s(j)变化为目标的任务状态ss(j)的控制指令。当决定了控制指令时,控制部31使处理进入下一步骤S313。
(步骤S313)
在步骤S313中,控制部31作为驱动部316进行动作,通过向机械手4提供决定的控制指令,从而驱动机械手4。在本实施方式中,控制部31根据决定的各指令值驱动机械手4的各关节。此外,驱动方法也可以没有特别限定,可以根据实施方式适当地选择。例如,控制部31也可以直接驱动机械手4的各关节。或者,机械手4也可以具备控制器(未图示)。该情况下,控制部31也可以通过向控制器提供相对于各关节的指令值,从而间接地驱动机械手4的各关节。当按照决定的控制指令驱动了机械手4时,控制部31使处理进入下一步骤S314。
(步骤S314~步骤S316)
步骤S314~步骤S316的处理除了循环从(j)进入(j+1)这一点以外,与上述步骤S303、步骤S306以及步骤S307的处理相同。即,在步骤S314中,控制部31从各传感器获取感测数据。在步骤S315中,控制部31作为状态获取部312进行动作,获取机械手4的当前的任务状态s(j+1)。在步骤S316中,控制部31根据获取的感测数据算出机械手4的指尖的坐标的当前值x(j+1)。当算出了指尖坐标的当前值x(j+1)时,控制部31使处理进入下一步骤S317。
(步骤S317)
在步骤S317中,控制部31判定步骤S313的驱动的是否使机械手4的任务状态转换到了目标的任务状态ss(j)
判定方法也可以没有特别限定,可以根据实施方式适当地选择。例如,如图16所示,驱动后的各关节的角度(q(j+1))与驱动前的各关节的角度(q(j))的关系可以通过以下的式17进行表达。
[式17]
q(j+1)=q(j)+Δq(j) …(式17)
因此,控制部31也可以判定步骤S314中通过各编码器S2得到的各关节的角度的值是否与驱动前通过各编码器S2得到的各关节的角度的值(q(j))和步骤S311中算出的变化量(Δq(j))之和一致。当驱动后的各关节的角度与驱动前的各关节的角度和算出的变化量之和(q(j)+Δq(j))一致时,控制部31可以判定为机械手4的任务状态转换到了目标的任务状态ss(j)。另一方面,否则,控制部31可以判定为机械手4的任务状态并未转换到目标的任务状态ss(j)
另外,例如,与正向运动学计算中的变换函数同样地,变换函数(ψ)也可以导出雅可比矩阵Jψ。雅可比矩阵Jψ表示变换函数(ψ)的微分分量。可以根据导出的雅可比矩阵Jψ算出逆矩阵(Jψ -1)。指尖坐标的变化量(Δx)及任务状态的变化量(Δs)与逆矩阵(Jψ -1)的关系可以通过以下的式18进行表达。
[式18]
Δs=Jφ -1·Δx …(式18)
控制部31可以将算出的逆矩阵(Jψ -1)及指尖坐标的变化量(Δx(j))代入式18,并执行上述式18的运算处理,从而算出任务状态的变化量(Δs(j))。驱动后的任务状态s(j+1)与驱动前的任务状态s(j)的关系与上述式17同样地可以通过以下的式19进行表达。
[式19]
s(j+1)=s(j)+Δs(j) …(式19)
因此,控制部31也可以判定通过步骤S315在驱动后得到的当前的任务状态是否与通过步骤S306在驱动前得到的当前的任务状态s(j)和通过上述算出的变化量(Δs(j))之和一致。当驱动后得到的当前的任务状态与驱动前得到的当前的任务状态和算出的变化量之和(s(j)+Δs(j))一致时,控制部31可以判定为机械手4的任务状态转换到了目标的任务状态ss(j)。另一方面,否则,控制部31可以判定为机械手4的任务状态并未转换到目标的任务状态ss(j)。此外,在本实施方式中,任务空间由两个对象物间的相对坐标规定,因此任务空间及观测空间能够以相互共用的维度进行表达。因此,根据情况,也可以将式18的逆矩阵(Jψ -1)替换为单位矩阵,将指尖坐标的变化量(Δx)直接作为任务状态的变化量(Δs)进行处理。作为一例,当根据从其他的工件G观察到的工件W的相对坐标规定了任务状态时,式18的逆矩阵(Jψ -1)可以替换为单位矩阵。
或者,控制部31也可以判定通过步骤S315得到的当前的任务状态是否与通过步骤S308决定的目标的任务状态ss(j)一致。当得到的当前的任务状态与目标的任务状态ss(j)一致时,控制部31可以判定为机械手4的任务状态转换到了目标的任务状态ss(j)。另一方面,否则,控制部31可以判定为机械手4的任务状态并未转换到目标的任务状态ss(j)
另外,例如,驱动后的指尖坐标的当前值(x(j+1))与驱动前的指尖坐标的当前值(x(j))的关系可以与上述式17同样地通过以下的式20进行表达。
[式20]
x(j+1)=x(j)+Δx(j) ···(式20)
因此,控制部31也可以判定通过步骤S316算出的驱动后的指尖坐标的当前值是否与通过步骤S307算出的驱动前的指尖坐标的当前值(x(j))和通过步骤S310决定的变化量(Δx(j))之和一致。当驱动后的指尖坐标的当前值与驱动前的指尖坐标的当前值和算出的变化量之和(x(j)+Δx(j))一致时,控制部31可以判定为机械手4的任务状态转换到了目标的任务状态ss(j)。另一方面,否则,控制部31可以判定为机械手4的任务状态并未转换到目标的任务状态ss(j)
或者,控制部31也可以判定通过步骤S316算出的指尖坐标的当前值是否与通过步骤S309算出的指尖坐标的目标值(xs(j))一致。当驱动后的指尖坐标的当前值与驱动前算出的指尖坐标的目标值(xs(j))一致时,控制部31可以判定为机械手4的任务状态转换到了目标的任务状态ss(j)。另一方面,否则,控制部31可以判定为机械手4的任务状态并未转换到目标的任务状态ss(j)
控制部31可以通过以上任意一种方法判定机械手4的任务状态是否转换到了目标的任务状态ss(j)。此外,在以上的各判定中,“一致”除了两者的值完全一致之外,还可以包括两者的值的差分在阈值(允许误差)以下的情况。当判定为机械手4的任务状态转换到了目标的任务状态ss(j)时,控制部31使处理进入下一步骤S318。另一方面,否则,控制部31返回到步骤S310,再次执行机械手4的驱动。此时,控制部31也可以利用步骤S316中算出的指尖坐标的当前值作为当前值x(j),执行步骤S310及其之后的处理。
(步骤S318)
在步骤S318中,控制部31判定是否可以实现最终目标的任务状态sg
判定方法也可以没有特别限定,可以根据实施方式适当地选择。例如,控制部31也可以判定通过步骤S315得到的当前的任务状态s(j+1)是否与最终目标的任务状态sg一致。当当前的任务状态s(j+1)与最终目标的任务状态sg一致时,控制部31判定为可以实现最终目标的任务状态sg。另一方面,否则,控制部31判定为无法实现最终目标的任务状态sg。与上述同样地,该判定中的“一致”也除了两者的值完全一致之外,还可以包括两者的值的差分在阈值(允许误差)以下的情况。
当判定为可以实现最终目标的任务状态sg时,控制部31结束与机械手4的动作控制相关的一系列处理。另一方面,当判定为无法实现最终目标的任务状态sg时,控制部31使处理返回到步骤S308。然后,控制部31利用步骤S315及步骤S316的结果再次执行步骤S308~步骤S313的处理。控制部31通过反复进行上述一系列处理,从而实现最终目标的任务状态sg。由此,本实施方式涉及的控制装置3可以控制机械手4的动作以执行所指定的任务。
此外,判定为无法实现最终目标的任务状态sg时的分支目标也可以不限于上述步骤S308。例如,在使机械手4执行由多个任务构成的一系列任务的情况下,可以在最终目标的任务状态sg中设定最后执行的任务中的最终目标的任务状态。在本实施方式中,在执行通过末端执行器T保持工件W并将保持的工件W组装至其他的工件G的任务的情况下,最终目标的任务状态sg可以采用将工件W组装至其他的工件G的状态。该情况下,一系列任务的执行可以从最初的任务的开始点开始。与此相应地,判定为无法实现最终目标的任务状态sg时的分支目标可以不是上述步骤S308,而是上述步骤S303。由此,控制部31可以通过步骤S304及步骤S305的处理,一边确认动作模式一边驱动机械手4。其结果是,可以在顺畅地进行各任务的切换的同时执行一系列任务。在本实施方式中,在通过末端执行器T保持了工件W时,可以将动作模式顺畅地切换为将工件W搬运至其他的工件G的任务。
[特征]
如上所述,本实施方式涉及的模型生成装置1通过上述步骤S101及步骤S102的处理实施机器学习,从而生成用于判定在对象的位置关系中两个对象物是否接触的判定模型50。根据通过机器学习生成的学习完毕的判定模型50,即使以连续值提供对象的位置关系,也可以在不伴随判定模型50的数据量大幅增加的情况下,判定在该位置关系下两个对象物是否相互接触。因此,根据本实施方式,可以大幅减少表达两个对象物接触的边界的信息的数据量。
另外,在本实施方式中,通过学习完毕的判定模型50判定是否产生接触的两个对象物中的至少任意一个是通过机械手4的动作而移动的对象。因此,在规定机械手4的动作的场景下,可以大幅减少表达两个对象物接触的边界的信息的数据量。在控制装置3中,即使RAM、ROM以及存储部32的容量比较小,也可以利用学习完毕的判定模型50,由此,可以以指尖不会无用地接触目标物的方式适当地驱动机械手4。
另外,在本实施方式中,通过步骤S201~步骤S210的处理,并利用学习完毕的判定模型50生成用于以使第一对象物不与第二对象物接触的方式决定目标的任务状态的推理模型55。在控制机械手4的动作的场景下,在步骤S308中,利用生成的推理模型55决定目标的任务状态。由此,在控制机械手4的动作的场景下,即使不伴随学习完毕的判定模型50的运算处理,也可以以使第一对象物不与第二对象物接触、即机械手4的指尖不会无用地接触目标物的方式决定目标的任务状态。因此,可以降低机械手4的动作控制的运算成本。
另外,在本实施方式中,通过机械手4执行的任务的状态通过末端执行器T(末端执行器)、工件W、其他的工件G等的对象物之间的相对位置关系进行表达。由此,控制指令不是直接与任务相关联,而是与对象物之间的相对位置关系的变化量相关联。即,可以不依赖于任务的内容地相对于使对象物的相对位置关系变化而生成或示教向机械手4提供的时间序列的控制指令。例如,即使工件W的坐标发生变化,在上述步骤S306及步骤S315中掌握末端执行器T与工件W之间的位置关系(任务状态)时,也考虑到该工件W的坐标的变化。因此,机械手4可以根据学习结果通过末端执行器T适当地保持工件W。因此,根据本实施方式,可以提高执行掌握的任务的能力的通用性,由此,可以降低向机械手4示教任务所花费的成本。
另外,在本实施方式中,对象物之间的位置关系通过相对坐标进行表达。由此,可以适当且清楚地表达两个对象物之间的位置关系。因此,可以容易地掌握两个对象物之间的位置关系(在控制的场景中为任务状态)。
另外,在本实施方式中,作为在上述步骤S307及步骤S316中算出机械手4的指尖的坐标的方法,可以采用基于正运动学计算的第一方法。在第一方法中,在末端执行器T未保持工件W的情况下,将末端执行器T设定为指尖,在正运动学计算中使用通过各关节(关节部41~46)的第一齐次变换矩阵导出的第一变换矩阵群
Figure BDA0003464071080000711
作为变换函数。另一方面,在末端执行器T保持工件W的情况下,工件W被设定为指尖,正运动学计算中使用的变换函数被扩展。具体而言,在正运动学计算中,使用通过将用于将坐标从末端执行器T的坐标系变换为工件W的坐标系的第二齐次变换矩阵(tTw)乘以第一变换矩阵群
Figure BDA0003464071080000712
而得到的第二变换矩阵群
Figure BDA0003464071080000713
Figure BDA0003464071080000714
作为变换函数。即,在本实施方式中,当通过末端执行器T保持了工件W时,将运动学的基准点从末端执行器T变更为工件W。
由此,在末端执行器T未保持工件W的情况和保持工件W的情况下,可以大致同样地处理步骤S307及步骤S316的正运动学计算以及步骤S311的逆运动学计算。也就是说,可以将通过末端执行器T保持工件W的第一任务及将通过末端执行器T保持的工件W组装至其他的工件G的第二任务作为“使机械手4的指尖相对于目标物移动的”共同的任务进行处理。因此,根据本实施方式,可以不区分末端执行器T未保持工件W的情况和末端执行器T保持工件W的情况而通用且统一地规定控制处理。因此,可以简化控制处理,由此,可以降低生成或者示教机械手4的动作的成本。
§4变形例
以上,对本发明的实施方式详细进行了说明,但上述说明在所有方面均仅为本发明的例示。毋庸置疑,可以在不脱离本发明的范围的情况下进行各种改良或变形。例如,能够进行如下这样的变更。此外,以下针对与上述实施方式相同的构成要素使用相同的附图标记,对于与上述实施方式相同的点适当地省略了说明。以下的变形例能够适当地进行组合。
<4.1>
在上述实施方式中,末端执行器T、工件W以及其他的工件G分别为对象物的一例。但是,作为判定是否接触的对象的对象物也可以不限定于这样的例子。对象物也可以包括在实际空间或虚拟空间内能够进行处理的所有种类的物体。对象物除了上述末端执行器T、工件W以及其他的工件G以外,例如也可以是障碍物等能够与机器人装置的动作相关联的物体。
此外,一个对象物既可以由一个物体构成,或者也可以由多个物体构成。在存在三个以上的物体的情况下,判定模型50也可以构成为将多个物体视为一个对象物,判定在多个物体与其他物体之间是否产生接触。或者,判定模型50也可以构成为将各个物体视为一个对象物,判定在各个物体间是否产生接触。
另外,在上述实施方式中,两个对象物中的至少任意一个是通过机器人装置的动作进行移动的对象。通过机器人装置的动作进行移动的对象物例如可以为末端执行器等的机器人装置的构成要素,也可以为机器人装置自身,例如也可以为通过末端执行器保持的工件等机器人装置的构成要素以外的物体。但是,对象物的种类也可以不限定于这样的例子。两个对象物也可以都是通过机器人装置的动作进行移动的对象以外的物体。
另外,在上述实施方式中,机械手4为机器人装置的一例。然而,机器人装置的种类也可以不限定于这样的例子。除了机械手4等的工业用机器人以外,机器人装置例如也可以为能够自动移动的移动体、自主型机器人等。能够自动地移动的移动体例如可以包括无人机、构成为可自动驾驶的车辆、移动机器人等。另外,在上述实施方式中,机械手4是垂直多关节型机器人。然而,工业用机器人的种类也可以不限定于这样的例子。工业用机器人除了上述垂直多关节机器人以外,还可以包括SCARA机器人、并联连杆机器人、正交机器人、协作机器人等。
另外,在上述实施方式中,通过末端执行器T保持工件W的作业以及将保持的工件W组装至其他的工件G的作业分别为机器人装置执行的任务的一例。任务是使机器人装置执行的作业,其种类可以没有特别限定,可以根据实施方式适当地选择。任务除了上述工件W的保持及工件W的搬运之外,例如也可以为部件嵌合、螺钉旋转等。任务例如也可以为工件的保持、工件的释放等简单的工作。任务例如可以为保持对象的工件并将对象的工件配置于指定的坐标(位置及姿态)等对象工件的坐标的变更。任务例如可以是使用喷雾器作为末端执行器,通过该喷雾器从指定的相对坐标向工件喷雾涂料。另外,任务例如也可以是将安装于末端执行器的摄像机配置于指定的坐标。任务可以预先提供,也可以通过操作者的指定提供。
另外,在上述实施方式中,作为观测执行任务的环境的传感器,使用摄像机S1、编码器S2、触觉传感器S3。摄像机S1及触觉传感器S3是观测工件W相对于末端执行器T的状态的传感器的一例。但是,可利用的传感器的种类也可以不限定于这样的例子。除了摄像机、编码器以及触觉传感器之外,传感器例如可以使用接近传感器、力觉传感器、扭矩传感器、压力传感器等。接近传感器可以配置于能够观测末端执行器T的周围的范围,用于观测有无接近末端执行器T的物体。另外,力觉传感器、扭矩传感器以及压力传感器也可以与上述触觉传感器S3同样地配置于能够测定作用于末端执行器T的力的范围,用于观测作用于末端执行器T的力。接近传感器、力觉传感器、扭矩传感器以及压力传感器中的至少任意一个可以用作观测工件W相对于末端执行器T的状态的传感器。另外,摄像机S1也可以构成为能够通过机械手4或其他的机器人装置任意地移动。该情况下,摄像机S1的坐标可以被适当地校准。由此,可以任意地控制通过摄像机S1观测的范围。
另外,在上述实施方式中,可以省略根据是否保持工件W设定机械手4的指尖。该情况下,机械手4的指尖可以被适当地设定。例如,无论是否保持工件W,都可以将末端执行器T设定为机械手4的指尖。
<4.2>
在上述实施方式中,控制装置3在生成推理模型55时利用学习完毕的判定模型50。然而,学习完毕的判定模型50的利用方式也可以不限定于这样的例子。控制装置3在控制机械手4的动作时,也可以利用学习完毕的判定模型50。
图19例示出本变形例涉及的与目标的任务状态的决定相关的子例程的处理顺序的一例。上述步骤S308的目标的任务状态的决定处理也可以替换为图19所例示的子例程的处理。
在步骤S501中,控制部31作为行动决定部313进行动作,以接近最终目标的任务状态的方式相对于获取的当前的任务状态而决定接下来转换的目标的任务状态。步骤S501也可以与上述步骤S308同样地进行处理。
在步骤S502中,控制部31作为接触判定部314进行动作,利用学习完毕的判定模型50判定在决定的目标的任务状态下两个对象物是否相互接触。步骤S502可以与上述步骤S203及步骤S206同样地进行处理。
在步骤S503中,控制部31根据步骤S502的判定结果决定处理的分支目标。当步骤S502中判定为在目标的任务状态下两个对象物相互接触时,控制部31使处理返回到步骤S501,再次决定目标的任务状态。另一方面,当判定为在目标的任务状态下两个对象物相互未接触时,控制部31执行下一步骤S309的处理。由此,控制装置3在控制机械手4的动作时,可以利用学习完毕的判定模型50决定机械手4的动作,以防第一对象物与第二对象物无用地接触。
<4.3>
在上述实施方式中,控制装置3在上述步骤S308中利用推理模型55决定目标的任务状态。然而,目标的任务状态的决定方法也可以不限定于这样的例子。目标的任务状态的决定中也可以不利用推理模型55。例如,在上述步骤S308中,可以与上述步骤S205同样地决定目标的任务状态。作为一例,控制部31也可以通过路径规划等公知的方法决定目标的任务状态。另外,例如,也可以预先提供目标的任务状态的序列。该情况下,在上述步骤S308中,控制部31也可以参照表示该序列的数据,从而决定接下来转换的目标的任务状态。上述步骤S501也是同样的。
另外,在上述实施方式中,为了收集学习数据223而利用了学习完毕的判定模型50的判定结果。然而,学习数据223的收集也可以不限定于这样的例子。例如,也可以通过利用各对象物的实物等方式收集学习数据223,而不利用学习完毕的判定模型50。由此,推理模型55可以不利用学习完毕的判定模型50而生成。
另外,在上述实施方式中,可以从控制装置3的处理顺序中省略生成推理模型55的一系列处理(步骤S201~步骤S211)。该情况下,可以从控制装置3的软件构成中省略数据收集部317、模型生成部318以及保存处理部319。进而,与推理模型55的生成相关的信息处理以及与机械手4的动作控制相关的信息处理也可以由不同的计算机执行。也可以省略与机械手4的动作控制相关的软件模块,通过提取与推理模型55的生成相关的软件模块而构建新的模型生成装置。
图20示意性地例示出本实施方式涉及的模型生成装置3A的软件构成的一例。模型生成装置3A的硬件构成可以与上述实施方式涉及的控制装置3相同。模型生成装置3A作为软件模块具备接触判定部314、数据收集部317、模型生成部318以及保存处理部319的计算机进行动作。由此,模型生成装置3A可以执行上述步骤S201~步骤S211的处理,生成推理模型55。控制程序83中提供与该推理模型55的生成相关的命令的程序部分也可以被称为模型生成程序。
此外,在上述实施方式及本变形例中,步骤S201~步骤S209为止的与学习数据323的收集相关的处理也可以由其他的计算机进行。该情况下,上述实施方式涉及的控制装置3及模型生成装置3A也可以获取由其他的计算机生成的学习数据323,并使用获取的学习数据323执行步骤S210及步骤S211。
<4.4>
在上述实施方式中,两个对象物之间的位置关系通过相对坐标进行表达。但是,位置关系的表达方法也可以不限定于这样的例子。例如,也可以通过两个对象物各自的绝对坐标表达位置关系。该情况下,可以将各绝对坐标转换为相对坐标,并执行上述各信息处理。
<4.5>
另外,在上述实施方式中,控制装置3在步骤S307及步骤S309~步骤S312中,根据机械手4的指尖坐标的目标值进行解析而决定向各关节提供的指令值(控制指令)。但是,控制指令的决定方法也可以不限定于这样的例子。可以适当地决定向机器人装置提供的控制指令,以使机器人装置的任务状态从当前的任务状态变化为目标的任务状态。
例如,控制指令可以根据当前的任务状态及目标的任务状态直接进行决定。作为一例,控制指令的决定中可以利用数据表等的参考数据。该情况下,控制部31可以通过将当前的任务状态及目标的任务状态与参考数据进行对照,从而从参考数据获取控制指令。作为其他的例子,例如,也可以与判定模型50、推理模型551等同样地,利用通过机器学习掌握了根据当前的任务状态及目标的任务状态决定控制指令的能力的学习完毕的机器学习模型。该情况下,控制部31向学习完毕的机器学习模型提供当前的任务状态及目标的任务状态,执行学习完毕的机器学习模型的运算处理。由此,控制部31可以从学习完毕的机器学习模型获取与控制指令的决定结果对应的输出值。此外,在上述实施方式中,控制指令由相对于各关节的角度的指令值构成。但是,控制指令的构成也可以不限定于这样的例子,可以根据机器人装置的种类等适当地决定。
另外,在上述实施方式中,例如,在预先设定了最终目标的任务状态的情况等通过其他的方法设定最终目标的任务状态的情况下,可以从控制装置3的处理顺序省略步骤S301及步骤S302的处理。该情况下,可以从控制装置3的软件构成省略目标设定部311。
<4.6>
在上述实施方式中,判定模型50由全连接型神经网络构成。但是,构成判定模型50的神经网络的种类也可以不限定于这样的例子。判定模型50除了全连接型神经网络以外,例如也可以由卷积神经网络、递归型神经网络等构成。另外,判定模型50也可以由多种神经网络的组合构成。
另外,构成判定模型50的机器学习模型的种类也可以不限于神经网络,可以根据实施方式适当选择。判定模型50中除了神经网络以外,例如也可以采用支持向量机、回归模型、决策树等的机器学习模型。两个对象物是否相互接触可以以实际空间或虚拟空间为对象进行判定。
在上述实施方式中,推理模型55可以按机械手4执行的任务的种类进行准备。即,可以准备分别被训练为推理不同任务中的目标的任务状态的多个推理模型55。该情况下,控制装置3的控制部31也可以根据上述步骤S305中设定的动作模式,从所准备的多个推理模型55中选择用于推理的推理模型55。由此,控制部31也可以根据动作模式切换推理模型55。或者,推理模型55例如也可以构成为:还受理对象物的种类、对象物的识别符、任务的识别符、任务的种类等表示任务的条件的信息的输入,并推理与所输入的条件对应的任务中的目标的任务状态。该情况下,控制部31也可以在决定接下来转换的目标的任务状态时,进一步将表示上述步骤S305中设定的动作模式的信息输入推理模型55,并执行上述步骤S308的运算处理。
另外,在上述实施方式中,相对于判定模型50及推理模型55的输入及输出的形式也可以没有特别限定,可以根据实施方式适当地决定。例如,判定模型50也可以构成为还受理表示任务状态的信息以外的信息的输入。同样地,推理模型55也可以构成为还受理当前的任务状态及最终目标的任务状态以外的信息的输入。在最终目标的任务状态恒定的情况下,可以从推理模型55的输入省略表示最终目标的任务状态的信息。判定模型50及推理模型55的输出形式也可以为识别及回归中的任意一种。
附图标记说明
1…模型生成装置、
11…控制部、12…存储部、13…通信接口、
14…外部接口、
15…输入装置、16…输出装置、17…驱动器、
91…存储介质、81…模型生成程序、
111…数据获取部、112…机器学习部、
113…保存处理部、
120…CAD数据、
121…学习数据集、
122…训练数据、123…正解数据、
125…学习结果数据、
3…控制装置、
31…控制部、32…存储部、33…通信接口、
34…外部接口、
35…输入装置、36…输出装置、37…驱动器、
93…存储介质、83…控制程序、
311…目标设定部、312…状态获取部、
313…行动决定部、314…接触判定部、
315…指令决定部、316…驱动部、
317…数据收集部、318…模型生成部、
319…保存处理部、
320…CAD数据、321…机器人数据、
323…学习数据、325…推理模型数据、
4…机械手(机器人装置)、
40…基座部、
41~46…关节部、491~494…连杆、
T…末端执行器、
TO…关注点、CT…局部坐标系、
W…工件、
WO…关注点、CW…局部坐标系、
G…其他的工件、CG…局部坐标系、
RC1、RC2…相对坐标、
S1…摄像机、S2…编码器、S3…触觉传感器、
50…判定模型、
501…输入层、502…中间(隐藏)层、
503…输出层、
55…推理模型

Claims (11)

1.一种模型生成装置,具备:
数据获取部,获取多个学习数据集,所述多个学习数据集分别由表示两个对象物之间的位置关系的训练数据及表示在所述位置关系中所述两个对象物是否相互接触的正解数据的组合构成;以及
机器学习部,使用获取的所述多个学习数据集实施判定模型的机器学习,所述机器学习的实施通过针对各所述学习数据集以相对于所述训练数据的输入而输出适合于对应的所述正解数据的输出值的方式对所述判定模型进行训练而构成。
2.根据权利要求1所述的模型生成装置,其中,
所述两个对象物之间的所述位置关系通过相对坐标进行表达。
3.根据权利要求1或2所述的模型生成装置,其中,
所述两个对象物中的至少任意一个是通过机器人装置的动作进行移动的对象。
4.一种模型生成方法,由计算机执行如下步骤:
获取多个学习数据集,所述多个学习数据集分别由表示两个对象物之间的位置关系的训练数据及表示在所述位置关系中所述两个对象物是否相互接触的正解数据的组合构成;以及
使用获取的所述多个学习数据集实施判定模型的机器学习,所述机器学习的实施通过针对各所述学习数据集以相对于所述训练数据的输入而输出适合于对应的所述正解数据的输出值的方式对所述判定模型进行训练而构成。
5.一种控制装置,用于控制在存在第一对象物及第二对象物的环境下执行使第一对象物移动的任务的机器人装置的动作,所述控制装置具备:
状态获取部,获取所述机器人装置的当前的任务状态,所述任务状态由所述第一对象物与所述第二对象物之间的位置关系规定;
行动决定部,以接近最终目标的任务状态的方式相对于获取的所述当前的任务状态决定接下来转换的目标的任务状态;
接触判定部,通过向学习完毕的判定模型提供所述第一对象物及所述第二对象物的对象的任务状态,从而判定在对象的任务状态下所述第一对象物与所述第二对象物是否相互接触,所述学习完毕的判定模型通过机器学习而被训练为:相对于表示所述第一对象物与所述第二对象物的位置关系的训练数据的输入而输出适合于表示在该位置关系下所述第一对象物与所述第二对象物是否相互接触的正解数据的输出值;
指令决定部,决定向所述机器人装置提供的控制指令,以使所述机器人装置的任务状态从所述当前的任务状态变化为所述目标的任务状态;以及
驱动部,通过向所述机器人装置提供已决定的所述控制指令,从而驱动所述机器人装置。
6.根据权利要求5所述的控制装置,其中,
所述第一对象物与所述第二对象物之间的位置关系通过相对坐标进行表达。
7.根据权利要求5或6所述的控制装置,其中,
所述控制装置还具备模型生成部,所述模型生成部利用所述学习完毕的判定模型的所述判定的结果生成推理模型,所述推理模型用于以使第一对象物不与第二对象物接触的方式根据所述当前的任务状态及所述最终目标的任务状态推理接下来转换的所述目标的任务状态,
所述行动决定部利用生成的所述推理模型决定相对于所述当前的任务状态接下来转换的所述目标的任务状态。
8.根据权利要求7所述的控制装置,其中,
所述模型生成部通过实施机器学习而生成所述推理模型。
9.根据权利要求8所述的控制装置,其中,
所述机器学习由强化学习构成,所述强化学习根据通过所述学习完毕的判定模型判定在对象的任务状态下所述第一对象物与所述第二对象物是否相互接触的结果以及该对象的任务状态与所述最终目标的任务状态之间的距离设定有回报,
所述第一对象物与所述第二对象物相互不接触且所述距离越短,则所述回报设定得越多,所述第一对象物与所述第二对象物相互接触或者所述距离越长,则所述回报设定得越少,
所述机器学习的实施包括反复进行构成所述推理模型的运算参数的值的修正以得到多的所述回报。
10.根据权利要求7所述的控制装置,其中,
所述推理模型由势场构成,所述势场规定表达所述任务状态的集合的任务空间内的各坐标的位势,
所述模型生成部通过在所述任务空间内利用所述学习完毕的判定模型,以使所述第一对象物不与所述第二对象物接触的方式实施路径规划,从而生成从分别作为开始点而提供的多个任务状态的各个至所述最终目标的任务状态为止的路径,
通过根据生成的各路径的通过频率设定所述各坐标的位势,从而生成所述势场,
所述行动决定部根据生成的所述势场中的在与所述当前的任务状态对应的坐标设定的位势的梯度决定接下来转换的所述目标的任务状态。
11.一种控制方法,用于控制在存在第一对象物及第二对象物的环境下执行使第一对象物移动的任务的机器人装置的动作,
所述控制方法由计算机执行如下步骤:
获取所述第一对象物及所述第二对象物的当前的任务状态,所述任务状态由所述第一对象物与所述第二对象物之间的位置关系规定;
以接近最终目标的任务状态的方式相对于获取的所述当前的任务状态决定接下来转换的目标的任务状态;
通过向学习完毕的判定模型提供所述第一对象物及所述第二对象物的对象的任务状态,从而判定在对象的任务状态下所述第一对象物与所述第二对象物是否相互接触,所述学习完毕的判定模型通过机器学习而被训练为:相对于表示所述第一对象物与所述第二对象物的位置关系的训练数据的输入而输出适合于表示在该位置关系下所述第一对象物与所述第二对象物是否相互接触的正解数据的输出值;
决定向所述机器人装置提供的控制指令,以使所述机器人装置的任务状态从所述当前的任务状态变化为所述目标的任务状态;以及
通过向所述机器人装置提供已决定的所述控制指令,从而控制所述机器人装置的动作。
CN202080050401.1A 2019-08-22 2020-07-22 模型生成装置、模型生成方法、控制装置以及控制方法 Pending CN114096968A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2019152396A JP7295421B2 (ja) 2019-08-22 2019-08-22 制御装置及び制御方法
JP2019-152396 2019-08-22
PCT/JP2020/028446 WO2021033486A1 (ja) 2019-08-22 2020-07-22 モデル生成装置、モデル生成方法、制御装置及び制御方法

Publications (1)

Publication Number Publication Date
CN114096968A true CN114096968A (zh) 2022-02-25

Family

ID=74660856

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080050401.1A Pending CN114096968A (zh) 2019-08-22 2020-07-22 模型生成装置、模型生成方法、控制装置以及控制方法

Country Status (5)

Country Link
US (1) US20220258336A1 (zh)
EP (1) EP4019207A4 (zh)
JP (1) JP7295421B2 (zh)
CN (1) CN114096968A (zh)
WO (1) WO2021033486A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220305649A1 (en) * 2021-03-25 2022-09-29 Naver Corporation Reachable manifold and inverse mapping training for robots
US20220374718A1 (en) * 2021-05-12 2022-11-24 Microsoft Technology Licensing, Llc Backpropagation using parametrizing angles of unitary matrix
CN113359480B (zh) * 2021-07-16 2022-02-01 中国人民解放军火箭军工程大学 基于mappo算法多无人机与用户协同通信优化方法
JP2023038776A (ja) * 2021-09-07 2023-03-17 オムロン株式会社 指令値生成装置、方法、及びプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016009030B4 (de) * 2015-07-31 2019-05-09 Fanuc Corporation Vorrichtung für maschinelles Lernen, Robotersystem und maschinelles Lernsystem zum Lernen eines Werkstückaufnahmevorgangs
US11853876B2 (en) * 2016-09-15 2023-12-26 Google Llc Control policies for robotic agents
DE112018000477B4 (de) * 2017-01-23 2023-03-02 Panasonic Intellectual Property Management Co., Ltd. Ereignisvorhersagesystem, Ereignisvorhersageverfahren, Programm und Aufzeichnungsmedium, auf dem dieses aufgezeichnet ist
JP6438512B2 (ja) 2017-03-13 2018-12-12 ファナック株式会社 機械学習により補正した計測データでワークの取り出しを行うロボットシステム、計測データ処理装置および計測データ処理方法
US10537995B2 (en) * 2017-05-08 2020-01-21 Seiko Epson Corporation Controller and control method of robot, and robot system
JP6680730B2 (ja) 2017-08-08 2020-04-15 ファナック株式会社 制御装置及び学習装置
WO2019097676A1 (ja) 2017-11-17 2019-05-23 三菱電機株式会社 3次元空間監視装置、3次元空間監視方法、及び3次元空間監視プログラム
US20190184561A1 (en) * 2017-12-15 2019-06-20 The Regents Of The University Of California Machine Learning based Fixed-Time Optimal Path Generation
CN111670094B (zh) * 2018-02-01 2022-12-06 本田技研工业株式会社 机器人系统和机器人的控制方法
JP6810087B2 (ja) * 2018-03-29 2021-01-06 ファナック株式会社 機械学習装置、機械学習装置を用いたロボット制御装置及びロボットビジョンシステム、並びに機械学習方法
CN113260936B (zh) * 2018-12-26 2024-05-07 三菱电机株式会社 移动体控制装置、移动体控制学习装置及移动体控制方法

Also Published As

Publication number Publication date
JP7295421B2 (ja) 2023-06-21
WO2021033486A1 (ja) 2021-02-25
EP4019207A4 (en) 2023-02-15
US20220258336A1 (en) 2022-08-18
EP4019207A1 (en) 2022-06-29
JP2021030360A (ja) 2021-03-01

Similar Documents

Publication Publication Date Title
JP7295421B2 (ja) 制御装置及び制御方法
US11745355B2 (en) Control device, control method, and non-transitory computer-readable storage medium
EP2657863B1 (en) Methods and computer-program products for generating grasp patterns for use by a robot
WO2021033471A1 (ja) 制御装置、制御方法、及び制御プログラム
Luo et al. Human intention inference and on-line human hand motion prediction for human-robot collaboration
Hudson et al. Model-based autonomous system for performing dexterous, human-level manipulation tasks
Fan et al. Efficient grasp planning and execution with multifingered hands by surface fitting
Langsfeld et al. Robotic bimanual cleaning of deformable objects with online learning of part and tool models
Huang et al. Grasping novel objects with a dexterous robotic hand through neuroevolution
JP7263987B2 (ja) 制御装置、制御方法、及び制御プログラム
CN114080304B (zh) 控制装置、控制方法及控制程序
Kumar et al. Sensor-based estimation and control of forces and moments in multiple cooperative robots
Tao et al. A method for robotic grasping based on improved Gaussian mixture model
He et al. A distributed optimal control framework for multi-robot cooperative manipulation in dynamic environments
Das et al. Stochastic modeling of distance to collision for robot manipulators
Sun et al. A Fuzzy Cluster-Based Framework for Robot–Environment Collision Reaction
Shauri et al. Sensor integration and fusion for autonomous screwing task by dual-manipulator hand robot
CN117377560A (zh) 在使用互补性约束进行避碰的情况下的物体操纵
Shukla et al. Robotized grasp: grasp manipulation using evolutionary computing
Han et al. Vision-based contact point selection for the fully non-fixed contact manipulation of deformable objects
Vijayan et al. A comparative study on the performance of neural networks in visual guidance and feedback applications
Cheng et al. Real-time robot end-effector pose estimation with deep network
WO2022168634A1 (ja) ロボット制御装置、ロボット制御方法、及びロボット制御プログラム
Coskun et al. Robotic Grasping in Simulation Using Deep Reinforcement Learning
US20240054393A1 (en) Learning Device, Learning Method, Recording Medium Storing Learning Program, Control Program, Control Device, Control Method, and Recording Medium Storing Control Program

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