基本信息
- 作者: 胡春旭(印)朗坦·约瑟夫(Lentin Joseph)
- 译者: 张瑞雷 刘锦涛 林远山
- 丛书名: 机器人设计与制作系列
- 出版社:机械工业出版社
- ISBN:9787201806081
- 上架时间:2018-6-8
- 出版日期:2018 年5月
- 开本:16开
- 版次:1-1
- 所属分类:计算机 > 人工智能 > 智能机器人

编辑推荐
---分割线---
使用ROS创建自动驾驶汽车
使用深度学习和ROS开发智能机器人应用程序
掌握3D目标识别
使用虚拟现实和ROS控制机器人
使用ROS制作人工智能聊天机器人
了解使用ROS进行机器人自主导航的全部功能
使用ROS理解人脸检测和跟踪
使用手势遥控操作机器人
使用Matlab和Android设计基于ROS的应用程序
使用Turtlebot实现交互式应用程序
内容简介
作译者
---分割线---
作者简介
Lentin Joseph是一名来自印度的作家、企业家、电子工程师、机器人爱好者、机器视觉专家、嵌入式程序员以及Qbotics Labs(http://www.qboticslabs.com)的创始人和首席执行官。
他在喀拉拉邦的联邦科学和技术研究所(Federal Institute of Science and Technology,FISAT)获得了电子和通信工程学士学位。在最后一年的工程项目中,制作了一个可以与人互动的聊天机器人。该项目取得了巨大的成功,被各大媒体多次报告。该机器人的主要特点是能够与人沟通、智能回复、具有一定的图像处理能力,如面部、动作、颜色检测等。整个项目使用Python编程语言实现。他对机器人、图像处理和Python的兴趣从此开始。
毕业后,他在一家专门从事机器人和图像处理的创业公司工作了三年。与此同时,他学习了主流的机器人软件平台,如机器人操作系统(ROS)、V-REP和Actin(机器人仿真工具)等,还学习了图像处理库,如OpenCV、OpenNI和PCL等,并且熟悉Arduino和Tiva Launchpad上的机器人三维设计和嵌入式编程。
在积累了三年的工作经验后,他开创了Qbotics Labs公司,主要致力于在机器人和机器视觉等领域开发一些优秀的产品。他负责维护个人网站(http://www.lentinjoseph.com)和技术博客technolabsz(http://www.technolabsz.com),并在科技博客上发表作品。他还是印度PyCon2013的主讲人,主题为“Learning Robotics Using Python”。
Lentin是《Learning Robotics Using Python》(http://learn-robotics.com)和《Mastering ROS for Robotics Programming》(http://mastering-ros.com)两本书的作者,均由Packt出版。第一本书使用ROS和OpenCV制作了一个自主移动机器人。这本书是在ICRA 2015上发布的,在ROS博客、Robohub、OpenCV、Python网站以及其他相关论坛上流传很广。第二本书帮助读者掌握ROS知识,并在ICRA 2016上推出,是最畅销的ROS书籍之一。
Lentin及其团队也是2016年ICRA中HRATC挑战赛的获胜者。该团队也成功入围了ICRA 2015挑战赛HRATC决赛(http://www.icra2016.org/conference/challenges/)。
审校者简介
Ruixiang Du是伍斯特理工学院(Worcester Polytechnic Institute,WPI)机械工程专业的博士研究生。目前在系统和机器人控制实验室工作,主要研究自主移动机器人的运动规划和控制。他于2011年获得华北电力大学自动化学士学位,2013年获得WPI机器人工程硕士学位。
Ruixiang的研究兴趣包括机器人技术和实时嵌入式系统。他曾经从事多种机器人项目,从机器人平台到医疗机器人、无人机/地面车辆、人形机器人等。他是DARPA机器人挑战赛WPI-CMU团队的成员。
目录
---分割线---
译者序
推荐序一
推荐序二
作者简介
审校者简介
前言
致谢
第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
译者序
---分割线---
2007年11月,在SourceForge上ROS项目被第一次提交,到现在已经历经十几年的快速发展,并被广泛应用于各个领域的机器人,包括服务业、工农业、无人驾驶、医学、航空航天以及军事领域,也逐渐成为机器人研究领域中使用最广泛的框架。全球有超过2800名开发人员参与其中,贡献了累计450万行的重要代码,在过去的十多年中,ROS从一个实验室的研发原型逐步成为机器人界通用的行业标准,并实现了各类机器人之间的互联和控制。同时,由于开发社区的活跃,ROS生机勃勃,将思维的创造性和产业的标准化完美融合,不断发展和进步,这也使得ROS的未来必将更加光明。
然而使用ROS进行机器人系统的设计与开发并非易事。机器人学需要扎实的数理基础、强大的编程能力和脑洞大开的思维,涉及机械、电子、控制、计算机、人工智能等多学科的知识和内容,只有掌握了这些“内功”之后,ROS才会成为机器人开发的利器,你才能设计出具备强“肢”、亮“眼”、巧“嘴”和慧“脑”的智能机器人。那么如何快速入门ROS并使用其进行项目开发和设计呢?一本内容丰富的工具书必不可少。
本书涉及使用ROS进行机器人开发的方方面面,并通过项目案例进行讲述,将理论、方法和源码有机统一,既讲解了ROS的基础理论,也突出了ROS机器人研究和应用的最新进展。
本书翻译由易科机器人实验室(exbot.net)组织完成,具体来说,第1~5章和第12章由张瑞雷翻译,第6章由林远山翻译,第7~11章由刘锦涛翻译,张瑞雷对全书内容进行梳理和统稿,刘锦涛对全书进行了修改润色。感谢张梦玲、李胜等人对本书提出的修改建议。
前言
---分割线---
本书是通过使用有趣的项目学习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传感器控制机器人的动作。你可以使用虚拟现实这一前沿技术。
序言
---分割线---
推荐序一
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日
推荐序二
2017年,我与张瑞雷博士相识于一次机器人教学研讨会上,听了他所做的关于开展机器人ROS教学的实践与体会方面的报告,并开展了交流讨论。在报告以及交流过程中,我深深感到瑞雷博士是一个对机器人教育教学有着极大热情的老师,并且真正投入了极大的精力,为在国内向学生推广机器人操作系统的学习与使用做了很大的贡献(包括在其博客上推广了我所在课题组开发的基于ROS和Gazebo的RoboCup中型组机器人足球仿真系统)。2017年11月15日,瑞雷博士邀请我为他们最新的译著写序,我很愿意为他在ROS教育教学上的新成果的推广尽一份绵薄之力。
自从诞生以来,在过去的十年中,ROS得到了极大的推广和应用,几乎已经成为机器人软件的事实标准,同时也是机器人研究者必须要掌握的标准工具之一。我所在的国防科技大学的移动机器人视觉感知与协同控制研究组自2013年以来一直在使用ROS,深深地体会到了ROS给机器人学术研究与研发带来的便利,使得我们可以站在国际同行的肩膀上开展前沿研究,避免低水平的重复性工作。本书是一本非常好的ROS教材,里面以各种案例的形式,充分展示了如何使用ROS进行机器人系统及关键技术的研发,既紧贴深度学习、无人驾驶等前沿方向,又讲解技术实现的具体过程及代码,非常适合作为ROS初学者的工具书,也适合作为机器人研究人员的参考书。这也是我非常愿意推荐瑞雷博士这本译著的重要原因之一。