自动驾驶学习笔记(十一)——高精地图

#Apollo开发者#

学习课程的传送门如下,当您也准备学习自动驾驶时,可以和我一同前往:

 《自动驾驶新人之旅》免费课程—> 传送门

《Apollo Beta宣讲和线下沙龙》免费报名—>传送门

文章目录

前言

高精地图

地图采集

底图制作

地图标注

地图格式

Tips

总结


前言

        见《自动驾驶学习笔记(七)——感知融合

        见《自动驾驶学习笔记(八)——路线规划

        见《自动驾驶学习笔记(九)——车辆控制

        见《自动驾驶学习笔记(十)——Cyber通信

高精地图

        高精地图(High Definition Map)按照功能划分为4个图层:

        静态图层:保存道路的3维建模信息,通常是道路的测绘数据。

        定位图层:通过原始的点云地图,提取出一些特征如电线杆、建筑物、交通标志等。用来做点云匹配定位。

        语义图层:提供道路的结构化信息,这部分信息定义了车道线、交通标志、交通规则信息等。

        动态图层:实时动态的更新一些信息如:当前路況、实时交通规则、前方车祸等。

地图采集

        基于激光雷达:能够准确获取位置信息,光照变化影响不大。

        基于视觉:能够提供颜色,纹理信息,对光照变化敏感,得不到准确深度信息。

        地图采集车获取到的点云record文件为PCD格式,每个pcd文件代表一帧点云,如下图所示:

底图制作

        目前主流的方法是通过SLAM算法对道路进行建模,得到一块区域的地图数据,然后进行标注。视觉SLAM算法有:ORB-SLAM、SVO、DSO等。激光雷达SLAM算法有:NDT、Cartographer·、LOAM系列算法等。

        NDT制图是对每2帧的PCD文件进行配准,得到校正后的位置信息,然后拼接这2个点云,如下图所示:

        重复上述步骤直到做出整张地图,最终点云地图的效果如下:

地图标注

        常见的地图标注工具有:Roadrunner、Vector Map Builder(autoware)、LGSVL Map Annotation、Autocore Map Toolbox、Assure mapping tools等。

        Roadrunner是一款商业软件,功能非常完善,它的工作界面如下图所示。它可以编辑道路,支持导出格式opendrive,apollo,autoware,可以输出模型,供仿真器使用。

地图格式

        目前还没有统一的高精度地图格式,主流的地图格式包括:Opendrive、Lanelet2、VectorMap等。Opendrive是德国汽车制造商奥迪、宝马、戴姆勒、保时捷大众成立的组织,目的是标准化车辆开发和验证过程中的数据交换。Lanelet2 是一个 C++ 库,用于在自动驾驶环境中处理地图数据。VectorMap是一种矢量地图,目前自动驾驶系统普遍采用采样的方式来表征高精度地图。

        Apollo高精度地图通过proto定义,每个proto代表一种地图元素,如下图所示:

Tips

        高精地图的特点:

        1、精度达1m,而传统地图精度仅10m左右

        2、数据文件可能需要上百G的存储

        3、更新速度更快,道路上的围挡、画线等都要及时更新

总结

        以上就是本人在学习自动驾驶时,对所学课程的一些梳理和总结。后续还会分享另更多自动驾驶相关知识,欢迎评论区留言、点赞、收藏和关注,这些鼓励和支持都将成文本人持续分享的动力。

        另外,如果有同在小伙伴,也正在学习或打算学习自动驾驶时,可以和我一同抱团学习,交流技术。


        版权声明,原创文章,转载和引用请注明出处和链接,侵权必究!

        文中部分图片来源自网络,若有侵权,联系立删。

最近更新

  1. TCP协议是安全的吗?

    2023-12-05 16:24:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-05 16:24:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-05 16:24:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-05 16:24:02       18 阅读

热门阅读

  1. 基于c 实现 FIFO

    2023-12-05 16:24:02       34 阅读
  2. 服务器固件

    2023-12-05 16:24:02       33 阅读
  3. 深入浅出 Golang 中的直接依赖和间接依赖管理

    2023-12-05 16:24:02       29 阅读
  4. EasyExcel list<Map>批量导出多个sheet

    2023-12-05 16:24:02       39 阅读
  5. Hive进阶函数:inline() 和 struct() ,一列转多行

    2023-12-05 16:24:02       36 阅读
  6. Appium:iOS测试比Android测试更难?

    2023-12-05 16:24:02       43 阅读
  7. SpringMVC的基础知识

    2023-12-05 16:24:02       30 阅读
  8. 总结 SpringMVC 中的常用注解和用法

    2023-12-05 16:24:02       34 阅读
  9. Django大回顾-4 自定义过滤器和标签、模型层

    2023-12-05 16:24:02       35 阅读
  10. Backend - Django JsonResponse & HttpResponse

    2023-12-05 16:24:02       20 阅读