定位漂移检测方法及装置、机器人
技术领域
本发明涉及定位领域,特别是涉及一种定位漂移检测方法及装置、机器人、可读存储介质。
背景技术
机器人、无人飞行器等具有自主运动能力的载体,在工作过程中可以对其上安装的传感器数据进行采集,结合已有的地图数据,生成对载体自身位置姿态(简称位姿)的定位,从而进行自主导航。
载体定位常用的传感器为距离传感器,例如激光雷达等。可以使用距离传感器对载体周围的物体进行测距,采集到的信息包括多个反射点,每个反射点具有角度和距离信息,提供了该角度上的障碍物信息。将这些反射点与已有的地图数据进行匹配,反射点与地图数据的匹配度越高,定位得到的位姿准确的概率越大。理想情况下,机器人位姿准确的时候所有的反射点都应该和地图上的障碍物相匹配。
然而实际应用中,可能出现定位漂移,定位漂移也可以被称为位姿丢失,即定位得到的位姿与实际不符,其原因可能有很多种,例如地图歪曲或者错误、路面打滑或者机器人遭到绑架导致码盘无法检测位置的移动、机器人初始定位不准确就开始了导航、机器人行走在特殊反射区域导致传感器数据出现偏差等等。出现定位漂移后如果不能及时发现并纠正,而是基于错误的位姿继续导航,可能造成导航错误、导航失败、发生安全事故等不良后果。
发明内容
本发明主要解决的技术问题是提供一种定位漂移检测方法及装置、机器人、可读存储介质,能够解决现有技术中无法及时检测到定位漂移的问题。
为了解决上述技术问题,本发明提供了一种定位漂移检测方法,该方法包括:获取多个反射点;将多个反射点与地图数据匹配以将多个反射点映射到地图上;根据映射结果分别判断反射点是否在地图内并确定反射点的对应障碍点,对应障碍点是与反射点距离最近的障碍点;分别根据反射点是否在地图内以及反射点与其对应障碍点之间的距离计算反射点的漂移概率及正确概率;利用多个反射点的漂移概率及正确概率计算定位漂移概率;若定位漂移概率落入漂移区间,则判定出现定位漂移。
为了解决上述技术问题,本发明提供了一种定位漂移检测装置,该装置包括至少一个处理器,单独或协同工作,处理器用于执行指令以实现前述的定位漂移检测方法。
为了解决上述技术问题,本发明提供了一种机器人,该机器人包括处理器和距离传感器,处理器连接距离传感器,处理器用于执行指令以实现前述的定位漂移检测方法。
为了解决上述技术问题,本发明提供了一种可读存储介质,存储有指令,指令被执行时实现前述的定位漂移检测方法。
本发明的有益效果是:通过获取多个反射点;将多个反射点与地图数据匹配以将多个反射点映射到地图上;根据映射结果分别判断反射点是否在地图内并确定反射点的对应障碍点,对应障碍点是与反射点距离最近的障碍点;分别根据反射点是否在地图内以及反射点与其对应障碍点之间的距离计算反射点的漂移概率及正确概率;利用多个反射点的漂移概率及正确概率计算定位漂移概率;若定位漂移概率落入漂移区间,则判定出现定位漂移。区分了反射点在地图内和地图外的两种情况,前者有较大可能是临时障碍导致的,后者有较大可能是定位漂移导致的,结合反射点与其对应障碍点之间的距离,计算得到多个反射点的漂移概率及正确概率,综合判断是否出现定位漂移,实现及时准确的定位漂移检测,从而提高定位的鲁棒性和导航的安全性。
附图说明
图1是本发明定位漂移检测方法一实施例的流程示意图;
图2是本发明定位漂移检测方法一实施例中反射点没有与障碍点匹配第一种情况的示意图;
图3是本发明定位漂移检测方法一实施例中反射点没有与障碍点匹配第二种情况的示意图;
图4是本发明定位漂移检测方法一具体实施例中地图外反射点的漂移概率的概率密度函数示意图;
图5是本发明定位漂移检测方法一具体实施例中反射点的正确概率的概率密度函数示意图;
图6是本发明定位漂移检测装置第一实施例的结构示意图;
图7是本发明机器人第一实施例的结构示意图;
图8是本发明可读存储介质第一实施例的结构示意图。
具体实施方式
下面结合附图和实施例对本发明进行详细说明。以下各实施例中不冲突的可以相互结合。
如图1所示,本发明定位漂移检测方法一实施例包括:
S1:获取多个反射点。
为便于说明,以下以机器人为例说明载体在导航过程中定位漂移检测的过程。实际应用中,载体也可以为其他能够自主运动和导航的设备,例如无人飞行器等。
机器人可以利用距离传感器扫描周围环境以对周围的物体进行测距得到多个反射点。每个反射点具有准确角度和距离信息,提供了该角度上的障碍物信息。距离传感器可以为激光雷达、超声波测距传感器、红外测距传感器等。
S2:将多个反射点与地图数据匹配以将多个反射点映射到地图上。
在建图过程中,建图机器人扫描周围的环境获取环境信息记录生成地图数据。建图机器人与本实施例中的机器人可以是同一个机器人,也可以是不同的机器人。地图可分为地图内和地图外两种区域,二者之间以障碍点分隔。障碍点是建图机器人扫描到的障碍物反射点。地图内区域是机器人可以通行的区域,地图外区域是建图机器人建图过程中没有扫描到的区域,也是不可通行的区域。
机器人将多个反射点与地图数据匹配,确定自身在地图上的位置,结合根据反射点提供的距离和角度信息获取的反射点相对于机器人的位置,可以将多个反射点映射到地图上,即得到多个反射点在地图上的坐标。
S3:根据映射结果分别判断反射点是否在地图内并确定反射点的对应障碍点。
对于每个反射点,可以根据其在地图上的坐标来判断该反射点是在地图内还是地图外,并且确定该反射点的对应障碍点。对应障碍点是与反射点距离最近的障碍点。如果某个反射点与障碍点完全重合,则可以认为该反射点在地图内,其对应障碍点就是完全重合的障碍点,二者之间的距离为0。
反射点在地图上的坐标是由机器人在地图上的位置以及反射点相对于机器人的位置共同决定的。理想情况下,映射到地图上的每个反射点都与一个障碍点完全重合。假设机器人位置是正确的,但是反射点没有与障碍点匹配,可分为两种情况:第一种是反射点在地图内,第二种是反射点在地图外。
第一种情况可能是机器人遇到临时障碍导致的,例如机器人在移动过程中被多人围观等,此时地图上的障碍物被临时障碍所遮挡,造成一些反射点的匹配失败,但实际上并未出现位姿丢失。图2所示的就是第一种情况的一个例子。
建图机器人在建图过程中已经记录下了周围的障碍物,如果没有临时障碍物出现,机器人在导航过程中能“看”到的场景应该和建图时一模一样。即使有临时障碍物出现,那也应该是在地图内出现,机器人不可能看到地图外的东西,即机器人的视野应该被局限在地图内。第二种情况可能意味着机器人在地图上的位置是错误的,即出现了定位漂移,属于异常现象。图3所示的就是第二种情况的一个例子。
图2和图3中的白色区域表示地图内,灰色区域表示地图外。
简单的按照反射点的匹配度来判断是否出现定位漂移无法区分上述两种情况,可能出现误判。
S4:分别根据反射点是否在地图内以及反射点与其对应障碍点之间的距离计算反射点的漂移概率及正确概率。
实际应用中,由于噪声、误差等因素的存在,没有出现定位漂移的情况下,反射点往往不能和障碍点完全重合。对于单个反射点,可以根据该反射点是否在地图内以及该反射点与其对应障碍点之间的距离计算该反射点的漂移概率及正确概率。
某个反射点与其对应障碍点之间的距离越小,该反射点的正确概率,或者说匹配准确度越高;漂移概率与该反射点是否在地图内相关,当该反射点在地图外时,距离越大,漂移概率越大。
在一具体实施例中,对于单个反射点,该反射点与其对应障碍点之间的距离为dist,若该反射点在地图内,其漂移概率为0,若该反射点在地图外,其漂移概率为λe
λ·dist。无论在地图内还是地图外,该反射点的正确概率为
其中λ为第一系数,α为第二系数,σ为标准差,第一系数和第二系数均为正数。第二系数可以与标准差σ相关。
S5:利用多个反射点的漂移概率及正确概率计算定位漂移概率。
机器人单次扫描获取了多个反射点,判断定位漂移概率不仅要考虑单个反射点出现定位漂移的可能性,还要整体考虑多个反射点的情况来决定。可以利用多个反射点的漂移概率计算总体漂移概率,并利用多个反射点的正确概率计算总体正确概率,然后再利用总体漂移概率和总体正确概率计算定位漂移概率。
总体漂移概率可以为多个反射点的漂移概率的平均值,总体正确概率可以为多个反射点的正确概率的平均值。可选的,如果每次检测的反射点的数量相同,或者不考虑反射点数量的影响,总体漂移概率可以为多个反射点的漂移概率的和,总体正确概率为多个反射点的可以正确概率的和。此外也可以采用其他方式,例如加权和等,来计算总体漂移概率和总体正确概率。
总体漂移概率越高,出现定位漂移的可能性越高;总体正确概率越高,出现定位漂移的可能性越低。定位漂移概率可以为总体漂移概率减去总体正确概率之差,此时定位漂移概率越高,出现定位漂移的可能性越高。或者,定位漂移概率可以为总体正确概率减去总体漂移概率之差,此时定位漂移概率越高,出现定位漂移的可能性越低。
S6:若定位漂移概率落入漂移区间,则判定出现定位漂移。
定位漂移概率为总体漂移概率减去总体正确概率之差时,漂移区间的最小值可以为预设阈值,漂移区间的最大值可以根据总体漂移概率和总体正确概率的定义取一个合适的值,甚至不设最大值,即只判断定位漂移概率是否大于预设阈值,大于则判定出现定位漂移。定位漂移概率为总体正确概率减去总体漂移概率之差时,漂移区间的最大值为预设阈值,漂移区间的最小值可以根据总体漂移概率和总体正确概率的定义取一个合适的值,甚至不设最小值,即只判断定位漂移概率是否小于预设阈值,小于则判定出现定位漂移。
上述过程在机器人的导航过程中可以多次执行,例如机器人每次定位之后检测是否出现定位漂移,或者机器人周期性的检测是否出现定位漂移。
判定出现定位漂移后,机器人可以进行相应的处理,例如停止导航、启动重定位等。
通过本实施例的实施,区分了反射点在地图内和地图外的两种情况,前者有较大可能是临时障碍导致的,后者有较大可能是定位漂移导致的,结合反射点与其对应障碍点之间的距离,计算得到多个反射点的漂移概率及正确概率,综合判断是否出现定位漂移,实现及时准确的定位漂移检测,从而提高定位的鲁棒性和导航的安全性。
下面结合附图具体说明定位检测的具体过程。
在本发明定位漂移检测方法一具体实施例中,机器人采用激光雷达作为距离传感器。机器人利用激光雷达对周围环境进行扫描得到n个反射点(也可以被称为激光点),n为反射点的总数。机器人将这些反射点与地图数据匹配,确定自身在地图上的位置,然后将这些反射点映射到地图上,得到这些反射点在地图上的坐标,接着根据映射结果分别判断每个反射点是否在地图内并确定每个反射点的对应障碍点。
第i个反射点与其对应障碍点之间的距离为disti,i=1,2,…,n。
若第i个反射点在地图内,其漂移概率p_out
i=0,其正确概率
地图外反射点的漂移概率呈指数分布,其概率密度函数如图4所示。
反射点(无论在地图外还是地图内)的正确概率呈正态分布,其概率密度函数如图5所示。由于一般来说距离不考虑方向,disti均大于或等于0,可以只取图5中正态分布的右半部分来示意反射点的正确概率的概率密度函数。
总体漂移概率为n个反射点的漂移概率的和,即总体漂移概率为
总体正确概率为n个反射点的正确概率的和,即总体正确概率为
上面这种总体漂移概率和总体正确概率的计算方式是基于机器人每次扫描得到的激光点数量变化不大,或者不考虑反射点数量的影响。如果考虑反射点数量的影响,总体漂移概率可以为n个反射点的漂移概率的平均值,即总体漂移概率为
总体正确概率为n个反射点的正确概率的平均值,即总体正确概率为
最终的定位漂移概率为总体漂移概率减去总体正确概率之差,即P_OUT_PROB=P_OUT-P_IN。将定位漂移概率P_OUT_PROB与预设阈值比较,若定位漂移概率P_OUT_PROB大于该预设阈值,则判定出现定位漂移。
如图6所示,本发明定位漂移检测装置第一实施例包括:处理器110。图中只画出了一个处理器110,实际数量可以更多。处理器110可以单独或者协同工作。
处理器110控制定位漂移检测装置的操作,处理器110还可以称为CPU(CentralProcessing Unit,中央处理单元)。处理器110可能是一种集成电路芯片,具有信号序列的处理能力。处理器110还可以是通用处理器、数字信号序列处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
处理器110用于执行指令以实现本发明定位漂移检测方法任一实施例以及不冲突的组合所提供的方法。
如图7所示,本发明机器人第一实施例包括:处理器210和距离传感器220。
处理器210控制机器人的操作,处理器210还可以称为CPU(Central ProcessingUnit,中央处理单元)。处理器210可能是一种集成电路芯片,具有信号序列的处理能力。处理器210还可以是通用处理器、数字信号序列处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
距离传感器220能够获取测量范围内的障碍物与距离传感器220之间的距离信息。距离传感器可以为激光雷达、超声波测距传感器、红外测距传感器等。
处理器210用于执行指令以实现本发明定位漂移检测方法任一实施例以及不冲突的组合所提供的方法。
如图8所示,本发明可读存储介质第一实施例包括存储器310,存储器310存储有指令,该指令被执行时实现本发明定位漂移检测方法任一实施例以及任意不冲突的组合所提供的方法。
存储器310可以包括只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、闪存(Flash Memory)、硬盘、光盘等。
在本发明所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。