作者序
作者简介
资源说明
目录
第1章 _ 机器人软件平台
1.1. 平台的组件
1.2. 机器人软件平台
1.3. 机器人软件平台的必要性
1.4. 机器人软件平台将带来的未来
第2章 _ 机器人操作系统ROS
2.1. ROS简介
2.2. 元操作系统
2.3. ROS的目的
2.4. ROS的组件
2.5. ROS的生态系统
2.6. ROS的历史
2.7. ROS的版本
2.7.1. 版本规则
2.7.2. 版本周期
2.7.3. 选择版本
第3章 _ 搭建ROS开发环境
3.1. 安装ROS
3.1.1. 常规安装
3.1.2. 简易安装
3.2. 搭建ROS开发环境
3.2.1. ROS配置
3.2.2. 集成开发环境(IDE)
3.3. ROS操作测试
第4章 _ ROS的重要概念
4.1. ROS术语
4.2. 消息通信
4.2.1. 话题(topic)
4.2.2. 服务(service)
4.2.3. 动作(action)
4.2.4. 参数(parameter)
4.2.5. 消息通信的过程
4.3. 消息
4.3.1. msg文件
4.3.2. srv文件
4.3.3. action文件
4.4. 名称(name)
4.5. 坐标变换(TF)
4.6. 客户端库
4.7. 异构设备间的通信
4.8. 文件系统
4.8.1. 文件组织结构
4.8.2. 安装目录
4.8.3. 工作目录
4.9. 构建系统
4.9.1. 创建功能包
4.9.2. 修改功能包配置文件(package.xml)
4.9.3. 修改构建配置文件(CMakeLists.txt)
4.9.4. 编写源代码
4.9.5. 构建功能包
4.9.6. 运行节点
第5章 _ ROS命令
5.1. ROS命令概述
5.2. ROS shell 命令
5.2.1. roscd:移动ROS目录
5.2.2. rosls:ROS文件列表
5.2.3. rosed:ROS编辑命令
5.3. ROS执行命令
5.3.1. roscore:运行roscore
5.3.2. rosrun:运行ROS节点
5.3.3. roslaunch:运行多个ROS节点
5.3.4. rosclean:检查及删除ROS日志
5.4. ROS信息命令
5.4.1. 运行节点
5.4.2. rosnode:ROS节点
5.4.3. rostopic: ROS话题
5.4.4. rosservice:ROS服务
5.4.5. rosparam:ROS参数
5.4.6. rosmsg: ROS消息信息
5.4.7. rossrv:ROS服务信息
5.4.8. rosbag:ROS日志信息
5.5. ROS catkin命令
5.6. ROS功能包命令
第6章 _ ROS工具
6.1. 三维可视化工具(RViz)
6.1.1. RViz安装与运行
6.1.2. RViz画面布局
6.1.3. RViz显示屏
6.2. ROS GUI开发工具(rqt)
6.2.1. rqt安装与运行
6.2.2. rqt插件
6.2.3. rqt_image_view
6.2.4. rqt_graph
6.2.5. rqt_plot
6.2.6. rqt_bag
第7章 _ ROS编程基础
7.1. ROS编程前须知事项
7.1.1. 标准单位
7.1.2. 坐标表现方式
7.1.3. 编程规则
7.2. 发布者节点和订阅者节点的创建和运行
7.2.1. 创建功能包
7.2.2. 修改功能包配置文件
7.2.3. 修改构建配置文件(CMakeLists.txt)
7.2.4. 创建消息文件
7.2.5. 创建发布者节点
7.2.6. 创建订阅者节点
7.2.7. 构建(build)节点
7.2.8. 运行发布者
7.2.9. 运行订阅者
7.2.10. 检查运行中的节点的通信状态
7.3. 创建和运行服务服务器与客户端节点
7.3.1. 创建功能包
7.3.2. 修改功能包配置文件(package.xml)
7.3.3. 修改构建配置文件(CMakeLists.txt)
7.3.4. 创建服务文件
7.3.5. 创建服务服务器节点
7.3.6. 创建服务客户端节点
7.3.7. 构建节点
7.3.8. 运行服务服务器
7.3.9. 运行服务客户端
7.3.10. rosservice call命令的用法
7.3.11. GUI工具Service Caller的用法
7.4. 创建和运行动作服务器和客户端节点
7.4.1. 生成功能包
7.4.2. 修改功能包配置文件(package.xml)
7.4.3. 修改构建配置文件(CMakeLists.txt)
7.4.4. 创建动作文件
7.4.5. 创建动作服务器节点
7.4.6. 创建动作客户端节点
7.4.7. 构建节点
7.4.8. 运行动作服务器
7.4.9. 运行动作客户端
7.5. 参数的用法
7.5.1. 利用参数创建节点
7.5.2. 设置参数
7.5.3. 读取参数
7.5.4. 构建节点和运行节点
7.5.5. 查看参数目录
7.5.6. 参数的用例
7.6. roslaunch的用法
7.6.1. roslaunch的应用
7.6.2. Launch标签
第8章 _ 机器人、传感器和电机
8.1. 机器人功能包
8.2. 传感器功能包
8.2.1. 传感器的类型
8.2.2. 传感器功能包的分类
8.3. 相机
8.3.1. USB摄像头相关功能包
8.3.2. USB摄像头测试
8.3.3. 查看图像信息
8.3.4. 远程传输图像
8.3.5. 相机校准
8.4. 深度相机(Depth Camera)
8.4.1. Depth Camera的类型
8.4.2. Depth Camera测试
8.4.3. Point Cloud Data(点云数据)的可视化
8.4.4. Point Cloud Data相关库
8.5. 激光距离传感器
8.5.1. LDS传感器距离测量原理
8.5.2. LDS测试
8.5.3. 可视化LDS的距离值
8.5.4. LDS的应用
8.6. 电机功能包
8.6.1. Dynamixel舵机
8.7. 已公开的功能包的用法
8.7.1. 搜索功能包
8.7.2. 安装依赖包
8.7.3. 安装功能包
8.7.4. 运行功能包
第9章 _ 嵌入式系统
9.1. OpenCR
9.1.1. 特点
9.1.2. 控制板规格
9.1.3. 搭建开发环境
9.1.4. OpenCR例程
9.2. rosserial
9.2.1. rosserial server
9.2.2. rosserial client
9.2.3. rosserial协议
9.2.4. rosserial的约束条件
9.2.5. 安装rosserial
9.2.6. rosserial例程
9.3. TurtleBot3的固件
9.3.1. TurtleBot3 Burger固件
9.3.2. TurtleBot3 Waffle和Waffle Pi固件
9.3.3. TurtleBot3配置固件
第10章 _ 移动机器人
10.1. ROS支持的机器人
10.2. TurtleBot3系列机器人
10.3. TurleBot3的硬件
10.4. TurtleBot3软件
10.5. TurtleBot3的开发环境
10.6. TurtleBot3远程控制
10.6.1. 遥控TurtleBot3
10.6.2. 可视化TurtleBot3
10.7. Turtlebot3话题
10.7.1. 订阅话题
10.7.2. 通过订阅话题控制机器人
10.7.3. 发布话题
10.7.4. 通过发布话题识别机器人状态
10.8. 使用RViz 仿真 TurtleBot3
10.8.1. 仿真
10.8.2. 运行虚拟机器人
10.8.3. Odometry和TF
10.9. 利用Gazebo仿真TurtleBot3
10.9.1. Gazebo仿真器
10.9.2. 启动虚拟机器人
10.9.3. 虚拟SLAM和导航
第11章 _ SLAM和导航
11.1. 导航及其组成要素
11.1.1. 移动机器人的导航
11.1.2. 地图
11.1.3. 测量或估计机器人姿态的功能
11.1.4. 识别障碍物,如墙壁和物体
11.1.5. 计算最优路径和行驶功能
11.2. SLAM实习篇
11.2.1. 对于使用SLAM的机器人的硬件限制
11.2.2. SLAM的实验环境
11.2.3. 用于SLAM的ROS功能包
11.2.4. 运行SLAM
11.2.5. 利用预先准备好的bag文件运行的SLAM
11.3. SLAM应用篇
11.3.1. 地图
11.3.2. SLAM所需的信息
11.3.3. SLAM的处理过程
11.3.4. 坐标变换(TF)
11.3.5. turtlebot3_slam功能包
11.4. SLAM理论篇
11.4.1. SLAM
11.4.2. 多种位置估计(localization)方法论
11.5. 导航实战篇
11.5.1. 用于导航的ROS功能包
11.5.2. 运行导航
11.6. 导航应用程序
11.6.1. 导航
11.6.2. 导航所需的信息
11.6.3. turtlebot3_navigation的各节点和话题状态
11.6.4. turtlebot3_navigation设置
11.6.5. 设置turtlebot3_navigation的详细参数
11.7. 导航理论篇
11.7.1. Costmap
11.7.2. AMCL
11.7.3. Dynamic Window Approach(DWA)
第12章 _ 服务机器人
12.1. 配送服务机器人
12.2. 配送服务机器人的结构
12.2.1. 系统结构
12.2.2. 系统设计
12.2.3. 服务核心节点
12.2.4. 服务主节点
12.2.5. 服务从节点
12.3. 用ROS Java进行Android平板PC编程
12.3. 用ROS Java进行Android平板PC编程
第13章 _ 机械手臂
13.1. 机械手臂介绍
13.1.1. 机械手臂的结构和控制
13.1.2. 机械手臂和ROS
13.2. OpenManipulator建模和仿真
13.2.1. OpenManipulator
13.2.2. 机械手臂建模
13.2.3. Gazebo设置
13.3. MoveIt!
13.3.1. move_group
13.3.2. MoveIt! Setup Assistant
13.3.3. Gazebo仿真
13.4. 应用于实际平台
13.4.1. 准备和控制OpenManipulator
13.4.2. OpenManipulator与TurtleBot3 Waffle及Waffle Pi