激光地图更新方法、机器人和集群机器人系统

文档序号:779297 发布日期:2021-04-09 浏览:8次 >En<

阅读说明:本技术 激光地图更新方法、机器人和集群机器人系统 (Laser map updating method, robot and clustered robot system ) 是由 刘俊斌 虞坤霖 于 2019-10-09 设计创作,主要内容包括:本申请公开了激光地图更新方法、机器人和集群机器人系统。所述方法包括:根据激光点云与地图激光点云的拼接结果确定待更新点云,再将所述待更新点云的信息更新到激光地图,如果更新后的激光地图和原始地图比对的差异超过预设的第一阈值,则放弃更新,否则保留更新,更好地保证了更新后的地图与更新之前的地图不存在旋转平移与缩放,为上层业务逻辑正常运行打下基础。(The application discloses a laser map updating method, a robot and a clustered robot system. The method comprises the following steps: determining point clouds to be updated according to the splicing result of the laser point clouds and the map laser point clouds, updating the information of the point clouds to be updated to a laser map, if the difference between the updated laser map and the original map exceeds a preset first threshold value, giving up updating, and if not, keeping updating, better ensuring that the updated map and the map before updating do not have rotation translation and zooming, and laying a foundation for the normal operation of upper-layer business logic.)

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明,本申请实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。

另外,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。

在本申请中,除非另有明确的规定和限定,术语“连接”、“固定”等应做广义理解,例如,“固定”可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。

在机器人身上按照激光器,在机器人的运动过程中,激光器发出激光,机器人接收到物体的反光,由此感知外部事物。

是本申请中,激光点云或简称点云,一个激光点云是机器人在一个位置拍到的激光点的集合,而激光点云地图的则是由一组这样的激光点云组成的集合。

如图1所示,本申请实施例提出的激光地图更新方法包括:

步骤10、将激光点云与地图激光点云进行拼接,根据拼接结果确定待更新点云;所述地图激光点云为多个与所述激光点云有特定关系的点云的组合;

激光点云可以是机器人当前实时采集的,也可以是机器人运动预设时间汇集的多个激光点云。实时采集的激光点云在下文称为当前激光点云。将每一激光点云与地图激光点云进行拼接。

多个与所述激光点云有特定关系的点云,这里的特定关系,可以是按照每个地图点云离激光点云间的距离,或其它方式选择。

步骤20、根据所述激光点云和地图激光点云,将所述待更新点云的信息更新到激光地图,得到更新后的激光地图;

步骤30、将所述更新后的激光地图和原始地图进行比对,如果两个地图差异超过预设的第一阈值,则放弃更新后的激光地图,否则保留更新后的激光地图。

具体地,比对算法为任意一种图像匹配算法。两个地图差异超过预设的第一阈值,具体是指:当两幅地图的差(像素为单位)小于第一阈值。通常第一阈值的范围为地图大小的5%-20%。

通过将所述更新后的激光地图和原始地图进行比对,如果更新后的激光地图更改了原始地图的地图骨架,则放弃更新。由此避免定位的偏差不会使地图更新错误。

本申请实施例提供的激光地图更新方法,根据当前激光点云与地图激光点云的拼接结果确定待更新点云,再将所述待更新点云的信息更新到激光地图,如果更新后的激光地图和原始地图比对的差异超过预设的第一阈值,则放弃更新,否则保留,更好地保证了更新后的地图与更新之前的地图不存在旋转平移与缩放,为上层业务逻辑正常运行打下基础。

在一些实施例中,确定待更新点云以及当前点云与待更新点云之间的相对位姿使用第一种策略。所述将当前激光点云与地图激光点云进行拼接,根据拼接结果确定待更新点云,具体包括:

当前激光点云与地图激光点云的拼接成功时,用当前激光点云与地图激光点云内的每一点云进行拼接,拼接成功的当前激光点云则确定为所述待更新点云。

将当前激光点云与地图激光点云进行拼接,每当与地图激光点云拼接成功时,拼接结果为拼接成功。拼接成功的定义是指当前激光点云与地图激光点云中对应的点云的拼接的协方差矩阵的对角线数值小于一个第三阈值。第三阈值的范围为:1e-6至1e-2。

在本申请实施例中,只对拼接成功的当前激光点云进行处理,将其确定为所述待更新点云,在后续步骤中更新地图。

使用当前激光点云来更新地图激光点云的具体做法如下:在当前激光点云(Scurrent)的位姿(Pcurrent)周围选择一组地图点云(来表示,每一个点云对应的位姿为来表示),选择方法可以是按照每个地图点云离当前激光点的位姿(即)间的距离,或其它方式选择。然后用这些地图点云组合生成地图激光点云(Smerged),Smerged的位姿Pmerged)可以选择为的位姿,即也可以是其它的点云的位姿,但这里我们选用然后用Scurrent与Smerged进行拼接得到2个点云之间的位姿变化,即

当Scurrent和Smerged拼接成功时,再用Scurrent和每一个组成Smerged的点云再次进行拼接,如果拼接成功可以直接得到若拼接失败则需推导而来,如下:

因为所以有

在另一实施例中,确定待更新点云以及当前点云与待更新点云之间的相对位姿使用第二种策略。所述将当前激光点云与地图激光点云进行拼接,根据拼接结果确定待更新点云,具体包括:

当前激光点云与地图激光点云的拼接成功时,当前激光点云则确定为第一待更新点云;

当前激光点云与地图激光点云的拼接失败时,失败的当前激光点云则确定为关键点云,将所述关键点云确定为第二待更新点云,将所述第一待更新点云和第二待更新点云的集合确定为所述待更新点云。

第一种策略简单只对当前激光点云与地图激光点云的拼接成功之后的成功点云对地图激光点云进行更新,而第二种策略不光是这些成功的点云,也能够通过成功的点云对那些不成功的点云(关键点云)进行更新。为了表述清晰,我们定义一个成功拼接的当前点云为Scurrent,位姿Pcurrent,在这个Scurrent之前拼接失败的,直到上一次拼接成功之后的当前点云,即关键点云表示为通用以来表示,它们对应的位姿为通用以来表示。通常来讲我们设定一个最大失败数量,n<第四阈值,第四阈值根据实际情况进行调整,一般的范围是0-20。由于没有成功拼接,那么关键点云和关键点云对应的地图激光点云之间的增量由Scurrent与地图拼接的拼接推导而来,这里对应的意思是角度和距离与地图激光点云的差符合第五阈值。第五阈值包括2个部分,角度介于+/-90度,距离介于0-5米。

关键点云用来更新地图激光点云的推导过程如下:假定Scurrent与地图拼接成功,则有(具体见第一种策略)。对于在这个拼接成功之前的每一个失败的拼接先选取与它对应的地图激光点云(用第五阈值),为通用表达以及他们的位姿对这些点云推导出每一个和对应的相对位姿,即

在第二种策略中,关键点云没有成功拼接,不代表就要放弃,而是一样需要用来进行地图更新,因为非常有可能是环境发生了变化导致用当前激光点云与地图激光点云内的点云进行拼接不成功,而这种情况非常正常,是本申请实施例需要更新的非常重要的部分。

进一步地,如图2所示,所述根据所述激光点云和地图激光点云,将所述待更新点云的信息更新到激光地图,得到更新后的激光地图,具体包括:

步骤21、将所述当前激光点云投影到所述地图激光点云内的每一点云的位姿下,生成当前投影点云;

步骤22、对所述当前投影点云和所述地图激光点云内的每一激光点的角度进行离散化;

步骤23、遍历所述当前投影点云,判断是否动态物体和判断是否障碍物/地图改变,如均不是动态物体则用激光点云代替所述待更新地图上的对应点云。

在判定到不是动态物体时,也未判定为障碍物/地图改变的情况时,用激光点云代替所述待更新地图上的对应点云。

进一步地,所述遍历所述当前投影点云,判断是否动态物体和判断是否障碍物/地图改变,如均不是动态物体则用激光点云代替所述待更新地图上的对应点云,具体包括:

判断所述地图激光点云内的所有地图激光点中任一地图激光点到其发射激光器的第一距离,是否大于所述当前激光点云内的所有当前激光点中对应该地图激光点的当前激光点到其发射激光器的第二距离;若是,继续判断第一距离与第二距离的距离差是否大于第二阈值(第二阈值的范围根据实际情况调整,一般为5cm-30cm),若是,则判定所述当前激光点云对应动态物体,则不更新地图;若距离差小于第二阈值,则判定所述当前激光点云不对应所述动态物体,则用当前激光点云代替所述待更新地图上的对应点云;

判断所述第一距离小于所述第二距离时,则判定所述当前激光点云对应所述障碍物/地图改变,则用当前激光点云代替所述待更新地图上的对应点云。

具体地,在本实施例中,采用的策略为:将当前激光点云的所有激光点通过下述方式更新。如上面所述,一个激光点云是机器人在一个位置拍到的激光点的集合。首先用将Scurrent投影到Smap的位姿下,生成当前投影点云(S′current),然后对S′current和Smap用每个点的角度进行离散化,然后按下图描述的方式进行更新。

遍历S′current中的每一个激光点。在图3中,定义原点O为激光器所在位置,曲线AB代表地图激光点云下的地图激光点;曲线CD代表当前激光点云下的当前激光点;在图3的左边半部分中,所述地图激光点云内的所有地图激光点中任一地图激光点到其发射激光器的第一距离,例如图3中OA线段和OB线段均代表第一距离rr,定义曲线AB上有X个地图激光点,任一地图激光点到原点O的距离均为第一距离。所述当前激光点云内的所有当前激光点中对应该地图激光点的当前激光点到其发射激光器的第二距离,例如图3中OD线段代表第二距离,在右半部分中,曲线CD在P点之后的右边部分有Y个当前激光点,任一当前激光点到原点O的距离均为第二距离rc。

以P点为界,在左半部分中,第一距离均大于第二距离;在右半部分中,第一距离均小于第二距离;P点视为第一距离等于第二距离,该点无需更新。

在第一距离均大于第二距离的左半部分,这个新的点(当前激光点)有可能是一个动态物体,这时继续用第二阈值T来判断,见图3。继续判断第一距离与第二距离的距离差是否大于第二阈值,若是,则判定所述当前激光点云对应动态物体,则不更新地图。若距离差小于第二阈值,则判定所述当前激光点云不对应所述动态物体,则用当前激光点云代替所述待更新地图上的对应点云。

在第一距离均小于第二距离的右半部分,则判定所述当前激光点云对应所述障碍物/地图改变,则用当前激光点云代替所述待更新地图上的对应点云。第一距离小于第二距离,说明之前是个移动的障碍物,或者地图发生了改变,这时候的更新不看第二阈值T,也就是直接用当前激光点云代替所述待更新地图上的对应点云。

由此,本申请实施例的激光地图更新方法可以应对动态物体。

上述实施例可以是单机(单机器人)地图更新方案,在一台机器上执行的激光地图更新方法,不涉及到与其它机器人交互(地图共享与分发除外)。当然,本申请实施例也可以用到多机更新方案上,即是多台机器人共同更新一副激光地图。

如图4所示,当执行激光地图更新方法的主体为多个机器人时,所述方法还包括:

步骤40、接收至少一个所述更新后的激光地图;

步骤50、对所述至少一个更新后的激光地图按时间排序更新到所述本机的原始地图中。

可以在某个机器人上执行步骤40和50,也可以在一个中央服务器上执行。

每隔一定时间(看地图变化快慢确定间隔时间。例如每半天,每天、每两天、每三天、每半周、每四天或每周一次),每一个机器人再将各自更新的部分发到中央服务器(或某一机器人)。中央服务器(或某一机器人)接收到一个或多个机器人发送的更新后的激光地图,构成一段或多段局部更新地图,每个机器人发送的局部更新地图携带编号,由中央服务器(或某一机器人)接收。

中央(或某一机器人)将进行如下操作:对于每一个收到局部更新,用时间排序加入到原始地图中,然后执行单机策略中描述的步骤20和步骤30。

最后,可将融合后的地图发送给每一个机器人。可由多个机器人协同更新地图。每一个机器人均可以计算出它走过的路径上与原始地图的差,然后所有机器人将此差异发送给一个中央处理的地方(可以是一台服务器,也可以是某一台特定的机器人),中央服务器运行融合算法将收集的信息进行融合然后再把更新的地图分发给每一个机器人完成地图更新的流程。

如图5所示,本申请实施例还提供一种机器人100,所述机器人100包括用于获取所述激光点云的激光器101,所述机器人100用于执行上述的激光地图更新方法。

本申请实施例还提供一种集群机器人系统200,包括多个如上述的机器人100。

可选地,所述系统的一个所述机器人接收其他机器人发送的所述更新后的激光地图,将多个所述更新后的激光地图按时间排序更新到本地的原始地图中;并将更新后的地图发送给其他机器人。

进一步地,所述系统还包括中央服务器201,所述中央服务器201用于接收一个或多个机器人发送的所述更新后的激光地图,所述中央服务器将一个或多个所述更新后的激光地图用时间排序更新到所述原始地图中,并将更新融合后的地图发送给多个机器人。

需要说明的是,本申请实施例提出的机器人和集群机器人系统,与本申请方法实施例提出的激光地图更新方法基于相同的发明构思,方法实施例与机器人实施例和集群机器人系统实施例中的相应技术内容可相互适用,此处不再详述。

以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是在本申请的申请构思下,利用本申请说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本申请的专利保护范围内。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种目标定位手持观测仪及其导航方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!