首页> 中国专利> 一种基于激光雷达数据的移动机器人位姿推算方法及系统

一种基于激光雷达数据的移动机器人位姿推算方法及系统

摘要

本发明公开了一种基于激光雷达数据的移动机器人位姿推算方法,首先接收与预处理激光雷达数据;分割聚类环境数据;然后从激光雷达数据中选择簇群;并对目标簇群进行跟踪;获取簇群中每个子簇群的顶点在局部坐标系下的坐标数据,获取簇群的顶点的坐标和每个连接连线的倾角;将起始点和终点组成连接直线并计算偏转角度;通过滑动滤波计算机器人位置坐标变化后的位置坐标;最后初始化起始点的位姿和采样位姿点。本发明提供的移动机器人位姿推算方法是使用精度较高的二维激光雷达,无需对环境进行任何修改;机器人的位姿信息相对于具体环境客观描述,更便捷将位姿信息集成到其它移动机器人的业务模块中,提高系统的可靠性、易实现性并降低成本。

著录项

  • 公开/公告号CN105867373A

    专利类型发明专利

  • 公开/公告日2016-08-17

    原文格式PDF

  • 申请/专利权人 重庆大学;

    申请/专利号CN201610213132.1

  • 申请日2016-04-07

  • 分类号G05D1/02(20060101);

  • 代理机构11228 北京汇泽知识产权代理有限公司;

  • 代理人武君

  • 地址 400044 重庆市沙坪坝区沙正街174号

  • 入库时间 2023-06-19 00:17:55

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-02-21

    专利权的转移 IPC(主分类):G05D 1/02 专利号:ZL2016102131321 登记生效日:20230208 变更事项:专利权人 变更前权利人:重庆大学 变更后权利人:重庆大学溧阳智慧城市研究院 变更事项:地址 变更前权利人:400044 重庆市沙坪坝区沙正街174号 变更后权利人:213399 江苏省常州市溧阳市昆仑街道泓口路218号B幢5025室

    专利申请权、专利权的转移

  • 2018-09-11

    授权

    授权

  • 2016-09-14

    实质审查的生效 IPC(主分类):G05D1/02 申请日:20160407

    实质审查的生效

  • 2016-08-17

    公开

    公开

说明书

技术领域

本发明涉及移动机器人及智能车辆的局部导航领域,特别涉及一种基于激光雷达数据的移动机器人位姿推算方法。

背景技术

机器人作为一种新型的生产工具,表现出极大的优越性。在减轻劳动强度,提高生产效率,改变生产模式等方面可将人们从危险、恶劣、繁重的工作环境中解放出来。然而随着机器人的不断发展,人们逐渐发现这些固定于某一位置操作的机器人对很多应用需求均不能满足。因此在20世纪80年代后期,许多国家开始有计划地开展了移动机器人技术的研究。

对于移动机器人而言,导航是一个重要的方向。而移动机器人的导航的前提就是对机器人的定位和姿态识别。精确的位姿推算对于移动机器人的定位、自动地图生成、路径规划和控制、目标检测和跟踪等具有重要意义。在二维的平面坐标系下,移动机器人的位姿就是机器人在全局坐标系中的位置以及机器人的车体方向,即表示为:(x,y,θ)。机器人的位置可以用机器人质心坐标点表示为,而用车体前方偏向全局坐标系X轴的夹角来表示车体的方向。在本文中,定义方向角为:以X轴0度,顺时针方向为负,逆时针方向为正;如图1所示,图1机器人的位姿模型;图中XGOGYG为机器所在的全局坐标系;XRORYR为机器人所在的局部坐标系;(x,y)为机器人质心的坐标;θ为机器人相对于起始点的位姿偏转角。应用在移动机器人的位姿推算方法一般可分为两种:航位推算(Dead-Reckoning)是一种非常经典的相对位姿推算方法,通过安装在移动机器人轮子上的光电编码器输出的轮速与移动机器人的运动学模型,累积每个采样周期下的移动机器人位移以及角度偏转。航位推算的优点是方法简单、价格低廉,但从其本质上上可以看出,航位推算方法的精度容易受轮速的标定、车轮与地面的打滑、颠簸等因素造成积分误差而大大降低,因此误差较大。惯性导航系统INS(InertialNavigation>

无论是航位推算还是惯性导航系统,都存在一个共同的缺点:存在积分误差,移动机器人的行程越远,该积分误差越大。因此现有的位姿推算方法并不适用于对机器人位姿信息要求较高的场合。如何实现更加精确的且不受地面情况限制的位姿推算方法,是一个很重要的问题。

因此,需要一种基于激光雷达数据的移动机器人位姿描述方法。

发明内容

本发明的目的就是提供一种基于激光雷达数据的移动机器人位姿描述方法。

本发明的目的是通过这样的技术方案实现的:

本发明提供的一种基于激光雷达数据的移动机器人位姿推算方法,包括以下步骤:

Step1:接收与预处理激光雷达数据;

Step2:分割聚类环境数据;

Step3:从激光雷达数据中选择簇群;

Step4:目标簇群的跟踪;获取簇群中每个子簇群的顶点在局部坐标系下的坐标数据,获取簇群的顶点的坐标和每个连接连线的倾角;

Step5:将起始点和终点组成连接直线并计算簇群中连接直线的偏转角度;

Step6:通过滑动滤波计算机器人位置坐标变化后的位置坐标;

Step7:初始化起点的位姿并存储位置坐标。

进一步,所述步骤Step1中的接收与预处理激光雷达数据的具体步骤如下:

通过与计算机连接的二维扫描型激光雷达传感器获取环境数据;

将环境数据以数组形式存储于计算机中,所述环境数据包括距离信息、激光雷达扫描范围和角度分辨率;

预处理距离数据,包括去除有效范围外的数据点、滤除孤立的噪声点及对激光雷达测量机制的缺陷补偿;

将环境数据从激光雷达的极坐标系下的数据转化为机器人或智能车辆的局部直角坐标系坐标。

进一步,所述步骤Step2中的按照以下步骤来分割聚类环境数据:

循环比较距离数据的每两个相邻数据点差值,标记差值大于分割阈值的数据点为分割点;

存储分割点的角标;

进一步,所述步骤Step3中从激光雷达数据中选择簇群的具体步骤如下:

计算簇群中相对应起始点和终点连接直线;

计算簇群中数据点与连接直线的距离;

获取距离直线最远的数据点为顶点;

计算顶点坐标;

计算连接直线的倾角。

进一步,所述步骤Step5中的连接直线及偏转角度按照以下步骤来实现:

获取机器人相对于起始位置的A'位置坐标和角度信息φ;

对机器人的角度信息进行滑动滤波;

对簇群的角度信息进行滑动滤波;

得到B'位置机器人相对起始位置的角度信息;

通过对角度信息进行均值滤波得到机器人在B'位置的偏转角度:

θB=Σi=1n(φ+θi(j+1)*γ-θij*γ)n;

其中,θB′表示机器人在B'位置的偏转角度;n表示一帧环境数据中经过分割算法分割出来的簇群总数;i表示n个簇群中第i个子簇群;表示第i个子簇群在j*γ时刻的位姿偏转角度;表示第i个子簇群在(j+1)*γ时刻的位姿偏转角度;φ表示机器人在A'位置的偏转角度。

进一步,所述步骤Step6中机器人位置坐标变化后的位置坐标按照以下步骤来计算:

获取机器人相对应起始点的A'位置坐标(x,y);

通过以下公式来计算机器人在B'位置的坐标:

xB=x+||BC||+LROBOT2*COS(θB)yB=y+||CF||-LROBOT2*COS(θB)

其中,LROBOT为机器人长度,xB′表示机器人在B'位置的横坐标;yB′表示机器人在B'位置的纵坐标;||CF||表示机器人质心从A'位置到B'位置的纵坐标距离;||BC||表示机器人质心从A'位置到B'位置的横坐标距离。

本发明还提供了一种基于激光雷达数据的移动机器人位姿推算系统,包括预处理模块、分割聚类模块、簇群选择模块、簇群跟踪模块、偏转角度计算模块、位置坐标计算模块和存储模块;

所述预处理模块,用于接收与预处理激光雷达数据;

所述分割聚类模块,用于分割聚类环境数据;

所述簇群选择模块,用于从激光雷达数据中选择簇群;

所述簇群跟踪模块,用于获取簇群中每个子簇群的顶点在局部坐标系下的坐标数据,获取簇群的顶点的坐标和每个连接连线的倾角;

所述偏转角度计算模块,用于将起始点和终点组成连接直线并计算簇群中连接直线的偏转角度;

所述位置坐标计算模块,用于通过滑动滤波计算机器人位置坐标变化后的位置坐标;

所述存储模块,用于初始化起点的位姿并存储位置坐标。

进一步,所述预处理模块中的接收与预处理激光雷达数据的具体步骤如下:

通过与计算机连接的二维扫描型激光雷达传感器获取环境数据;

将环境数据以数组形式存储于计算机中,所述环境数据包括距离信息、激光雷达扫描范围和角度分辨率;

预处理距离数据,包括去除有效范围外的数据点、滤除孤立的噪声点及对激光雷达测量机制的缺陷补偿;

将环境数据从激光雷达的极坐标系下的数据转化为机器人或智能车辆的局部直角坐标系坐标。

进一步,所述簇群选择模块中从激光雷达数据中选择簇群的具体步骤如下:

计算簇群中相对应起始点和终点连接直线;

计算簇群中数据点与连接直线的距离;

获取距离直线最远的数据点为顶点;

计算顶点坐标;

计算连接直线的倾角。

所述偏转角度计算模块中的连接直线及偏转角度按照以下步骤来实现:

获取机器人相对于起始位置的A'位置坐标和角度信息φ;

对机器人的角度信息进行滑动滤波;

对簇群的角度信息进行滑动滤波;

得到B'位置机器人相对起始位置的角度信息;

通过对角度信息进行均值滤波得到机器人在B'位置的偏转角度:

θB=Σi=1n(φ+θi(j+1)*γ-θij*γ)n;

其中,θB′表示机器人在B'位置的偏转角度;n表示一帧环境数据中经过分割算法分割出来的簇群总数;i表示n个簇群中第i个子簇群;表示第i个子簇群在j*γ时刻的位姿偏转角度;表示第i个子簇群在(j+1)*γ时刻的位姿偏转角度;φ表示机器人在A'位置的偏转角度。

进一步,所述位置坐标计算模块中机器人位置坐标变化后的位置坐标按照以下步骤来计算:

获取机器人相对应起始点的A'位置坐标(x,y);

通过以下公式来计算机器人在B'位置的坐标:

xB=x+||BC||+LROBOT2*COS(θB)yB=y+||CF||-LROBOT2*COS(θB)

其中,LROBOT为机器人长度,xB′表示机器人在B'位置的横坐标;yB′表示机器人在B'位置的纵坐标;||CF||表示机器人质心从A'位置到B'位置的纵坐标距离;||BC||表示机器人质心从A'位置到B'位置的横坐标距离。

由于采用了上述技术方案,本发明具有如下的优点:

本发明提供的移动机器人位姿推算方法是基于移动机器人自身的信息得出的位姿信息,使用激光雷达信息来描述移动机器人的位姿;二维激光雷达具有较高的精度而无需对环境进行任何修改;机器人的位姿信息相对于具体环境客观描述,使用基于激光雷达的位姿估计可以更便捷的将位姿信息集成到其它移动机器人的业务模块中,例如避障路径规划,而省去任何标定过程,从而提高系统的可靠性、易实现性并降低成本。可广泛使用于对环境描述精度较高的二维激光雷达控制中。

本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某 种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书和权利要求书来实现和获得。

附图说明

本发明的附图说明如下。

图1为本发明的机器人的位姿模型示意图。

图2为本发明的ABD算法示意图。

图3a为本发明的顶点在连接直线一侧的簇群示意图。

图3b为本发明的顶点在连接直线另一侧的簇群示意图。

图4a为在第j*γ个时刻起点和终点连线示意图。

图4b为在第(j+1)*γ个时刻起点和终点连线示意图。

图4c为机器人在A'位置和B'位置变化示意图。

图5为本发明的激光雷达数据预处理流程图。

图6为本发明的ABD分割算法流程图。

图7为本发明的位姿推算方法流程图。

具体实施方式

下面结合附图和实施例对本发明作进一步说明。

实施例1

如图所示,本实施例提供的一种基于激光雷达数据的移动机器人位姿推算方法,包括以下步骤:

Step1:接收与预处理激光雷达数据;

Step2:分割聚类环境数据;

Step3:从激光雷达数据中选择簇群;

Step4:目标簇群的跟踪;获取簇群中每个子簇群的顶点在局部坐标系下的坐标数据,获取簇群的顶点的坐标和每个连接连线的倾角;

Step5:将起始点和终点组成连接直线并计算簇群中连接直线的偏转角度;

Step6:通过滑动滤波计算机器人位置坐标变化后的位置坐标;

Step7:初始化起点的位姿并存储位置坐标。

所述步骤Step1中的接收与预处理激光雷达数据的具体步骤如下:

通过与计算机连接的二维扫描型激光雷达传感器获取环境数据;

将环境数据以数组形式存储于计算机中,所述环境数据包括距离信息、激光雷达扫描范围和角度分辨率;

预处理距离数据,包括去除有效范围外的数据点、滤除孤立的噪声点及对激光雷达测量机制的缺陷补偿;

将环境数据从激光雷达的极坐标系下的数据转化为机器人或智能车辆的局部直角坐标系坐标。

所述步骤Step2中的按照以下步骤来分割聚类环境数据:

循环比较距离数据的每两个相邻数据点差值,标记差值大于分割阈值的数据点为分割点;

存储分割点的角标;

所述步骤Step3中从激光雷达数据中选择簇群的具体步骤如下:

计算簇群中相对应起始点和终点连接直线;

计算簇群中数据点与连接直线的距离;

获取距离直线最远的数据点为顶点;

计算顶点坐标;

计算连接直线的倾角。

所述步骤Step5中的连接直线及偏转角度按照以下步骤来实现:

获取机器人相对于起始位置的A'位置坐标和角度信息φ;

对机器人的角度信息进行滑动滤波;

对簇群的角度信息进行滑动滤波;

得到B'位置机器人相对起始位置的角度信息;

通过对角度信息进行均值滤波得到机器人在B'位置的偏转角度:

θB=Σi=1n(φ+θi(j+1)*γ-θij*γ)n;

其中,θB′表示机器人在B'位置的偏转角度;n表示一帧环境数据中经过分割算法分割 出来的簇群总数;i表示n个簇群中第i个子簇群;表示第i个子簇群在j*γ时刻的位姿偏转角度;表示第i个子簇群在(j+1)*γ时刻的位姿偏转角度;φ表示机器人在A'位置的偏转角度。

所述步骤Step6中机器人位置坐标变化后的位置坐标按照以下步骤来计算:

获取机器人相对应起始点的A'位置坐标(x,y);

通过以下公式来计算机器人在B'位置的坐标:

xB=x+||BC||+LROBOT2*COS(θB)yB=y+||CF||-LROBOT2*COS(θB)

其中,LROBOT为机器人长度,xB′表示机器人在B'位置的横坐标;yB′表示机器人在B'位置的纵坐标;||CF||表示机器人质心从A'位置到B'位置的纵坐标距离;||BC||表示机器人质心从A'位置到B'位置的横坐标距离。

本实施例提供的一种基于激光雷达数据的移动机器人位姿推算系统,包括预处理模块、分割聚类模块、簇群选择模块、簇群跟踪模块、偏转角度计算模块、位置坐标计算模块和存储模块;

所述预处理模块,用于接收与预处理激光雷达数据;

所述分割聚类模块,用于分割聚类环境数据;

所述簇群选择模块,用于从激光雷达数据中选择簇群;

所述簇群跟踪模块,用于获取簇群中每个子簇群的顶点在局部坐标系下的坐标数据,获取簇群的顶点的坐标和每个连接连线的倾角;

所述偏转角度计算模块,用于将起始点和终点组成连接直线并计算簇群中连接直线的偏转角度;

所述位置坐标计算模块,用于通过滑动滤波计算机器人位置坐标变化后的位置坐标;

所述存储模块,用于初始化起点的位姿并存储位置坐标。

所述预处理模块中的接收与预处理激光雷达数据的具体步骤如下:

通过与计算机连接的二维扫描型激光雷达传感器获取环境数据;

将环境数据以数组形式存储于计算机中,所述环境数据包括距离信息、激光雷达扫描范围和角度分辨率;

预处理距离数据,包括去除有效范围外的数据点、滤除孤立的噪声点及对激光雷达测量机制的缺陷补偿;

将环境数据从激光雷达的极坐标系下的数据转化为机器人或智能车辆的局部直角坐标系坐标。

所述簇群选择模块中从激光雷达数据中选择簇群的具体步骤如下:

计算簇群中相对应起始点和终点连接直线;

计算簇群中数据点与连接直线的距离;

获取距离直线最远的数据点为顶点;

计算顶点坐标;

计算连接直线的倾角。

所述偏转角度计算模块中的连接直线及偏转角度按照以下步骤来实现:

获取机器人相对于起始位置的A'位置坐标和角度信息φ;

对机器人的角度信息进行滑动滤波;

对簇群的角度信息进行滑动滤波;

得到B'位置机器人相对起始位置的角度信息;

通过对角度信息进行均值滤波得到机器人在B'位置的偏转角度:

θB=Σi=1n(φ+θi(j+1)*γ-θij*γ)n;

其中,θB′表示机器人在B'位置的偏转角度;n表示一帧环境数据中经过分割算法分割出来的簇群总数;i表示n个簇群中第i个子簇群;表示第i个子簇群在j*γ时刻的位姿偏转角度;表示第i个子簇群在(j+1)*γ时刻的位姿偏转角度;φ表示机器人在A'位置的偏转角度。

所述位置坐标计算模块中机器人位置坐标变化后的位置坐标按照以下步骤来计算:

获取机器人相对应起始点的A'位置坐标(x,y);

通过以下公式来计算机器人在B'位置的坐标:

xB=x+||BC||+LROBOT2*COS(θB)yB=y+||CF||-LROBOT2*COS(θB)

其中,LROBOT为机器人长度,xB′表示机器人在B'位置的横坐标;yB′表示机器人在B'位置的纵坐标;||CF||表示机器人质心从A'位置到B'位置的纵坐标距离;||BC||表示机器人质心从A'位置到B'位置的横坐标距离。

实施例2

本实施例提供的基于激光雷达数据的移动机器人位姿推算方法,首先,接收和预处理激光雷达数据,具体如下:

将二维扫描型激光雷达传感器与计算机进行连接获取环境数据,并以数组形式存储于计算机中,环境数据主要表现为距离信息D={d1,d2,d3,...,di,...,dN}。然后对距离数据进行预处理,包括去除有效范围外的数据点、滤除孤立的噪声点及对激光雷达测量机制的缺陷补偿。另外将环境数据从激光雷达的极坐标系下的数据转化为机器人或智能车辆的局部直角坐标系坐标,即将数据集合表示为:bg={P1,P2,P3,......,Pi,......PN},其中Pi表示为激光雷达第i线激光束反映的信息,即Pi=(xi,yi),(xi,yi)为第i线激光束检测到的环境在局部坐标系下的坐标。

对环境数据的分割聚类:

平面ABD分割聚类算法在实时性和分割效果上均满足,本发明的要求,因此采用此算法对环境数据进行分割聚类,方法如下:

循环比较距离数据的每两个相邻点之间的差值,当大于分割阈值时,则认为找到了分割点,公式如下:

|dn-dn-1|>Dmax

其中:dn为当前扫描点的距离,dn-1为前一扫描点的距离,Dmax为分割阈值。此处Dmax描述如下:

Dmax=γn-1*sin(Δφ)sin(λ-Δφ)+3δ

其中:γn-1为dn和dn-1取得最小值,δ为余量。λ和Δφ如下图所示,图中φn和φn-1为点Pn和点Pn-1相当于激光雷达极坐标的角度值。

图2ABD算法示意图,图中:点Pn和点Pn-1为扫描点中连续的两个点;dn为当前扫描点的距离;dn-1为前一扫描点的距离;γn-1为dn和dn-1取得最小值;Dmax为分割阈值;Δφ为两个点与坐标原点形成向量的夹角;λ为分割圆的辅助角。如果点Pn和点Pn-1根据上述算法检测得出的结果都是分割点时,则暂时标记点Pn和点Pn-1为分割点,然后利用一个阈值ε(dn)进 行二次检测,ε(dn)=k*dn,其中k为常系数。为了使分割点间的距离不至于太远,本发明对阈值进行限定,规定ε(dn)≤μ。若|dn-dn-1|>ε(dn),则认为点Pn和点Pn-1为分割点,反之,则不是分割点,取消之前分割的标记。

对一帧激光雷达的N个距离数据进行优化型ABD算法聚类分析后将得p个分割点,即将环境分成p类。并将每个分割点的角标存储在计算机内。

对不同时刻进行目标簇群跟踪

①在采样时刻t时,寻找具有特征点的簇群C={C1,C2,...,Cn}。

寻找采样时刻t的激光雷达数据中具有顶点的簇群,如下图所示。规则为连接该簇群的起始点和终点形成直线,计算除了这两点外的其他所有点距离该直线的距离。距离直线最远的即为顶点。

图3具有顶点的簇群示意图

基于上述选择的簇群,求出顶点坐标,记为:

P=P1P2...Pn

将每个簇群的起始点与终点连线形成的直线,并计算每条直线的倾角,记为:

L=L1L2...Ln,θ=θ1θ2...θn

②目标簇群的跟踪

每经过γ个采样时刻时,获取上述簇群集合C内每个子簇群的顶点在局部坐标系下的坐标数据,在经过m*γ时刻后,所有子簇群的顶点的坐标和每个子簇群起点和终点连线的倾角分别表示为:

P=P1t+γP1t+2*γP1t+3*γ...P1t+m*γP2t+γP2t+2*γP2t+3*γ...P2t+m*γ...Pnt+γPnt+2*γPnt+3*γ...Pmt+m*γ

θ=θ1t+γθ1t+2*γθ1t+3*γ...θ1t+m*γθ2t+γθ2t+2*γθ2t+3*γ...θ2t+m*γ...θnt+γθnt+2*γθnt+3*γ...θmt+m*γ

基于滑动滤波的位姿推算

对于第i个子簇群Ci,从第j*γ个时刻到第(j+1)*γ时刻,该簇群的变化示意图如下所示:图4不同时刻机器人位姿变化示意图,图a中:Lj*γ为某簇群在第j*γ个时刻起点和终点连线;图b中:L(j+1)*γ为某簇群在第(j+1)*γ个时刻起点和终点连线;图c中:θB'为B'位置的偏转角度;φ为机器人在A'位置相对于起始位置的角度。

由图4(a)与图4(b)可知,机器人从A'运动到B'位置时,机器人偏转的角度差就是某一个簇群偏转的角度差,该角度差等于Lj*γ与L(j+1)*γ倾角的变化程度,即(θ(j+1)*γj*γ)。

在此设A'位置相对于起始位置,机器人的角度为φ。对机器人位姿中的角度信息进行滑动滤波。将滑动窗口宽度设置为k*γ长度(k<m),经过对上述θ矩阵内n个簇群进行(m-k)次滑动滤波后,得到B'位置机器人相对起始位置的角度为:

θ=φ+θ1(j+1)*γ-θ1j*γφ+θ2(j+1)*γ-θ2j*γ...φ+θn(j+1)*γ-θnj*γ

对以上n个(j+1)*γ时刻的位姿偏转角度进行均值滤波后,得到在B'位置的偏转角度为:

θB=Σi=1n(φ+θi(j+1)*γ-θij*γ)n

由图4(a)可以很明显看出,当机器人从A'运动到B'位置时,视野里的局部环境也发生了变化。设在A'位置时,机器人的位置坐标为(x,y),图(c)将变化定量后,有几何知识可以得到:在B'位置时,机器人的坐标即为:

xB=x+||BC||+LROBOT2*COS(θB)yB=y+||CF||-LROBOT2*COS(θB)

其中LROBOT为机器人长度,其余相关参数见图4(c)所示。

由图(c)可知,D点即为该簇群的顶点,当机器人到达B'位置时,此时D点对应的激光雷达线数也是确定了的,假设此时的线数为p,那么图(c)上其中ξ为二维激光雷达的角度分辨率。

由:

得到:

||BC||=||BD||*sin(p*ξ-90°+θB')

CF的长度也可以根据几何关系得到,即:

得到:

||CF||=||DF||-||BD||*cos(p*ξ-90°+θB')

因此可以得到机器人在B'位置处的坐标为:

对机器人位姿中的位置信息进行滑动滤波。将滑动窗口宽度设置为k*γ长度(k<m),经过对上述P矩阵内n个簇群进行(m-k)次滑动滤波后,得到B'位置机器人相对起始位置的 位置为:

P=P1(j+1)*γP2(j+1)*γ...Pn(j+1)*γ=(x1B,y1B)(x2B,y2B)...(xnB,ynB)

对以上n个(j+1)*γ时刻的位置进行均值滤波后,得到在B'位置的位置坐标为:

xB=Σi=1n(xiB)nyB=Σi=1n(yiB)n

根据上面的公式可以从起始点进行叠加,叠加次数与采样周期有关。因此得到机器人在任何时刻的位姿。

实施例3

本实施例详细描述基于激光雷达数据的移动机器人位姿推算方法的实施方式,具体包括以下步骤:

Step1:激光雷达数据的接收与预处理

将二维扫描型激光雷达传感器与计算机进行连接获取环境数据,并以数组形式存储于计算机中,环境数据主要表现为距离信息D={d1,d2,d3,...,di,...,dN},N常取值为500,对应激光雷达的扫描范围180°,角度分辨率ξ=0.36°。然后对距离数据进行预处理,包括去除有效范围外的数据点、滤除孤立的噪声点及对激光雷达测量机制的缺陷补偿。另外将环境数据从激光雷达的极坐标系下的数据转化为机器人或智能车辆的局部直角坐标系坐标,即将数据集合表示为:bg={P1,P2,P3,......,Pi,......PN},其中Pi表示为激光雷达第i线激光束反映的信息,即Pi=(xi,yi),(xi,yi)为第i线激光束检测到的环境在局部坐标系下的坐标。

Step2:对环境数据的分割聚类

平面ABD分割聚类算法在实时性和分割效果上均满足,本发明的要求,因此采用此算 法对环境数据进行分割聚类,方法如下:

循环比较距离数据的每两个相邻点之间的差值,当大于分割阈值时,则认为找到了分割点,公式如下:

|dn-dn-1|>Dmax

其中:dn为当前扫描点的距离,dn-1为前一扫描点的距离,Dmax为分割阈值。此处Dmax描述如下

其中:rn-1为dn和dn-1取得最小值,δ为余量。λ和如下图所示,图中和为点Pn和点Pn-1相当于激光雷达极坐标的角度值。

图2为ABD算法示意图,如果点Pn和点Pn-1根据上述算法检测得出的结果都是分割点时,则暂时标记点Pn和点Pn-1为分割点,然后利用一个阈值ε(dn)进行二次检测,ε(dn)=k*dn,其中k为常系数。为了使分割点间的距离不至于太远,本发明对阈值进行限定,规定ε(dn)≤μ。若|dn-dn-1|>ε(dn),则认为点Pn和点Pn-1为分割点,反之,则不是分割点,取消之前分割的标记。其中,在本实施例中,k=0.15,μ=0.1m,δ=0.03m。

对一帧激光雷达的N=500个距离数据进行优化型ABD算法聚类分析后将得p个分割点,即将环境分成p类。并将每个分割点的角标存储在计算机内。

Step3:在采样时刻t时,寻找具有特征点的簇群C={C1,C2,…,Cn}。

寻找采样时刻t的激光雷达数据中具有顶点的簇群,如下图所示。规则为连接该簇群的起始点和终点形成直线,计算除了这两点外的其他所有点距离该直线的距离。距离直线最远的即为顶点。

图3为具有顶点的簇群示意图,基于上述选择的簇群,求出顶点坐标,记为:

P=P1P2...Pn

将每个簇群的起始点与终点连线形成的直线,并计算每条直线的倾角,记为:

L=L1L2...Ln,θ=θ1θ2...θn

Step4:目标簇群的跟踪

每经过γ=1个采样时刻(采样周期一般取T=100ms)时,获取上述簇群集合C内每个子簇群的顶点在局部坐标系下的坐标数据,在经过m*γ个采样周期后,所有子簇群的顶点的坐标和每个子簇群起点和终点连线的倾角分别表示为:

P=P1t+γP1t+2*γP1t+3*γ...P1t+m*γP2t+γP2t+2*γP2t+3*γ...P2t+m*γ...Pnt+γPnt+2*γPnt+3*γ...Pmt+m*γ

θ=θ1t+γθ1t+2*γθ1t+3*γ...θ1t+m*γθ2t+γθ2t+2*γθ2t+3*γ...θ2t+m*γ...θnt+γθnt+2*γθnt+3*γ...θmt+m*γ

其中,在本实施例中,m=10。

Step5:基于滑动滤波的偏转角度推算

对于第i个子簇群Ci,从第j*γ个时刻到第(j+1)*γ时刻,该簇群的变化示意图如下所示:

图4为不同时刻机器人位姿变化示意图,由图4(a)与图4(b)可知,机器人从A'运动到B'位置时,机器人偏转的角度差就是某一个簇群偏转的角度差,该角度差等于Lj*γ与L(j+1)*γ倾角的变化程度,即(θ(j+1)*γj*γ)。

在此设A'位置相对于起始位置,机器人的角度为φ。对机器人位姿中的角度信息进行滑动滤波。将滑动窗口宽度设置为k*γ长度,其中k=5,经过对上述θ矩阵内n个簇群进行(m-k)=5次滑动滤波后,得到B'位置机器人相对起始位置的角度为:

θ=φ+θ1(j+1)*γ-θ1j*γφ+θ2(j+1)*γ-θ2j*γ...φ+θn(j+1)*γ-θnj*γ

对以上n个(j+1)*γ时刻的位姿偏转角度进行均值滤波后,得到在B'位置的偏转角度为:

θB=Σi=1n(φ+θi(j+1)*γ-θij*γ)n

Step6:基于滑动滤波的位置坐标推算

由图4a可以很明显看出,当机器人从A'运动到B'位置时,视野里的局部环境也发生了变化。设在A'位置时,机器人的位置坐标为(x,y),图4c将变化定量后,有几何知识可以得到:在B'位置时,机器人的坐标即为:

xB=x+||BC||+LROBOT2*COS(θB)yB=y+||CF||-LROBOT2*COS(θB)

其中LROBOT为机器人长度,本实施例采用的机器人长度为114cm,即LROBOT=114cm,其余相关参数见图4c所示。

由图4c可知,D点即为该簇群的顶点,当机器人到达B'位置时,此时D点对应的激光雷达线数也是确定了的,假设此时的线数为p,那么图4c上其中ξ为二维激光雷达的角度分辨率,本实施例中取ξ=0.36°。

由:

得到:

||BC||=||BD||*sin(0.36°*p-90°+θB')

CF的长度也可以根据几何关系得到,即:

得到:

||CF||=||DF||-||BD||*cos(0.36°*p-90°+θB')

因此可以得到机器人在B'位置处的坐标为:

对机器人位姿中的位置信息进行滑动滤波。将滑动窗口宽度设置为k*γ长度(k<m),经过对上述P矩阵内n个簇群进行(m-k)次滑动滤波后,得到B'位置机器人相对起始位置的位置为:

P=P1(j+1)*γP2(j+1)*γ...Pn(j+1)*γ=(x1B,y1B)(x2B,y2B)...(xnB,ynB)

对以上n个(j+1)*γ时刻的位置进行均值滤波后,得到在B'位置的位置坐标为:

xB=Σi=1n(xiB)nyB=Σi=1n(yiB)n

Step7:初始化起点的位姿,即(x,y,θ)=(0,0,0),每经过γ=1的采样周期时,对位姿进行累积。因此得到机器人在任何时刻的位姿。

最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号