《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一2.1 工作流和可视化编程

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

2.1 工作流和可视化编程
工作流用来构建、管理和支持商业流程,它提供了一种用于人机工作分离的新模式:

  • 我们想要的是人只做计算机无法做的。
  • 计算机软件做一切可以自动化的工作。
  • 工作流假设组件和服务已经预先开发好,并专注于组件和服务的接口和互联。
  • 工作流更好地分离了软件架构师和程序员的任务。

图2-1展示了几个主要的软件提供商和软件标准机构开发的工作流语言,它们用于商业和网页应用程序的开发。

image

可视化编程通常用来使工作流的概念和结构变得更易于人类构建和理解,特别是在游戏和机器人应用领域已经开发了多个可视化编程语言环境,包括:

  • MIT的Scratch:一个桌面机上的可视化游戏编程环境,广泛用于小学课程中的电影制作和游戏开发。
  • CMU的Alice:一个桌面机上的3D游戏和电影开发环境。它采用阶梯式的方法给用户提供了一个下拉列表来选择可用的函数,广泛用于中学课程中的电影制作和游戏开发。
  • MIT的App Inventor:它使用了一种拖放方式的拼图来构建Android平台的手机应用,广泛地用于高中和大学课程中的手机游戏和应用程序开发。
  • Lego NXT 2.0 & EV3:一个可视化机器人应用开发环境,针对乐高NXT和EV3机器人,广泛用于中学课程中的机器人编程。
  • Intel的IoT Services Orchestration Layer(SOL):一种可视化构建语言,用于连接IoT设备以及组建基于设备的各种功能。SOL运行在Linux操作系统上,泛用于大学课程中的嵌入式系统开发。
  • 微软机器人开发工作室(MRDS)的VPL(Visual Programming Language):发布于2006年,可用于不同提供商的机器人编程,广泛用于高中以及大学课堂中。
  • ASU的VIPLE:本书所使用的主要编程语言环境,它通过连接基本组件来实现物联网和机器人设备的各种功能。

这些可视化编程环境能够让初级程序员使用工作流级别的可视化构件来开发复杂应用程序。
Scratch(https://scratch.mit.edu)采用简单的步骤就可以构建一个简单的电影或者游戏。图2-2给出了这些步骤。

image

Alice(http://alice.org)是一个可视化编程环境,支持面向对象的编程规范。它同时支持事件驱动(或者可交互式的)编程规范。Alice在用途和功能上与Scratch相似,但是程序能力更加强大。图2-3展示了Alice程序的一个例子,其中下拉菜单用来选择功能。模块可以用来定义封装一个独立的功能。

image

MIT的App Inventor包含一个基于网页的GUI(Graphic User Interface,图形用户界面)设计器和一个可视化编程环境,用于定义网页GUI的功能。用户可以使用一个模拟器或者真实的Android手机来演示开发的App。App的GUI可以在浏览器的网站中开发(美国的网站是http://appinventor.mit.edu,中国的网站是http://app.gzjkw.net/)。
图2-4展示了在模拟器中进行游戏设计的一个例子及其可视化代码。
可视化编程语言广泛用于机器人编程和教育领域。Lego EV3可视化编程环境是针对EV3机器人的编程而设计的。它允许将一排顺序的功能模块拼接起来。图2-5展示了一个用EV3可视化语言开发的程序,它用到了颜色传感器。
Intel最近发布的SOL使用预定义的组件和服务,用户可以用拖曳的方式设计GUI以及工作流代码。如图2-6所示,左侧的工具箱列出了用于GUI和工作流设计的工具。右侧则显示了一个GUI设计、工作流设计以及应用程序的执行图。
微软机器人开发工作室(MRDS)的VPL(http://msdn.microsoft.com/en-us/robotics/aa731520)是一个设备编程和可视化语言的旗舰产品。如图2-7所示,它是基于强大的.NET框架构建的,并有一个丰富的库支持。
image

VPL可用于编程和控制乐高NXT机器人和多种机器人,包括iRobot、Fischertechnik、LEGO Mindstorms NXT、Parallax robots和微软的仿真机器人等。VPL可用于编程从简单到复杂的各种应用,从2006年发布至今,VPL建立了一个巨大的用户社区。遗憾的是,在微软的重构过程中,VPL项目终止了。尽管微软继续支持VPL的免费下载,但VPL不再支持新的机器人平台,例如,VPL不支持取代二代乐高NXT的三代EV3机器人。
为了让VPL的用户社区能够继续他们的机器人程序开发,基于对工作流和可视化语言多年的研究和开发,亚利桑那州立大学(ASU)于2015年发布了机器人开发平台ASU VIPLE。VIPLE具有以下特点:

  • 继承了VPL的属性和编程模式,使VPL用户可以直接使用VIPLE。
  • 扩展了VPL支持的机器人平台,例如,VIPLE可以编程乐高的EV3机器人。
  • 在VIPLE程序与机器人之间采用了面向服务的标准通信接口JSON和开源的机器人中间件,可让通用机器人平台接入。
  • 开发了以Linux为操作系统的VIPLE中间件并以Intel Edison机器人作为默认平台和套件。VIPLE中间件已经移植到其他机器人平台。Galileo和Edison的机器人价格不到乐高EV3的一半。
  • 除了具备VPL的机器人编程功能外,VIPLE还支持通用的服务计算。VIPLE支持C#源代码模块的插入,也可以调用Web服务来完成VIPLE库程序中没有的功能。

image
image

ASU VIPLE采用可视化编程。开发者只需绘制应用程序的流程图(规格)而无须编写文本代码。开发环境中的编译工具能够把流程图直接转换成可执行的程序,从而使软件开发变得更容易、更快速。整个软件的开发,就是一个简单的拖放过程。把代表服务的模块拖放到流程图的设计平面,然后用连线把它们连接起来。这个简单的过程可以使没有程序设计经验的人在几分钟内创建自己的机器人应用程序。经过一个学期的学习和动手实践后,学生可以编出较为复杂的智能程序,使机器人能探索未知迷宫并走出迷宫。

相关文章
|
10天前
|
存储 JSON 运维
智能物联网平台:Azure IoT Hub在设备管理中的实践
【10月更文挑战第26天】随着物联网技术的发展,Azure IoT Hub成为企业管理和连接数百万台设备的强大平台。本文介绍Azure IoT Hub的设备管理功能,包括设备注册、设备孪生、直接方法和监控诊断,并通过示例代码展示其应用。
17 4
|
28天前
|
传感器 数据可视化 机器人
【ROS速成】半小时入门机器人ROS系统简明教程之可视化系统(三)
半小时入门机器人ROS系统简明教程之可视化系统
|
3月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
当今社会,物联网技术的发展带来了许多繁琐的挑战,尤其是在数据库管理系统领域,比如实时整合海量数据、处理流中的事件以及处理数据的安全性。例如,应用于智能城市的基于物联网的交通传感器可以实时生成大量的交通数据。据估计,未来5年,物联网设备的数量将达数万亿。物联网产生大量的数据,包括流数据、时间序列数据、RFID数据、传感数据等。要有效地管理这些数据,就需要使用数据库。数据库在充分处理物联网数据方面扮演着非常重要的角色。因此,适当的数据库与适当的平台同等重要。由于物联网在世界上不同的环境中运行,选择合适的数据库变得非常重要。 原创文字,IoTDB 社区可进行使用与传播 一、什么是IoTDB 我
170 9
Apache IoTDB进行IoT相关开发实践
|
3月前
|
数据可视化 机器人 Python
实例9:四足机器人运动学正解平面RR单腿可视化
本文是关于四足机器人正向运动学(FK)的实例教程,通过Python编程实现了简化的mini pupper平面二连杆模型的腿部可视化,并根据用户输入的关节角计算出每个关节相对于基坐标系的坐标。
63 1
|
3月前
|
存储 人工智能 小程序
比赛须知【2024 年睿抗机器人开发者大赛CAIP-编程技能赛(国赛)】
该文章是关于2024年睿抗机器人开发者大赛CAIP-编程技能赛(国赛)的参赛通知,强调了比赛时间、阅读比赛须知的重要性,并列举了多项比赛期间禁止的行为以确保比赛的公平性。
 比赛须知【2024 年睿抗机器人开发者大赛CAIP-编程技能赛(国赛)】
|
4月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
IoTDB是专为物联网(IoT)设计的开源时间序列数据库,提供数据收集、存储、管理和分析。它支持高效的数据写入、查询,适用于处理大规模物联网数据,包括流数据、时间序列等。IoTDB采用轻量级架构,可与Hadoop和Spark集成,支持多种存储策略,确保数据安全和高可用性。此外,它还具有InfluxDB协议适配器,允许无缝迁移和兼容InfluxDB的API和查询语法,简化物联网项目的数据管理。随着物联网设备数量的快速增长,选择适合的数据库如IoTDB对于数据管理和分析至关重要。
242 12
|
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月前
|
数据可视化 算法 机器人
实例10:四足机器人运动学逆解可视化与实践
本文是关于四足机器人逆运动学(IK)的实例教程,介绍了逆运动学的概念、求解方法、多解情况和工作空间,并通过Python编程实现了简化的mini pupper平面二连杆模型的逆运动学可视化,包括单腿舵机的校准和动态可视化运动学计算结果。
126 0
|
3月前
|
机器人 Java 编译器
2024年睿抗机器人开发者大赛(RAICOM)CAIP-编程技能赛-本科组国赛
该文章是关于2024年睿抗机器人开发者大赛(RAICOM)CAIP-编程技能赛的介绍。
|
3月前
|
机器人 Java 编译器
2024年睿抗机器人开发者大赛(RAICOM)CAIP-编程技能赛-本科组省赛_题解
这篇文章是关于2024年睿抗机器人开发者大赛(RAICOM)CAIP-编程技能赛-本科组省赛的题解,作者分享了自己的得分和比赛经历,以及对比赛过程中出现问题的不满,同时提供了几道题目的解题思路和代码实现。
下一篇
无影云桌面