这书包括了很多实例,协助你开发设计机器人程序流程,并给你出示应用开源系统ROS库和专用工具的详细解决方法。这书具体内容包含:ROS的定义、命令行工具、数据可视化GUI及其怎样调节ROS,如何把机器人传感器和电动执行机构联接到ROS,怎样从监控摄像头和三d传感器读取数据并分析数据,怎样在机器人/传感器和自然环境模拟仿真中应用Gazebo,怎样设计方案机器人,如何使用OpenCV3.0为机器人加上视觉效果作用,如何使用最新版本的PCL向机器人加上三d认知作用。这书合适每个阶级的机器人开发工作人员和机器人发烧友阅读文章。
目录
- 推荐序一
- 推荐序二
- 译者序
- 前言
- 作者简介
- 审校者简介
- 第1章 ROS入门 1
- 1.1PC安装教程 3
- 1.2使用软件库安装ROS Kinetic 3
- 1.2.1 配置Ubuntu软件库 4
- 1.2.2 添加软件库到sources.list文件中 4
- 1.2.3 设置密钥 5
- 1.2.4 安装ROS 5
- 1.2.5 初始化rosdep 6
- 1.2.6 配置环境 6
- 1.2.7 安装rosinstall 7
- 1.3如何安装VirtualBox和Ubuntu 8
- 1.3.1 下载VirtualBox 8
- 1.3.2 创建虚拟机 9
- 1.4通过Docker镜像使用ROS 11
- 1.4.1 安装Docker 11
- 1.4.2 获取和使用ROS Docker镜像和容器 11
- 1.5在BeagleBone Black上安装ROS Kinetic 12
- 1.5.1 准备工作 13
- 1.5.2 配置主机和source.list文件 16
- 1.5.3 设置密钥 16
- 1.5.4 安装ROS功能包 17
- 1.5.5 为ROS初始化rosdep 17
- 1.5.6 在BeagleBone Black中配置环境 18
- 1.5.7 在BeagleBone Black中安装rosinstall 18
- 1.5.8 BeagleBone Black基本ROS示例 18
- 1.6本章小结 19
- 第2章 ROS架构及概念 20
- 2.1理解ROS文件系统级 20
- 2.1.1 工作空间 21
- 2.1.2 功能包 22
- 2.1.3 元功能包 23
- 2.1.4 消息 24
- 2.1.5 服务 25
- 2.2理解ROS计算图级 25
- 2.2.1 节点与nodelet 27
- 2.2.2 主题 28
- 2.2.3 服务 29
- 2.2.4 消息 29
- 2.2.5 消息记录包 30
- 2.2.6 节点管理器 30
- 2.2.7 参数服务器 30
- 2.3理解ROS开源社区级 31
- 2.4ROS试用练习 32
- 2.4.1 ROS文件系统导览 32
- 2.4.2 创建工作空间 32
- 2.4.3 创建ROS功能包和元功能包 33
- 2.4.4 编译ROS功能包 34
- 2.4.5 使用ROS节点 35
- 2.4.6 如何使用主题与节点交互 37
- 2.4.7 如何使用服务 39
- 2.4.8 使用参数服务器 41
- 2.4.9 创建节点 42
- 2.4.10 编译节点 44
- 2.4.11 创建msg和srv文件 45
- 2.4.12 使用新建的srv和msg文件 48
- 2.4.13 launch文件 51
- 2.4.14 动态参数 53
- 2.5本章小结 57
- 第3章 可视化和调试工具 58
- 3.1调试ROS节点 60
- 3.1.1 使用gdb调试器调试ROS节点 60
- 3.1.2 在ROS节点启动时调用gdb调试器 61
- 3.1.3 在ROS节点启动时调用valgrind分析节点 62
- 3.1.4 设置ROS节点core文件转储 62
- 3.2日志消息 62
- 3.2.1 输出日志消息 62
- 3.2.2 设置调试消息级别 63
- 3.2.3 为特定节点配置调试消息级别 64
- 3.2.4 消息命名 65
- 3.2.5 按条件显示消息与过滤消息 65
- 3.2.6 显示消息的方式——单次、可调以及其他组合 66
- 3.2.7 使用rqt_console和rqt_logger_level在运行时修改调试级别 66
- 3.3检测系统状态 69
- 3.4设置动态参数 73
- 3.5当出现异常状况时使用roswtf 75
- 3.6可视化节点诊断 77
- 3.7绘制标量数据图 78
- 3.8图像可视化 81
- 3.93D可视化 83
- 3.9.1 使用rqt_rviz在3D世界中实现数据可视化 83
- 3.9.2 主题与坐标系的关系 86
- 3.9.3 可视化坐标变换 87
- 3.10保存与回放数据 88
- 3.10.1 什么是消息记录包文件 89
- 3.10.2 使用rosbag在消息记录包文件中记录数据 89
- 3.10.3 回放消息记录包文件 90
- 3.10.4 查看消息记录包文件的主题和消息 91
- 3.11应用rqt与rqt_gui插件 93
- 3.12本章小结 93
- 第4章 3D建模与仿真 95
- 4.1在ROS中自定义机器人的3D模型 95
- 4.2创建第一个URDF文件 95
- 4.2.1 解释文件格式 97
- 4.2.2 在rviz里查看3D模型 98
- 4.2.3 加载网格到机器人模型中 100
- 4.2.4 使机器人模型运动 100
- 4.2.5 物理和碰撞属性 101
- 4.3xacro——一种更好的机器人建模方法 102
- 4.3.1 使用常量 102
- 4.3.2 使用数学方法 103
- 4.3.3 使用宏 103
- 4.3.4 使用代码移动机器人 103
- 4.3.5 使用SketchUp进行3D建模 107
- 4.4在ROS中仿真 109
- 4.4.1 在Gazebo中使用URDF 3D模型 109
- 4.4.2 在Gazebo中添加传感器 112
- 4.4.3 在Gazebo中加载和使用地图 115
- 4.4.4 在Gazebo中移动机器人 116
- 4.5本章小结 118
- 第5章 导航功能包集入门 119
- 5.1ROS导航功能包集 119
- 5.2创建变换 120
- 5.2.1 创建广播器 121
- 5.2.2 创建侦听器 121
- 5.2.3 查看坐标变换树 124
- 5.3发布传感器信息 124
- 5.4发布里程数据信息 127
- 5.4.1 Gazebo如何获取里程数据 128
- 5.4.2 使用Gazebo创建里程数据 131
- 5.4.3 创建自定义里程数据 132
- 5.5创建基础控制器 135
- 5.6使用ROS创建地图 139
- 5.6.1 使用map_server保存地图 141
- 5.6.2 使用map_server加载地图 141
- 5.7本章小结 142
- 第6章 导航功能包集进阶 144
- 6.1创建功能包 144
- 6.2创建机器人配置 144
- 6.3配置全局和局部代价地图 147
- 6.3.1 基本参数的配置 147
- 6.3.2 全局代价地图的配置 148
- 6.3.3 局部代价地图的配置 149
- 6.3.4 底盘局部规划器配置 149
- 6.4为导航功能包集创建启动文件 150
- 6.5为导航功能包集设置rviz 151
- 6.5.1 2D位姿估计 152
- 6.5.2 2D导航目标 152
- 6.5.3 静态地图 154
- 6.5.4 粒子云 154
- 6.5.5 机器人占地空间 155
- 6.5.6 局部代价地图 156
- 6.5.7 全局代价地图 156