Apollo入门课程
无人驾驶概览
自动驾驶等级
- Base level 驾驶员完全控制车辆
- Driver Assistance
- Partial Automation
- Conditional Automation
- No Human Interference
- Full Automation
无人车的运作方式
硬件平台
- 控制器区域网络(Controller Area Network, CAN)
- GPS
- IMU
- Lidar:(Light)光波
- Radar:(Radio)无线电波
软件平台
- 实时操作系统(RTOS): ubuntu+apollo
- 去中心化:多Node
- Protobuf替代ROS Messagr增加兼容性
- 运行时框架
- 应用程序模块层
云服务
- HD Map
- Simulation
- Data Platform
- Security
- OTA(空中软件升级)
- DuerOS(智能语音系统)
高精度地图
ROI可以提高精度和寻找速度
Apollo高清地图格式:OpenDRIVE
高清地图组成
- 数据采集
- 数据处理
- 对象检测
- 手动验证
- 地图发布
定位
- GNSS(Gloval Navigation Satellite System) RTK(实时运动定位)
- Satellite
- Control Station
- Receivers
- ps:GPS是GNSS的一种
- 惯性导航(Inertial Navigation) 可达1000Hz
- 容易飘
- 激光雷达Lidar
- ICP
- 滤波算法
- 直方图滤波Histogram Filter (有时候称Sum of Squared Difference, SSD)
- 卡尔曼滤波
- 粒子滤波
- 视觉定位
- 优点:图像易获得
- 缺点:没有三维信心
- Apollo定位
- GPS、IMU、LiDar
感知
- 检测 Detection
- 分类 Classification
- 跟踪 Tracking
- 语义分割 Segmentation
计算机视觉
- 摄像头图像
- LiDAR图像
机器学习
- 监督学习
- 无监督学习
- 半监督学习
- 强化学习
检测与分类
- YOLO
- SSD
Apollo感知
- ROI在高精度地图
- Detection Network
- 检测和跟踪
- YOLO车道线检测、目标跟踪
传感器比较
感知融合策略:
- 卡尔曼滤波
- 同步融合
- 异步融合
预测
- 基于模型的预测
- 数据驱动预测
Apollo预测
基于车道序列方法
神经网络预测车道序列
结合车辆物理元素,轨迹生成:可以用多项式拟合
规划
输入:
- map
- location
- destination
搜索:讲地图转化为图(graph)
搜索算法
A*
轨迹评估
- 无障碍
- 乘客舒服
- 轨迹实际可行的
- 轨迹应该遵守交通规则
轨迹选择
成本函数(cost function)。不同路况、场景的成本函数不同
Frenet坐标系
路径-速度解耦规则
- 路径规划
- 速度规划
- ST图
- 障碍物阻挡的ST图:法律限制、速度限制、汽车物理限制等等来筛选曲线
- 二次规划来平滑轨迹
- ST图
路径规划—>ST图轨迹选择—>二次规划轨迹平滑
Lattice规划
ST轨迹(纵向偏移)
SL轨迹(横向偏移)
ST轨迹的3组状态:
- 巡航(Cruising):定速行驶
- 跟随(Following)
- 停止(Stoping)
SL轨迹的状态:
- SL曲线一阶二阶导数都应该为零
控制
- 比例积分微分控制PID
- P——proportional
- I——integral
- D——derivative
- 线性二次调节器LQR
- Apollo用来横向控制
- 模型预测控制MPC(精确,但是慢、难实现)
- 建立车辆模型
- 车辆物理运动模型
- 预测
- 使用优化引擎计算有限时间范围内的控制输入
- 执行第一组控制输入
- 建立车辆模型
Apollo进阶课程
定位
- GNSS
- 激光点云
- 视觉
- 捷连惯性导航及组合导航
GNSS需要4个卫星的信号才能定位:因为GPS接收器(比如手机)的时间是不准的,所以把t看作未知数。或者说需要加多一颗来减小误差。
常用坐标系
- 地心惯性坐标系(ECI)i系:地心为原点,Z轴指向北极,XY轴位于赤道平面,分别指向两颗恒星。IMU使用这个坐标系
- 地心地固坐标系(ECEF)e系:地心为原点,Z轴指向北极,X轴位于赤道平面和格林威治子午面的交线上,Y轴在赤道平面,满足右手法则。
- 当地水平坐标系(n系):东-北-天(E-N-U)和北-东-地(N-E-D)。导航坐标系
- 通用横轴墨卡托投影(UTM投影)
- 车体坐标系
- 相机坐标系
- 激光雷达坐标系
载波定位:RTK、PPP
点云的定位
- 基于Histogram Filter的激光点云定位
- SSD(Sum of Squared Difference)
视觉定位技术
- 算法流程
- 特征匹配
- 粒子滤波
捷联惯性导航系统:
- 初始对准
- 惯导解算
组合导航:
高精度地图
主流通用格式规范:
- NDS(Navigation Data Standard)
- OpenDrive
- OMP
公司: - HERE
- MobilEye
- Google Waymo
- TomTom
地图制作流程: - 数据采集
- 数据处理
- 点云拼接
- 底图产生
- 元素识别
- 基于深度学习的识别
- 基于深度学习的点云分类
- 人工验证
- 车道线、路沿
- 信号灯、标志牌
- 虚拟道路、逻辑关系
感知
传感器标定算法
感知算法
- Lidar感知(检测)
- 启发式方法:Ncut
- DL方法:CNNSeg
- 视觉
- DL检测和分割
- 跟踪,2d-to-3d,多相机融合
- 红绿灯(感知与地图交互)
- Radar感知(检测)
- Ultrasonic感知(检测)
规划
运动规划方法
- 环境建模
- RRT
- Lattice
- 自动驾驶的现代方法
- Darpa Challenge Approaches
- Lattice in Frenet Frame
- Spiral, Polynomial and Splines
- Functional Optimization
- 路径限制类型
- Local Constraint,例如避免和障碍物碰撞
- Differential Constraint,比如边界曲率
- Global Constraint,比如最短路径
- 自动驾驶中传统的轨迹生成方法:
- Configuration Space
- Lattice approach
- RRT based approach
- 改进和现在的方法
- Lattice in Frenet Frame
- Splines
- Functional Optimization
控制
自动驾驶系统是否满足性能要求可以从三个角度去评测
- 时域
- 频域
- discrete domain(离散域)
PID控制:PID控制的基础是比例控制;积分控制可消除稳态误差,但可能增加超调;微分控制可加快大惯性系统响应速度以及减弱超调趋势。
- 比例单元P
- 积分单元I
- 微分单元D
控制器的类型:
- 开环控制
- 前馈环控制
- Optimal Control(优化控制)
- Adaptive Control(自适应控制)
- Robust Control(鲁棒性控制)
- LQR/LTR控制器
- Optimal Control(优化控制)
- 后馈环控制