CN110133625A - 一种快速球坐标激光雷达仿真方法 - Google Patents
一种快速球坐标激光雷达仿真方法 Download PDFInfo
- Publication number
- CN110133625A CN110133625A CN201910420113.XA CN201910420113A CN110133625A CN 110133625 A CN110133625 A CN 110133625A CN 201910420113 A CN201910420113 A CN 201910420113A CN 110133625 A CN110133625 A CN 110133625A
- Authority
- CN
- China
- Prior art keywords
- coordinate
- point
- vertex
- triangular facet
- laser radar
- 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
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S7/00—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
- G01S7/48—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
- G01S7/497—Means for monitoring or calibrating
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Optical Radar Systems And Details Thereof (AREA)
- Image Generation (AREA)
Abstract
一种快速球坐标激光雷达仿真方法。本发明公开了一种对于激光雷达的快速仿真方法,由CPU与GPU进行协同运算,CPU进行部分初始化工作,GPU在顶点着色器中对三角面的顶点坐标进行坐标转换,在几何着色器中,将每个三角面变成两个三角形组成的长方形,挂载原三角面的三个顶点ABC的坐标并输出,在片元着色器中,对三角面进行射线检测,并计算碰撞点坐标,计算激光雷达的输出并映射到(R,G,B,A)空间中。本发明使用传统的渲染管线,兼容绝大多数型号的显卡,并可获得现代显卡的加速性能,同时,本发明解决了激光雷达仿真中等距采样的问题,实现了高速高精确率的等角采样。
Description
技术领域
本发明属于仿真技术领域,特别是涉及到一种快速球坐标激光雷达仿真方法。
背景技术
目前,激光雷达广泛应用于自动驾驶、机器人、船舶、航空等领域。然而,目前主流仿真系统中,对于激光雷达的仿真还停留在使用深度摄像机或者是使用CPU计算Raycast(射线检测)的阶段。
如微软的AirSim仿真系统及LG的LG Simulator仿真系统中,均使用了深度摄像机作为激光雷达仿真手段。
这种仿真方式存在一个严重的问题:虚拟摄像机进行采样时,是按照屏幕像素进行等距采样,如图1所示,摄像机的光束实际上是从原点发射,方向为从摄像机原点到每个像素在NearClip上的位置,因此,传统渲染方式实际上是等距采样而非等角采样。然而,实际的激光雷达(如Velodyne)为等角采样。哪怕是采用了超采样之后,在屏幕边缘处的采样点,其误差在50米距离上依然可达100毫米。
LG公司的LG Simulator在处理此问题时,采用的方法是令摄像机高速旋转,每次对一个小角度进行采样。这样不仅浪费了大量计算资源,还导致采样出现了延迟。
发明内容
有鉴于此,本发明提出一种对于激光雷达的快速仿真方法,依然使用传统的渲染管线,兼容绝大多数型号的显卡,并可获得现代显卡的加速性能,同时解决了激光雷达仿真中等距采样的问题,实现了高速高精确率的等角采样。
为达到上述目的,本发明的技术方案是这样实现的:
一种快速球坐标激光雷达仿真方法,由CPU与GPU进行协同运算,包括:
S1、CPU进行部分初始化工作,包括:
定义直角坐标系为左手坐标系;即物体前向为Z轴,右侧为X轴,上方为Y轴;
定义球坐标系为:ψ为空间中某点P在XZ平面上的投影与Z轴的夹角;θ为空间中某点P与Y轴的夹角;R为空间中某点P距离原点的距离;
定义激光雷达的总线数height;
定义激光雷达每次扫描的次数width;
定义每次扫描沿Y轴扫描的角度范围的一半ψrange;
定义每次扫描沿X轴扫描的角度范围的一半θrange;
定义每次扫描的最大感知范围Lmax;
绘制一个width*height像素的噪声图,要求RGBA四个通道均为独立噪声;
定义每个材质的平滑度smoothness;
定义每个材质的反射率reflection;
定义每个材质的贴图Tex;
在每次扫描前,定义摄像机的Transform Matrix Tcam;
S2、GPU在顶点着色器中对三角面的顶点坐标进行坐标转换;转换后的顶点输出为{Psphere,Pworld,uv},其中Psphere为球坐标,Pworld为摄像机坐标系坐标,uv为该顶点的UV坐标;
S3、GPU在几何着色器中,将每个三角面变成两个三角形组成的长方形,令两个三角形的每个顶点依次挂载原三角面的三个顶点ABC的坐标并输出,三角形每个顶点的输出为{Psphere,Pworld,A,B,C,uv};
S4、GPU在片元着色器中,由几何着色器的输出获取原三角面三个顶点;同时,由屏幕像素位置获取射线方向,对三角面进行射线检测,并计算碰撞点坐标;然后计算此碰撞点的贴图是否为透明,若光线无法继续穿透,计算激光雷达的输出并映射到(R,G,B,A)空间中。
进一步的,步骤S2中,坐标转换的过程包括:
将顶点在ObjectSpace目标空间坐标系的坐标转换为世界坐标系坐标,然后再转换为摄像机坐标系下的坐标;
摄像机坐标系的定义为:摄像机位置为原点,摄像机前向为z轴正向,摄像机右侧为X轴正向,摄像机正上方为Y轴正向;
顶点(x,y,z)转化为球坐标:
其中,ψ为该点在XZ平面上的投影与Z轴的夹角,θ为该点与Y轴的夹角;
输出的球坐标Psphere为(ψ,θ,z);
将该顶点的摄像机坐标系坐标Pworld(x,y,z)输出;
同时,输出此顶点的UV坐标uv;
顶点着色器的输出为{Psphere,Pworld,uv}。
进一步的,步骤S3中,所述将每个三角面变成两个新三角面组成的长方形的方法包括:
S301、获得三角面三个顶点A、B、C的顶点着色器输出信息,根据三个顶点的球坐标Psphere,求出:
ψ的最小值ψmin和最大值ψmax,
θ的最小值θmin和最大值θmax;
S302、构建矩形包络框,其左上角坐标为(ψmin,θmax),右下坐标为(ψmax,θmin);
S303、对包络框进行三角化,由矩形A1B1C1D1变为两个新三角形A1B1C1和A2B2C2;其中,A1、B1、C1坐标不变;A2坐标等于A1,B2坐标等于C1,C2坐标等于D1;
S304、令输出的两个三角形A1B1C1和A2B2C2的每个顶点依次挂载此三角面的三个顶点ABC的坐标;
A1点的存储坐标为A(Ax,Ay,Az,1)、B(0,0,0,0)、C(0,0,0,0);
B1点的存储坐标为A(0,0,0,0)、B(Bx,By,Bz,1)、C(0,0,0,0);。
C1点的存储坐标为A(0,0,0,0)、B(0,0,0,0)、C(Cx,Cy,Cz,1);
A2点的存储坐标为A(Ax,Ay,Az,1)、B(0,0,0,0)、C(0,0,0,0);
B2点的存储坐标为A(0,0,0,0)、B(Bx,By,Bz,1)、C(0,0,0,0);
C2点的存储坐标为A(0,0,0,0)、B(0,0,0,0)、C(Cx,Cy,Cz,1);
每个顶点的输出为{Psphere,Pworld,A,B,C,uv}。
更进一步的,步骤S302中,如三角面的ψmin、ψmax、θmin、θmax的值在范围[-1,1]之外,则需扩大矩形的范围,根据(ψmin,θmax),(ψmax,ψmin)求出此矩形的包络圆,再构建能够包络此圆的正方形作为包络框。
进一步的,步骤S4中,所述射线检测及计算碰撞点坐标的步骤包括:
S401、根据屏幕像素点坐标Pixel(x,y)计算此像素对应的ψ、θ;
θ=(y-0.5)*2*θrange
其中,ψrange、θrange分别为激光雷达每次扫描的范围的一半;
根据ψ、θ确定射线方向,并进行归一化,获得入射光的单位向量Dir;
y=sin(θ)
S402、利用在几何着色器中输出的ABC坐标进行计算;令坐标为(x,y,z,w),则根据下面公式重新获得三角面ABC坐标;
S403、获得三角面ABC坐标及射线方向Dir后,进行射线与三角面碰撞检测;如射线与三角面有交点,返回交点的摄像机空间坐标Pc及长度t;
S404、由ABC算出三角面的法线Nrm;
Nrm=(B-A)×(C-A)
由Pc求得碰撞点的世界坐标P;
P=Pc+Pcam
其中Pcam为摄像机的世界坐标。
进一步的,步骤S4中,所述计算碰撞点的贴图是否为透明的方法包括:
使用从几何着色器获得的uv坐标对贴图进行采样,获取该点的颜色Col(R,G,B,A);如A小于材质的AlphaCullOff值,则认为光线穿透了此点,将此点的depth深度设为极小值以允许光线继续穿透。
进一步的,步骤S4中,所述计算激光雷达的输出并映射到(R,G,B,A)空间包括:
S411、取得碰撞点的世界坐标P对噪声图TXnoise的采样UV坐标Puv;
Puv(u,v)=Fraction((Px,Py)*Pz*100)
其中,Fraction()为获取输入值的小数点后的部分;
S412、使用Puv获得一个4阶向量Pnoise,将其从[0,1)区间映射到[-0.5,0.5),获得噪声向量err;
err=Pnoise-(0.5,0.5,0.5,0.5)
S413、计算加噪后的法线Nnoise;
Nnoise=Nrm+err*(1-Smoothness)*RoughScale
Nrm为由三角面ABC坐标计算出的三角面的法线;
S414、计算加噪法线Nnoise与入射光夹角的余弦值lambert;
如lambert大于smoothness,则激光雷达接收到的信号为从该点返回的光线;
S415、计算三角形表面材质对激光波段的吸收率Absorption;
S416、激光在反射后的反射能量energy为:
S417、由于实际激光雷达仪器仅计算发射和返回的时间差,实际上激光雷达输出的距离Len应为:
更进一步的,步骤S416中,如lambert小于smoothness,则认为激光雷达收到的信号为二次反射后的位置;
反射长度L可由噪声向量近似求得:
L=(errx,erry,errz)*errw*reflection3
而二次反射后的反射点的位置Pr为:
Pr=P+Reflect(Dir,Nrm)
其中,Reflect为计算Dir方向的光线在法线为Nrm的面上的反射方向的函数;
则反射后的能量energy为:
。
优选的,步骤S4中,激光雷达的输出映射到(R,G,B,A)空间中的方法为:
根据长度t或Len,计算激光雷达认为的反射点P0(x,y,z)的坐标:
P0=Dir*Len
由于RGB颜色的范围为[0,1],因此需将P0映射到[0,1]空间。
A=energy
此像素的depth深度为:
与现有技术相比,本发明具有如下的有益效果:
(1)本发明在不改变传统渲染管线的基础上,充分利用了当代GPU的渲染加速性能,实现了高性能、高精确率的激光雷达仿真;
(2)本发明可极大的加速激光雷达相关算法的研发和训练;
(3)本发明可同步输出标准答案和点云数据,形成训练数据集,极大缩短深度学习算法的训练时间;本发明可将激光雷达神经网络的训练时间由300小时缩短至100小时。
(4)本发明可应用于但不限于自动驾驶仿真、机器人仿真、航空航天仿真、军事仿真等领域;
(5)本发明的采样角度误差为0.00005弧度,采样精度误差为0.001米。
附图说明
图1为传统方法中摄像机的等距采样图示;
图2为本发明实施例中直角坐标系与球坐标系的定义的示意图;
图3为本发明实施例中根据三角面构建长方形包络框的示意图;
图4为本发明实施例中扩大范围构建包络框的示意图;
图5为本发明实施例中包络框三角化的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面结合附图对本发明的技术方案做进一步的详细说明:
本发明需要CPU与GPU进行协同运算。
本发明中,定义直角坐标系为左手坐标系。即物体前向为Z轴,右侧为X轴,上方为Y轴。
定义球坐标系为:
ψ为空间中某点P在XZ平面上的投影与Z轴的夹角。
θ为空间中某点P与Y轴的夹角。
R为空间中某点P距离原点的距离。
定义如图2所示。
CPU需要进行一部分初始化工作:
定义激光雷达的总线数height。
定义激光雷达每次扫描的次数width。
定义每次扫描沿Y轴扫描的角度范围的一半ψrange
定义每次扫描沿X轴扫描的角度范围的一半θrange
定义每次扫描的最大感知范围Lmax。
绘制一个width*height像素的噪声图,要求RGBA四个通道均为独立噪声。
定义每个材质的平滑度smoothness。
定义每个材质的反射率reflection。
定义每个材质的贴图Tex。
注:以上初始化参数均可在运行中实时更改。
在实时运行中,在每次扫描前,需定义:
摄像机的Transform Matrix(旋转矩阵)Tcam。
GPU计算部分分为三个步骤:
一、Vertex Shader(顶点着色器):
在顶点着色器中进行坐标转换。
本发明将顶点在ObjectSpace(目标空间坐标系)的坐标转换为世界坐标系坐标,然后再转换为摄像机坐标系下的坐标。
摄像机坐标系的定义为:摄像机位置为原点,摄像机前向为z轴正向。摄像机右侧为X轴正向。摄像机正上方为Y轴正向。
本发明把顶点(x,y,z)转化为球坐标。
其中,ψ为该点在XZ平面上的投影与Z轴的夹角,θ为该点与Y轴的夹角。
输出的球坐标Psphere为(ψ,θ,z)。
将该顶点的摄像机坐标系坐标Pworld(x,y,z)输出。
同时,输出此顶点的UV坐标uv。
因此,顶点着色器的输出为{Psphere,Pworld,uv}
二、Geometry Shader(几何着色器)
在几何着色器中,将每个三角面变成两个三角面组成的长方形,以抵消后续Raster(晶格化)及Barycentric Interpolation(质心插值法)对于顶点信息的压缩。
在此着色器阶段,可获得三角形三个顶点A、B、C的顶点着色器输出信息。
根据三个顶点的球坐标Psphere,求出:
ψ的最小值ψmin和最大值ψmax。
θ的最小值θmin和最大值θmax。
构建包络框,其左上角坐标为(ψmin,θmax),右下坐标为(ψmax,θmin),如图3所示。
如三角形的ψmin、ψmax、θmin、θmax的值在范围[-1,1]之外,则需扩大长方形的范围。根据(ψmin,θmax),(ψmax,ψmin)求出此长方形的包络圆,再构建能够包络此圆的正方形包络框,如图4所示。
对包络框进行三角化,如图5所示。
由矩形A1B1C1D1变为两个新三角形A1B1C1和A2B2C2。其中,A1、B1、C1坐标不变。A2坐标等于A1,B2坐标等于C1,C2坐标等于D1;
令输出的两个三角形A1B1C1和A2B2C2的每个顶点依次挂载此三角面的三个顶点ABC的坐标;
A1点的存储坐标为A(Ax,Ay,Az,1)、B(0,0,0,0)、C(0,0,0,0)。
B1点的存储坐标为A(0,0,0,0)、B(Bx,By,Bz,1)、C(0,0,0,0)。
C1点的存储坐标为A(0,0,0,0)、B(0,0,0,0)、C(Cx,Cy,Cz,1)。
A2点的存储坐标为A(Ax,Ay,Az,1)、B(0,0,0,0)、C(0,0,0,0)。
B2点的存储坐标为A(0,0,0,0)、B(Bx,By,Bz,1)、C(0,0,0,0)。
C2点的存储坐标为A(0,0,0,0)、B(0,0,0,0)、C(Cx,Cy,Cz,1)。
几何着色器每个顶点的输出为:
{Psphere,Pworld,A,B,C,uv}
三、Fragment Shader(片元着色器)
在片元着色器中,可由几何着色器的输出获取三角形三个顶点。同时,由屏幕像素位置获取射线方向,对三角形进行射线检测,并计算碰撞点坐标。
由于顶点坐标已转化为球坐标,因此,根据屏幕像素点坐标Pixel(x,y)可计算此像素对应的ψ、θ。
θ=(y-0.5)*2*θrange
其中,ψrange、θrange分别为激光雷达每次扫描的范围的一半。
根据ψ、θ确定射线方向,并进行归一化,获得入射光的单位向量Dir。
y=sin(θ)
在几何着色器中,本发明输出了三角形的三个顶点ABC的坐标。因此,在片元着色器中,此坐标经由质心插值法之后发生了变化。为在质心插值法之后求得原始三角形的坐标ABC,本发明可利用之前在几何着色器中输出的ABC坐标进行计算。令坐标为(x,y,z,w),则可有此公式重新获得ABC坐标。
获得三角形ABC坐标及射线方向Dir后,进行射线与三角面碰撞检测。
如射线与三角面有交点,返回交点的摄像机空间坐标Pc及长度t。
由ABC算出三角形的法线Nrm。
Nrm=(B-A)×(C-A)
由Pc求得碰撞点的世界坐标P。
P=Pc+Pcam
其中Pcam为摄像机的世界坐标。
若激光雷达所扫描的表面使用了带Alpha通道的透明贴图,则需计算此点的贴图是否为透明。如透明则光线应穿过此三角面。
使用从几何着色器获得的uv坐标对贴图进行采样,获取该点的颜色Col(R,G,B,A)。如A小于材质的AlphaCullOff值,则认为光线穿透了此点,将此点的depth(深度)设为极小值以允许光线继续穿透。
如光线无法继续穿透,则进行后续计算:
由P对噪声图TXnoise的采样UV坐标Puv。
Puv(u,v)=Fraction((Px,Py)*Pz*100)
其中,Fraction()为获取输入值的小数点后的部分。
使用Puv获得一个4阶向量Pnoise,将其从[0,1)区间映射到[-0.5,0.5),获得噪声向量err。
err=Pnoise-(0.5,0.5,0.5,0.5)
计算加噪后的法线Nnoise。
Nnoise=Nrm+err*(1-Smoothness)*RoughScale
计算加噪法线Nnoise与入射光夹角的余弦值lambert。
如lambert大于smoothness,则激光雷达接收到的信号为从该点返回的光线。
计算三角形表面材质对激光波段的吸收率Absorption。以Velodyne品牌为例,其激光雷达的波长为790nm。而红色的波长范围为650~750nm。因此可近似认为此贴图的红色通道R的值为激光在材质上的反射率。
由于激光具有良好的指向性,因此激光在稀薄空气中传播时能量无衰减。但激光在反射后失去了其指向性,变为了球形散射。因此其反射能量energy为:
如lambert小于smoothness,则认为激光雷达收到的信号为二次反射后的位置。
反射长度L可由噪声向量近似求得:
L=(errx,erry,errz)*errw*reflection3
而二次反射后的反射点的位置Pr为:
Pr=P+Reflect(Dir,Nrm)
其中,Reflect为计算Dir方向的光线在法线为Nrm的面上的反射方向的函数。
则反射后的能量energy为:
由于实际激光雷达仪器仅计算发射和返回的时间差。因此实际上,激光雷达输出的距离Len应为:
由于渲染管线仅能输出图像,因此需要将激光雷达的输出映射到(R,G,B,A)空间中。在此仅提供一种思路。【如使用其他方式映射或编码,依然纳入此权利声明中】
根据长度t或Len,计算激光雷达认为的反射点P0(x,y,z)的坐标:
P0=Dir*Len
由于RGB颜色的范围为[0,1],因此需将P0映射到[0,1]空间。
A=energy
此像素的depth(深度)为:
输出数据的解析方法:
以上述输出格式标准为例。
需要将图像上的像素进行一些处理,以便进行后续的显示或处理。
首先将RGB变换到[-Lmax,Lmax]范围内:
x=(2R-1)*Lmax
y=(2G-1)*Lmax
z=B*Lmax
其中,RGB为图像某点的颜色值。Lmax为激光雷达扫描最大距离。
使用摄像机的逆变化矩阵乘以该坐标,得到该点的世界坐标Pworld。
Pworld=Tcam -1*(x,y,z,0)。
本发明测试环境如下:
CPU:i7 8700K
GPU:GTX 1080ti
操作系统:Windows 10
在仿真64线激光雷达时,实现了每秒300Hz的工作频率。远超激光雷达本身的20Hz最大工作频率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种快速球坐标激光雷达仿真方法,其特征在于,由CPU与GPU进行协同运算,包括:
S1、CPU进行部分初始化工作,包括:
定义直角坐标系为左手坐标系;即物体前向为Z轴,右侧为X轴,上方为Y轴;
定义球坐标系为:ψ为空间中某点P在XZ平面上的投影与Z轴的夹角;θ为空间中某点P与Y轴的夹角;R为空间中某点P距离原点的距离;
定义激光雷达的总线数height;
定义激光雷达每次扫描的次数width;
定义每次扫描沿Y轴扫描的角度范围的一半ψrange;
定义每次扫描沿X轴扫描的角度范围的一半θrange;
定义每次扫描的最大感知范围Lmax;
绘制一个width*height像素的噪声图,要求RGBA四个通道均为独立噪声;
定义每个材质的平滑度smoothness;
定义每个材质的反射率reflection;
定义每个材质的贴图Tex;
在每次扫描前,定义摄像机的Transform Matrix Tcam;
S2、GPU在顶点着色器中对三角面的顶点坐标进行坐标转换;转换后的顶点输出为{Psphere,Pworld,uv},其中Psphere为球坐标,Pworld为摄像机坐标系坐标,uv为该顶点的UV坐标;
S3、GPU在几何着色器中,将每个三角面变成两个三角形组成的长方形,令两个三角形的每个顶点依次挂载原三角面的三个顶点ABC的坐标并输出,三角形每个顶点的输出为{Psphere,Pworld,A,B,C,uv};
S4、GPU在片元着色器中,由几何着色器的输出获取原三角面三个顶点;同时,由屏幕像素位置获取射线方向,对三角面进行射线检测,并计算碰撞点坐标;然后计算此碰撞点的贴图是否为透明,若光线无法继续穿透,计算激光雷达的输出并映射到(R,G,B,A)空间中。
2.根据权利要求1所述的一种快速球坐标激光雷达仿真方法,其特征在于,步骤S2中,坐标转换的过程包括:
将顶点在ObjectSpace目标空间坐标系的坐标转换为世界坐标系坐标,然后再转换为摄像机坐标系下的坐标;
摄像机坐标系的定义为:摄像机位置为原点,摄像机前向为z轴正向,摄像机右侧为X轴正向,摄像机正上方为Y轴正向;
顶点(x,y,z)转化为球坐标:
其中,ψ为该点在XZ平面上的投影与Z轴的夹角,θ为该点与Y轴的夹角;
输出的球坐标Psphere为(ψ,θ,z);
将该顶点的摄像机坐标系坐标Pworld(x,y,z)输出;
同时,输出此顶点的UV坐标uv;
顶点着色器的输出为{Psphere,Pworld,uv}。
3.根据权利要求1所述的一种快速球坐标激光雷达仿真方法,其特征在于,步骤S3中,所述将每个三角面变成两个新三角面组成的长方形的方法包括:
S301、获得三角面三个顶点A、B、C的顶点着色器输出信息,根据三个顶点的球坐标Psphere,求出:
ψ的最小值ψmin和最大值ψmax,
θ的最小值θmin和最大值θmax;
S302、构建矩形包络框,其左上角坐标为(ψmin,θmax),右下坐标为(ψmax,θmin);
S303、对包络框进行三角化,由矩形A1B1C1D1变为两个新三角形A1B1C1和A2B2C2;其中,A1、B1、C1坐标不变;A2坐标等于A1,B2坐标等于C1,C2坐标等于D1;
S304、令输出的两个三角形A1B1C1和A2B2C2的每个顶点依次挂载此三角面的三个顶点ABC的坐标;
A1点的存储坐标为A(Ax,Ay,Az,1)、B(0,0,0,0)、C(0,0,0,0);
B1点的存储坐标为A(0,0,0,0)、B(Bx,By,Bz,1)、C(0,0,0,0);。
C1点的存储坐标为A(0,0,0,0)、B(0,0,0,0)、C(Cx,Cy,Cz,1);
A2点的存储坐标为A(Ax,Ay,Az,1)、B(0,0,0,0)、C(0,0,0,0);
B2点的存储坐标为A(0,0,0,0)、B(Bx,By,Bz,1)、C(0,0,0,0);
C2点的存储坐标为A(0,0,0,0)、B(0,0,0,0)、C(Cx,Cy,Cz,1);
每个顶点的输出为{Psphere,Pworld,A,B,C,uv}。
4.根据权利要求3所述的一种快速球坐标激光雷达仿真方法,其特征在于,步骤S302中,如三角面的ψmin、ψmax、θmin、θmax的值在范围[-1,1]之外,则需扩大矩形的范围,根据(ψmin,θmax),(ψmax,ψmin)求出此矩形的包络圆,再构建能够包络此圆的正方形作为包络框。
5.根据权利要求1所述的一种快速球坐标激光雷达仿真方法,其特征在于,步骤S4中,所述射线检测及计算碰撞点坐标的步骤包括:
S401、根据屏幕像素点坐标Pixel(x,y)计算此像素对应的ψ、θ;
θ=(y-0.5)*2*θrange
其中,ψrange、θrange分别为激光雷达每次扫描的范围的一半;
根据ψ、θ确定射线方向,并进行归一化,获得入射光的单位向量Dir;
y=sin(θ)
S402、利用在几何着色器中输出的ABC坐标进行计算;令坐标为(x,y,z,w),则根据下面公式重新获得三角面ABC坐标;
S403、获得三角面ABC坐标及射线方向Dir后,进行射线与三角面碰撞检测;如射线与三角面有交点,返回交点的摄像机空间坐标Pc及长度t;
S404、由ABC算出三角面的法线Nrm;
Nrm=(B-A)×(C-A)
由Pc求得碰撞点的世界坐标P;
P=Pc+Pcam
其中Pcam为摄像机的世界坐标。
6.根据权利要求1所述的一种快速球坐标激光雷达仿真方法,其特征在于,步骤S4中,所述计算碰撞点的贴图是否为透明的方法是:
使用从几何着色器获得的uv坐标对贴图进行采样,获取该点的颜色Col(R,G,B,A);如A小于材质的AlphaCullOff值,则认为光线穿透了此点,将此点的depth深度设为极小值以允许光线继续穿透。
7.根据权利要求1所述的一种快速球坐标激光雷达仿真方法,其特征在于,步骤S4中,所述计算激光雷达的输出包括:
S411、取得碰撞点的世界坐标P对噪声图TXnoise的采样UV坐标Puv;
Puv(u,v)=Fraction((Px,Py)*Pz*100)
其中,Fraction()为获取输入值的小数点后的部分;
S412、使用Puv获得一个4阶向量Pnoise,将其从[0,1)区间映射到[-0.5,0.5),获得噪声向量err;
err=Pnoise-(0.5,0.5,0.5,0.5)
S413、计算加噪后的法线Nnoise;
Nnoise=Nrm+err*(1-Smoothness)*RoughScale
Nrm为由三角面ABC坐标计算出的三角面的法线;
S414、计算加噪法线Nnoise与入射光夹角的余弦值lambert;
如lambert大于smoothness,则激光雷达接收到的信号为从该点返回的光线;
S415、计算三角形表面材质对激光波段的吸收率Absorption;
S416、激光在反射后的反射能量energy为:
S417、由于实际激光雷达仪器仅计算发射和返回的时间差,实际上激光雷达输出的距离Len应为:
8.根据权利要求7所述的一种快速球坐标激光雷达仿真方法,其特征在于,步骤S416中,如lambert小于smoothness,则认为激光雷达收到的信号为二次反射后的位置;
反射长度L可由噪声向量近似求得:
L=(errx,erry,errz)*errw*reflection3
而二次反射后的反射点的位置Pr为:
Pr=P+Reflect(Dir,Nrm)
其中,Reflect为计算Dir方向的光线在法线为Nrm的面上的反射方向的函数;
则反射后的能量energy为:
9.根据权利要求1所述的一种快速球坐标激光雷达仿真方法,其特征在于,步骤S4中,激光雷达的输出映射到(R,G,B,A)空间中的方法为:
根据长度t或Len,计算激光雷达认为的反射点P0(x,y,z)的坐标:
P0=Dir*Len
由于RGB颜色的范围为[0,1],因此需将P0映射到[0,1]空间。
A=energy
此像素的depth深度为:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910420113.XA CN110133625B (zh) | 2019-05-20 | 2019-05-20 | 一种快速球坐标激光雷达仿真方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910420113.XA CN110133625B (zh) | 2019-05-20 | 2019-05-20 | 一种快速球坐标激光雷达仿真方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110133625A true CN110133625A (zh) | 2019-08-16 |
CN110133625B CN110133625B (zh) | 2020-05-08 |
Family
ID=67571608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910420113.XA Active CN110133625B (zh) | 2019-05-20 | 2019-05-20 | 一种快速球坐标激光雷达仿真方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110133625B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113820694A (zh) * | 2021-11-24 | 2021-12-21 | 腾讯科技(深圳)有限公司 | 一种仿真测距的方法、相关装置、设备以及存储介质 |
CN114895316A (zh) * | 2022-07-11 | 2022-08-12 | 之江实验室 | 一种多激光雷达测距的快速数值仿真方法和装置 |
CN115393496A (zh) * | 2022-10-25 | 2022-11-25 | 之江实验室 | 一种多激光雷达仿真点云的快速绘制方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1942896A (zh) * | 2004-04-16 | 2007-04-04 | 苹果电脑有限公司 | 用图形处理单元处理图形操作的系统和方法 |
US7880671B2 (en) * | 2008-09-18 | 2011-02-01 | Raytheon Company | Electromagnetic (EM) solver using a shooting bouncing ray (SBR) technique |
CN102129680A (zh) * | 2010-01-15 | 2011-07-20 | 精工爱普生株式会社 | 实时几何形状感知投影和快速重校准 |
CN103885040A (zh) * | 2014-03-29 | 2014-06-25 | 江西理工大学 | 一种基于cpu-gpu异构计算的圆迹合成孔径雷达回波生成方法 |
CN107851176A (zh) * | 2015-02-06 | 2018-03-27 | 阿克伦大学 | 光学成像系统及其方法 |
CN108733051A (zh) * | 2017-04-17 | 2018-11-02 | 英特尔公司 | 自主车辆高级感测和响应 |
-
2019
- 2019-05-20 CN CN201910420113.XA patent/CN110133625B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1942896A (zh) * | 2004-04-16 | 2007-04-04 | 苹果电脑有限公司 | 用图形处理单元处理图形操作的系统和方法 |
US7880671B2 (en) * | 2008-09-18 | 2011-02-01 | Raytheon Company | Electromagnetic (EM) solver using a shooting bouncing ray (SBR) technique |
CN102129680A (zh) * | 2010-01-15 | 2011-07-20 | 精工爱普生株式会社 | 实时几何形状感知投影和快速重校准 |
CN103885040A (zh) * | 2014-03-29 | 2014-06-25 | 江西理工大学 | 一种基于cpu-gpu异构计算的圆迹合成孔径雷达回波生成方法 |
CN107851176A (zh) * | 2015-02-06 | 2018-03-27 | 阿克伦大学 | 光学成像系统及其方法 |
CN108733051A (zh) * | 2017-04-17 | 2018-11-02 | 英特尔公司 | 自主车辆高级感测和响应 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113820694A (zh) * | 2021-11-24 | 2021-12-21 | 腾讯科技(深圳)有限公司 | 一种仿真测距的方法、相关装置、设备以及存储介质 |
CN113820694B (zh) * | 2021-11-24 | 2022-03-01 | 腾讯科技(深圳)有限公司 | 一种仿真测距的方法、相关装置、设备以及存储介质 |
CN114895316A (zh) * | 2022-07-11 | 2022-08-12 | 之江实验室 | 一种多激光雷达测距的快速数值仿真方法和装置 |
CN114895316B (zh) * | 2022-07-11 | 2022-10-28 | 之江实验室 | 一种多激光雷达测距的快速数值仿真方法和装置 |
CN115393496A (zh) * | 2022-10-25 | 2022-11-25 | 之江实验室 | 一种多激光雷达仿真点云的快速绘制方法和装置 |
CN115393496B (zh) * | 2022-10-25 | 2023-03-24 | 之江实验室 | 一种多激光雷达仿真点云的快速绘制方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110133625B (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11748840B2 (en) | Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters | |
CN110133625A (zh) | 一种快速球坐标激光雷达仿真方法 | |
CN103489214A (zh) | 增强现实系统中基于虚拟模型预处理的虚实遮挡处理方法 | |
CN1317666C (zh) | 适于创建透明对象的实时阴影的系统和方法 | |
JPH06223198A (ja) | 光線追跡による画像生成装置及び方法 | |
KR20170012201A (ko) | 다수의 렌더 타겟들 내에서 활성 컬러 샘플 카운트를 변경함으로써 스크린 위치에 의한 변화하는 유효 분해능 | |
CN111652946B (zh) | 显示标定方法及装置、设备、存储介质 | |
EP4213102A1 (en) | Rendering method and apparatus, and device | |
CN110276791B (zh) | 一种参数可配置的深度相机仿真方法 | |
CN105699951A (zh) | 基于dem数据叠加的航海雷达回波模拟方法 | |
US20190116354A1 (en) | Camera calibration | |
CN106251282A (zh) | 一种机械臂采样环境仿真图的生成方法及装置 | |
CN114002701A (zh) | 一种实时渲染点云的方法、装置、电子设备及系统 | |
CN109523619A (zh) | 一种通过多角度打光的图片生成3d材质贴图的方法 | |
CN110471061A (zh) | 一种实现机载合成孔径雷达成像的仿真方法及其系统 | |
CN113034660B (zh) | 一种基于pbr反射模型的激光雷达仿真方法 | |
US20230206567A1 (en) | Geometry-aware augmented reality effects with real-time depth map | |
CN110888123A (zh) | 一种基于旋转矩阵的雷达坐标转换方法 | |
CN116642490A (zh) | 基于混合地图的视觉定位导航方法、机器人及存储介质 | |
CN117218259A (zh) | 基于可微分sar图像渲染器的样本生成方法 | |
CN111860328B (zh) | 一种基于双向反射函数和森林场景光照效果建模的生物量估算方法 | |
CN113763457B (zh) | 落差地形的标定方法、装置、电子设备和存储介质 | |
Liao | Shadow Mapping for Omnidirectional Light Using Tetrahedron Mapping | |
CN113470135A (zh) | 海面仿真图像的生成方法、装置和电子设备 | |
Han et al. | Research on rocket laser scattering characteristic simulation software |
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 |