[套装书]ROS机器人项目开发11例(原书第2版)+精通ROS机器人编程(原书第2版)(2册)

作者
拉姆库玛·甘地那坦 郎坦·约瑟夫 郎坦·约瑟夫乔纳森·卡卡切
丛书名
机器人设计与制作系列
出版社
机械工业出版社
ISBN
9782101251132
简要
简介
内容简介书籍计算机书籍 ---------------------------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进行复杂机器人设计、建模、仿真和交互的实用技术、工具和编程技巧,包含大量示例,可以为你快速提升ROS实战技能提供翔实参考。 全书共15章,第1章简要介绍ROS基本概念;第2章解释如何使用ROS软件包;第3章讨论7-DOF机械臂和差速驱动机器人的设计;第4章和第5章通过示例详细讲解如何使用Gazebo和V-REP这两个著名的机器人仿真软件;第6章介绍如何使用ROS MoveIt!和导航软件包集的现有功能;第7章讨论ROS pluginlib、小节点和控制器等一些高级概念;第8章进一步讨论RViz插件和ROS控制器;第9章讨论一些硬件组件与ROS的接口;第10章讨论如何使用ROS连接各种视觉传感器,并利用开源计算机视觉库(OpenCV)和点云库(PCL)进行编程;第11章介绍如何构建差速驱动的自主移动机器人,并将其与ROS连接;第12章介绍MoveIt!的高级功能;第13章讨论如何将Matlab和Simulink软件与ROS连接;第14章介绍ROS-Industrial软件包;第15章讨论如何在ROS中安装集成开发环境,并介绍ROS实战技巧与调试方法。
目录



---------------------------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
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


---------------------------精通ROS机器人编程(原书第2版)---------------------------


译者序
前言
作者简介
译者简介
第1章 ROS简介 1
1.1 为什么要学习ROS 1
1.2 在机器人开发中,人们为什么更愿意选择ROS 2
1.3 为什么有些人不愿意选择ROS 3
1.4 理解ROS的文件系统 4
1.4.1 ROS软件包 5
1.4.2 ROS超软件包 7
1.4.3 ROS消息 7
1.4.4 ROS服务 9
1.5 理解ROS的计算图 9
1.5.1 ROS节点 11
1.5.2 ROS消息 12
1.5.3 ROS话题 13
1.5.4 ROS服务 13
1.5.5 ROS消息记录包 14
1.5.6 ROS节点管理器 14
1.5.7 应用ROS参数 16
1.6 ROS的社区 17
1.7 学习ROS需要做哪些准备 17
1.8 习题 20
1.9 本章小结 20
第2章 ROS编程入门 21
2.1 创建一个ROS软件包 21
2.1.1 学习ROS话题 23
2.1.2 创建ROS节点 23
2.1.3 编译生成节点 26
2.2 添加自定义的msg和srv文件 28
2.3 使用ROS服务 30
2.3.1 使用ROS动作库 34
2.3.2 编译ROS动作服务器和客户端 37
2.4 创建启动文件 39
2.5 话题、服务和动作库的应用 41
2.6 维护ROS软件包 41
2.7 发布ROS软件包 42
2.7.1 准备发布ROS软件包 43
2.7.2 发布软件包 43
2.7.3 为ROS软件包创建维基页面 45
2.8 习题 47
2.9 本章小结 47
第3章 在ROS中为3D机器人建模 48
3.1 机器人建模的ROS软件包 49
3.2 利用URDF理解机器人建模 50
3.3 为机器人描述创建ROS软件包 52
3.4 创建我们的第一个URDF模型 52
3.5 详解URDF文件 54
3.6 在RViz中可视化机器人3D模型 55
3.7 向URDF模型添加物理属性和碰撞属性 57
3.8 利用xacro理解机器人建模 58
3.8.1 使用属性 58
3.8.2 使用数学表达式 59
3.8.3 使用宏 59
3.9 将xacro转换为URDF 59
3.10 为7-DOF机械臂创建机器人描述 60
3.10.1 机械臂规格 61
3.10.2 关节类型 61
3.11 解析7-DOF机械臂的xacro模型 61
3.11.1 使用常量 61
3.11.2 使用宏 62
3.11.3 包含其他xacro文件 62
3.11.4 在连杆中使用网格模型 63
3.11.5 使用机器人夹爪 63
3.11.6 在RViz中查看7-DOF机械臂 63
3.12 为差速驱动移动机器人创建机器人模型 66
3.13 习题 70
3.14 本章小结 70
第4章 使用ROS和Gazebo进行机器人仿真 71
4.1 使用Gazebo和ROS仿真机械臂 71
4.2 为Gazebo创建机械臂仿真模型 72
4.2.1 为Gazebo机器人模型添加颜色和纹理 73
4.2.2 添加transmission标签来驱动模型 74
4.2.3 添加gazebo_ros_control插件 74
4.2.4 在Gazebo中添加3D视觉传感器 75
4.3 仿真装有Xtion Pro的机械臂 76
4.4 在Gazebo中使用ROS控制器 78
4.4.1 认识ros_control软件包 78
4.4.2 不同类型的ROS控制器和硬件接口 79
4.4.3 ROS控制器如何与Gazebo交互 79
4.4.4 将关节状态控制器和关节位置控制器连接到手臂 80
4.4.5 在Gazebo中启动ROS控制器 81
4.4.6 控制机器人的关节运动 83
4.5 在Gazebo中仿真差速轮式机器人 83
4.5.1 将激光雷达添加到机器人中 85
4.5.2 在Gazebo中控制机器人移动 86
4.5.3 在启动文件中添加关节状态发布者 87
4.6 添加ROS遥控节点 88
4.7 习题 89
4.8 本章小结 89
第5章 用ROS和V-REP进行机器人仿真 91
5.1 安装带有ROS的V-REP 91
5.2 理解vrep_plugin 95
5.2.1 使用ROS服务与V-REP交互 96
5.2.2 使用ROS话题与V-REP交互 98
5.3 使用V-REP和ROS仿真机械臂 101
5.4 在V-REP下仿真差速轮式机器人 107
5.4.1 在V-REP中添加激光传感器 109
5.4.2 在V-REP中添加3D视觉传感器 110
5.5 习题 112
5.6 本章小结 112
第6章 ROS MoveIt!与导航软件包集 113
6.1 安装MoveIt! 113
6.2 使用配置助手工具生成MoveIt!配置软件包 118
6.2.1 第1步:启动配置助手工具 118
6.2.2 第2步:生成自碰撞矩阵 120
6.2.3 第3步:增加虚拟关节 120
6.2.4 第4步:添加规划组 121
6.2.5 第5步:添加机器人姿态 122
6.2.6 第6步:设置机器人的末端执行器 122
6.2.7 第7步:添加被动关节 123
6.2.8 第8步:作者信息 123
6.2.9 第9步:生成配置文件 123
6.3 使用MoveIt!配置软件包在RViz中进行机器人运动规划 124
6.3.1 使用RViz运动规划插件 125
6.3.2 MoveIt!配置软件包与Gazebo的接口 128
6.4 理解ROS导航软件包集 133
6.4.1 ROS导航硬件的要求 133
6.4.2 使用导航软件包 134
6.5 安装ROS导航软件包集 136
6.6 使用SLAM构建地图 136
6.6.1 为gmapping创建启动文件 137
6.6.2 在差速驱动机器人上运行SLAM 138
6.6.3 使用amcl和静态地图实现自主导航 141
6.6.4 创建amcl启动文件 141
6.7 习题 144
6.8 本章小结 144
第7章 使用pluginlib、小节点和Gazebo 插件 145
7.1 理解pluginlib 145
7.2 理解ROS小节点 151
7.3 理解Gazebo插件 156
7.4 习题 160
7.5 本章小结 160
第8章 ROS控制器和可视化插件编程 161
8.1 理解 ros_control软件包集 162
8.1.1 controller_interface软件包 162
8.1.2 控制器管理器 164
8.2 使用ROS编写一个基本的关节控制器 164
8.2.1 第1步:创建控制器软件包 165
8.2.2 第2步:创建控制器头文件 165
8.2.3 第3步:创建控制器源文件 166
8.2.4 第4步:控制器源文件解析 166
8.2.5 第5步:创建插件描述文件 167
8.2.6 第6步:更新package.xml文件 168
8.2.7 第7步:更新CMake-Lists.txt文件 168
8.2.8 第8步:编译控制器 168
8.2.9 第9步:编写控制器配置文件 168
8.2.10 第10步:编写控制器的启动文件 169
8.2.11 第11步:在Gazebo中运行控制器和7-DOF机械臂 169
8.3 理解ROS可视化工具(RViz)及其插件 171
8.3.1 Displays面板 172
8.3.2 RViz工具栏 172
8.3.3 Views面板 172
8.3.4 Time面板 172
8.3.5 可停靠面板 172
8.4 编写用于遥控操作的RViz插件 172
8.5 习题 178
8.6 本章小结 178
第9章 将ROS与I/O开发板、传感器、执行机构连接 179
9.1 理解Arduino-ROS接口 179
9.2 Arduino-ROS接口是什么 180
9.2.1 理解ROS中的rosserial软件包 181
9.2.2 理解Arduino中的ROS节点API 185
9.2.3 ROS-Arduino发布者和订阅者实例 187
9.2.4 Arduino-ROS接口实例——LED灯闪烁/按按钮 190
9.2.5 Arduino-ROS接口实例——ADXL 335加速度计 192
9.2.6 Arduino-ROS接口实例——超声波测距传感器 194
9.2.7 Arduino-ROS接口实例——里程计发布者 197
9.3 非Arduino开发板与ROS接口 199
9.3.1 在Odroid-XU4和树莓派2上配置ROS 199
9.3.2 用ROS控制树莓派2 上的LED灯闪烁 206
9.3.3 在树莓派2上使用ROS测试按钮和LED灯闪烁 208
9.3.4 在树莓派2上运行示例 211
9.4 将DYNAMIXEL驱动器连接到ROS 212
9.5 习题 212
9.6 本章小结 212
第10章 用ROS对视觉传感器编程、OpenCV、PCL 213
10.1 理解ROS-OpenCV开发接口软件包 213
10.2 理解ROS-PCL开发接口软件包 214
10.3 在ROS中连接USB相机 216
10.4 ROS与相机校准 218
10.4.1 使用cv_bridge在ROS和OpenCV之间转换图像 221
10.4.2 使用ROS和OpenCV进行图像处理 221
10.5 在ROS中连接Kinect与华硕Xtion Pro 225
10.6 将英特尔Real Sense相机与ROS连接 228
10.7 在ROS中连接Hokuyo激光雷达 232
10.8 处理点云数据 233
10.8.1 如何发布点云 234
10.8.2 如何订阅和处理点云 235
10.8.3 将点云数据写入点云数据(PCD)文件 236
10.8.4 从PCD文件中读取并发布点云 237
10.9 物体姿态估计与AR标记检测 239
10.10 习题 243
10.11 本章小结 244
第11章 在ROS中构造与连接差速驱动移动机器人 245
11.1 Chefbot DIY移动机器人及其硬件配置 246
11.1.1 使用Energia IDE来烧写Chefbot固件 248
11.1.2 讨论Chefbot的ROS软件包接口 249
11.1.3 从编码器计数计算里程计信息 254
11.1.4 根据ROS twist消息计算马达转速 256
11.1.5 为Chefbot机器人配置导航软件包集 257
11.1.6 配置gmapping节点 257
11.1.7 配置导航软件包集 259
11.1.8 理解AMCL 264
11.1.9 在RViz中使用导航功能 267
11.1.10 导航软件包中避障 272
11.1.11 Chefbot机器人仿真 273
11.1.12 从ROS节点向导航软件包集发送一个目的地 276
11.2 习题 278
11.3 本章小结 278
第12章 探索ROS-MoveIt!的高级功能 279
12.1 使用move_group的C++接口进行运动规划 279
12.1.1 使用MoveIt! C++ API规划随机路径 280
12.1.2 使用MoveIt! C++ API规划自定义路径 281
12.2 使用MoveIt!进行机械臂的碰撞检测 283
12.2.1 向MoveIt!添加碰撞对象 283
12.2.2 从规划场景中移除碰撞对象 286
12.2.3 向机器人连杆上添加一个碰撞对象 286
12.2.4 使用MoveIt! API检查自碰撞 287
12.3 使用MoveIt!和Gazebo处理视觉 288
12.4 使用MoveIt!执行拾取和放置任务 294
12.4.1 使用GPD计算抓握姿态 297
12.4.2 在Gazebo和真实机器人上执行拾取和放置动作 300
12.5 理解用于机器人硬件接口的DYNAMIXEL ROS伺服控制器 300
12.5.1 DYNAMIXEL伺服舵机 300
12.5.2 DYNAMIXEL-ROS接口 301
12.6 7-DOF机械臂与ROS MoveIt! 302
12.6.1 为COOL机械臂创建一个控制器软件包 303
12.6.2 COOL机械臂的MoveIt!配置 306
12.7 习题 308
12.8 本章小结 308
第13章 在MATLAB和Simulink中使用ROS 309
13.1 学习使用MATLAB与MATLAB-ROS 309
13.1.1 机器人系统工具箱和ROS-MATLAB接口入门 310
13.1.2 ROS话题和MATLAB回调函数 313
13.1.3 为Turtlebot机器人设计一个避障系统 317
13.2 学习使用ROS与Simulink 321
13.2.1 在Simulink中创建波形信号积分器 321
13.2.2 在Simulink中使用ROS消息 323
13.2.3 在Simulink中发布ROS消息 323
13.2.4 在Simulink中订阅ROS话题 327
13.3 用Simulink开发一个简单的控制系统 328
13.4 习题 332
13.5 本章小结 332
第14章 ROS与工业机器人 333
14.1 理解ROS-Industrial软件包 333
14.1.1 ROS-Industrial的目标 334
14.1.2 ROS-Industrial简史 334
14.1.3 ROS-Industrial优点 334
14.2 安装ROS-Industrial软件包 334
14.3 ROS-Industrial软件包框图 335
14.4 为工业机器人创建URDF 336
14.5 为工业机器人创建MoveIt!配置 337
14.5.1 更新MoveIt!配置文件 340
14.5.2 测试MoveIt!配置 341
14.6 安装UR机械臂的ROS-Industrial软件包 341
14.7 理解UR机械臂的MoveIt!配置 343
14.8 使用真实的UR机器人和ROS-I 345
14.9 ABB机器人的MoveIt!配置 346
14.10 ROS-Industrial机器人支持软件包 349
14.11 ROS-Industrial 机器人客户端软件包 351
14.12 ROS-Industrial 机器人驱动软件包 352
14.13 理解MoveIt! IKFast插件 354
14.14 为ABB IRB 6640机器人创建MoveIt! IKFast插件 354
14.14.1 开发MoveIt! IKFast插件的前提条件 354
14.14.2 OpenRave和IKFast模块 354
14.15 为使用OpenRave,创建机器人的COLLADA文件 357
14.16 为IRB 6640机器人生成IKFast CPP文件 358
14.17 习题 361
14.18 本章小结 361
第15章 调试方法与最佳实战技巧 362
15.1 在Ubuntu中安装RoboWare Studio 362
15.1.1 安装和卸载RoboWare Studio 363
15.1.2 RoboWare Studio入门 363
15.1.3 在RoboWare Studio中创建ROS软件包 364
15.1.4 在RoboWare Studio中编译ROS工作区 366
15.1.5 在RoboWare Studio中运行ROS节点 367
15.1.6 在RoboWare界面启动ROS工具 368
15.1.7 处理活动的ROS话题、节点和服务 369
15.1.8 使用RoboWare工具创建ROS节点和类 370
15.1.9 RoboWare Studio中的ROS软件包管理器 371
15.2 ROS的最佳实战技巧与经验 372
15.3 ROS软件包中的最佳实战技巧与经验 374
15.4 ROS中的重要调试技巧 374
15.5 习题 377
15.6 本章小结 378

推荐

车牌查询
桂ICP备20004708号-3