基本信息
- 作者: 拉姆库玛·甘地那坦 郎坦·约瑟夫 恩里克·费尔南德斯
- 译者: 刘锦涛
- 丛书名: 机器人设计与制作系列
- 出版社:机械工业出版社
- ISBN:9782101251534
- 上架时间:2021-1-25
- 出版日期:2021 年1月
- 开本:16开
- 页码:308
- 版次:1-1
- 所属分类:计算机 > 人工智能 > 智能机器人

编辑推荐
---------------------------ROS机器人项目开发11例(原书第2版)---------------------------
ROS机器人项目开发11例(原书第2版)
ROS Robotics Projects, Second Edition
[印度]?拉姆库玛·甘地那坦(Ramkumar Gandhinathan) 朗坦 · 约瑟夫(Lentin Joseph)?著
潘丽陈媛媛徐茜 吴中红译
内容简介
计算机书籍
---------------------------ROS机器人项目开发11例(原书第2版)---------------------------
本书涵盖新的ROS发行版中的项目——ROS Melodic Morenia with Ubuntu Bionic(18.04)。从基本原理开始,本书向你介绍了ROS-2,并帮助你了解它与ROS-1的不同之处。你将能够在ROS中建模并构建工业移动机械手臂,并在Gazebo 9中进行模拟。然后,你将了解如何使用状态机处理复杂的机器人应用程序,以及一次处理多个机器人。本书还向你介绍了新的、流行的硬件,如Nvidia的Jetson Nano、华硕修补板和Beaglebone Black,并允许你探索与ROS的接口。
---------------------------ROS机器人程序设计(原书第2版)---------------------------
无论是业余爱好者还是专业的机器人开发人员,在开始进行机器人系统及程序设计时,首先要面对的问题都是基本的如何驱动机器人的轮子的设计。ROS通过软件代码复用集成了众多已经开发完成的功能组件。本书专门帮助读者从对ROS一无所知到能够通过ROS系统完成小型机器人系统的开发和编程工作。本书提供了各种实际的示例代码供读者学习和理解ROS的软件框架。你可以在仿真环境中自行构建机器人相应的功能程序。本书第2版在第1版的基础上增加了与ROSHydro一起工作,如何创建、可视化和处理不同传感器的点云信息,如何控制和利用多关节机械臂,并提供简单易懂的实用教程编写自己的机器人。
作译者
---------------------------ROS机器人项目开发11例(原书第2版)---------------------------
关于我们
客户服务
友情链接
---------------------------ROS机器人程序设计(原书第2版)---------------------------
About the Authors 作者简介Enrique Fernández在拉斯帕尔马斯大学获得计算机工程博士学位,目前是Clearpath Robotics公司高级机器人工程师。2009年他完成了关于SLAM的硕士学位论文。2013年他的博士论文解决了自主水下滑翔器(AUG)的路径规划问题。那段时间,他还研究了计算机视觉、人工智能以及其他机器人学课题,例如赫罗纳大学的CIRS/ViCOROB研究实验室AUV的惯性导航系统和视觉SLAM。他在2012年参加了欧洲学生自主水下航行器设计挑战赛(Student Autonomous Underwater Challenge-Europe,SAUC-E)并获奖,在2013年作为合作者参与了SAUC-E。
获得博士学位后,Enrique作为高级机器人工程师在2013年6月加入PAL Robotics公司的自主导航部门。在那里,他开发了用于REEM、REEM-C和移动机器人以及相关项目的软件,如使用ROS框架的Stockbot。他的研究方向包括运动规划(路径规划和移动机器人控制)、机器人定位和SLAM。在2015年,他作为高级自主系统开发人员加盟Clearpath Robotics公司的自主系统部门从事SLAM相关工作。
在学术方面,Enrique发表了多篇会议论文,其中两篇于2011年发表在《International Conference of Robotics and Automation》(ICRA)上。他是Packt Publishing出版的第1版《ROS机器人程序设计》和其他一些书部分章节的作者。他的硕士学位论文是关于室内机器人的FastSLAM算法,此机器人装备了SICK激光扫描仪以及Pioneer差动平台的轮式里程计。他的博士学位论文是关于AUG的路径规划算法和工具。他还拥有电子和嵌入式系统(如PC104和Arduino)的开发经验。他的研究背景包括SLAM、计算机视觉、路径规划、优化、机器人学和人工智能。
我要感谢这本书的合著者,感谢他们为完成这本书所付出的努力以及提供了无数示例的代码。我还要感谢博士论文期间大学智能系统和计算工程研究所(University Institute of Intelligent Systems and Computational Engineering,SIANI)和水下机器人研究中心(Center of Underwater Robotics Research,CIRS/ViCOROB)的研究小组成员。我也要感谢在PAL机器人公司的同事,在那里我学到很多关于ROS、机器人运动以及仿人双足机器人的知识,不仅有软件,还有电子和硬件设计。后,我要感谢我的家人和朋友的帮助与支持。
Luis Sánchez Crespo在拉斯帕尔马斯大学获得了电子与电信工程的双硕士学位。他曾在技术开发和创新研究所(IDETIC)、加那利群岛海洋平台(PLOCAN)和应用微电子研究所(IUMA)与不同的研究小组合作,进行超分辨率算法成像研究。
目录
---------------------------ROS机器人项目开发11例(原书第2版)---------------------------
译者序
前言
作者简介
第1章 ROS入门 1
1.1 技术要求 2
1.2 ROS概述 2
1.2.1 ROS发行版 3
1.2.2 支持的操作系统 3
1.2.3 支持的机器人及传感器 4
1.2.4 为什么选择ROS 5
1.3 ROS基础 6
1.3.1 文件系统层级 7
1.3.2 计算图层级 7
1.3.3 ROS社区层级 9
前言
---------------------------ROS机器人项目开发11例(原书第2版)---------------------------
机器人操作系统(Robot Operating System,ROS),是目前最流行的机器人学中间件,在全世界诸多大学和与机器人相关的行业中得到了广泛应用。自从ROS推出以来,许许多多搭载了ROS的机器人进入市场,用户能够通过其应用程序轻松使用这些机器人。ROS的一个主要特点是它的开源特性。ROS不需要用户重新发明“轮子”;相反,ROS中标准化的机器人操作和应用程序开发十分简单。
本书全面更新和修订了第1版,将介绍更新的ROS功能包、更引人入胜的项目案例以及一些新增特性。本书中的项目案例均基于ROS Melodic Morenia,对应的Ubuntu版本为Ubuntu Bionic 18.04。
通过本书,读者将理解机器人是怎样应用于各行各业的,并将一步步地了解构建异构机器人解决方案的流程与步骤。除了介绍ROS中的服务调用和动作特性之外,本书还将介绍一些更酷的技术,让机器人以智能的方式处理复杂的任务。这些知识将为读者构建更智能、更具自主化能力的机器人铺平道路。此外,我们还将介绍ROS-2,以便读者能够了解此版本与以前的ROS版本之间的差异,并在为应用程序选择特定中间件方面提供帮助。
企业和研究机构主要关注计算机视觉和自然语言处理领域。虽然本书的第1版介绍了一些简单的视觉应用程序,如物体检测和人脸跟踪,但本版还将介绍行业中使用最广泛的智能扬声器平台之一——亚马逊的Alexa,以及如何使用它控制机器人。同时,我们将引入新的硬件,如NVIDIA Jetson Nano、华硕Tinkerboard和BeagleBone Black,并探索它们与ROS融合应用的能力。
虽然人们可能知道如何控制单台机器人,但ROS社区用户面临的最常见问题之一是使用多个机器人协同工作,无论它们是否属于同一类型。在这种情况下,控制问题将变得十分复杂,因为机器人可能遵循相似的话题名称,并可能导致操作序列的混乱。本书将重点针对可能的冲突提出相应的解决方案。
本书还涉及强化学习,包括如何将强化学习应用于机器人学和ROS之中。此外,读者还将发现其他更有趣的项目,如构建自动驾驶汽车、使用ROS进行深度学习,以及使用虚拟现实头盔(VR头盔)和Leap Motion(一种体感控制器)构建遥操作解决方案。目前这些领域的技术还处于发展之中,相应的研究人员正在不断地进行研究。
读者对象
本书主要面向学生、机器人技术爱好者、相关领域的专业人员。此外,本书还适用于那些对从头开始学习和编写运动控制与传感器感知程序、算法感兴趣的人。本书甚至可能有助于初创企业开发新产品,或帮助研究人员利用现有资源创造新的创新成果。本书也适用于那些想在软件领域工作或成为机器人软件工程师的人。
本书主要内容
第1章主要向初学者概述ROS的基础知识。本章将帮助读者理解ROS软件框架的基本思想和概念。
第2章介绍ROS的最新框架——ROS-2。基于该框架,读者将能够使用ROS进行实时应用程序的开发。本章的结构与第1章类似,主要是帮助读者厘清ROS-1与ROS-2之间的区别,同时理解两个版本的能力与局限。
第3章介绍怎样在模拟环境下构建移动机器人以及机械臂,并将两者结合起来,通过ROS 对其进行控制。
第4章介绍基于状态机进行复杂机器人任务处理的技术,这些技术使得读者可以在使用机器人执行连续和复杂的任务管理时进行策略调整。
第5章是第3章、第4章内容的综合应用,基于这两章内容构建一个用户应用程序。该应用程序的功能是控制移动机械臂运送物品。本章将详细介绍上述应用程序的构建过程。
序言
---------------------------ROS机器人程序设计(原书第2版)---------------------------
推荐序一
21世纪是什么样的世纪?是物联网的世纪?是VR的世纪?也许吧,但我更相信21世纪是机器人的世纪。
目前,我国已经步入经济转型的拐点区间,人口红利越来越难以支撑中国经济的发展和进步。在很多行业都已经开始了机器换人、生产工艺升级换代的步伐。工信部、发改委、财政部日前联合印发了《机器人产业发展规划(2016—2020年)》。这份规划指出:“到2020年,我国工业机器人年产量达到10万台,其中六轴及以上机器人达到5万台以上;服务机器人年销售收入超过300亿元,在助老、助残、医疗康复等领域实现小批量生产及应用;要培育3家以上的龙头产业,打造5个以上机器人配套产业集群;工业机器人平均无故障时间要达到8万小时;智能机器人实现创新应用。”从这个规划中可以看出,机器人未来的政策空间和市场发展空间都是非常巨大的。一方面,发展工业机器人在满足我国制造业的转型升级、提质增效,实现“中国制造2025”等方面具有极为重大的意义,是全面推进实施制造强国战略的重要一步。另一方面,从服务机器人来说,也要满足未来市场需求的增长。首先,这包括了基本生活需求,比如说养老、助老、助残等。其次是国家安全需求,比如救灾、抢险、海底勘探、航天、国防。最后还有家庭服务和娱乐机器人,比如娱乐、儿童教育、智能家居应用等。同时,科技部目前也在进行“十三五”科技创新规划战略研究,根据已经披露的内容,其中对机器人(尤其是服务机器人)非常重视,并会在近期遴选并启动一批相应的重大科技项目。
也许看完上面这些,你会觉得这更像是新闻描述,机器人产业真的这么火爆吗?当然。即使刨除工业机器人,只谈其他的智能机器人或服务机器人,这也是一个相当庞大的产业。例如,目前世界上最大的服务机器人公司应该还是美国的直觉外科公司。他们生产的达芬奇机器人系统在全世界已经应用了3000余套,其完成的手术超过千万例。由机器人完成的各类微创手术让无数患者获得新生。这家公司的市值超过300亿美元。中国目前估值最高的机器人公司是大疆创新,其年营收额已经超过10亿美元,估值超过百亿美元。要知道,10年前这家公司刚刚在深圳创立时,还比较弱小。因此,相信机器人产业在未来的前景一定非常广阔。
但是我们也注意到在军用国防、救灾救援、养老、家庭服务、儿童教育等领域,至今没有一个世界级的机器人公司存在。有很多爱好者都希望自己能够制造一个智能轮椅、一个智能儿童教育机器人或是一个家庭服务机器人,也许这样的机器人会像乔布斯和沃兹尼亚克在车库里做出的苹果电脑一样改变世界。但我们看到的很多人,自己只是机械工程师、电气工程师或者自动控制工程师,开发一个控制机器人的软件系统是遥不可及的事情;又或者自己虽然是软件工程师,但是并不知道如何控制和驱动底层设备。这要怎么办呢?没关系, ROS机器人操作系统可以帮忙。
ROS最初是作为科研辅助工具由斯坦福大学开发的。类似的机器人操作系统在世界各国还有很多。有些操作系统面向实时机器人控制,有些操作系统面向机器人仿真,有些操作系统面向用户交互。这些操作系统大部分都相对封闭,各成体系,没有在学术界和产业界造成影响。而由于ROS极大的开放性和包容性,它能够兼容其他机器人开发工具、仿真工具和操作系统,使之融为一体。这使得ROS不断发展壮大,并成为应用和影响力最广泛的机器人软件平台。
随着ROS 2.0的开发,ROS能够兼容除Linux之外更多的操作系统,如Windows、Android;能够支持从工业计算机到Adruino开发板等各类型的硬件;能够采集RGB-D摄像头、普通摄像头和各种类型的传感器数据;能够驱动类人形机器人、四轴飞行器等各类型的机器人。而且新版本的ROS在采用SOA架构的基础上,集成了MVC框架,更加有利于机器人人机交互界面的开发与机器人控制。
学习ROS,本身就是掌握一把通往未来的钥匙。自从本人2012年翻译本书第1版之后,关于ROS的书籍也渐渐多了起来。但和其他书籍相比,本书经过了时间的检验,第2版从内容到示例对学习ROS都更有帮助。希望大家都能够成为机器人软件设计方面的专家。希望在中国的机器人设计领域能够出现新的领军人物,将中国的机器人带入世界一流行列。
刘品杰,本书第1版译者
推荐序二
记得第一次接触ROS的时候我还在学校做研究,当时跟一些海外学者交流时得知有这个专为机器人设计的操作系统。我很是兴奋,一心想把ROS用在我们最新研发的机器人上,于是就马上动手玩起来。由于当时ROS尚在起步阶段,说明文档不太全面,同时社区支持又很少,不知道经过多少折腾才好不容易把它运行起来。体验后发现它的设计框架确实很适合作为机器人敏捷开发工具——算法及控制等代码很容易被复用,避免了很多重复劳动。但奈何当时的功能包不多,而且系统对运算资源要求高,最终没有用在当时的机器人项目上。
由于其开源性以及对商用友好的版权协议,ROS很快得到越来越多的关注及支持。现在ROS已有飞快的发展,越来越多机器人相关的软件工具亦加入ROS的行列。国外一些商用的机器人也开始支持ROS系统,甚至基于ROS进行开发。相信这个趋势会一直持续下去并会蔓延到世界各地。而我亦深深体会到国内对ROS的关注在近年有显著的上升。
从前在国内学习ROS可谓孤军作战,身边没几个人听说过ROS,而且只能从国外网站学习ROS的相关知识,完全没有中文的资料可以查看。幸好国内有不少有心人积极推动ROS的发展,不遗余力地对国外ROS相关的文章进行翻译,并且发表一些原创的教学文章,丰富ROS的中文资源,这使学习ROS变得更方便。
我与本书译者通过共同举办ROS国内推广课程而结缘。他对推动ROS在国内的发展起到了举足轻重的作用,并运营着国内著名的ROS交流社区。本书亦是他贡献ROS中文社群的作品之一。而本书的作者同样是ROS界的权威,有丰富的ROS实战经验,使用ROS进行过多种机器人的开发。书中从ROS的架构概念到常用的调试工具、功能包及传感器的信息处理都有所涉及,是ROS入门必看书之一。希望本书能让你快速进入ROS的世界,探索ROS的精彩。
媒体评论
---------------------------ROS机器人项目开发11例(原书第2版)---------------------------
如今,放置在工作间的重型工业机器人正在被新时代的机器人所取代,这种机器人不需要工作间,它们被广泛应用于制造业、零售业、银行、能源和医疗保健等领域。机器人市场快速增长的主要原因之一是引入了一种叫作机器人操作系统(ROS)的开源机器人技术框架。
本书涵盖的项目使用了ROS发行版ROS Melodic Morenia以及Ubuntu Bionic 18.04操作系统。本书将从基本原理开始介绍ROS-2,并阐述它与ROS-1的不同之处。你将能够在ROS中建模和构建工业移动机械臂,并在Gazebo 9中进行模拟。然后,你将了解如何使用状态机处理复杂的机器人应用,以及一次控制多个机器人。本书还将介绍新的流行硬件,如NVIDIA Jetson Nano、华硕Tinkerboard和BeagleBone Black,并介绍其与ROS的接口。你将在构建有趣的ROS项目(如自动驾驶汽车)的同时学习深度学习、强化学习和其他关键的人工智能概念。通过学习本书,你将能够使用ROS建立有趣而复杂的项目。
通过阅读本书,你将学到:
ROS的基本知识及应用。
ROS- 2与ROS- 1的区别。
使用状态机处理复杂的机器人任务。
实现多个机器人的通信,并构建多机器人协作应用程序。
使用新型嵌入式板(如Tinkerboard S和Jetson Nano)探索ROS功能。
将机器学习和深度学习技术与ROS结合使用。
构建基于ROS的自动驾驶汽车。
使用Leap Motion和VR头盔远程操作机器人。