目 录
第 1章 自动驾驶测试基础 1
1.1 自动驾驶测试的三支柱法 1
1.1.1 开放道路测试 1
1.1.2 封闭场地测试 2
1.1.3 虚拟仿真测试 2
1.2 自动驾驶仿真测试的应用分类 4
1.2.1 MIL测试 4
1.2.2 SIL测试 5
1.2.3 HIL测试 5
1.2.4 VIL测试 6
1.2.5 其他 6
1.3 测试手段对比 7
1.4 本章小结 7
第 2章 CARLA介绍与使用 8
2.1 CARLA简介 8
2.2 CARLA中的基本概念 9
2.3 CARLA对软硬件的要求 10
2.4 CARLA的下载和安装 10
2.4.1 CARLA的下载和安装方式 10
2.4.2 CARLA免安装包的下载和安装 11
2.4.3 CARLA服务端的简单探索 13
2.5 CARLA的客户端启动 14
2.6 本章小结 17
第3章 CARLA客户端编程实战1——传感器仿真 18
3.1 在仿真世界中创建第 一辆车 18
3.2 如何控制观察者视野 20
3.3 如何创建传感器 24
3.3.1 CARLA支持的传感器 24
3.3.2 摄像头仿真 26
3.3.3 激光雷达仿真 30
3.3.4 毫米波雷达仿真 34
3.3.5 GNSS传感器仿真 39
3.3.6 IMU传感器仿真 42
3.4 如何控制车辆的行驶 44
3.5 本章小结 47
第4章 CARLA客户端编程实战2——场景控制 48
4.1 自动驾驶场景 48
4.2 地图和道路的切换 48
4.2.1 获得当前地图 48
4.2.2 获得所有内置地图 49
4.2.3 切换世界地图 50
4.2.4 地图的图层控制 51
4.2.5 加载额外地图 54
4.2.6 用户自定义地图 59
4.2.7 获取具体的道路环境信息 60
4.2.8 CARLA中的世界坐标系 73
4.3 交通参与者的控制 75
4.3.1 CARLA中的交通参与者蓝图 75
4.3.2 在指定位置生成目标物 81
4.3.3 行人的运动控制 82
4.4 天气的控制 85
4.4.1 CARLA中的天气控制 85
4.4.2 通过客户端控制天气的实例 85
4.5 场景的综合控制 87
4.6 本章小结 90
第5章 CARLA客户端编程实战3——闭环控制 91
5.1 AEB功能的实现 91
5.2 LKA功能的实现 95
5.3 ACC功能的实现 97
5.4 本章小结 102
第6章 CARLA客户端编程实战4——过程控制 103
6.1 CARLA的渲染质量控制 103
6.1.1 渲染质量控制:Epic模式和Low模式 103
6.1.2 无渲染模式 104
6.1.3 离屏模式 104
6.2 同步模式和异步模式 104
6.2.1 异步模式的测试 105
6.2.2 同步模式的测试 107
6.3 仿真的开始、结束、暂停和步进 109
6.4 仿真过程的录制 118
6.5 录制数据的重播 119
6.6 本章小结 122
第7章 CARLA和OpenX系列标准 123
7.1 OpenX系列标准介绍 123
7.2 在CARLA中加载OpenDRIVE地图 124
7.3 在CARLA中运行OpenSCENARIO场景 125
7.3.1 ScenarioRunner介绍 125
7.3.2 ScenarioRunner的下载及安装 126
7.3.3 ScenarioRunner的环境变量设置 127
7.3.4 ScenarioRunner运行OpenSCENARIO场景 128
7.4 在CARLA中运行自定义的OpenSCENARIO场景 130
7.4.1 ScenarioRunner运行自定义OpenSCENARIO场景 130
7.4.2 用OpenSCENARIO场景测试自制的规控算法 134
7.4.3 基于OpenSCENARIO的批量仿真测试 137
7.5 本章小结 140
第8章 从ROS到CARLA ROS Bridge 141
8.1 ROS简介 141
8.2 从ROS1到ROS2 141
8.3 ROS的核心概念 142
8.4 ROS2的安装及测试 142
8.4.1 ROS2的安装 143
8.4.2 ROS2的简单测试 146
8.4.3 常见的ROS2命令行指令 147
8.5 ROS2的节点定义 148
8.5.1 使用ROS2创建一个节点 148
8.5.2 使用ROS2创建两个节点 151
8.5.3 使用ROS2的launch文件调用多个节点 153
8.5.4 下一步计划 154
8.6 ROS2中的通信 155
8.6.1 ROS2中的3种通信方式 155
8.6.2 ROS2中主要的通信方式 155
8.6.3 节点通信的代码实现 156
8.6.4 rqt_graph可视化工具 160
8.6.5 下一步计划 161
8.7 ROS2节点实操:AEB的仿真测试 161
8.7.1 节点设计 161
8.7.2 代码实操 161
8.7.3 下一步计划 168
8.8 自定义接口 168
8.8.1 什么是接口 168
8.8.2 自定义接口实操 169
8.8.3 自定义接口的调用 172
8.8.4 下一步计划 179
8.9 CARLA的ROS bridge的安装和使用 179
8.9.1 ROS bridge简介 179
8.9.2 ROS bridge中的功能包 180
8.9.3 ROS bridge的安装 180
8.9.4 ROS bridge的运行 181
8.9.5 官方示例2解读 185
8.10 ROS bridge的定制化使用 186
8.10.1 AEB控制节点的准备 186
8.10.2 AEB控制节点的测试 189
8.10.3 下一步计划 191
8.11 本章小结 191
第9章 隔离CARLA运行环境:Docker技术 192
9.1 Docker概述 192
9.2 Docker的基本概念 193
9.2.1 Docker镜像 193
9.2.2 Docker容器 193
9.2.3 Docker仓库 193
9.2.4 Docker工具组件 193
9.3 安装Docker 194
9.3.1 Docker的两个版本 194
9.3.2 卸载旧版Docker 194
9.3.3 安装Docker引擎的方法 194
9.4 Docker的初步使用方法 196
9.4.1 帮助启动类命令 196
9.4.2 远程镜像仓库管理 197
9.4.3 本地镜像管理 198
9.4.4 容器的管理 202
9.5 Docker版本CARLA的安装和使用 209
9.5.1 CARLA镜像的安装 209
9.5.2 英伟达容器工具包的安装 210
9.5.3 Docker版本CARLA的运行 211
9.6 初试ROS2镜像 212
9.7 自制镜像 214
9.8 K8S技术在仿真测试中的应用 214
9.8.1 K8S的背景和起源 214
9.8.2 K8S的核心概念 215
9.8.3 K8S的主要功能 215
9.8.4 K8S的应用场景 215
9.9 本章小结 216
第 10章 CARLA和Autoware联合 仿真 217
10.1 Autoware简介 217
10.2 Autoware的版本迭代 218
10.2.1 从Autoware.AI到 Autoware.Auto 218
10.2.2 从Autoware.Auto到 Autoware.Core/Universe 218
10.3 Autoware的架构简介 219
10.4 Autoware的安装 219
10.5 Autoware的试运行 220
10.6 CARLA与Autoware联合仿真 223
10.6.1 联合仿真框架设计 224
10.6.2 Autoware软件准备 224
10.6.3 软件镜像准备 227
10.6.4 运行测试 227
10.7 本章小结 230
第 11章 自动驾驶软件测试 231
11.1 软件测试的基本流程 231
11.2 根据需求生成测试用例 231
11.3 测试用例设计规范 233
11.4 测试用例设计范例 233
11.4.1 案例1——C-NCAP-AEB- CSTA-RN 234
11.4.2 案例2——IVISTA-HNP- 匝道汇入 235
11.5 测试用例管理 236
11.6 CI/CD技术简介 237
11.6.1 CI/CD简介 237
11.6.2 CI/CD的应用流程 237
11.7 本章小结 238
后记 239