描述
开 本: 128开纸 张: 胶版纸包 装: 平装胶订是否套装: 否国际标准书号ISBN: 9787030354341
产品特色
编辑推荐
内容简介
目前,ROS(robotoperatingsystem)逐步成为机器人研发领域的通用性软件平台。本书是国内*本全面介绍ROS的中文版图书。《BR》 ROS是开源的用于机器人的一种后操作系统,或者说次级操作系统。它提供类似操作系统所提供的功能,包含硬件抽象描述、底层驱动程序管理、共用功能的执行、程序间的消息传递、程序发行包管理,它也提供一些工具程序和库用于获取、建立、编写和运行多机整合的程序。《BR》 本书附光盘一张,内容包括书中的部分例子源代码和Diamondback及Electric版本安装后在本地硬盘上的全部程序,以便于读者对照自己的安装版本进行调试。
目 录
目录
前言
术语列表
第一章 ROS简介 1
1.1 ROS简介 1
1.2 ROS安装 4
1.3 ROS支持的机器人 6
1.4 ROS网上资源 6
第二章 ROS总体框架及基本命令 7
2.1 ROS总体框架 7
2.1.1 文件系统级 7
2.1.2 计算图级 9
2.1.3 社区级 11
2.1.4 更高层概念 12
2.1.5 名称 12
2.2 ROS基本命令 15
2.2.1 ROS文件系统命令 15
2.2.2 ROS核心命令 26
2.3 工具 35
2.3.1 3D可视化工具:rviz 35
2.3.2 传感器数据记录与可视化工具:rosbag和rxbag 45
2.3.3 画图工具:rxplot 47
2.3.4 系统可视化工具:rxgraph 49
2.3.5 rxconsole 49
2.3.6 tf命令 51
2.4 例子 52
2.4.1 创建ROS消息和服务 52
2.4.2 记录和回放数据 54
2.4.3 手工创建ROS功能包 59
2.4.4 大项目上运行roslaunch 60
2.4.5 在多台机器上运行ROS系统 66
2.4.6 定义客户消息 68
第三章 ROS客户端库 70
3.1 概述 70
3.2 roscpp客户端库 71
3.2.1 简单的主题发布者和主题订阅者 72
3.2.2 简单的服务器端和客户端 78
3.2.3 roscpp中参数的使用 81
3.2.4 从节点句柄存取私有名称 83
3.2.5 用类方法订阅和回调服务 84
3.2.6 计时器 85
3.2.7 带动态可重配置及参数服务器的主题发布者/订阅者节点(C ) 87
3.2.8 带动态可重配置及参数服务器的主题发布者/订阅者节点(Python) 95
3.2.9 组合C /Python主题发布者/订阅者节点 101
3.3 rospy客户端库 101
3.3.1 简单的主题发布者/订阅者 101
3.3.2 简单的服务端和客户端 105
3.3.3 rospy中参数的使用 108
3.3.4 rospy中numpy的使用 109
3.3.5 rospy运行日志 113
3.3.6 ROSPython Makefile 文件 115
3.3.7 设置PYTHONPATH 116
3.3.8 发布消息 116
3.4 roslisp客户端库 117
3.5 实验阶段的客户端库 117
3.5.1 rosjava 117
3.5.2 roslua 117
第四章 OpenCV 119
4.1 image common功能包集 119
4.1.1 image transport功能包 119
4.1.2 camera calibration parsers功能包 124
4.1.3 camera info manager功能包 126
4.1.4 polled camera功能包 127
4.2 image pipeline功能包集 127
4.3 vision opencv功能包集 128
4.3.1 opencv2 128
4.3.2 cv bridge 128
4.3.3 image geometry 139
4.4 投影tf坐标系到图像(C ) 140
4.5 演示例子 145
4.5.1 使用颜色追踪物体 145
4.5.2 识别物体 148
第五章 SLAM和导航 150
5.1 使用tf配置机器人 150
5.2 通过ROS发布里程计信息 154
5.3 通过ROS发布传感器数据流 158
5.4 SLAM 163
5.4.1 SLAM简介 163
5.4.2 slam gmapping功能包 163
5.4.3 使用记录的数据建立地图 167
5.4.4 模拟器中建立地图 168
5.4.5 模拟器中使用客户定制地图 170
5.5 配置和使用导航功能包集 172
5.5.1 导航功能包集基本操作 172
5.5.2 在机器人上设置和配置导航功能包集 173
5.5.3 rviz与导航功能包集配合使用 176
5.5.4 发送目标到导航功能包集 178
第六章 抓取操作 182
6.1 机器人手臂的运动规划 182
6.1.1 安装和配置 182
6.1.2 编译手臂导航功能包集 182
6.1.3 启动模拟器和仿真环境 183
6.1.4 启动相关节点 183
6.1.5 控制手臂运动 185
6.2 运动规划的环境表示 203
6.2.1 基于自滤波数据构建碰撞地图 203
6.2.2 检测关节轨迹碰撞 208
6.2.3 给定机器人状态下的碰撞检测 212
6.2.4 添加已知点到运动规划环境 219
6.2.5 添加物体到机器人本体 224
6.3 用于PR2机器人手臂的运动学 230
6.3.1 从PR2运动学开始 230
6.3.2 从运动学节点获取运动学求解器信息 231
6.3.3 PR2手臂运动学正解 233
6.3.4 PR2手臂运动学逆解 237
6.3.5 PR2手臂无碰撞运动学逆解 240
6.4 用于PR2机器人手臂的安全轨迹控制 245
6.5 使用轨迹滤波节点进行轨迹滤波 247
6.5.1 生成无碰撞三次样条轨迹 247
6.5.2 使用轨迹滤波服务器对关节轨迹进行滤波 248
6.5.3 学习如何创建自己的轨迹滤波 253
6.6 机器人状态和轨迹可视化 256
第七章 Kinect 260
7.1 Kinect简介 260
7.2 安装驱动 261
7.2.1 Ubuntu系统上安装Kinect 261
7.2.2 基于源的安装 261
7.3 测试 263
7.3.1 测试Kinect彩色摄像机 263
7.3.2 测试Kinect深度摄像机 263
7.3.3 测试Kinect马达 264
7.4 openni camera 264
7.5 openni tracker 268
第八章 点云库 270
8.1 PCL简介 270
8.1.1 PCL架构 270
8.1.2 PCL数据结构 272
8.1.3 PCL与ROS的集成 273
8.2 PCL可视化库 273
8.3 PCL与Kinect连接 279
8.4 例子 284
第九章 综合演示示例 288
9.1 实验一:SLAM(即时定位与地图构建) 288
9.2 实验二:机器人导航 294
9.3 实验三:识别并抓取物体 300
参考文献 303
彩图
前言
术语列表
第一章 ROS简介 1
1.1 ROS简介 1
1.2 ROS安装 4
1.3 ROS支持的机器人 6
1.4 ROS网上资源 6
第二章 ROS总体框架及基本命令 7
2.1 ROS总体框架 7
2.1.1 文件系统级 7
2.1.2 计算图级 9
2.1.3 社区级 11
2.1.4 更高层概念 12
2.1.5 名称 12
2.2 ROS基本命令 15
2.2.1 ROS文件系统命令 15
2.2.2 ROS核心命令 26
2.3 工具 35
2.3.1 3D可视化工具:rviz 35
2.3.2 传感器数据记录与可视化工具:rosbag和rxbag 45
2.3.3 画图工具:rxplot 47
2.3.4 系统可视化工具:rxgraph 49
2.3.5 rxconsole 49
2.3.6 tf命令 51
2.4 例子 52
2.4.1 创建ROS消息和服务 52
2.4.2 记录和回放数据 54
2.4.3 手工创建ROS功能包 59
2.4.4 大项目上运行roslaunch 60
2.4.5 在多台机器上运行ROS系统 66
2.4.6 定义客户消息 68
第三章 ROS客户端库 70
3.1 概述 70
3.2 roscpp客户端库 71
3.2.1 简单的主题发布者和主题订阅者 72
3.2.2 简单的服务器端和客户端 78
3.2.3 roscpp中参数的使用 81
3.2.4 从节点句柄存取私有名称 83
3.2.5 用类方法订阅和回调服务 84
3.2.6 计时器 85
3.2.7 带动态可重配置及参数服务器的主题发布者/订阅者节点(C ) 87
3.2.8 带动态可重配置及参数服务器的主题发布者/订阅者节点(Python) 95
3.2.9 组合C /Python主题发布者/订阅者节点 101
3.3 rospy客户端库 101
3.3.1 简单的主题发布者/订阅者 101
3.3.2 简单的服务端和客户端 105
3.3.3 rospy中参数的使用 108
3.3.4 rospy中numpy的使用 109
3.3.5 rospy运行日志 113
3.3.6 ROSPython Makefile 文件 115
3.3.7 设置PYTHONPATH 116
3.3.8 发布消息 116
3.4 roslisp客户端库 117
3.5 实验阶段的客户端库 117
3.5.1 rosjava 117
3.5.2 roslua 117
第四章 OpenCV 119
4.1 image common功能包集 119
4.1.1 image transport功能包 119
4.1.2 camera calibration parsers功能包 124
4.1.3 camera info manager功能包 126
4.1.4 polled camera功能包 127
4.2 image pipeline功能包集 127
4.3 vision opencv功能包集 128
4.3.1 opencv2 128
4.3.2 cv bridge 128
4.3.3 image geometry 139
4.4 投影tf坐标系到图像(C ) 140
4.5 演示例子 145
4.5.1 使用颜色追踪物体 145
4.5.2 识别物体 148
第五章 SLAM和导航 150
5.1 使用tf配置机器人 150
5.2 通过ROS发布里程计信息 154
5.3 通过ROS发布传感器数据流 158
5.4 SLAM 163
5.4.1 SLAM简介 163
5.4.2 slam gmapping功能包 163
5.4.3 使用记录的数据建立地图 167
5.4.4 模拟器中建立地图 168
5.4.5 模拟器中使用客户定制地图 170
5.5 配置和使用导航功能包集 172
5.5.1 导航功能包集基本操作 172
5.5.2 在机器人上设置和配置导航功能包集 173
5.5.3 rviz与导航功能包集配合使用 176
5.5.4 发送目标到导航功能包集 178
第六章 抓取操作 182
6.1 机器人手臂的运动规划 182
6.1.1 安装和配置 182
6.1.2 编译手臂导航功能包集 182
6.1.3 启动模拟器和仿真环境 183
6.1.4 启动相关节点 183
6.1.5 控制手臂运动 185
6.2 运动规划的环境表示 203
6.2.1 基于自滤波数据构建碰撞地图 203
6.2.2 检测关节轨迹碰撞 208
6.2.3 给定机器人状态下的碰撞检测 212
6.2.4 添加已知点到运动规划环境 219
6.2.5 添加物体到机器人本体 224
6.3 用于PR2机器人手臂的运动学 230
6.3.1 从PR2运动学开始 230
6.3.2 从运动学节点获取运动学求解器信息 231
6.3.3 PR2手臂运动学正解 233
6.3.4 PR2手臂运动学逆解 237
6.3.5 PR2手臂无碰撞运动学逆解 240
6.4 用于PR2机器人手臂的安全轨迹控制 245
6.5 使用轨迹滤波节点进行轨迹滤波 247
6.5.1 生成无碰撞三次样条轨迹 247
6.5.2 使用轨迹滤波服务器对关节轨迹进行滤波 248
6.5.3 学习如何创建自己的轨迹滤波 253
6.6 机器人状态和轨迹可视化 256
第七章 Kinect 260
7.1 Kinect简介 260
7.2 安装驱动 261
7.2.1 Ubuntu系统上安装Kinect 261
7.2.2 基于源的安装 261
7.3 测试 263
7.3.1 测试Kinect彩色摄像机 263
7.3.2 测试Kinect深度摄像机 263
7.3.3 测试Kinect马达 264
7.4 openni camera 264
7.5 openni tracker 268
第八章 点云库 270
8.1 PCL简介 270
8.1.1 PCL架构 270
8.1.2 PCL数据结构 272
8.1.3 PCL与ROS的集成 273
8.2 PCL可视化库 273
8.3 PCL与Kinect连接 279
8.4 例子 284
第九章 综合演示示例 288
9.1 实验一:SLAM(即时定位与地图构建) 288
9.2 实验二:机器人导航 294
9.3 实验三:识别并抓取物体 300
参考文献 303
彩图
前 言
媒体评论
免费在线读
评论
还没有评论。