可通行性的识别方法、***、设备及计算机可读存储介质
技术领域
本发明实施例涉及无人驾驶领域,尤其涉及一种可通行性的识别方法、***、设备及计算机可读存储介质。
背景技术
在自动驾驶中,主要是利用传感器获取周边环境信息,进而通过计算分析出周围环境的描述,即周围环境的可通行性,从而为自动驾驶规划提供决策。
目前,可通行性的分析主要是对2.5D地图进行局部可通行性分析,确定每个栅格在小范围内二值化描述的可通行性,然后在全局范围内对可通行性为“可通行”的栅格做连通聚类,最后过滤掉聚类后尺寸较小的碎片,标记其属性为“未知”或“不可通行”,其余聚类所得的“可通行”栅格,将其属性标记为“可通行”。这种处理方法在连通阶段,是将2.5D地图作为一幅二值图来处理,只考虑了可通行区域是否连通,但是实际上自动驾驶车辆具有最小通过尺寸,小于最小通过尺寸的开口,即使物理上连通,车辆也无法通过。另外,由于局部可通行性分析得到的结果是二值化的,也无法预知某一连通区域的“到达代价”。综上,现有技术中对于可通行性的识别精度不高。
发明内容
本发明实施例提供一种可通行性的识别方法、***、设备及计算机可读存储介质,以提高可通行性的识别精度。
本发明实施例的第一方面是提供一种可通行性的识别方法,包括:设置多个模拟单元,每个所述模拟单元能够模拟运动对象的运动;记录多个所述模拟单元在模拟所述运动对象运动的过程中对预先生成的栅格地图中每个栅格的访问频率,得到访问频率信息;其中,所述栅格地图用于描述所述运动对象周围环境的信息;根据所述访问频率信息,确定所述运动对象周围环境的可通行性。
本发明实施例的第二方面是提供一种可通行性的识别***,包括:包括:存储器和处理器;所述存储器用于存储程序代码;所述处理器,调用所述程序代码,当程序代码被执行时,用于执行以下操作:设置多个模拟单元,每个所述模拟单元能够模拟运动对象的运动;记录多个所述模拟单元在模拟所述运动对象运动的过程中对预先生成的栅格地图中每个栅格的访问频率,得到访问频率信息;其中,所述栅格地图用于描述所述运动对象周围环境的信息;根据所述访问频率信息,确定所述运动对象周围环境的可通行性。
本发明实施例的第三方面是提供一种可移动平台,包括:
机身;
动力***,安装在所述机身,用于提供移动动力;
以及权利要求第一方面所述的方法。
本发明实施例的第四方面是提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现第一方面所述的方法。
本实施例提供的可通行性的识别方法、***、设备及计算机可读存储介质,通过设置多个模拟单元,每个模拟单元能够模拟运动对象的运动;记录多个模拟单元在模拟运动对象运动的过程中对预先生成的栅格地图中每个栅格的访问频率,得到访问频率信息;其中,栅格地图用于描述运动对象周围环境的信息;根据访问频率信息,确定运动对象周围环境的可通行性。由于设置的模拟单元能够模拟运动对象在地面上的运动过程,且模拟单元的模拟运动过程采用访问频率信息来表示,因此,可以直观地了解车辆在周围环境中的可通行性,从而为自动驾驶路径规划决策提供依据。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的应用场景示意图;
图2为本发明实施例提供的可通行性的识别方法的流程图;
图3为本发明实施例提供的模拟单元尺寸属性示意图;
图4为本发明实施例提供的预设步长示意图;
图5为本发明实施例提供的碰撞后反弹方向示意图;
图6为本发明实施例提供的邻域栅格示意图;
图7为本发明实施例提供的运动里程示意图;
图8为本发明另一实施例提供的可通行性的识别方法的流程图;
图9为现有技术中可通行性识别结果图。
图10为采用本发明实施例的方法得到的访问频率信息。
图11为采用本发明实施例的方法得到的可通行性识别结果图;
图12为本发明实施例提供的可通行性的识别***的结构图。
附图标记:
11:车辆; 12:服务器;
120:可通行性的识别***;
121:存储器; 122:处理器; 123:探测设备。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,当组件被称为“固定于”另一个组件,它可以直接在另一个组件上或者也可以存在居中的组件。当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中组件。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
本发明实施例提供一种可通行性的识别方法。本实施例所述的可通行性的识别方法可以应用于可移动平台,所述可移动平台设置有探测设备,所述探测设备用于探测所述可移动平台周围物体得到二维图像和三维点云。可选的,所述可移动平台包括:可移动机器人或车辆。
以可移动平台是车辆为例,该车辆可以是无人驾驶车辆,或者是搭载有高级辅助驾驶(Advanced Driver Assistance Systems,ADAS)***的车辆等。可以理解的是,可通行性的识别方法还可以应用于可移动机器人上,例如,搭载有获取其周围环境的信息的探测设备的可移动机器人。如图1所示,该应用场景包括至少一个车辆11,车辆11为搭载有探测设备的载体,该探测设备具体可以是双目立体相机、飞行时间测距法(Time of flight,TOF)相机和/或激光雷达。车辆11在行驶的过程中,探测设备实时探测车辆11周围环境得到二维图像和三维点云。其中,双目立体相机、飞行时间测距法(Time of flight,TOF)相机用于采集二维图像,激光雷达用于采集三维点云。可以理解,在其他实施例中,探测设备也可以是单目相机、毫米波雷达等,本实施例仅为示例性说明,在此不作限定。
本发明实施例提供一种可通行性的识别方法。图2为本发明实施例提供的可通行性的识别方法的流程图。如图2所示,本实施例中的方法,可以包括:
步骤S201、设置多个模拟单元,每个模拟单元能够模拟运动对象的运动。
本实施例中,运动对象可以是如图1所示的无人驾驶车辆。可选的,本实施例方法的执行主体可以是无人驾驶控制设备,该无人驾驶控制设备可以是对无人驾驶车辆进行无人驾驶控制的控制设备,具体地,可以是无人驾驶车辆的驾驶控制器。本实施例并不限定可通行性的识别方法的执行主体,该可通行性的识别方法可以由车载的处理器执行,也可以由车载的处理器之外的其他具有数据处理功能的设备执行,例如,如图1所示的服务器12,车辆11和服务器12可进行无线通信或有线通信,车辆11可以将二维图像和三维点云发送给服务器12,由服务器12执行该可通行性的识别方法。下面将以车辆为例说明本发明实施例提供的可通行性的识别方法。
其中,模拟单元能够模拟运动对象的运动是指模拟单元能够模拟无人驾驶车辆在地面上的运动。例如,模拟无人驾驶车辆在地面上朝着某一方向以某一速度和加速度行驶。
可选的,模拟单元可以是具有随机游走性能的粒子,通过对粒子赋予运动对象的属性,使粒子来模拟运动对象的运动。
本实施例中,模拟单元的数量可以根据控制设备的计算能力来设定,模拟单元在栅格地图中分散分布,模拟单元的数量以在模拟运动对象运动的过程中最大程度覆盖整个栅格地图为佳。
步骤S202、记录多个模拟单元在模拟运动对象运动的过程中对预先生成的栅格地图中每个栅格的访问频率,得到访问频率信息;其中,栅格地图用于描述运动对象周围环境的信息。
如图1所示,预先生成的栅格地图可以由无人驾驶车辆上的各个探测设备采集的信息融合得到。例如,双目立体相机和TOF相机对无人驾驶车辆周围环境信息进行采集得到二维图像,激光雷达对无人驾驶车辆周围环境信息进行采集得到三维点云,通过将二维图像和三维点云融合,可以得到无人驾驶车辆周围环境的环境地图。将环境地图按照预先设定的栅格大小划分后可以得到栅格地图,栅格地图中包括多个栅格。例如,按照0.2*0.2m的正方形大小划分环境地图,得到栅格大小为0.2*0.2m的栅格地图。
在一个具体的实施方式中,无人驾驶车辆在栅格地图中所处的位置设定为模拟单元的初始位置。在栅格地图中,以无人驾驶车辆的中心所处的位置为原点,重力方向的反方向为Z轴,车辆行驶方向的前方为X轴,车辆行驶方向的左方为Y轴建立栅格地图坐标系。所有模拟单元从上述设定的初始位置出发,在栅格地图中模拟无人驾驶车辆在地面上的运动。在模拟单元模拟运动对象运动的过程中,会经过栅格地图中的一些栅格,对一个栅格来说,每有一个模拟单元经过该栅格时,则该栅格的访问频率加1。在模拟单元模拟运动对象运动的过程结束时,栅格地图中每个栅格会对应有一个访问频率,从而形成访问频率信息。若一些栅格未被模拟单元访问过,则访问频率信息中该栅格的访问频率为初始访问频率。在一种实施例中,该访问频率信息可以为访问频率图,可以理解,在其他实施方式中,该访问频率信息也可以是其他合适的方式,例如,访问频率表、访问频率数值阵列等。
步骤S203、根据访问频率信息,确定运动对象周围环境的可通行性。
具体地,通过访问频率信息,可以了解所有模拟单元对栅格地图中各个栅格的访问情况,而每个栅格的访问频率与该栅格的可通行性大小正相关,因此,根据访问频率信息,可以确定运动对象周围环境的可通行性,或者可通行性的大小,从而作为自动驾驶提供路径规划决策的依据。
本实施例通过设置多个模拟单元,每个模拟单元能够模拟运动对象的运动;记录多个模拟单元在模拟运动对象运动的过程中对预先生成的栅格地图中每个栅格的访问频率,得到访问频率信息;其中,栅格地图用于描述运动对象周围环境的信息;根据访问频率信息,确定运动对象周围环境的可通行性。由于设置的模拟单元能够模拟运动对象在地面上的运动过程,且模拟单元的模拟运动过程采用访问频率信息来表示,因此,可以直观地了解车辆在周围环境中的可通行性,从而为自动驾驶路径规划决策提供依据。
具体的,设置多个模拟单元,包括:分别设置多个模拟单元具有运动对象的属性,运动对象的属性包括固有属性和运动属性。
可选的,固有属性至少包括尺寸属性。相应的,分别设置多个模拟单元具有运动对象的属性,至少包括:分别设置多个模拟单元具有尺寸属性。可选的,尺寸属性是指模拟单元的尺寸不小于运动对象的尺寸。相应的,分别设置多个模拟单元具有运动对象的属性,包括:分别设置多个模拟单元的尺寸为不小于运动对象的尺寸。本实施例中,运动对象的尺寸属性可以是无人驾驶车辆的宽度,即设置模拟单元的尺寸为不小于无人驾驶车辆的宽度。具体的,无人驾驶车辆的宽度是指无人驾驶车辆在栅格坐标系上Y方向上的最大距离。如图3所示,可以根据无人驾驶车辆上相对设置的两个面A、B之间的最大距离L来设置尺寸属性,当然,本领域技术人员也可以根据车辆上的其他参照物来设置模拟单元的尺寸属性,本实施例对此不做具体限定。通过本实施例,能够为模拟单元赋予运动对象的固有属性。可选的,不同模拟单元的尺寸可以设置为不同的大小,但需保证所有模拟单元的尺寸均不小于运动对象的尺寸。例如,将每个粒子的直径设置为不小于车辆宽度L。
可选的,运动属性包括初始运动速率、初始运动方向、初始运动能量、爬坡能力和通行代价中的至少一项。相应的,分别设置多个模拟单元具有运动对象的属性,包括:分别设置多个模拟单元具有初始运动速率、初始运动方向、初始运动能量、爬坡能力和通行代价中的至少一项。通过本实施例,能够为模拟单元赋予运动对象的运动属性,从而使模拟单元模拟运动对象的运动。具体的,所有模拟单元从上述设定的初始位置出发,在栅格地图中模拟无人驾驶车辆在地面上的运动,是指所有模拟单元从上述设定的初始位置出发,按照设定的初始运动速率和初始运动方向在栅格地图中运动,运动过程中会消耗一定的能量,当消耗的能量达到初始能量时,则该模拟单元停止进行模拟运动。爬坡能力是指模拟单元模拟运动对象在地面上爬坡时的能力。可选的,不同的模拟单元可以设置为不同的初始运动速率、初始运动方向、初始运动能量、爬坡能力和通行代价。
本实施例通过对模拟单元赋予自动驾驶车辆的固有属性和运动属性,从而使得每个模拟单元具有相应的通行能力,超出模拟单元通行能力的区域,模拟单元不会到达,因此,能够很好地模拟运动对象的运动。即通过设置模拟单元的同有属性和运动属性,来模拟车辆的行驶限制和通过能力,确保车辆不可达的区域,模拟单元不会到达,最终得到栅格地图中每个栅格的可通行性描述,对于某个区域的可通行性,不仅依赖于其区域本身的通行性,还依赖于车辆所处位置到达此处的通行代价,通行代价越高代表该区域的可通行性越低。
可选的,在模拟单元模拟运动对象的运动之前,即模拟单元的初始状态下,预先生成的栅格地图中每个栅格的访问频率为0,当然,每个栅格的访问频率也可以设置为非0的其他初始数值,本发明对此不做具体限定。
相应的,记录多个模拟单元模拟运动对象运动的过程中对预先生成的栅格地图中每个栅格的访问频率,得到访问频率信息,包括:当模拟单元以运动对象在栅格地图中的位置为初始位置,并基于运动属性每运动预设步长时,更新模拟单元当前所处位置对应的栅格的访问频率;当更新次数达到预设的最大迭代次数,得到访问频率信息。
可选的,当模拟单元以运动对象在栅格地图中的位置为初始位置,并基于运动属性每运动预设步长时,更新模拟单元当前所处位置对应的栅格的访问频率,包括:当模拟单元以运动对象在栅格地图中的位置为初始位置,并基于运动属性每运动预设步长时,在预先生成的栅格地图上标记模拟单元当前所处位置对应的栅格,并将模拟单元当前所处位置对应的栅格的访问频率加1。
本实施例中,是对所有模拟单元预先设置一预设步长,使所有模拟单元按照该预设步长在栅格地图中进行运动,当模拟单元每运动一个预设步长时,认为该模拟单元进行了一次迭代运动,则更新一次模拟单元当前所处位置对应的栅格的访问频率。例如,在一次迭代运动之前,某一个栅格S1的访问频率为X1,则在所有模拟单元进行了一次迭代运动之后,有X2个模拟单元都运动至栅格S1,则该栅格S1的访问频率为X1+X2。其中,预设步长是指模拟单元进行一次迭代运动的位移,由于每个模拟单元具有初始运动速度和初始运动方向,因此,可以采用模拟单元进行一次迭代运动所需要的运动时间δt来表示预设步长,即预设步长=初始运动速度*δt。如图4所示,假设模拟单元在进行一次迭代运动之前所处的位置坐标(例如粒子的圆心坐标)为A0,进行一次迭代运动后所处的位置坐标(粒子的圆心坐标)变为了A1,则A0与A1两个点之间的位移A1A0为预设步长。当然,本发明实施例也可以根据粒子的其他位置坐标来确定预设步长,例如,粒子的圆周上某一个点的位置坐标。
可选的,更新次数与模拟单元的迭代次数可以设置为不相等,例如更新次数大于模拟单元的最大迭代次数。
可选的,模拟单元的尺寸不小于单个栅格的尺寸;模拟单元当前所处位置对应的栅格是指模拟单元在当前所处位置处覆盖的栅格。由于模拟单元的尺寸不小于单个栅格的尺寸,因此,模拟单元运动至某一个栅格时,会将该栅格覆盖,而每个模拟单元每迭代运动一次,就会更新一次该模拟单元的位置坐标,若更新的位置坐标位于某一个栅格内,则认为该栅格是该模拟单元当前所处位置对应的栅格。可选的,模拟单元的位置坐标可以取模拟单元的中心点位置坐标。
本发明实施例中,由于模拟单元具有预先设定的尺寸属性,模拟单元的尺寸不小于车宽,因此对于车辆无法通过的连通区域,模拟单元在运动时也会受到相同的影响而无法通过,由此可以避免连通域方法导致的由于通过尺寸产生的实际无法到达的可行驶区域。
可选的,当模拟单元以运动对象在栅格地图中的位置为初始位置,并基于运动属性每运动预设步长时,更新模拟单元当前所处位置对应的栅格的访问频率之后,本实施例的方法还包括:当运动对象的运动满足预设条件时,更新模拟单元的状态信息,其中,状态信息由通行代价表示。
在一种实施方式中,通行代价包括碰撞代价;则当运动对象的运动满足预设条件时,更新模拟单元的状态信息,包括:当模拟单元当前所处位置对应的栅格存在障碍物栅格或者模拟单元当前所处位置的位置坐标与栅格地图的边缘的位置坐标相同时,更新模拟单元的运动方向为反弹方向,并计算模拟单元的碰撞代价。具体的,若模拟单元当前所处位置对应的栅格存在障碍物或者模拟单元当前所处位置的位置坐标与栅格地图的边缘的位置坐标相同,则认为该模拟单元发生碰撞,发生碰撞后,会产生碰撞代价。可选的,每一次的碰撞所产生的碰撞代价可以设置为一常数。进一步的,还可以设置模拟单元当前所处位置对应的栅格存在障碍物的情况下,和模拟单元当前所处位置的位置坐标与栅格地图的边缘的位置坐标相同的情况下产生的单次碰撞代价为不同值。
可选的,判断模拟单元当前所处位置对应的栅格是否存在障碍物栅格时,可以通过栅格地图的局部坡度是否大于最大爬坡能力来判断,即若栅格地图的局部坡度大于或等于最大爬坡能力,则认为模拟单元当前所处位置对应的栅格存在障碍物栅格,若栅格地图的局部坡度小于最大爬坡能力,认为模拟单元当前所处位置对应的栅格不存在障碍物栅格。
具体的,对于模拟单元的运动方向更新为反弹方向,如图5所示,图中圆形代表模拟单元,V1箭头所指方向为模拟单元发生碰撞前的运动方向,OC点处的小方块代表不可通行区域,OC位置处模拟单元的切线为L,当模拟单元在不可通行区域的OC点处发生碰撞时,反弹方向为模拟单元发生碰撞前的运动方向V1关于切线L的镜像向量V2箭头所指方向。
在另一种实施方式中,通行代价包括爬坡代价;当运动对象的运动满足预设条件时,更新模拟单元的状态信息,包括:当模拟单元当前所处位置对应的栅格的局部坡度在模拟单元的运动方向上的投影超过预设的最大坡度时,则更新模拟单元的运动方向为反弹方向,并计算模拟单元的碰撞代价;当模拟单元当前所处位置对应的栅格的局部坡度在模拟单元的运动方向上的投影未超过预设的最大坡度时,则计算模拟单元的爬坡代价,其中,预设的最大坡度可以是初始状态下设定的爬坡能力。可选的,爬坡代价与局部坡度成比例。具体的,局部坡度是指栅格地图的局部法向量与地面法向量的夹角的正切值。如图6所示,假设模拟单元当前所处位置对应的栅格为S23,则选取栅格S23邻域内的4个栅格或者8个栅格作为其邻域栅格,本实施例以8邻域为例进行说明,假设栅格S23的8邻域栅格分别为S12、S13、S14、S22、S24、S32、S33、S34,则栅格S23的局部坡度是指栅格S12、S13、S14、S22、S24、S32、S33、S34与栅格S23所形成的局部拟合面的法向量与地面法向量之间夹角α的tanα值。本实施方式中对于碰撞代价的计算可以参见前一实施方式中关于碰撞代价的计算过程,本实施例在此不再赘述。
在前述两种实施方式中,计算模拟单元的碰撞代价,包括:在模拟单元的当前碰撞代价的基础上增加预设的单次碰撞代价。例如,模拟单元的当前碰撞代价为P1,单次碰撞代价为P0,则在发生一次碰撞后,模拟单元的碰撞代价为P1+P0。
在又一种实施方式中,通行代价包括运动代价;当模拟单元以运动对象在栅格地图中的位置为初始位置,并基于运动属性每运动预设步长时,更新模拟单元当前所处位置对应的栅格的访问频率之后,本发明实施例方法还包括:计算模拟单元的运动里程;基于运动里程计算运动代价。在本实施例中,如图7所示,假设模拟单元从位置a处运动至位置b再运动至位置c处,则模拟单元的运动里程是指位置a与位置b之间的距离加上位置b与位置c之间的距离,模拟单元的运动里程为L1+L2,其中,L1是指位置a与位置b之间的路径长度,L2是指位置b与位置c之间的路径长度。
可选的,当运动对象的运动满足预设条件时,更新模拟单元的状态信息,包括:当模拟单元的运动里程达到预设的运动里程,且经过的栅格均不存在障碍物时,将模拟单元***为多个子模拟单元,并使多个子模拟单元沿随机运动方向继续运动。例如,若某一个模拟单元的运动里程累积达到了预设的运动里程,并且在此之前,该模拟单元经过了N个栅格,且这N个栅格均不存在障碍物或者该模拟单元在运动过程中一直未发生碰撞时,则认为这N个栅格对应的区域为空旷区域,通过将该模拟单元***为多个子模拟单元,并使多个子模拟单元沿随机运动方向继续运动,可以加快空旷区域的搜索效率,提高空旷区域的覆盖度。
可选的,当运动对象的运动满足预设条件时,更新模拟单元的状态信息,包括:计算模拟单元的累计通行代价;当模拟单元的累计通行代价超出初始能量时,模拟单元停止运动。
可选的,计算模拟单元的累计通行代价,包括:当模拟单元基于运动属性每运动预设步长,计算模拟单元的通行代价;从当前次运动向前,将所有次运动的通行代价累加,得到累计通行代价。其中,通行代价包括碰撞代价、爬坡代价和运动代价中的至少一种。
在本实施例中,若通行代价包括碰撞代价、爬坡代价和运动代价,则累计通行代价是指累计碰撞代价、累计爬坡代价和累计运动代价的累加值,累计碰撞代价、累计爬坡代价和累计运动代价分别记为PM、GM、SPM;假设模拟单元迭代运动了M次,则M次的累计通行代价为GTM=PM+GM+SPM;若M次的累计通行代价GTM超出初始能量时,则认为该模拟单元的初始能量已消耗完,不再参与后续的迭代运动。
本发明实施例通过采用粒子随机运动来探索栅格地图中的区域,具有随机运动方向和速度的粒子从车辆所在位置出发,栅格地图中的地形特征(障碍物碰撞,坡度,粒子驶过距离)会对粒子作用一定的通行代价,每个粒子具有一定的初始能量抵抗外部的通行代价。
对于单个粒子而言,若到达某一区域的通行代价高,就有可能在到达该区域之前耗尽设定初始能量,而不能到达,在访问频率信息上来看,可以到达该区域的粒子数量就较少,反之对于通行代价较低的区域,则有更多的粒子可以到达,最终,用粒子对某个区域的通行频率来计算该区域的可通行性。
可选的,根据访问频率信息,确定运动对象周围环境的可通行性,包括:在访问频率信息中,标记栅格的可通行性和/或可通行概率。
可选的,在访问频率信息中,标记栅格的可通行性和/或可通行概率,包括:将访问频率信息中访问频率大于第一预设访问频率的栅格,标记为能够通行,和/或标记通行概率大于第一预设概率阈值;将访问频率信息中访问频率小于第二预设访问频率的栅格,标记为不可通行,和/或通行概率小于第二预设概率阈值;将访问频率信息中访问频率大于或等于第二预设访问频率且小于或等于第一预设访问频率的栅格,标记为可通行和/或计算得到的通行概率,其中,第一预设概率阈值可以设置为小于100%,例如大于或等于50%且小于100%;第二预设阈值可以设置为大于0,例如大于0且小于10%,且第一预设概率阈值大于第二预设概率阈值。若通行概率大于第一预设概率阈值,则认为该栅格可通行,可通行的通行概率最大可达到100%;若通行概率小于第二预设概率阈值,则认为该栅格不可通行,不可通行的通行概率最低可达到0。可选的,还可以将通行概率大于或等于第二预设概率阈值且小于或等于第一预设概率阈值的栅格标记为可能能够通行。对于可能能够通行的栅格可以给出具体的通行概率。
可选的,通行概率是根据栅格的访问频率、第一预设访问频率以及第二预设访问频率计算得到。具体的,可以根据如下公式计算得到:
式(1)中,Pprobfree为通行概率;f为更新结束后,栅格的访问频率;THnon-free为第二预设访问频率,THfree为第一预设访问频率。
当然,本发明实施例还可以设置一个概率阈值,将大于或等于概率阈值的栅格标记为可通行,小于概率阈值的栅格标记为不可通行。
图8是本发明实施例提供的另一种可通行性的识别方法的流程图。如图8所示,在记录多个模拟单元模拟运动对象运动的过程中对预先生成的栅格地图中每个栅格的访问频率,得到访问频率信息之前,本发明实施例的方法还包括如下步骤:
步骤S801、获取2.5D栅格地图。
如图1所示,可以根据车辆上搭载的探测设备采集的二维图像和三维点云融合得到描述自动驾驶车辆周围环境的2.5D栅格地图,该2.5D栅格地图的长度和宽度方向分别以等分辨率的栅格来描述水平面,栅格内的高度为栅格对应位置的最大高度值。栅格对应位置是指以自动驾驶车辆为原点,对应于现实位置的栅格,记栅格位置坐标为(Px,Py),
式(2)中,x
res为2.5D栅格地图在长度方向上的分辨率;x为车辆周围环境信息在车辆坐标系下x轴上的位置坐标,单位为物理长度,可以是以米为单位;
表示对
取整;
式(3)中,y
res为2.5D栅格地图在宽度方向上的分辨率;y为车辆周围环境信息在车辆坐标系下y轴上的位置坐标,单位为物理长度,可以是以米为单位;
表示对
取整。
步骤S802、对2.5D栅格地图中的每个栅格,计算该栅格及对应的邻域栅格的栅格高度。
具体的,可以是对2.5D栅格地图中的每个栅格,计算该栅格及对应的4个邻域栅格的栅格高度,或者8个邻域栅格的栅格高度。栅格高度是指栅格的对地高度,即相对于地面的高度。
步骤S803、基于栅格及对应的邻域栅格的栅格高度,确定栅格的特征信息,其中,特征信息至少包括最大栅格高度、最小栅格高度、栅格高度平均值以及局部坡度。
具体的,是在4个邻域栅格的栅格高度,或者8个邻域栅格的栅格高度中确定最大栅格高度、最小栅格高度、栅格高度平均值以及局部坡度,并将其绑定至该栅格,作为该栅格的特征信息。
步骤S804、基于特征信息判断栅格是否为可通行栅格,得到栅格地图。
具体的,可以通过判断最大栅格高度与最小栅格高度的高度差值是否小于可通行阈值,局部高度值的方差是否小于可通行阈值,局部坡度是否小于爬坡能力中至少一项,来判断该栅格是否为可通行栅格,从而得到上述实施例的栅格地图,在此栅格地图的基础上,还可以进一步得到访问频率信息。
下面通过实验数据的比对,来对本发明实施例的有益效果进行说明:
图9为现有技术中可通行性识别结果图。
图10为采用本发明实施例的方法得到的访问频率信息,其中,该访问频率信息为访问频率图的形式。
图11为采用本发明实施例的方法得到的可通行性识别结果图。
图9、图10和图11是对同一环境进行可通行性识别。如图9所示,图中灰色区域代表识别出来的可通行区域,可以看到,图中左边方框内长条形状的窄带区域R,其虽然被识别为可通行区域,然而由于自动驾驶车辆的宽度大于该窄带区域,因此,自动驾驶车辆仍然无法通过,故此部分区域R实际上属于不可通行区域。图中右边方框内较宽的区域W,虽然宽度大于车辆宽度,但是W下方的区域较窄,因此,车辆实际上也无法到达W区域,W区域实际上也属于不可通行区域。
如图10、图11所示,图中颜色较浅区域为识别出来的可通行区域,颜色越浅,代表可通行性越高,反之,颜色越深,代表可通行性越低。从图10、图11中可以看到,图9中的R区域和W区域对应的栅格,模拟单元不会访问,因此,本发明实施例的方法能够提高可通行性的识别精度。
本发明实施例提供一种可通行性的识别***。图12为本发明实施例提供的可通行性的识别***的结构图,如图12所示,可通行性的识别***120包括:存储器121、处理器122和探测设备123;所述探测设备用于探测可移动平台周围环境信息得到二维图像和三维点云;所述存储器121用于存储程序代码;所述处理器122,调用所述程序代码,当程序代码被执行时,用于执行以下操作:基于所述二维图像和所述三维点云进行融合,得到栅格地图;设置多个模拟单元,每个所述模拟单元能够模拟运动对象的运动;记录多个所述模拟单元模拟所述运动对象运动的过程中对预先生成的栅格地图中每个栅格的访问频率,得到访问频率信息;其中,所述栅格地图用于描述所述运动对象周围环境的信息;根据所述访问频率信息,确定所述运动对象周围环境的可通行性。
可选的,所述处理器122在设置多个模拟单元时,具体用于:分别设置多个所述模拟单元具有所述运动对象的属性,所述运动对象的属性包括固有属性和运动属性。
可选的,固有属性至少包括尺寸属性;所述处理器122在分别设置多个所述模拟单元具有所述运动对象的属性时,至少用于:分别设置多个所述模拟单元具有所述尺寸属性。
可选的,尺寸属性是指所述模拟单元的尺寸不小于所述运动对象的尺寸;所述处理器122在分别设置多个所述模拟单元具有所述运动对象的属性时,具体用于:分别设置多个所述模拟单元的尺寸为不小于所述运动对象的尺寸。
可选的,所述运动属性包括初始运动速率、初始运动方向、初始运动能量、爬坡能力和通行代价中的至少一项;所述处理器122在分别设置多个所述模拟单元具有所述运动对象的属性时,具体用于:分别设置所述多个所述模拟单元具有所述初始运动速率、所述初始运动方向、所述初始运动能量、所述爬坡能力和所述通行代价中的至少一项。
可选的,在所述模拟单元模拟所述运动对象的运动之前,所述预先生成的栅格地图中每个所述栅格的所述访问频率为0;所述处理器122在记录多个所述模拟单元模拟所述运动对象运动的过程中对预先生成的栅格地图中每个栅格的访问频率,得到访问频率信息时,具体用于:当所述模拟单元以所述运动对象在所述栅格地图中的位置为初始位置,并基于所述运动属性每运动预设步长时,更新所述模拟单元当前所处位置对应的栅格的访问频率;当更新次数达到预设的最大迭代次数,得到所述访问频率信息。
可选的,所述处理器122在当所述模拟单元以所述运动对象在所述栅格地图中的位置为初始位置,并基于所述运动属性每运动预设步长时,更新所述模拟单元当前所处位置对应的栅格的访问频率时,具体用于:当所述模拟单元以所述运动对象在所述栅格地图中的位置为初始位置,并基于所述运动属性每运动预设步长时,在所述预先生成的栅格地图上标记所述模拟单元当前所处位置对应的所述栅格,并将所述模拟单元当前所处位置对应的所述栅格的所述访问频率加1。
可选的,所述模拟单元的尺寸不小于单个所述栅格的尺寸;所述模拟单元当前所处位置对应的所述栅格是指所述模拟单元在所述当前所处位置处覆盖的栅格。
可选的,所述处理器122在当所述模拟单元以所述运动对象在所述栅格地图中的位置为初始位置,并基于所述运动属性每运动预设步长时,更新所述模拟单元当前所处位置对应的栅格的访问频率之后,还用于:当所述运动对象的运动满足预设条件时,更新所述模拟单元的状态信息,所述状态信息由所述通行代价表示。
可选的,所述通行代价包括碰撞代价;所述处理器122在当所述运动对象的运动满足预设条件时,更新所述模拟单元的状态信息时,具体用于:当所述模拟单元当前所处位置对应的栅格存在障碍物栅格或者所述模拟单元当前所处位置的位置坐标与所述栅格地图的边缘的位置坐标相同时,更新所述模拟单元的运动方向为反弹方向,并计算所述模拟单元的所述碰撞代价。
可选的,所述通行代价包括爬坡代价;所述处理器122在当所述运动对象的运动满足预设条件时,更新所述模拟单元的状态信息时,具体用于:当所述模拟单元当前所处位置对应的栅格的局部坡度在所述模拟单元的运动方向上的投影超过预设的最大坡度时,则更新所述模拟单元的运动方向为反弹方向,并计算所述模拟单元的碰撞代价;当所述模拟单元当前所处位置对应的栅格的局部坡度在所述模拟单元的运动方向上的投影未超过预设的最大坡度时,则计算所述模拟单元的爬坡代价。
可选的,所述处理器122在计算所述模拟单元的碰撞代价时,具体用于:在所述模拟单元的当前碰撞代价的基础上增加预设的单次碰撞代价。
可选的,所述爬坡代价与所述坡度成比例。
可选的,所述通行代价包括运动代价;所述处理器122在当所述模拟单元以所述运动对象在所述栅格地图中的位置为初始位置,并基于所述运动属性每运动预设步长时,更新所述模拟单元当前所处位置对应的栅格的访问频率之后,还用于:计算所述模拟单元的运动里程;基于所述运动里程计算运动代价。
可选的,所述处理器122在当所述运动对象的运动满足预设条件时,更新所述模拟单元的状态信息时,具体用于:当所述模拟单元的运动里程达到预设的运动里程,且标记的栅格均不存在障碍物栅格时,将所述模拟单元***为多个子模拟单元,并使多个所述子模拟单元沿随机运动方向继续运动。
可选的,所述处理器122在当所述运动对象的运动满足预设条件时,更新所述模拟单元的状态信息时,具体用于:计算所述模拟单元的累计通行代价;当所述模拟单元的累计通行代价超出所述初始能量时,所述模拟单元停止运动。
可选的,所述处理器122在计算所述模拟单元的累计通行代价时,具体用于:当所述模拟单元基于所述运动属性每运动预设步长,计算所述模拟单元的所述通行代价;从当前次运动向前,将所有次运动的所述通行代价累加,得到所述累计通行代价。
可选的,所述通行代价包括碰撞代价、爬坡代价和运动代价中的至少一种。
可选的,所述处理器122在根据所述访问频率信息,确定所述运动对象周围环境的可通行性时,具体用于:在所述访问频率信息中,标记所述栅格的可通行性和/或可通行概率。
可选的,所述处理器122在所述访问频率信息中,标记所述栅格的可通行性和/或可通行概率时,具体用于:将所述访问频率信息中访问频率大于第一预设访问频率的栅格,标记为能够通行,和/或标记通行概率大于第一预设概率阈值;将所述访问频率信息中访问频率小于第二预设访问频率的栅格,标记为不可通行,和/或通行概率小于第二预设概率阈值;将所述访问频率信息中访问频率大于或等于所述第二预设访问频率且小于或等于所述第一预设访问频率的栅格,标记为可通行和/或计算得到的通行概率,其中,所述第一预设概率阈值大于所述第二预设概率阈值。
可选的,所述通行概率是根据所述栅格的访问频率、所述第一预设访问频率以及所述第二预设访问频率计算得到。
可选的,所述运动对象为可移动机器人或车辆,具体的,车辆可以是无人驾驶车辆或搭载有ADAS***的车辆等。
可选的,所述模拟单元为具有随机游走性能的粒子。
可选的,所述处理器122在记录多个所述模拟单元模拟所述运动对象运动的过程中对预先生成的栅格地图中每个栅格的访问频率,得到访问频率信息之前,还用于:获取2.5D栅格地图;对所述2.5D栅格地图中的每个栅格,计算所述栅格及对应的邻域栅格的栅格高度;基于所述栅格及对应的邻域栅格的栅格高度,确定所述栅格的特征信息,所述特征信息至少包括最大栅格高度、最小栅格高度、栅格高度平均值以及局部坡度;基于所述特征信息判断所述栅格是否为可通行栅格,得到所述预先生成的栅格地图。
本发明实施例提供的可通行性的识别***的具体原理和实现方式均与上述实施例类似,此处不再赘述。
本实施例通过设置多个模拟单元,每个模拟单元能够模拟运动对象的运动;记录多个模拟单元在模拟运动对象运动的过程中对预先生成的栅格地图中每个栅格的访问频率,得到访问频率信息;其中,栅格地图用于描述运动对象周围环境的信息;根据访问频率信息,确定运动对象周围环境的可通行性。由于设置的模拟单元能够模拟运动对象在地面上的运动过程,且模拟单元的模拟运动过程采用访问频率信息来表示,因此,可以直观地了解车辆在周围环境中的可通行性,从而为自动驾驶路径规划决策提供依据。
本发明实施例提供一种可移动平台。该可移动平台包括:机身、动力***和上述实施例所述的可通行性的识别***;其中,动力***安装在所述机身,用于提供移动动力。可通行性的识别***的具体实现方式和原理与上述实施例均一致,此处不再赘述。可选的,所述可移动平台包括:可移动机器人或车辆。当可移动平台为车辆时,所述机身可以包括车辆的车身、底盘等承载部分。当可通行性的识别***为一个单独的设备时,其可以以前装或后装的形式集成于所述可移动平台例如车辆上;当所述可通行性识别***为分布式的***时,其各个部分如探测设备、处理器和存储器等可各自安装在可移动平台的相同或不同的位置。
另外,本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的可通行性的识别方法。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。