译者序
第1章 探测车平台概览
1.1 本章目标
1.2 认知深度学习子系统
1.2.1 基本的系统组件
1.2.2 系统的基本原理
1.2.3 设计约束
1.2.4 其他需求
1.2.5 软件系统特性
1.2.6 体系架构
1.3 AI探测车统计分析
1.3.1 底盘的选择
1.3.2 机器人操作系统
1.3.3 Pixhawk 4自动驾驶仪
1.3.4 AI探测车任务分析
1.3.5 AdruPilot任务规划器软件
1.3.6 AI探测车功耗分析
1.3.7 AI探测车的面向对象编程
1.3.8 组件清单
1.3.9 树莓派探测车套件清单
1.4 本章练习
第2章 AI探测车平台设计与分析
2.1 本章目标
2.2 将问题置于应用场景中
2.3 为AI探测车绘制第一版静态UML图
2.4 为AI探测车绘制第一版动态UML图
2.5 为AI探测车绘制第一版动态UML类图
2.6 为AI探测车绘制第一版动态UML序列图
2.7 本章小结
2.8 本章练习
第3章 安装Linux和开发工具
3.1 本章目标
3.2 安装VirtualBox软件
3.3.1 更新Ubuntu 20.04.4
3.3.2 配置Ubuntu软件仓库
3.4 安装Anaconda
3.5 ROS源列表
3.6 ROS环境变量密钥
3.7 安装ROS
3.7.1 通过rosinstall安装附加库
3.7.2 首次启动ROS
3.7.3 添加ROS路径
3.7.4 创建ROS Catkin工作空间
3.7.5 Noetic ROS的最终检测
3.7.6 Noetic ROS的体系架构
3.7.7 简单的“Hello World”ROS测试
3.7.8 ROS RQT Graph
3.7.9 ROS Gazebo
3.8 本章小结
3.9 本章练习
第4章 搭建一台简单的虚拟探测车
4.1 本章目标
4.2 ROS、RViz和Gazebo
4.3 ROS必备命令
4.4 机器人可视化(RViz)
4.4.1 Catkin工作空间回顾
4.4.2 URDF和SDF之间的关系
4.4.3 构建底盘
4.4.4 使用ROSLAUNCH命令
4.4.5 创建车轮和驾驶仪
4.4.6 创建AI探测车的脚轮
4.4.7 为AI探测车添加颜色(可选操作)
4.4.8 碰撞属性
4.4.9 测试AI探测车的车轮
4.4.10 物理属性
4.5 Gazebo简介
4.5.1 Gazebo的背景信息
4.5.2 启动Gazebo
4.5.3 Gazebo环境的工具栏
4.5.4 不可见关节面板
4.5.5 Gazebo的菜单栏
4.5.6 URDF向Gazebo SDF的转换
4.5.7 检查URDF向Gazebo SDF的转换
4.5.8 Gazebo中第一个受控AI探测车模型
4.5.9 首次应用深度学习的可能性
4.5.10 用关节面板移动AI探测车
4.6 本章小结
4.7 本章练习
第5章 在仿真系统中添加传感器
5.1 本章目标
5.2 XML宏编程语言
5.3 更多XML示例
5.4 重构探测车
5.4.1 模块化设计的探测车
5.4.2 Gazebo插件
5.4.3 系统集成
5.4.4 Gazebo启动文件
5.4.5 Xacro和Gazebo排错
5.5 探测车的远程操控(Teleop)节点
5.6 可视化工具TF Graph
5.7 控制探测车
5.7.1 探测车的漂移问题
5.7.2 第一个Python控制器
5.8 构建虚拟环境
5.9 本章小结
5.10 本章练习
第6章 感知与避障
6.1 本章目标
6.2 理解坐标系
6.3 构建探测车的环境模型
6.3.1 项目的组织
6.3.2 墓穴建模(简化版)
6.4 激光测距滤波器的设置
6.5 感知和规避障碍
6.5.1 源代码分析
6.5.2 解译LiDAR传感器数据
6.5.3 感知和规避障碍
6.5.4 执行避障代码
6.6 本章小结
6.7 本章练习
第7章 导航、SLAM和目标位置
7.1 本章目标
7.2 概述
7.3 任务类型
7.4 里程计
7.4.1 探测车的局部导航
7.4.2 探测车的全局导航
7.4.3 获取探测车的航向(方向)
7.4.4 执行rotateRobotOdom.py
7.5 控制理论
7.6 即时定位与地图构建
7.6.1 安装SLAM及相关库
7.6.2 设置SLAM库
7.6.3 导航的目标及任务
7.7 地图的重要性
7.8 启动探测车
7.8.1 创建ai_rover_world.launch
7.8.2 slam_gmapping启动文件
7.8.3 准备slam_gmapping包
7.8.4 修改gmapping_demo.launch文件
7.8.5 RViz中的gmapping
7.9 最终的启动终端命令
7.9.1 RViz中的地图构建配置
7.9.2 检查Laserscan配置
7.9.3 检查地图构建配置
7.9.4 保存RViz的配置
7.9.5 Noetic SLAM的补充知识
7.9.6 map_server ROS节点
7.9.7 保存或修改地图图像
7.9.8 地图图像数据文件rover_map.pgm
7.9.9 地图图像元数据文件rover_map.yaml
7.9.10 ROS的Bag文件
7.9.11 ROS Bag文件的重要性
7.10 自适应蒙特卡罗定位(找到丢失的探测车)
7.10.1 配置ROS中的AMCL节点
7.10.2 定位和AMCL的重要性
7.10.3 RViz中AMCL的可视化
7.10.4 用RViz改变探测车的姿态
展开