图书介绍
ROS机器人开发实践PDF|Epub|txt|kindle电子书版本网盘下载
- 胡春旭编著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111598237
- 出版时间:2018
- 标注页数:506页
- 文件大小:194MB
- 文件页数:528页
- 主题词:机器人-程序设计
PDF下载
下载说明
ROS机器人开发实践PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 初识ROS1
1.1 ROS是什么1
1.1.1 ROS的起源1
1.1.2 ROS的设计目标2
1.1.3 ROS的特点3
1.2 如何安装ROS4
1.2.1 操作系统与ROS版本的选择4
1.2.2 配置系统软件源6
1.2.3 添加ROS软件源6
1.2.4 添加密钥7
1.2.5 安装ROS7
1.2.6 初始化rosdep8
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 安装Eclipse30
3.4.2 创建Eclipse工程文件30
3.4.3 将工程导入Eclipse31
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与Subscriber37
3.6.1 乌龟例程中的Publisher与Subscriber37
3.6.2 如何创建Publisher37
3.6.3 如何创建Subscriber40
3.6.4 编译功能包41
3.6.5 运行Publisher与Subscriber42
3.6.6 自定义话题消息44
3.7 服务中的Server和Client46
3.7.1 乌龟例程中的服务46
3.7.2 如何自定义服务数据47
3.7.3 如何创建Server48
3.7.4 如何创建Client49
3.7.5 编译功能包51
3.7.6 运行Server和Client51
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_URI56
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 乌龟例程中的TF65
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 安装并运行rviz74
4.4.2 数据可视化75
4.4.3 插件扩展机制76
4.5 Gazebo仿真环境78
4.5.1 Gazebo的特点78
4.5.2 安装并运行Gazebo78
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 MRobot88
5.3.2 执行机构的实现88
5.3.3 驱动系统的实现89
5.3.4 内部传感系统的实现90
5.4 基于Raspberry Pi的控制系统实现90
5.4.1 硬件平台Raspberry Pi91
5.4.2 安装Ubuntu 16.0491
5.4.3 安装ROS93
5.4.4 控制系统与MRobot通信94
5.4.5 PC端控制MRobot97
5.5 为机器人装配摄像头99
5.5.1 usb_cam功能包99
5.5.2 PC端驱动摄像头100
5.5.3 Raspberry Pi驱动摄像头102
5.6 为机器人装配Kinect104
5.6.1 freenect_camera功能包104
5.6.2 PC端驱动Kinect106
5.6.3 Raspberry Pi驱动Kinect109
5.6.4 Kinect电源改造109
5.7 为机器人装配激光雷达110
5.7.1 rplidar功能包110
5.7.2 PC端驱动rplidar111
5.7.3 Raspberry Pi驱动rplidar113
5.8 本章小结113
第6章 机器人建模与仿真114
6.1 统一机器人描述格式——URDF114
6.1.1 <link>标签114
6.1.2 <joint>标签115
6.1.3 <robot>标签116
6.1.4 <gazebo>标签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优化URDF125
6.3.3 xacro文件引用127
6.3.4 显示优化后的模型127
6.4 添加传感器模型128
6.4.1 添加摄像头128
6.4.2 添加Kinect130
6.4.3 添加激光雷达132
6.5 基于ArbotiX和rviz的仿真器133
6.5.1 安装ArbotiX133
6.5.2 配置ArbotiX控制器133
6.5.3 运行仿真环境135
6.6 ros_control136
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 标定Kinect162
7.2.5 加载标定参数的配置文件162
7.3 OpenCV库164
7.3.1 安装OpenCV164
7.3.2 在ROS中使用OpenCV164
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 下载科大讯飞SDK204
8.6.2 测试SDK206
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 gmapping224
9.3.1 gmapping功能包224
9.3.2 gmapping节点的配置与运行227
9.3.3 在Gazebo中仿真SLAM228
9.3.4 真实机器人SLAM231
9.4 hector-slam234
9.4.1 hector-slam功能包234
9.4.2 hector_mapping节点的配置与运行236
9.4.3 在Gazebo中仿真SLAM237
9.4.4 真实机器人SLAM238
9.5 cartographer240
9.5.1 cartographer功能包240
9.5.2 官方demo测试241
9.5.3 cartographer节点的配置与运行244
9.5.4 在Gazebo中仿真SLAM246
9.5.5 真实机器人SLAM247
9.6 rgbdslam249
9.6.1 rgbdslam功能包249
9.6.2 使用数据包实现SLAM250
9.6.3 使用Kinect实现SLAM252
9.7 ORB_SLAM253
9.7.1 ORB_SLAM功能包253
9.7.2 使用数据包实现单目SLAM254
9.7.3 使用摄像头实现单目SLAM256
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 自主探索SLAM282
9.12.1 创建launch文件282
9.12.2 通过rviz设置探索目标283
9.12.3 实现自主探索SLAM284
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.yaml316
10.6.3 joint_limits.yaml317
10.6.4 kinematics.yaml317
10.6.5 ompl_planning.yaml318
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 pick348
10.10.6 place348
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-I358
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-Flow364
11.2 TensorFlow基础364
11.2.1 安装TensorFlow364
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实现MNIST381
11.5 物体识别384
11.5.1 安装TensorFlow Object Detection API385
11.5.2 基于ROS实现动态物体识别388
11.6 本章小结390
第12章 ROS进阶功能391
12.1 action391
12.1.1 什么是action391
12.1.2 action的工作机制392
12.1.3 action的定义392
12.1.4 实现action通信393
12.2 plugin396
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 将插件加入ROS399
12.2.8 调用插件400
12.3 rviz plugin401
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 SMACH414
12.5.1 什么是SMACH415
12.5.2 状态机“跑”起来415
12.5.3 状态机实现剖析416
12.5.4 状态间的数据传递419
12.5.5 状态机嵌套421
12.5.6 多状态并行422
12.6 ROS-MATLAB423
12.6.1 ROS-MATLAB是什么423
12.6.2 ROS-MATLAB可以做什么424
12.6.3 连接MATLAB和ROS425
12.6.4 MATLAB可视化编程428
12.6.5 创建可视化界面429
12.6.6 编辑控件的回调函数431
12.6.7 运行效果434
12.7 Web GUI435
12.7.1 ROS中的Web功能包435
12.7.2 创建Web应用436
12.7.3 使用Web浏览器控制机器人439
12.8 本章小结440
第13章 ROS机器人实例441
13.1 PR2441
13.1.1 PR2功能包442
13.1.2 Gazebo中的PR2443
13.1.3 使用PR2实现SLAM446
13.1.4 PR2机械臂的使用448
13.2 TurtleBot450
13.2.1 TurtleBot功能包451
13.2.2 Gazebo中的TurtleBot451
13.2.3 使用TurtleBot实现导航功能453
13.2.4 尝试TurtleBot 3456
13.3 Universal Robots457
13.3.1 Universal Robots功能包458
13.3.2 Gazebo中的UR机器人459
13.3.3 使用MoveIt!控制UR机器人460
13.4 catvehicle462
13.4.1 构建无人驾驶仿真系统463
13.4.2 运行无人驾驶仿真器465
13.4.3 控制无人驾驶汽车466
13.4.4 实现无人驾驶汽车的SLAM功能467
13.5 HRMRP469
13.5.1 总体架构设计469
13.5.2 SLAM与导航471
13.5.3 多机器人扩展472
13.6 Kungfu Arm474
13.6.1 总体架构设计474
13.6.2 具体层次功能475
13.6.3 功夫茶应用展示478
13.7 本章小结478
第14章 ROS 2479
14.1 ROS 1存在的问题480
14.2 什么是ROS 2481
14.2.1 ROS 2的设计目标481
14.2.2 ROS 2的系统架构482
14.2.3 ROS 2的关键中间件——DDS483
14.2.4 ROS 2的通信模型483
14.2.5 ROS 2的编译系统485
14.3 在Ubuntu上安装ROS 2487
14.3.1 安装步骤487
14.3.2 运行talker和listener例程488
14.4 在Windows上安装ROS 2489
14.4.1 安装Chocolatey489
14.4.2 安装Python490
14.4.3 安装OpenSSL490
14.4.4 安装Visual Studio Community 2015491
14.4.5 配置DDS491
14.4.6 安装OpenCV492
14.4.7 安装依赖包492
14.4.8 下载并配置ROS 2492
14.4.9 运行talker和listener例程493
14.5 ROS 2中的话题通信494
14.5.1 创建工作目录和功能包494
14.5.2 创建talker495
14.5.3 创建listener497
14.5.4 修改CMakeLists.txt497
14.5.5 编译并运行节点498
14.6 自定义话题和服务499
14.6.1 自定义话题499
14.6.2 自定义服务499
14.6.3 修改CMakeLists.txt和package.xml499
14.6.4 编译生成头文件499
14.7 ROS 2中的服务通信500
14.7.1 创建Server500
14.7.2 创建Client501
14.7.3 修改CMakeLists.txt503
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