第3章
逻辑设计与计算机组成
3.1 仿真——设计过程中的关键步骤
仿真和模拟是用一系列数学公式和模型来模拟一个真实现象的过程。先进的计算机和程序是建立一个有意义的仿真的主要推动力量,例如,它可以仿真天气条件、化学反应、神经科学(IBM Watson的“蓝脑计划)、生物进程,甚至还可以通过仿真来实现硬件和软件的设计。理论上,任何一个可以被数学方程和模型抽象的现象都可以在计算机上进行仿真。然而,在实践中,由于大多数自然现象都会涉及无限多的变量,因此仿真是极其困难和复杂的。建立仿真的挑战之一就是确定哪些是最重要的因素,用它们可以建立一个有用的和可行的仿真。另一个挑战就是要找到用来模仿真实现象的数学模型和方程式。工程项目设计过程中的每一步都会涉及仿真。通常,在方案实施之前用仿真来评估设计。因此,最必要的仿真是在建模和分析之后,在原型设计或实现步骤之前的一个过程,如图3-1所示。
VIPLE旨在面向大众来加快机器人开发和采用的步伐。这个过程中一个重要部分就是仿真环境。显而易见的是,计算机和电子游戏机已经为广泛可用的机器人仿真开辟了道路。游戏依赖于逼真的可视化,它伴有实时约束下运行的先进物理仿真。
VIPLE还提供3D机器人虚拟仿真环境,供用户测试其应用程序而不需将软件安装到硬件平台(机器人)上。VIPLE通过使用在硬件加速图形中最新的Unity物理运算引擎技术,可以为机器人模型实现现实世界的物理仿真。
仿真在工程设计过程中是一个非常重要的设计步骤,特别是在机器人设计和编程的复杂过程中。装配一个机器人,尤其是用现成的部件来定制一个模块化机器人,不仅需要精湛的技术,还需要在“调试”物理设置时消耗很多的时间和精力。另一个挑战是,开发中的机器人价格昂贵并且只有一套硬件设施。上述两点使得很多工作难以同时展开,并且在测试中总是存在着损坏机器人硬件的风险。
仿真克服了上述难题,使得只要拥有一台计算机就可以开发有趣的机器人(群),而时间和想象力则成为主要的开发限制因素。同时,由于仿真的开发方式与物理机器人类似,这样开发者就可以把精力花在可实现的研究上。VIPLE采用分段方式进行仿真,允许人们适时处理复杂问题。这意味着你可以用基本语句来“调试”仿真机器人并且只需要用到基础知识。在环境中添加一个虚拟机器人和一些可与之交互的简单形状是非常容易的。这意味着即使是仿真下的调试也是非常简单的。就像许多软件开发联盟一样,机器人的物理模型和可供多人并行开发的仿真服务,创建了一个多人共享使用和修改的平台,在该平台上,开发者不用担心会不小心损坏仅有的、昂贵的机器人。仿真是一个有用的学习辅助工具。你可以选择关注重点,增强复杂性并控制环境。你可以构建可仿真的组件,通过仿真过程对不容易弄清的概念加深印象。
仿真也有缺点和局限性。事实上我们是在试图将硬件问题变成软件问题来解决。然而,开发软件和物理模型也有其自身的挑战,使得我们最终需要面对另一组不同的挑战和局限性。通常这意味着存在一个“最佳点”:某一范围的应用采用仿真比较合适,而另一范围的应用或开发的某一阶段则更适合使用实际机器人。在现实世界中,大量的外部变量仍然无法解释或是难以建模。这意味着无法对任何对象准确建模,尤其在实时情况下。对于特定领域,比如轮式车辆、低速运动仍是仿真面临的巨大挑战。建模传感器(如超声波传感器)是仿真所面对的另一挑战。有过实际机器人开发经验的人会明白:无论仿真看起来有多么准确,你也必须在实际机器人开发上花费大量的时间。这意味着当你在实际机器人上测试程序时,可能需要重写部分代码或调整参数值,即使这一程序在仿真机器人上已经测试过,并且与预期一致。例如,在仿真环境中很容易让机器人沿直线行走。而在现实环境中,如果给两个*设置同样的“驱动力”,机器人可能不会沿直线行走。相反,给不同的*设置略微不同的驱动力可能会实现机器人沿直线行走。你需要采用误差试验来确定每个*需要增减多大的驱动力。此外,在仿真中很容易计算机器人移动一定距离所需的时间,而在现实环境中,做到准确定时是非常困难的。对于传感器来说,一个仿真的超声波传感器能很容易地测出与障碍物的距离,这样,程序就可以对障碍物做出正确的决策。而在现实环境中,传感器可能无法给出准确的距离值,这可能导致机器人转弯太早或太迟。你需要弄清超声波传感器的合适范围,以及在仿真环境下不存在的变量因子。
虽然VIPLE及其仿真环境旨在开发机器人应用程序,但是实际上本质上它们是相同的,都可以应用于设计和仿真其他对象和现象,如电路的设计、物体的运动和游戏等。