具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例的一个方面,提供了一种基于激光雷达的地图构建方法,如图1所示,上述基于激光雷达的地图构建方法包括:
步骤S102,获取自动导引车辆AGV上的激光雷达在AGV在目标区域内行驶的过程中感测到的N帧点云数据,其中,目标区域内包括预设的人工地标,N为大于1的自然数。
步骤S104,根据N帧点云数据,确定AGV的N个位姿和人工地标的N个位姿,其中,N帧点云数据中的每帧点云数据用于确定AGV的一个位姿和人工地标的一个位姿。
步骤S106,根据AGV的N个位姿,确定AGV的第一优化位姿,并根据人工地标的N个位姿,确定人工地标的第二优化位姿。
步骤S108,根据第一优化位姿和第二优化位姿,构建目标区域的二维地图。
可选的,在本实施例的方案中可以包括但不限于应用于通过AGV构建目标区域中的二维地图,该二维地图用于AGV导航。该目标区域可以包括但不限于工厂中的车间。
可选的,在本实施例中,根据AGV的N个位姿,确定AGV的第一优化位姿,可以包括:
根据N帧点云数据利用点云匹配算法计算N个AGV的坐标值,将坐标值作为目标计算图的顶点;
通过目标计算图以及顶点确定AGV的第第一优化位姿。
可选的,在本实施例中,根据人工地标的N个位姿,确定人工地标的第二优化位姿,可以包括:
对N帧点云数据中的每帧点云数据通过地标检测算法确定N个人工地标的坐标值;
将N个人工地标的坐标值投影到世界坐标上,对N个人工地标的坐标值进行加权计算确定平均坐标值,将平均坐标值确定为人工地标的第二优化位姿。
可选的,在本实施例中,根据N帧点云数据,确定AGV的N个位姿,可以包括:
在激光雷达在第i个时刻上感测到的第i帧点云数据为关键帧点云数据的情况下,根据AGV上的车轮里程计确定第i个时刻上的AGV的初始位姿,其中,i为大于1的自然数;
以初始位姿作为初值,根据预定搜索半径在第i个时刻上对应的点云数据与第i-1个时刻上对应的点云数据进行配准,确定AGV的N个位姿。
可选的,在本实施例中,根据N帧点云数据,确定人工地标的N个位姿,可以包括:
在N帧点云数据中的每帧激光点云中,根据激光强度和人工地标直径检测利用人工地标检测算法,确定人工地标的中心位置;
将中心位置在世界坐标系的变换,计算确定人工地标的N个位姿。
可选的,在本实施例中,获取自动导引车辆AGV上的激光雷达在AGV在目标区域内行驶的过程中感测到的N帧点云数据,可以包括:
根据AGV上的车轮里程计在第j时刻的位姿计算得到的第j+1时刻的位姿;
在第j时刻的位姿和第j+1时刻的位姿满足预定条件的情况下,确定AGV在j+1时刻为关键帧的点云数据,N帧点云数据即为关键帧对应的点云数据;
其中,预定条件包括以下之一:第j时刻和第j+1时刻的位移偏差满足第一阈值,或第j时刻和第j+1时刻的方向改变量满足第二阈值,或第j时刻和第j+1时刻的时间差满足第三阈值。
其中,确定AGV在j+1时刻为关键帧的点云数据之后,根据关键帧对应的点云数据通过人工地标算法确定人工地标的N个位姿;
根据关键帧对应的点云数据通过激光匹配算法确定AGV的N个位姿。
通过本申请提供的实施例,获取自动导引车辆AGV上的激光雷达在AGV在目标区域内行驶的过程中感测到的N帧点云数据,其中,目标区域内包括预设的人工地标,N为大于1的自然数;根据N帧点云数据,确定AGV的N个位姿和人工地标的N个位姿,其中,N帧点云数据中的每帧点云数据用于确定AGV的一个位姿和人工地标的一个位姿;根据AGV的N个位姿,确定AGV的第一优化位姿,并根据人工地标的N个位姿,确定人工地标的第二优化位姿;根据第一优化位姿和第二优化位姿,构建目标区域的二维地图,达到了根据获取的全局N帧点云数据对应的最优AGV位姿和最优的人工地标位姿构建目标区域的二维地图的目的,即根据最优的AGV位姿和最优的人工地标位姿确定目标区域的二维地图,进而解决了现有技术中,基于AGV构建的地图精度较低的技术问题。
作为一种可选的实施例,本申请还提供了一种基于人工地标的AGV二维激光建图方法。如图2所示,一种基于人工地标的AGV二维激光建图方法的流程图。
步骤S201,获取里程计信息;
步骤S202,积分得到下一时刻位姿;
步骤S203,判断是否是关键帧,在是的情况下,执行步骤S204,在否的情况下,执行步骤S202;
步骤S204,激光点云数据;
在步骤S204中,获取关键帧对应的激光点云数据。
其中,在判断为新关键帧后,激光点云数据在传给激光匹配算法的同时,亦传送给人工地标检测算法,该算法在单帧激光点云中,根据激光强度和地标直径检测人工地标,输出其中心所在坐标。需要注意的是,本提案所提出的方法不限于依据激光强度等参数检测人工地标,人工地标形式亦不受限制,甚至人工地标检出率亦无须十分高,准确的说,容许一定假阳性和假阴性存在。
步骤S205,根据里程计位姿为搜索中心,激光点云数据全局匹配寻求离散最优解;
步骤S206,寻找回环;
步骤S207,人工地标检测算法;
其中,在获得单帧激光点云数据上的人工地标中心位置后,根据激光点云数据匹配所得AGV位姿,通过坐标系变换,即可计算出世界坐标系下的人工地标位置。
步骤S208,人工地标验证及加权更新;
步骤S209,全局优化算法;
步骤S210,全局一致的最优AGV位姿;
步骤S211,全局一致的最优人工地标位姿。
其中,在将获取地标世界坐标系下位置,执行应用之前,需对世界坐标系下已有地标遍历,验证新投影的地标是否为可靠检测,排除噪声干扰影响。
需要说明的是,人工地标作为顶点被添加到图优化模型中,边连接人工地标以及所有观测到该地标的关键帧顶点。需要注意的是,在本申提供的实施例中,人工地标在图优化模型中的形式不受限制,即可以为仅有位置量,亦可附上方向信息。在求解器优化后,即协同得到全局一致的最优AGV位姿和人工地标。
如图3所示,人工地标维护及更新流程图。
步骤S301,激光帧局部最优位姿;
步骤S302,人工地标检测;
步骤S303,地标信息维护;
步骤S304,观测帧ID;
步骤S305,各观测帧观测的地标坐标;
步骤S306,观测数;
步骤S307,人工地标加权坐标;
其中,在对单帧激光点云数据应用人工地标检测算法获得人工地标坐标之后,维护每个人工地标的观测帧ID号,该观测帧观测到该人工地标的观测值,这个人工地标被观测的次数,以及人工地标的加权坐标。
需要说明的是,观测帧ID可以认为唯一标识真实世界中存在的人工地标。
步骤S308,人工地标唯一性检测;
其中,在将不同帧检测到的人工地标投影到世界坐标上的同时,将距离落在一定范围内的地标聚类成一个,并可计得观测数,根据关键帧的匹配不准确度,即其信息矩阵,可加权得到该人工地标的加权坐标,该坐标被用来作为后继新观测地标是否为该人工地标的判据,当新人工地标观测投影到该加权坐标值一定范围内时,观测数加一,同时重新计算该加权坐标。该步骤S208即人工地标唯一性检测。
还需要说明的是,针对人工地标检测算法存在的假阳性和假阴性,可以通过调节观测数阈值实现。超过观测数阈值后才会被认为是存在的真实地标。该步骤即地标验证。若算法假阳性较高,则应适当增加观测数阈值,若假阴性较高,则应适当减少观测数阈值。在实际应用中,考虑到AGV运行速度和关键帧生成频率,假阴性影响较小。因此观测数阈值可认为受假阳性主导
步骤S309,人工地标验证;
步骤S310,全局优化算法;
步骤S311,全局一致的最优人工地标位姿。
其中,对每个人工地标,在获得其所有的激光观测帧的观测值后,协同当前该人工地标的加权平均坐标为图优化顶点,观测帧世界坐标为另一端顶点,即可将该优化网络添加到之前关键帧与关键帧的优化网络,协同优化后,即得到全局一致的最优AGV位姿和同样全局一致的人工地标位姿。
通过本申请提供的实施例,可以有效利用人工地标,来改善二维激光建图方法在环境特征退化情况下的建图效果;并且提高一般环境中的建图精度;最后又能同时标定出人工地标的准确位置。
需要说明的是,通过本申请提供的实施例,不仅在保证原始环境全局一致性的同时,确保了人工地标的全局一致性。相对于现有技术中,无人工地标的建图方法,作为一个通用激光里程计融合框架,无法确保环境全局一致性;以及单纯考虑人工地标的位姿推算,丢弃了大部分激光有效数据,建图效果在局部上即产生较大偏差,更无法保证全局一致性;以及采用先建图,后标定的方式,本申请提供的实施例,在操作可行性及精度上都大大占优。
即在环境特征退化情况下,例如长走廊,现有技术中缺少一维约束导致无法成功建图;以及第一次建图,由于反光柱并未被当作显著特征与其他环境特征区别开,因此布置的人工地标也将获益甚微;以及只用人工地标建图,必将导致走廊墙壁的一致性缺失。而本申请提供的实施例中利用图优化模型,在环境退化情况下,地标由于被单独检出当作顶点存在,在优化模型中可以克服此时关键帧之间观测不准的问题。
在一般环境中,即关键帧之间观测值存在正常误差的时候,人工地标作为单独顶点,其观测值误差来源于激光对地标的直接观测和地标检测算法自身误差,尤其当地标检测算法利用激光强度为参数时,由于高强度的激光点通常精度较高,不会是物体边缘等噪声点。因此协同该观测值构建的优化网络可认为通常情况下有利于提高地图精度。
在对反光柱的坐标标定方面,通过该全局标定的方式,精度应显然高于受定位算法精度影响的。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
根据本发明实施例的另一个方面,还提供了一种用于实施上述基于激光雷达的地图构建方法的基于激光雷达的地图构建装置。如图4所示,该装置包括:获取单元401、第一确定单元403、第二确定单元405以及构建单元407。
获取单元401,用于获取自动导引车辆AGV上的激光雷达在AGV在目标区域内行驶的过程中感测到的N帧点云数据,其中,目标区域内包括预设的人工地标,N为大于1的自然数。
第一确定单元403,用于根据N帧点云数据,确定AGV的N个位姿和人工地标的N个位姿,其中,N帧点云数据中的每帧点云数据用于确定AGV的一个位姿和人工地标的一个位姿。
第二确定单元405,用于根据AGV的N个位姿,确定AGV的第一优化位姿,并根据人工地标的N个位姿,确定人工地标的第二优化位姿。
构建单元407,用于根据第一优化位姿和第二优化位姿,构建目标区域的二维地图。
可选的,在本实施例中,上述第一确定单元403,可以包括:
第一计算模块,用于根据N帧点云数据利用点云匹配算法计算N个AGV的坐标值,将坐标值作为目标计算图的顶点;
第一确定模块,用于通过目标计算图以及顶点确定AGV的第第一优化位姿。
可选的,在本实施例中,上述第二确定单元405,可以包括:
第二计算模块,用于对N帧点云数据中的每帧点云数据通过地标检测算法计算N人工地标的坐标值;
第二确定模块,用于将N个人工地标的坐标值投影到世界坐标上,对N个人工地标的坐标值进行加权计算确定平均坐标值,将平均坐标值确定为人工地标的第二优化位姿。
可选在,在本实施例中,上述第一确定单元403,可以包括:
第三确定模块,用于在激光雷达在第i个时刻上感测到的第i帧点云数据为关键帧点云数据的情况下,根据AGV上的车轮里程计确定第i个时刻上的AGV的初始位姿,其中,i为大于1的自然数;
第四确定模块,用于以初始位姿作为初值,根据预定搜索半径在第i个时刻上对应的点云数据与第i-1个时刻上对应的点云数据进行配准,确定AGV的N个位姿。
可选的,在本实施例中,上述第一确定单元403,可以包括:
第五确定模块,用于在N帧点云数据中的每帧激光点云中,根据激光强度和人工地标直径检测利用人工地标检测算法,确定人工地标的中心位置;
第六确定模块,用于将中心位置在世界坐标系的变换,计算确定人工地标的N个位姿。
可选的,在本实施例中,上述获取单元401,可以包括:
第三计算模块,用于根据AGV上的车轮里程计在第j时刻的位姿计算得到的第j+1时刻的位姿;
第七确定模块,用于在第j时刻的位姿和第j+1时刻的位姿满足预定条件的情况下,确定AGV在j+1时刻为关键帧的点云数据,N帧点云数据即为关键帧对应的点云数据;
其中,预定条件包括以下之一:第j时刻和第j+1时刻的位移偏差满足第一阈值,或第j时刻和第j+1时刻的方向改变量满足第二阈值,或第j时刻和第j+1时刻的时间差满足第三阈值。
可选的,在本实施例中,上述装置还可以包括:
第三确定单元,用于确定AGV在j+1时刻为关键帧的点云数据之后,基于关键帧对应的点云数据通过人工地标算法确定人工地标的N个位姿;
第四确定单元,用于基于关键帧对应的点云数据通过激光匹配算法确定AGV的N个位姿。
通过本申请提供的实施例,获取单元401获取自动导引车辆AGV上的激光雷达在AGV在目标区域内行驶的过程中感测到的N帧点云数据,其中,目标区域内包括预设的人工地标,N为大于1的自然数;第一确定单元403根据N帧点云数据,确定AGV的N个位姿和人工地标的N个位姿,其中,N帧点云数据中的每帧点云数据用于确定AGV的一个位姿和人工地标的一个位姿;第二确定单元405根据AGV的N个位姿,确定AGV的第一优化位姿,并根据人工地标的N个位姿,确定人工地标的第二优化位姿;构建单元407根据第一优化位姿和第二优化位姿,构建目标区域的二维地图。达到了根据获取的全局N帧点云数据对应的最优AGV位姿和最优的人工地标位姿构建目标区域的二维地图的目的,即根据最优的AGV位姿和最优的人工地标位姿确定目标区域的二维地图,进而解决了现有技术中,基于AGV构建的地图精度较低的技术问题。
根据本发明实施例的又一个方面,还提供了一种用于实施上述基于激光雷达的地图构建方法的电子装置,如图5所示,该电子装置包括存储器502和处理器504,该存储器502中存储有计算机程序,该处理器504被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取自动导引车辆AGV上的激光雷达在AGV在目标区域内行驶的过程中感测到的N帧点云数据,其中,目标区域内包括预设的人工地标,N为大于1的自然数;
S2,根据N帧点云数据,确定AGV的N个位姿和人工地标的N个位姿,其中,N帧点云数据中的每帧点云数据用于确定AGV的一个位姿和人工地标的一个位姿;
S3,根据AGV的N个位姿,确定AGV的第一优化位姿,并根据人工地标的N个位姿,确定人工地标的第二优化位姿;
S4,根据第一优化位姿和第二优化位姿,构建目标区域的二维地图。
可选地,本领域普通技术人员可以理解,图5所示的结构仅为示意,电子装置也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图5其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图5中所示更多或者更少的组件(如网络接口等),或者具有与图5所示不同的配置。
其中,存储器502可用于存储软件程序以及模块,如本发明实施例中的基于激光雷达的地图构建方法和装置对应的程序指令/模块,处理器504通过运行存储在存储器502内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的基于激光雷达的地图构建方法。存储器502可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器502可进一步包括相对于处理器504远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器502具体可以但不限于用于N帧激光点云数据、最优AGV位姿以及最优人工地标位姿等信息。作为一种示例,如图5所示,上述存储器502中可以但不限于包括上述基于激光雷达的地图构建装置中的获取单元401、第一确定单元403、第二确定单元405以及构建单元407。此外,还可以包括但不限于上述基于激光雷达的地图构建装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输装置506用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置506包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置506为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子装置还包括:显示器508,用于显示二维地图;和连接总线510,用于连接上述电子装置中的各个模块部件。
根据本发明的实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述计算机可读的存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取自动导引车辆AGV上的激光雷达在AGV在目标区域内行驶的过程中感测到的N帧点云数据,其中,目标区域内包括预设的人工地标,N为大于1的自然数;
S2,根据N帧点云数据,确定AGV的N个位姿和人工地标的N个位姿,其中,N帧点云数据中的每帧点云数据用于确定AGV的一个位姿和人工地标的一个位姿;
S3,根据AGV的N个位姿,确定AGV的第一优化位姿,并根据人工地标的N个位姿,确定人工地标的第二优化位姿;
S4,根据第一优化位姿和第二优化位姿,构建目标区域的二维地图。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。