CN114820973A - 代价地图生成方法、装置、计算机设备和存储介质 - Google Patents
代价地图生成方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN114820973A CN114820973A CN202210589410.9A CN202210589410A CN114820973A CN 114820973 A CN114820973 A CN 114820973A CN 202210589410 A CN202210589410 A CN 202210589410A CN 114820973 A CN114820973 A CN 114820973A
- Authority
- CN
- China
- Prior art keywords
- grid
- map
- current
- cost
- current frame
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000004590 computer program Methods 0.000 claims abstract description 40
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 33
- 230000006870 function Effects 0.000 claims description 51
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 230000003247 decreasing effect Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 abstract description 15
- 230000008447 perception Effects 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000001514 detection method Methods 0.000 description 5
- 238000009434 installation Methods 0.000 description 5
- 230000004927 fusion Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/08—Projecting images onto non-planar surfaces, e.g. geodetic screens
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration using two or more images, e.g. averaging or subtraction
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Remote Sensing (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Image Processing (AREA)
Abstract
本申请涉及一种代价地图生成方法、装置、存储介质和计算机程序产品。方法应用于机器人,机器人上安装有至少两个传感器,方法包括:将机器人的当前位置和至少两个传感器中每一传感器获取的当前帧点云数据投影至对应的当前帧栅格图中,以更新当前帧栅格图中每一栅格的栅格状态;根据每一当前帧栅格图中每一栅格的栅格状态以及预设遗忘处理算法,确定每一传感器对应的当前代价地图;根据每一传感器对应的当前代价地图,确定输出代价地图。通过使用遗忘曲线来处理机器人在传感器盲区的栅格状态,进而得到机器人的输出代价地图,借鉴人类的艾宾浩斯遗忘曲线生成代价地图,使得机器人以更符合人类感知的方式处理感知盲区的问题,增加了机器人的感知区域。
Description
技术领域
本申请涉及环境地图建模技术领域,特别是涉及一种代价地图生成方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
机器人在导航过程中,一般需要利用代价地图来辅助进行导航规划,目前代价地图的生成方式主要依靠建图时生成的固定障碍物地图而形成,由于环境的易变性,导致其代价地图的准确度不高。
发明内容
基于此,有必要针对上述技术问题,提供一种能够准确度更高的代价地图生成方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种代价地图生成方法。所述方法应用于机器人,所述机器人上安装至少两个传感器,所述方法包括:
将机器人的当前位置和至少两个传感器中每一传感器获取的当前帧点云数据投影至对应的当前帧栅格图中,以更新当前帧栅格图中每一栅格的栅格状态;
根据每一当前帧栅格图中每一栅格的栅格状态以及预设遗忘处理算法,确定每一传感器对应的当前代价地图;
根据每一传感器对应的当前代价地图,确定输出代价地图。
在其中一个实施例中,栅格状态包括占有、空闲和未知;将机器人的当前位置和至少两个传感器中每一传感器获取的当前帧点云数据投影至对应的当前帧栅格图中,以更新当前帧栅格图中每一栅格的栅格状态,包括:
根据机器人的当前位置和每一传感器获取的当前帧点云数据进行坐标转换,确定机器人的当前位置和点云数据在当前帧栅格图中的投影位置;
对于当前帧栅格图中的任一栅格,若任一栅格中存在投影的点云数据,则任一栅格的栅格状态设为占有;
根据机器人的当前位置在当前帧栅格图中的投影结果和栅格状态为占有的栅格,确定当前帧栅格图中栅格状态为空闲和未知的栅格。
在其中一个实施例中,根据机器人的当前位置在当前帧栅格图中的投影结果和栅格状态为占有的栅格,确定当前帧栅格中栅格状态为空闲和未知的栅格,包括:
以机器人的当前位置在当前帧栅格图中的投影位置为起点,向四周发射射线;
对于经过栅格状态为占有的栅格的任一射线,将任一射线在所经过的栅格状态为占有的栅格与当前时刻机器人在对应的当前帧栅格图中的位置之间所经过的所有栅格的栅格状态设置为空闲;
将当前帧栅格图中除栅格状态为占有和空闲的栅格的栅格状态设置为未知。
在其中一个实施例中,栅格状态包括占有、空闲和未知;根据每一当前帧栅格图中每一栅格的栅格状态以及预设遗忘处理算法,确定每一传感器对应的当前代价地图,包括:
若当前帧栅格图中的栅格状态为占有,则将当前代价地图中对应的栅格的代价值设置为1,若当前帧栅格图中的栅格状态为空闲,则将当前代价地图中对应的栅格的代价值设置为0;
若当前帧栅格图中的栅格状态为未知,则确定栅格状态为未知的栅格在上一代价地图中对应的目标栅格,上一代价地图为基于传感器获取的上一帧点云数据投影至对应的上一帧栅格图所输出的代价地图;
获取目标栅格在上一代价地图中的目标代价值,根据预设遗忘处理算法和目标代价值,确定栅格状态为未知的栅格在传感器对应的当前代价地图中的代价值。
在其中一个实施例中,获取目标栅格在上一代价地图中的目标代价值,根据预设遗忘处理算法和目标代价值,确定栅格状态为未知的栅格在传感器对应的当前代价地图中的代价值,包括:
若目标栅格在上一代价地图中的代价值大于预设阈值,则根据第一函数,计算目标栅格在传感器对应的当前代价地图中的代价值,第一函数是以当前时刻为自变量的递减函数;
若目标栅格在上一代价地图中的代价值小于预设阈值,则根据第二函数,计算目标栅格在传感器对应的当前代价地图中的代价值,第二函数是以当前时刻为自变量的递增函数;
若目标栅格在上一代价地图中的代价值等于预设阈值,则将目标栅格在传感器对应的当前代价地图中的代价值设置为预设常量。
在其中一个实施例中,根据每一传感器对应的当前代价地图,确定输出代价地图,包括:
对输出代价地图中的任一栅格,确定任一栅格在每一传感器对应的当前代价地图中的每一代价值;
将每一代价值中的最大值,作为输出代价地图中的任一栅格对应的栅格值。
第二方面,本申请还提供了一种代价地图生成装置。装置包括:
第一确定模块,用于将机器人的当前位置和至少两个传感器中每一传感器获取的当前帧点云数据投影至对应的当前帧栅格图中,以更新当前帧栅格图中每一栅格的栅格状态;
第二确定模块,用于根据每一当前帧栅格图中每一栅格的栅格状态以及预设遗忘处理算法,确定每一传感器对应的当前代价地图;
第三确定模块,用于根据每一传感器对应的当前代价地图,确定输出代价地图。
第三方面,本申请还提供一种机器人,机器人包括存储器和处理器,存储器存储有计算机程序,其特征在于,处理器执行计算机程序时实现以下步骤:
将机器人的当前位置和至少两个传感器中每一传感器获取的当前帧点云数据投影至对应的当前帧栅格图中,以更新当前帧栅格图中每一栅格的栅格状态;
根据每一当前帧栅格图中每一栅格的栅格状态以及预设遗忘处理算法,确定每一传感器对应的当前代价地图;
根据每一传感器对应的当前代价地图,确定输出代价地图。
在其中一个实施例中,栅格状态包括占有、空闲和未知;相应地,处理器执行计算机程序时还实现以下步骤:
若当前帧栅格图中的栅格状态为占有,则将当前代价地图中对应的栅格的代价值设置为1,若当前帧栅格图中的栅格状态为空闲,则将当前代价地图中对应的栅格的代价值设置为0;
若当前帧栅格图中的栅格状态为未知,则确定栅格状态为未知的栅格在上一代价地图中对应的目标栅格,上一代价地图为基于传感器获取的上一帧点云数据投影至对应的上一帧栅格图所输出的代价地图;
获取目标栅格在上一代价地图中的目标代价值,根据预设遗忘处理算法和目标代价值,确定栅格状态为未知的栅格在传感器对应的当前代价地图中的代价值。
第四方面,本申请还提供了一种计算机可读存储介质。计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
将机器人的当前位置和至少两个传感器中每一传感器获取的当前帧点云数据投影至对应的当前帧栅格图中,以更新当前帧栅格图中每一栅格的栅格状态;
根据每一当前帧栅格图中每一栅格的栅格状态以及预设遗忘处理算法,确定每一传感器对应的当前代价地图;
根据每一传感器对应的当前代价地图,确定输出代价地图。
第五方面,本申请还提供了一种计算机程序产品。计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
将机器人的当前位置和至少两个传感器中每一传感器获取的当前帧点云数据投影至对应的当前帧栅格图中,以更新当前帧栅格图中每一栅格的栅格状态;
根据每一当前帧栅格图中每一栅格的栅格状态以及预设遗忘处理算法,确定每一传感器对应的当前代价地图;
根据每一传感器对应的当前代价地图,确定输出代价地图。
上述代价地图生成方法、装置、计算机设备、存储介质和计算机程序产品,包括:将机器人的当前位置和至少两个传感器中每一传感器获取的当前帧点云数据投影至对应的当前帧栅格图中,以更新当前帧栅格图中每一栅格的栅格状态;根据每一当前帧栅格图中每一栅格的栅格状态以及预设遗忘处理算法,确定每一传感器对应的当前代价地图;根据每一传感器对应的当前代价地图,确定输出代价地图。通过使用遗忘曲线来处理机器人在传感器盲区的栅格状态,在各传感器图层完成更新后融合各图层,结合历史数据确定机器人当前的代价地图,借鉴人类的艾宾浩斯遗忘曲线生成代价地图,使得机器人以更符合人类感知的方式处理感知盲区的问题,在不影响成本和数据处理效率的情况下,增加了机器人的感知区域。且一方面,融合了至少两个传感器生成的当前代价地图生成输出代价地图,有效的提高了传感器信息的多元性,进而提高了代价地图的准确性,另一方面结合了当前帧点云数据,使得具有更好的实时性,从而减少环境变化带来的影响,从而提高准确性。
附图说明
图1为一个实施例中代价地图生成方法的流程示意图;
图2为另一个实施例中代价地图生成方法的流程示意图;
图3为一个实施例中代价地图生成过程中一条射线示意图;
图4为一个实施例中栅格图局部示意图;
图5为又一个实施例中代价地图生成方法的流程示意图;
图6为一个实施例中遗忘曲线函数图;
图7为一个实施例中代价地图生成装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
机器人的传感器用于感知外界环境,为机器人提供导航数据。对于机器人来说,希望看得越宽越好,比如机器人转弯的时候,由于传感器视野有限,只看到前方,两侧看不到,这时候两侧就是盲区,在转弯的时候就需要获取两侧的盲区的代价地图。代价地图(Costmap)是机器人收集传感器信息建立和更新的二维或三维地图,是根据若干图层构建得到的带有代价值的地图,一般采用网格的形式,也即栅格图,每一栅格的栅格值处于一定范围内,以栅格值的大小代表栅格的三种状态:被占用(有障碍物)、自由区域(无障碍)和未知区域。对于传感器盲区的代价地图,一般通过增加机器人上安装的传感器的数量解决,但会增加传感器成本;或通过机器人进行转动进而获取两侧盲区的代价地图,但是获取到的代价地图只是当前检测的状态,且行走、转动检测、再行走的工作过程会影响机器人的效率。
为解决上述技术问题,在一个实施例中,如图1所示,提供一种代价地图生成方法,方法应用于机器人,机器人上安装有至少两个传感器,包括:
步骤102,将机器人的当前位置和至少两个传感器中每一传感器获取的当前帧点云数据投影至对应的当前帧栅格图中,以更新当前帧栅格图中每一栅格的栅格状态;
其中,点云数据是以传感器为原点的三维坐标系中的一组向量的集合,以激光雷达为例,激光雷达以发射的激光扫描周围环境,以点的形式代表环境中物体的外表轮廓,每一个点包含有三维坐标,有些可能还包括颜色信息或反射强度信息。由此可知,点云数据是三维数据,而在本方案中提及的代价地图是二维平面图像,故需要将点云数据通过投影的方式,投影到栅格图中进而确定代价地图。
栅格图,也称栅格地图,是指在空间和亮度上都已经离散化了的图像。栅格地图把环境划分为一系列的栅格,其中每一个栅格给定一个可能值,表示该栅格被占据的概率。在本申请的方案中,每一次点云数据获取后,投影的是同一个栅格图,但是在生成代价地图后,会将栅格图中的数据清除掉,也即在每一次点云数据生成当前代价地图时,栅格图中的同一栅格代表同一环境。
需要说明的是,机器人是通过传感器来感知周围环境的,通常情况下,机器人上安装有至少两个传感器,例如单线激光雷达、多线激光雷达和深度相机,其中单线激光雷达和多线激光雷达获取到的是点云数据,而深度相机通过获取到的深度图像确定图像中物体的位置,也可以用点云的形式表示。
具体地,通过传感器坐标系与地图坐标系之间的相对关系,将当前帧点云数据投影至当前帧栅格图中,通过机器人坐标系与地图坐标系之间的相对关系,将机器人的位置也投影至当前帧栅格图中,根据当前帧栅格图中每一栅格中的落入点云的数量判断每一栅格的栅格状态,例如可以设置一个点云数量阈值,当大于此阈值的点云落入栅格中时,则认为栅格被占有,或者只要栅格中落入点云就被认为是占有状态。其中,对于当前帧栅格图来说,在未进行当前帧点云数据投影之前,当前帧栅格图是空白的,
步骤104,根据每一当前帧栅格图中每一栅格的栅格状态以及预设遗忘处理算法,确定每一传感器对应的当前代价地图;
根据上述栅格图的解释可知,每一栅格有一个栅格值,代表该栅格被占据的概率,由此可知,根据栅格中是否投影到点云或机器人的位置,确定每一栅格的栅格值,根据每一栅格的栅格值,确定栅格的栅格状态。
需要说明的是,由于激光雷达本身的激光发射角度和激光雷达在机器人上的安装角度,机器人能够“看到”的视野有限。但是考虑到机器人在行走的过程中,对于同一个传感器来说,例如在激光雷达获取的上一帧点云数据从而确定的上一代价地图中,与根据获取的当前帧点云数据生成的当前代价地图之间有较大的相似度,故可以利用相邻两个获取时刻对应的代价地图之间的联系,由上一代价地图对当前代价地图进行预测。
在可选实施例中,每一传感器均对应有自己的当前帧栅格图,对应的,对于每一传感器均对应自己当前代价地图。
在一可选实施例中,对于传感器所对应的当前栅格图而言,其具体可以为该传感器自本次开机以来,所累计采集的所有点云数据形成的栅格图的集合,如可选的,在T=0时刻,传感器开始采集到区域A的点云数据,其获取的当前帧栅格图即对应区域A,当在机器人持续移动过程中,且到了T=1时刻,传感器采集到了区域B的点云数据,则其当前帧栅格图对应为区域A与区域B的并集区域,依次进行累积。
因此,在运行一段时间后,其当前帧栅格图的栅格会有三种栅格状态,占用、空闲和未知,其中当前帧栅格图中此时传感器能直接感知到的部分的栅格状态不是空闲就是占用,对于传感器此时无法感知的部分的栅格状态则为未知。
在另一可选实施例中,当前帧栅格地图可以为全局栅格地图(即机器人在建图过程中所构建的栅格地图),在机器人进行重启后,对于每一帧的栅格地图都进行初始化,使其栅格状态均未知,即当前帧栅格地图的栅格状态均为未知,随后基于传感器获取的当前帧点云数据进行投影后,对当前帧栅格地图的栅格状态进行更新,对于当前帧点云数据所直接投影的栅格,将栅格状态改为占用,将机器人的当前位置所对应的栅格以及当前位置所对应的栅格和栅格状态为占用的栅格之间的栅格状态改为空闲,其他前帧点云数据投影不到(即传感器的盲区)的栅格状态即为未知。
但是对于机器人而言,由于其一直在进行移动,因此对于当前帧栅格地图中某一个栅格的栅格状态为未知,但是其栅格在上一帧栅格地图所对应的栅格状态可能为占用或者空闲,因此可以利用上一帧栅格地图所对应的上一代价地图来更新当前帧栅格地图的当前代价地图。
具体地,可以采用基于人类的艾宾浩斯遗忘曲线的遗忘机制,考虑时间对上一代价地图与当前代价地图之间关联性的影响。例如,对于任一传感器来说,当前代价地图对应的为T时刻,则上一代价地图对应的为T-1时刻,利用T-1时刻的代价地图计算T时刻代价地图中每一栅格的栅格值。可以理解的是,T-1时刻的栅格值又与T-2时刻的栅格值有关,以此类推,可以根据历史代价地图中的栅格值获得更准确且范围更大的当前代价地图。
步骤106,根据每一传感器对应的当前代价地图,确定输出代价地图。
需要说明的是,在现有机器人上一般具有多种传感器,例如单线激光雷达、多线激光雷达、深度相机等,对于每一种传感器在当前时刻生成的当前代价地图,可以进行当前代价地图融合,以获得更准确的代价地图。具体的,以3个传感器为例,针对每一栅格,会有3个栅格值,可以将3个栅格值中的最大值作为当前代价地图对应的栅格值,进而对栅格的状态进行判断,也可以将3个栅格值的平均值作为当前代价地图对应的栅格值。其中,对于每一种传感器确定对应的当前代价地图中栅格值采用的方法,在此不作具体限定,可以采用本方案中的方法,也可以另寻他法。
另外,需要说明的是,在根据传感器获取到的当前帧点云数据确定每一栅格的栅格状态后,也可以利用传感器对应的上一代价地图对当前代价地图中的每一栅格状态进行预测,也即不仅仅只利用遗忘处理算法对传感器盲区的栅格状态进行预测,可以对全局进行预测,然后再与当前帧点云数据确定的当前帧栅格图中每一栅格的栅格状态结合,确定传感器对应的当前代价地图。具体地,将两者叠加即可确定当前帧栅格图中每一栅格的栅格值,对于重叠部分的栅格,可以以当前帧点云数据确定的栅格值为准,也可以以上一代价地图对应的栅格值为准,或者可以通过预设的计算公式对两者求结合。
上述实施例提供的方法中,将机器人的当前位置和至少两个传感器中每一传感器获取的当前帧点云数据投影至对应的当前帧栅格图中,以更新当前帧栅格图中每一栅格的栅格状态;根据每一当前帧栅格图中每一栅格的栅格状态以及预设遗忘处理算法,确定每一传感器对应的当前代价地图;根据每一传感器对应的当前代价地图,确定输出代价地图。通过使用遗忘曲线来处理机器人在传感器盲区的栅格状态,在各传感器图层完成更新后融合各图层,结合历史数据确定机器人当前的代价地图,借鉴人类的艾宾浩斯遗忘曲线生成代价地图,使得机器人以更符合人类感知的方式处理感知盲区的问题,在不影响成本和数据处理效率的情况下,增加了机器人的感知区域。
在其中一个实施例中,参见图2,栅格状态包括占有、空闲和未知;相应地,将机器人的当前位置和至少两个传感器中每一传感器获取的当前帧点云数据投影至对应的当前帧栅格图中,以更新当前帧栅格图中每一栅格的栅格状态,包括:
步骤202,根据机器人的当前位置和每一传感器获取的当前帧点云数据进行坐标转换,确定机器人的当前位置和当前帧点云数据在当前帧栅格图中的投影位置;
其中,机器人的当前位置是根据机器人的位姿传感器获取到的数据,此位置数据是在以机器人为坐标系原点的坐标系下的数据,传感器获取的当前帧点云数据是在以传感器的位置为坐标原点的坐标系下的数据,在根据当前帧点云数据分析当前帧栅格图时,需要将所有数据转换为同一坐标系下的数据。
具体地,获取机器人的位置和姿态数据、以及传感器在机器人上的安装参数,其中,姿态数据是指机器人通过传感器获取到的三维姿态数据,用在当前时刻机器人的“视线”与坐标系的夹角表示;安装参数是指传感器在机器人上的安装位置及角度;姿态数据和安装参数体现了传感器与机器人坐标系和世界坐标系之间的相对位置关系。预设分辨率用于将世界坐标系中的三维数据转换为地图坐标系中的二维平面数据。通过所有数据之间的相对关系,将获取的所有点云投影到当前帧栅格图所在的地图坐标系中。
步骤204,对于当前帧栅格图中的任一栅格,若任一栅格中存在投影的当前帧点云数据,则任一栅格的栅格状态设为占有;
可以理解的是,点云是传感器获取的可能存在“障碍物”的位置,以激光雷达为例进行说明,激光雷达在对周围环境进行检测的时候,是根据发射的激光被反射的原理,获取“障碍物”反射的激光,以此通过点云向量的方式,代表“障碍物”的位置。因此,在当前帧栅格图中,若栅格中存在投影的点云数据,则此栅格代表的应用场景中位置存在“障碍物”,此栅格的栅格状态设为占有。
步骤206,根据机器人的当前位置在当前帧栅格图中的投影结果和栅格状态为占有的栅格,确定当前帧栅格图中栅格状态为空闲和未知的栅格。
需要说明的是,在一个具体实施例中,栅格值为1表示该栅格的状态为被占用,也即该栅格处具有“障碍物”,栅格值为0表示该栅格的状态为自由区域。可以理解的是,当传感器的当前帧点云数据投影到栅格中时,即可确定当前时刻该栅格的状态为占有,则栅格值设置为1,而在传感器的视野范围内、且被“障碍物”包围的栅格,即为空闲状态,剩下的栅格则是传感器的盲区,栅格状态为未知。
上述实施例提供的方法中,根据机器人的当前位置和每一传感器获取的当前帧点云数据进行坐标转换,确定机器人的当前位置和当前帧点云数据在当前帧栅格图中的投影位置;对于当前帧栅格图中的任一栅格,若任一栅格中存在投影的当前帧点云数据,则任一栅格的栅格状态设为占有;根据机器人的当前位置在当前帧栅格图中的投影结果和栅格状态为占有的栅格,确定当前帧栅格图中栅格状态为空闲和未知的栅格。根据传感器当前帧点云数据的投影情况,确定栅格的栅格值,再根据传感器获取数据的原理,由机器人的当前位置和障碍物位置,确定自由状态的栅格,保证了生成的代价地图的准确度。
在其中一个实施例中,根据机器人的当前位置在当前帧栅格图中的投影结果和栅格状态为占有的栅格,确定初始栅格中栅格状态为空闲和未知的栅格,
以机器人的当前位置在当前帧栅格图中的投影位置为起点,向四周发射射线;
对于经过栅格状态为占有的栅格的任一射线,将任一射线在所经过的栅格状态为占有的栅格与当前时刻机器人在对应的当前帧栅格图中的位置之间所经过的所有栅格的栅格状态设置为空闲;
将当前帧栅格图中除了栅格状态为占有和空闲的栅格状态设置为未知。
以传感器是激光雷达为例,激光雷达在对周围环境进行检测的时候,是根据发射的激光被反射的原理,获取“障碍物”放射的激光,以此确定点云数据,那么,可以理解的是,射线是直线,则从激光雷达发射点(近似为机器人的位置),到有“障碍物”的位置之间,是不存在遮挡物的,也即是机器人的自由活动区域,,参见图3,在确定“障碍物”的位置后,可以从机器人的位置,发射射线,直至遇到的栅格值为1。遍历所有栅格值为1的栅格后,将其与机器人所在位置连线,直线上所有经过的栅格值设置为0,参见图4,其中黑色栅格表示栅格状态为占有、白色栅格表示栅格状态为空闲、灰色栅格表示栅格状态为未知。
上述实施例提供的方法中,以机器人的当前位置在当前帧栅格图中的投影位置为起点,向四周发射射线;对于经过栅格状态为占有的栅格的任一射线,将任一射线在所经过的栅格状态为占有的栅格与当前时刻机器人在对应的当前帧栅格图中的位置之间所经过的所有栅格的栅格状态设置为空闲;将当前帧栅格图中除了栅格状态为占有和空闲的栅格状态设置为未知。以机器人的位置为起点,向四周发射射线;结合激光雷达的检测原理,以射线的形式确定空闲和未知的栅格,确保了代价地图的准确性。
在其中一个实施例中,参见图5,栅格状态包括占有、空闲和未知;相应地,基于预设遗忘处理算法,根据每一当前帧栅格图中每一栅格的栅格状态,确定每一传感器对应的当前代价地图,包括:
步骤502,若当前帧栅格图中的栅格状态为占有,则将当前代价地图中对应的栅格的代价值设置为1,若当前帧栅格图中的栅格状态为空闲,则将当前代价地图中对应的栅格的代价值设置为0;
步骤504,若当前帧栅格图中的栅格状态为未知,则确定栅格状态为未知的栅格在上一代价地图中对应的目标栅格,上一代价地图为基于所述传感器获取的上一帧点云数据投影至对应的上一帧栅格图所输出的代价地图;
步骤506,获取目标栅格在上一代价地图中的目标代价值,根据预设遗忘处理算法和目标代价值,确定栅格状态为未知的栅格在传感器对应的当前代价地图中的代价值。
需要说明的是,在根据传感器的当前帧点云数据得到代价地图的过程中,先得到障碍物在栅格地图中的位置,然后把移动的机器人看作一个质点,形成构型空间,再将栅格地图转换为有权图,作为一个图层,进而得到代价地图。因此,在本实施例中,为方便理解,不对转换为有权图图层的过程进行解释,当前代价地图中对应的栅格就是当前帧栅格图中的栅格经过转换后对应的栅格,也即,障碍物的栅格图在实际应用场景中表示的区域在形成的初始代价图中具有一一对应的位置,在此用栅格表示。
具体地,代价地图为浮点型地图,以代价值表示机器人经过代价地图中所在位置的代价,其值为0.0~1.0,例如将当前帧栅格图中的栅格状态为占有的栅格,在当前代价地图中对应的代价值设置为1.0,表示机器人不能够到达此区域,此区域具有障碍物,若机器人到达或经过需要付出较大代价,将当前帧栅格图中的栅格状态为空闲的栅格,在当前代价地图中对应的代价值设置为0.0,表示机器人在此位置或区域可以自由行走。对于代价地图中剩余部分的栅格,属于代表区域在传感器的盲区,可以根据遗忘曲线,通过传感器对应的上一代价地图进行计算,例如机器人上安装有2个传感器激光雷达和深度相机,对于激光雷达获取的当前帧点云确定的当前帧栅格图中栅格状态位置的栅格,是利用激光雷达根据上一帧点云数据生成的上一代价地图进行预测的,在激光雷达生成当前代价地图时,并未采用深度相机的代价地图数据,不同传感器在进行输出代价地图融合之前,不进行数据共享。
上述实施例提供的方法中,借鉴人类的艾宾浩斯遗忘曲线生成代价地图,使得机器人以更符合人类感知的方式处理感知盲区的问题,在不影响成本和数据处理效率的情况下,增加了机器人的感知区域。
在其中一个实施例中,获取目标栅格在所述上一代价地图中的目标代价值,根据预设遗忘处理算法和所述目标代价值,确定栅格状态为未知的栅格在传感器对应的当前代价地图中的代价值,包括:
若目标栅格在上一代价地图中的代价值大于预设阈值,则根据第一函数,计算目标栅格在传感器对应的当前代价地图中的代价值,第一函数是以当前时刻为自变量的递减函数;
若目标栅格在上一代价地图中的代价值小于预设阈值,则根据第二函数,计算目标栅格在传感器对应的当前代价地图中的代价值,所述第二函数是以当前时刻为自变量的递增函数;
若目标栅格在所述上一代价地图中的代价值等于预设阈值,则将目标栅格在传感器对应的当前代价地图中的代价值设置为预设常量。
需要说明的是,人脑对新事物遗忘的规律符合艾宾浩斯遗忘曲线,而机器人在对周围环境进行检测获得代价地图的时候,若采用遗忘机制将之前检测时刻与当前检测时刻联系起来,机器人的行为将更符合智能的预期。参见图6,提供一种可用于当前代价地图生成的遗忘曲线,曲线1为第一函数,曲线2为第二函数,具体公式如下:
其中,t表示帧数,即传感器获取一次数据为1帧;f(t)表示第t次获取数据后生成的代价地图中栅格的栅格值;f(t+1)表示传感器第t+1次获取点云数据后生成的代价地图中栅格的栅格值;需要说明的是,每次计算都是针对一个栅格而言的。
根据公式可以知道,在对传感器当前代价地图中的栅格的代价值进行预测的时候,传感器上一代价地图中的栅格的代价值对当前代价地图中的栅格的代价值的影响符合遗忘规律,都趋于预设常量。其中,预设常量一般取栅格值取值范围的中间值,代表未知区域。
上述实施例提供的方法中,若对应的栅格在上一代价地图中的代价值大于预设阈值,则根据第一函数,计算对应的栅格在每一传感器对应的当前代价地图中的代价值,第一函数是以当前时刻为自变量的递减函数;若对应的栅格在上一代价地图中的代价值小于预设阈值,则根据第二函数,计算对应的栅格在每一传感器对应的当前代价地图中的代价值,第二函数是以当前时刻为自变量的递增函数;若对应的栅格在上一代价地图中的代价值等于预设阈值,则将对应的栅格在每一传感器对应的当前代价地图中的代价值设置为预设常量。借鉴人类的艾宾浩斯遗忘曲线生成代价地图,使得机器人以更符合人类感知的方式处理感知盲区的问题,在不影响成本和数据处理效率的情况下,增加了机器人的感知区域。
在其中一个实施例中,根据每一传感器对应的当前代价地图,确定输出代价地图,包括:
对输出代价地图中的任一栅格,确定任一栅格在每一传感器对应的当前代价地图中的每一代价值;
将每一代价值中的最大值,作为输出代价地图中的任一栅格对应的栅格值。
可以理解的是,在机器人使用多个传感器的数据生成代价地图时,每一传感器生成的当前代价地图作为一个图层,将多个图层进行融合,则到最后的输出的当前代价地图,例如,机器人安装有单线激光雷达、多线激光雷达和深度相机3个传感器,传感器根据遗忘处理算法分别得到对应的当前代价地图LaserMap、LidarMap和RGBDMap;遍历当前代价地图中的所有栅格,将每一栅格在LaserMap、LidarMap和RGBDMap中对应的最大值,作为最终的代价值,若最大值大于0.7,则代价地图上的值设置为占有,若最大值小于0.3,则代价地图上的值设置为空闲,否则设置为未知。
上述实施例提供的方法中,对输出代价地图中的任一栅格,确定任一栅格在每一传感器对应的当前代价地图中的每一代价值;将每一代价值中的最大值,作为输出代价地图中的任一栅格对应的栅格值。根据多传感器数据融合得到最终的代价地图,充分利用所有数据,对感知到的区域进行充分识别,得到更精准的代价地图。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的代价地图生成方法的代价地图装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个代价地图装置实施例中的具体限定可以参见上文中对于代价地图方法的限定,在此不再赘述。
在一个实施例中,如图7所示,提供了一种代价地图生成装置,包括第一确定模块701、第二确定模块702和第三确定模块703,具体为:
第一确定模块701,用于将机器人的当前位置和至少两个传感器中每一传感器获取的当前帧点云数据投影至对应的当前帧栅格图中,以更新当前帧栅格图中每一栅格的栅格状态;
第二确定模块702,用于根据每一当前帧栅格图中每一栅格的栅格状态以及预设遗忘处理算法,确定每一传感器对应的当前代价地图;
第三确定模块703,用于根据每一传感器对应的当前代价地图,确定输出代价地图。
在其中一个实施例中,第一确定模块701还用于:
根据机器人的当前位置和每一传感器获取的当前帧点云数据进行坐标转换,确定机器人的当前位置和当前帧点云数据在当前帧栅格图中的投影位置;
对于当前帧栅格图中的任一栅格,若任一栅格中存在投影的当前帧点云数据,则任一栅格的栅格状态设为占有;
根据机器人的当前位置在当前帧栅格图中的投影结果和栅格状态为占有的栅格,确定当前帧栅格图中栅格状态为空闲和未知的栅格。
在其中一个实施例中,第一确定模块701还用于:
以机器人的当前位置在当前帧栅格图中的投影位置为起点,向四周发射射线;
对于经过栅格状态为占有的栅格的任一射线,将任一射线在所经过的栅格状态为占有的栅格与当前时刻机器人在对应的当前帧栅格图中的位置之间所经过的所有栅格的栅格状态设置为空闲;
将当前帧栅格图中除栅格状态为占有和空闲的栅格状态设置为未知。
在其中一个实施例中,栅格状态包括占有、空闲和未知;相应地,第二确定模块702还用于:
若当前帧栅格图中的栅格状态为占有,则将当前代价地图中对应的栅格的代价值设置为1,若当前帧栅格图中的栅格状态为空闲,则将当前代价地图中对应的栅格的代价值设置为0;
若当前帧栅格图中的栅格状态为未知,则确定栅格状态为未知的栅格在上一代价地图中对应的目标栅格,上一代价地图为基于传感器获取的上一帧点云数据投影至对应的上一帧栅格图所输出的代价地图;
获取目标栅格在上一代价地图中的目标代价值,根据预设遗忘处理算法和目标代价值,确定栅格状态为未知的栅格在传感器对应的当前代价地图中的代价值。
在其中一个实施例中,第二确定模块702还用于:
若目标栅格在上一代价地图中的代价值大于预设阈值,则根据第一函数,计算目标栅格在传感器对应的当前代价地图中的代价值,第一函数是以当前时刻为自变量的递减函数;
若目标栅格在上一代价地图中的代价值小于预设阈值,则根据第二函数,计算目标栅格在传感器对应的当前代价地图中的代价值,第二函数是以当前时刻为自变量的递增函数;
若目标栅格在上一代价地图中的代价值等于预设阈值,则将目标栅格在传感器对应的当前代价地图中的代价值设置为预设常量。
在其中一个实施例中,第三确定模块703还用于:
对输出代价地图中的任一栅格,确定任一栅格在每一传感器对应的当前代价地图中的每一代价值;
将每一代价值中的最大值,作为输出代价地图中的任一栅格对应的栅格值。
上述代价地图生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储激光雷达获取的点云数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种代价地图生成方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种机器人,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
将机器人的当前位置和至少两个传感器中每一传感器获取的当前帧点云数据投影至对应的当前帧栅格图中,以更新当前帧栅格图中每一栅格的栅格状态;
根据每一当前帧栅格图中每一栅格的栅格状态以及预设遗忘处理算法,确定每一传感器对应的当前代价地图;
根据每一传感器对应的当前代价地图,确定输出代价地图。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
根据机器人的当前位置和每一传感器获取的当前帧点云数据进行坐标转换,确定机器人的当前位置和当前帧点云数据在当前帧栅格图中的投影位置;
对于当前帧栅格图中的任一栅格,若任一栅格中存在投影的当前帧点云数据,则任一栅格的栅格状态设为占有;
根据机器人的当前位置在当前帧栅格图中的投影结果和栅格状态为占有的栅格,确定当前帧栅格图中栅格状态为空闲和未知的栅格。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
以机器人的当前位置在当前帧栅格图中的投影位置为起点,向四周发射射线;
对于经过栅格状态为占有的栅格的任一射线,将任一射线在所经过的栅格状态为占有的栅格与当前时刻机器人在对应的当前帧栅格图中的位置之间所经过的所有栅格的栅格状态设置为空闲;
将当前帧栅格图中除了栅格状态为占有和空闲的栅格状态设置为未知。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
若当前帧栅格图中的栅格状态为占有,则将当前代价地图中对应的栅格的代价值设置为1,若当前帧栅格图中的栅格状态为空闲,则将当前代价地图中对应的栅格的代价值设置为0;
若当前帧栅格图中的栅格状态为未知,则确定栅格状态为未知的栅格在上一代价地图中对应的目标栅格,上一代价地图为基于所述传感器获取的上一帧点云数据投影至对应的上一帧栅格图所输出的代价地图;
获取目标栅格在所述上一代价地图中的目标代价值,根据预设遗忘处理算法和目标代价值,确定栅格状态为未知的栅格在传感器对应的当前代价地图中的代价值。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
若目标栅格在上一代价地图中的代价值大于预设阈值,则根据第一函数,计算目标栅格在传感器对应的当前代价地图中的代价值,第一函数是以当前时刻为自变量的递减函数;
若目标栅格在上一代价地图中的代价值小于预设阈值,则根据第二函数,计算目标栅格在传感器对应的当前代价地图中的代价值,第二函数是以当前时刻为自变量的递增函数;
若目标栅格在上一代价地图中的代价值等于预设阈值,则将目标栅格在传感器对应的当前代价地图中的代价值设置为预设常量。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
对输出代价地图中的任一栅格,确定任一栅格在每一传感器对应的当前代价地图中的每一代价值;
将每一代价值中的最大值,作为输出代价地图中的任一栅格对应的栅格值。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
将机器人的当前位置和至少两个传感器中每一传感器获取的当前帧点云数据投影至对应的当前帧栅格图中,以更新当前帧栅格图中每一栅格的栅格状态;
根据每一当前帧栅格图中每一栅格的栅格状态以及预设遗忘处理算法,确定每一传感器对应的当前代价地图;
根据每一传感器对应的当前代价地图,确定输出代价地图。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
根据机器人的当前位置和每一传感器获取的当前帧点云数据进行坐标转换,确定机器人的当前位置和点云数据在当前帧栅格图中的投影位置;
对于当前帧栅格图中的任一栅格,若任一栅格中存在投影的点云数据,则任一栅格的栅格状态设为占有;
根据机器人的当前位置在当前帧栅格图中的投影结果和栅格状态为占有的栅格,确定当前帧栅格图中栅格状态为空闲和未知的栅格。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
以机器人的当前位置在当前帧栅格图中的投影位置为起点,向四周发射射线;
对于经过栅格状态为占有的栅格的任一射线,将任一射线在所经过的栅格状态为占有的栅格与当前时刻机器人在对应的当前帧栅格图中的位置之间所经过的所有栅格的栅格状态设置为空闲;
将当前帧栅格图中除栅格状态为占有和空闲的栅格状态设置为未知。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若当前帧栅格图中的栅格状态为占有,则将当前代价地图中对应的栅格的代价值设置为1,若当前帧栅格图中的栅格状态为空闲,则将当前代价地图中对应的栅格的代价值设置为0;
若当前帧栅格图中的栅格状态为未知,则确定栅格状态为未知的栅格在上一代价地图中对应的目标栅格,上一代价地图为基于传感器获取的上一帧点云数据投影至对应的上一帧栅格图所输出的代价地图;
获取目标栅格在上一代价地图中的目标代价值,根据预设遗忘处理算法和目标代价值,确定栅格状态为未知的栅格在传感器对应的当前代价地图中的代价值。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若目标栅格在上一代价地图中的代价值大于预设阈值,则根据第一函数,计算目标栅格在传感器对应的当前代价地图中的代价值,第一函数是以当前时刻为自变量的递减函数;
若目标栅格在上一代价地图中的代价值小于预设阈值,则根据第二函数,计算目标栅格在传感器对应的当前代价地图中的代价值,第二函数是以当前时刻为自变量的递增函数;
若目标栅格在上一代价地图中的代价值等于预设阈值,则将目标栅格在传感器对应的当前代价地图中的代价值设置为预设常量。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
对输出代价地图中的任一栅格,确定任一栅格在每一传感器对应的当前代价地图中的每一代价值;
将每一代价值中的最大值,作为输出代价地图中的任一栅格对应的栅格值。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
将机器人的当前位置和至少两个传感器中每一传感器获取的当前帧点云数据投影至对应的当前帧栅格图中,以更新当前帧栅格图中每一栅格的栅格状态;
根据每一当前帧栅格图中每一栅格的栅格状态以及预设遗忘处理算法,确定每一传感器对应的当前代价地图;
根据每一传感器对应的当前代价地图,确定输出代价地图。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
根据机器人的当前位置和每一传感器获取的当前帧点云数据进行坐标转换,确定机器人的当前位置和点云数据在当前帧栅格图中的投影位置;
对于当前帧栅格图中的任一栅格,若任一栅格中存在投影的点云数据,则任一栅格的栅格状态设为占有;
根据机器人的当前位置在当前帧栅格图中的投影结果和栅格状态为占有的栅格,确定当前帧栅格图中栅格状态为空闲和未知的栅格。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
以机器人的当前位置在当前帧栅格图中的投影位置为起点,向四周发射射线;
对于经过栅格状态为占有的栅格的任一射线,将任一射线在所经过的栅格状态为占有的栅格与当前时刻机器人在对应的当前帧栅格图中的位置之间所经过的所有栅格的栅格状态设置为空闲;
将当前帧栅格图中除栅格状态为占有和空闲的栅格状态设置为未知。
在一个实施例中,栅格状态包括占有、空闲和未知;计算机程序被处理器执行时还实现以下步骤:
若当前帧栅格图中的栅格状态为占有,则将当前代价地图中对应的栅格的代价值设置为1,若当前帧栅格图中的栅格状态为空闲,则将当前代价地图中对应的栅格的代价值设置为0;
若当前帧栅格图中的栅格状态为未知,则确定栅格状态为未知的栅格在上一代价地图中对应的目标栅格,上一代价地图为基于传感器获取的上一帧点云数据投影至对应的上一帧栅格图所输出的代价地图;
获取目标栅格在上一代价地图中的目标代价值,根据预设遗忘处理算法和目标代价值,确定栅格状态为未知的栅格在传感器对应的当前代价地图中的代价值。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若目标栅格在上一代价地图中的代价值大于预设阈值,则根据第一函数,计算目标栅格在传感器对应的当前代价地图中的代价值,第一函数是以当前时刻为自变量的递减函数;
若目标栅格在上一代价地图中的代价值小于预设阈值,则根据第二函数,计算目标栅格在传感器对应的当前代价地图中的代价值,第二函数是以当前时刻为自变量的递增函数;
若目标栅格在上一代价地图中的代价值等于预设阈值,则将目标栅格在传感器对应的当前代价地图中的代价值设置为预设常量。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
对输出代价地图中的任一栅格,确定任一栅格在每一传感器对应的当前代价地图中的每一代价值;
将每一代价值中的最大值,作为输出代价地图中的任一栅格对应的栅格值。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种代价地图生成方法,其特征在于,所述方法应用于机器人,所述机器人上安装有至少两个传感器,所述方法包括:
将所述机器人的当前位置和所述至少两个传感器中每一传感器获取的当前帧点云数据投影至对应的当前帧栅格图中,以更新所述当前帧栅格图中每一栅格的栅格状态;
根据每一所述当前帧栅格图中每一栅格的栅格状态以及预设遗忘处理算法,确定每一传感器对应的当前代价地图;
根据每一传感器对应的当前代价地图,确定输出代价地图。
2.根据权利要求1所述的方法,其特征在于,所述栅格状态包括占有、空闲和未知;所述将所述机器人的当前位置和所述至少两个传感器中每一传感器获取的当前帧点云数据投影至对应的当前帧栅格图中,以更新所述当前帧栅格图中每一栅格的栅格状态,包括:
根据所述机器人的当前位置和所述每一传感器获取的当前帧点云数据进行坐标转换,确定所述机器人的当前位置和所述当前帧点云数据在所述当前帧栅格图中的投影位置;
对于所述当前帧栅格图中的任一栅格,若所述任一栅格中存在投影的当前帧点云数据,则所述任一栅格的栅格状态设为占有;
根据所述机器人的当前位置在所述当前帧栅格图中的投影结果和所述栅格状态为占有的栅格,确定所述当前帧栅格图中栅格状态为空闲和未知的栅格。
3.根据权利要求2所述的方法,其特征在于,所述根据所述机器人的当前位置在所述当前帧栅格图中的投影结果和所述栅格状态为占有的栅格,确定所述当前帧栅格中栅格状态为空闲和未知的栅格,包括:
以所述机器人的当前位置在所述当前帧栅格图中的投影位置为起点,向四周发射射线;
对于经过栅格状态为占有的栅格的任一射线,将所述任一射线在所经过的栅格状态为占有的栅格与所述当前时刻所述机器人在所述对应的当前帧栅格图中的位置之间所经过的所有栅格的栅格状态设置为空闲;
将所述当前帧栅格图中除栅格状态为占有和空闲的栅格状态设置为未知。
4.根据权利要求1所述的方法,其特征在于,所述栅格状态包括占有、空闲和未知;所述根据每一所述当前帧栅格图中每一栅格的栅格状态以及预设遗忘处理算法,确定每一传感器对应的当前代价地图,包括:
若所述当前帧栅格图中的栅格状态为占有,则将所述当前代价地图中对应的栅格的代价值设置为1,若所述当前帧栅格图中的栅格状态为空闲,则将所述当前代价地图中对应的栅格的代价值设置为0;
若所述当前帧栅格图中的栅格状态为未知,则确定所述栅格状态为未知的栅格在上一代价地图中对应的目标栅格,所述上一代价地图为基于所述传感器获取的上一帧点云数据投影至对应的上一帧栅格图所输出的代价地图;
获取所述目标栅格在所述上一代价地图中的目标代价值,根据所述预设遗忘处理算法和所述目标代价值,确定所述栅格状态为未知的栅格在所述传感器对应的当前代价地图中的代价值。
5.根据权利要求4所述的方法,其特征在于,所述获取所述目标栅格在所述上一代价地图中的目标代价值,根据所述预设遗忘处理算法和所述目标代价值,确定所述栅格状态为未知的栅格在所述传感器对应的当前代价地图中的代价值,包括:
若所述目标栅格在所述上一代价地图中的代价值大于预设阈值,则根据第一函数,计算所述目标栅格在所述传感器对应的当前代价地图中的代价值,所述第一函数是以当前时刻为自变量的递减函数;
若所述目标栅格在所述上一代价地图中的代价值小于预设阈值,则根据第二函数,计算所述目标栅格在所述传感器对应的当前代价地图中的代价值,所述第二函数是以当前时刻为自变量的递增函数;
若所述目标栅格在所述上一代价地图中的代价值等于预设阈值,则将所述目标栅格在所述传感器对应的当前代价地图中的代价值设置为预设常量。
6.根据权利要求1所述的方法,其特征在于,所述根据每一传感器对应的当前代价地图,确定输出代价地图,包括:
对所述输出代价地图中的任一栅格,确定所述任一栅格在每一传感器对应的当前代价地图中的每一代价值;
将每一代价值中的最大值,作为所述输出代价地图中的任一栅格对应的栅格值。
7.一种代价地图生成装置,其特征在于,所述装置包括:
第一确定模块,用于将所述机器人的当前位置和所述至少两个传感器中每一传感器获取的当前帧点云数据投影至对应的当前帧栅格图中,以更新所述当前帧栅格图中每一栅格的栅格状态;
第二确定模块,用于根据每一所述当前帧栅格图中每一栅格的栅格状态以及预设遗忘处理算法,确定每一传感器对应的当前代价地图;
第三确定模块,用于根据每一传感器对应的当前代价地图,确定输出代价地图。
8.一种机器人,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
将所述机器人的当前位置和所述至少两个传感器中每一传感器获取的当前帧点云数据投影至对应的当前帧栅格图中,以更新所述当前帧栅格图中每一栅格的栅格状态;
根据每一所述当前帧栅格图中每一栅格的栅格状态以及预设遗忘处理算法,确定每一传感器对应的当前代价地图;
根据每一传感器对应的当前代价地图,确定输出代价地图。
9.根据权利要求8所述的机器人,其特征在于,所述栅格状态包括占有、空闲和未知;相应地,所述处理器执行所述计算机程序时还实现以下步骤:
若所述当前帧栅格图中的栅格状态为占有,则将所述当前代价地图中对应的栅格的代价值设置为1,若所述当前帧栅格图中的栅格状态为空闲,则将所述当前代价地图中对应的栅格的代价值设置为0;
若所述当前帧栅格图中的栅格状态为未知,则确定所述栅格状态为未知的栅格在上一代价地图中对应的目标栅格,所述上一代价地图为基于所述传感器获取的上一帧点云数据投影至对应的上一帧栅格图所输出的代价地图;
获取所述目标栅格在所述上一代价地图中的目标代价值,根据所述预设遗忘处理算法和所述目标代价值,确定所述栅格状态为未知的栅格在所述传感器对应的当前代价地图中的代价值。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210589410.9A CN114820973A (zh) | 2022-05-27 | 2022-05-27 | 代价地图生成方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210589410.9A CN114820973A (zh) | 2022-05-27 | 2022-05-27 | 代价地图生成方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114820973A true CN114820973A (zh) | 2022-07-29 |
Family
ID=82519056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210589410.9A Pending CN114820973A (zh) | 2022-05-27 | 2022-05-27 | 代价地图生成方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114820973A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115685223A (zh) * | 2022-12-15 | 2023-02-03 | 深圳市智绘科技有限公司 | 位置识别方法、装置、电子设备及可读存储介质 |
-
2022
- 2022-05-27 CN CN202210589410.9A patent/CN114820973A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115685223A (zh) * | 2022-12-15 | 2023-02-03 | 深圳市智绘科技有限公司 | 位置识别方法、装置、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111429574B (zh) | 基于三维点云和视觉融合的移动机器人定位方法和系统 | |
CN108319655B (zh) | 用于生成栅格地图的方法和装置 | |
Homm et al. | Efficient occupancy grid computation on the GPU with lidar and radar for road boundary detection | |
Khurana et al. | Point cloud forecasting as a proxy for 4d occupancy forecasting | |
Pan et al. | Gem: online globally consistent dense elevation mapping for unstructured terrain | |
US11790661B2 (en) | Image prediction system | |
CN117970925A (zh) | 机器人实时避障与动态路径规划方法及系统 | |
CN108367436B (zh) | 针对三维空间中的对象位置和范围的主动相机移动确定 | |
Agro et al. | Implicit occupancy flow fields for perception and prediction in self-driving | |
Hu et al. | Deep-learning assisted high-resolution binocular stereo depth reconstruction | |
Yu et al. | Evidential occupancy grid mapping with stereo-vision | |
CN116088503A (zh) | 动态障碍物检测方法和机器人 | |
US12079970B2 (en) | Methods and systems for semantic scene completion for sparse 3D data | |
CN114820973A (zh) | 代价地图生成方法、装置、计算机设备和存储介质 | |
Rakotovao et al. | Real-time power-efficient integration of multi-sensor occupancy grid on many-core | |
Valente et al. | Evidential SLAM fusing 2D laser scanner and stereo camera | |
CN117409393A (zh) | 一种焦炉机车激光点云与视觉融合障碍物检测方法及系统 | |
Ouyang et al. | Semantic slam for mobile robot with human-in-the-loop | |
JP2022035033A (ja) | 情報処理システム、情報処理方法、プログラムおよび車両制御システム | |
CN116698051A (zh) | 高精度车辆定位、矢量化地图构建及定位模型训练方法 | |
CN116520302A (zh) | 应用于自动驾驶系统的定位方法和构建三维地图的方法 | |
JP2023549036A (ja) | 点群からの効率的な三次元物体検出 | |
Høilund et al. | Improving stereo camera depth measurements and benefiting from intermediate results | |
Venugopala | Comparative study of 3D object detection frameworks based on LiDAR data and sensor fusion techniques | |
Fang et al. | Ground texture matching based global localization for intelligent vehicles in urban environment |
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 |