本发明涉及机器人领域,具体涉及一种多点带约束重定位的方法、芯片和机器人。
背景技术:
目前大多数的室内智能移动机器人都具有自主定位导航的能力,即在执行任务的过程中根据已有的地图数据对自身位置姿态进行定位,进而实现自主导航。当机器人拥有地图,但却不知道其位于地图的哪个位置时,就需要进行重定位。具体的,在导航过程中,机器人会相应地感知自身周边环境信息,并结合已有的地图数据确认当前是否存在导航错误的问题,接着在确认存在导航错误的情况下,根据感知的环境信息配合已有的地图数据对当前导航位置进行调整。重定位很多时候是机器人开始工作的第一步,重定位的成功与否是其之后能否正常工作的大前提。因此,如何降低重定位性能受环境变化的影响程度,提高重定位的精准度及实现效率,对本领域技术人员而言便是为提升机器人重定位效果所需解决的技术问题。
技术实现要素:
为解决上述问题,本发明提供了一种多点带约束重定位的方法、芯片和机器人,大大提高了机器人重定位的能力。本发明的具体技术方案如下:
一种多点带约束重定位的方法,所述方法包括如下步骤:s1,机器人使用激光雷达检测并前往当前环境的点云中心,然后进行重定位,若重定位结果满足第一预设条件,则进入s2;s2,机器人前往下一环境的点云中心再次进行重定位,若重定位结果满足第二预设条件,就将所有进行过重定位的点形成一条约束链并进行约束校验,约束校验成功则重定位成功,约束校验失败则进入s3,若结果不满足第二预设条件,则重定位失败;s3,机器人重复执行s2,直至重定位成功、重定位次数达到预设次数或重定位结果不满足第二预设条件。本发明所述的方法采用多点重定位的方式,利用点间的约束链做约束校验可以提高机器人重定位的能力。
进一步地,所述机器人进行重定位的过程为,机器人使用当前环境的点云地图去遍历预存的地图,得到若干匹配结果,然后将其中匹配度最高的位置对应的匹配结果作为重定位结果。
进一步地,所述重定位结果包括三个参数,分别为匹配分数、匹配面积和匹配面积率。
进一步地,所述匹配分数和匹配面积的乘积最大的位置即是匹配度最高的位置。
进一步地,所述步骤s1中,重定位结果满足第一预设条件的判断方法为,所述匹配分数、匹配面积和匹配面积率小于它们各自的最大预设阈值,但大于等于它们各自的最小预设阈值。
进一步地,所述步骤s1中,当所述匹配分数、匹配面积和匹配面积率大于等于它们各自的最大预设阈值时,机器人重定位成功,所述匹配分数、匹配面积和匹配面积率小于它们各自的最小预设阈值时,机器人重定位失败。
进一步地,所述步骤s2中,机器人前往下一环境的方法为,机器人使用rrt算法进行规划,可以得到下一环境的目标点。使用rrt算法可以快速地搜索空间,找到目标点。
进一步地,所述步骤s2中,重定位结果满足第二预设条件的判断方法为,所述匹配分数、匹配面积和匹配面积率大于等于它们各自的最小预设阈值。
进一步地,所述步骤s2中,约束校验的方法为:当约束链中只有两个点时:机器人计算两个点的实际距离,然后计算它们在地图上的匹配距离,若实际距离和匹配距离相等或误差在预设范围内,则约束校验成功,否则约束校验失败;当约束链中有超过两个点时:s21,机器人在约束链中取两组点,包括第一组点和第二组点,每组包含两个点,所述两组点中包含约束链的第一个点和最后一个点,且第一组点和第二组点中有一个点相同;s22,机器人计算第一组中两个点的实际距离,然后计算它们在地图上的匹配距离,若实际距离和匹配距离相等,则第一组点约束校验成功,进入s23,否则约束校验失败;s23,机器人比较第二组点的实际距离和匹配距离,若两组点都约束校验成功,则机器人重定位成功。当第一次重定位的结果可信度不高时,通过约束校验的方式,可以提高机器人重定位的能力,得到更为精准的重定位结果。
一种芯片,该芯片用于存储程序,该程序被配置为执行所述的一种多点带约束重定位的方法。本发明所述的芯片可以控制机器人采用多点重定位的方式,利用点间的约束链做约束校验来提高重定位的能力。
一种机器人,机器人的机体表面装配有用于扫描环境的传感器,该机器人内部设置有所述芯片,用于控制机器人执行所述的一种多点带约束重定位的方法。本发明所述的机器人可以采用多点重定位的方式,利用点间的约束链做约束校验来提高重定位的能力。
附图说明
图1为本发明一种实施例所述多点带约束重定位的方法流程图。
图2为本发明一种实施例所述由多个点形成的约束链示意图。
图3为本发明一种实施例所述约束校验在成功情况下的示意图。
图4为本发明一种实施例所述约束校验在失败情况下的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细描述。应当理解,下面所描述的具体实施例仅用于解释本发明,并不用于限定本发明。
如图1所示,一种多点带约束重定位方法,所述方法包括如下步骤:
步骤s1,机器人使用激光雷达检测并前往当前环境的点云中心,然后进行重定位,若重定位结果满足第一预设条件,则进入s2。其中,机器人上安装有可用于实时扫描环境的激光雷达,且机器人已预存有全局激光栅格地图。
在执行步骤s1的过程中,机器人先使用激光雷达扫描周围环境,然后找出激光雷达打出来的点云的中心点。一般点云中心会处于较空旷的位置,这样的点可以提高机器人重定位成功的概率。当然,也可以利用其它处于空旷位置的点进行重定位。比如,在机器人前往点云中心的过程中,可以采用霍夫变换提取直线,并计算机器人与直线的距离是否大于预设阈值。如果检测到大于预设阈值,则表明机器人已经远离墙或者障碍物,处于一个空旷区域。此时,机器人直接停止行走,原地进行重定位即可。
重定位过程中,机器人使用激光雷达实时扫描的点云地图去遍历预存的全局激光栅格地图。遍历的过程是一个地图匹配的过程,每匹配一次,可以得到包含匹配分数、匹配面积和匹配面积率这三个参数的匹配结果。其中,匹配分数是点云地图上的点落在全局激光栅格地图上相应匹配位置时,与障碍物重合的百分比。比如,如果点云地图上的点与相应匹配位置的障碍物完全重合,那么匹配分数为1,如果有60%重合,那么匹配分数为0.6。匹配面积,先把点云地图映射全局激光栅格地图上相应匹配位置上,然后对每个检测到的障碍物点,计算从原点到该点的线段上障碍物的个数。如果障碍物的个数小于等于预设个数,那么将所有线段上对应的栅格数进行相加,即可得到匹配面积。需要说明的是,只有灰度值大于一定数值的栅格才会被认为是障碍物。获得匹配面积后,除以点云地图总的面积可得到匹配面积率,其中,点云地图总的面积是取点云的最大的xy值和最小的xy值做矩形算得的面积。
遍历结束后,得到点云地图在全局激光栅格地图上不同的位置的匹配结果,选择其中匹配度最高的位置对应的匹配结果作为重定位结果。匹配分数、匹配面积和匹配面积率分别设置有对应的最小预设阈值和最大预设阈值。在机器人第一次重定位时,若匹配分数、匹配面积和匹配面积率大于等于它们对应的最大预设阈值,那么认为重定位结果具有较高的可信度,机器人重定位成功。需要说明的是,如果有多个位置的匹配结果大于最大预设阈值,则选择匹配分数与匹配面积乘积最大的一组匹配结果用于后续的判断。若匹配分数、匹配面积和匹配面积率小于它们各自对应的最小预设阈值,则认为重定位结果不可信,机器人重定位失败。若匹配分数、匹配面积和匹配面积率处于对应的最小预设阈值和最大预设阈值之间,则认为重定位结果具有一定的可信度,但不太可靠,如果直接使用该结果进行下一步操作,可能会产生错误。因此,提出本发明的一种多点带约束重定位方法,使机器人在第一次重定位结果不可靠的情况下,进行二次或多次的重定位,并利用重定位的点形成的约束链做约束校验来提高结果的可信度,从而提高机器人的重定位能力。
步骤s2,机器人前往下一环境的点云中心再次进行重定位,若重定位结果满足第二预设条件,就将所有进行过重定位的点形成一条约束链并进行约束校验,约束校验成功则重定位成功,约束校验失败则进入s3,若结果不满足第二预设条件,则重定位失败。
在执行步骤s2的过程中,机器人通过rrt快速扩展随机树算法搜索出下一环境的目标点并前往,然后使用激光雷达找出新环境的点云中心进行第二次重定位。与第一次重定位不同,从第二次重定位开始,除了匹配分数、匹配面积和匹配面积率需要满足条件外,还必须进行约束校验,以提高重定位结果的可信度。当第二次重定位的匹配分数、匹配面积和匹配面积率大于等于最小阈值时,将机器人两次进行重定位的点形成一条约束链并进行约束校验:机器人利用里程计和imu(惯性测量单元)计算两次重定位的点之间的实际距离,以及根据重定位结果计算两个点在地图上的匹配距离,然后进行比较。如图3所示,当实际距离和匹配距离相等或在一定的误差范围内时,约束校验成功,表明重定位结果可信度较高,重定位成功。而如果出现如图4所示的情况,实际距离和匹配距离相差较大,则约束校验失败,需要进入s3进行下一次重定位和约束校验。
可选地,当第二次重定位的匹配分数、匹配面积和匹配面积率大于等于最小预设阈值,但小于最大预设阈值时,可选择暂时跳过约束校验,待得到第三次重定位结果(需满足条件)后,结合三个点进行约束校验。
步骤s3,机器人重复执行s2,直至重定位成功、重定位次数达到预设次数或重定位结果不满足第二预设条件。
当出现如图4所示的约束校验失败的情况,机器人重复执行步骤s2,这样可以获取更多的点形成约束链。经过实验,采用约束链的方式比单约束(每次只取两个点进行约束校验为单约束)的鲁棒性更高。参照图2所示的6种不同情况的约束链(一个√代表一个重定位的点,图中未显示所有约束情况),图上方显示的是两条第三次重定位的约束链,图下方显示的是四条第四次重定位的约束链,当约束链中有超过两个点时,执行如下步骤:
步骤s21,机器人在约束链中取两组点,包括第一组点和第二组点,每组包含两个点,所述两组点中包含约束链的第一个点和最后一个点,且第一组点和第二组点中有一个点相同。需要强调的是,两组点中必须包含一个相同的点。比如第三次重定位时,取第一个点和第二个点作为第一组点,取第二个点和第三个点作为第二组点即可形成一条约束链。又如,在第四次重定位时,取第一个点和第二个点作为第一组点,取第三个点和第四个点作为第二组点则无法形成约束链。
步骤s22,机器人计算第一组中两个点的实际距离,然后计算它们在地图上的匹配距离,若实际距离和匹配距离相等,则第一组点约束校验成功,进入s23,否则约束校验失败。在执行步骤s22的过程中,机器人计算的是第一组点中两个点的实际直线距离。如果第一组点约束校验失败,那么将跳过步骤s23。
步骤s23,机器人比较第二组点的实际距离和匹配距离,若两组点都约束校验成功,则机器人重定位成功。
可选地,可取三组点进行约束校验,只要第三组点中存在一个点与第一组或第二组中的任一点相同即可。当三组点都约束校验成功,则机器人重定位成功。这种方式可用于对机器人重定位要求较高的场景。
本发明还公开了一种芯片,该芯片用于存储计算机程序代码,所述计算机程序代码被配置为执行所述的一种多点带约束重定位的方法。
本发明还公开了一种机器人,机器人的机体表面装配有用于扫描环境的传感器,如激光雷达、深度相机或超声传感器中的一种或多种,该机器人内部设置有所述芯片,用于控制机器人执行所述的一种多点带约束重定位的方法。
显然,上述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,各个实施例之间的技术方案可以相互结合。此外,如果实施例中出现“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等术语,其指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位或以特定的方位构造和操作,因此不能理解为对本发明的限制。如果实施例中出现“第一”、“第二”、“第三”等术语,是为了便于相关特征的区分,不能理解为指示或暗示其相对重要性、次序的先后或者技术特征的数量。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。这些程序可以存储于计算机可读取存储介质(比如rom、ram、磁碟或者光盘等各种可以存储程序代码的介质)中。该程序在执行时,执行包括上述各方法实施例的步骤。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
1.一种多点带约束重定位的方法,其特征在于,所述方法包括如下步骤:
s1,机器人使用激光雷达检测并前往当前环境的点云中心,然后进行重定位,若重定位结果满足第一预设条件,则进入s2;
s2,机器人前往下一环境的点云中心再次进行重定位,若重定位结果满足第二预设条件,就将所有进行过重定位的点形成一条约束链并进行约束校验,约束校验成功则重定位成功,约束校验失败则进入s3,若结果不满足第二预设条件,则重定位失败;
s3,机器人重复执行s2,直至重定位成功、重定位次数达到预设次数或重定位结果不满足第二预设条件。
2.根据权利要求1所述的一种多点带约束重定位的方法,其特征在于,所述机器人进行重定位的过程为,机器人使用当前环境的点云地图去遍历预存的地图,得到若干匹配结果,然后将其中匹配度最高的位置对应的匹配结果作为重定位结果。
3.根据权利要求2所述的一种多点带约束重定位的方法,其特征在于,所述重定位结果包括三个参数,分别为匹配分数、匹配面积和匹配面积率。
4.根据权利要求3所述的一种多点带约束重定位的方法,其特征在于,所述匹配分数和匹配面积的乘积最大的位置即是匹配度最高的位置。
5.根据权利要求3所述的一种多点带约束重定位的方法,其特征在于,所述步骤s1中,重定位结果满足第一预设条件的判断方法为,所述匹配分数、匹配面积和匹配面积率小于它们各自的最大预设阈值,但大于等于它们各自的最小预设阈值。
6.根据权利要求5所述的一种多点带约束重定位的方法,其特征在于,所述步骤s1中,当所述匹配分数、匹配面积和匹配面积率大于等于它们各自的最大预设阈值时,机器人重定位成功,所述匹配分数、匹配面积和匹配面积率小于它们各自的最小预设阈值时,机器人重定位失败。
7.根据权利要求1所述的一种多点带约束重定位的方法,其特征在于,所述步骤s2中,机器人前往下一环境的方法为,机器人使用rrt算法进行规划,可以得到下一环境的目标点。
8.根据权利要求3所述的一种多点带约束重定位的方法,其特征在于,所述步骤s2中,重定位结果满足第二预设条件的判断方法为,所述匹配分数、匹配面积和匹配面积率大于等于它们各自的最小预设阈值。
9.根据权利要求1所述的一种多点带约束重定位的方法,其特征在于,所述步骤s2中,约束校验的方法为:
当约束链中只有两个点时:
机器人计算两个点的实际距离,然后计算它们在地图上的匹配距离,若实际距离和匹配距离相等或误差在预设范围内,则约束校验成功,否则约束校验失败;
当约束链中有超过两个点时:
s21,机器人在约束链中取两组点,包括第一组点和第二组点,每组包含两个点,所述两组点中包含约束链的第一个点和最后一个点,且第一组点和第二组点中有一个点相同;
s22,机器人计算第一组中两个点的实际距离,然后计算它们在地图上的匹配距离,若实际距离和匹配距离相等,则第一组点约束校验成功,进入s23,否则约束校验失败;
s23,机器人比较第二组点的实际距离和匹配距离,若两组点都约束校验成功,则机器人重定位成功。
10.一种芯片,该芯片用于存储程序,其特征在于,该程序被配置为执行权利要求1至9任一项所述的一种多点带约束重定位的方法。
11.一种机器人,机器人的机体表面装配有用于扫描环境的传感器,其特征在于,该机器人内部设置权利要求10所述的芯片,用于执行权利要求1至9任一项所述的一种多点带约束重定位的方法。
技术总结