《ROS入门实例》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:(美)R.帕特里克·戈贝尔著;(墨)J.罗哈斯,刘柯汕,彭也益,刘振东,李家能,黄玲玲译
  • 出 版 社:广州:中山大学出版社
  • 出版年份:2016
  • ISBN:9787306055118
  • 页数:230 页
图书介绍:本书是一部介绍机器人操作系统(机器人系统编程)的专业性读物。全书内容包括ROS基础知识,操作系统以及相关代码、模拟器安装,导航与路径规划,语音识别与合成,机器人视觉系统与视觉组合,Dynamixel伺服机。

1本书目标 1

2真实机器人和模拟机器人 3

2.1 Gazebo,Stage和ArbotiX模拟器 3

2.2 关于TurtleBot, Maxwell和Pi机器人的简介 4

3操作系统和ROS版本 5

3.1 安装Ubuntu Linux 5

3.2 开始使用Linux 6

3.3 更新和升级注意事项 6

4回顾ROS基础知识 7

4.1 安装ROS 7

4.2 安装rosinstall 7

4.3 用Catkin建立ROS程序包 7

4.4 创建catkin工作空间 8

4.5 使用catkin的清除命令 8

4.6 重新构建单独的catkin包 9

4.7 混合使用catkin和rosbuild工作空间 9

4.8 学习ROS官方教程 10

4.9 RViz : ROS可视化工具 11

4.10 在程序中使用ROS参数 11

4.11 使用rqt_reconfigure(即旧版本的dynamic reconfigure)来设置ROS参数 11

4.12 机器人与桌面计算机之间联网 13

4.12.1 时间同步 13

4.12.2 使用Zeroconf进行ROS联网 13

4.12.3 测试连通性 14

4.12.4 设置ROS_MASTER_URI和ROS_HOSTNAME变量 14

4.12.5 打开新的终端 15

4.12.6 在两台设备上运行节点 15

4.12.7 通过互联网进行ROS联网 16

4.13 ROS回顾 17

4.14 ROS应用是什么? 17

4.15 使用SVN、Git、 Mercurial安装数据包 18

4.15.1 SVN 18

4.15.2 Git 19

4.15.3 Mercurial 19

4.16 从个人catkin目录移除数据包 20

4.17 如何寻找第三方ROS数据包 21

4.17.1 搜索ROS Wiki 21

4.17.2 使用roslocate命令 21

4.17.3 浏览ROS软件索引 22

4.17.4 使用Google搜索 22

4.18 获取更多关于ROS的帮助 22

5安装ros-by-example代码 24

5.1 安装必备组件 24

5.2 复制Hydro ros-by-example代码资源 24

5.2.1 从Electric或者Fuerte版本升级 24

5.2.2 从Groovy版本升级 24

5.2.3 复制Hydro的rbx1代码资源 25

5.3 关于本书的代码列表 26

6安装Arbotix模拟器 27

6.1 安装模拟器 27

6.2 测试模拟器 27

6.3 在模拟器上运行你自己的机器人 28

7控制移动底座 31

7.1 单位长度和坐标系 31

7.2 运动控制的分层 31

7.2.1 发动机、轮子和编码器 31

7.2.2 发动机控制器和驱动程序 32

7.2.3 ROS底座控制器 32

7.2.4 使用ROS中move_base包的基于框架的运动 33

7.2.5 使用ROS的gmapping包和amcl包的SLAM 33

7.2.6 语义目标 33

7.2.7 总结 34

7.3 ROS中Twist消息和轮子转动 34

7.3.1 Twist消息的例子 35

7.3.2 用RViz监视机器人运动 35

7.4 对你的机器人进行测量校准 37

7.4.1 线速度校准 38

7.4.2 角速度校准 39

7.5 发送Twist消息给机器人 40

7.6 从ROS节点发布Twist消息 41

7.6.1 通过定时和定速估计距离和角度 41

7.6.2 在ArbotiX模拟器上进行计时前进并返回运动 41

7.6.3 计时前进并返回运动的脚本 42

7.6.4 用现实的机器人执行计时前进并返回 48

7.7 我们到了吗?根据测量来到达目的距离 49

7.8 测量并前进返回 51

7.8.1 在ArbotiX模拟器上基于测量的前进返回 51

7.8.2 在现实的机器人上基于测量的前进返回 52

7.8.3 基于测量的前进返回脚本 53

7.8.4 话题/odom与框架/odom的对比 60

7.9 使用测量走正方形 60

7.9.1 在ArbotiX模拟器中走正方形 60

7.9.2 让现实的机器人走正方形 61

7.9.3 脚本nav_square.py 62

7.9.4 Dead Reckoning造成的问题 63

7.10 遥控你的机器人 63

7.10.1 使用键盘 63

7.10.2 使用Logitech游戏摇杆 64

7.10.3 使用ArbotiX控制器图形界面 65

7.10.4 用交互标识遥控TurtleBot 66

7.10.5 编写你自己的遥控节点 66

8导航,路径规划和SLAM 67

8.1 使用move_ base包进行路径规划和障碍物躲避 67

8.1.1 用move_ base包指定导航目标 68

8.1.2 配置路径规划的参数 69

8.2 在ArbotiX模拟器测试move_ base 71

8.2.1 在RViz通过点击导航 75

8.2.2 RViz的导航显示类型 76

8.2.3 用move_ base导航走正方形 76

8.2.4 避开模拟障碍物 83

8.2.5 在显示障碍物时手动设置导航目标 85

8.3 在现实的机器人上运行move_ base 86

8.3.1 没有障碍物的情况下测试move_ base 86

8.3.2 把深度摄像头作为模拟激光避开障碍物 87

8.4 使用gmapping程序包完成地图建立 89

8.4.1 激光扫描器还是深度相机 89

8.4.2 收集和记录扫描数据 91

8.4.3 建立地图 93

8.4.4 从数据包中建立地图 93

8.4.5 我能拓展或者修改现有地图吗? 95

8.5 使用Map和amcl进行导航和定位 95

8.5.1 用假的定位来测试amcl 95

8.5.2 在真实的机器人中使用amcl 97

8.5.3 全自动导航 99

8.5.4 在模拟中进行导航测试 99

8.5.5 理解导航测试的脚本 101

8.5.6 在真实的机器人中进行导航测试 107

8.5.7 接下来该做什么? 108

9语音识别及语音合成 109

9.1 安装语音识别PocketSphinx 109

9.2 测试PocketSphinx识别器 109

9.3 创建词汇库 111

9.4 语音控制导航脚本 112

9.4.1 在模拟器ArbotiX中测试语音控制 118

9.4.2 在真实的机器人上使用语音控制 119

9.5 安装及测试文字转语音系统Festival 120

9.5.1 在ROS Node中使用文字转语音系统 121

9.5.2 测试talkback.py脚本 124

10机器人的视觉系统 125

10.1 OpenCV、OpenNI和PCL 125

10.2 关于摄像机分辨率的一些注意事项 125

10.3 安装和测试ROS摄像机驱动 126

10.3.1 安装OpenNI 驱动 126

10.3.2 安装Webcam 驱动 126

10.3.3 测试Kinect或者Xtion摄像机 126

10.3.4 测试USB网络摄像头 127

10.4 在Ubuntu Linux上安装OpenCV 128

10.5 ROS和OpenCV:cv_bridge程序包 129

10.6 ros2opencv2.py模块 135

10.7 处理储存的视频 136

10.8 OpenCV:计算机视觉的开源库 137

10.8.1 人脸检测 137

10.8.2 使用GoodFeaturesToTrack进行关键点检测 144

10.8.3 使用Optical Flow跟踪关键点 149

10.8.4 构建一个更好的人脸追踪器 155

10.8.5 动态添加和抛弃关键点 159

10.8.6 颜色块追踪(CamShift) 160

10.9 OpenNI和骨架追踪 167

10.9.1 检查您Hydro的OpenNi安装情况 167

10.9.2 在RViz上查看骨架 168

10.9.3 在你的程序中访问骨架图 168

10.10 PCL轻节点和3D点云 176

10.10.1 PassThrough过滤器 177

10.10.2 将多个PassThrough过滤器结合 178

10.10.3 VoxelGrid过滤器 179

11组合视觉与底座控制 181

11.1 关于摄像机坐标系的注意事项 181

11.2 物体跟踪器 181

11.2.1 使用rqt_plot测试物体跟踪器 181

11.2.2 使用模拟的机器人测试物体跟踪器 182

11.2.3 理解物体跟踪器的代码 182

11.2.4 在真实的机器人上的物体跟踪器 189

11.3 物体跟随器 190

11.3.1 为物体跟踪器增加深度 190

11.3.2 在模拟的机器人上测试物体跟随器 194

11.3.3 在真实的机器人上的物体跟随器 195

11.4 人跟随器 195

11.4.1 在模拟器中测试跟随器应用 196

11.4.2 理解跟随器脚本 196

11.4.3 在TurtleBot上运行跟随器应用 201

11.4.4 在过滤后的点云上运行跟随器节点 202

12 Dynamixel伺服机和ROS 203

12.1 具备能抬头摇头的头部的Turtlebot 204

12.2 选择一个Dynamixel硬件控制器 204

12.3 关于Dynamixel硬件的注意事项 204

12.4 选择一个ROS里的Dynamixel程序包 205

12.5 理解ROS中关节状态消息类型 205

12.6 控制关节位置、速度和转矩 206

12.6.1 设置伺服机位置 207

12.6.2 设置伺服机速度 207

12.6.3 控制伺服机转矩 207

12.7 检查USB2 Dynamixel连接 208

12.8 设置伺服机硬件ID 209

12.9 配置和启动dynamixel_ controllers 210

12.9.1 dynamixel_ controllers配置文件 210

12.9.2 dynamixel_ controllers启动文件 211

12.10 测试伺服机 212

12.10.1 打开控制器 213

12.10.2 在RViz中监控机器人 213

12.10.3 列出控制器的话题和监控关节状态 214

12.10.4 列出控制器的服务 215

12.10.5 设置伺服机的位置、速度和转矩 216

12.10.6 使用relax_all_ servos…py脚本 217

12.11 跟踪一个可见目标 218

12.11.1 跟踪脸部 218

12.11.2 头部跟踪器脚本 219

12.11.3 跟踪有颜色的物体 226

12.11.4 跟踪手动选择的目标 227

12.12 一个完整的头部跟踪ROS应用 228

13下一步? 230