[套装书]ROS机器人编程实践+ROS机器人开发实践(2册)

作者
伯纳多·朗奎洛·贾蓬 胡春旭
丛书名
机器人设计与制作系列
出版社
机械工业出版社
ISBN
9782108271030
简要
简介
内容简介书籍计算机书籍 ---------------------------8083413 - ROS机器人编程实践--------------------------- 本书首先介绍GoPiGo3及其配备的传感器和执行器。然后,通过从零开始创建3D模型并使用Gazebo在ROS中运行模拟机器人来使用GoPiGo3的数字孪生模型。接下来展示如何使用GoPiGo3构建和运行一个了解周围环境的自主移动机器人。还探索了机器人如何学习尚未在代码中编程但通过观察其环境而获得的任务。本书甚至还涵盖深度学习和强化学习等主题。在本书的末尾,读者将熟悉在机器人技术中构建特定用途应用程序的基础知识,并具备从零起步开发高度智能自主机器人的能力。本书适合机器人技术人员和业余爱好者阅读。 ---------------------------7991375 - ROS机器人开发实践--------------------------- 本书在介绍ROS总体框架和理论要点的基础上,讲解ROS的通信机制、常用组件和进阶功能;同时以实践为主,讲解机器视觉、机器听觉、SLAM与导航、机械臂控制、机器学习等多种ROS应用的主要原理和实现方法;并分析基于ROS的机器人系统设计方法和典型实例;后论述ROS2的框架特点和使用方法,剖析ROS的发展方向。
目录
[套装书具体书目]
7991375 - ROS机器人开发实践 - 9787111598237 - 机械工业出版社 - 定价 99
8083413 - ROS机器人编程实践 - 9787111689157 - 机械工业出版社 - 定价 89



---------------------------8083413 - ROS机器人编程实践---------------------------


译者序
前言
作者简介
审校者简介
第一部分 物理机器人组装与测试
第1章 组装机器人 2
1.1GoPiGo3机器人介绍 2
1.1.1机器人技术角度 3
1.1.2编程角度 3
1.1.3机器人套件和资源 4
1.2熟悉嵌入式硬件 7
1.2.1GoPiGo3开发板 7
1.2.2Raspberry Pi 3B+ 9
1.2.3为什么机器人需要CPU 10
1.3深入理解机电 10
1.4整合到一起 17
1.5快速硬件测试 18
1.5.1资源 18
1.5.2DexterOS入门 19
1.5.3用Bloxter编程 20
1.5.4校准机器人 20
1.5.5驱动机器人 22
1.5.6检查传感器 22
1.5.7关闭机器人 23
1.6总结 23
1.7习题 24
1.8进一步阅读 24
第2章 GoPiGo3的组件测试 25
2.1技术要求 25
2.2Python和JupyterLab入门 25
2.2.1为GoPiGo3启动JupyterLab 26
2.2.2硬件测试 29
2.3传感器和驱动的组件测试 32
2.3.1快速入门传感器和电动机 32
2.3.2机器人漫游 32
2.3.3距离传感器 35
2.3.4伺服软件包 40
2.3.5巡线跟随器 42
2.3.6IMU 43
2.3.7Raspberry Pi 43
2.3.8GoPiGo3项目 45
2.4总结 46
2.5习题 46
2.6进一步阅读 47
第3章 ROS入门 48
3.1技术要求 48
3.2ROS基本概念 49
3.2.1ROS图 50
3.2.2roscore 51
3.2.3工作空间和catkin 51
3.3配置ROS开发环境 52
3.3.1安装ROS 52
3.3.2集成开发环境 55
3.4ROS节点之间的通信—消息和主题 56
3.4.1创建工作空间 56
3.4.2设置ROS软件包 60
3.4.3发布主题的节点 62
3.4.4订阅主题的节点 65
3.4.5在同一节点中合并发布者和订阅者 67
3.5对ROS使用公开可用的软件包 69
3.6总结 69
3.7习题 70
3.8进一步阅读 70
第二部分 使用Gazebo进行
机器人仿真
第4章 创建虚拟两轮ROS机器人 72
4.1技术要求 72
4.2RViz机器人可视化入门 73
4.3使用URDF构建差动驱动机器人 74
4.3.1用于GoPiGo3的URDF概述 75
4.3.2机器人主体URDF 76
4.3.3左右轮的URDF模型 79
4.4使用RViz在ROS中查看GoPiGo3模型 81
4.4.1理解roslaunch命令 82
4.4.2通过RViz控制GoPiGo3机器人的车轮 84
4.5URDF模型中的机器人参考坐标系 86
4.6在构建时使用RViz查看模型 88
4.6.1在RViz窗口中更改模型的外观 88
4.6.2使用ROS工具进行检查 89
4.7总结 90
4.8习题 90
4.9进一步阅读 91
第5章 使用Gazebo进行机器人行为仿真 92
5.1技术要求 92
5.2Gazebo仿真器入门 93
5.3修改机器人URDF 96
5.3.1扩展URDF以生成SDF机器人定义 97
5.3.2碰撞和物理性质 97
5.3.3Gazebo标签 99
5.4验证Gazebo模型并查看URDF 99
5.5移动模型 102
5.6总结 105
5.7习题 105
5.8进一步阅读 106
第三部分 使用SLAM进行自主导航
第6章 在ROS中编程—命令和工具 108
6.1技术要求 109
6.2设置物理机器人 109
6.2.1下载并设置Ubuntu Mate 18.04 109
6.2.2访问自定义 110
6.2.3设置VNC服务器(x11vnc) 110
6.2.4Geany IDE 112
6.2.5安装GoPiGo3和DI传感器的驱动程序 112
6.2.6设置Pi Camera 114
6.2.7安装ROS Melodic 115
6.3ROS编程快速入门 116
6.3.1设置工作空间 116
6.3.2克隆ROS软件包 117
6.3.3第一次执行ROS节点 117
6.4案例研究1:编写ROS距离传感器软件包 118
6.4.1创建一个新软件包 119
6.4.2编写自己的源代码 119
6.5使用ROS命令 125
6.5.1Shell命令 125
6.5.2执行命令 126
6.5.3信息命令 127
6.5.4软件包和catkin工作空间 128
6.6创建并运行发布者和订阅者节点 129
6.7使用roslaunch自动执行节点 131
6.8案例研究2:ROS GUI开发工具—Pi Camera 133
6.8.1使用rqt_graph分析ROS图 134
6.8.2使用rqt_image_view显示图像数据 135
6.8.3用rqt_plot绘制传感器数据的时间序列 135
6.8.4使用rqt_bag播放录制的ROS会话 136
6.9使用ROS参数自定义机器人功能 138
6.10总结 140
6.11习题 140
6.12进一步阅读 141
第7章 机器人控制与仿真 142
7.1技术要求 142
7.2设置GoPiGo3开发环境 143
7.3案例研究3:使用键盘进行远程控制 146
7.3.1在机器人中运行gopigo3节点 146
7.3.2遥控软件包 149
7.3.3在笔记本电脑上运行远程操作 149
7.4使用ROS主题进行远程控制 151
7.4.1运动控制主题—/cmd_vel 151
7.4.2使用/cmd_vel直接驱动GoPiGo3 152
7.4.3检查GoPiGo3的X、Y和Z轴 154
7.4.4组合运动 154
7.5远程控制物理和虚拟机器人 155
7.5.1将ROS主节点还原到本地计算机 155
7.5.2用Gazebo仿真GoPiGo3 156
7.5.3同时在真实世界和仿真中运行 158
7.6总结 159
7.7习题 160
7.8进一步阅读 160
第8章 使用Gazebo进行虚拟SLAM和导航 162
8.1技术要求 162
8.1.1ROS导航软件包 163
8.1.2在本地计算机上运行ROS主节点 164
8.2使用Gazebo进行动态仿真 164
8.3导航组件 171
8.4机器人感知和SLAM 172
8.4.1添加LDS 172
8.4.2SLAM概念 176
8.5使用GoPiGo3练习SLAM和导航 178
8.5.1探索使用SLAM构建地图的环境 178
8.5.2使用导航沿着计划的轨迹行驶 180
8.6总结 182
8.7习题 182
8.8进一步阅读 183
第9章 用于机器人导航的SLAM 184
9.1技术要求 184
9.2为机器人准备LDS 186
9.2.1设置YDLIDAR 186
9.2.2与Raspberry Pi集成 188
9.2.3从远程笔记本电脑处理YDLIDAR数据 193
9.3在ROS中创建导航应用程序 195
9.4使用GoPiGo3练习导航 196
9.4.1绘制环境图 196
9.4.2在现实世界中导航GoPiGo3 198
9.5总结 199
9.6习题 199
9.7进一步阅读 199
第四部分 使用机器学习的
自适应机器人行为
第10章 在机器人技术中应用机器学习 202
10.1技术要求 202
10.2在系统中配置TensorFlow 203
10.2.1安装pip 203
10.2.2安装TensorFlow及其他依赖项 204
10.2.3使用GPU获得更好的性能 204
10.3机器人技术中的机器学习 205
10.3.1机器学习的核心概念 206
10.3.2机器学习线程 207
10.4从机器学习到深度学习 208
10.4.1机器学习算法 208
10.4.2深度学习和神经网络 210
10.5通过编程将机器学习应用于机器人技术的方法 213
10.5.1应用程序编程的一般方法 213
10.5.2集成机器学习任务 214
10.6深度学习应用于机器人技术—计算机视觉 215
10.6.1Gazebo中的目标识别 216
10.6.2现实世界中的目标识别 217
10.7总结 220
10.8习题 220
10.9进一步阅读 221
第11章 使用OpenAI Gym进行机器学习 222
11.1技术要求 223
11.2OpenAI Gym简介 224
11.2.1安装OpenAI Gym 224
11.2.2安装OpenAI ROS 226
11.2.3智能体、人工智能和机器学习 226
11.2.4倒立摆示例 227
11.2.5Q-learning说明—自动驾驶出租车示例 231
11.3运行环境 235
11.4配置环境文件 236
11.5运行仿真并绘制结果 237
11.6总结 240
11.7习题 240
11.8进一步阅读 241
第12章 通过强化学习实现目标 242
12.1技术要求 242
12.2使用TensorFlow、Keras和Anaconda配置环境 243
12.2.1TensorFlow后端 243
12.2.2使用Keras进行深度学习 244
12.2.3ROS依赖软件包 244
12.3了解ROS机器学习软件包 244
12.3.1训练场景 245
12.3.2用于运行强化学习任务的ROS软件包结构 245
12.4设置训练任务参数 246
12.5训练GoPiGo3避开障碍物到达目标位置 247
12.5.1如何运行仿真 249
12.5.2场景1—前往目标位置 249
12.5.3场景2—避开障碍物前往目标位置 251
12.6总结 255
12.7习题 256
12.8进一步阅读 256
附录 习题答案 257



---------------------------7991375 - ROS机器人开发实践---------------------------


推荐序一
推荐序二
推荐序三
前言
第1章 初识ROS 1
1.1 ROS是什么 1
1.1.1 ROS的起源 1
1.1.2 ROS的设计目标 2
1.1.3 ROS的特点 3
1.2 如何安装ROS 4
1.2.1 操作系统与ROS版本的选择 4
1.2.2 配置系统软件源 6
1.2.3 添加ROS软件源 6
1.2.4 添加密钥 7
1.2.5 安装ROS 7
1.2.6 初始化rosdep 8
1.2.7 设置环境变量 8
1.2.8 完成安装 9
1.3 本书源码下载 9
1.4 本章小结 10
第2章 ROS架构 11
2.1 ROS架构设计 11
2.2 计算图 12
2.2.1 节点 12
2.2.2 消息 13
2.2.3 话题 13
2.2.4 服务 13
2.2.5 节点管理器 14
2.3 文件系统 14
2.3.1 功能包 14
2.3.2 元功能包 16
2.4 开源社区 17
2.5 ROS的通信机制 17
2.5.1 话题通信机制 18
2.5.2 服务通信机制 19
2.5.3 参数管理机制 20
2.6 话题与服务的区别 20
2.7 本章小结 21
第3章 ROS基础 22
3.1 第一个ROS例程——小乌龟仿真 23
3.1.1 turtlesim功能包 23
3.1.2 控制乌龟运动 24
3.2 创建工作空间和功能包 25
3.2.1 什么是工作空间 25
3.2.2 创建工作空间 26
3.2.3 创建功能包 27
3.3 工作空间的覆盖 28
3.3.1 ROS中工作空间的覆盖 28
3.3.2 工作空间覆盖示例 28
3.4 搭建Eclipse开发环境 30
3.4.1 安装Eclipse 30
3.4.2 创建Eclipse工程文件 30
3.4.3 将工程导入Eclipse 31
3.4.4 设置头文件路径 31
3.4.5 运行/调试程序 32
3.5 RoboWare简介 35
3.5.1 RoboWare的特点 35
3.5.2 RoboWare的安装与使用 36
3.6 话题中的Publisher与Subscriber 37
3.6.1 乌龟例程中的Publisher与Subscriber 37
3.6.2 如何创建Publisher 37
3.6.3 如何创建Subscriber 40
3.6.4 编译功能包 41
3.6.5 运行Publisher与Subscriber 42
3.6.6 自定义话题消息 44
3.7 服务中的Server和Client 46
3.7.1 乌龟例程中的服务 46
3.7.2 如何自定义服务数据 47
3.7.3 如何创建Server 48
3.7.4 如何创建Client 49
3.7.5 编译功能包 51
3.7.6 运行Server和Client 51
3.8 ROS中的命名空间 52
3.8.1 有效的命名 52
3.8.2 命名解析 53
3.8.3 命名重映射 54
3.9 分布式多机通信 54
3.9.1 设置IP地址 55
3.9.2 设置ROS_MASTER_URI 56
3.9.3 多机通信测试 56
3.10 本章小结 57
第4章 ROS中的常用组件 58
4.1 launch启动文件 58
4.1.1 基本元素 58
4.1.2 参数设置 60
4.1.3 重映射机制 61
4.1.4 嵌套复用 61
4.2 TF坐标变换 62
4.2.1 TF功能包 62
4.2.2 TF工具 63
4.2.3 乌龟例程中的TF 65
4.2.4 创建TF广播器 67
4.2.5 创建TF监听器 68
4.2.6 实现乌龟跟随运动 70
4.3 Qt工具箱 70
4.3.1 日志输出工具(rqt_console) 71
4.3.2 计算图可视化工具(rqt_graph) 71
4.3.3 数据绘图工具(rqt_plot) 72
4.3.4 参数动态配置工具(rqt_reconfigure) 73
4.4 rviz三维可视化平台 73
4.4.1 安装并运行rviz 74
4.4.2 数据可视化 75
4.4.3 插件扩展机制 76
4.5 Gazebo仿真环境 78
4.5.1 Gazebo的特点 78
4.5.2 安装并运行Gazebo 78
4.5.3 构建仿真环境 81
4.6 rosbag数据记录与回放 82
4.6.1 记录数据 82
4.6.2 回放数据 83
4.7 本章小结 84
第5章 机器人平台搭建 85
5.1 机器人的定义 85
5.2 机器人的组成 86
5.2.1 执行机构 87
5.2.2 驱动系统 87
5.2.3 传感系统 87
5.2.4 控制系统 87
5.3 机器人系统搭建 88
5.3.1 MRobot 88
5.3.2 执行机构的实现 88
5.3.3 驱动系统的实现 89
5.3.4 内部传感系统的实现 90
5.4 基于Raspberry Pi的控制系统实现 90
5.4.1 硬件平台Raspberry Pi 91
5.4.2 安装Ubuntu 16.04 91
5.4.3 安装ROS 93
5.4.4 控制系统与MRobot通信 94
5.4.5 PC端控制MRobot 97
5.5 为机器人装配摄像头 99
5.5.1 usb_cam功能包 99
5.5.2 PC端驱动摄像头 100
5.5.3 Raspberry Pi驱动摄像头 102
5.6 为机器人装配Kinect 104
5.6.1 freenect_camera功能包 104
5.6.2 PC端驱动Kinect 106
5.6.3 Raspberry Pi驱动Kinect 109
5.6.4 Kinect电源改造 109
5.7 为机器人装配激光雷达 110
5.7.1 rplidar功能包 110
5.7.2 PC端驱动rplidar 111
5.7.3 Raspberry Pi驱动rplidar 113
5.8 本章小结 113
第6章 机器人建模与仿真 114
6.1 统一机器人描述格式——URDF 114
6.1.1 标签 114
6.1.2 标签 115
6.1.3 标签 116
6.1.4 标签 116
6.2 创建机器人URDF模型 116
6.2.1 创建机器人描述功能包 116
6.2.2 创建URDF模型 117
6.2.3 URDF模型解析 120
6.2.4 在rviz中显示模型 122
6.3 改进URDF模型 124
6.3.1 添加物理和碰撞属性 124
6.3.2 使用xacro优化URDF 125
6.3.3 xacro文件引用 127
6.3.4 显示优化后的模型 127
6.4 添加传感器模型 128
6.4.1 添加摄像头 128
6.4.2 添加Kinect 130
6.4.3 添加激光雷达 132
6.5 基于ArbotiX和rviz的仿真器 133
6.5.1 安装ArbotiX 133
6.5.2 配置ArbotiX控制器 133
6.5.3 运行仿真环境 135
6.6 ros_control 136
6.6.1 ros_control框架 137
6.6.2 控制器 139
6.6.3 硬件接口 139
6.6.4 传动系统 140
6.6.5 关节约束 140
6.6.6 控制器管理器 141
6.7 Gazebo仿真 142
6.7.1 机器人模型添加Gazebo属性 142
6.7.2 在Gazebo中显示机器人模型 145
6.7.3 控制机器人在Gazebo中运动 147
6.7.4 摄像头仿真 147
6.7.5 Kinect仿真 150
6.7.6 激光雷达仿真 153
6.8 本章小结 155
第7章 机器视觉 156
7.1 ROS中的图像数据 156
7.1.1 二维图像数据 156
7.1.2 三维点云数据 158
7.2 摄像头标定 159
7.2.1 camera_calibration功能包 159
7.2.2 启动标定程序 159
7.2.3 标定摄像头 160
7.2.4 标定Kinect 162
7.2.5 加载标定参数的配置文件 162
7.3 OpenCV库 164
7.3.1 安装OpenCV 164
7.3.2 在ROS中使用OpenCV 164
7.4 人脸识别 166
7.4.1 应用效果 167
7.4.2 源码实现 168
7.5 物体跟踪 170
7.5.1 应用效果 170
7.5.2 源码实现 171
7.6 二维码识别 173
7.6.1 ar_track_alvar功能包 173
7.6.2 创建二维码 174
7.6.3 摄像头识别二维码 175
7.6.4 Kinect识别二维码 178
7.7 物体识别 179
7.7.1 ORK功能包 179
7.7.2 建立物体模型库 181
7.7.3 模型训练 183
7.7.4 三维物体识别 184
7.8 本章小结 185
第8章 机器语音 186
8.1 让机器人听懂你说的话 187
8.1.1 pocketsphinx功能包 187
8.1.2 语音识别测试 188
8.1.3 创建语音库 190
8.1.4 创建launch文件 192
8.1.5 语音指令识别 192
8.1.6 中文语音识别 192
8.2 通过语音控制机器人 193
8.2.1 编写语音控制节点 193
8.2.2 语音控制小乌龟运动 194
8.3 让机器人说话 195
8.3.1 sound_play功能包 195
8.3.2 语音播放测试 195
8.4 人工智能标记语言 196
8.4.1 AIML中的标签 196
8.4.2 Python中的AIML解析器 197
8.5 与机器人对话 198
8.5.1 语音识别 199
8.5.2 智能匹配应答 201
8.5.3 文本转语音 202
8.5.4 智能对话 203
8.6 让机器人听懂中文 204
8.6.1 下载科大讯飞SDK 204
8.6.2 测试SDK 206
8.6.3 语音听写 207
8.6.4 语音合成 209
8.6.5 智能语音助手 211
8.7 本章小结 213
第9章 机器人SLAM与自主导航 214
9.1 理论基础 214
9.2 准备工作 216
9.2.1 传感器信息 217
9.2.2 仿真平台 219
9.2.3 真实机器人 222
9.3 gmapping 224
9.3.1 gmapping功能包 224
9.3.2 gmapping节点的配置与运行 227
9.3.3 在Gazebo中仿真SLAM 228
9.3.4 真实机器人SLAM 231
9.4 hector-slam 234
9.4.1 hector-slam功能包 234
9.4.2 hector_mapping节点的配置与运行 236
9.4.3 在Gazebo中仿真SLAM 237
9.4.4 真实机器人SLAM 238
9.5 cartographer 240
9.5.1 cartographer功能包 240
9.5.2 官方demo测试 241
9.5.3 cartographer节点的配置与运行 244
9.5.4 在Gazebo中仿真SLAM 246
9.5.5 真实机器人SLAM 247
9.6 rgbdslam 249
9.6.1 rgbdslam功能包 249
9.6.2 使用数据包实现SLAM 250
9.6.3 使用Kinect实现SLAM 252
9.7 ORB_SLAM 253
9.7.1 ORB_SLAM功能包 253
9.7.2 使用数据包实现单目SLAM 254
9.7.3 使用摄像头实现单目SLAM 256
9.8 导航功能包 258
9.8.1 导航框架 258
9.8.2 move_base功能包 258
9.8.3 amcl功能包 260
9.8.4 代价地图的配置 263
9.8.5 本地规划器配置 266
9.9 在rviz中仿真机器人导航 267
9.9.1 创建launch文件 267
9.9.2 开始导航 268
9.9.3 自动导航 269
9.10 在Gazebo中仿真机器人导航 277
9.10.1 创建launch文件 277
9.10.2 运行效果 278
9.10.3 实时避障 279
9.11 真实机器人导航 280
9.11.1 创建launch文件 280
9.11.2 开始导航 282
9.12 自主探索SLAM 282
9.12.1 创建launch文件 282
9.12.2 通过rviz设置探索
目标 283
9.12.3 实现自主探索SLAM 284
9.13 本章小结 286
第10章 MoveIt!机械臂控制 287
10.1 MoveIt!系统架构 288
10.1.1 运动组(move_group) 288
10.1.2 运动规划器(motion_planner) 290
10.1.3 规划场景 291
10.1.4 运动学求解器 291
10.1.5 碰撞检测 291
10.2 如何使用MoveIt! 292
10.3 创建机械臂模型 292
10.3.1 声明模型中的宏 292
10.3.2 创建六轴机械臂模型 294
10.3.3 加入Gazebo属性 299
10.3.4 显示机器人模型 300
10.4 使用Setup Assistant配置机械臂 302
10.4.1 加载机器人URDF模型 303
10.4.2 配置自碰撞矩阵 304
10.4.3 配置虚拟关节 304
10.4.4 创建规划组 304
10.4.5 定义机器人位姿 307
10.4.6 配置终端夹爪 308
10.4.7 配置无用关节 309
10.4.8 设置作者信息 309
10.4.9 生成配置文件 309
10.5 启动MoveIt! 310
10.5.1 拖动规划 311
10.5.2 随机目标规划 311
10.5.3 初始位姿更新 313
10.5.4 碰撞检测 314
10.6 配置文件 315
10.6.1 SRDF文件 315
10.6.2 fake_controllers.yaml 316
10.6.3 joint_limits.yaml 317
10.6.4 kinematics.yaml 317
10.6.5 ompl_planning.yaml 318
10.7 添加ArbotiX关节控制器 318
10.7.1 添加配置文件 318
10.7.2 运行ArbotiX节点 318
10.7.3 测试例程 319
10.7.4 运行效果 321
10.8 配置MoveIt!关节控制器 322
10.8.1 添加配置文件 323
10.8.2 启动插件 324
10.9 MoveIt!编程学习 324
10.9.1 关节空间规划 324
10.9.2 工作空间规划 328
10.9.3 笛卡儿运动规划 333
10.9.4 避障规划 338
10.10 pick and place示例 345
10.10.1 应用效果 345
10.10.2 创建抓取的目标物体 346
10.10.3 设置目标物体的放置位置 346
10.10.4 生成抓取姿态 346
10.10.5 pick 348
10.10.6 place 348
10.11 Gazebo中的机械臂仿真 349
10.11.1 创建配置文件 350
10.11.2 创建launch文件 350
10.11.3 开始仿真 351
10.12 使用MoveIt!控制Gazebo中的机械臂 353
10.12.1 关节轨迹控制器 354
10.12.2 MoveIt!控制器 355
10.12.3 关节状态控制器 356
10.12.4 运行效果 357
10.13 ROS-I 358
10.13.1 ROS-I的目标 359
10.13.2 ROS-I的安装 359
10.13.3 ROS-I的架构 360
10.14 本章小结 362
第11章 ROS与机器学习 363
11.1 AlphaGo的大脑——Tensor-Flow 364
11.2 TensorFlow基础 364
11.2.1 安装TensorFlow 364
11.2.2 核心概念 366
11.2.3 第一个TensorFlow程序 367
11.3 线性回归 369
11.3.1 理论基础 369
11.3.2 创建数据集 371
11.3.3 使用TensorFlow解决线性回归问题 372
11.4 手写数字识别 374
11.4.1 理论基础 374
11.4.2 TensorFlow中的MNIST例程 377
11.4.3 基于ROS实现MNIST 381
11.5 物体识别 384
11.5.1 安装TensorFlow Object Detection API 385
11.5.2 基于ROS实现动态物体识别 388
11.6 本章小结 390
第12章 ROS进阶功能 391
12.1 action 391
12.1.1 什么是action 391
12.1.2 action的工作机制 392
12.1.3 action的定义 392
12.1.4 实现action通信 393
12.2 plugin 396
12.2.1 工作原理 396
12.2.2 如何实现一个插件 396
12.2.3 创建基类 397
12.2.4 创建plugin类 398
12.2.5 注册插件 399
12.2.6 编译插件的动态链接库 399
12.2.7 将插件加入ROS 399
12.2.8 调用插件 400
12.3 rviz plugin 401
12.3.1 速度控制插件 402
12.3.2 创建功能包 402
12.3.3 代码实现 402
12.3.4 编译插件 407
12.3.5 运行插件 408
12.4 动态配置参数 409
12.4.1 创建配置文件 410
12.4.2 创建服务器节点 412
12.4.3 参数动态配置 413
12.5 SMACH 414
12.5.1 什么是SMACH 415
12.5.2 状态机“跑”起来 415
12.5.3 状态机实现剖析 416
12.5.4 状态间的数据传递 419
12.5.5 状态机嵌套 421
12.5.6 多状态并行 422
12.6 ROS-MATLAB 423
12.6.1 ROS-MATLAB是什么 423
12.6.2 ROS-MATLAB可以做什么 424
12.6.3 连接MATLAB和ROS 425
12.6.4 MATLAB可视化编程 428
12.6.5 创建可视化界面 429
12.6.6 编辑控件的回调函数 431
12.6.7 运行效果 434
12.7 Web GUI 435
12.7.1 ROS中的Web功能包 435
12.7.2 创建Web应用 436
12.7.3 使用Web浏览器控制机器人 439
12.8 本章小结 440
第13章 ROS机器人实例 441
13.1 PR2 441
13.1.1 PR2功能包 442
13.1.2 Gazebo中的PR2 443
13.1.3 使用PR2实现SLAM 446
13.1.4 PR2机械臂的使用 448
13.2 TurtleBot 450
13.2.1 TurtleBot功能包 451
13.2.2 Gazebo中的TurtleBot 451
13.2.3 使用TurtleBot实现导航功能 453
13.2.4 尝试TurtleBot 3 456
13.3 Universal Robots 457
13.3.1 Universal Robots功能包 458
13.3.2 Gazebo中的UR机器人 459
13.3.3 使用MoveIt!控制UR机器人 460
13.4 catvehicle 462
13.4.1 构建无人驾驶仿真系统 463
13.4.2 运行无人驾驶仿真器 465
13.4.3 控制无人驾驶汽车 466
13.4.4 实现无人驾驶汽车的SLAM功能 467
13.5 HRMRP 469
13.5.1 总体架构设计 469
13.5.2 SLAM与导航 471
13.5.3 多机器人扩展 472
13.6 Kungfu Arm 474
13.6.1 总体架构设计 474
13.6.2 具体层次功能 475
13.6.3 功夫茶应用展示 478
13.7 本章小结 478
第14章 ROS 2 479
14.1 ROS 1存在的问题 480
14.2 什么是ROS 2 481
14.2.1 ROS 2的设计目标 481
14.2.2 ROS 2的系统架构 482
14.2.3 ROS 2的关键中间件——DDS 483
14.2.4 ROS 2的通信模型 483
14.2.5 ROS 2的编译系统 485
14.3 在Ubuntu上安装ROS 2 487
14.3.1 安装步骤 487
14.3.2 运行talker和listener例程 488
14.4 在Windows上安装ROS 2 489
14.4.1 安装Chocolatey 489
14.4.2 安装Python 490
14.4.3 安装OpenSSL 490
14.4.4 安装Visual StudioCommunity 2015 491
14.4.5 配置DDS 491
14.4.6 安装OpenCV 492
14.4.7 安装依赖包 492
14.4.8 下载并配置ROS 2 492
14.4.9 运行talker和listener例程 493
14.5 ROS 2中的话题通信 494
14.5.1 创建工作和功能包 494
14.5.2 创建talker 495
14.5.3 创建listener 497
14.5.4 修改CMakeLists.txt 497
14.5.5 编译并运行节点 498
14.6 自定义话题和服务 499
14.6.1 自定义话题 499
14.6.2 自定义服务 499
14.6.3 修改CMakeLists.txt和package.xml 499
14.6.4 编译生成头文件 499
14.7 ROS 2中的服务通信 500
14.7.1 创建Server 500
14.7.2 创建Client 501
14.7.3 修改CMakeLists.txt 503
14.7.4 编译并运行节点 503
14.8 ROS 2与ROS 1的集成 504
14.8.1 ros1_bridge功能包 504
14.8.2 话题通信 504
14.8.3 服务通信 504
14.9 本章小结 505

推荐

车牌查询
桂ICP备20004708号-3