0%

自动驾驶学习笔记

Apollo入门课程

无人驾驶概览

自动驾驶等级

  1. Base level 驾驶员完全控制车辆
  2. Driver Assistance
  3. Partial Automation
  4. Conditional Automation
  5. No Human Interference
  6. 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
    • 卡尔曼滤波

感知

  1. 检测 Detection
  2. 分类 Classification
  3. 跟踪 Tracking
  4. 语义分割 Segmentation

计算机视觉

  • 摄像头图像
  • LiDAR图像

机器学习

  • 监督学习
  • 无监督学习
  • 半监督学习
  • 强化学习

检测与分类

  • YOLO
  • SSD

Apollo感知

  • ROI在高精度地图
  • Detection Network
  • 检测和跟踪
  • YOLO车道线检测、目标跟踪

传感器比较

传感器比较

感知融合策略:

  • 卡尔曼滤波
    • 同步融合
    • 异步融合

预测

  • 基于模型的预测
  • 数据驱动预测

Apollo预测

基于车道序列方法
基于车道序列方法
神经网络预测车道序列
结合车辆物理元素,轨迹生成:可以用多项式拟合

规划

输入:

  • map
  • location
  • destination
    搜索:讲地图转化为图(graph)

搜索算法

A*

轨迹评估

  • 无障碍
  • 乘客舒服
  • 轨迹实际可行的
  • 轨迹应该遵守交通规则

轨迹选择

成本函数(cost function)。不同路况、场景的成本函数不同

Frenet坐标系

Frenet坐标系

路径-速度解耦规则

  1. 路径规划
  2. 速度规划
    • ST图
      ST图
    • 障碍物阻挡的ST图:法律限制、速度限制、汽车物理限制等等来筛选曲线
      障碍物阻挡的ST图
    • 二次规划来平滑轨迹

路径规划—>ST图轨迹选择—>二次规划轨迹平滑

Lattice规划

ST轨迹(纵向偏移)
SL轨迹(横向偏移)
ST_SL

ST轨迹的3组状态:

  • 巡航(Cruising):定速行驶
  • 跟随(Following)
  • 停止(Stoping)

SL轨迹的状态:

  • SL曲线一阶二阶导数都应该为零

控制

  • 比例积分微分控制PID
    • P——proportional
    • I——integral
    • D——derivative
  • 线性二次调节器LQR
    • Apollo用来横向控制
  • 模型预测控制MPC(精确,但是慢、难实现)
    1. 建立车辆模型
      • 车辆物理运动模型
      • 预测
    2. 使用优化引擎计算有限时间范围内的控制输入
    3. 执行第一组控制输入

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控制器
  • 后馈环控制

传感器融合

计算机视觉、激光雷达、毫米波雷达的比较

计算机视觉、激光雷达、毫米波雷达的比较

多传感器信息融合总结