障碍物检测方法、装置及存储装置
技术领域
本申请涉及智能机器人技术领域,特别是涉及一种障碍物检测方法、装置及存储装置。
背景技术
障碍物检测是移动机器人领域中一个极其重要的技术,移动机器人一般通过传感器获取探测数据并进行处理分析,得到检测结果。现有技术中,主要通过多传感器信息融合来进行障碍物检测,现实中如无人车中普遍使用多二维单线激光雷达的多平面探测的信息融合达到障碍物检测效果,其主要是采用多二维激光雷达多水平平面组网等形式实现无人车的多水平平面二维检测,但仍然无法实现对三维立体空间范围内的障碍物的有效检测。
发明内容
本申请提供一种障碍物检测方法、装置及存储装置,能够实时检测地平面信息并将地平面上一定高度的障碍物信息模拟成二维数据,为机器人的导航决策系统进行实时路径规划提供输入数据,可以显著降低机器人的导航方案的部署成本。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种障碍物检测方法,所述检测方法包括:获获取当前帧深度图像的三维点云数据;从所述三维点云数据中提取地平面;从所述三维点云数据中提取多个障碍物点,每一所述障碍物点距离所述地平面的距离大于预设阈值;利用所述障碍物点的三维点云数据进行处理以得到所述障碍物的模拟二维数据。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种障碍物检测装置,所述装置包括处理器及存储器,所述处理器连接所述存储器;其中,所述处理器用于获取当前帧深度图像的三维点云数据;从所述三维点云数据中提取地平面;从所述三维点云数据中提取多个障碍物点,每一所述障碍物点距离所述地平面的距离大于预设阈值;利用所述障碍物点的三维点云数据进行处理以得到所述障碍物的模拟二维数据。
为解决上述技术问题,本申请采用的又一个技术方案是:提供一种存储装置,存储有能够实现上述任一所述方法的程序文件。
本申请的有益效果是:提供一种障碍物检测方法、装置及存储装置,通过实时获取当前帧深度图像的三维点云数据,并从三维点云数据中提取出地平面信息,将距离地平面上预设高度值的障碍物点的点云数据投射到二维空间模拟成二维数据,从而为机器人的导航决策系统进行实时的路径规划提供输入数据,且在满足三维空间下双足机器人导航需求的前提下能够显著降低机器人上的导航方案的部署成本。
附图说明
图1是本申请障碍物检测方法一实施方式的流程示意图;
图2是本申请步骤S1一实施方式的流程示意图;
图3是本申请相机模型一实施方式的原理示意图;
图4是本申请图像物理坐标系和图像像素坐标系的转换示意图;
图5是本申请步骤S2一实施方式的流程示意图;
图6是本申请步骤S3一实施方式的流程示意图;
图7是本申请障碍物点选取方式的示意图;
图8是本申请步骤S5一实施方式的流程示意图;
图9是本申请障碍物点投影到相机第一平面的投影示意图;
图10是本申请障碍物检测装置一实施方式的结构示意图;
图11是本申请存储装置一实施方式的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参阅图1,图1为本申请障碍物检测方法一实施方式的流程示意图。
本申请提供的障碍物检测方法用于实时检测三维环境中各种平面和障碍物的存在,该检测方法通过提取出三维环境中的地平面信息,并提出该地平面信息以得到障碍物的三维点云数据,并将该障碍物的三维点云数据转化为二维的激光数据,从而可以为机器人的导航决策系统进行实时路径规划提供输入数据,以此进行地面障碍物的规避。且本申请中采用的深度相机可以为RGB-D相机,用于拍摄得到可见光波段的彩色图像(RGB图像)和红外测距得到的深度图像(D图像),当然在其他实施方式中还可以采用TOF相机以及结构光深度相机,此处不做具体限定。进一步本申请应用场景中采用的机器人可以为未搭载三维激光雷达的双足机器人。
可选地,本申请的障碍物检测方法具体包括如下步骤:
S1,获取当前帧深度图像的三维点云数据。
进一步结合图2,图2为本申请步骤S1一实施方式的流程示意图,步骤S1包括如下步骤:
S11,获取当前场景的深度图像。
本实施例中,深度相机(RGB-D)按照固定的频率扫描得到以的当前环境的每一帧图像数据,其中,每一帧图像中不仅包括了场景中点的彩色RGB图像,还包括每个点到深度相机所在的垂直平面的距离值,这个距离值被称为深度值(depth)这些深度值共同组成了这一帧的深度图像(D图像)。其中,深度图像可以看作是一幅灰度图像,其中图像中每个点的灰度值代表了这个点的深度值,即该点在现实中的位置到相机所在垂直平面的真实距离。
S12,根据深度相机的内部参数将深度图像的像素坐标转换为深度相机坐标系下的三维空间点坐标,以得到三维点云数据。
深度相机将三维世界中的坐标点(单位为米)映射到二维图像平面(单位为像素)的过程能够用一个几何模型进行描述,其中,最为典型的为针孔相机投影模型。
为了得到空间三维物体到RGB-D深度相机的二维图像的映射关系,需要先知道相机坐标系和图像坐标系之间的关系。图像坐标系可以分为图像像素坐标系和图像物理坐标系两个。具体来说,对应现实场景中的点,深度相机能够获取其在彩色图像中的成像点以及该成像点至深度相机所在的垂直平面的距离。具体可以结合图3,其中,以相机的光心位置为原点O,相机所朝的方向为Z轴,相机垂直平面的两个轴向分别为X轴和Y轴建立相机的局部三维坐标系,一般以相机的X轴向右,Y轴向下。三维环境中的空间点P,经过相机光心O投影之后,落在图像物理成像平面上图3所示的O′-X′-Y′平面上,成像点为P′。设P的坐标为[X,Y,Z]T,P′为[X′,Y′,Z′]T,并且设图像物理成像平面到相机光心的距离为f(焦距),可以得到空间点和其图像物理成像平面之间的空间关系为:
结合图4,通常情况下RGB-D相机最终获取到的是一个个的像素,为了描述传感器将感受到的光线转换成图像像素的过程,设在物理成像平面上固定着一个像素平面O-u-v(图像像素坐标系),在像素平面可以得到P′的像素坐标为[u,v]T。其中,该图像像素坐标系原点O′位于图像的左上角,u轴向右与X`轴平行,v轴向下与Y`轴平行。像素坐标系与成像平面之间,相差了一个缩放和一个原点的平移。假设像素坐标在u轴上缩放了α倍,在v上缩放了β倍。同时,原点平移了[cx,cy]T。那么P′的坐标与像素坐标[u,v]T的关系可以为:
其中,fx、fy、cx、cy为相机的内参,fx、fy为相机在x、y两个轴上的焦距,cx、cy为相机的光圈中心,且通常认为相机的内参在出厂之后是固定的,不会在使用过程中发生变化。
同理,本实施例中也可以采用针孔相机投影模型将深度图像中每一像素点坐标还原为相机坐标系下的三维空间点云坐标,从而组成当前三维环境的点云数据。直接读取RGB-D深度相机以固定频率输出的深度图像,按照图像像素在物理内存中存储的顺序进行遍历,遍历过程中使用事先标定得到的相机内参fx、fy、cx、cy,根据针孔相机投影模型将像素坐标还原为在相机坐标系下的三维空间点坐标,具体转换过程如下:
其中,上式的(u,v)为特征点在图像中的像素坐标,(X,Y,Z)即为其对应的相机坐标系下的三维空间点坐标,d为此像素点的深度值。按照公式(3)的转换过程,可以将深度图像中的每一点像素坐标均还原为相机坐标系下的三维点坐标,从而得到当前帧深度图像的三维点云数据。
S2,从三维点云数据中提取地平面。
使用双目系统、三维激光扫描仪等新兴测量技术生成的点云中常包含目标物体的平面特征,对其平面进行拟合识别具有重要的意义。常用的对平面信息进行拟合的方法有最小最小二乘法、特征值法以及随机一致性算法(Random Sample Consensus,RANSAC)等等,本申请中采用随机一致性算法进行三维点云数据的平面拟合,与其他算法不同,随机抽样一致性算法不是用所有初始数据去获取一个初始解然后剔除无效数据,而是使用满足可行条件的尽量少的初始数据,并使用一致性数据集去扩大它,这是一种寻找模型去拟合数据的思想,在计算机视觉领域有较广泛的应用。参阅图5,步骤S2进一步包括如下子步骤:
S21,随机选取三维点云数据中的至少三个点云数据进行拟合,以得到拟合地平面方程。
首先已知面向地面的RGB-D深度相机在双足机器人上安装的高度和俯角,即已知深度相机的光心距离地平面的高度D以及深度相机的俯角范围。在上述当前帧深度图像的三维点云数据中随机选取至少三个点(假设该随机选取的点为地平面模型的内点),本申请选用三个点直接确定该随机点组成的地平面方程,假设该拟合地平面方程为Ax+By+Cz+D=0。
S22,计算三维点云数据中剩余点云数据至拟合地平面的距离。
在确定该随机点组成的地平面方程后,分别计算剩余的点云数据至该拟合地平面的距离,假设可以为
S23,根据距离判断剩余点云数据是否为拟合地平面的内点。
本实施例中,通过预先设置的阈值距离来判断剩余点云是否属于该拟合地平面的内点。在具体应用场景中阈值距离可以选为t,若为diD≤t则认为该点为地平面模型的内点,则进入步骤S24,若判断为否,则进入步骤S23,继续计算剩余点距离所述拟合地平面的距离。
S24,则统计拟合地平面的内点个数。
S25,选取内点个数最多的拟合平面重新拟合以得到地平面。
重复上述步骤S21至步骤S24,在判断剩余点云是否为拟合地平面的内点时,如果该地平面模型的内点数量过少则舍弃该地平面模型,另一种情况下若得到该地平面模型的法向量与深度相机的俯角偏差较大则也需舍弃该地平面模型,再者若深度相机的光心到地平面模型的距离与已知的深度相机安装高度距离较大也需舍弃该地平面模型,即步骤S25中需要反复迭代固定次数,选出最好的拟合地平面的模型,即该地平面模型内内点个数最多。进一步对该内点最多的拟合地平面采用特征值法进行重新拟合,以得到最终的地平面方程,举例来说本申请中的地平面方程可以假设为Ax+By+Cz+D=0。
其中,在计算地平面所用的三个点中若包含异常点,那么该地平面所对应的内点数量不会是最多的,故阈值距离t的选择很重要,在判断内点的时候如果选择过小的阈值距离会放弃应选择的内点,而选择过大的阈值距离则可能将异常点误判为内点,故本申请中阈值距离t的实际选择和点云数据中的误差点的误差大小相关。
S3,调整三维点云数据的姿态面,以使得地平面平行于深度相机坐标系的第一平面。
进一步参阅图6,步骤S3进一步包括如下子步骤:
S31,获取深度相机的光心距离地平面的垂直高度。
步骤S25中拟合得到的地平面的平面方程为Ax+By+Cz+D=0,可知该地平面的法向量为(A,B,C),深度相机的光心距离该地平面的垂直高度为D。
S32,获取地平面平行第一平面时的法向量,以得到三维点云数据姿态的调整参数。
本申请中相机的光心位置为原点O,相机所朝的方向为Z轴,相机垂直平面的两个轴向分别为X轴和Y轴建立相机的局部三维坐标系,一般以相机的X轴向右,Y轴向下。其中,X轴和Z轴组成的平面可以为相机坐标系的第一平面,Z轴和Y轴组成的平面可以为相机坐标系的第二平面,X轴和Y轴组成的平面可以为相机坐标系的第三平面,该第一平面、第二平面以及第三平面相互垂直。当然,在其他实施方式,相机坐标系的建立也可以采用其它方式,例如Y轴为相机的朝向,X轴和Z轴为垂直平面的坐标轴,此处不做进一步限定。
可选地,当地平面和相机坐标系的第一平面平行时(XZ平面),可以得到此时该地平面的法向量为(0,-1,0)。进一步,根据已知两平面的法向量的点乘和叉乘运算可以得到三维点云数据姿态的调整参数。即通过两平面法向量的点乘运算可以得出两平面夹角的余弦值,根据两个平面法向量的叉乘运算可以求得两个平面之间的旋转轴,根据旋转轴和两平面的夹角得到旋转向量,此旋转向量即为姿态调整参数。
S33,根据调整参数调整三维点云数据的姿态,以使得地平面平行于第一平面。
在得到调整参数后,根据该调整参数对整个三维点云数据的姿态进行调整,以使得地平面平行于相机坐标系的第一平面。
S4,从三维点云数据中提取多个障碍物点,每一障碍物点距离地平面的距离大于预设阈值。
在对整个三维点云数据的姿态进行调整后,需要从该三维点云数据中提取出多个障碍物点的三维点云数据。本实施例中通过设置一预设的阈值来实现三维点云数据中障碍物点的判断。如图7为例,假设本申请中相机的光心距离所述地平面的距离为D,障碍物点距离地平面的预设阈值设置为H,那么本实施例中的障碍物点距离地平面的预设阈值H则小于相机的光心距离所述地平面的距离为D,在具体应用场景中则D-H部分的点云数据可以认为是所有障碍物点的三维点云数据,预设阈值H以下部分的点云数据则可以认为是地平面的三维点云数据。
S5,利用障碍物点的三维点云数据进行处理以得到障碍物的模拟二维数据。
参阅图8,步骤S5进一步包括如下子步骤:
S51,将障碍物点的三维点云数据分别投影到深度相机坐标系的第一平面。
在获取到所有障碍物点的三维点云数据后,将每一障碍物点的点云数据分别投影到深度相机坐标系的第一平面,即XZ平面。举例来说,参见图9假设将遍历到的点P投影到该第一平面内,点Pxz的坐标为(a,0,c),本申请中相机的坐标系不一定为图9所示的放置位置,本申请只是为了描述方便才将其简化为图9所示的状态,实际场景中相机的姿态和其在机器人身上的安装位置相关,以及和其拍摄时旋转的位姿相关,此处不做具体限定。
S52,分别计算各投影点到深度相机原点间的欧氏距离以及和投影点和原点组成的线段距离深度相机第一平面Z轴正向的夹角值。
可选地,将上述所有障碍物点的点云数据均投影到第一平面后,则可以分别计算各投影点到深度相机原点间的欧氏距离以及和投影点和原点组成的线段距离深度相机第一平面Z轴正向的夹角值。结合图7来说点Pxz到原点O的欧氏距离可以计算得到,OPxz和Z轴间夹角的角度值θ也可以通过计算得到。
S53,记录角度值相同的投影点到深度相机原点间欧氏距离最小的投影点数据,以得到障碍物点的模拟二维数据。
可选地,在将障碍物进行投影到XZ平面时,不同的障碍物点投影到XZ平面时其和Z轴正向的夹角可能是相同的,但其距离相机原点位置的距离则可能不相同,此时则分别记录并存储和Z轴正向夹角值相同的障碍物点中其和相机原点O之间欧式距离最小的点投影点数据(包括距离相机原点的欧式距离及和Z轴正向的夹角值),且由此将三维空间中地平面以上部分的障碍物点的三维点云数据投射到二维平面上,以得到障碍物点的模拟二维数据。在具体实施方式中,该模拟二维数据可以为模拟二维激光数据。
可选地,二维激光数据的视场角与深度相机的水平视场角相同,对于计算出的夹角值超出相机视场角的离群点需要进行剔除。也即是投影点Pxz和原点O组成的线段OPxz和Z轴正向之间的夹角值需要小于深度相机的视场角,且该夹角值的绝对值最大不能超过深度相机的视场角的二分之一,若大于则将该数据剔除,最终发布出具有实时性的二维激光数据,且该实时性的二维激光数据可以作为传感器信息实施输入到导航决策的路径规划算法中去,以此进行机器人地面障碍物的规避。
上述实施方式中,通过实时获取当前帧深度图像的三维点云数据,并从三维点云数据中提取出地平面信息,将距离地平面上预设高度值的障碍物点的点云数据投射到二维空间模拟成二维数据,从而为机器人的导航决策系统进行实时的路径规划提供输入数据。且本申请的技术方案对于未搭载三维激光雷达的双足机器人来说,是一种低成本且相对较可靠的立体避障的解决方法,即在满足三维空间下机器人导航需求的前提下能够显著降低机器人的导航方案的部署成本。
请参阅图10,图10为本申请障碍物检测装置一实施方式的结构示意图。如图9所示,该装置包括处理器11及存储器12,处理器11连接存储器12。
其中,处理器11用于获取当前帧深度图像的三维点云数据;从三维点云数据中提取地平面;从三维点云数据中提取多个障碍物点,每一障碍物点距离地平面的距离大于预设阈值;利用障碍物点的三维点云数据进行处理以得到障碍物的模拟二维数据。
其中,处理器11还可以称为CPU(Central Processing Unit,中央处理单元)。处理器11可能是一种集成电路芯片,具有信号的处理能力。处理器11还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
上述装置中处理器可分别执行上述方法实施例中对应的步骤,故此处不再赘述,详细请参阅以上对应步骤的具体说明。
上述实施方式中,通过实时获取当前帧深度图像的三维点云数据,并从三维点云数据中提取出地平面信息,将距离地平面上预设高度值的障碍物点的点云数据投射到二维空间模拟成二维数据,从而为机器人的导航决策系统进行实时的路径规划提供输入数据。且本申请的技术方案对于未搭载三维激光雷达的双足机器人来说,是一种低成本且相对较可靠的立体避障的解决方法,即在满足三维空间下双足机器人导航需求的前提下能够显著降低机器人上的导航方案的部署成本。
参阅图11,图11为本申请存储装置一实施方式的结构示意图。本申请的存储装置存储有能够实现上述所有方法的程序文件21,其中,该程序文件21可以以软件产品的形式存储在上述存储装置中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储装置包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
综上所述,本领域技术人员容易理解,提供一种障碍物检测方法、装置及存储装置,通过实时获取当前帧深度图像的三维点云数据,并从三维点云数据中提取出地平面信息,将距离地平面上预设高度值的障碍物点的点云数据投射到二维空间模拟成二维数据,从而为机器人的导航决策系统进行实时的路径规划提供输入数据。且本申请的技术方案对于未搭载三维激光雷达的双足机器人来说,是一种低成本且相对较可靠的立体避障的解决方法,即在满足三维空间下双足机器人导航需求的前提下能够显著降低机器人上的导航方案的部署成本。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。