0

我正在尝试构建一个小型应用程序,该应用程序将在具有非常有限的感官能力(带有陀螺仪/超声波/触摸的 NXT)的机器人上运行,并且实际的 AI 实现将基于分层感知控制理论。我只是在寻找有关实施的一些指导,因为我在从理论转向实施时感到困惑。

场景

我的候选场景将有两种行为,一种是避开障碍物,第二种是根据给定的直径进行圆周运动。

问题

我已经阅读了几篇论文,但无法确定我应该如何对我的虚拟机(行为层?)进行分类,以及它们应该如何与较低级别进行通信并解决内部冲突。

这些是我为找到答案而翻阅的论文清单,但遗憾的是找不到

书本

使用 hpct 的多足机器人论文

pct替代视角

以下想法是我头脑风暴的结果:

  • 回避层将是我的“感觉层”的一部分,这是因为它只识别某些值,例如近距离物体,例如超声波传感器特定的值范围。另一个第二层将是配置层”的一部分,因为它会尝试检测机器人行驶的模式,如直线、随机、圆形,甚至根本不移动,这是使用陀螺仪和电机读数. 强度层代表所有传感器值,因此它不是设计的一部分。

  • 第二个想法是将两个层都作为“配置”,因为它们将响应来自强度层”的直接传感器值,并且它们将以类似网格的设计表示,其中每一层都可以将其参考值发送到较低层与执行器的接口。

我的问题是如何处理冲突的行为(围绕物体进行机动并继续绕圈运行)?应该类似于 Subsumption 某些层被抑制/抑制并具有某种优先级系统?请原谅我的简短解释,因为我不想让这个问题变得冗长。

/Y

4

2 回答 2

2

这是一个机器人示例,它实现了 HPCT 并解决了与您的项目相关的一些问题, http://www.youtube.com/watch?v=xtYu53dKz2Q

看到这两种范式的比较很有趣,因为它们都在相似的水平上接近人工智能领域,即表现出简单行为的具身代理。但是,两者之间存在一些根本差异,这意味着任何比较都将根据所选标准偏向其中一个。

主要区别在于生物学的合理性。包容架构虽然受到生物系统某些方面的启发,但并不打算在理论上代表这些系统。PCT 就是这样。关于生命系统如何运作的理论。

就PCT而言,最重要的标准是范式在生物学上是否合理,而准确性和复杂性等标准无关紧要。

另一个主要区别是,归入涉及行动选择,而 PCT 涉及感知控制(输出控制与输入控制),这使得对其他标准的任何比较都有问题。

关于你的论文,我对可能需要澄清或可能是拼写错误的观点有一些具体的评论。

  • “生物会试图通过改变他们的行为来达到他们的最终目标”——你的意思是改变吗?

  • “每个虚拟机的输出或错误信号是它下面机器的参考信号” - 参考信号可以是来自更高级别系统的一个或多个输出信号的函数,所以更严格地说,“每个虚拟机的输出或误差信号对较低级别机器的参考信号有贡献”。

  • “这里的主要区别在于 Subsumption 不包含‘冲突’的概念” - 好吧,它确实是为了对不同的层和子系统进行优先排序,以避免冲突。冲突是隐含的,因为没有专门的系统来处理冲突。

  • “‘重组’需要考虑其他层的目标。” 这并不能完全理解重组的含义。当感知控制系统长期存在错误时,就会发生重组,并且是系统结构发生变化的过程。因此,不仅仅是参考信号改变了系统之间的连接,或者系统的增益也会改变。

  • “设计复杂性:这是两种理论的基本属性。” 在被要求的意义上,它不是一个基本属性,而是一个特性,尽管它是一个关于理论的实现或可用性需要考虑的重要属性。然而,复杂性与理论的有效性无关。我会说 PCT 是一个非常简单的理论,尽管定义传递函数时会出现复杂性,但这适用于任何生命系统理论。

  • “以下步骤用于创建回避行为:”具有不同速度的多个节点似乎不必要地复杂。使用 PCT,只需要一个这样的节点,通过改变速度(可能是负数)来控制距离。

  • 第 4.2.1 节“例如,回避 VM 尝试直接响应具有特定误差值的某些强度值。” 这听起来根本不像 PCT。使用 PCT,系统永远不会响应特定的错误(或输出)值,而是更改输出以使强度(在这种情况下)输入与参考值一致。

  • “因此,需要重组来处理这种相互冲突的行为。我”。如果当前系统无法解决冲突,则可能需要重新组织冲突。然而,重组的结果可能是一套能够解决冲突的系统。因此,可以设计解决冲突但不需要重组的系统。这通常是通过更高级别的控制系统或一组系统来完成的;在这种情况下应该是可能的。

  • 在本节中,没有描述受控变量是什么,这是值得关注的。我建议清楚每个系统的目标(变量)是什么。

  • “因此,设计行为基于控制参考值。” 如果只是改变了参考值,那么我认为将其描述为“重组”是不准确的。这样的节点最好被描述为“冲突解决”节点,它应该是一个更高级别的控制系统。

  • 图 4.1。标注为“错误信号”的链接实际上是输出信号。误差信号是比较器和输出之间的链接。

  • “机器人从未设法从尝试来回重组参考值的状态中恢复过来。” 我建议解决此问题的方法是在冲突系统之上建立一个系统,并从其中一个或两个中获取输入。它控制的变量可以简单地类似于“在开放空间中做圆周运动”,输入是回避系统感知的函数,然后是用作圆周运动参考的输出函数系统,这可能导致参考值低或为零,基本上关闭系统,从而避免冲突或干扰。请记住,参考信号可能是多个输出信号的加权函数。那些权重或信号,

  • “实际上,没有重组的概念就无法实施HPCT,因为无论如何都会发生冲突”。如上所述,HPCT 无需重组即可实施。

  • “回头看这个设计的精准度,很难说能适应。” 如果 PCT 系统在设计时考虑到了明确的控制变量,PCT 是高度自适应的,或者可以抵抗干扰的影响,这是 PCT 在当前上下文中描述自适应的方式。

一般来说,它可能只需要在文本中进行澄清,但由于在 PCT 实施模型中缺乏对受控变量的描述,而且似乎使用的一些“行为”模块对两种实施来说都是共同的,这让我想知道是否实际使用了 PCT 反馈系统,或者是否只是分层架构的概念与包容范式的概念形成对比。

我很高兴提供有关 HPCT 实施的更多详细信息,尽管此响应看起来有些过期,并且您已经超越了那个阶段。

于 2014-01-16T11:47:12.757 回答
1

来自 CSGnet 列表的 RM 的部分答案: https ://listserv.illinois.edu/wa.cgi?A2=ind1312d&L=csgnet&T=0&P=1261

  1. 忘记水平。它们只是建议,对构建工作机器人毫无用处。

  2. 对于您想要开发的那种机器人,一个更好的参考是 CROWD 程序,该程序记录在http://www.livingcontrolsystems.com/demos/tutor_pct.html

  3. CROWD 程序中的代理执行您希望机器人执行的大部分操作。因此,一种接近设计的方法是尝试使用 NXT 机器人可用的传感器和输出在 CROWD 程序中实现控制系统。

  4. 通过考虑应该控制哪些感知以产生您希望看到机器人执行的行为来接近机器人的设计。因此,例如,如果您想看到的一种行为是“回避”,那么请考虑回避行为是什么(我假设它与障碍物保持目标距离),然后考虑如果保持控制,会导致什么感知你看到机器人与物体保持固定距离。我怀疑这将是对发送和接收超声波脉冲之间的时间延迟的感知。由于机器人在两个空间中移动(我假设),可能必须有两个脉冲传感器才能感应到两个 D 位置对象。

  5. 您需要构建的控制系统之间存在潜在冲突;例如,我认为控制在循环路径中移动的系统和控制避开障碍物的系统之间可能存在冲突。CROWD 程序中的代理也有同样的问题,有时会陷入死胡同。有多种方法可以处理这种冲突;例如,您可以让更高级别的系统监控两个潜在冲突系统中的错误,并让它在冲突时降低一个系统或另一个系统的增益(错误) 持续一段时间。

于 2013-12-25T16:33:18.997 回答