《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一3.1 仿真——设计过程中的关键步骤

简介: 本节书摘来华章计算机《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一书中的第3章 ,第3.1节,陈以农 陈文智 韩德强 著 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

第3章

逻辑设计与计算机组成

3.1 仿真——设计过程中的关键步骤

仿真和模拟是用一系列数学公式和模型来模拟一个真实现象的过程。先进的计算机和程序是建立一个有意义的仿真的主要推动力量,例如,它可以仿真天气条件、化学反应、神经科学(IBM Watson的“蓝脑计划)、生物进程,甚至还可以通过仿真来实现硬件和软件的设计。理论上,任何一个可以被数学方程和模型抽象的现象都可以在计算机上进行仿真。然而,在实践中,由于大多数自然现象都会涉及无限多的变量,因此仿真是极其困难和复杂的。建立仿真的挑战之一就是确定哪些是最重要的因素,用它们可以建立一个有用的和可行的仿真。另一个挑战就是要找到用来模仿真实现象的数学模型和方程式。工程项目设计过程中的每一步都会涉及仿真。通常,在方案实施之前用仿真来评估设计。因此,最必要的仿真是在建模和分析之后,在原型设计或实现步骤之前的一个过程,如图3-1所示。
image

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

相关文章
|
10天前
|
存储 JSON 运维
智能物联网平台:Azure IoT Hub在设备管理中的实践
【10月更文挑战第26天】随着物联网技术的发展,Azure IoT Hub成为企业管理和连接数百万台设备的强大平台。本文介绍Azure IoT Hub的设备管理功能,包括设备注册、设备孪生、直接方法和监控诊断,并通过示例代码展示其应用。
17 4
|
1月前
|
机器学习/深度学习 算法 数据可视化
基于QLearning强化学习的机器人避障和路径规划matlab仿真
本文介绍了使用MATLAB 2022a进行强化学习算法仿真的效果,并详细阐述了Q-Learning原理及其在机器人避障和路径规划中的应用。通过Q-Learning算法,机器人能在未知环境中学习到达目标的最短路径并避开障碍物。仿真结果展示了算法的有效性,核心程序实现了Q表的更新和状态的可视化。未来研究可扩展至更复杂环境和高效算法。![](https://ucc.alicdn.com/pic/developer-ecology/nymobwrkkdwks_d3b95a2f4fd2492381e1742e5658c0bc.gif)等图像展示了具体仿真过程。
57 0
|
1月前
|
机器学习/深度学习 传感器 安全
基于模糊神经网络的移动机器人路径规划matlab仿真
该程序利用模糊神经网络实现移动机器人的路径规划,能在含5至7个静态未知障碍物的环境中随机导航。机器人配备传感器检测前方及其两侧45度方向上的障碍物距离,并根据这些数据调整其速度和方向。MATLAB2022a版本下,通过模糊逻辑处理传感器信息,生成合理的路径,确保机器人安全到达目标位置。以下是该程序在MATLAB2022a下的测试结果展示。
|
3月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
当今社会,物联网技术的发展带来了许多繁琐的挑战,尤其是在数据库管理系统领域,比如实时整合海量数据、处理流中的事件以及处理数据的安全性。例如,应用于智能城市的基于物联网的交通传感器可以实时生成大量的交通数据。据估计,未来5年,物联网设备的数量将达数万亿。物联网产生大量的数据,包括流数据、时间序列数据、RFID数据、传感数据等。要有效地管理这些数据,就需要使用数据库。数据库在充分处理物联网数据方面扮演着非常重要的角色。因此,适当的数据库与适当的平台同等重要。由于物联网在世界上不同的环境中运行,选择合适的数据库变得非常重要。 原创文字,IoTDB 社区可进行使用与传播 一、什么是IoTDB 我
170 9
Apache IoTDB进行IoT相关开发实践
|
3月前
|
数据可视化 机器人 Python
实例8:机器人的空间描述和变换仿真
本文是关于机器人空间描述和变换的仿真实验教程,通过Python编程和可视化学习,介绍了刚体的平动和转动、位姿描述、坐标变换等基础知识,并提供了具体的实验步骤和代码实现。实验目的是让读者通过编程实践,了解和掌握空间变换的数学原理和操作方法。
43 2
实例8:机器人的空间描述和变换仿真
|
4月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
IoTDB是专为物联网(IoT)设计的开源时间序列数据库,提供数据收集、存储、管理和分析。它支持高效的数据写入、查询,适用于处理大规模物联网数据,包括流数据、时间序列等。IoTDB采用轻量级架构,可与Hadoop和Spark集成,支持多种存储策略,确保数据安全和高可用性。此外,它还具有InfluxDB协议适配器,允许无缝迁移和兼容InfluxDB的API和查询语法,简化物联网项目的数据管理。随着物联网设备数量的快速增长,选择适合的数据库如IoTDB对于数据管理和分析至关重要。
242 12
|
3月前
|
消息中间件 安全 机器人
【Azure 事件中心】Kafka 生产者发送消息失败,根据失败消息询问机器人得到的分析步骤
【Azure 事件中心】Kafka 生产者发送消息失败,根据失败消息询问机器人得到的分析步骤
|
4月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
The article introduces IoTDB, an open-source time-series database designed for efficient management of IoT-generated data. It addresses challenges like real-time integration of massive datasets and security. IoTDB supports high-performance storage,
137 0
Apache IoTDB进行IoT相关开发实践
|
3月前
|
XML 传感器 数据可视化
09 机器人仿真Gazebo实例
本文详细介绍了在ROS(机器人操作系统)中使用Gazebo进行机器人仿真的流程,包括安装Gazebo、创建URDF模型、使用xacro优化URDF、配置ROS_control以及为模型添加Gazebo属性和控制器插件,并提供了相应的示例代码。
117 0
|
4月前
|
分布式计算 NoSQL 物联网
麻省理工IOT教授撰写的1058页Python程序设计人工智能实践手册!
Python是世界上最流行的语言之一,也是编程语言中使用人数增长最快的一种。 开发者经常会很快地发现自己喜欢Python。他们会欣赏Python的表达力、可读性、简洁性和交互性,也会喜欢开源软件开发环境,这个开源环境正在为广泛的应用领域提供快速增长的可重用软件基础。 几十年来,一些趋势已经强有力地显现出来。计算机硬件已经迅速变得更快、更便宜、更小;互联网带宽已经迅速变得越来越大,同时也越来越便宜;优质的计算机软件已经变得越来越丰富,并且通过“开源”方式免费或几乎免费;很快,“物联网”将连接数以百亿计的各种可想象的设备。这将导致以快速增长的速度和数量生成大量数据。 在今天的计算技术中,最新的创新
下一篇
无影云桌面