System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及机器人领域,更具体地,涉及一种机器人定位方法和机器人。
技术介绍
1、定位与导航是移动机器人的关键技术之一,在移动机器人中,通过传感器数据实现可靠的定位是其基本和重要的功能。由于机器人应用场景复杂,在例如灰尘和雾气弥散等应用场景下,机器人采集到的周边环境中的点云容易包含大量噪声点,造成机器人定位过程中计算量过大。因此,如何降低机器人在复杂场景下进行定位时的算力需求是本领域目前亟待解决的问题。
技术实现思路
1、本申请提供一种机器人定位方法和机器人,通过对机器人采集到的周边环境点云信息进行角度滤波、直线滤波及体素滤波处理,减少机器人在复杂场景下进行定位时的计算量,降低机器人的算力需求。
2、第一方面,提供了一种机器人定位方法,包括获取机器人采集的当前帧点云与上一帧点云对应的运动参数,其中,运动参数至少包括线速度和角速度;对当前帧点云至少进行角度滤波、直线滤波及体素滤波处理,得到当前帧优化点云;其中,角度滤波用于剔除当前帧点云中的噪声点,直线滤波用于从当前帧点云中提取结构化场景,体素滤波用于对当前帧点云中的特征点聚类;根据当前帧优化点云与上一帧点云对应的运动参数,计算机器人在采集当前帧点云时对应的位姿,以实现定位。
3、本申请实施例中,机器人通过对点云进行角度滤波、直线滤波及体素滤波处理,并基于处理后的优化点云实现定位,使得机器人在例如灰尘和雾气弥散等复杂场景下进行定位时的计算量减少,降低了对机器人的算力需求。
4、结合第一方面,在第一方面
5、本申请提供的实施例中,直线滤波在角度滤波后进行,使得直线滤波需要处理的特征点中噪声更少,可以增加直线滤波提取的结构化场景的准确性;体素滤波在直线滤波后进行,使得体素滤波结果准确度更高,同时由于减少了体素滤波需要处理的特征点数量,还可以减少进行体素滤波时的计算量。按照角度滤波、直线滤波、体素滤波的顺序执行滤波能够剔除点云中大量噪声点,尤其适用于算力较低的机器人定位场景。
6、结合第一方面,在第一方面的某些实现方式中,机器人在对点云进行滤波之前,先进行降采样处理。可以通过设置一定的时间间隔来周期性对采集点云数据进行降采样,使点云数据的疏密程度一致,并且降低后续机器人定位的计算量。
7、结合第一方面,在第一方面的某些实现方式中,角度滤波包括:读取预设参数配置表,获取相关参数,相关参数包括但不限于:最小滤波角度、最大滤波角度;计算当前帧点云的当前特征点与上一帧点云中与当前特征点匹配的特征点之间的角度,若角度小于最小滤波角,或角度大于最大滤波角,则从当前帧点云中剔除相应的特征点。
8、本申请提供的实施例中,角度滤波用于解决机器人处于特殊环境中时点云信息噪声过多的问题。例如,当机器人处于灰尘或者雾气中时,灰尘或者雾气会产生弥散效应,使得机器人采集到的激光点云信息或者图像点云信息中形成一团杂乱无序的噪声点云。对这部分点云进行角度滤波,可以得到感兴趣区域的点云数据,从而在降低机器人定位计算量的同时提高定位精度。
9、结合第一方面及第一方面的某些实现方式,在第一方面的另一些实现方式中,直线滤波包括:选取当前帧点云与上一帧点云中的部分点构建直线并基于部分点的坐标计算当前直线的直线方程;在当前直线中加入点云中不用于构建直线的其余点,基于当前加入点的坐标与当前直线的直线方程计算当前加入点到当前直线的距离;若当前加入点到当前直线的距离大于预设距离阈值,则剔除当前加入点及计算下一点;反之若当前加入点到当前直线的距离位于预设距离阈值范围内,则通过直线拟合重新计算当前直线的直线方程。
10、结合第一方面及第一方面的某些实现方式,在第一方面的另一些实现方式中,直线滤波还包括:若所有当前加入点与当前直线的距离均位于预设距离阈值范围外,则在当前帧点云与上一帧点云中重新选择部分点以重新构建直线。
11、在本申请实施例中,由于噪声的影响,机器人周围环境中直线等结构化场景在机器人采集到的点云中呈现出来的可能不是规则直线,需要对其中的点云数据进行直线滤波,提取出直线等结构化场景,从而便于后续对机器人周围环境的进一步感知。
12、示例性的,机器人周围环境中的直线结构可以是机器人移动道路的边界,或者机器人移动道路上的标志物等,本申请不做具体限定。
13、结合第一方面及第一方面的某些实现方式,在第一方面的另一些实现方式中,体素滤波包括:对当前帧点云创建体素网格,用每个体素网格中包含特征点的重心或者中心替代每个体素网格中包含的特征点。
14、在本申请实施例中,体素滤波不仅可以在不破坏点云本身结构的情况下将点云有效的聚类,还进一步减少了点云信息数量,进而减少了机器人后续处理点云信息的计算量,降低了对机器人的算力需求。
15、结合第一方面及第一方面的某些实现方式,在第一方面的另一些实现方式中,根据当前帧优化点云与上一帧点云对应的运动参数,计算机器人在采集当前帧点云时对应的位姿,包括:将当前帧优化点云与预设地图进行匹配,获取当前帧点云对应的初始位姿;预设地图由通过对场景进行扫描得到的历史帧点云进行拼接得到;基于上一帧点云对应的初始位姿及运动参数,获取当前帧点云对应的预测位姿;利用当前帧点云的预测位姿对初始位姿进行修正,得到机器人在采集当前帧点云时的位姿。
16、本申请实施例中,通过预测位姿对初始位姿进行修正的方式获得机器人位姿,能够改善仅通过点云信息确定的初始位姿中由于测量误差导致的位姿结果不准确的问题,提升了机器人定位的准确度。
17、结合第一方面及第一方面的某些实现方式,在第一方面的另一些实现方式中,基于上一帧点云对应的初始位姿及运动参数,获取当前帧点云对应的预测位姿,包括:利用上一帧点云的初始位姿、运动参数及预设运动模型预测当前帧点云对应的位姿,得到机器人采集当前帧点云时对应的预测位姿;预设运动模型为两轮差速模型,运动参数包括机器人在采集上一帧点云时左右轮的线速度,其中,包括:根据采集上一帧点云时左右轮的线速度计算采集上一帧点云时左右轮中心的角速度;获取机器人采集上一帧点云与当前帧点云之间的时间间隔,利用机器人采集上一帧点云时对应的线速度和角速度及时间间隔进行计算得到机器人在采集当前帧点云时的预测位姿。
18、结合第一方面及第一方面的某些实现方式,在第一方面的另一些实现方式中,利用当前帧点云的预测位姿对初始位姿进行修正,得到机器人在采集当前帧点云时的位姿,包括:获取机器人当前的系统噪声,利用当前帧点云的预测位姿与系统噪声进行非线性建模,得到与当前帧点云的初始位姿对应的估计位姿;计算初始位姿与估计位姿的差值结合卡尔曼增益对预测位姿进行修正,得到机器人在采集当前帧点云时的位姿。
19、本申请实施例中,机器人在计算位姿时考虑了系统噪声,更符合机器人在运动过程中的实际情况,本文档来自技高网...
【技术保护点】
1.一种机器人定位方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述角度滤波包括:
3.根据权利要求1或2所述的方法,其特征在于,所述直线滤波包括:
4.根据权利要求3所述的方法,其特征在于,所述直线滤波还包括:
5.根据权利要求1或2所述的方法,其特征在于,所述体素滤波包括:
6.根据权利要求1或2所述的方法,其特征在于,所述根据所述当前帧优化点云与所述上一帧点云对应的运动参数,计算所述机器人在采集当前帧点云时对应的位姿,包括:
7.根据权利要求6所述的方法,其特征在于,所述基于所述上一帧点云对应的初始位姿及运动参数,获取所述当前帧点云对应的预测位姿,包括:
8.根据权利要求6或7所述的方法,其特征在于,所述利用所述当前帧点云的预测位姿对所述初始位姿进行修正,得到所述机器人在采集所述当前帧点云时的位姿,包括:
9.一种机器人,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被
...【技术特征摘要】
1.一种机器人定位方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述角度滤波包括:
3.根据权利要求1或2所述的方法,其特征在于,所述直线滤波包括:
4.根据权利要求3所述的方法,其特征在于,所述直线滤波还包括:
5.根据权利要求1或2所述的方法,其特征在于,所述体素滤波包括:
6.根据权利要求1或2所述的方法,其特征在于,所述根据所述当前帧优化点云与所述上一帧点云对应的运动参数,计算所述机器人在采集当前帧点云时对应的位姿,包...
【专利技术属性】
技术研发人员:陈向,庞敏健,朱毅宁,
申请(专利权)人:奥比中光科技集团股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。