补充体系结构, 罗德尼·布鲁克斯(Rodney Brooks)于1986年提出的是一种“自下而上”的方法,其中使用简单的分层模型设计了机器人。这些模型基于并集成了较低模块以形成最终产品。例如,可以给一个机器人一个“查找开口”模块,该模块由更抽象的“查找门”模块包含,然后由“退出竞争场”模块所包含。

现在,显然,在更“面向对象的”设计中,我们本可以使用“退出竞争场模块”开始设计,但是为了参数,假设一些更原始的组件(AS“ functions”)将会可能会重新使用其他高级概念。

意识到以程序语言(或功能性语言)实施该机器人可能是最简单的,但是试图在面向对象的编程范式中设想基于亚基架构的机器人是否适得其反? (还要意识到,可以将软件工程范式与机器人技术称重可能很困难)获得解决方案,是否有某种形式的“适配器”可以实现,以提高使用可能是两个冲突的范式的有效性?

有帮助吗?

解决方案

我想将其概括为更常见的情况。我认为这是有道理的,因为在问题中,补充体系结构的细节也许不是一个主要方面(在非复杂性领域也出现了同样的问题)。

在一般软件拱形结构中,如问题所示,有一种双向方法或多范式方法。操作环境的大部分层通常是自下而上的。非常具体的代码位写给驱动程序上的非常具体的硬件元素。然后将它们组合成形成更高级别的组件。我怀疑,如果我们简单地将机器人描述为系统本身以及控制该系统的特定方面的目标,我们可以轻松地将其描述为一种填充方法。尽管我不确定这样做是否不对劲。

从自上而下的大多数应用程序中,大多数应用程序都是用更高级别的语言编写的,或者用抽象的机器描述。这与最底部的大多数图书馆都删除了,实际上将在完成这项工作。

在某个时候,这两个层必须开会 - 实际上,在各种情况下,它们在许多地方见面。在这里,您必须“适应”适合另一层的图层。这里的“适配器”一词是100%正确的。确实有一种称为“适配器”的软件模式,用于此目的。

除了特定的适配器外,我们实际上可以考虑任何现代编程的整个工具链。编译器本身以及衬里和执行VM是两层之间的主要接口。也就是说,高级语言是在一个域中写的,并且编译器才能使其在较低级别的域中工作。

如果您专门寻求范式的效果,请考虑使用高级语言用于命令编程(C ++),功能编程(Haskell)和声明性编程(Prolog)。这些范例最终都在同一基础的低级库中工作。

机器人技术中的问题有很大不同吗?不,我不相信。的确,如果今天提出了相同的想法,我认为他们没有机器人特定的术语(填充体系结构),因为与普通软件体系结构没有很大的差异。您甚至在上一段中指出了控制机器人的功能和命令范围。但是,我将使用特定域的语言来使用 - 再次,大量的域特定语言进一步证明可以有效地相互适应多个范式。

许可以下: CC-BY-SA归因
不隶属于 cs.stackexchange
scroll top