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

文档序号:10511390阅读:318来源:国知局
一种基于激光雷达数据的移动机器人位姿推算方法及系统的制作方法
【专利摘要】本发明公开了一种基于激光雷达数据的移动机器人位姿推算方法,首先接收与预处理激光雷达数据;分割聚类环境数据;然后从激光雷达数据中选择簇群;并对目标簇群进行跟踪;获取簇群中每个子簇群的顶点在局部坐标系下的坐标数据,获取簇群的顶点的坐标和每个连接连线的倾角;将起始点和终点组成连接直线并计算偏转角度;通过滑动滤波计算机器人位置坐标变化后的位置坐标;最后初始化起始点的位姿和采样位姿点。本发明提供的移动机器人位姿推算方法是使用精度较高的二维激光雷达,无需对环境进行任何修改;机器人的位姿信息相对于具体环境客观描述,更便捷将位姿信息集成到其它移动机器人的业务模块中,提高系统的可靠性、易实现性并降低成本。
【专利说明】
一种基于激光雷达数据的移动机器人位姿推算方法及系统
技术领域
[0001] 本发明涉及移动机器人及智能车辆的局部导航领域,特别涉及一种基于激光雷达 数据的移动机器人位姿推算方法。
【背景技术】
[0002] 机器人作为一种新型的生产工具,表现出极大的优越性。在减轻劳动强度,提高生 产效率,改变生产模式等方面可将人们从危险、恶劣、繁重的工作环境中解放出来。然而随 着机器人的不断发展,人们逐渐发现这些固定于某一位置操作的机器人对很多应用需求均 不能满足。因此在20世纪80年代后期,许多国家开始有计划地开展了移动机器人技术的研 究。
[0003] 对于移动机器人而言,导航是一个重要的方向。而移动机器人的导航的前提就是 对机器人的定位和姿态识别。精确的位姿推算对于移动机器人的定位、自动地图生成、路径 规划和控制、目标检测和跟踪等具有重要意义。在二维的平面坐标系下,移动机器人的位姿 就是机器人在全局坐标系中的位置以及机器人的车体方向,即表示为:(x,y,9)。机器人的 位置可以用机器人质心坐标点表不为,而用车体前方偏向全局坐标系X轴的夹角来表不车 体的方向。在本文中,定义方向角为:以X轴0度,顺时针方向为负,逆时针方向为正;如图1所 示,图1机器人的位姿模型;图中XgOgYg为机器所在的全局坐标系;XrOrYr为机器人所在的局 部坐标系;(x,y)为机器人质心的坐标;Θ为机器人相对于起始点的位姿偏转角。应用在移动 机器人的位姿推算方法一般可分为两种:航位推算(Dead-Reckoning)是一种非常经典的相 对位姿推算方法,通过安装在移动机器人轮子上的光电编码器输出的轮速与移动机器人的 运动学模型,累积每个采样周期下的移动机器人位移以及角度偏转。航位推算的优点是方 法简单、价格低廉,但从其本质上上可以看出,航位推算方法的精度容易受轮速的标定、车 轮与地面的打滑、颠簸等因素造成积分误差而大大降低,因此误差较大。惯性导航系统INS (InertialNavigation Systems)常使用陀螺仪得到机器人在每个方向上的角加速度,经过 对角加速度的积分就可以得到偏转角度,使用加速度传感器得到机器人的加速度信息,并 结合角度信息,对加速度进行矢量积分获得机器人的位置信息,从而获得移动机器人在不 同采样时刻的位姿信息。一般情况下,惯性导航系统的精度高于航位推算,但是其精度也要 受陀螺仪漂移、标定误差、敏感度等问题影响。
[0004] 无论是航位推算还是惯性导航系统,都存在一个共同的缺点:存在积分误差,移动 机器人的行程越远,该积分误差越大。因此现有的位姿推算方法并不适用于对机器人位姿 信息要求较高的场合。如何实现更加精确的且不受地面情况限制的位姿推算方法,是一个 很重要的问题。
[0005] 因此,需要一种基于激光雷达数据的移动机器人位姿描述方法。

【发明内容】

[0006] 本发明的目的就是提供一种基于激光雷达数据的移动机器人位姿描述方法。
[0007] 本发明的目的是通过这样的技术方案实现的:
[0008] 本发明提供的一种基于激光雷达数据的移动机器人位姿推算方法,包括以下步 骤:
[0009] Stepl :接收与预处理激光雷达数据;
[0010] Step2:分割聚类环境数据;
[0011] Step3:从激光雷达数据中选择簇群;
[0012] Step4:目标簇群的跟踪;获取簇群中每个子簇群的顶点在局部坐标系下的坐标数 据,获取簇群的顶点的坐标和每个连接连线的倾角;
[0013] Step5:将起始点和终点组成连接直线并计算簇群中连接直线的偏转角度;
[0014] Step6:通过滑动滤波计算机器人位置坐标变化后的位置坐标;
[0015] Step7:初始化起点的位姿并存储位置坐标。
[0016]进一步,所述步骤Stepl中的接收与预处理激光雷达数据的具体步骤如下:
[0017] 通过与计算机连接的二维扫描型激光雷达传感器获取环境数据;
[0018] 将环境数据以数组形式存储于计算机中,所述环境数据包括距离信息、激光雷达 扫描范围和角度分辨率;
[0019] 预处理距离数据,包括去除有效范围外的数据点、滤除孤立的噪声点及对激光雷 达测量机制的缺陷补偿;
[0020] 将环境数据从激光雷达的极坐标系下的数据转化为机器人或智能车辆的局部直 角坐标系坐标。
[0021] 进一步,所述步骤Step2中的按照以下步骤来分割聚类环境数据:
[0022]循环比较距离数据的每两个相邻数据点差值,标记差值大于分割阈值的数据点为 分割点;
[0023]存储分割点的角标;
[0024]进一步,所述步骤Step3中从激光雷达数据中选择簇群的具体步骤如下:
[0025]计算簇群中相对应起始点和终点连接直线;
[0026]计算簇群中数据点与连接直线的距离;
[0027]获取距离直线最远的数据点为顶点;
[0028]计算顶点坐标;
[0029]计算连接直线的倾角。
[0030]进一步,所述步骤Step5中的连接直线及偏转角度按照以下步骤来实现:
[0031]获取机器人相对于起始位置的A'位置坐标和角度信息Φ ;
[0032] 对机器人的角度信息进行滑动滤波;
[0033] 对簇群的角度信息进行滑动滤波;
[0034] 得到B'位置机器人相对起始位置的角度信息;
[0035] 通过对角度信息进行均值滤波得到机器人在B'位置的偏转角度:
[0037]其中,ΘΒ'表不机器人在B'位置的偏转角度;η表不一帧环境数据中经过分割算法分 割出来的簇群总数;i表示η个簇群中第i个子簇群;&.,表示第i个子簇群在j*y时刻的位姿 偏转角度;气#,表示第i个子簇群在(j+l)*y时刻的位姿偏转角度;φ表示机器人在A'位置 的偏转角度。
[0038] 进一步,所述步骤Step6中机器人位置坐标变化后的位置坐标按照以下步骤来计 算:
[0039] 获取机器人相对应起始点的A'位置坐标(x,y);
[0040] 通过以下公式来计算机器人在B'位置的坐标:
[0042] 其中,Lrqbcit为机器人长度,XB'表不机器人在B'位置的横坐标;yB'表不机器人在B' 位置的纵坐标;| |CF| |表示机器人质心从A'位置到B'位置的纵坐标距离;| |BC| |表示机器 人质心从A '位置到B '位置的横坐标距离。
[0043]本发明还提供了一种基于激光雷达数据的移动机器人位姿推算系统,包括预处理 模块、分割聚类模块、簇群选择模块、簇群跟踪模块、偏转角度计算模块、位置坐标计算模块 和存储模块;
[0044]所述预处理模块,用于接收与预处理激光雷达数据;
[0045]所述分割聚类模块,用于分割聚类环境数据;
[0046]所述簇群选择模块,用于从激光雷达数据中选择簇群;
[0047] 所述簇群跟踪模块,用于获取簇群中每个子簇群的顶点在局部坐标系下的坐标数 据,获取簇群的顶点的坐标和每个连接连线的倾角;
[0048] 所述偏转角度计算模块,用于将起始点和终点组成连接直线并计算簇群中连接直 线的偏转角度;
[0049] 所述位置坐标计算模块,用于通过滑动滤波计算机器人位置坐标变化后的位置坐 标;
[0050] 所述存储模块,用于初始化起点的位姿并存储位置坐标。
[0051] 进一步,所述预处理模块中的接收与预处理激光雷达数据的具体步骤如下:
[0052] 通过与计算机连接的二维扫描型激光雷达传感器获取环境数据;
[0053]将环境数据以数组形式存储于计算机中,所述环境数据包括距离信息、激光雷达 扫描范围和角度分辨率;
[0054]预处理距离数据,包括去除有效范围外的数据点、滤除孤立的噪声点及对激光雷 达测量机制的缺陷补偿;
[0055] 将环境数据从激光雷达的极坐标系下的数据转化为机器人或智能车辆的局部直 角坐标系坐标。
[0056] 进一步,所述簇群选择模块中从激光雷达数据中选择簇群的具体步骤如下:
[0057] 计算簇群中相对应起始点和终点连接直线;
[0058]计算簇群中数据点与连接直线的距离;
[0059]获取距离直线最远的数据点为顶点;
[0060]计算顶点坐标;
[0061] 计算连接直线的倾角。
[0062] 所述偏转角度计算模块中的连接直线及偏转角度按照以下步骤来实现:
[0063]获取机器人相对于起始位置的A'位置坐标和角度信息Φ ;
[0064] 对机器人的角度信息进行滑动滤波;
[0065] 对簇群的角度信息进行滑动滤波;
[0066] 得到B'位置机器人相对起始位置的角度信息;
[0067] 通过对角度信息进行均值滤波得到机器人在B'位置的偏转角度:
[0069]其中,ΘΒ'表不机器人在B'位置的偏转角度;η表不一帧环境数据中经过分割算法分 割出来的簇群总数;i表示η个簇群中第i个子簇群;义表示第i个子簇群在j*y时刻的位姿 偏转角度;6表示第i个子簇群在(j+1 )* γ时刻的位姿偏转角度;Φ表示机器人在A'位置 的偏转角度。
[0070]进一步,所述位置坐标计算模块中机器人位置坐标变化后的位置坐标按照以下步 骤来计算:
[0071 ]获取机器人相对应起始点的A'位置坐标(x,y);
[0072]通过以下公式来计算机器人在B'位置的坐标:
[0074] 其中,Lr_t为机器人长度,XB'表不机器人在B '位置的横坐标;yB'表不机器人在B ' 位置的纵坐标;I |CF| |表示机器人质心从A'位置到B'位置的纵坐标距离;| |BC| |表示机器 人质心从A '位置到B '位置的横坐标距离。
[0075] 由于采用了上述技术方案,本发明具有如下的优点:
[0076] 本发明提供的移动机器人位姿推算方法是基于移动机器人自身的信息得出的位 姿信息,使用激光雷达信息来描述移动机器人的位姿;二维激光雷达具有较高的精度而无 需对环境进行任何修改;机器人的位姿信息相对于具体环境客观描述,使用基于激光雷达 的位姿估计可以更便捷的将位姿信息集成到其它移动机器人的业务模块中,例如避障路径 规划,而省去任何标定过程,从而提高系统的可靠性、易实现性并降低成本。可广泛使用于 对环境描述精度较高的二维激光雷达控制中。
[0077] 本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并 且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可 以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书和权利要 求书来实现和获得。
【附图说明】
[0078] 本发明的【附图说明】如下。
[0079] 图1为本发明的机器人的位姿模型示意图。
[0080] 图2为本发明的ABD算法示意图。
[0081] 图3a为本发明的顶点在连接直线一侧的簇群示意图。
[0082]图3b为本发明的顶点在连接直线另一侧的簇群示意图。
[0083]图4a为在第j* γ个时刻起点和终点连线示意图。
[0084]图4b为在第(j+Ι)* γ个时刻起点和终点连线示意图。
[0085]图4c为机器人在A '位置和Β '位置变化示意图。
[0086]图5为本发明的激光雷达数据预处理流程图。
[0087]图6为本发明的ABD分割算法流程图。
[0088] 图7为本发明的位姿推算方法流程图。
【具体实施方式】
[0089] 下面结合附图和实施例对本发明作进一步说明。
[0090] 实施例1
[0091] 如图所示,本实施例提供的一种基于激光雷达数据的移动机器人位姿推算方法, 包括以下步骤:
[0092] Stepl:接收与预处理激光雷达数据;
[0093] Step2:分割聚类环境数据;
[0094] Step3:从激光雷达数据中选择簇群;
[0095] Step4:目标簇群的跟踪;获取簇群中每个子簇群的顶点在局部坐标系下的坐标数 据,获取簇群的顶点的坐标和每个连接连线的倾角;
[0096] Step5:将起始点和终点组成连接直线并计算簇群中连接直线的偏转角度;
[0097] Step6:通过滑动滤波计算机器人位置坐标变化后的位置坐标;
[0098] Step7:初始化起点的位姿并存储位置坐标。
[0099]所述步骤Stepl中的接收与预处理激光雷达数据的具体步骤如下:
[0100] 通过与计算机连接的二维扫描型激光雷达传感器获取环境数据;
[0101] 将环境数据以数组形式存储于计算机中,所述环境数据包括距离信息、激光雷达 扫描范围和角度分辨率;
[0102] 预处理距离数据,包括去除有效范围外的数据点、滤除孤立的噪声点及对激光雷 达测量机制的缺陷补偿;
[0103] 将环境数据从激光雷达的极坐标系下的数据转化为机器人或智能车辆的局部直 角坐标系坐标。
[0104] 所述步骤Step2中的按照以下步骤来分割聚类环境数据:
[0105]循环比较距离数据的每两个相邻数据点差值,标记差值大于分割阈值的数据点为 分割点;
[0106] 存储分割点的角标;
[0107] 所述步骤Step3中从激光雷达数据中选择簇群的具体步骤如下:
[0108] 计算簇群中相对应起始点和终点连接直线;
[0109] 计算簇群中数据点与连接直线的距离;
[0110]获取距离直线最远的数据点为顶点;
[0111]计算顶点坐标;
[0112] 计算连接直线的倾角。
[0113] 所述步骤Step5中的连接直线及偏转角度按照以下步骤来实现:
[0114] 获取机器人相对于起始位置的A'位置坐标和角度信息Φ ;
[0115] 对机器人的角度信息进行滑动滤波;
[0116]对簇群的角度信息进行滑动滤波;
[0117] 得到B'位置机器人相对起始位置的角度信息;
[0118] 通过对角度信息进行均值滤波得到机器人在B'位置的偏转角度:
[0120]其中,ΘΒ'表不机器人在B'位置的偏转角度;η表不一帧环境数据中经过分割算法分 割出来的簇群总数;i表示η个簇群中第i个子簇群;义.表示第i个子簇群在j*y时刻的位姿 偏转角度;表示第i个子簇群在(j+1)* γ时刻的位姿偏转角度;Φ表示机器人在A'位置 的偏转角度。
[0121] 所述步骤Step6中机器人位置坐标变化后的位置坐标按照以下步骤来计算:
[0122] 获取机器人相对应起始点的A'位置坐标(x,y);
[0123] 通过以下公式来计算机器人在B'位置的坐标:
[0125] 其中,Lrqbcit为机器人长度,XB'表不机器人在B '位置的横坐标;yB'表不机器人在B ' 位置的纵坐标;| |CF| |表示机器人质心从A'位置到B'位置的纵坐标距离;| |BC| |表示机器 人质心从A '位置到B '位置的横坐标距离。
[0126] 本实施例提供的一种基于激光雷达数据的移动机器人位姿推算系统,包括预处理 模块、分割聚类模块、簇群选择模块、簇群跟踪模块、偏转角度计算模块、位置坐标计算模块 和存储模块;
[0127] 所述预处理模块,用于接收与预处理激光雷达数据;
[0128] 所述分割聚类模块,用于分割聚类环境数据;
[0129] 所述簇群选择模块,用于从激光雷达数据中选择簇群;
[0130] 所述簇群跟踪模块,用于获取簇群中每个子簇群的顶点在局部坐标系下的坐标数 据,获取簇群的顶点的坐标和每个连接连线的倾角;
[0131] 所述偏转角度计算模块,用于将起始点和终点组成连接直线并计算簇群中连接直 线的偏转角度;
[0132] 所述位置坐标计算模块,用于通过滑动滤波计算机器人位置坐标变化后的位置坐 标;
[0133] 所述存储模块,用于初始化起点的位姿并存储位置坐标。
[0134] 所述预处理模块中的接收与预处理激光雷达数据的具体步骤如下:
[0135] 通过与计算机连接的二维扫描型激光雷达传感器获取环境数据;
[0136] 将环境数据以数组形式存储于计算机中,所述环境数据包括距离信息、激光雷达 扫描范围和角度分辨率;
[0137] 预处理距离数据,包括去除有效范围外的数据点、滤除孤立的噪声点及对激光雷 达测量机制的缺陷补偿;
[0138] 将环境数据从激光雷达的极坐标系下的数据转化为机器人或智能车辆的局部直 角坐标系坐标。
[0139] 所述簇群选择模块中从激光雷达数据中选择簇群的具体步骤如下:
[0140] 计算簇群中相对应起始点和终点连接直线;
[0141 ]计算簇群中数据点与连接直线的距离;
[0142]获取距离直线最远的数据点为顶点;
[0143]计算顶点坐标;
[0144] 计算连接直线的倾角。
[0145] 所述偏转角度计算模块中的连接直线及偏转角度按照以下步骤来实现:
[0146] 获取机器人相对于起始位置的A'位置坐标和角度信息Φ ;
[0147] 对机器人的角度信息进行滑动滤波;
[0148] 对簇群的角度信息进行滑动滤波;
[0149] 得到B'位置机器人相对起始位置的角度信息;
[0150] 通过对角度信息进行均值滤波得到机器人在B'位置的偏转角度:
[0152]其中,ΘΒ'表不机器人在B'位置的偏转角度;η表不一帧环境数据中经过分割算法分 割出来的簇群总数;i表示η个簇群中第i个子簇群;气"表示第i个子簇群在j*y时刻的位姿 偏转角度表示第i个子簇群在(j+l)*y时刻的位姿偏转角度;Φ表示机器人在A'位置 的偏转角度。
[0153] 所述位置坐标计算模块中机器人位置坐标变化后的位置坐标按照以下步骤来计 算:
[0154] 获取机器人相对应起始点的A'位置坐标(x,y);
[0155] 通过以下公式来计算机器人在B'位置的坐标:
[0157] 其中,Lrqbcit为机器人长度,XB'表不机器人在B '位置的横坐标;yB'表不机器人在B ' 位置的纵坐标;| |CF| |表示机器人质心从A'位置到B'位置的纵坐标距离;| |BC| |表示机器 人质心从A '位置到B '位置的横坐标距离。
[0158] 实施例2
[0159] 本实施例提供的基于激光雷达数据的移动机器人位姿推算方法,首先,接收和预 处理激光雷达数据,具体如下:
[0160] 将二维扫描型激光雷达传感器与计算机进行连接获取环境数据,并以数组形式存 储于计算机中,环境数据主要表现为距离信息D= {dhc^cb,. . .,土,. . .,dN}。然后对距离数 据进行预处理,包括去除有效范围外的数据点、滤除孤立的噪声点及对激光雷达测量机制 的缺陷补偿。另外将环境数据从激光雷达的极坐标系下的数据转化为机器人或智能车辆的 局部直角坐标系坐标,即将数据集合表示为:bg={Pi,P2,P3,......,Pi,......Pn},其中Pi 表示为激光雷达第i线激光束反映的信息,即Pi= (xi,yi),(xi,yi)为第i线激光束检测到的 环境在局部坐标系下的坐标。
[0161] 对环境数据的分割聚类:
[0162] 平面ABD分割聚类算法在实时性和分割效果上均满足,本发明的要求,因此采用此 算法对环境数据进行分割聚类,方法如下:
[0163] 循环比较距离数据的每两个相邻点之间的差值,当大于分割阈值时,则认为找到 了分割点,公式如下:
[0164] dn-dn-l | >Dmax
[01 05]其中:dn为当前扫描点的距离,dn-1为前一扫描点的距离,Dmax为分割阈值。此处Dmax 描述如下:
[0167] 其中:γη-ι为dn和dn-i取得最小值,δ为余量。λ和Δ φ如下图所示,图中φη和φη-Α ΑΡη和点Ρη相当于激光雷达极坐标的角度值。
[0168] 图2ΑΚ)算法示意图,图中:ΑΡη和点Pn-i为扫描点中连续的两个点;dn为当前扫描点 的距离;dn-l为前一扫描点的距离;γ η-1为dn和dn-l取得最小值;Dmax为分割阈值;Δ Φ为两个 点与坐标原点形成向量的夹角;λ为分割圆的辅助角。如果APn和点PH根据上述算法检测 得出的结果都是分割点时,则暂时标记点Pn和点Pn-A分割点,然后利用一个阈值Kd n)进行 二次检测,e(dn)=k*dn,其中k为常系数。为了使分割点间的距离不至于太远,本发明对阈值 进行限定,规定e(dn) < μ。若I dn-dn-l I >ε((1η),则认为点Pn和点Pn-ι为分割点,反之,贝lj不是 分割点,取消之前分割的标记。
[0169] 对一帧激光雷达的N个距离数据进行优化型ABD算法聚类分析后将得p个分割点, 即将环境分成P类。并将每个分割点的角标存储在计算机内。
[0170] 对不同时刻进行目标簇群跟踪
[0171] ①在采样时刻t时,寻找具有特征点的簇群0={&,&,. . .,Cn}。
[0172] 寻找采样时刻t的激光雷达数据中具有顶点的簇群,如下图所示。规则为连接该簇 群的起始点和终点形成直线,计算除了这两点外的其他所有点距离该直线的距离。距离直 线最远的即为顶点。
[0173]图3具有顶点的簇群示意图
[0174]基于上述选择的簇群,求出顶点坐标,记为:
[0176]将每个簇群的起始点与终点连线形成的直线,并计算每条直线的倾角,记为:
[0178] ②目标簇群的跟踪
[0179] 每经过γ个采样时刻时,获取上述簇群集合C内每个子簇群的顶点在局部坐标系 下的坐标数据,在经过m* γ时刻后,所有子簇群的顶点的坐标和每个子簇群起点和终点连 线的倾角分别表示为:
[0182] 基于滑动滤波的位姿推算
[0183] 对于第i个子簇群匕,从第j*y个时刻到第(j+l)*y时刻,该簇群的变化示意图如 下所示:图4不同时刻机器人位姿变化示意图,图a中山 n为某簇群在第j* γ个时刻起点和 终点连线;图b中:L(j+mY为某簇群在第(j+Ι)* γ个时刻起点和终点连线;图c中:ΘΒ,为Β'位 置的偏转角度;Φ为机器人在A'位置相对于起始位置的角度。
[0184] 由图4(a)与图4(b)可知,机器人从A'运动到B'位置时,机器人偏转的角度差就是 某一个簇群偏转的角度差,该角度差等于kn与Lu+υη倾角的变化程度,即(θ ?+υη-θ」η)。
[0185] 在此设Α'位置相对于起始位置,机器人的角度为Φ。对机器人位姿中的角度信息 进行滑动滤波。将滑动窗口宽度设置为k* γ长度(k<m),经过对上述Θ矩阵内η个簇群进行 (m-k)次滑动滤波后,得到Β'位置机器人相对起始位置的角度为:
[0187]对以上η个(j + l)*y时刻的位姿偏转角度进行均值滤波后,得到在B'位置的偏转 角度为:
[0189]由图4(a)可以很明显看出,当机器人从A'运动到B'位置时,视野里的局部环境也 发生了变化。设在A'位置时,机器人的位置坐标为(x,y),图(c)将变化定量后,有几何知识 可以得到:在B '位置时,机器人的坐标即为:
[0191] 其中LRQBQT为机器人长度,其余相关参数见图4 (c)所示。
[0192] 由图(c)可知,D点即为该簇群的顶点,当机器人到达B'位置时,此时D点对应的激 光雷达线数也是确定了的,假设此时的线数为P,那么图(C)上炉=/^6其中ξ为二维激光雷 达的角度分辨率。
[0193] 由:
[0195] 得到:
[0196] |BC| | = | |BD| |*sin(p*C-9O°+0B·)
[0197] CF的长度也可以根据几何关系得到,即:
[0199] 得到:
[0200] I |CF| I = I |DF| |-| |BD| |*cos(p*|-90°+9B')
[0201] 因此可以得到机器人在B'位置处的坐标为:
[0203]对机器人位姿中的位置信息进行滑动滤波。将滑动窗口宽度设置为k*y长度(k< m),经过对上述P矩阵内η个簇群进行(m-k)次滑动滤波后,得到B '位置机器人相对起始位置 的位置为:
[0205]对以上η个(j+Ι)* γ时刻的位置进行均值滤波后,得到在B'位置的位置坐标为:
[0207]根据上面的公式可以从起始点进行叠加,叠加次数与采样周期有关。因此得到机 器人在任何时刻的位姿。
[0208] 实施例3
[0209]本实施例详细描述基于激光雷达数据的移动机器人位姿推算方法的实施方式,具 体包括以下步骤:
[0210] Stepl:激光雷达数据的接收与预处理
[0211]将二维扫描型激光雷达传感器与计算机进行连接获取环境数据,并以数组形式存 储于计算机中,环境数据主要表现为距离信息D= {dhd^cb,...,心,...,dN},N常取值为 500,对应激光雷达的扫描范围180°,角度分辨率ξ = 0.36°。然后对距离数据进行预处理,包 括去除有效范围外的数据点、滤除孤立的噪声点及对激光雷达测量机制的缺陷补偿。另外 将环境数据从激光雷达的极坐标系下的数据转化为机器人或智能车辆的局部直角坐标系 坐标,即将数据集合表示为:bg = {Ρ!,Ρ2,Ρ3,......,Pi,......Ρν},其中Pi表示为激光雷达 第i线激光束反映的信息,即?1=(11,71),(11,7 1)为第1线激光束检测到的环境在局部坐标 系下的坐标。
[0212] Step2:对环境数据的分割聚类
[0213] 平面ABD分割聚类算法在实时性和分割效果上均满足,本发明的要求,因此采用此 算法对环境数据进行分割聚类,方法如下:
[0214] 循环比较距离数据的每两个相邻点之间的差值,当大于分割阈值时,则认为找到 了分割点,公式如下:
[0215] I dn_dn-1 I〉Dmax
[021 6]其中:dn为当前扫描点的距离,dn-1为前一扫描点的距离,Dmax为分害lj阈值。此处Dm ax 描述如下
[0218] 其中:rn-Adn和dn-i取得最小值,δ为余量。λ和雜如下图所示,图中^和为点 pn和点PH相当于激光雷达极坐标的角度值。
[0219]图2为ABD算法示意图,如果APn和点Pw根据上述算法检测得出的结果都是分割 点时,则暂时标记APn和点Pw为分割点,然后利用一个阈值ε (dn)进行二次检测,ε (dn) =k* dn,其中k为常系数。为了使分割点间的距离不至于太远,本发明对阈值进行限定,规定e(dn) 《μ。若| dn-dn-1 I >e(dn),则认为点Pn和点Pn-1为分割点,反之,则不是分割点,取消之前分割 的标记。其中,在本实施例中,k = 0.15,μ = 0· lm,5 = 0.03m。
[0220] 对一帧激光雷达的N = 500个距离数据进行优化型ABD算法聚类分析后将得p个分 割点,即将环境分成P类。并将每个分割点的角标存储在计算机内。
[0221] Step3:在采样时刻t时,寻找具有特征点的簇群C= {&,C2,…,Cn}。
[0222] 寻找采样时刻t的激光雷达数据中具有顶点的簇群,如下图所示。规则为连接该簇 群的起始点和终点形成直线,计算除了这两点外的其他所有点距离该直线的距离。距离直 线最远的即为顶点。
[0223] 图3为具有顶点的簇群示意图,基于上述选择的簇群,求出顶点坐标,记为:
[0225]将每个簇群的起始点与终点连线形成的直线,并计算每条直线的倾角,记为:
[0227] Step4:目标簇群的跟踪
[0228] 每经过γ =1个采样时刻(采样周期一般取T= 100ms)时,获取上述簇群集合C内每 个子簇群的顶点在局部坐标系下的坐标数据,在经过m*y个采样周期后,所有子簇群的顶 点的坐标和每个子簇群起点和终点连线的倾角分别表示为:
[0231] 其中,在本实施例中,m=10。
[0232] Step5:基于滑动滤波的偏转角度推算
[0233] 对于第i个子簇群匕,从第j*y个时刻到第(j+l)*y时刻,该簇群的变化示意图如 下所示:
[0234] 图4为不同时刻机器人位姿变化示意图,由图4(a)与图4(b)可知,机器人从A'运动 到B'位置时,机器人偏转的角度差就是某一个簇群偏转的角度差,该角度差等于与 L(j + 1)*Y倾角的变化程度,即(θ (」+ 1)*γ_θ)。
[0235] 在此设Α'位置相对于起始位置,机器人的角度为Φ。对机器人位姿中的角度信息 进行滑动滤波。将滑动窗口宽度设置为k*y长度,其中k = 5,经过对上述Θ矩阵内η个簇群进 行(m-k) = 5次滑动滤波后,得到Β '位置机器人相对起始位置的角度为:
[0237]对以上η个(j + l)*y时刻的位姿偏转角度进行均值滤波后,得到在B'位置的偏转 角度为:
[0239] Step6:基于滑动滤波的位置坐标推算
[0240]由图4a可以很明显看出,当机器人从A'运动到B'位置时,视野里的局部环境也发 生了变化。设在A'位置时,机器人的位置坐标为(x,y),图4c将变化定量后,有几何知识可以 得到:在B '位置时,机器人的坐标即为:
[0242] 其中Lrqbcit为机器人长度,本实施例米用的机器人长度为114cm,即Lrqbqt= 114cm, 其余相关参数见图4c所示。
[0243] 由图4c可知,D点即为该簇群的顶点,当机器人到达B'位置时,此时D点对应的激光 雷达线数也是确定了的,假设此时的线数为P,那么图4c上9 = #=?^,其中ξ为二维激光雷达 的角度分辨率,本实施例中取ξ = 0.36°。
[0244] 由:
[0246] 得到:
[0247] | | BC | | = | | BD | | *sin(0 · 36。*ρ-90。+ΘΒ')
[0248] CF的长度也可以根据几何关系得到,即:
[0250] 得到:
[0251] |CF| | = | |DF| |-| |BD| |*cos(0.36°*ρ-90°+ΘΒ·)
[0252] 因此可以得到机器人在Β'位置处的坐标为:
[0254]对机器人位姿中的位置信息进行滑动滤波。将滑动窗口宽度设置为k*y长度(k< m),经过对上述P矩阵内η个簇群进行(m-k)次滑动滤波后,得到B '位置机器人相对起始位置 的位置为:
[0256]对以上η个(j+1)* γ时刻的位置进行均值滤波后,得到在B'位置的位置坐标为:
[0258] 3七6口7:初始化起点的位姿,8卩(1,7,0) = (〇,〇,〇),每经过丫=1的采样周期时,对 位姿进行累积。因此得到机器人在任何时刻的位姿。
[0259]最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较 佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技 术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明 的权利要求范围当中。
【主权项】
1. 一种基于激光雷达数据的移动机器人位姿推算方法,其特征在于:包括以下步骤: Stepl:接收与预处理激光雷达数据; Step2:分割聚类环境数据; Step3:从激光雷达数据中选择簇群; Step4:目标簇群的跟踪;获取簇群中每个子簇群的顶点在局部坐标系下的坐标数据, 获取簇群的顶点的坐标和每个连接连线的倾角; Step5:将起始点和终点组成连接直线并计算簇群中连接直线的偏转角度; Step6:通过滑动滤波计算机器人位置坐标变化后的位置坐标; Step7:初始化起点的位姿并存储位置坐标。2. 如权利要求1所述的基于激光雷达数据的移动机器人位姿推算方法,其特征在于:所 述步骤Stepl中的接收与预处理激光雷达数据的具体步骤如下: 通过与计算机连接的二维扫描型激光雷达传感器获取环境数据; 将环境数据以数组形式存储于计算机中,所述环境数据包括距离信息、激光雷达扫描 范围和角度分辨率; 预处理距离数据,包括去除有效范围外的数据点、滤除孤立的噪声点及对激光雷达测 量机制的缺陷补偿; 将环境数据从激光雷达的极坐标系下的数据转化为机器人或智能车辆的局部直角坐 标系坐标。3. 如权利要求1所述的基于激光雷达数据的移动机器人位姿推算方法,其特征在于:所 述步骤Step2中的按照以下步骤来分割聚类环境数据: 循环比较距离数据的每两个相邻数据点差值,标记差值大于分割阈值的数据点为分割 占 . 存储分割点的角标。4. 如权利要求1所述的基于激光雷达数据的移动机器人位姿推算方法,其特征在于:所 述步骤St ep3中从激光雷达数据中选择簇群的具体步骤如下: 计算簇群中相对应起始点和终点连接直线; 计算簇群中数据点与连接直线的距离; 获取距离直线最远的数据点为顶点; 计算顶点坐标; 计算连接直线的倾角。5. 如权利要求1所述的基于激光雷达数据的移动机器人位姿推算方法,其特征在于:所 述步骤Step5中的连接直线及偏转角度按照以下步骤来实现: 获取机器人相对于起始位置的A'位置坐标和角度信息Φ ; 对机器人的角度信息进行滑动滤波; 对簇群的角度信息进行滑动滤波; 得到B '位置机器人相对起始位置的角度信息; 通过对角度信息进行均值滤波得到机器人在B'位置的偏转角度:其中,Θβ'表不机器人在B'位置的偏转角度;η表不一帧环境数据中经过分割算法分割出 来的簇群总数;i表示η个簇群中第i个子簇群;病_表示第i个子簇群在j* γ时刻的位姿偏转 角度;表示第i个子簇群在(j+l)*y时刻的位姿偏转角度;Φ表示机器人在Α'位置的偏 转角度。6. 如权利要求1所述的基于激光雷达数据的移动机器人位姿推算方法,其特征在于:所 述步骤Step6中机器人位置坐标变化后的位置坐标按照以下步骤来计算: 获取机器人相对应起始点的A '位置坐标(X,y); 通过以下公式来计算机器人在B '位置的坐标:其中,Lrqbcit为机器人长度,XB'表不机器人在B '位置的横坐标;yB'表不机器人在B '位置 的纵坐标;I |CF| |表示机器人质心从A'位置到B'位置的纵坐标距离;| |BC| |表示机器人质 心从A '位置到B '位置的横坐标距离。7. -种基于激光雷达数据的移动机器人位姿推算系统,其特征在于:包括预处理模块、 分割聚类模块、簇群选择模块、簇群跟踪模块、偏转角度计算模块、位置坐标计算模块和存 储丰吴块; 所述预处理模块,用于接收与预处理激光雷达数据; 所述分割聚类模块,用于分割聚类环境数据; 所述簇群选择模块,用于从激光雷达数据中选择簇群; 所述簇群跟踪模块,用于获取簇群中每个子簇群的顶点在局部坐标系下的坐标数据, 获取簇群的顶点的坐标和每个连接连线的倾角; 所述偏转角度计算模块,用于将起始点和终点组成连接直线并计算簇群中连接直线的 偏转角度; 所述位置坐标计算模块,用于通过滑动滤波计算机器人位置坐标变化后的位置坐标; 所述存储模块,用于初始化起点的位姿并存储位置坐标。8. 如权利要求7所述的基于激光雷达数据的移动机器人位姿推算系统,其特征在于:所 述预处理模块中的接收与预处理激光雷达数据的具体步骤如下: 通过与计算机连接的二维扫描型激光雷达传感器获取环境数据; 将环境数据以数组形式存储于计算机中,所述环境数据包括距离信息、激光雷达扫描 范围和角度分辨率; 预处理距离数据,包括去除有效范围外的数据点、滤除孤立的噪声点及对激光雷达测 量机制的缺陷补偿; 将环境数据从激光雷达的极坐标系下的数据转化为机器人或智能车辆的局部直角坐 标系坐标。9. 如权利要求7所述的基于激光雷达数据的移动机器人位姿推算系统,其特征在于:所 述簇群选择模块中从激光雷达数据中选择簇群的具体步骤如下: 计算簇群中相对应起始点和终点连接直线; 计算簇群中数据点与连接直线的距离; 获取距离直线最远的数据点为顶点; 计算顶点坐标; 计算连接直线的倾角。 所述偏转角度计算模块中的连接直线及偏转角度按照以下步骤来实现: 获取机器人相对于起始位置的A'位置坐标和角度信息Φ ; 对机器人的角度信息进行滑动滤波; 对簇群的角度信息进行滑动滤波; 得到B '位置机器人相对起始位置的角度信息; 通过对角度信息进行均值滤波得到机器人在B'位置的偏转角度:其中,Θβ'表不机器人在B'位置的偏转角度;η表不一帧环境数据中经过分割算法分割出 来的簇群总数;i表示η个簇群中第i个子簇群;表示第i个子簇群在j* γ时刻的位姿偏转 角度;C ,表示第i个子簇群在(j+l)*y时刻的位姿偏转角度;Φ表示机器人在Α'位置的偏 转角度。10. 如权利要求7所述的基于激光雷达数据的移动机器人位姿推算系统,其特征在于: 所述位置坐标计算模块中机器人位置坐标变化后的位置坐标按照以下步骤来计算: 获取机器人相对应起始点的A '位置坐标(X,y); 通过以下公式来计算机器人在B '位置的坐标:其中,Lrqbcit为机器人长度,XB'表不机器人在B '位置的横坐标;yB'表不机器人在B '位置 的纵坐标;I |CF| |表示机器人质心从A'位置到B'位置的纵坐标距离;| |BC| |表示机器人质 心从A '位置到B '位置的横坐标距离。
【文档编号】G05D1/02GK105867373SQ201610213132
【公开日】2016年8月17日
【申请日】2016年4月7日
【发明人】孙棣华, 赵敏, 廖孝勇, 程森林, 杜道轶
【申请人】重庆大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1