- 无人驾驶第一课:从 Apollo 起步
- https://cn.udacity.com/course/self-driving-car-fundamentals-featuring-apollo–ud0419
- Apollo架构分层
- apollo实时操作系统层:实时操作系统基于ubuntu,但是自己做了appollo kernel来保证实时性os
- 运行时框架:基于ROS的改进(共享内存避免内存在不同模块间拷贝、去中心化避免ros-master的单点故障、数据兼容性使用protobuf替代原有的ros-message更加健壮)
- 应用程序模块:各种定位、感知、控制、驾驶算法等
- 云服务:高清地图、方针、数据平台、安全性、OTA、DuerOS等
- 云端方针:大量数据集在这里存放,用户上传相应模块,方针系统给出多个唯独的评价(碰撞检测、交通灯、速度控制、障碍检测等),可以可视化
- Apollo HD Map
- 地图构建分如下阶段:
- 数据收集
- 数据预处理(做成点云)
- 自动化静态物体分类(交通灯、路线、电线杆)
- 人工校验
- 地图发布
- HD Map对高校直接开放,对于采购相应硬件的合作伙伴进行有限度的开放
- 地图构建分如下阶段:
- Localization:
- GNSS RTK(eg. gps)
- 缺点:定位误差大(1-3米),实时性差(每秒十次)
- Inertial Navigation(惯性导航)
- 惯性计量单元(IMU),主要硬件:三轴加速度计、三轴陀螺仪
- 优点:频率高,瞬时准确度高
- 缺点:长时间累计误差
- 激光雷达:
- 雷达扫描和HD Map点云图进行匹配
- 匹配算法:迭代最近点(ICP)、直方图滤波算法、卡尔曼滤波(利用过去状态和当前状态)
- 优点:鲁棒高
- 缺点:算法是和精确地图匹配,但地图的精确性和更新的及时性无法严格保证
- 基于视觉
- 方法:粒子滤波(持续的观察)
- 优点:数据获取成本低
- 缺点:需要依赖三维地图数据
- GNSS RTK(eg. gps)
- 组合模型:
- 用卡尔曼滤波的方法融合上述多特征数据
- perception
- 四个任务
- detection
- classification
- tracking
- segmentation
- 方式:摄像头、雷达
- Apollo:
- segmentation:yolo
- 性能:
-
task camera lidar radar camera+lidar+radar - —|—|—|—|—
-
Object Detection Mixed Good Mixed Good -
Object Classification Good Mixed Poor Good -
Range of visibility Mixed Mixed Good Good -
lane tracking good poor poor good -
functionality in bad weather poor mixed good good -
functionality in poor light mixed good good good
-
- 四个任务
- prediction
- 方法:
- model-based prediction
- 基于物理知识、专家知识总结
- data-driven-based prediction
- 基于数据训练机器学习模型
- model-based prediction
- Apollo使用了车道序列预测的方法,把地图重的路段分成一个个的框图,预测车在不同框之间的移动,而不关心车在框内的移动(target lane prediction)
- 采用RNN
- 轨迹预测:
- 多项式拟合
- 方法:
- planning
- 高层次的选择路径,以及路径轨迹生成
- 有很多约束条件:物理约束、交通规则约束、碰撞避免
- frenet坐标系
- control
- 方法:
- PID
- 线性二次调节器LQR
- 模型预测控制MPC
- 方法:
联系我: