一种快速球坐标激光雷达仿真方法技术

技术编号:21889583 阅读:39 留言:0更新日期:2019-08-17 13:39
一种快速球坐标激光雷达仿真方法。本发明专利技术公开了一种对于激光雷达的快速仿真方法,由CPU与GPU进行协同运算,CPU进行部分初始化工作,GPU在顶点着色器中对三角面的顶点坐标进行坐标转换,在几何着色器中,将每个三角面变成两个三角形组成的长方形,挂载原三角面的三个顶点ABC的坐标并输出,在片元着色器中,对三角面进行射线检测,并计算碰撞点坐标,计算激光雷达的输出并映射到(R,G,B,A)空间中。本发明专利技术使用传统的渲染管线,兼容绝大多数型号的显卡,并可获得现代显卡的加速性能,同时,本发明专利技术解决了激光雷达仿真中等距采样的问题,实现了高速高精确率的等角采样。

A Fast Spherical Coordinate Lidar Simulation Method

【技术实现步骤摘要】
一种快速球坐标激光雷达仿真方法
本专利技术属于仿真
,特别是涉及到一种快速球坐标激光雷达仿真方法。
技术介绍
目前,激光雷达广泛应用于自动驾驶、机器人、船舶、航空等领域。然而,目前主流仿真系统中,对于激光雷达的仿真还停留在使用深度摄像机或者是使用CPU计算Raycast(射线检测)的阶段。如微软的AirSim仿真系统及LG的LGSimulator仿真系统中,均使用了深度摄像机作为激光雷达仿真手段。这种仿真方式存在一个严重的问题:虚拟摄像机进行采样时,是按照屏幕像素进行等距采样,如图1所示,摄像机的光束实际上是从原点发射,方向为从摄像机原点到每个像素在NearClip上的位置,因此,传统渲染方式实际上是等距采样而非等角采样。然而,实际的激光雷达(如Velodyne)为等角采样。哪怕是采用了超采样之后,在屏幕边缘处的采样点,其误差在50米距离上依然可达100毫米。LG公司的LGSimulator在处理此问题时,采用的方法是令摄像机高速旋转,每次对一个小角度进行采样。这样不仅浪费了大量计算资源,还导致采样出现了延迟。
技术实现思路
有鉴于此,本专利技术提出一种对于激光雷达的快速仿真方法,依然使用传统的渲染管线,兼容绝大多数型号的显卡,并可获得现代显卡的加速性能,同时解决了激光雷达仿真中等距采样的问题,实现了高速高精确率的等角采样。为达到上述目的,本专利技术的技术方案是这样实现的:一种快速球坐标激光雷达仿真方法,由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;在每次扫描前,定义摄像机的TransformMatrixTcam;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本文档来自技高网...

【技术保护点】
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)空间中。...

【技术特征摘要】
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;在每次扫描前,定义摄像机的TransformMatrixTcam;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,C...

【专利技术属性】
技术研发人员:居阳
申请(专利权)人:北京奥特贝睿科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1