zoukankan      html  css  js  c++  java
  • 论文阅读:OWL-enabled Assembly Planning for Robotic Agents

    OWL-enabled Assembly Planning for Robotic Agents

    0. 摘要

    由智能机器人代理运行的装配单元可实现高度灵活的产品定制,而不会产生当今产品个性化的成本隐患。 组装机器人必须回答的主要问题之一是,它应该执行哪些操作顺序才能从可用的散落零件中制造出组装产品。 我们提出了一种新颖的装配计划方法,该方法采用描述逻辑(DL)来描述装配产品的外观,并根据机器人对正在进行的装配任务的信念中的错误和遗漏断言来计划下一步行动。 为此,我们使用表示和推理规则扩展了KNOWROB知识库,使机器人能够推理出不完整的装配体。 我们证明了我们的方法对于大量可用的组装件以及组装产品结构复杂性的变化都表现良好。

    1. 介绍

    一些工业参与者已经表示有兴趣使用新近可用的阻抗控制机械臂开发组装单元。 当定制很重要时,这样的单元有望成为通用且可重新配置的,所需的质量。 但是,在兑现这些承诺之前还存在一些挑战。 我们将在本文中重点讨论知识表示和计划问题。

    组装单元可以生产的每种产品都需要不同的组装计划,并且每次产品更改时(例如,由于新标准要求更换某些零件),都需要从头开始调整或重新创建计划。 此外,计划对可用资源的种类(单元可以访问的部分)和机器人的功能敏感。最后,在创建小批量的定制产品时,定制常常是彼此不同的:使用一个零件代替另一个零件,或者在将附件连接到同一骨架上方面有所不同。 原则上,组装重新计划可以解决所有这些问题,但计算量很大。 取而代之的是,我们采用一种知识支持的方法,在这种方法中,机器人代理会被告知其自身的功能和可用资源,对它需要组装的产品有所了解,并且这种表示可以快速适应。 我们使用OWL [8]以及基于规则的推理来表示和处理此知识。

    诸如PDDL [7]之类的经典规划方法假设了封闭世界,因此,如果不了解有关世界的某些事实,可能无法找到解决方案。 这是相当有限的:机器人在知道所有零件之前就不能开始组装,并且不能对世界状态的外部变化做出反应或在这种情况下必须重新计划。 相反,我们的计划人员使用开放世界的语义,以便机器人可以利用不完整的知识开始组装活动,识别缺失的知识片段以及获取缺失信息的原因。 另一个区别是,可以根据复杂的类描述而不是对象及其角色来定义目标状态。

    我们的方法是在本体中描述按零件,子装配完成的装配的概念,零件之间如何相互连接以及如何把握零件,并将这些描述与机器人的看法进行比较。 关于正在进行的组装任务以推断下一步的工作。概念定义包括成品组件必须满足的限制。 最初,个人不会满足这些限制,并且机器人将采取行动以解决这些不一致问题。

    更详细地讲,基于初始状态(可用的分散零件)和所需状态(特定组件)之间的不一致,我们的系统创建了一个议程:任务的有序列表,当执行时,这些任务将转换成这样的组件 不一致是固定的。 这种机制在机器人的感知动作循环内运行:根据感知到的物体和执行的动作更新机器人的信念,并通过推理机器人的信念以及如何解决不一致之处来选择组装参数并对其进行参数化。 此架构如图1所示。

    组装过程的知识建模也不是简单的,据我们所知,还没有为机器人深入开发。 我们使用一般组装概念(例如机械零件,原子零件,组装,组装能力等)扩展了机器人本体KNOWROB [20]。我们还在KNOWROB中添加了推理方法,该推理方法可以推理组装,零部件,连接和不一致性,以及 如何建立一致性。 为此,我们扩展了KNOWROB对机器人的置信状态的处理,以使其包含有关(部分)组合件及其零件之间的连接的信息。

    总结一下,本文的贡献如下:

    一种新颖的机器人本体,用于装配任务,描述了装配,零件以及如何抓紧,保持和相互连接零件;

    对KNOWROB推理程序的一组扩展,可以对(部分)组合进行推理,并用其术语定义来解释个人的不一致之处;

    一种新颖的基于知识的装配计划方法,旨在在机器人代理的感知-动作循环内运行,并使用有序步骤的议程,这些步骤在执行时,将不完整的组合转换为符合其语义模型的组合。

    2. 组装本体

    组件可以通过它们的零件,子组件以及它们之间的连接来描述。 机器人还需要知道如何抓握并保持零件之间的相互连接。 我们将在本节将介绍的用于组装任务的新型机器人本体中表示此类信息。

    2.1 本体层次

    组装上层本体。 此处定义了最一般的与装配相关的概念。 这些可以分为由KNOWROB上层本体定义的PhysicalPartOfObject(即某些空间事物的有形部分)和Connection-Physical(即物理接触的有形部分,使它们抵抗空间分离)包含的概念。

    零件本体。 在该本体中定义了零件类,提供的零件和可输入的装配连接类型。 我们系统的每个用户都将定义自己的部分本体,因为它们是特定于项目的。 但是,零件可以重复用于不同的项目,因此它们在我们的本体层次结构中具有特殊的级别。

    集合本体。 在此本体中定义了顶级组合的概念及其包含的子组合。 这些概念与项目密切相关。 他们根据零件和零件之间的连接以及所有决定如何构造(可能有不同变体)的中间步骤来描述组装的产品。

    仿真本体。 先前的本体定义类,而不是个人。 在实际的用例中,可以通过感知来断言诸如零件之类的个人,而可以通过对零件定义进行推理来断言任何从属的个人(例如,预期零件所提供的能力)。 但是,特别是对于仿真实验(请参阅第7节),使用OWL文件描述世界的初始状态是很方便的:可用的零件,零件的位置,子组件是否已经存在等。

    2.2 定义连接和组合件

    我们对装配过程的知识建模是基于AssemblyConnection概念的,其中AssemblyConnection可能需要和/或阻止MechanicalParts提供的AssemblyAffordances。 我们将在下面更详细地介绍这些概念。

    机械零件。在装配操作中被操纵的对象的顶级概念。它细分为AtomicPart和Asmblage,AtomicPart是指没有可分离组件的零件。 AtomicPart进一步细分为FixedPart(对表示持有人有用)和MobilePart。一个MechanicalPart必须至少提供一个AssemblyAffordance,以便将该零件用于某些装配连接。 MobileParts还应该至少提供一个GraspingAffordance,以便可以通过某些方式来掌握它们。请注意,AtomicPart和Assembly都可以提供Assembly Affordance。这是因为只有在将更多的零件放在一起时才能显示与装配相关的特征,例如,由两个纵向半部形成的通道。当将MechanicalPart声明为置信状态时(例如,因为感知到它或将一个新的组合放在一起),可以从约束hasAffordance关系的存在性限制中推断出其承受能力,并在实例化该零件时自动声明。

    AssemblyConnection。我们如何描述组合的核心概念。 AssemblyConnection需要两个AssemblyAffordance,并且可能会阻止其他几个affordance。

    连接还与一个转换相关联,该转换描述了零件之间的相对放置方式,并将零件中的一个用作“参考”(如果所涉及的MechanicalPart是装配体,则使用其参考零件)。 当前的实现存在局限性,因为连接中的部分不能是相同类型的(否则,在没有更多数据的情况下,应该明确哪些是参考)。 我们希望在以后的程序集本体修订中解决这个罕见的问题。

    集合体。 机械零件的集合体。 装配体仅使用一个AssemblyConnection,并且可能对所涉及零件的类型施加更多限制。 这是因为连接可能相当普遍,例如滑入连接,而组装可能需要使特定的车轮在特定的轴上滑动。使用涉及linksAssemblage属性的限制,我们可以显式编码有关组装操作的顺序信息(例如,仅在放置所有轮子之后才将椅子放在底盘上),并推断出特定组装任务所需的所有零件是什么。

    3. 组装信息状态

    在实现方面,我们调整了KNOWROB对信念状态的处理方式,以便在固定对象的框架中报告对象姿势(对于所有非机器人链接的对象)。对于自由漂浮的物体,这就是世界框架。对于作为零件的一部分但没有抓住其所有零件的对象,该对象是该零件的参考对象(在这种情况下,其姿态在世界坐标中给出),或者该物体的姿态相对于参考给出目的。抓取的物体或作为已抓紧一个组件的组件一部分的物体,其姿态在抓具的工具框架中给出。这种方法的原因是,一个机器人在做组装时可能有许多可用的对象,因此,为了减少变换消息通道及其跟踪所有内容的订户的负担,我们很少发布对象姿势:参照系发生变化(对象已进入/离开装配体,或发生了抓握/刺伤),或发生了较大的间隔(通常为几秒钟)。

    4. 推理扩展

    在描述逻辑中,如果存在满足TBox中所有公理和ABox中所有断言的解释,则本体被称为一致性[1],如果不存在这样的模型,通常将其解释为错误。TBox包含术语形式的内涵知识,而ABox包含延伸知识。 在本文中,我们假设TBox没有错误的公理,并希望通过对照断言所描述的概念来发现ABox中的断言或缺失断言(例如,类似于[12])。 在本节中,我们描述了用于解释ABox中不一致之处的推理技术。

    4.1 语义属性

    可以将属性分组为包含层次结构,并且TBox中的公理可以限制其域和范围。

    4.2 专业性

    装配本体将装配限制为链接具有某些特性的某些零件。 最初,违反了某些限制,例如,组件必须链接特定的零件类型。 给定推断的属性范围,可以推断出作为该范围实例的潜在候选对象。 另一方面,不是范围实例的个人可以进行专门化,这样他们可以通过断言有关它们的新事实而成为范围实例。

    定义1.如果某人符合以下条件之一,则该人可以专门化为一类:
    它的类型可以是专用的,也可以断言新的(一致的)属性,以使个人变成该类的实例。

    如果可以将个体s专门用于类描述C,则我们写s≫C。范围是任意的类描述,因此必须递归定义专用性测试,并针对可能出现在范围描述中的各种类构造进行定义。

    4.3 解释ABox不一致

    在我们的方法中,通过识别和修复KB的ABox中的(本地)不一致来计划在组装活动中的下一步。 如果个人实际上是其每个断言类型的适当实例,则假定个人与KB保持一致。 断言类型是任意的类描述,并且可以进一步推断出个体是复杂类描述中哪个实例是它的实例。 我们说,直到该测试失败的语句为止,类描述都是满意的。 识别此类陈述可以解释为什么个人前后矛盾,并且对于计划通过断言或撤回有关个人事实在ABox中建立一致性的动作至关重要。

    一致性检查仅限于本地上下文。 这是因为(1)KB可能包含许多与成功组装无关的事实;(2)它允许更紧凑和可重用的规划知识;(3)机器人可以动态切换上下文,从而无需中断即可更改其任务。 。 上下文由程序集本体的词法学来扩展:程序集在原子零件的能力之间建立联系,这些原子部分的能力可以与其他子能力与某些子程序集链接。

    5. 建立一致性

    需要控制将不完整和指定不足的组合转换为完全指定的组合的过程。 我们提出了一种知识支持的方法,该方法允许在不同的任务之间切换,使用特定领域的知识对动作进行排序,解释为什么计划了动作以及如何执行动作的原因。 在本节中,我们将描述此过程使用的数据结构和知识片段,以及如何将其分解为多个步骤。

    5.1 一致性议程

    计划将未指定的组合转换为一致的组合的操作以数据结构表示,我们称之为一致性议程。之所以生成议程项目,是因为(1)需要进一步对个人进行分类;(2)未指定必需的属性,并且必须实例化(分解)新值;(3)未指定必需的属性,并且现有个人必须用于指定属性(集成),或(4)必须收回(分离)属性值。请注意,如果应该将现有值用于属性,则可以将这些属性描述为可集成的。处理这些项目需要选择(1)更具体的类型,(2)新实例化的个人的一组类型,(3)现有的个人,或(4)应该撤回现有的值。这些项目是由一些不满足的约束引起的,并且与关于对象的事实的指定或撤消有关,使得约束变得满足。请注意,约束条件未得到满足的受限个体不一定与必须声明新事实的项目的主题相同(即,如果违反嵌套约束)。项目以本体表示,以允许对它们进行OWL推理并支持OWL术语中的约束规范。一致性议程本体如图3所示。

     可以根据议程项目的模式来过滤议程。 这些部分描述表示为OWL类,并且可以推断出议程项目是否与模式匹配,可以检查它是否是其实例。 模式可能包括有关项目类型,主题及其原因的约束。 例如,这允许匹配与具有特定类型的主题或具有特定属性值的主题有关的项目。

    5.2 一致性策略

    一致性可能会在ABox中的多个公理处中断,因此必须决定下一步要建立哪个公理。 例如,在具有多个连接的装配中,这种连接会链接一些尚未指定的零件。 选择过程还意味着搜索策略(例如,遵循词法意味着深度优先搜索)。 用户需要对选择过程有很好的控制,以允许灵活地适应新的计划任务(即新的或适应的装配任务)。 这是我们也采用本体来表示这种选择知识的原因之一。 图4显示了选择策略的简单示例。

    在第4.3节中,我们列出了为什么在ABox中强制实施一致性仅限于本地上下文的原因。 有意义的上下文高度依赖域。 组装着重于原子零件及其相互之间的联系,而另一计划任务可能涉及根据使用DL形式化的配方从一组食材烹饪餐点,甚至基于机器人对即将完成的任务的了解实例化运动控制器。 为了允许这种通用的计划任务,我们还采用了知识块,这些知识块将与给定计划任务(我们称为关注知识)相关的内容描述为本体。

    注意知识允许将组装任务分解为多个阶段,这些阶段涉及在不同本地环境中建立一致性。 例如,机器人可能需要将零件放置在支架上,以便可以使用其配件之一。 这意味着零件和夹具之间的连接不是最终产品的一部分,因此无法使用其描述来计划。 相反,该过程可以分解为首先将零件放在支架上,然后将零件放在一起。

    议程项目选择过程需要依赖于域的启发式方法来做出正确的决定。 例如,机器人可以根据距离或可达性来决定哪个部分是下一个不错的选择。 此外,例如在万一候选部分都无法触及的情况下,可能需要推迟议程项目。 为了允许用户定义的方法来规范,限制和不满意的类声明的引用,我们还采用了知识块,这些知识块描述了作为本体论的新事实(我们称为规范知识)的规范方法。

    所有控制知识片段都组成一个数据结构,我们称其为一致性策略(如图5所示)。 可以动态切换策略,以便机器人代理可以在不同的组装任务之间灵活地更改。

    5.3 程序视图

    最终目标是根据提供的语义描述将混乱的零件场景转换为组装好的产品。 此转换过程可以分解为以下步骤:

    (1) 策略选择: 策略是知识片段的集合,以使用控制知识来控制局部一致性的建立。 该策略由机器人的计划主管从外部选择。

    (2) 初始化: 首先,实例化描述最终产品的目标组装类。 也可以从现有的部分指定的组件开始。 遍历组件,以便为其所有初始链接的零件生成项目。 将为所遍历的个人满足其类型的所有语句生成项目。

    (3) 任务选择:根据活动策略的选择知识中描述的优先标准对议程项目进行排序。 选择优先级最高的项目并进行进一步处理,以确保引起该项目存在的类声明不满意,从而确保一致性。 为了避免不必要的计算,还考虑了可能对同一属性和同一主题产生更特定值的其他项,以对候选值进行其他限制。

    (4) 规范:对候选值强制执行一致性,而候选值则受其在集合中的作用所隐含。 可以通过主动策略的规范知识部分中描述的方法来控制规范过程(例如,在对议程项目进行分类的情况下找到更具体的类型)。 还允许这些方法进一步限制候选值,而不是完全指定不满意的公理。 如果找不到一致的值,则该项目被禁止并重新添加到议程中。

    (5) 投影:规范过程不会主张新的信念,这是在单独的投影步骤中完成的。 根据推断出的类型约束实例化新个体,并针对每个断言的属性值,检查是否可以从对需要为其指定属性的主题的约束中得出更具体的属性。

    6 组装动作

    在本文中,我们考虑两个一般动作:零件和组合件的抓取,以及将两个零件连接起来以形成组合件。 这些动作可以以许多不同的方式执行,并且具有不同的零件和连接类型(例如,拧紧和滑入式连接需要以不同的动作进行操作)。

    一般的动作描述(称为动作指示符)可以从有关组件结构以及如何将零件组合在一起的知识中得出。 如何实例化动作指示符,以便它们可以在特定机器人上执行,取决于计划执行者。 计划执行者在执行动作指示符实例化期间可以查询其他与动作相关的信息,例如对象的位置,在何处把握对象或对象的物理属性,以增强计划纲要的可重用性。

    连接某物。 动作指示符以自下而上的方式生成,从完全指定的组合开始,没有子组合,然后按照子组合关系的相反顺序,直到达到未指定的组合。 它们包括有关所涉及零件及其相互之间预期连接的信息,因此只能在指定此信息后生成。 图6中显示了一个示例动作指示符。在一个附加步骤中,将部分指定的组合映射到可由机器人执行的动作指示符:每次断言有关组合的新事实时,都要检查是否可以从其描述中得出动作。

    机器人必须推理出哪些零件需要移动到另一零件中,以及哪些零件在执行动作期间应保持固定。 必须固定固定零件,以使打算将固定零件连接到另一零件的装配件露出。 单臂机器人可能需要其他工具(例如固定器或夹具)来固定其中一个零件。 双臂机器人可以选择用一个抓具来固定固定部件,以使另一个抓具可以将另一部件移动到其中。 组装本体不代表这种类型的信息(它仅对最终产品中零件的连接方式进行建模),因此无法直接推断哪些对象应保持固定状态。

    我们采用启发式方法来确定组装操作中的活动部件和固定部件,该操作使用优先级标准确定哪个部件更适合移入另一个部件中。 优先顺序如下:(1)优先选择具有畅通无阻的零件,或连接到具有畅通无阻的零件的零件(即,尽量不破坏现有组件以抓取某个零件); (2)优先选择装配件被固定装置挡住的零件(无论如何它们都必须移动以露出零件); (3)偏爱未固定在灯具上的零件; (4)更喜欢与少量其他零件连接的零件(将小组合移动为大组合)。

    抓东西。 机器人需要对是否以及如何抓取零件进行推理。 每个零件可能具有多个抓取能力,这暗示着某种方式来抓取该零件。 如果其他部分遮挡住了,则组装可能会阻碍抓握能力。 仅当零件具有至少一个未被某些组件阻挡的抓握力时,才可以抓握它们。 但是,如果机器人以无阻碍的抓握能力连接到某个其他部件,则它可以间接抓握部件。

    我们采用具有不同类型的能力和精确把握的简单把握包含层次结构。 组装零件可以进一步描述接触点,预抓握姿势,抓握力以及机器人在接近物体时应打开其抓具的宽度。 在机器人的末端执行器与其所保持的零件之间建立连接。 抓紧连接可能会阻塞装配性能。 这使机器人可以推理出它们是否以正确的方式握住零件以执行组装动作。

    7. 实验

    我们从以下三个方面来描述拟议的组装计划的性能:正式化新组装任务所需的步骤,可以回答关于组装的哪些类型的查询以及可以推断出下一步行动的速度。

    建模。 首先,我们为玩具飞机创建零件本体,并用与零件相对应的概念填充它(在这种情况下,共有12种零件类型)。 每个零件概念都定义了装配并掌握了它提供的功能。 我们已经在定义中手动添加了功能,但是我们将研究使之自动化的方法,要么基于[15]中随CAD文件提供的语义注释,要么基于零件特征的某些几何推理。

    下一步是创建组合本体,并用子组合填充它,直到完整的玩具飞机(在本例中为22个子组合)。 每个子程序集还定义了应包含的子程序集,这对它们的创建方式施加了一些排序约束。 通过这种方式,我们不仅允许用户描述序列知识,还可以描述有关变异的知识:只要可以使用任何子类(例如,子类),就可以根据零件本体(例如,Wing)中的更一般的类来指定子组件。 ,StraightWing,BacksweptWing)。

    对于玩具飞机,我们在protégé[13]中进行了零件和装配体建模,这花费了4个小时。 我们希望使用专用工具(例如,用于指定供需清单的表单,而不是protégé中所需的许多“添加对象属性”操作)来大大加快这一过程。 我们拥有可用零件的CAD模型以及有关如何组装飞机的说明表。

    查询。 在装配领域,查询主要涉及装配的结构和当前状态,以及机器人应如何抓紧,固定和装配零件。

    装配体由相连的装配体辅助部件组成。 机器人可以通过询问诸如“装配体中使用的装配体能力是什么?”之类的问题来推理这种结构:?-

     机器人需要识别出不完整的组件以推断下一步该怎么做。 局部上下文仅通过遵循子装配关系来实施:

     机器人可以通过识别术语模型中不满意的公理来解释为什么组装不完整:

    机器人还可以推断是否可以以及如何抓住零件进行组装。 例如,如果装配准备金将被抓地力阻挡,则抓地力是不可能的。 机械手可以按以下方式进行查询:

     运行时性能。 我们的组装计划方法的运行时性能取决于诸如KB的大小以及组装产品的结构复杂性等因素。 改变汇编本体本身的复杂性是困难的。 相反,我们选择通过使用平面本体描述的不同组合测试我们的方法来改变结构的复杂性。 此外,我们通过更改可用于装配的零件数量来衡量ABox中报表大小不断增长的计划绩效。

    在第一个测试中,除了需要的21个零件外,我们还断言n个随机的玩具飞机零件。 零件与它们的报价一起确定,根据零件类型,每个确定的零件产生8到29个三元组。 我们将n从0更改为3.8×104。 我们重复此测试30次,以平均出零件类型的随机选择。 仅需21个部分,规划人员就可以在32个规划步骤中大约1.1 s内找到解决方案。 平均而言,每个步骤需要34毫秒。 在我们的实验中,使用3.6×104的附加部件进行测试时,运行时性能最大下降至2.103s。 但是,性能不会持续下降。 这是由SWI Prolog [22]中使用的三重存储的哈希表行为引起的。 无论如何,测试表明,当前的实现可以处理大量的零件:即使使用5×105的附加零件,也可以在1.75s内找到解决方案。

    在第二个测试中,我们根据最终组装必须满足的约束条件来改变组装任务的复杂性。 玩具飞机本体包括22个组合描述,其复杂程度各不相同,为此我们从中选择11个。 复杂度是通过计算使组件一致所需的断言和缩回次数来衡量的。 最简单的组合需要5 KB事务,并且可以以0.101s的时间进行计划(平均超过20个试验),而最复杂的组合有62个事务需要的规划时间为1.629s。 但是,交易之间的平均时间几乎保持在0.025s不变,因此,在线计划不会受到组装产品结构复杂性的很大影响。

    更详细地,运行时测试结果如图7所示。

    8. 相关工作

    为提供机器人技术存在多种努力。 迄今为止最大的是IEEE-RAS工作组ORA(机器人和自动化本体)[18],该工作组旨在标准化机器人的知识表示。 ORA核心本体[17]已针对特定的工业任务进行了扩充[6]。 这些扩展涵盖了诸如工具包之类的任务,在该工具包中,机器人将一组零件放置在托盘或类似的容器上,以将其运送到组装单元。 其他机器人本体是Affordance Ontology [21]和开源KNOWROB本体[20],我们选择了后者来使用和扩展。 到目前为止,还没有一个提到的本体能够对组装概念进行建模。

    如前所述,基于知识的方法已成功用于某些工业过程,例如成套工具[2、3、16]。 欧盟ROSETTA项目已对基于知识的组装进行了研究[9,14,19]; 它们的知识表示形式包括任务概念和任务序列(包括偏序约束和任务图等概念)和基本的机器人技能。 其他基于知识的汇编方法将OWL描述转换为PDDL规范[3,11]。 以知识为基础的程序设计也已被用作减轻教导机器人单元组装新产品的方法[15]。 与我们的知识建模方法类似,他们坚持使用有关语义上有意义的特征的信息来注释有关机械零件的几何数据,然后可以将其用于构造约束和用于组装任务描述的子目标。

    在引用的作品中,将使用代表的知识,并在各种系统组件(例如计划,感知和执行人员(以便进行推理和重新计划)或培训界面(在这种情况下,它们提供“词汇”)来描述之间进行交换 一系列任务)。 与我们的方法不同,没有根据语义描述本身生成动作序列。 同样,就用于组装的知识建模而言,它要么很笼统地关于任务序列(如[9]中所述),要么着眼于原子零件的几何特征(如[15]中),而不是提供能力和中间 子组件。

    9. 讨论

    在本文的范围内仍未考虑一些相关问题。 例如,这是面对与计划内容相冲突的更改时可以收回决策的能力。 此外,可以基于规则进行策略选择,以使计划方案更加可重用。 我们还希望将我们的方法应用于其他领域,例如感知或运动控制。 此外,我们仅使用模拟机器人。 将来,我们希望在真正的机器人上以及多代理场景中使用我们的系统。 最后,一些手动步骤可以自动化。 例如,我们认为,术语模型的某些部分可以从现有文档(例如技术图纸或施工手册)中自动生成。

    10. 总结

    在本文中,我们提出了一种新颖的组装计划方法,该方法采用形式化描述形式来描述组装产品应根据机器人代理的信念状态中的错误和遗漏断言来计划下一步行动的方式。 我们已经表明,随着可用零件数量的增加以及组装产品结构复杂性的变化,我们的方法可以很好地扩展,从而可以进行在线计划。 我们相信,我们的方法是朝着通用和可重新配置的装配单元迈出的一步,并且这些灵活的装配单元将在不久的将来使客户个性化产品,而无需花费当今的定制成本。

  • 相关阅读:
    hdu4717 The Moving Points(二分做法)
    C++中用rand()和srand()产生随机数方法介绍
    教你看懂C++类库函数定义之一---HRESULT 宏
    [置顶] IOS培训资料
    调试出不来 断点不起作用 调试技巧 MyEclipse进不了调试
    [置顶] 编程模仿boost::function和boost::bind
    模拟红外协议接收程序
    Java 使用JDBC、DBCP、C3P0访问数据库
    Linux点亮一个灯
    Makefile解析(最简单的LED)
  • 原文地址:https://www.cnblogs.com/feifanrensheng/p/14237482.html
Copyright © 2011-2022 走看看