[发明专利]一种在Unity中获取点云路面高度的方法有效
申请号: | 201910481170.9 | 申请日: | 2019-06-04 |
公开(公告)号: | CN110163880B | 公开(公告)日: | 2020-04-14 |
发明(设计)人: | 周路翔;陈诚;张旸 | 申请(专利权)人: | 奥特酷智能科技(南京)有限公司 |
主分类号: | G06T7/11 | 分类号: | G06T7/11;G06T19/20 |
代理公司: | 南京行高知识产权代理有限公司 32404 | 代理人: | 李晓 |
地址: | 211800 江苏省南京市*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 unity 获取 路面 高度 方法 | ||
本发明本提供一种在Unity中获取点云路面高度的方法,包括获取整个场景的点云地图、对点云地图进行切分得到多个区块、对每一区块点云进行点云高度计算、输出结果等几个步骤,导出每个区块点云的高度信息即得到了路面所需要的高度信息。本发明充分利用Unity引擎的优势,能够快速准确地生成点云地面高度信息,并且利用一些并行处理方法加速了数据流处理,能够自动获取点云路面高度信息,后续添加的路面元素,可自动贴合到路面,大缩减了人工调整所需的工作量,也减少了产生人为误差的概率。
技术领域
本发明一种使用点云地图编辑矢量信息时获取点云路面高度的方法,属于自动驾驶仿真技术领域。
背景技术
自动驾驶汽车的成功涉及到高精地图、实时定位以及障碍物检测等多项技术, 激光雷达(LiDAR)是一种向指定方向发射激光束并检测返回光束来获取目标位置等数据的装置。自动驾驶领域常用的激光雷达为多线束机械旋转式激光雷达,由于其定位精准,算法实现难度低,不受昼夜影响等诸多优点,成为自动驾驶核心定位与检测设备之一。在无人车行驶的过程中,LiDAR同时以一定的角速度匀速转动,在这个过程中不断地发出激光并收集反射点的信息,以便得到全方位的环境信息。LiDAR在收集反射点距离的过程中也会同时记录下该点发生的时间和水平角度(Azimuth),并且每个激光发射器都有编号和固定的垂直角度,根据这些数据我们就可以计算出所有反射点的坐标。LiDAR每旋转一周收集到的所有反射点坐标的集合就形成了点云。
在使用点云地图编辑矢量信息时,需要获取点云路面高度信息,而通常建图时点云高度不会完全平整,因此现有的点云路面高度信息多通过人工获取,自动化程度不高,漏测、错测、漏画、错画等现象时有发生。
发明内容
发明目的:本发明充分利用Unity引擎的优势,提供一种在Unity引擎中高效地从点云地图中自动获取点云路面高度信息的方法。
技术方案:为解决上述技术问题,本发明提供的点云路面高度信息自动获取方法,包括以下步骤:
步骤一、获取整个场景的点云地图;
步骤二、对点云地图进行切分得到多个区块,即将整个场景的点云按照所在区块切分成小块点云;
步骤三、对每一区块点云进行点云高度计算;具体如下:
1)使用IJobParallelFor类型并行处理,获取每个区块所有点的索引,伪代码如下:
indices[index] = math.floor(data[index].xy / b);
其中,b为采样栅格边长
2)使用IJobParallelFor类型并行处理,将索引与对应点数据填入NativeMultiHashMap<int3, float4>类型的map,伪代码如下:
map[index].add(indices[index],data[index]);
3)使用IJobNativeMultiHashMapMergedSharedKeyIndices类型Job过程在map中处理索引一致的点并获取最低点高度填入数组NativeArray<float3> bottom,伪代码如下:
ExecuteFirst: height [index] = data[index].z;
ExecuteNext: if(bottom [firstIndex].z> data[index].z)
bottom [firstIndex].z = data[index].z;
步骤四、输出结果
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于奥特酷智能科技(南京)有限公司,未经奥特酷智能科技(南京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910481170.9/2.html,转载请声明来源钻瓜专利网。