新書推薦:
《
万千心理·儿童心理治疗中的心智化:临床实践指导
》
售價:NT$
398.0
《
自我囚禁的人:完美主义的心理成因与自我松绑(破除你对完美主义的迷思,尝试打破自我评价过低与焦虑的恶性循环)
》
售價:NT$
301.0
《
周易
》
售價:NT$
203.0
《
东南亚的传统与发展
》
售價:NT$
306.0
《
乾隆制造
》
售價:NT$
398.0
《
资治通鉴臣光曰辑存 资治通鉴目录(司马光全集)(全二册)
》
售價:NT$
1316.0
《
明代社会变迁时期生活质量研究
》
售價:NT$
1367.0
《
律令国家与隋唐文明
》
售價:NT$
332.0
|
內容簡介: |
本书的基本目标是通过项目实践讲解ROS,探讨具有ROS接口的各种新技术。例如,你将看到如何构建自动驾驶汽车的原型,如何使用ROS构建深度学习的应用程序,以及如何在ROS中构建虚拟现实(VR)应用程序。此外,还将介绍使用ROS及其库的大约多个项目和应用程序。
|
關於作者: |
审校者简介
前言
致谢
第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为什么选择ROS5Contents目 录
译者序
推荐序一
推荐序二
作者简介
审校者简介
前言
致谢
第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为什么选择ROS5
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_plot11
1.4.3rqt_graph12
1.5ROS仿真器13
1.6在Ubuntu 16.04 LTS上安装ROS Kinetic13
1.7在VirtualBox上设置ROS17
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.txt41
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.txt49
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上安装PyAIML59
3.4.4使用PyAIML59
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开发板和ROS82
4.2.4使用Energia连接ROS与Tiva C Launchpad板85
4.3在Raspberry Pi和Odroid上运行ROS87
4.3.1将Raspberry Pi和Odroid连接到PC88
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 TF106
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上安装TensorFlow139
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上运行ROS156
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安装rosjava170
8.5.2通过Ubuntu软件包管理器安装android-sdk172
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底盘1
|
目錄:
|
Contents目 录
译者序
推荐序一
推荐序二
作者简介
审校者简介
前言
致谢
第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为什么选择ROS5
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_plot11
1.4.3rqt_graph12
1.5ROS仿真器13
1.6在Ubuntu 16.04 LTS上安装ROS Kinetic13
1.7在VirtualBox上设置ROS17
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.txt41
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.txt49
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上安装PyAIML59
3.4.4使用PyAIML59
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开发板和ROS82
4.2.4使用Energia连接ROS与Tiva C Launchpad板85
4.3在Raspberry Pi和Odroid上运行ROS87
4.3.1将Raspberry Pi和Odroid连接到PC88
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 TF106
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上安装TensorFlow139
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上运行ROS156
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安装rosjava170
8.5.2通过Ubuntu软件包管理器安装android-sdk172
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底盘1
|
內容試閱:
|
前 言Preface本书是通过使用有趣的项目学习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高端仿真以及处理点云和计算机视觉。
有本书提到的传感器、执行器和IO板,并且应该能将它们全部连接到PC。
需要安装Git克隆软件包文件。
如果你是Windows用户,那么下载VirtualBox并设置Ubuntu。在VirtualBox中尝试将实际硬件与ROS进行连接时,可能会遇到问题。所以,最好使用Linux系统。
本书的读者对象如果你是机器人爱好者或研究人员并想了解更多有关使用ROS开发机器人应用程序的信息,本书正是为你准备的。为了学习本书,你应该具备ROS、GNU Linux和C ++编程等概念的基础知识。这本书也适用于想要探索ROS的高级功能的程序开发人员。
致 谢Acknowledgements感谢购买我之前两本ROS书籍的读者。事实上,正是他们的鼓励促使我写了本书。
感谢Packt出版团队为书的出版所提供的支持。没有你们,出书就是一个遥远的梦想。
特别感谢Packt的编辑Amedh Pohad和Namrata Patil,感谢他们在写作过程中的指导和建议。
特别感谢Ruixiang Du等所有审校者对内容的改进和提出的建议,是你们使本书变得更完美。
我生命中最重要的是我的家人,没有他们的支持,我不可能写完本书。我想把这本书奉献给我的父母,他们给了我写作的灵感。这是我关于ROS的第三本书。感谢他们一直以来的支持。
还要感谢我之前的公司ASIMOV Robotics,在本书中为几个项目提供了组件。非常感谢!
再次感谢我的读者。我希望你们也喜欢这本书,我的小小成就都源于你们的支持。
|
|