×
机器人设计与制作系列ROS机器人项目开发11例(原书第2版)/机器人设计与制作系列

机器人设计与制作系列ROS机器人项目开发11例(原书第2版)/机器人设计与制作系列

1星价 ¥74.3 (7.5折)
2星价¥74.3 定价¥99.0
暂无评论
图文详情
  • ISBN:9787111672449
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:292
  • 出版时间:2021-01-01
  • 条形码:9787111672449 ; 978-7-111-67244-9

本书特色

适读人群 :本书主要面向学生、机器人技术爱好者、相关领域的专业人员。此外,本书还适用于那些对从头开始学习和编写运动控制与传感器感知程序、算法感兴趣的人。本书甚至可能有助于初创企业开发新产品,或帮助研究人员利用现有资源创造新的创新成果。本书也适用于那些想在软件领域工作或成为机器人软件工程师的人。本书涵盖的项目使用了ROS发行版ROS Melodic Morenia以及Ubuntu Bionic 18.04操作系统。本书将从基本原理开始介绍ROS-2,并阐述它与ROS-1的不同之处。你将能够在ROS中建模和构建工业移动机械臂,并在Gazebo 9中进行模拟。然后,你将了解如何使用状态机处理复杂的机器人应用,以及一次控制多个机器人。本书还将介绍新的流行硬件,如NVIDIA Jetson Nano、华硕Tinkerboard和BeagleBone Black,并介绍其与ROS的接口。你将在构建有趣的ROS项目(如自动驾驶汽车)的同时学习深度学习、强化学习和其他关键的人工智能概念。通过学习本书,你将能够使用ROS建立有趣而复杂的项目。

内容简介

本书共12章,对不同方面的ROS主题进行了较为深入的阐述,包括ROS-1与ROS-2的特性、移动机械臂模拟与应用开发、基于状态机的复杂任务处理(以餐厅服务员机器人为例)、送货机器人应用程序开发、多机器人协同、嵌入式平台ROS应用、强化学习应用、深度学习应用、自动驾驶汽车、基于VR头盔与手势识别传感器的机器人远程操控、基于OpenCV与伺服系统的人脸识别与跟踪等。本书使用ROS发行版ROS Melodic Morenia以及Ubuntu Bionic 18.04操作系统进行项目构建。

目录

目 录  Contents

译者序

前言

作者简介

第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

1.3.4 ROS中的通信 9

1.4 ROS客户端库 10

1.5 ROS工具 11

1.5.1 ROS的可视化工具RViz 11

1.5.2 rqt_plot 11

1.5.3 rqt_graph 12

1.6 ROS模拟器 13

1.7 在Ubuntu 18.04 LTS上安装ROS Melodic 13

1.8 在VirtualBox上设置ROS 18

1.9 Docker简介 19

1.9.1 为什么选择Docker 20

1.9.2 安装Docker 20

1.10 设置ROS工作空间 23

1.11 ROS在工业界和学术界的机遇 25

1.12 本章小结 25

第2章 ROS-2及其特性简介 26

2.1 技术要求 27

2.2 ROS-2概述 27

2.2.1 ROS-2发行版 28

2.2.2 支持的操作系统 28

2.2.3 支持的机器人及传感器 29

2.2.4 为什么选择ROS-2 29

2.3 ROS-2基础 30

2.3.1 什么是DDS 30

2.3.2 DDS的实现 30

2.3.3 计算图 31

2.3.4 ROS-2社区层级 32

2.3.5 ROS-2中的通信 32

2.3.6 ROS-2的变化 33

2.4 ROS-2客户端库 33

2.5 ROS-2工具 34

2.5.1 RViz2 34

2.5.2 Rqt 36

2.6 安装ROS-2 36

2.6.1 开始安装 37

2.6.2 获取ROS-2源码 38

2.6.3 ROS-1、ROS-2以及共存环境设置 41

2.6.4 运行测试节点 42

2.7 设置ROS-2工作空间 44

2.8 编写ROS-2节点 45

2.8.1 ROS-1代码示例 45

2.8.2 ROS-2代码示例 46

2.8.3 ROS-1发布者节点与ROS-2发布者节点的区别 49

2.9 ROS-1和ROS-2的通信 50

2.10 本章小结 52

第3章 构建工业级移动机械臂 53

3.1 技术要求 54

3.2 常见的移动机械臂 54

3.3 移动机械臂应用场景 55

3.4 移动机械臂构建入门 56

3.4.1 单位及坐标系 57

3.4.2 Gazebo及ROS机器人模型格式设定 57

3.5 机器人底座构建 58

3.5.1 机器人底座需求 58

3.5.2 软件参数 60

3.5.3 机器人底座建模 60

3.5.4 机器人底座模拟 64

3.5.5 机器人底座测试 68

3.6 机械臂构建 70

3.6.1 机械臂需求 71

3.6.2 软件参数 72

3.6.3 机械臂建模 72

3.6.4 机械臂模拟 74

3.6.5 机械臂测试 77

3.7 系统集成 78

3.7.1 移动机械臂建模 78

3.7.2 移动机械臂模拟与测试 79

3.8 本章小结 80

第4章 基于状态机的复杂机器人任务处理 81

4.1 技术要求 81

4.2 ROS动作机制简介 82

4.2.1 服务器–客户端结构概述 82

4.2.2 actionlib示例:机械臂客户端 83

4.2.3 基于actionlib的服务器–客户端示例:电池模拟器 85

4.3 服务员机器人应用示例 90

4.4 状态机简介 92

4.5 SMACH简介 93

4.6 SMACH入门 96

4.6.1 SMACH-ROS的安装与使用 96

4.6.2 简单示例 96

4.6.3 餐厅机器人应用示例 98

4.7 本章小结 102

第5章 构建工业级应用程序 103

5.1 技术要求 103

5.2 应用案例:机器人送货上门 104

5.3 机器人底座智能化 106

5.3.1 添加激光扫描传感器 106

5.3.2 配置导航栈 108

5.3.3 环境地图构建 110

5.3.4 机器人底座定位 111

5.4 机械臂智能化 111

5.4.1 Moveit简介 112

5.4.2 安装与配置Moveit 113

5.4.3 通过Moveit控制机械臂 117

5.5 应用程序模拟 120

5.5.1 环境地图构建与保存 120

5.5.2 选择目标点 120

5.5.3 添加目标点 121

5.5.4 状态机构建 121

5.6 机器人改进 121

5.7 本章小结 122

第6章 多机器人协同 123

6.1 技术要求 123

6.2 集群机器人基本概念 124

6.3 集群机器人分类 125

6.4 ROS中的多机器人通信 125

6.4.1 单个roscore和公共网络 126

6.4.2 群组/名称空间的使用 127

6.4.3 基于群组/名称空间的多机器人系统构建示例 128

6.5 多master概念简介 131

6.5.1 multimaster_fkie功能包简介 132

6.5.2 安装multimaster_fkie功能包 133

6.5.3 设置multimaster_fkie功能包 133

6.6 多机器人应用示例 136

6.7 本章小结 138

第7章 嵌入式平台上的ROS应用及其控制 139

7.1 技术要求 139

7.2 嵌入式板基础知识 140

7.2.1 重要概念介绍 141

7.2.2 机器人领域微控制器和微处理器的区别 142

7.2.3 板卡选型步骤 142

7.3 微控制器板简介 143

7.3.1 Arduino Mega 143

7.3.2 STM32 144

7.3.3 ESP8266 145

7.3.4 ROS支持的嵌入式板 146

7.3.5 对比表格 147

7.4 单板计算机简介 147

7.4.1 CPU板 148

7.4.2 GPU板 151

7.5 Debian与Ubuntu 152

7.6 在Tinkerboard S平台上设置操作系统 153

7.6.1 基础需求 153

7.6.2 安装Tinkerboard Debian操作系统 153

7.6.3 安装Armbian和ROS 154

7.6.4 使用可用的ROS镜像安装 156

7.7 在BeagleBone Black平台上设置ROS 156

7.7.1 基础需求 156

7.7.2 安装Debian 操作系统 157

7.7.3 安装Ubuntu和ROS 158

7.8 在Raspberry Pi 3/4平台上设置ROS 159

7.8.1 基础需求 159

7.8.2 安装Raspbian和ROS 159

7.8.3 安装Ubuntu和ROS 160

7.9 在Jetson Nano平台上设置ROS 161

7.10 通过ROS控制GPIO 161

7.10.1 Tinkerboard S 162

7.10.2 BeagleBone Black 163

7.10.3 Raspberry Pi 3/4 164

7.10.4 Jetson Nano 165

7.11 嵌入式板基准测试 166

7.12 Alexa入门及连接ROS 168

7.12.1 Alexa 技能构建前提条件 168

7.12.2 创建Alexa技能 169

7.13 本章小结 173

第8章 强化学习与机器人学 174

8.1 技术要求 174

8.2 机器学习概述 175

8.2.1 监督学习 175

8.2.2 无监督学习 175

8.2.3 强化学习 176

8.3 理解强化学习 176

8.3.1 探索与开发 177

8.3.2 强化学习公式 177

8.3.3 强化学习平台 178

8.3.4 机器人领域的强化学习应用 179

8.4 马尔可夫决策过程与贝尔曼方程 179

8.5 强化学习算法 181

8.5.1 出租车问题应用示例 181

8.5.2 TD预测 182

8.5.3 TD控制 183

8.6 ROS中的强化学习功能包 189

8.6.1 gym-gazebo 189

8.6.2 gym-gazebo2 194

8.7 本章小结 196

第9章 ROS下基于TensorFlow的深度学习 197

9.1 技术要求 197

9.2 深度学习及其应用简介 198

9.3 机器人领域的深度学习 198

9.4 深度学习库 199

9.5 TensorFlow入门 200

9.5.1 在Ubuntu 18.04 LTS上安装TensorFlow 200

9.5.2 TensorFlow概念 202

9.5.3 在TensorFlow下编写**行代码 204

9.6 ROS下基于TensorFlow的图像识别 206

9.6.1 基础需求 207

9.6.2 ROS图像识别节点 207

9.7 scikit-learn简介 210

9.8 SVM及其在机器人领域的应用简介 211

9.9 本章小结 214

第10章 ROS下的自动驾驶汽车构建 215

10.1 技术要求 215

10.2 自动驾驶汽车入门 216

10.3 典型自动驾驶汽车基本组件 218

10.3.1 GPS、IMU和车轮编码器 218

10.3.2 摄像头 219

10.3.3 超声波传感器 219

10.3.4 LIDAR与RADAR 219

10.3.5 自动驾驶汽车的软件模块体系结构 221

10.4 ROS下的自动驾驶汽车模拟与交互 222

10.4.1 Velodyne LIDAR模拟 223

10.4.2 ROS下的Velodyne传感器接口 224

10.4.3 激光扫描仪模拟 225

10.4.4 模拟代码扩展 226

10.4.5 ROS下的激光扫描仪接口 227

10.4.6 Gazebo下的立体与单目摄像头模拟 228

10.4.7 ROS下的摄像头接口 229

10.4.8 Gazebo下的GPS模拟 230

10.4.9 ROS下的GPS接口 231

10.4.10 Gazebo下的IMU模拟 231

10.4.11 ROS下的IMU接口 233

10.4.12 Gazebo下的超声波传感器模拟 233

10.4.13 低成本LIDAR传感器 235

10.5 Gazebo下带传感器的自动驾驶汽车模拟 236

10.6 ROS下的DBW汽车接口 241

10.6.1 功能包安装 241

10.6.2 自动驾驶汽车及传感器数据可视化 241

10.6.3 基于ROS与DBW通信 243

10.7 Udacity开源自动驾驶汽车项目简介 243

10.7.1 Udacity的开源自动驾驶汽车模拟器 244

10.7.2 MATLAB ADAS工具箱 246

10.8 本章小结 246

第11章 基于VR头盔和Leap Motion的机器人遥操作 247

11.1 技术要求 248

11.2 VR头盔和Leap Motion传感器入门 248

11.3 项目设计和实施 250

11.4 在Ubuntu 14.04.5上安装Leap Motion SDK 251

11.4.1 可视化Leap Motion控制器数据 252

11.4.2 使用Leap Motion可视化工具 252

11.4.3 安装用于Leap Motion控制器的ROS驱动程序 253

11.5 RViz中Leap Motion数据的可视化 255

11.6 使用Leap Motion控制器创建遥操作节点 256

11.7 构建ROS-VR Android应用程序 258

11.8 ROS-VR应用程序的使用及与Gazebo的交互 260

11.9 VR下的TurtleBot模拟 262

11.9.1 安装TurtleBot模拟器 262

11.9.2 在VR中控制TurtleBot 262

11.10 ROS-VR应用程序故障排除 263

11.11 ROS-VR应用与Leap Motion遥操作功能集成 264

11.12 本章小结 265

第12章 基于ROS、Open CV和Dynamixel伺服系统的人脸识别与跟踪 266

12.1 技术要求 266

12.2 项目概述 267

12.3 硬件和软件基础需求 267

12.4 使用RoboPlus配置Dynamixel伺服系统 271

12.5 Dynamixel与ROS连接 275

12.6 创建人脸跟踪器ROS功能包 276

12.7 使用人脸跟踪ROS功能包 278

12.7.1 理解人脸跟踪器代码 279

12.7.2 理解CMakeLists.txt 283

12.7.3 track.yaml文件 284

12.7.4 启动文件 284

12.7.5 运行人脸跟踪器节点 285

12.7.6 face_tracker_control功能包 286

12.7.7 平移控制器配置文件 287

12.7.8 伺服系统参数配置文件 287

12.7.9 人脸跟踪控制器节点 288

12.7.10 创建CMakeLists.txt 289

12.7.11 测试人脸跟踪器控制功能包 290

12.7.12 节点集成 291

12.7.13 固定支架并设置电路 291

12.7.14 *终运行 292

12.8 本章小结 292


展开全部

作者简介

拉姆库玛·甘地那坦(Ramkumar Gandhinathan)是一名机器人学家和研究者。他从小学六年级开始制造机器人,在机器人领域钻研已超过15年,亲手打造了80多个不同类型的机器人。他在机器人行业有7年的系统性专业工作经验(4年全职和3年兼职/实习),拥有5年的ROS工作经验。在他的职业生涯中,他使用ROS构建了超过15个工业机器人解决方案。他对制作无人机也很着迷,是一名无人机驾驶员。他的研究兴趣和热情集中在SLAM、运动规划、传感器融合、多机器人通信和系统集成等领域。 郎坦·约瑟夫(Lentin Joseph)是一位来自印度的作家、机器人学家和机器人企业家。他在印度喀拉拉邦的高知市经营一家名为Qbotics Labs的机器人软件公司。他在机器人领域有8年的工作经验,主要致力于ROS、OpenCV和PCL领域。他写过几本关于ROS的书,分别是《机器人系统设计与制作:Python语言实现》《精通ROS机器人编程》《ROS机器人项目开发11例》以及《机器人操作系统(ROS)入门**:机器人编程一学就会》。他在印度获得了机器人学和自动化专业硕士学位,并在美国卡内基–梅隆大学的机器人研究所工作。他也是TEDx演讲者。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航