首页>参考读物>计算机科学与技术>人工智能

ROS机器人项目开发11例
作者 : [印度]朗坦·约瑟夫(Lentin Joseph) 著
译者 : 张瑞雷 刘锦涛 林远山 译
出版日期 : 2018-05-18
ISBN : 978-7-111-59817-6
定价 : 69.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 302
开本 : 16
原书名 : ROS Robotics Projects
原出版社: Packt Publishing Ltd.
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

图书特色

ROS机器人项目开发11例
ROS Robotics Projects
[印度]  朗坦·约瑟夫(Lentin Joseph)  著
      张瑞雷  刘锦涛  林远山  译

图书前言

本书是通过使用有趣的项目学习ROS的实用指南。这本书假设你有一些ROS的知识。但是,如果没有ROS的经验,你仍然可以使用本书开始学习ROS。第1章完全是为初学者准备的。ROS广泛应用于机器人公司、大学和机器人研究实验室,用于设计和编程机器人。如果你想在机器人软件领域工作,或者你想成为一名机器人软件工程师,那么本书十分适合你。
本书的基本目标是通过项目实践讲解ROS。这里讨论的项目也可以在学术或工业项目中重复使用。本书探讨了具有ROS接口的各种新技术。例如,你将看到如何构建自动驾驶汽车的原型,如何使用ROS构建深度学习的应用程序,以及如何在ROS中构建虚拟现实(VR)应用程序。这些只是几个着重提及的主题。此外,你将会学习使用ROS及其库的多个项目和应用程序。
你可以在满足预备条件之后使用各类项目。大多数项目可以在没有很多依赖的情况下完成。我们使用主流和可行的硬件组件来构建大多数项目。因此这使得我们在创建这些项目时不会遇到太多困难。
本书首先讲述了ROS的基础知识及其广泛的应用。第1章可以作为零基础初学者的起点。之后,将深入探讨ROS的各类项目。
我们来学习并用ROS实现酷炫的项目吧!
本书的主要内容
第1章适用于ROS零基础的初学者。如果你没有ROS的相关经验,也不必担心。本章将帮助你了解ROS软件框架及概念。
第2章通过使用ROS和OpenCV库实现一个酷炫的项目。项目本质上是创建了一个人脸跟踪的应用程序,实现了以摄像头始终指向人脸的方式进行跟踪。我们将使用如Dynamixel这样的智能伺服系统使机器人在其轴上旋转。
第3章介绍如何提高机器人的互动性和智能化。该项目在ROS中创建一个可以使用文本或语音进行交流的聊天机器人。如果想要创建聊天或服务机器人,这个项目将会很有用。
第4章可以帮助你使用Arduino、嵌入式兼容板、Raspberry Pi或Odroid以及ROS接口制作机器人。在该章中,你将看到各种嵌入式开发板和与之配套的接口项目。
第5章包括如何使用Arduino和IMU制作手势控制设备。手势由ROS节点转换为运动命令。
第6章介绍检测物体的有趣项目。使用强大的ROS包学习二维物体和三维物体的识别。
第7章介绍了一个在机器人上使用先进技术开发的项目。使用TensorFlow库和ROS,可以实现有趣的深度学习应用程序。你可以使用深度学习实现图像识别,本章还有关于使用SVM的应用程序。
第8章介绍如何使用ROS、MATLAB和Android编写机器人应用程序。
第9章介绍如何在ROS的帮助下制作一个自主移动机器人。你可以了解如何使用导航、gmapping和AMCL等软件包实现机器人自主移动。
第10章介绍了本书中很有趣的一个项目。在该章中,我们将使用ROS和Gazebo实现自动驾驶汽车的仿真。
第11章展示了如何使用VR头戴设备和Leap Motion传感器控制机器人的动作。你可以使用虚拟现实这一前沿技术。
第12章介绍了如何在ROS中使用rosbridge开发交互式Web应用程序。
阅读前的准备工作
一个运行Linux发行版的强大PC,最好是Ubuntu 16.04 LTS。
使用带有独立显卡的笔记本电脑或台式机,推荐4~8GB的内存。主要用于运行Gazebo高端仿真以及处理点云和计算机视觉。
有本书提到的传感器、执行器和I/O板,并且应该能将它们全部连接到PC。
需要安装Git克隆软件包文件。
如果你是Windows用户,那么下载VirtualBox并设置Ubuntu。在VirtualBox中尝试将实际硬件与ROS进行连接时,可能会遇到问题。所以,最好使用Linux系统。
本书的读者对象
如果你是机器人爱好者或研究人员并想了解更多有关使用ROS开发机器人应用程序的信息,本书正是为你准备的。为了学习本书,你应该具备ROS、GNU / Linux和C ++编程等概念的基础知识。这本书也适用于想要探索ROS的高级功能的程序开发人员。

上架指导

人工智能/机器人

封底文字

本书11个ROS机器人项目,在无须大量硬件的情况下可直接实现原型设计。本书首先介绍ROS及其安装过程。在完成基础知识学习之后,将会学习一些非常棒的项目,如构建自动驾驶汽车、自主移动机器人以及使用深度学习和ROS进行图像识别等。这里可以找到适用于初级、中级甚至专家级的各类ROS机器人应用程序!
这本书将是迫切希望在机器人领域大展拳脚的爱好者的完美伴侣。

本书主要内容:
? 使用ROS创建自动驾驶汽车
? 使用深度学习和ROS开发智能机器人应用程序
? 掌握3D目标识别
? 使用虚拟现实和ROS控制机器人
? 使用ROS制作人工智能聊天机器人
? 了解使用ROS进行机器人自主导航的全部功能
? 使用ROS理解人脸检测和跟踪
? 使用手势遥控操作机器人
? 使用Matlab和Android设计基于ROS的应用程序
? 使用Turtlebot实现交互式应用程序

译者序

2007年11月,在SourceForge上ROS项目被第一次提交,到现在已经历经十几年的快速发展,并被广泛应用于各个领域的机器人,包括服务业、工农业、无人驾驶、医学、航空航天以及军事领域,也逐渐成为机器人研究领域中使用最广泛的框架。全球有超过2800名开发人员参与其中,贡献了累计450万行的重要代码,在过去的十多年中,ROS从一个实验室的研发原型逐步成为机器人界通用的行业标准,并实现了各类机器人之间的互联和控制。同时,由于开发社区的活跃,ROS生机勃勃,将思维的创造性和产业的标准化完美融合,不断发展和进步,这也使得ROS的未来必将更加光明。
然而使用ROS进行机器人系统的设计与开发并非易事。机器人学需要扎实的数理基础、强大的编程能力和脑洞大开的思维,涉及机械、电子、控制、计算机、人工智能等多学科的知识和内容,只有掌握了这些“内功”之后,ROS才会成为机器人开发的利器,你才能设计出具备强“肢”、亮“眼”、巧“嘴”和慧“脑”的智能机器人。那么如何快速入门ROS并使用其进行项目开发和设计呢?一本内容丰富的工具书必不可少。
本书涉及使用ROS进行机器人开发的方方面面,并通过项目案例进行讲述,将理论、方法和源码有机统一,既讲解了ROS的基础理论,也突出了ROS机器人研究和应用的最新进展。
本书翻译由易科机器人实验室(exbot.net)组织完成,具体来说,第1~5章和第12章由张瑞雷翻译,第6章由林远山翻译,第7~11章由刘锦涛翻译,张瑞雷对全书内容进行梳理和统稿,刘锦涛对全书进行了修改润色。感谢张梦玲、李胜等人对本书提出的修改建议。

推荐序

推荐序一  Foreword
2017年秋的某一天,突然接到刘锦涛博士的邀请,为其新翻译的书作序。因为与这本书的作者Lentin在学术会中有过交流,而刘锦涛博士又是在中国机器人操作系统(Robot Operating System,ROS)领域德高望重的知识传播者,我欣然接受了他的邀请,也算是为ROS知识书籍的推广尽一点绵薄之力。
随着各项技术的高速发展和逐渐成熟,机器人的时代已逐步到来。机器人技术的发展经历了遥控机器人、可编程机器人、感知机器人,并正在向人工智能机器人快速发展。一批又一批的研究和开发人员在机器人的材料、结构、算法与控制、核心部件、软件、人工智能、人机交互等方面做出了巨大的贡献。我在博士毕业回国后,专注于将图像处理和模式识别应用于机器人行业,因而也进入了机器人研究领域。我相信这本书的大部分读者和我一样,赶上了这个时代,并且很有幸地参与其中。
开源软件是人类信息化快速发展的巨大推动力。自20世纪80年代Richard Stallman启动GNU工程并建立自由软件基金会开始,开源软件对人类的电子信息技术推动起到了功勋卓越的作用(其实,我根本无法找到一个合适的词去描述开源软件的伟大)。在当今的互联网和移动互联网时代,日常信息处理的每一个环节背后几乎都有开源软件的影子。而我个人第一次真正接触开源软件,是在念硕士时期使用GloMoSim对802.11协议MAC层的仿真和性能评估。之后我深深地爱上了开源软件,并且在工作中也一直得益于开源软件的支持,如Lapack++、OpenCV、MSVMpack、GPML等。
开源软件已成为机器人领域的主流发展力量。机器人核心软件是机器人技术的重要组成部分。Willow Garage的前CEO Morgen Quigley博士曾表示:“机器人的核心问题是软件问题。”非常庆幸的是开源软件世界向我们提供了一个重要的机器人软件工具—ROS。ROS向机器人开发者提供了多进程间的通信机制、大量的功能包、系列化的工具,以及一个巨大的开发者社区。正像《MIT Technology Review》所说的那样,ROS已经成为机器人软件界的事实标准。在ROS十周岁生日之际,著名的《Science Robotics》杂志这样评价ROS:“从太空机器人到自动驾驶、工业装配和外科手术,ROS的使命是助力世界机器人。”而IEEE Spectrum则直接将ROS定义为机器人技术界的Linux。
时常有人问我,为什么要用ROS,甚至有些人对于使用ROS嗤之以鼻。其实这个问题的核心是,他们没有认识到ROS的价值。本书在第1章谈到了为什么要用ROS,但我也想谈谈自己对ROS的看法。
松耦合的架构体系。在IT领域中,ROS的通信机制(Plumbing)其实不是什么高深或绝无仅有的技术(没有贬低ROS的意图),进程间通信和消息分发中的发布/订阅机制可由不少开源软件实现,如ZeroMQ、MQTT等,有些甚至效率更高。因此,与其说ROS提供了消息传输,不如说ROS提供了一个标准—信息交互的标准,开发者之间协作的标准。这使得程序结构松耦合、模块化,也便于开发者之间建立协同开发。
开放的授权机制。有不少类似于ROS的机器人开源框架,但形成规模化应用的恐怕就只有ROS了。究其原因,我个人认为与ROS采用BSD的授权机制密不可分。硅谷巨头微软曾开发了Microsoft Robotics Developer Studio,但由于其采用微软一贯的闭源模式,导致其缺乏用户,并于2012年之后没有再更新过。多个其他框架则采用了GPL授权,这为后续的商业应用带来了极大的局限性。ROS采用BSD的授权机制,不仅完全开源,还不限制商业应用,这为机器人的产业化提供了非常重要的基础。
完善的生态圈。第一,ROS在全球拥有几十万人的开发者社区,形成了一个庞大的UGC(User Generated Content)的机器人功能包(package)体系,让后来的开发者可以站在其他开发者的肩膀上继续前行。第二,提供完善的开发支持文档,这也直接大大降低了ROS开源代码的使用门槛,提高了开发效率,并为技术交流和传递提供了很好的手段。第三,越来越多的传感器、控制器、新型结构等机器人部件生产厂家都提供完整的ROS驱动、开发API,让机器人开发变得更方便。第四,生态圈中有大量的高尚的布道者和传播者,不断地编制图书、文章、博客、视频等各种形式的教程,为入门者引领道路,为精进者提供借鉴。
多样的细分领域。在开源社区开发者的持续推动下,ROS在不断演化和发展,形成了一些细分的应用领域,如MoveIt、ROS-Industrial等。形成细分的应用领域意味着更加专注和专业。MoveIt提供运动规划、3D感知、控制、导航等算法。ROS-Industrial将ROS拓展至工业领域,并在硬件接口、人机交互接口、运动及路径规划、工作区建模、移动、感知、开发工具、智能工厂等工业机器人领域做了全面的发展规划。
知识的学习离不开书本。在ROS诞生十周年之际,很高兴看到刘锦涛博士又翻译了一本ROS的著作。虽然在ROS方面已经出版了不少书籍,但本书采用了全新的视角,从完成特定项目以及实现特定功能的维度出发,手把手地教读者实现各种机器人功能,以此构建ROS及周边技术的知识体系。这里既有ROS外延性的开发和工具,如与MATLAB和Android的结合,也有实现ROS构建“小脑”+AI构建“大脑”的方法,如与TensorFlow、OpenCV、语音等的结合;既分享了新型人机交互的方式,如结合VR、手势和Leap Motion实现机器人人机交互等,又给出了构建当前最热的自动驾驶的小方案。此外,本书中还给出了大量ROS周边技术的资源。从机器人技术和ROS开发的学习角度来说,本书是一本不可多得的参考资料。
在这里,我还想着重提一下,在中国的ROS技术推广上,刘锦涛博士贡献了巨大的力量。他创建了易科机器人社区,为机器人开发者提供了交流平台;翻译了数本关于ROS的著作,传播基于ROS的机器人开发知识,为开发者提供了大量参考资料。如果中国有一个机器人界的奥斯卡,我认为应该给他颁发一个特别奉献奖。

汤尼机器人 王滨海
2017年11月14日



Foreword  推荐序二
2017年,我与张瑞雷博士相识于一次机器人教学研讨会上,听了他所做的关于开展机器人ROS教学的实践与体会方面的报告,并开展了交流讨论。在报告以及交流过程中,我深深感到瑞雷博士是一个对机器人教育教学有着极大热情的老师,并且真正投入了极大的精力,为在国内向学生推广机器人操作系统的学习与使用做了很大的贡献(包括在其博客上推广了我所在课题组开发的基于ROS和Gazebo的RoboCup中型组机器人足球仿真系统)。2017年11月15日,瑞雷博士邀请我为他们最新的译著写序,我很愿意为他在ROS教育教学上的新成果的推广尽一份绵薄之力。
自从诞生以来,在过去的十年中,ROS得到了极大的推广和应用,几乎已经成为机器人软件的事实标准,同时也是机器人研究者必须要掌握的标准工具之一。我所在的国防科技大学的移动机器人视觉感知与协同控制研究组自2013年以来一直在使用ROS,深深地体会到了ROS给机器人学术研究与研发带来的便利,使得我们可以站在国际同行的肩膀上开展前沿研究,避免低水平的重复性工作。本书是一本非常好的ROS教材,里面以各种案例的形式,充分展示了如何使用ROS进行机器人系统及关键技术的研发,既紧贴深度学习、无人驾驶等前沿方向,又讲解技术实现的具体过程及代码,非常适合作为ROS初学者的工具书,也适合作为机器人研究人员的参考书。这也是我非常愿意推荐瑞雷博士这本译著的重要原因之一。
祝愿本书的读者享受使用ROS开展机器人技术研究与研发的喜悦,共同推动我国机器人事业的进步!

卢惠民
2017年11月21日于国防科技大学

图书目录

译者序
推荐序一
推荐序二
作者简介
审校者简介
前言
致谢
第1章 入门ROS机器人应用程序开发 1
1.1 ROS入门 2
1.1.1 ROS发行版 2
1.1.2 支持ROS的操作系统 3
1.1.3支持ROS的机器人和传感器 4
1.1.4为什么选择ROS 5
1.2 ROS基础 6
1.2.1文件系统级 7
1.2.2计算图级 8
1.2.3ROS社区级 9
1.2.4ROS通信 9
1.3ROS客户端库 10
1.4ROS工具 11
1.4.1Rviz(ROS可视化) 11
1.4.2rqt_plot 11
1.4.3rqt_graph 12
1.5ROS仿真器 13
1.6在Ubuntu 16.04 LTS上安装ROS Kinetic 13
1.7在VirtualBox上设置ROS 17
1.8设置ROS工作区 19
1.9ROS在工业和研究中的机遇 20
1.10 问题 22
1.11 本章总结 22
第2章 使用ROS、OpenCV和Dynamixel伺服舵机进行人脸检测与跟踪 23
2.1项目概述 23
2.2硬件和软件需求 24
2.3ROS与Dynamixel伺服舵机的接口 33
2.4创建人脸跟踪ROS包 34
2.5人脸跟踪功能包的工作原理 36
2.5.1理解人脸跟踪代码 38
2.5.2理解CMakeLists.txt 41
2.5.3track.yaml文件 43
2.5.4启动文件 43
2.5.5运行人脸跟踪器节点 44
2.5.6face_tracker_control功能包 45
2.5.7 云台控制器配置文件 46
2.5.8舵机参数配置文件 47
2.5.9人脸跟踪控制器节点 47
2.5.10 创建CMakeLists.txt 49
2.5.11 测试人脸跟踪控制功能包 49
2.5.12 集成所有节点 51
2.5.13 固定支架并安装电路 51
2.5.14 最终测试 52
2.6 问题 52
2.7 本章总结 53
第3章 在ROS中构建一个像Siri的聊天机器人 54
3.1人机交互机器人 54
3.2构建人机交互机器人 55
3.3预备条件 56
3.4AIML入门 57
3.4.1AIML标签 57
3.4.2PyAIML解释器 58
3.4.3在Ubuntu 16.04 LTS上安装PyAIML 59
3.4.4使用PyAIML 59
3.4.5加载多个AIML文件 60
3.4.6在ROS中创建AIML机器人 62
3.4.7AIML ROS功能包 62
3.5 问题 70
3.6 本章总结 70
第4章 使用ROS控制嵌入式电路板 71
4.1主流嵌入式电路板入门 71
4.1.1如何选择Arduino开发板 71
4.1.2Raspberry Pi(树莓派)介绍 74
4.1.3Odroid开发板 76
4.2Arduino与ROS的接口 76
4.2.1使用Arduino和ROS监控光线亮度 79
4.2.2在PC上运行ROS串行服务器 81
4.2.3通过mbed连接STM32开发板和ROS 82
4.2.4使用Energia连接ROS与Tiva C Launchpad板 85
4.3在Raspberry Pi和Odroid上运行ROS 87
4.3.1将Raspberry Pi和Odroid连接到PC 88
4.3.2ROS控制GPIO引脚 90
4.4 问题 94
4.5 本章总结 95
第5章 使用手势远程操作机器人 96
5.1使用键盘遥控ROS龟 97
5.2使用手势进行遥控 98
5.3项目配置 100
5.4MPU-9250、Arduino和ROS连接 101
5.5在Rviz中可视化IMU TF 106
5.6将IMU数据转换为twist消息 107
5.7集成和最终运行 109
5.8使用Android手机进行遥控 111
5.9 问题 113
5.10 本章总结 113
第6章 物体检测和识别 114
6.1物体检测和识别的快速入门 114
6.2ROS中的find_object_2d包 116
6.2.1安装find_object_2d包 116
6.2.2运行find_object_2d节点检测网络摄像头图像中的物体 117
6.2.3使用深度传感器运行find_object_2d节点 121
6.33D物体识别快速入门 124
6.4ROS中3D物体识别包的介绍 125
6.5从3D网格中检测和识别物体 127
6.5.1使用物体的3D模型进行训练 127
6.5.2使用捕获的3D模型进行训练 129
6.6识别物体 132
6.7 问题 135
6.8 本章总结 135
第7章 使用ROS和TensorFlow进行深度学习 136
7.1深度学习及其应用简介 136
7.2深度学习机器人 137
7.3深度学习库 138
7.4TensorFlow入门 139
7.4.1在Ubuntu 16.04 LTS上安装TensorFlow 139
7.4.2TensorFlow的概念 141
7.4.3在TensorFlow中编写我们的第一个程序 143
7.5使用ROS和TensorFlow进行图像识别 146
7.5.1前提条件 147
7.5.2ROS图像识别节点 147
7.6scikit-learn介绍 150
7.7SVM及其在机器人中的应用 151
7.8 问题 154
7.9 本章总结 154
第8章 在MATLAB和Android上运行ROS 156
8.1ROS-MATLAB接口入门 156
8.2在MATLAB中设置机器人工具箱 157
8.2.1MATLAB中的基本ROS功能 157
8.2.2列出ROS节点、主题和消息 158
8.3MATLAB与ROS网络通信 160
8.4利用MATLAB控制ROS机器人 163
8.4.1设计MATLAB GUI应用程序 164
8.4.2解释回调 166
8.4.3运行应用程序 168
8.5Android及其ROS接口入门 169
8.5.1安装rosjava 170
8.5.2通过Ubuntu软件包管理器安装android-sdk 172
8.6安装ROS-Android接口 174
8.7使用ROS-Android应用程序 175
8.8代码演练 180
8.9使用ROS-Android接口创建基本应用程序 182
8.10 问题 183
8.11 本章总结 184
第9章 构建自主移动机器人 185
9.1机器人规格和设计概述 185
9.2设计和选择机器人的电动机和轮子 186
9.2.1计算电动机扭矩 186
9.2.2电动机转速的计算 186
9.2.3设计总结 187
9.3构建机器人本体的2D和3D模型 187
9.3.1底盘 187
9.3.2连接杆和空心管设计 188
9.3.3电动机、轮子和电动机夹具设计 189
9.3.4脚轮设计 189
9.3.5中层板和顶层板设计 189
9.3.6顶层板 190
9.3.7机器人的3D建模 191
9.4在Gazebo中进行机器人模型仿真 192
9.5差速驱动机器人的数学模型 192
9.6设计和建造实际的机器人 200
9.6.1电动机和电动机驱动 201
9.6.2电动机编码器 201
9.6.3Tiva C Launchpad 201
9.6.4超声波传感器 201
9.6.5OpenNI深度传感器 201
9.6.6英特尔NUC 201
9.6.7使用Launchpad将传感器
和电动机连接起来 201
9.6.8Tiva C Launchpad编程 202
9.7连接机器人硬件与ROS 205
9.8在Chefbot中进行地图构建和定位 208
9.9 问题 210
9.10 本章总结 210
第10章 使用ROS创建自动驾驶汽车 211
10.1 自动驾驶汽车入门 211
10.2 典型自动驾驶汽车的功能框图 214
10.2.1 自动驾驶汽车的软件框图 218
10.2.2 在ROS中仿真和连接自动驾驶汽车传感器 219
10.3 在Gazebo中仿真一辆带有传感器的自动驾驶汽车 235
10.3.1 安装预备条件 235
10.3.2 可视化机器人车传感器数据 237
10.3.3 在Gazebo里移动一辆自动驾驶汽车 238
10.3.4 使用机器人车运行hector SLAM 238
10.4 将DBW车与ROS连接 239
10.4.1 安装包 240
10.4.2 可视化自动驾驶汽车和传感器数据 240
10.4.3 DBW与ROS通信 242
10.5 Udacity开源自动驾驶汽车项目介绍 242
10.6 问题 245
10.7 本章总结 246
第11章 使用VR头戴设备和Leap Motion遥控机器人 247
11.1 VR头戴设备和Leap Motion入门 248
11.2 项目预备条件 249
11.3 项目的设计和工作原理 250
11.4 在Ubuntu 14.04.5上安装Leap Motion SDK 251
11.4.1 可视化Leap Motion控制器数据 252
11.4.2 使用Leap Motion可视化工具 252
11.4.3 安装Leap Motion控制器的ROS驱动程序 253
11.5 在Rviz中可视化Leap Motion数据 255
11.6 使用Leap Motion控制器创建遥控节点 256
11.7 构建ROS-VR Android应用程序 258
11.8 使用ROS-VR应用程序并与Gazebo进行连接 259
11.9 在VR中使用TurtleBot仿真 262
11.10 ROS-VR应用程序的故障排除 263
11.11 ROS-VR和Leap Motion遥控的集成应用 264
11.12 问题 264
11.13 本章总结 264
第12章 通过网络控制机器人 265
12.1 ROS Web入门 265
12.1.1 rosbridge_suite 265
12.1.2 roslibjs、ros2djs和ros3djs 266
12.1.3 tf2_web_republisher 267
12.2 在ROS Kinetic上设置ROS Web 267
12.2.1 安装rosbridge_suite 267
12.2.2 设置rosbridge客户端库 268
12.3 在ROS Kinetic上安装tf2_web_republisher 269
12.4 在Web浏览器上实现机器人遥控和可视化 269
12.4.1 项目开发 269
12.4.2 连接到rosbridge_server 271
12.4.3 初始化teleop 271
12.4.4 在Web浏览器中创建3D查看器 272
12.4.5 创建TF客户端 272
12.4.6 创建URDF客户端 272
12.4.7 创建文本输入 273
12.4.8 运行Web teleop应用程序 273
12.5 利用网络浏览器控制机器人关节 275
12.5.1 安装joint_state_publisher_js 275
12.5.2 运行网络关节状态发布器 276
12.5.3 解释代码 278
12.5.4 运行机器人监控应用程序 278
12.6 基于Web的语音控制机器人 279
12.6.1 前提条件 280
12.6.2 在Web应用程序中启用语音识别 280
12.7 运行语音控制机器人应用程序 282
12.8 问题 283
12.9 本章总结 284

教学资源推荐
作者: [印度] 卡西克·拉玛苏布兰马尼安(Karthik Ramasubramanian)[印度] 阿布舍克·辛格(Abhishek Singh) 著
作者: [美] 大卫·福赛斯(David Forsyth) 著
作者: [澳] 萨尔曼·汗(Salman Khan) 侯赛因·拉哈马尼(Hossein Rahmani) 赛义德·阿法克·阿里·沙(Syed Afaq Ali Shah) 穆罕默德·本纳努恩(Mohammed Bennamoun) 著
作者: [美]詹姆?普斯特若夫斯基(James Pustejovsky), [美]安伯•斯塔布斯(Amber Stubbs)著
参考读物推荐
作者: 赵涓涓 强彦 主编
作者: [保加利亚]伊凡·瓦西列夫(Ivan Vasilev) 著
作者: (西班牙)恩里克·费尔南德斯(Enrique Fern·ndez)     路易斯·桑切斯·克雷斯波(Luis S·nchez Crespo)     阿尼尔·马哈塔尼(Anil Mahtani)     亚伦·马丁内斯(Aaron Martinez) 著