一种无人车可通行区域的存储、高效编辑和调用方法与流程

文档序号:30886737发布日期:2022-07-26 21:58阅读:45来源:国知局
一种无人车可通行区域的存储、高效编辑和调用方法与流程

1.本发明涉及无人车技术领域,尤其涉及基于激光雷达栅格地图的获取,图像处理技术。


背景技术:

2.目前主要利用三维激光雷达进行地图的创建,目前基于三维激光雷达的主要地图创建方式包括特征地图、点云地图、拓扑地图、栅格地图以及混合地图等。栅格地图包括二维栅格地图以及三维栅格地图,栅格地图通过设定栅格分辨率对原始点云进行稀疏化,大大降低了计算的复杂度,栅格内一般还保存着[0,1]区间内的数值以表示栅格被占据的概率,通过更新栅格内的占据概率可以增强栅格地图对于系统噪声的鲁棒性。通过对栅格状态的划分,栅格地图可以轻易地用于无人车辆导航,konrad等人通过将栅格地图划分为多个子地图,在当前时刻更新一张或几张子地图中的栅格数据,从而可以根据计算平台的实际计算能力控制栅格地图数据的内存占用量以及数据量,避免了因为栅格地图数据增长带来的计算机内存占用以及计算量增大的问题。利用三维激光雷达对障碍物进行检测,得到包括正障碍、负障碍、悬崖、斜坡、动态障碍物的障碍物地图,根据激光雷达里程计发出的准可通行区域地图提供的地图尺寸以及地图位姿进行多地图融合,并对融合后的地图进行贝叶斯概率更新以及地图膨胀处理从而得到最终的可通行区域地图,提取的可通行区域地图并将其作为无人车辆的导航地图,用于无人车辆局部路径规划,但是提取到的可通行区域可能存在环境噪声,比如特征边界稀疏,在采集的过程中存在动态障碍物,这对局部规划将产生一定的影响。


技术实现要素:

[0003]
鉴于上述分析,我们提出了一种无人车可通行区域的存储、高效编辑和调用方法。该方法通过对提取到的可通行区域子地图进行合并、编辑、拆分的操作。对合并后的全局地图进行编辑可以有效地提高编辑效率,通过编辑可以滤除环境噪声、观测噪声以及位姿估计噪声,去除动态障碍物,增强边界约束和可通行区域的准确度和精度,然后再拆成子地图用于路径规划。经过编辑过后的子地图可以更好的对无人车的路径规划进行优化,可以有效地减少因边界特征稀疏而造成的路径规划出现偏差或者不合理的情况。
[0004]
无人车可通行区域的存储、高效编辑和调用方法技术的实现主要包括以下步骤:
[0005]
a、可通行区域提取
[0006]
可通行区域主要分为三步:
[0007]
首先,接收多个不同地图的消息以及里程计的消息,其中包括:准可通行区域地图、车辆位姿、里程计位姿、正负障碍地图、悬崖地图、斜坡地图。根据里程计位姿和车辆位姿对实时传输的正负障碍地图、悬崖地图、斜坡地图这三种均以车体为坐标系原点的地图进行位姿变换,将三张地图均融合到准可通行区域的地图中,得到还未处理的可通行区域。
[0008]
之后对上述得到的地图进行基于核膨胀处理,处理后进行贝叶斯概率更新,需要
注意的是,为了正负障碍物的误检情况,对车前方区域内的概率不更新。需要说明的是,此概率不更新不代表不更新障碍物,只是不更新本帧的障碍物。如果上一帧检测出障碍物,在限定区域内,不更新概率,该区域依然是障碍物。这对于车辆在运动过程中较近处突然闪现的障碍物误检有滤除的效果,但是当车辆在静止情况下,诸如从车上下个人走到车跟前,这个是可以检测出来的,本目的主要是排除车辆运动时闪出来的障碍物误检。最后,对得到的概率地图转换成占据栅格地图,其中2代表障碍物,1代表可通行,0代表未知。对占据栅格地图进行基于半车宽的膨胀处理,得到最终的可通行地图。
[0009]
贝叶斯概率更新算法原理描述:
[0010]
本着被激光集中次数越多的体素被占据的可信度越大、占据概率越高的原则,以式1.1以及式1.2对每一体素的占据概率进行更新。
[0011][0012]mnew
(x)=clamp(odds-1
(odds(m
old
(x))
·
odds(p
hit
)))
[0013]
其中p代表被占据栅格或者空栅格的初始概率值,m
new
(x)为正则化后的概率值,odds(p)是将概率值转化为odds值,odds^-1是将odds值转化为概率值。
[0014]
b、子地图拼接
[0015]
可通行区域提取后,生成的文件中包含一系列子地图以及可以读取到车辆在每张子地图中的位置和位姿信息的文本。为了增强可通行区域的边界约束,去掉动态障碍物的干扰,需要对地图进行编辑以达到预期的效果。但是单张图片编辑效率低下,因此考虑通过图像处理技术将所有的子图片合并成一张完整的全局地图进行编辑,同时在编辑的同时在拼接完成的全局地图上显示车辆的位姿点。
[0016]
图像拼接具体过程:在可通行区域提取存储过程中输出的的包含子地图的总数、子地图初始位姿信息、当前子地图编号、子地图分辨率、图片高度和图片宽度以及子地图位姿和车辆在子地图中的像素坐标以及该像素坐标在世界坐标系中的位姿信息。将存取的可通行区域第一张子地图作为所有地图拼接的原点,以这张地图中车辆的位姿信息为基准,将其它所有的子地图的车辆位姿通过旋转矩阵和平移矩阵变换统一到第一张子地图,相当于子地图的坐标系统一到第一张子地图中的车体坐标系。从获取可通行区域中保存的文本中获取相关位姿信息,根据每张子地图与第一张作为原点的子地图位姿信息获得旋转矩阵,由于每张图中的车辆所在像素索引都不一样,为了计算方便,都以图像中心的位姿为基础获得旋转和平移矩阵,因为车辆的像素位置和位姿可知,那么根据地图分辨率,就可以得到整张图中每个点的位姿。
[0017]
旋转的时候采用中心旋转,以子地图的图像中心作为旋转中心,然后计算旋转角度和平移距离,根据获得的旋转角度和平移距离将所有的子地图进行拼接。拼接的原则是:只要任一张图像中有障碍物,则拼接后的图中也有障碍物。由于在不断拼接过程中,原先第一张图的原点信息也会进行更新,我们拼接的基础是原始第一张的子地图,在拼接过程中,在原始图的周围会补充很多信息,如果无法获得原始图在新图中的位置,那就失去了拼接的基础,所以需要更新原始图在不断扩展的新图中的位置。这里以图像的左上角作为位置标记。所以需要计算在更新后原点的信息,同时为了之后的拆图,需要将每张子地图在拼接完成的全局地图中的位置记录下来,主要记录内容包括:旋转角度,旋转之后的长度和宽度
以及旋转后的子地图在新图中的位置信息。
[0018]
同样,如前所述,由于子地图在拼接过程中需要不断旋转,为了保证旋转之后不失去原有的图像信息,旋转之后的图像的长度和宽度都发生了变化。因为每张子地图的大小不一致,有的子地图很宽,有的子地图也许很长,所以在对子地图进行旋转平移后,无法简单的表示拼接后的新图的长宽,这需要根据待拼接的子地图和第一张图的平移关系判断拼接的位置大致为左上、左下、右上、右下四个部分,根据旋转后的子地图的长宽信息、拼接的位置以及现有地图的长宽信息计算新图的长度与宽度。
[0019]
,整个过程可以使用opencv库里相关函数实现,比如利用copymakeboder函数扩大图片边界,并且边界填充像素,getrotationmatrix2d函数旋转图片获得旋转矩阵并缩放,然后用最后warpaffine函数进行仿射变换,改变图片姿态,然后根据相关信息进行拼接,拼接成一张完整的全局地图,该地图包含了所有子地图的信息,表现为车辆所走过的区域的完整地图,然后根据需要对整图进行编辑操作。
[0020]
c、地图编辑
[0021]
子地图拼接完成后需要对拼接完成的地图进行编辑,以去掉地图中的动态障碍物,同时根据需要增强地图的边界约束,可以达到对局部路径规划进行优化的要求。这里对图片进行编辑的方法可以通过人为进行编辑,人为的通过相关图片编辑软件去除动态障碍物痕迹,因为历史帧数据不断叠加,导致运动的物体不断在不同位置被检测出来,这样就会形成一条运动的轨迹,这些轨迹都会被视作是障碍物,这对车辆的行驶过程中的安全造成威胁。
[0022]
同时,根据需要添加相关痕迹增强边界特征,例如道路两边的树木在地图上是一系列稀疏的点,树与树之间的区域在局部规划时就会造成影响,误以为是可以通行的路径,所以可以人为的对这些边界进行处理,连接这些稀疏的点,修正可通行区域。由于地图以二值图表示,白色表示障碍物,黑色表示可通行区域。将动态障碍物部分用黑色覆盖,人为修改为可通行区域;用白色部分连接属于障碍物的稀疏点,增强边界约束。图像编辑软件可以选择常用的编辑软件比如photoshop等软件,最终编辑结束,应保证与原始地图保持同样的格式输出。
[0023]
d、地图拆分
[0024]
编辑完成的全局地图需要重新拆分成子地图提供给局部规划使用,在拼接图片时保存了每张子地图在拼接完成的全局地图中的位置,包括:旋转角度,旋转之后的长度和宽度以及旋转后的子地图在新图中的位置信息,根据这些数据进行整张地图的拆分,利用每张子地图在总地图中的位置信息以及长宽信息,可以恢复子地图在平移前的位置信息,根据旋转角度,通过可逆变换,消除旋转矩阵的影响,恢复子地图之前的姿态。拆分后数量与拼接前子地图数目一致,子地图的长度应该与原始子地图的长度、宽度一致,并且拆分后的子地图中的车辆像素索引以及位姿信息应与原始子地图中的车辆像素索引和位姿信息一致。
[0025]
e、调用方式
[0026]
编辑拆分完成的子地图经感知模块发送出来,称为先验地图或者离线地图,然后由感知模块接收使用,利用处理完成的地图进行局部路径规划的优化,利用先验地图,车辆可以利用这些先验信息进行规划从而做一些先验决策,使系统的新能得到提升。
附图说明
[0027]
说明书附图1为拼接前部分子地图示例,这些子地图存储了障碍物信息和可通行区域,是待处理的局部地图,后续需要将所有子地图进行拼接和编辑。
[0028]
说明书附图2为将所有局部子地图按照位姿信息拼接形成的全局地图,存储全局环境的障碍物信息和可通行区域,后续需要对其进行编辑去除干扰信息,然后进行拆分。
具体实施方式
[0029]
下面具体描述本发明的优选实施例,以此来说明该发明的使用的具体流程。
[0030]
本发明的一个具体实施例,公开了一种基于激光雷达获取可通行区域,并进行编辑调用的方法,包括以下步骤:
[0031]
步骤s1、可通行区域的提取与存储
[0032]
通过激光雷达获取可通行区域子地图并进行存储,在可通行区域提取存储过程中输出的的包含子地图的总数、子地图初始位姿信息、当前子地图编号、子地图分辨率、图片高度和图片宽度以及子地图位姿和车辆在子地图中的像素坐标以及该像素坐标在世界坐标系中的位姿信息
[0033]
步骤s2、拼接子地图
[0034]
根据保存的子地图和保存的位姿信息数据,在图像拼接程序中修改存储位姿信息文件的路径,环境地图总数,第一张和最后一张子地图的序号,以及目标地图保存路径。修改完毕后,编译运行程序,最终会在目标文件路径下得到一张拼接完成的全局地图和一张标有车辆位姿点的全局地图,同时生成一个文本文件,里面保存了拆图需要用的子地图在全局地图中的相关信息。
[0035]
步骤s3、编辑拼接完成的地图
[0036]
用图像处理软件对拼接完成的地图进行编辑,把地图中的行人,行驶的动态车辆等动态障碍物修除去掉,将道路两边的树木等稀疏点进行连接处理,形成鲜明的边界约束。
[0037]
步骤s4、将编辑好的地图进行拆分
[0038]
根据拼接地图时生成的各子地图在全局地图中的位置信息,在拆图程序中修改需要拆分出子地图的总数,拆分后子地图保存路径,同时修改编辑后全局地图的存储路径和存储子地图位置信息的文本路径,修改完毕后进行编译运行,最终在目标文件夹下生成拆分出来的子地图。
[0039]
步骤s5、对拆分完毕的子地图进行核对
[0040]
1)拆分后的子地图的格式、名称是否与原始子地图相同。
[0041]
2)记录的文本信息应当与原先的文本信息一致。
[0042]
3)将拆分后的子地图放置在指定位置,供局部规划模块调用。
[0043]
步骤s6、调用方法
[0044]
处理完成的地图经过感知模块发出,规划模块进行接收,规划模块在已经修改完善的可通行区域内进行规划或者进行全局规划的修正。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1