基本信息
- 作者: Morgan Quigley, Brian Gerkey, William D Smart
- 译者: 张天雷 李博 谢远帆 大伟晓健
- 丛书名: O′Reilly精品图书系列
- 出版社:机械工业出版社
- ISBN:9787111585299
- 上架时间:2017-12-21
- 出版日期:2017 年10月
- 开本:16开
- 版次:1-1
- 所属分类:计算机 > 人工智能 > 智能机器人

内容简介
目录
第一部分 基础知识
第1章 概述 9
简史 9
理念 10
安装 11
小结 12
第2章 预备知识 13
ROS图 13
roscore 15
catkin、工作区以及ROS程序包 16
rosrun 19
命名、命名空间以及重映射 24
roslaunch 25
tab键 26
tf:坐标系转换 27
小结 30
第3章 话题 31
将消息发布到话题上 32
订阅一个话题 36
译者序
经历了十年发展,ROS 已经从原来的小众玩物,成长为全世界机器人技术研发过程中的中坚支撑。无论是室内小型教育机器人,还是大型矿山机械,ROS 都可以让开发都短时间上手,开发出自己期望的产品原型,并不断演进迭代。作为耕耘多年的专家,Morgan和Brian 一直以来都致力于推进ROS 社区发展,他们的贡献得到了大家的认可。
如今他们将技术落实为本书,大纲的设计既照顾了初学者,也照顾了资深技术人员,内容不但包括ROS 关键理念、工具和模式,还包括感知、定位、导航等更加深入的机器人学内容,而且好多代码由Python 实现,使得本书成为不可多得的参考工具书。
能够参与本书的翻译工作是我们的荣幸,也希望能够为ROS 的推广和运用尽到微薄之力。
译者
2017 年9 月
前言
ROS取得了巨大的成功。截止撰写本书之时,官方发行的ROS版本中有超过2000个软件包,并被600多人编写和维护。ROS支持大约80个市场上可以买到的机器人,我们还可以在至少1850篇学术文献中找到ROS的踪影。从此我们不再需要从零开始编写所有程序,特别是当要对众多ROS所支持的机器人中的一个进行开发时,我们可以更加专注于机器人技术本身,而不是“位操作”或者设备驱动。
ROS由许多部分所组成,包含如下这些:
1 一系列可以让你从传感器读取数据以及向电动机等执行机构发送指令的驱动程序,而且这些数据的格式都经过良好的抽象与定义。ROS支持非常多的主流硬件,包括越来越多市场上可以买到的机器人系统。
2 海量且日渐增多的基本机器人算法,让你能够轻松构建世界地图、在其中穿梭、表示并解析传感器数据、规划动作、操纵物体,以及实现许多其他功能。ROS在机器人研究社区中饱受欢迎,因此许多最前沿的算法现在都可以在ROS中找到。
3 充足的计算基础设施,使数据能够四处传递,让众多模块可以连接成一个复杂的机器人系统并帮助你整合算法。ROS天生的分布式架构让你能够轻松地将计算压力无缝地分担到多台计算机上。
4 一系列实用工具,使得对机器人及算法的可视化、错误行为的调试以及传感器数据的录制都变得非常容易。对机器人程序的调试是极为困难的,因此也正是这一系列丰富的工具使得ROS如此强大。
5 最后,ROS具有比其本身更为庞大的ROS生态系统,它的扩展资源众多,包含了一个记录整个框架方方面面的wiki文档,一个专门用于提问与解答的网站,通过该网站你可以寻求帮助并分享自己的所学,以及一个充满使用者与开发者的欣欣向荣的社区。
那么,为什么你需要学习ROS呢?最简单的答案就是,它将会为你节省时间。ROS包含了机器人软件系统的所有部分,没有它,你就只能自己一一编写。ROS使你能够更加专注于系统中你最关心的部分,而无须操心那些你不那么关注的部分。
为什么你需要读这本书?ROS的wiki文档中包含了大量内容,涉及框架中许多方面的详细教程。一个活跃的用户社区(http://answersrosorg)随时准备解答你的问题。为什么不直接通过这些资源学习ROS? 在本书中我们所做的就是以一种更加有序的方式将这些知识呈现给你,并给出容易理解的实例,使你知道如何使用ROS让你的实物或仿真机器人去做些有趣的事。我们还尝试通过提供技巧和提示来给予你各种指导,比如如何整合代码,如何在机器人行为不合预期时调试代码以及如何成为ROS社区的一员。
如果你不是资深程序员,学习ROS会有些吃力,系统中包含了分布式计算、多线程、事件驱动的编程以及深藏在系统底层的一大堆概念。如果你不怎么懂这些内容,你的学习曲线将会非常陡峭。本书通过介绍ROS的基本概念并给出在实物或仿真机器人中的常见应用实例来尽可能地使这条学习曲线变得平缓一些。
谁应该阅读本书
如果你想让你的机器人在现实世界中做一些事情,而又不想把时间浪费在“重新发明轮子”上,那么这本书就是为你准备的。ROS包含了让机器人运转起来所需要的基础架构以及用来驱动机器人做一些有趣事情的足够多的算法。
如果你对某些特别的方面比如路径规划等感兴趣,并且想在完整的机器人系统背景下研究它们,那么这本书就是为你准备的。本书将展示如何使用ROS提供的基础架构和算法来驱动机器人做一些有趣的事情以及如何用你自己的算法替换掉现有的算法。
如果你想要了解ROS基本的运转机制和用法,想要了解ROS大概能做哪些事情,但是又苦于wiki的内容太过庞杂,那么这本书也是为你准备的。我们将带领你了解ROS的运转机制和一些简单的工具。我们也会提供一些具体的、完整的例子,你可以基于这些例子进行开发,修改它们来实现自己的想法。
谁不适合阅读本书
虽然我们不想拒绝任何人阅读本书,但是本书并不是对所有人都适用的资源。我们对你使用的机器人做了一些隐含的假设。它们应该运行Linux,有很好的计算资源(至少相当于一台笔记本电脑)。它们有先进的传感器,比如Microsoft Kinect。它们应该是放在地上的,并且可能需要在实际环境中移动。如果你的机器人不满足上述这些要求,那么本书中的例子就不能立刻成功运行,尽管程序和工具本身并没有问题。
本书主要是关于ROS的,并不是关于机器人学的。尽管你可以从本书中学到一点机器人学相关的知识,但是我们不会深入地探讨ROS中包含的很多算法。如果你想获取更多关于机器人学的介绍,那么这本书不是为你准备的。
你将学到什么
本书想要广泛地介绍如何使用ROS对机器人进行编程。本书涵盖构成ROS核心的基本运转机制和简单工具,并将展示如何使用它们创建控制机器人的软件。我们将展示一些具体的例子,这些例子讲述了如何使用ROS控制你的机器人做一些有趣的事情。同时,我们将给出一些如何基于这些例子来创建你自己的机器人的建议。
媒体评论
O’Reilly为软件开发人员带来革命性的“动物书”;创建第一个商业网站(GNN);组织了影响深远的开放源代码峰会,以至于开源软件运动以此命名;创立了Make杂志,从而成为DIY革命的主要先锋;公司一如既往地通过多种形式缔结信息与人的纽带。O’Reilly的会议和峰会集聚了众多超级极客和高瞻远瞩的商业领袖,共同描绘出开创新产业的革命性思想。作为技术人士获取信息的选择,O’Reilly现在还将先锋专家的知识传递给普通的计算机用户。无论是通过书籍出版,在线服务或者面授课程,每一项O’Reilly的产品都反映了公司不可动摇的理念——信息是激发创新的力量。
业界评论
“O’Reilly Radar博客有口皆碑。”
——Wired
“O’Reilly凭借一系列(真希望当初我也想到了)非凡想法建立了数百万美元的业务。”
——Business 20
“O’Reilly Conference是聚集关键思想领袖的绝对典范。”
——CRN
“一本O’Reilly的书就代表一个有用、有前途、需要学习的主题。”
——Irish Times
“Tim是位特立独行的商人,他不光放眼于最长远、最广阔的视野并且切实地按照Yogi Berra的建议去做了:‘如果你在路上遇到岔路口,走小路(岔路)。’回顾过去Tim似乎每一次都选择了小路,而且有几次都是一闪即逝的机会,尽管大路也不错。”
——Linux Journal