CN109814093B - 一种基于cpu多核计算的激光雷达仿真方法以及装置 - Google Patents
一种基于cpu多核计算的激光雷达仿真方法以及装置 Download PDFInfo
- Publication number
- CN109814093B CN109814093B CN201910084653.5A CN201910084653A CN109814093B CN 109814093 B CN109814093 B CN 109814093B CN 201910084653 A CN201910084653 A CN 201910084653A CN 109814093 B CN109814093 B CN 109814093B
- Authority
- CN
- China
- Prior art keywords
- laser radar
- simulation
- cpu
- laser
- vehicle
- 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.)
- Active
Links
Images
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-p)2+y2=R2
(x+R)2+y2=R2
则方程中x、y的解为:
其中,时间t的值应均值化到[0,1]范围内;
每次Batch前需要计算:
其中,包括当激光到达仿真环境中某一点时,读取其材质反射率贴图并基于其光学特性计算反射函数。
相应地,还提供了一种基于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前需要计算:
其中,通过所述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前需要计算:
激光雷达生成的点云数据中,除了距离信息之外还有反射率信息。反射率即为激光发射能量与反射能量之间的差,通常可用于判定目标的材质,从而实现对目标类型的感知。
传统GPU仿真方法无法计算反射率,因此会丢失一个非常重要的数据,进而影响自主驾驶深度学习算法的开发与训练。
反射率计算:
当激光到达仿真环境中某一点时,应读取其材质反射率贴图并基于其光学特性计算反射函数。
由于仿真环境为3维,而反射率贴图为2维数组,需要计算3维空间中某一点在反射率贴图上的2维坐标。
如图4示,已知A、B、C三点的三维坐标(x,y,z)及A、B、C三点在贴图上的二维坐标(u,v),现有空间中在三角面ABC上某点P,求P点在贴图上的二维坐标。
采用质心插值法(Barycentric Interpolation)计算P的二维坐标Puv。
其中,SΔPCB是ΔPBC的面积,其他类推。
可得P点在反射率贴图上的坐标,读取反射率贴图数据,求出P点的材质反射率Rp。
根据双向反射分布函数可求得出射光Lo:
Lo(p,ωo)=Le(p,ωo)+∫S f(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 (7)
1.一种基于CPU多核计算的激光雷达仿真方法,其特征在于,使用CPU进行激光雷达模拟,针对激光雷达旋转一周所发射的全部射线进行逐次扫描,其中,每一次扫描,将扫描范围分为若干个扇区,每一个扇区进行一次BatchRaycast;
扫描范围内每个扇区的Raycast均为并发,需要根据车辆速度和角速度预测每次激光发射时世界坐标系中雷达的位置和激光发射方向;
世界坐标系中雷达的位置和激光发射方向,通过如下方式计算:
设车辆速度v和角速度ω恒定,则车辆行驶轨迹的俯视图应是一个圆形;
圆圈周长为L=2πR;
因此有方程:
(x-R)2+y2=R2
(x+R)2+y2=R2
则方程中x、y的解为:
其中,时间t的值应均值化到[0,1]范围内;
每次Batch前需要计算:
2.根据权利要求1所述的基于CPU多核计算的激光雷达仿真方法,其特征在于,采用Unity3D 2018版本新增的C#Jobs功能和BatchRaycast功能实现CPU多核并行计算。
3.根据权利要求1所述的基于CPU多核计算的激光雷达仿真方法,其特征在于,所述扫描范围均匀分为10个扇区,每秒进行100次BatchRaycast。
4.根据权利要求1所述的基于CPU多核计算的激光雷达仿真方法,其特征在于,包括当激光到达仿真环境中某一点时,读取其材质反射率贴图并基于其光学特性计算反射函数。
5.一种基于CPU多核计算的激光雷达仿真装置,其特征在于,包括CPU计算单元,通过所述CPU计算单元进行激光雷达模拟,针对激光雷达旋转一周所发射的全部射线进行逐次扫描,其中,每一次扫描,将扫描范围分为若干个扇区,每一个扇区进行一次BatchRaycast;
扫描范围内每个扇区的Raycast均为并发,需要根据车辆速度和角速度预测每次激光发射时世界坐标系中雷达的位置和激光发射方向,世界坐标系中雷达的位置和激光发射方向,通过如下方式计算:
设车辆速度v和角速度ω恒定,则车辆行驶轨迹的俯视图应是一个圆形;
圆圈周长为L=2πR;
因此有方程:
(x-R)2+y2=R2
(x+R)2+y2=R2
则方程中x、y的解为:
其中,时间t的值应均值化到[0,1]范围内;
每次Batch前需要计算:
6.根据权利要求5所述的基于CPU多核计算的激光雷达仿真装置,其特征在于,所述扫描范围均匀分为10个扇区,每秒进行100次BatchRaycast。
7.根据权利要求5所述的基于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 CN109814093A (zh) | 2019-05-28 |
CN109814093B true 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) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111624583B (zh) * | 2020-07-30 | 2020-10-30 | 之江实验室 | 一种考虑速度因素的激光雷达测距的快速数值仿真方法 |
CN113822892B (zh) * | 2021-11-24 | 2022-02-08 | 腾讯科技(深圳)有限公司 | 仿真雷达的评测方法、装置、设备及计算机存储介质 |
CN115220932A (zh) * | 2022-07-13 | 2022-10-21 | 小米汽车科技有限公司 | 通信进程执行方法、装置、车辆、可读存储介质及芯片 |
CN117630866A (zh) * | 2022-08-10 | 2024-03-01 | 上海禾赛科技有限公司 | 激光雷达、激光雷达的资源分配方法及计算机可读存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10008116B1 (en) * | 2017-05-31 | 2018-06-26 | Frogparking Limited | Vehicle presence detection system |
US10474160B2 (en) * | 2017-07-03 | 2019-11-12 | Baidu Usa Llc | High resolution 3D point clouds generation from downsampled low resolution LIDAR 3D point clouds and camera images |
CN107966693B (zh) * | 2017-12-05 | 2021-08-13 | 成都合纵连横数字科技有限公司 | 一种基于深度渲染的车载激光雷达仿真方法 |
CN108732556B (zh) * | 2018-08-17 | 2020-03-27 | 西南交通大学 | 一种基于几何体求交运算的车载激光雷达仿真方法 |
CN109239720A (zh) * | 2018-10-18 | 2019-01-18 | 清华大学苏州汽车研究院(吴江) | 一种智能激光雷达装置、系统及其数据处理方法 |
-
2019
- 2019-01-29 CN CN201910084653.5A patent/CN109814093B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109814093A (zh) | 2019-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109814093B (zh) | 一种基于cpu多核计算的激光雷达仿真方法以及装置 | |
EP3547063B1 (en) | Systems and methods for generating synthetic sensor data | |
CN109856993B (zh) | 一种自主驾驶仿真平台 | |
CN103578117B (zh) | 确定摄像头相对于环境的姿态的方法 | |
Afanasyev et al. | ROS-based SLAM for a Gazebo-simulated mobile robot in image-based 3D model of indoor environment | |
CN110386142A (zh) | 用于自动驾驶车辆的俯仰角校准方法 | |
CN108765548A (zh) | 基于深度相机的三维场景实时重建方法 | |
WO2021189468A1 (zh) | 激光雷达的姿态校正方法、装置和系统 | |
CN110741282A (zh) | 外参标定方法、装置、计算设备以及计算机存储介质 | |
CA2861555A1 (en) | Densifying and colorizing point cloud representation of physical surface using image data | |
CN103235545B (zh) | 一种光电跟踪系统的仿真测试方法和装置 | |
CN104318551B (zh) | 基于凸包特征检索的高斯混合模型点云配准方法 | |
WO2014012351A1 (zh) | 一种移动机器人的定位系统及其定位方法 | |
US10157494B2 (en) | Apparatus and method for processing virtual point lights in an image | |
WO2014071834A1 (zh) | 一种机器人定位系统及其反射装置的识别方法 | |
Palomer et al. | Underwater 3D laser scanners: The deformation of the plane | |
Kim et al. | Development of simulator for autonomous underwater vehicles utilizing underwater acoustic and optical sensing emulators | |
Almanza-Medina et al. | Deep learning architectures for navigation using forward looking sonar images | |
Csaba et al. | Differences between Kinect and structured lighting sensor in robot navigation | |
US20230080540A1 (en) | Lidar simulation system | |
Sato et al. | Path replanning method for an AUV in natural hydrothermal vent fields: Toward 3D imaging of a hydrothermal chimney | |
JP2006275569A (ja) | レーダ画像シミュレータ装置 | |
US20190235117A1 (en) | Positioning of seismic equipment in a towed marine array | |
US20210199798A1 (en) | Continuous wave radar terrain prediction method, device, system, and unmanned aerial vehicle | |
WO2017007527A2 (en) | Three dimensional direction finder with one dimensional sensor array |
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 |