OpenDrive格式高精度地图详细解析及其使用(1.栅格地图、OpenDrive坐标系以及参考线介绍)

临近年底,回想自己今年做的事情,越想越惭愧,摇摇摆摆持续内耗导致学习效率一直不高,如果说有感觉到彻底学会了的东西那可能只有老师要求做的高精度地图这方面的事情了,接收高精度地图这方面已经快一年多了,从去年的这个时候对高精度地图一无所知,到现在可以说是稍有了解,其中走了许多弯路,想着能不能写一篇文章出来总结一下自己的心路历程,顺便把自己学到的知识分享给大家。虽然本文题目叫OpenDrive高精度地图详细解析及其使用,但是我会把我接触高精度地图从头到尾学习到的东西都写上,因为本人学艺不精,其中难免会有许多问题,
摘要由CSDN通过智能技术生成

临近年底,回想自己今年做的事情,越想越惭愧,摇摇摆摆持续内耗导致学习效率一直不高,如果说有感觉到学会了的东西那可能只有老师要求做的高精度地图这方面的事情了,接手高精度地图这方面已经快一年多了,从去年的这个时候对高精度地图一无所知,到现在可以说是稍有了解,其中走了许多弯路,想着能不能写一篇文章出来总结一下自己的心路历程,顺便把自己学到的知识分享给大家。
虽然本文题目叫OpenDrive高精度地图详细解析及其使用,但是我会把我接触高精度地图从头到尾学习到的东西都写上,因为本人学艺不精,其中难免会有许多问题,所以还是希望各位小伙伴兼听则明,带着批判性的去看去学习。

一.栅格地图

栅格地图是我接触的第一个所谓的高精度地图,因为当时刚刚入门,啥也不懂,到网上搜索大多数的地图出来的就是栅格地图,但是栅格地图其实本质上并不属于高精度地图,我们目前所理解的高精度地图能达到的许多功能栅格地图完全做不到,最简单的一点,栅格地图只能实现静态障碍物的避障,对于机器人可能是够了,但是对于自动驾驶车辆来说是完全不够的,车辆需要按照道路结构去走,从而做出相应的规划。话虽如此,如果你想做的功能很简单,那么栅格地图也不是不可以。
接下来我会简单叙述一下如何生成栅格地图,注意,我们这里的前提是离线建图,动态SLAM建图需要你另寻出路。我们采用激光SLAM的方法生成栅格地图,生成栅格地图我们首先需要生成点云地图,啥是点云地图,可以看下面的图片,你可以简单理解为通过激光SLAM算法拼接一帧一帧的激光点云帧生成的一个点云图(详细名词定义请搜索引擎)
在这里插入图片描述激光SLAM生成的点云地图格式大多是PCD格式的,显示PCD格式的点云文件可以使用CloudCompare,软件除了偶尔卡死意外真的很好用。
得到点云地图的方法就是通过激光SLAM自己去建图,可以去看我之前写的那篇文章(这里注意一下,lego_loam在没有imu的情况下Z轴偏移情况很严重,如果你只有一个激光雷达,那么我建议你使用hdl_graph_slam或是其他SLAM算法)。
得到这个点云地图以后,我们就可以写代码来获得栅格地图了,那么如何通过点云生成的栅格地图就是一个问题,我们知道点云地图是由一个个密密麻麻的点构成的,每个点都有其三维坐标,栅格地图就是用一个个栅格组成的网格来代表地图,栅格里可以存储不同的数值,代表这个栅格的不同含义。比如我们表示这个格子被占用(有静态障碍物),就可以把表示这个格子的像素点标注为黑色,没有障碍物则为白色。我们首先给定一个栅格地图的分辨率,比如说我们规定栅格上的一个格子代表0.5 * 0.5米的面积,那么在点云地图上,将点云中的每个点按照0.5 * 0.5的格子去做二维投射(各位可以在脑子中想象一下这个过程,就不详细展开来讲了)随后我们根据投射到每个格子中的点的个数和其高度Z值来判定这个格子是否显示为占用,大致过程就是这样,如果想深入学习关于栅格地图的相关知识可以去找更具体的文章,这里只是简单介绍一下。
我做这部分的工作的代码刚开始是自己写的,后来在找SLAM算法的时候发现koide3大神(hdl_graph_slam的作者)开源了一个相同功能的代码,功能和效果都非常好,我把网址分享给大家,大家可以自己去下载。完成此步骤我们就可以获得一个栅格地图啦:
在这里插入图片描述
接下来我们就可以在这个栅格地图上执行路径规划算法了,比如A*,这方面的文章很多,我们目前项目所使用的代码也是在CSDN的基础上改出来的,大家可以根据A*框架结

  • 50
    点赞
  • 176
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值