郴州做网站的,可以做公司网站,瓦房店网站建设,已备案域名购买网址低价8.1 由设备到机器人 把我们身边形形色色的“物”都连接到互联网#xff0c;这就是物联网。物联网中使用的设备随着时间的推移在不断进化#xff0c;这条进化之路的前方到底有什么呢#xff1f;这里我们就围绕其中一种形式#xff0c;即机器人来对讨论一下这个问题。
8.1…8.1 由设备到机器人 把我们身边形形色色的“物”都连接到互联网这就是物联网。物联网中使用的设备随着时间的推移在不断进化这条进化之路的前方到底有什么呢这里我们就围绕其中一种形式即机器人来对讨论一下这个问题。
8.1.1 机器人——设备的延续 可能有人会好奇物联网与机器人之间到底存在着什么样的关系。这里我们先来看一下机器人的结构图8.1。 当然其中还包括一些机器人特有的构成要素例如驱动器和用于驱动的电机驱动等。控制的内容也并非单纯的信号控制还需要实现运转控制乃至图像识别等大量多样化功能。 然而从整体架构来说机器人和普通设备一样都是由输入设备、输出设备以及控制这两者的控制器这三个要素构成。从这个角度来说机器人算是一种高度集成了各式设备的机器。也就是说可以把设备开发过程中的大多数成果都应用到它身上。
8.1.2 机器人的实用范围正在扩大 过去的机器人市场以产业机器人为中心机器人只能用在工厂的生产线等少数环境中。然而近年来其活跃范围正在不断扩大。 美国亚马逊收购了一家叫作Kiva Systems 的公司这家公司一直在开发用来管理工厂库存的机器人美国亚马逊把公司配送中心的商品搬运工作都交给了Kiva Systems 开发的机器人来完成图8.2。机器人能够读取贴在配送中心地面上的条码再把正确的货物依次运到工作人员所在的地方。 从货架上挑选商品这项工作一直是靠人工完成的但现在人们也在进行研究开发试图让机器人来完成这项工作。另外亚马逊还发布了试图用飞行机器人实现商品配送自动化的计划。如果能实现这些功能那么从用户在网站上点击鼠标的那一刻起到货品配送到家为止整个流程都会通过机器人来实现自动化。 除此之外市面上还在陆续发售一种远端临场机器人用户通过远程操作这种机器人还能模拟参加会议和聚会。已经有一部分企业开始实际导入这种机器人来作为远程会议系统的补充图8.3。 这些新型机器人需要在距离人类活动范围较近的场所工作。为了能令机器人在上述这类复杂的环境下稳定运行必须要做到让其适应周围的环境。 打个比方拿远端临场机器人来说在用其进行远程操作时人类的视野是受限的因此单凭人类的力量很难实现所有的移动操作。如果大家想象一下只用摄像头的影像来无线操纵几公里以外的模型就会明白这有多难了。所以需要一些技术来让机器人自行移动到目的地。 综上所述如果想构建一个能够在一定程度上自动执行任务的半自主性系统那么就需要把各种各样的传感器组合起来构建一个先进的机器人系统。
8.1.3 构建机器人系统的关键 要想把各种设备和传感器组合在一起并由此构建一个机器人系统需要克服繁多的问题。在此我们从软件开发的角度出发看一下开发机器人系统需要的两个关键点。 首先第一点需要高效利用机器人专用的中间件。就像前文说的那样机器人开发是一项需要高度整合各种各样设备的工作如果要从零开始开发机器人系统那么在技术上、时间上、金钱上都需要投入相当巨大的成本。针对这点人们将机器人需要的各类软件要素总结在一起开发出了专门用于机器人的中间件。通过有效使用这类中间件人们就能够实现高速开发、提升可维护性以及与外部系统灵活联动等。 第二点要高效利用网络环境。包括前文介绍过的仓库管理机器人和远端临场机器人在内机器人很少单独进行某项操作而是接收外部发来的信息和命令将这些信息和命令加以组合来执行任务。为了做到这点我们也需要把机器人连接到网络就像把前面说的那些物联网设备连接到网络一样另外还需要准备一个环境来使用那些存在云端服务器上的资源。 下面我们再来看一下实现这两个关键点都需要哪些知识。
8.2 利用机器人专用中间件 开发者在实际构建机器人时面临的最大难题是如何把多个构成要素整合为一个整体系统。此时能够帮助我们的就是机器人专用中间件。
8.2.1 机器人专用中间件的作用 机器人是多种多样的硬件和软件的集合体。每时每刻都有各类传感器信息涌入机器人的控制计算机里例如摄像头、麦克风、力传感器等发来的传感器信息。 为了基于这些信号做出符合情况的判断和响应需要整合各个硬件要素的输入输出控制、图像处理和语音识别等复杂的识别操作和识别结果把整合结果跟用于决定机器人行为的任务决策处理等巧妙地加以结合。机器人专用中间件是一个用于实现上述内容的平台。它提供的内容有设备控制驱动、软件模块间的通信接口以及软件包的管理功能等表8.1。 此外最近很多机器人专用中间件还配备了用于搭建系统的开发工具和运动仿真技术等。只要能够高效使用中间件想必会在极大程度上降低机器人开发的难度。 主要的机器人专用中间件有RT 中间件和ROS 两种下面来具体看一下。
8.2.3 RT中间件 RT 中间件RT-Middleware是日本生产的一种软件平台规格它的用途在于把构成机器人的各个要素进行软件模块化进而整合成机器人系统。 至于实现有产业技术综合研究所A 开发的OpenRTM-aistB 等数种方式。
RT中间件的特征 对RT 中间件而言构成系统的硬件和软件都是构成RT 功能的要素。把这些要素进行软件模块化得到的结果就称为RT 组件机器人就是由这些组件组成的。 组件中定义了用于跟其他组件交换数据的接口。由于RT 组件分别集成了不同的功能所以开发的系统才能灵活地进行扩展。除此之外组件还能为其他的系统重复利用图8.4。 RT 组件的模块模型跟接口被注册为在UMLA 标准化等方面著名的OMGB 国际标准这是为了避免设备与设备、机器与机器之间发生兼容性问题。 其开发环境也很完善。产业综合技术研究所开发了一个名为OpenRT Platform 的综合开发环境这个环境可以设计机器人系统、进行模拟实验、生成操作以及生成情景等。这样一来组件的制作乃至集成都能够在同一环境下进行了图8.5。实际制作机器人并用实体机器验证和确认运行状况是需要耗费大量时间和劳动力的。因此这样的模拟环境对于迅速查看机器人的运行状况以及找到问题所在来说非常重要。 8.2.3 ROS ROSRobot Operating System机器人操作系统是一个在欧美地区广泛应用的机器人开发开源平台可以说是当今世界应用最广泛的机器人开发平台。 ROS 的开端要追溯到21 世纪初于斯坦福大学进行的一个个人机器人项目。后来美国Willow Garage 公司在2007 年开始着手开发ROS它还开发了PR2 作为研究平台并逐渐将其提供给全世界的研究机构从而提高了ROS 的功能性。ROS 与RT 中间件不同针对ROS 的国际标准化活动很少但是在一些活跃社团的支持下ROS 的导入数量不断扩大正在逐步获得世界性的事实标准的地位表8.2。 使用ROS 的基本上都是大学和研究机构不过民间也在逐渐导入ROS。2012 年丰田汽车公司发布了采用ROS 模块的生活助手机器人HSR。 此外在2014 年国际空间站一直使用的由NASAB 开发的机器人Robonaut 2 也采用了ROS这一行动向全世界表明ROS 的稳定性已经达到了一定水准。 虽然ROS 的管理主体已于2013 年移交给了OSRF但在美国政府对机器人产业的支持下ROS 在人们心中的地位正在不断提高。
ROS的特征 在构建机器人系统这点上ROS 与RT 中间件一样都是通过组装一种叫作“节点”的软件模块来构建系统。 关于节点的规格并没有特定的国际标准不过ROS 单独提供了一些变换了形式的接口如话题、服务、参数这样在把ROS 与模块联动时就能采用跟RT 组件相似的思路。 此外除了提供模拟器和用于环境可视化的工具ROS 还给特定的机器人提供了一个集合有特定软件模块组的软件包使用起来并不比RT 中间件逊色。 从这种意义上来看可以说ROS 的独到之处更在于其理念而非技术机制。浏览ROS 的官方网站我们就会发现前面有这么一句话“ROS Plumbing Tools Capabilities Ecosystem”。意译过来就是“ROS是一种帮助人们利用软件模块组和机器人的方便工具同时也是一个支撑它们的用户社区”。 前文已经提过ROS 正在逐渐进入千家万户同时ROS 的社区形成了一种文化即公开分享源代码众多研究者来针对各自擅长与不擅长的领域一起互帮互助。 从前机器人研究人员如果想研究自主移动算法就需要学习生成地图和控制硬件的算法因此往往不得不走很多弯路。ROS 这个社区利用共同的平台使研究得以顺利进行加速了机器人的发展。
8.3 连接到云端的机器人 物联网就是把所有设备连接到互联网这个概念也被逐渐应用于机器人领域。当下一个将云计算和机器人技术合二为一的词汇“云机器人”正为人们所关注。
8.3.1 云机器人 以下三点给云机器人的诞生创造了条件。 ①网络的低成本化和高速化→高速无线通信、光通信 ②大数据处理能力的成熟→ Hadoop、Spark、Storm、Deep Learning ③机器人技术的开放→ RT 中间件、ROS 其中有一点尤为重要那就是“机器人技术的开放”。随着机器人专用中间件的实现机器人软件也在不断进步与完善一个能从外部访问综合机器人系统的环境就此形成。
云机器人的功能 云机器人在机器人方面提供了两项功能图8.6。 第一个功能是“知识共享”。为了让机器人在家庭等环境中执行任务人类需要事先收集和输入室内地图、用户信息等环境本身的数据。以往的机器人需要人类分别进行高级设置才能使用但现在通过共享数据机器人就能够沿用其他机器人获取的信息一边补充完善这些信息一边行动。能共享的不仅是数据还包括应用程序还可以让机器人远程利用开发者开发的新功能。 第二个功能是“强大的运算能力”。图像识别和语音识别等识别操作多适用于机器学习等高负荷算法如果用机器人来实现这些操作那么可想而知机器人的负担就会非常重识别也会花费相当长的时间。如果能把机器人连接到网络就能把语音数据和图像数据发送给服务器然后只接收识别结果进而使用充裕的运算环境。 云机器人是一个较为崭新的概念人们正在一步步地不断开发用于实现云机器人的软件。下面让我们来看一下用于实现云机器人的两个平台UNR-PF 和RoboEarth。
8.3.2 UNR-PF UNR 平台以下简称UNR-PF是一个软件环境用于构建一种综合了数台联网机器人的服务其开发是以日本国际电气通信基础技术研究所为中心ATR进行的。 UNR-PF 环境由三个要素构成分别是服务应用程序、平台服务器、机器人。其中平台服务器提供了如下两项功能。
功能1抽象化硬件 首先需要进行硬件的抽象化图8.7。 · 请大家想象一个场景你需要对轮式和双足步行这两种机器人发出“前进”的指令。尽管这些机器人都具备移动功能但二者硬件的结构却是不同的。对以往的机器人服务而言如果想在断开网络的情况下运行这些机器人就需要对每个机器人分别发送“转轮子”或是“动脚”的指令。 而UNR-PF 导入了一个名为RoIS Framework 的机制这种机制可以在平台内吸收每个机器人的规格差异并且从服务应用程序的角度来说还能凭借通用的API 来使用多个机器人。 在RoIS 的概念中机器人的功能是以HRI 组件为单位而机器人本身是以多个HRI 组件构成的HRI 引擎为单位描述的图8.8。 往系统新追加机器人时要把表示HRI 引擎结构的配置信息注册到UNR-PF 上。只要UNR-PF 从服务应用程序接收到一个记录有用户想利用的功能清单就会搜索具备这些功能的机器人将服务和机器人自动进行配对以实现远程操作。因为所有机器人里面都记载了硬件的运行方法所以服务应用程序能够使用HRI 引擎的通用API 来控制机器人。 RoIS Framework 是经OMG 认定的国际标准规格。它还跟使用RT 中间件和ROS 构建的系统之间具有很高的兼容性能够应用于多种硬件。
功能2服务环境的数据共享 需要综合并管理各种各样的信息才能让机器人提供服务例如机器人周边的地图和物体等空间信息机器人使用者的信息机器人的管理信息等。 UNR-PF 还作为这些数据的管理基础发挥着作用。它为服务应用程序和机器人提供空间明细、机器人明细、用户明细等多样的数据库图8.9。 如果想让机器人在店铺中从事导购工作那么还能够实现以下这样的服务用面部识别和RFID 来进行用户个人信息认证并基于以往的购买信息推荐商品。
8.3.3 RoboEarth RoboEarth 是欧盟EU第七研发框架计划FP7的一环是欧洲多所大学和企业共同进行的软件开发项目。他们以“云机器人的实现”为目标开发了支持ROS 的软件组件。所有成果都以开源的形式公开用GitHub 等软件就能获得这些成果。 首先RoboEarth 的简要概念如图8.10 所示。RoboEarth 中的云环境大体上由两个要素构成负责保存周边地图和环境中物体信息的信息管理基础RoboEarth 数据库以及云端上的执行处理基础Rapyuta。 云引擎Rapyuta Rapyuta 会在云端复制一个机器人的运算处理环境将其作为Linux容器。Rapyuta 准备了ROS 节点的接口机器人会将其识别为普通的ROS 节点。这样一来就可以不顾及云端和本地的界限用普通的ROS图结构实现云机器人的执行环境。 我们来为大家介绍一个Rapyuta 应用实例即在RoboEarth 中多个机器人相互协调来制作一张地图的例子图8.11。机器人连接着用于跟RGB-D 传感器通信的主板拍摄下的数据统统会被传送到云端。然后这些数据会在Rapyuta 上合成最后制成能被数个机器人共享的地图数据。 通过利用云环境即使是便宜的硬件也能进行这种高级的操作就这点而言本实例给了我们一个巨大的冲击。
知识推理引擎KnowRob RoboEarth 不仅有Rapyuta 和RoboEarth 数据库还有几个与二者联动运行的应用程序。 KnowRob 是为机器人而生的知识推理引擎。除去RoboEarth 数据库中积累的数据以外它还会把Web 上的信息对人类行为观察的结果以及机器人获取的传感器信息等都整合成知识地图——本体图ontologymap令机器人自主执行任务。 打个比方假设我们给机器人下达了一个“烤薄煎饼”的任务那么机器人就会基于地图中的信息推导和提取薄煎饼的制作方法、制作顺序、制作材料等知识自主地去实现烤薄煎饼的操作图8.12。我们也可以自己制作知识地图帮助机器人执行多样化的任务。 RoboEarth 于2014 年1 月终止了与开发项目有关的活动但开发成果还继续在ROS 社区中为人们所用。最近也出现了把UNR-PF 和KnowRob 联动的研究事例。虽然云机器人的发展才刚刚开始但相信今后还会陆续开发出各种各样的软件。 由于参考书本身的时效限制这里介绍的两个平台都是相对发展较早的。近年来我国也涌现了许多卓越的云机器人平台如百度领衔的机器人AI华为领衔的“OpenHarmony星火计划”等等感兴趣可以查阅相关资料了解了解。
8.4 物联网和机器人的未来 各类用于构建机器人系统的开源软件的出现如RT 中间件和ROS急剧降低了以往机器人开发中存在的额外负担。除此之外云机器人正在成为一门向复杂环境中例如我们的家庭中导入机器人时不可或缺的技术。 从软件开发的角度来说机器人开发社区依然停留在以大学为中心的研究开发阶段还无法实现成熟的商业化。不过开发者必须意识到机器人是设备进化所导致的必然结果。 为了将来能向复杂的环境中导入机器人开发者需要能够分析当下存在的问题并向客户提示可以利用机器人技术RT等来解决这些问题。当然要想做到上述内容一方面必须要具备与RT 相关的知识另一方面还需要研究客户想实现的服务内容以及为此需要怎样利用机器人。 有一点大家需要注意即我们在第3 章曾介绍说硬件开发的难度同样适用于机器人因此原型设计和提前验证的重要程度就又上升了一个档次。尤其是对于那些在人类附近活动的机器人而言需要具备很强的安全性和稳定性。不能光提前预想还要在实地反复进行验证减少发生意外状况的可能性这一点是非常重要的。 服务机器人现在正好处在开始走出实验室往民间普及应用的阶段。开发者需要把机器人作为设备融入物联网服务之中学习如何将两者整合为一个完整的系统。