自HYDRO以来的变化
ROS的变化
示例代码的更改
主要章节标题
2.1 凉亭,舞台和ArbotiX模拟器
2.2 介绍TurtleBot,Maxwell和Pi机器人
3.1 安装Ubuntu Linux
3.2 Linux入门
3.3 关于更新和升级的注意事项
4.1 安装ROS
4.2 安装rosinstall
4.3 用Catkin建设ROS包装
4.4 创建一个柔和的工作区
4.5 用柔Do做“干净”
4.6 重建一个单一的柔kin包
4.7 混合柔cat花和rosbuild工作区
4.8 通过官方的ROS教程
4.9 RViz:ROS可视化工具
4.10 在程序中使用ROS参数
4.12 机器人和台式计算机之间的网络连接
4.12.1 时间同步
4.12.2 ROS联网使用Zeroconf
4.12.3 测试连接
4.12.4 设置ROS_MASTER_URI和ROS_HOSTNAME变量
在机器人上:
在桌面上:
在桌面上:
4.12.5 打开新的终端
4.12.6 在两台机器上运行节点
在桌面上:
在机器人上(通过ssh):
在桌面上:
4.12.7 在互联网上的ROS网络
4.13 ROS回顾
4.14 什么是ROS应用程序?
4.15 使用SVN,Git和Mercurial安装软件包
4.15.1 SVN
4.15.2 混帐
4.15.3 水银
4.16 从您的个人catkin目录中删除软件包
4.17 如何查找第三方ROS软件包
4.17.1 搜索ROS Wiki
4.17.3 浏览ROS软件索引
4.17.4 做一个Google搜索
4.18 获得ROS的进一步帮助
5.1 安装先决条件
5.2 克隆靛蓝色的例子库
5.2.1 从电力或Fuerte升级
5.2.2 从Groovy升级
5.2.3 从Hydro升级
5.2.4 第一次克隆Indigo的rbx1仓库
5.3 关于本书中的代码清单
6. 安装ARBOTIX仿真器
6.1 安装模拟器
6.2 测试模拟器
6.3 用你自己的机器人运行模拟器
7.1 单位和坐标系统
7.2 运动控制的级别
7.2.1 电机,车轮和编码器
7.2.2 电机控制器和驱动器
7.2.3 ROS基础控制器
7.2.4 使用move_base ROS Package的基于帧的运动
7.2.5 SLAM使用gmapping和amcl ROS包
7.2.6 语义目标
7.2.7 概要
7.3 用ROS来扭转和转动
7.3.1 示例扭曲消息
7.3.2 使用RViz监视机器人运动
7.4 校准你的机器人的测量
7.4.1 线性校准
7.4.2 角度校准
7.5 发送扭曲消息到一个真正的机器人
7.6 从ROS节点发布扭曲消息
7.6.1 使用时间和速度估计距离和旋转
7.6.2 在ArbotiX模拟器中定时执行
7.6.4 超时和使用真正的机器人回来
7.7 我们到了吗? 用Odometry走出去的距离
7.8 出和回使用Odometry
7.8.1 基于Odometry的出来和在ArbotiX模拟器回来
7.8.2 使用真实的机器人基于Odometry的背部和背部
7.8.3 基于Odometry的Out-and-Back脚本
7.9 使用Odometry导航广场
7.9.1 在ArbotiX模拟器中导航广场
7.9.2 使用真实机器人导航广场
7.9.4 推算死亡的麻烦
7.10 远程操作您的机器人
7.10.1 使用键盘
7.10.2 使用罗技游戏手柄
7.10.4 使用交互式标记的TurtleBot遥控操作
8.1 使用move_base的路径规划和避障
8.1.2 路径规划的配置参数
8.1.2.1 base_local_planner_params.yaml
8.1.2.2 costmap_common_params.yaml
8.1.2.3 global_costmap_params.yaml
8.1.2.4 local_costmap_params.yaml
8.2 在ArbotiX模拟器中测试move_base
8.2.1 点击并点击导航在RViz
8.2.2 RViz的导航显示类型
8.2.4 避免模拟障碍
8.2.5设置存在障碍的手动目标
8.3.2 使用深度相机作为假激光避免障碍
8.4.1 激光扫描仪或深度相机?
8.4.2 收集和记录扫描数据
8.4.3 创建地图
8.4.4 从袋子数据创建地图
8.4.5 我可以扩展或修改现有的地图吗?
8.5 使用Map和amcl导航和本地化
8.5.1 用假冒本地化测试amcl
8.5.2 在真机器人上使用amcl
8.5.3 完全自主导航
8.5.4 在仿真中运行导航测试
8.5.5 了解导航测试脚本
8.5.6 在真实的机器人上运行导航测试
8.5.7 下一步是什么?
9. 语音识别和综合
9.1 安装PocketSphinx进行语音识别
9.2 测试PocketSphinx识别器
9.3 创建一个词汇表
9.4 一个语音控制导航脚本
9.4.1 测试ArbotiX仿真器中的语音控制
9.4.2 使用真实机器人的语音控制
9.5 安装和测试节日文本到语音
9.5.1 在ROS节点中使用文本到语音
9.5.2 测试talkback.py脚本
10.1 OpenCV,OpenNI和PCL
10.2 有关相机分辨率的注意事项
10.3 安装和测试ROS相机驱动程序
10.3.1 安装ROS OpenNI和OpenKinect(freenect)驱动程序
10.3.2 安装摄像头驱动程序
10.3.3 测试你的Kinect或Xtion相机
10.3.4 测试您的USB摄像头
10.4 在Ubuntu Linux上安装OpenCV
10.5 ROS到OpenCV:cv_bridge包
10.6 ros2opencv2.py实用程序
10.7 处理录制的视频
10.8 OpenCV:开源计算机视觉库
10.8.1 人脸检测
10.8.3 使用光流跟踪关键点
10.8.4 建立一个更好的面容追踪器
10.8.5 动态添加和删除关键点
10.8.6 彩色斑点追踪(CamShift)
10.9 OpenNI和骨架跟踪
10.9.2 在RViz中查看骨骼
10.9.3 在您的程序中访问骨架框架
10.10 PCL节点和3D点云
11.1 关于相机坐标轴的注意事项
11.2 对象跟踪器
11.2.1 使用rqt_plot测试对象跟踪器
11.2.2 用模拟机器人测试对象跟踪器
11.2.3 了解对象跟踪代码
11.2.4 在真实的机器人上的对象跟踪
11.3 对象追随者
11.3.1 将深度添加到对象跟踪器
11.3.2 用模拟机器人测试物体跟随器
11.3.3 对象在一个真正的机器人之后
11.4 人追随者
11.4.1 在仿真中测试跟随器的应用
11.4.2 理解追随者脚本
11.4.3 在TurtleBot上运行Follower应用程序
11.4.4 在过滤点云上运行跟随者节点
12.1 一个带有一个平移头的TurtleBot
12.2 选择一个Dynamixel硬件控制器
12.3 关于动态像素硬件的注意事项
12.4 选择一个ROS动态像素包
12.5 了解ROS联合状态消息类型
12.6 控制关节位置,速度和扭矩
12.6.1 设置伺服位置
12.6.2 设置伺服速度
12.6.3 控制伺服扭矩
12.7 检查USB2Dynamixel连接
12.8 设置伺服硬件ID
12.9 配置和启动dynamixel_controllers
12.10 测试舵机
12.10.1 启动控制器
12.10.2 在RViz中监视机器人
12.10.3 列出控制器主题和监视联合国
12.10.4 列出控制器服务
12.10.5 设置伺服位置,速度和转矩
12.11 跟踪视觉目标
12.11.1 跟踪一张脸
12.11.2 头追踪脚本
12.11.3 跟踪彩色的对象
12.11.4 跟踪手动选择的目标
12.12 完整的头部跟踪ROS应用程序
笔记