1 基于模块化设计的经济可靠的自动驾驶方案 001
1.1 简介 001
1.2 成本昂贵的自动驾驶技术 002
1.2.1 传感器系统 002
1.2.2 高精度地图的创建和维护 003
1.2.3 计算系统 003
1.3 实现经济可行性和技术可靠性 004
1.3.1 传感器融合 004
1.3.2 模块化设计 005
1.3.3 扩展现有的数字地图 005
1.4 模块化设计 006
1.4.1 通信系统 007
1.4.2 底盘 007
1.4.3 用于被动感知的毫米波雷达和声呐 007
1.4.4 用于定位的GNSS 007
1.4.5 用于主动感知和定位的计算机视觉 007
1.4.6 规划与控制 008
1.4.7 建图 008
1.5 内容前瞻 008
1.6 书中使用的开源项目 009
参考文献 011
2 车载通信系统 012
2.1 简介 012
2.2 控制器局域网络(CAN) 013
2.3 FlexRay总线 015
2.3.1 FlexRay拓扑结构 016
2.3.2 FlexRay通信协议 016
2.4 CANopen 017
2.4.1 对象字典 018
2.4.2 配置文件族 018
2.4.3 数据传输和网络管理 019
2.4.4 通信模型 020
2.4.5 CANopen节点(CANopenNode) 020
参考文献 022
3 智能机器人和自动驾驶车辆的底盘技术 023
3.1 简介 023
3.2 线控节流阀 024
3.3 线控制动技术 025
3.4 线控转向技术 025
3.5 Open Source Car Control项目 025
3.5.1 OSCC APIs 026
3.5.2 硬件机构 026
3.5.3 固件 027
3.6 OpenCaret 028
3.6.1 OSCC 节流阀 028
3.6.2 OSCC制动 028
3.6.3 OSCC转向 029
3.7 以PerceptIn自动驾驶汽车底盘为例的软件适配层 030
参考文献 033
4 声呐和毫米波雷达的被动感知 034
4.1 简介 034
4.2 毫米波雷达的基本原理 035
4.2.1 距离测量 035
4.2.2 速度测量 036
4.2.3 角度测量 037
4.3 毫米波雷达部署 037
4.4 声呐传感器部署 040
参考文献 044
5 通过实时动态全球导航卫星系统进行定位 045
5.1 简介 045
5.2 GNSS技术概述 046
5.3 RTK-GNSS 047
5.4 RTK-GNSS云服务器安装步骤 049
5.4.1 配置NtripCaster 049
5.4.2 开始运行NtripCaster 051
5.5 在树莓派上配置NtripServer和NtripClient 052
5.5.1 安装树莓派系统 052
5.5.2 在树莓派上运行RTKLIB-str2str 053
5.6 配置基站和GNSS移动探测站 055
5.6.1 基站硬件配置 055
5.6.2 基站软件配置 055
5.6.3 配置GNSS移动探测站 059
5.7 FreeWave无线电基本配置 062
参考文献 066
6 计算机视觉的定位与感知 067
6.1 简介 067
6.2 搭建计算机视觉硬件 068
6.2.1 七层技术 068
6.2.2 硬件同步 070
6.2.3 计算 071
6.3 相机标定 071
6.3.1 内参 072
6.3.2 外参 072
6.3.3 Kalibr 072
6.4 计算机视觉定位 075
6.4.1 VSLAM概述 075
6.4.2 ORB-SLAM2 076
6.5 计算机视觉感知 077
6.5.1 双目立体深度感知算法ELAS 078
6.5.2 目标实例分割算法Mask R-CNN 078
6.6 DragonFly系统的计算机视觉模块 079
6.6.1 DragonFly定位接口 080
6.6.2 DragonFly感知接口 081
6.6.3 DragonFly 系统 082
参考文献 084
7 规划和控制 086
7.1 简介 086
7.2 路径规划 087
7.2.1 有向加权图 087
7.2.2 迪杰斯特拉(Dijkstra)算法 088
7.2.3 A*算法 089
7.3 行为决策 089
7.3.1 马尔可夫决策过程(MDP) 090
7.3.2 值迭代算法 090
7.3.3 部分可见马尔可夫决策过程(POMDP) 091
7.3.4 求解POMDP 092
7.4 运动规划 092
7.4.1 快速扩展随机树 093
7.4.2 RRT*算法 094
7.5 反馈控制 094
7.5.1 比例积分微分(PID)控制器 095
7.5.2 模型预测控制(MPC) 096
7.6 Apollo中的EM Planning 迭代系统 097
7.6.1 术语 097
7.6.2 EM Planning 迭代算法 098
7.7 PerceptIn规划控制框架 101
参考文献 104
8 建图 105
8.1 简介 105
8.2 数字地图 106
8.2.1 OSM开源地图 106
8.2.2 Java OpenStreetMap编辑器 108
8.2.3 Nominatim 109
8.3 高精地图 111
8.3.1 高精地图的特征 111
8.3.2 高精地图的图层 111
8.3.3 高精地图的创建 112
8.4 PerceptIn公司的-Map 115
8.4.1 拓扑图 115
8.4.2 -Map的创建 116
参考文献 118
9 搭建DragonFly Pod 和DragonFly Bus 119
9.1 简介 119
9.2 底盘硬件规格 120
9.3 传感器配置 122
9.4 软件架构 124
9.5 系统机制 126
9.6 数据结构 127
9.6.1 常用数据结构 128
9.6.2 底盘数据 129
9.6.3 定位数据 131
9.6.4 感知数据 133
9.6.5 规划数据 135
9.7 用户界面 139
参考文献 140
10 搭建商业智能太空探索机器人 141
10.1 简介 141
10.2 目的地火星 142
10.3 火星探索机器人 143
10.3.1 定位 143
10.3.2 感知 144
10.3.3 路径规划 144
10.3.4 好奇号漫游车和火星2020探测器 145
10.4 挑战:机载计算能力 147
参考文献 150
11 自动驾驶车辆的边缘计算 151
11.1 简介 151
11.2 基准(Benchmarks) 152
11.3 计算系统架构 153
11.4 运行时层(Runtime) 154
11.5 中间件 155
11.6 案例研究 156
参考文献 158
12 Vehicle-to-Everything基础设施的创新 160
12.1 简介 160
12.2 V2X技术的发展历史 160
12.3 协同自动驾驶 163
12.4 挑战 164
参考文献 166
13 车辆边缘安全 168
13.1 简介 168
13.2 传感器安全 168
13.3 操作系统安全 169
13.4 控制系统安全 170
13.5 V2X安全 170
13.6 边缘计算的安全性 171
参考文献 173