前言
第1章 ROS入门
1.1 技术要求
1.2 ROS概述
1.2.1 ROS框架
1.2.2 在Ubuntu上安装ROS
1.2.3 什么是catkin
1.2.4 创建ROS软件包
1.2.5 什么是Gazebo
1.3 本章小结
1.4 习题
第2章 差分驱动机器人的基础知识
2.1 数学建模
2.2 正向运动学
2.3 逆向运动学
2.4 本章小结
2.5 习题
2.6 扩展阅读
第3章 差分驱动机器人的建模
3.1 技术要求
3.2 服务机器人的设计要求
3.3 机器人的传动装置
3.3.1 选择电机和轮子
3.3.2 设计小结
3.3.3 机器人底盘设计
3.4 安装LibreCAD、Blender和MeshLab
3.4.1 安装LibreCAD
3.4.2 安装Blender
3.4.3 安装MeshLab
3.5 用LibreCAD生成机器人的二维CAD图
3.5.1 底座设计
3.5.2 底座连接杆设计
3.5.3 轮子、电机和电机夹具设计
3.5.4 脚轮设计
3.5.5 中间层设计
3.5.6 顶层设计
3.6 用Blender制作机器人的三维模型
3.6.1 在Blender中编写Python脚本
3.6.2 Blender Python API
3.6.3 机器人模型的Python脚本
3.7 创建机器人的URDF模型
3.8 本章小结
3.9 习题
3.10 扩展阅读
第4章 利用ROS模拟差分驱动机器人
4.1 技术要求
4.2 开始使用Gazebo仿真器
4.3 结合TurtleBot 2进行仿真工作
4.4 创建ChefBot仿真
4.4.1 深度图像到激光扫描的转换
4.4.2 Gazebo仿真的URDF标签和插件
4.5 可视化机器人传感器数据
4.5.1 即时定位与地图构建
4.5.2 使用SLAM创建地图
4.5.3 自适应蒙特卡罗定位
4.5.4 在Gazebo环境中实现AMCL
4.5.5 ChefBot在酒店中使用Gazebo进行自主导航
4.6 本章小结
4.7 习题
4.8 扩展阅读
第5章 设计ChefBot的硬件和电路
5.1 技术要求
5.2 ChefBot硬件规格
5.3 机器人框图
5.3.1 电机和编码器
5.3.2 电机驱动器
5.3.3 嵌入式控制器板
5.3.4 超声传感器
5.3.5 惯性测量单元
5.3.6 Kinect/Orbbec Astra
5.3.7 中央处理单元
5.3.8 扬声器和麦克风
5.3.9 电源和电池
5.4 ChefBot硬件的工作原理
5.5 本章小结
5.6 习题
5.7 扩展阅读
第6章 将执行器和传感器连接到机器人控制器
6.1 技术要求
6.2 直流减速电机接入Tiva-C开发板
6.2.1 差分驱动轮式机器人
6.2.2 安装Energia IDE
6.2.3 电机接口代码
6.3 正交编码器接入Tiva-C开发板
6.3.1 编码器数据的处理
6.3.2 正交编码器接口代码
6.4 使用Dynamixel执行器
6.5 使用超声测距传感器
6.6 使用红外接近传感器
6.7 使用惯性测量单元
6.7.1 惯性导航
6.7.2 将MPU 6050与Tiva-C开发板连接
6.7.3 在Energia中编写接口代码
6.8 本章小结
6.9 习题
6.10 扩展阅读
第7章 视觉传感器接入ROS
7.1 技术要求
7.2 机器人视觉传感器和图像处理库
7.2.1 Pixy2/CMUcam5
7.2.2 罗技C920网络摄像头
7.2.3 Kinect
7.2.4 英特尔RealSense D400系列
7.2.5 Orbbec Astra深度传感器
7.3 OpenCV、OpenNI和PCL概述
7.3.1 OpenCV
7.3.2 OpenNI
7.3.3 PCL
7.4 使用ROS、OpenCV和OpenNI进行Kinect的Python编程
7.4.1 启动OpenNI驱动程序的方法
7.4.2 OpenCV的ROS接口
7.5 连接Orbbec Astra与ROS
7.6 使用Kinect、ROS、OpenNI和PCL处理点云
7.7 将点云数据转换为激光扫描数据
7.8 使用ROS和Kinect实现SLAM算法
7.9 本章小结
7.10 习题
7.11 扩展阅读
第8章 ChefBot硬件构建和软件集成
8.1 技术要求
8.2 构建ChefBot硬件
8.3 配置ChefBot PC并设置ChefBot ROS软件包
8.4 连接ChefBot传感器和Tiva-C
8.5 编写ChefBot的ROS Python驱动程序
8.6 了解ChefBot ROS启动文件
8.7 使用ChefBot Python节点和启动文件
8.7.1 使用SLAM在ROS上绘制房间地图
8.7.2 使用ROS定位和导航
8.8 本章小结
8.9 习题
8.10 扩展阅读
第9章 使用Qt和Python开发机器人GUI
9.1 技术要求
9.2在Ubuntu 16.04 LTS中安装Qt
9.3 在Qt中使用Python绑定进行开发
9.3.1 PyQt
9.3.2 PySide
9.4 使用PyQt和PySide进行开发
9.4.1 Qt设计器
9.4.2 Qt信号与槽机制
9.4.3 将UI文件转化为Python代码
9.4.4 向PyQt代码中添加槽定义
9.4.5 Hello World GUI应用程序的操作方法
9.5 使用ChefBot的控制GUI进行开发
9.6 在Ubuntu 16.04 LTS中安装和使用rqt
9.7 本章小结
9.8 习题
9.9 扩展阅读
习题解答
展开