图书目录

第1章  自动驾驶与路径导航 1

1.1  自动驾驶和智能驾驶 2

1.1.1  自动驾驶介绍 2

1.1.2  智能驾驶概念的兴起 2

1.2  自动驾驶技术介绍 3

1.3  路径规划介绍 3

1.3.1  路径规划与智能导航 3

1.3.2  行为决策和路径规划 4

1.4  本章总结 5

第2章  自动驾驶中的静态路径规划 7

2.1  基础的静态路径规划:Dijkstra 8

2.1.1  领域和场景 8

2.1.2  表示方法 8

2.2  静态路径规划的应用案例 9

2.2.1  交通网络中的最短路径规划 9

2.2.2  在机器人导航系统中的应用 12

2.3  Dijkstra算法的局限性与改进 16

2.3.1  负权边问题 16

2.3.2  大规模图的计算效率 18

2.4  实战案例:行驶路径规划系统 21

2.4.1  项目介绍 21

2.4.2  地铁数据文件 22

2.4.3  找出两个站点的最短路径 23

2.5  实战案例:基于Pygame模拟的自动驾驶系统 27

2.5.1  项目介绍 27

2.5.2  数据文件 28

2.5.3  汽车运动规划 29

2.5.4  路径规划 35

2.5.5  主程序 47

2.6  本章总结 52

第3章  自动驾驶中的启发式路径规划 53

3.1  A*算法介绍 54

3.1.1  A*算法的应用领域与典型场景 54

3.1.2  基本原理和实现步骤 54

3.2  应用案例 57

3.2.1  实战案例:游戏开发中的路径规划 58

3.2.2  实战案例:机器人导航系统中的应用实战 61

3.3  实战案例:汽车路径规划模拟系统 64

3.3.1  项目背景和意义 65

3.3.2  Reeds-Shepp 曲线生成器 65

3.3.3  路径规划 81

3.4  本章总结 94

第4章  自动驾驶中的全局路径规划 95

4.1  全局路径规划的核心:Floyd-Warshall 96

4.1.1  应用领域与典型场景 96

4.1.2  实现步骤 96

4.1.3  推导过程 97

4.1.4  Floyd-Warshall与其他路径规划算法的区别 99

4.2  应用案例 104

4.2.1  实战案例:航空线路规划系统 104

4.2.2  实战案例:城市交通规划程序 107

4.3  Floyd-Warshall的局限性与改进 110

4.3.1  算法复杂度与大规模图的挑战 110

4.3.2  负权回路的处理策略 112

4.3.3  并行Floyd-Warshall 115

4.4  实战案例:基于Flak和Floyd-Warshall的航班查询系统 119

4.4.1  背景介绍 119

4.4.2  数据操作 120

4.4.3  计算最短路径 125

4.4.4  Flask Web前端实现 129

4.5  本章总结 133

第5章  自动驾驶中的全局路径精简计算 135

5.1  简化版的全局路径规划:Floyd算法 136

5.1.1  背景与历史 136

5.1.2  Floyd和Floyd-Warshall的关系 136

5.1.3  Floyd和Floyd-Warshall的区别 136

5.1.4  应用领域与典型场景 137

5.2  Floyd算法的核心思想 138

5.2.1  原理和实现步骤 138

5.2.2  计算过程 139

5.3  Floyd算法的改进 143

5.3.1  通过空间优化来减少内存消耗 143

5.3.2  并行化优化 145

5.4  实战案例:校内机器人配送系统 148

5.4.1  项目介绍 148

5.4.2  具体实现 149

5.5  本章总结 155

第6章  自动驾驶中的动态环境路径重规划 157

6.1  动态路径规划算法简介 158

6.1.1  静态路径规划算法和动态路径规划算法 158

6.1.2  动态路径规划算法的背景 158

6.1.3  动态路径规划算法的应用领域与场景 159

6.1.4  常用的动态路径规划算法 159

6.2  D*算法介绍 160

6.2.1  背景和发展历程 160

6.2.2  原理和实现步骤 161

6.2.3  实现流程及其与A*算法的区别 161

6.2.4  常用概念及函数 164

6.3  应用实战 165

6.3.1  实战案例:迷宫中的路径探索与动态障碍物处理 165

6.3.2  实战案例:探索机器人的新家 173

6.4  实战案例:探险家的行进路线 182

6.4.1  绘制地图 183

6.4.2  实现D*算法 184

6.5  本章总结 190

第7章  自动驾驶中的无地图环境路径探索 191

7.1  D* Lite算法介绍 192

7.1.1  应用领域与场景 192

7.1.2  核心思想 192

7.1.3  实现步骤 193

7.1.4  实战案例:寻找迷宫中的最短路径 194

7.2  实战案例:基于Pygame库的交互式路径规划器 202

7.2.1  项目介绍 202

7.2.2  实现路径规划算法 202

7.2.3  路径规划可视化 208

7.3  实战案例:基于D* Lite的路径规划系统 218

7.3.1  项目介绍 218

7.3.2  构建图 219

7.3.3  实现D* Lite算法 222

7.3.4  路径规划可视化 226

7.4  本章总结 229

第8章  自动驾驶中基于概率采样的路径规划 231

8.1  基于概率采样的典型技术:RRT 232

8.2  RRT的定义与实现 232

8.2.1  实现步骤 232

8.2.2  原始的RRT 233

8.2.3  基于概率P的RRT 235

8.2.4  RRT_Connect 算法 239

8.2.5  RRT*算法 242

8.3  实战案例:基于Gazebo仿真的路径规划系统 246

8.3.1  项目介绍 247

8.3.2  RRT*-FN算法介绍 247

8.3.3  构建地图 248

8.3.4  实现RRT、RRT*和RRT*-FN算法 252

8.3.5  解析SDF文件 272

8.3.6  主程序 273

8.4  本章总结 276

第9章  自动驾驶中的路线优先级遍历 277

9.1  优先级遍历算法简介 278

9.2  基于目标导向的路径探索:Best-First Search 278

9.2.1  基本思想 278

9.2.2  实现步骤 279

9.2.3  实战案例:寻找两个城市之间的最短路径 282

9.3  多约束均衡路径规划 290

9.3.1  均匀代价搜索算法的基本思想 290

9.3.2  实战案例:自驾游路径规划程序 293

9.4  特定场景的路径遍历:深度优先搜索 299

9.4.1  深度优先搜索算法介绍 299

9.4.2  实战案例:为猫咪寻找最短路径 300

9.5  特定场景的路径遍历:广度优先搜索 302

9.5.1  广度优先搜索算法介绍 303

9.5.2  广度优先搜索算法介绍 303

9.6  实战案例:基于tkinter的多算法路径规划程序 306

9.6.1  背景介绍 306

9.6.2  功能模块 306

9.6.3  创建基于tkinter的交互环境 307

9.6.4  路径规划 319

9.7  本章总结 328

第10章  自动驾驶中的行为决策技术 329

10.1  行为决策算法简介 330

10.1.1  行为决策算法的背景与历史 330

10.1.2  行为决策算法在自动驾驶中的应用 331

10.2  基于规则的决策算法 332

10.2.1  基于规则的决策算法介绍 332

10.2.2  实战案例:基于交通信号灯和障碍物感知的决策 332

10.3  基于优化的行为决策 334

10.3.1  模型预测控制 335

10.3.2  线性规划 337

10.3.3  非线性规划 338

10.4  基于深度学习的行为决策方法 339

10.4.1  基于深度学习的行为决策方法及应用 339

10.4.2  实战案例:基于DQN的自动驾驶程序 341

10.5  基于Trajectron++模型的行为预测 350

10.5.1  Trajectron++模型介绍 350

10.5.2  实战案例:基于Trajectron++模型的行为预测系统 352

10.6  本章总结 358