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

相关文章
|
1月前
|
机器人
SK616001-A 编程模块 BBC Brown Boveri DSQC系列机器人备件
SK616001-A 编程模块 BBC Brown Boveri DSQC系列机器人备件
SK616001-A 编程模块 BBC Brown Boveri DSQC系列机器人备件
|
3月前
|
传感器 机器人 C++
ROS 2机器人编程实战:基于现代C++和Python 3实现简单机器人项目
ROS 2机器人编程实战:基于现代C++和Python 3实现简单机器人项目
179 0
|
5月前
|
传感器 机器人 C++
机器人操作系统ROS 编程开发--详细总结
最近工作涉及到自动驾驶的,需要学习ROS,学习中总结了一些知识点,分享给大家。 机器人操作系统ROS,是一种分布式处理框架(又名Nodes),ROS常用C++和python编程语言开发;(这里项目开发采用C++ 11版本)。ROS的点对点设计以及服务和节点管理器等机制,可以分散由计算机视觉和语音识别等功能带来的实时计算压力,能够适应多机器人遇到的挑战。ROS免费并且开源。
295 0
|
移动开发 监控 前端开发
机器人制证系统大屏可视化
机器人制证系统大屏可视化
机器人制证系统大屏可视化
|
人工智能 算法 IDE
智能化测试新趋势:手淘 AI+IoT 机器人泛终端测试实战
“为模拟真实用户”,Robot-XT 极测机器人提供了为用户体验度量评测的能力,不仅可以最大程度地模拟用户真实操作,还实现了多设备跨终端的功能自动化和用户体验度量。同时,Robot-XT 极测机器人通过 IoT+AI 的智能化技术搭建一套支持多机操作并具备高稳定性的的 UEE 自动化解决方案,实现了覆盖从线上 App 到线下智能门店场景的端到端自动化测试,赋能行业,为软件绿色联盟的加盟 App 提供用户体验评测服务。
641 0
智能化测试新趋势:手淘 AI+IoT 机器人泛终端测试实战
|
数据可视化 机器人 数据安全/隐私保护
Apsara Clouder认证之旅 阿里云RPA(机器人流程自动化)- 初级入门(可视化)
认证笔记 - Apsara Clouder 技能认证 - 通用技术技能认证 - 阿里云 RPA(机器人流程自动化)- 初级入门(可视化)
448 0
Apsara Clouder认证之旅 阿里云RPA(机器人流程自动化)- 初级入门(可视化)
|
人工智能 数据可视化 机器人
阿里云RPA(机器人流程自动化)干货系列之七:编写第一个RPA应用(可视化模式)
导读:本文是阿里云RPA(机器人流程自动化)干货系列之七,我们采用可视化开发模式编写第一个RPA应用(获取淘宝网宝贝),以及如何实现机器人自动化执行流程的过程。
6827 0
|
机器学习/深度学习 人工智能 数据可视化
|
数据可视化 机器人 Python
玩转itchat,实现好友信息可视化、聊天机器人及性别模型构建
前些日子,女朋友拿我手机玩,说我微信好友女生多,当时我就不服了(跪着认错了),然后两人一个个统计性别,我微信好友不算多,但也有300来个,人工统计实在费事,之后事情也就不了了之了(打了我一顿)。
1695 0

热门文章

最新文章