CN109814093A - 一种基于cpu多核计算的激光雷达仿真方法以及装置 - Google Patents
一种基于cpu多核计算的激光雷达仿真方法以及装置 Download PDFInfo
- Publication number
- CN109814093A CN109814093A CN201910084653.5A CN201910084653A CN109814093A CN 109814093 A CN109814093 A CN 109814093A CN 201910084653 A CN201910084653 A CN 201910084653A CN 109814093 A CN109814093 A CN 109814093A
- Authority
- CN
- China
- Prior art keywords
- cpu
- calculated based
- circle
- multicore
- laser
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
本发明公开了一种基于CPU多核计算的激光雷达仿真方法,使用CPU进行激光雷达模拟,针对激光雷达旋转一周所发射的全部射线进行逐次扫描,其中,每一次扫描,将扫描范围分为若干个扇区,每一个扇区进行一次BatchRaycast。相应地,还提供了一种基于CPU多核计算的激光雷达仿真装置。在自主驾驶仿真环境构建时,能够模拟车辆在高速运行时的激光雷达点云偏移误差,同时保证了仿真系统的时效性和稳定性。实验表明,本发明所模拟出的激光雷达点云数据能够较好的反映真实环境中采集得到的点云数据,并可用于感知、规划、决策、信息融合等算法的开发和检验。
Description
技术领域
本发明专利涉及激光雷达仿真技术,尤其涉及一种基于CPU多核计算的激 光雷达仿真方法以及装置。
背景技术
由于激光雷达能够昼夜工作,受外界干扰小,因此在自主驾驶领域中,选 用激光雷达进行环境感知是一种非常普及的技术方案。故而,在开发自主驾驶 系统仿真平台时,对激光雷达进行模拟是不可或缺的。
目前,自主驾驶仿真系统,业界(例如Nvidia Constellation、Baidu Apollo) 对于激光雷达的模拟方案一般是采用GPU渲染场景的深度图,经由图像处理与 校正得到点云结果,如图1所示。此种方案在车辆低速行驶时可以较为准确的 还原激光雷达的探测结果,但当车辆高速运行时,则无法模拟激光雷达由于自 转造成的偏移误差。以Velodyne64线激光雷达设备为例,当其工作在10Hz模 式下时,其激光发射轨迹应为螺旋线而非现有仿真系统模拟出的圆形。
发明内容
针对上述现有技术中存在的技术问题,本发明的目的是提供一种基于CPU 多核计算的激光雷达仿真方法以及装置。
为实现本发明的目的,本发明提供了一种基于CPU多核计算的激光雷达仿 真方法,使用CPU进行激光雷达模拟,针对激光雷达旋转一周所发射的全部射 线进行逐次扫描,其中,每一次扫描,将扫描范围分为若干个扇区,每一个扇 区进行一次BatchRaycast。
其中,采用Unity3D 2018版本新增的C#Jobs功能和BatchRaycast功能实 现CPU多核并行计算。
其中,所述扫描范围均匀分为10个扇区,每秒进行100次BatchRaycast。
其中,扫描范围内每个扇区的Raycast均为并发,需要根据车辆速度和角速 度预测每次激光发射时世界坐标系中雷达的位置和激光发射方向。
其中,世界坐标系中雷达的位置和激光发射方向,通过如下方式计算:
设车辆速度v和角速度ω恒定,则车辆行驶轨迹的俯视图应是一个圆形;
则车辆行驶一圈所需时间
圆圈周长为L=2πR;
因
则圆圈半径
因此有方程:
(x-R)2+y2=R2
(x+R)2+y2=R2
则方程中x、y的解为:
其中,时间t的值应均值化到[0,1]范围内;
每次Batch前需要计算:
其中,为从车辆transform的局部坐标到世界坐标的4阶转置矩阵,只 需在初始化时输入一次即可。
其中,包括当激光到达仿真环境中某一点时,读取其材质反射率贴图并基于 其光学特性计算反射函数。
相应地,还提供了一种基于CPU多核计算的激光雷达仿真装置,包括CPU 计算单元,通过所述CPU计算单元进行激光雷达模拟,针对激光雷达旋转一周 所发射的全部射线进行逐次扫描,其中,每一次扫描,将扫描范围分为若干个 扇区,每一个扇区进行一次BatchRaycast。
其中,所述扫描范围均匀分为10个扇区,每秒进行100次BatchRaycast。
其中,扫描范围内每个扇区的Raycast均为并发,需要根据车辆速度和角速 度预测每次激光发射时世界坐标系中雷达的位置和激光发射方向,世界坐标系 中雷达的位置和激光发射方向,通过如下方式计算:
设车辆速度v和角速度ω恒定,则车辆行驶轨迹的俯视图应是一个圆形;
则车辆行驶一圈所需时间
圆圈周长为L=2πR;
因
则圆圈半径
因此有方程:
(x-R)2+y2=R2
(x+R)2+y2=R2
则方程中x、y的解为:
其中,时间t的值应均值化到[0,1]范围内;
每次Batch前需要计算:
其中,为从车辆transform的局部坐标到世界坐标的4阶转置矩阵,只 需在初始化时输入一次即可。
其中,通过所述CPU计算单元,当激光到达仿真环境中某一点时,读取其 材质反射率贴图并基于其光学特性计算反射函数。
与现有技术相比,本发明的有益效果为,在自主驾驶仿真环境构建时,能 够模拟车辆在高速运行时的激光雷达点云偏移误差,同时保证了仿真系统的时 效性和稳定性。实验表明,本发明所模拟出的激光雷达点云数据能够较好的反 映真实环境中采集得到的点云数据,并可用于感知、规划、决策、信息融合等 算法的开发和检验。同时,本发明的技术方案生成的数据还可应用于智能感知 和深度学习的训练与测试。
附图说明
图1所示为现有技术中深度摄像机模拟激光雷达示意图;
图2中(a)所示为不分区每秒10次Batch的示意图,图2中(b)所示为10个 分区每秒100次Batch的示意图;
图3所示为车辆向右转向时,车辆速度和角速度恒定情况下车辆行驶轨迹 俯视示意图;
图4所示为3维仿真环境与2维反射率贴图对应关系示意图。
具体实施方式
以下结合附图和具体实施例对本发明作进一步详细说明。应当理解,此处 所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图 限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确 指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说 明书中使用属于“包含”和/或“包括”时,其指明存在特征、步骤、操作、部件或 者模块、组件和/或它们的组合。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、 “第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该 理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施方 式例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括” 和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系 列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步 骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备 固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征 可以相互组合。
仿真系统需要尽可能准确地还原真实世界中车辆自主驾驶可能遇到的问 题,因此,本发明公开了一种基于CPU多核计算的激光雷达仿真技术,在保证 了仿真实时性的基础上,解决了业界传统激光雷达仿真中无法模拟点云偏移误 差的难题。同时,本发明还可以模拟真实环境中的激光反射率,为智能计算提 供更加贴近真实的数据。
为模拟车辆高速行驶下激光雷达的偏移误差,不能使用GPU一次性扫描激 光雷达旋转一周所发射的全部射线,而是进行逐次扫描。因此,本发明使用CPU 进行激光雷达模拟。
但如果采用单线程计算,其计算量过大将导致系统效率下降。因此,本发明 采用Unity3D 2018版本新增的C#Jobs功能和BatchRaycast功能实现CPU多核 并行计算。
数学模型:
以Velodyne64线雷达而言,其扫描角精度为0.17度,在10Hz扫描频率模式 运行时,每秒需进行约20830次扫描。
由于雷达的激光是同时发射的,因此在每一次扫描时对64根激光线并行计 算BatchRaycast。这需要每秒钟进行640次Batch。性能报告显示,并行计算64 次BatchRaycast的过程虽然很快,但推送Batch的时间过长,整体上降低了仿真 系统的性能。
因此,不能对每一次扫描都进行一次BatchRaycast,而是需要将扫描范围分 为若干个扇区,每一个扇区进行一次BatchRaycast。
为确定合适的分区数目和扫描频率,进行了大量试验。部分结果如图2所示。
可以看到图2(b)中毛刺的大小明显降低,从而使物理帧的帧率更加连续和平 滑。试验表明,将扫描范围均匀分为10个扇区,每秒进行100次BatchRaycast 时,效果最为理想。
激光雷达工作时是转动的,而车辆在行驶过程中速度和方向会发生变化,当 车辆转弯时激光发射的方向会跟着发生变化。由于对扫描范围每个扇区的 Raycast均为并发,需要根据车辆速度和角速度预测每次激光发射时世界坐标系 中雷达的位置和激光发射方向。
在预测发射时的位置和方向时,如果采用传统迭代方法,每秒需要串行运行20835次4阶矩阵和4维向量的乘法,其计算复杂度过高。对此本发明公开一个 公式解的计算方法:
根据实测车辆数据,在车辆行驶时,其加速度通常不会超过5m/s2,因此, 在每个扇区进行扫描的0.01秒内,车辆的速度和角速度可以近似认为是恒定值。
如果车辆速度v和角速度ω恒定,则车辆行驶轨迹的俯视图应是一个圆形,如 图3所示。
车辆行驶一圈所需时间
圆圈周长为L=2πR
因
则圆圈半径
因此有方程:
(x-R)2+y2=R2
(x+R)2+y2=R2
则方程中x、y的解为:
其中,时间t的值应均值化到[0,1]范围内。
在实际应用中,以激光雷达10Hz运行模式为例,如分为10个扇区,则每秒 需要Batch 100次。每次Batch前需要计算:
其中,为从车辆transform的局部坐标到世界坐标的4阶转置矩阵,只 需在初始化时输入一次即可。
激光雷达生成的点云数据中,除了距离信息之外还有反射率信息。反射率 即为激光发射能量与反射能量之间的差,通常可用于判定目标的材质,从而实 现对目标类型的感知。
传统GPU仿真方法无法计算反射率,因此会丢失一个非常重要的数据,进 而影响自主驾驶深度学习算法的开发与训练。
反射率计算:
当激光到达仿真环境中某一点时,应读取其材质反射率贴图并基于其光学特 性计算反射函数。
由于仿真环境为3维,而反射率贴图为2维数组,需要计算3维空间中某一 点在反射率贴图上的2维坐标。
如图4示,已知A、B、C三点的三维坐标(x,y,z)及A、B、C三点在贴图上 的二维坐标(u,v),现有空间中在三角面ABC上某点P,求P点在贴图上的二维 坐标。
采用质心插值法(Barycentric Interpolation)计算P的二维坐标Puv,如图5 示。
其中,SΔPBC是ΔPBC的面积,其他类推。
可得P点在反射率贴图上的坐标,读取反射率贴图数据,求出P点的材质反 射率Rp。
根据双向反射分布函数可求得出射光Lo:
Lo(p,ωo)=Le(p,ωo)+∫Sf(p,ωo,ωi)*Li(p,ωi)*V(p′,p)*|dot(ωi,N)|dωi
其中:
由于目标点不发射激光,因此Le项为0。
f(p,ωo,ωi)为反射率函数,其值为P点的反射率Rp。
Li(p,ωi)为入射光能量。
|dot(ωi,N)|为入射光与物体表面法线的内积。
而该次激光发射的反射率R为:
本申请中所有的公式中的*号为运算符号中的乘号×。
以上所述仅是本发明的优选实施方式,应当指出的是,对于本技术领域的 普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润 饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种基于CPU多核计算的激光雷达仿真方法,其特征在于,使用CPU进行激光雷达模拟,针对激光雷达旋转一周所发射的全部射线进行逐次扫描,其中,每一次扫描,将扫描范围分为若干个扇区,每一个扇区进行一次BatchRaycast。
2.根据权利要求1所述的基于CPU多核计算的激光雷达仿真方法,其特征在于,采用Unity3D 2018版本新增的C#Jobs功能和BatchRaycast功能实现CPU多核并行计算。
3.根据权利要求1所述的基于CPU多核计算的激光雷达仿真方法,其特征在于,所述扫描范围均匀分为10个扇区,每秒进行100次BatchRaycast。
4.根据权利要求1所述的基于CPU多核计算的激光雷达仿真方法,其特征在于,扫描范围内每个扇区的Raycast均为并发,需要根据车辆速度和角速度预测每次激光发射时世界坐标系中雷达的位置和激光发射方向。
5.根据权利要求4所述的基于CPU多核计算的激光雷达仿真方法,其特征在于,世界坐标系中雷达的位置和激光发射方向,通过如下方式计算:
设车辆速度v和角速度ω恒定,则车辆行驶轨迹的俯视图应是一个圆形;
则车辆行驶一圈所需时间
圆圈周长为L=2πR;
因
则圆圈半径
因此有方程:
(x-R)2+y2=R2
(x+R)2+y2=R2
则方程中x、y的解为:
其中,时间t的值应均值化到[0,1]范围内;
每次Batch前需要计算:
其中,为从车辆transform的局部坐标到世界坐标的4阶转置矩阵,只需在初始化时输入一次即可。
6.根据权利要求1所述的基于CPU多核计算的激光雷达仿真方法,其特征在于,包括当激光到达仿真环境中某一点时,读取其材质反射率贴图并基于其光学特性计算反射函数。
7.一种基于CPU多核计算的激光雷达仿真装置,其特征在于,包括CPU计算单元,通过所述CPU计算单元进行激光雷达模拟,针对激光雷达旋转一周所发射的全部射线进行逐次扫描,其中,每一次扫描,将扫描范围分为若干个扇区,每一个扇区进行一次BatchRaycast。
8.根据权利要求7所述的基于CPU多核计算的激光雷达仿真装置,其特征在于,所述扫描范围均匀分为10个扇区,每秒进行100次BatchRaycast。
9.根据权利要求7所述的基于CPU多核计算的激光雷达仿真装置,其特征在于,扫描范围内每个扇区的Raycast均为并发,需要根据车辆速度和角速度预测每次激光发射时世界坐标系中雷达的位置和激光发射方向,世界坐标系中雷达的位置和激光发射方向,通过如下方式计算:
设车辆速度v和角速度ω恒定,则车辆行驶轨迹的俯视图应是一个圆形;
则车辆行驶一圈所需时间
圆圈周长为L=2πR;
因
则圆圈半径
因此有方程:
(x-R)2+y2=R2
(x+R)2+y2=R2
则方程中x、y的解为:
其中,时间t的值应均值化到[0,1]范围内;
每次Batch前需要计算:
其中,为从车辆transform的局部坐标到世界坐标的4阶转置矩阵,只需在初始化时输入一次即可。
10.根据权利要求7所述的基于CPU多核计算的激光雷达仿真装置,其特征在于,通过所述CPU计算单元,当激光到达仿真环境中某一点时,读取其材质反射率贴图并基于其光学特性计算反射函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910084653.5A CN109814093B (zh) | 2019-01-29 | 2019-01-29 | 一种基于cpu多核计算的激光雷达仿真方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910084653.5A CN109814093B (zh) | 2019-01-29 | 2019-01-29 | 一种基于cpu多核计算的激光雷达仿真方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109814093A true CN109814093A (zh) | 2019-05-28 |
CN109814093B CN109814093B (zh) | 2020-08-25 |
Family
ID=66605656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910084653.5A Active CN109814093B (zh) | 2019-01-29 | 2019-01-29 | 一种基于cpu多核计算的激光雷达仿真方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109814093B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021147311A1 (zh) * | 2020-07-30 | 2021-07-29 | 之江实验室 | 一种考虑速度因素的激光雷达测距的快速数值仿真方法 |
CN113822892A (zh) * | 2021-11-24 | 2021-12-21 | 腾讯科技(深圳)有限公司 | 仿真雷达的评测方法、装置、设备及计算机程序产品 |
CN115220932A (zh) * | 2022-07-13 | 2022-10-21 | 小米汽车科技有限公司 | 通信进程执行方法、装置、车辆、可读存储介质及芯片 |
WO2024032278A1 (zh) * | 2022-08-10 | 2024-02-15 | 上海禾赛科技有限公司 | 激光雷达、激光雷达的资源分配方法及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107966693A (zh) * | 2017-12-05 | 2018-04-27 | 成都合纵连横数字科技有限公司 | 一种基于深度渲染的车载激光雷达仿真方法 |
US10096247B1 (en) * | 2017-05-31 | 2018-10-09 | Frogparking Limited | Vehicle presence detection system |
CN108732556A (zh) * | 2018-08-17 | 2018-11-02 | 西南交通大学 | 一种基于几何求交运算的车载激光雷达仿真方法 |
CN109214986A (zh) * | 2017-07-03 | 2019-01-15 | 百度(美国)有限责任公司 | 从下采样的低分辨率lidar 3-d点云和摄像机图像生成高分辨率3-d点云 |
CN109239720A (zh) * | 2018-10-18 | 2019-01-18 | 清华大学苏州汽车研究院(吴江) | 一种智能激光雷达装置、系统及其数据处理方法 |
-
2019
- 2019-01-29 CN CN201910084653.5A patent/CN109814093B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10096247B1 (en) * | 2017-05-31 | 2018-10-09 | Frogparking Limited | Vehicle presence detection system |
CN109214986A (zh) * | 2017-07-03 | 2019-01-15 | 百度(美国)有限责任公司 | 从下采样的低分辨率lidar 3-d点云和摄像机图像生成高分辨率3-d点云 |
CN107966693A (zh) * | 2017-12-05 | 2018-04-27 | 成都合纵连横数字科技有限公司 | 一种基于深度渲染的车载激光雷达仿真方法 |
CN108732556A (zh) * | 2018-08-17 | 2018-11-02 | 西南交通大学 | 一种基于几何求交运算的车载激光雷达仿真方法 |
CN109239720A (zh) * | 2018-10-18 | 2019-01-18 | 清华大学苏州汽车研究院(吴江) | 一种智能激光雷达装置、系统及其数据处理方法 |
Non-Patent Citations (2)
Title |
---|
GUOJUN LI ET AL.: "Accelerating SAR imaging using vector extension on multi-core SIMD CPU", 《2015 IEEE INTERNATIONAL GEOSCIENCE AND REMOTE SENSING SYMPOSIUM (IGARSS)》 * |
王宗跃 等: "多核CPU的海量点云并行kNN算法", 《测绘科学技术学报》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021147311A1 (zh) * | 2020-07-30 | 2021-07-29 | 之江实验室 | 一种考虑速度因素的激光雷达测距的快速数值仿真方法 |
CN113822892A (zh) * | 2021-11-24 | 2021-12-21 | 腾讯科技(深圳)有限公司 | 仿真雷达的评测方法、装置、设备及计算机程序产品 |
CN113822892B (zh) * | 2021-11-24 | 2022-02-08 | 腾讯科技(深圳)有限公司 | 仿真雷达的评测方法、装置、设备及计算机存储介质 |
CN115220932A (zh) * | 2022-07-13 | 2022-10-21 | 小米汽车科技有限公司 | 通信进程执行方法、装置、车辆、可读存储介质及芯片 |
WO2024032278A1 (zh) * | 2022-08-10 | 2024-02-15 | 上海禾赛科技有限公司 | 激光雷达、激光雷达的资源分配方法及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109814093B (zh) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109814093A (zh) | 一种基于cpu多核计算的激光雷达仿真方法以及装置 | |
EP3547063B1 (en) | Systems and methods for generating synthetic sensor data | |
CN107340522A (zh) | 一种激光雷达定位的方法、装置及系统 | |
Gschwandtner et al. | Blensor: Blender sensor simulation toolbox | |
CN111275816B (zh) | 获取点云数据的方法及相关设备 | |
CN112433934B (zh) | 仿真测试方法、装置、计算机设备和存储介质 | |
CN105842698B (zh) | 一种高分辨sar图像的快速仿真方法 | |
KR101572618B1 (ko) | 라이더 시뮬레이션 장치 및 방법 | |
Rossmann et al. | A real-time optical sensor simulation framework for development and testing of industrial and mobile robot applications | |
CN109856993A (zh) | 一种自主驾驶仿真平台 | |
Kim et al. | Development of simulator for autonomous underwater vehicles utilizing underwater acoustic and optical sensing emulators | |
CN115421127A (zh) | 一种激光雷达仿真模型的生成方法、装置及电子设备 | |
CN115731350A (zh) | 车辆的虚拟激光雷达的仿真方法及其装置 | |
DK178393B1 (en) | PROCEDURE AND ALGORITHM FOR SIMULATING THE IMPACT OF THERMAL COUPLED SURFACE RADIATION IN CASTING PROCESSES | |
Csaba et al. | Differences between Kinect and structured lighting sensor in robot navigation | |
CN112146627B (zh) | 在无特征表面上使用投影图案的飞行器成像系统 | |
US11500197B2 (en) | Efficient optical system design and components | |
KR102464236B1 (ko) | 연속파 라이다 센서들을 시뮬레이션하는 방법 | |
CN111781611A (zh) | 建立模型的方法、装置、存储介质及电子设备 | |
Arunagiri et al. | Stereo matching: Performance study of two global algorithms | |
CN113376625A (zh) | 目标物体的偏离角度获得方法、装置、电子设备及存储介质 | |
Ullrich et al. | How to read your LIDAR spec–a comparison of single-laser-output and multi-laser-output LIDAR instruments | |
CN113835101A (zh) | 一种基于雷达点云的车辆定位方法、装置及存储介质 | |
Marchand et al. | Evaluating Surface Mesh Reconstruction of Open Scenes | |
KR102516795B1 (ko) | 소나 이미지 시뮬레이터 장치 및 수중 객체 탐지 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |