以编写代码的方式构建机器人:无需重写即可交换硬件 |维亚姆

Viam 将软件工程师已知的抽象原理应用到物理硬件中,因此机器人智能比任何单个组件的寿命都长。

来源:Viam 博客

如果您是一名软件工程师,那么您已经知道如何构建能够经受住变化的系统。您无需重写查询即可交换数据库驱动程序。您无需重建应用程序即可切换云提供商。您可以通过配置文件更新依赖项,而不是重写代码。这是一个很好的架构——将变化的部分(实现细节)与保持稳定的部分(应用程序逻辑)分开。

在传统的机器人开发工作流程中,硬件选择感觉更加持久。更换相机通常意味着重写视觉处理代码。升级电机控制器变成了重建运动逻辑。交换传感器,您需要重构集成层。硬件变得过时的架构——这就是问题所在。

硬件不可知论提供了一种不同的方法。这个想法是硬件应该是可替换的层,而不是机器人系统的永久基础。实际上,这意味着机器人的智能(感知、决策和行为)可以比任何单个组件的寿命更长。

对于探索机器人技术的软件工程师来说,这并不是一个新概念。这与您已经了解的抽象原则相同,应用于物理设备。应用于机器人技术,它从根本上改变了构建的可能性。

问题:当硬件成为架构时

这是大多数机器人开发遵循的模式:

您选择一个相机并专门为该相机的 SDK 编写视觉代码。您选择一个电机控制器并围绕该供应商的协议构建运动逻辑。您可以选择传感器并使用供应商特定的驱动程序进行集成。

这就像直接在应用程序代码中编写数据库查询而不是使用 ORM。或者在整个应用程序中构建特定于 AWS 的逻辑,而不是使用与云无关的抽象。您可以做到这一点,但您正在创建紧密耦合,这会在以后造成伤害。

后果很快就会复合:

  • 硬件更改需要级联软件重写
  • 组件升级成为全面的系统重新设计