APP下载

自主移动机器人路径规划中的点云噪声处理

2021-09-11王新杰张莹张东波王玉杨知桥

智能系统学报 2021年4期
关键词:离群体素斜坡

王新杰,张莹,2,张东波,2,王玉,杨知桥

(1.湘潭大学 自动化与电子信息学院,湖南 湘潭 411105;2.湖南大学 机器人视觉感知与控制技术国家工程实验室,湖南 长沙 410082)

机器人在自主导航过程中,对当前环境的点云地图进行运算处理,根据分析结果实施路径规划。但点云地图会由于传感器误差、光照、阴影等外在因素,导致存在大量的冗余信息,需要通过滤波消除不利影响[1-2]。

点云的噪声分为小振幅噪声和离群点噪声[3]。小振幅噪声体现为物体表面随机分布的点,为了减少小振幅噪声点,Alexa 等[4]使用移动最小二乘(moving least squares,MLS)算法生成平滑表面;Chen 等[5]定义隐式移动最小二乘(implicit moving least squares,IMLS)方法构建插值或逼近隐式曲面;Zhang 等[6]提出加权最小二乘法和层次聚类算法以加快MLS 方法;但是这些算法对大数量的离群点和平滑表面敏感。而离群点噪声表现为远离真实物体表面的点或点簇[7]。离群点去噪算法分为基于统计的方法和基于几何的方法。基于统计的方法将噪声数据拟合为标准概率分布,根据噪声点云与正常点云的概率分布不同进行去噪[8]。基于几何的方法根据点到相邻点的距离或局部密度中心的距离与阈值的比较,判断是否是噪声点[9]。

基于图像的ORB-SLAM2[10]在ORB-SLAM[11]的基础上增加了双目和RGB-D 模式,可以直接获取图像的深度信息,但算法只能生成稀疏的特征点云地图,不能准确表达环境的结构和纹理信息。同时基于图像的三维重建技术比基于激光传感器生成的点云数据具有更高幅值和更多的噪声[12],需要进一步研究。本文在ORB-SLAM2 的基础上,研究机器人路径规划中的点云噪声数据处理,并将处理后的结果用于机器人越障或避障的决策。

1 基于ORB-SLAM2 的点云拼接

ORB-SLAM2 利用RGB 图像信息和对应的深度信息进行点云拼接,获取环境特征的地图形式。定义序列X={x1,x2,···,xn} 来表示三维空间点的集合,其中x1=[x y z]T表示相机在三维空间中的坐标。则三维空间中的坐标点映射到二维图像平面的像素坐标 [u v]T用相机成像模型来描述:

式中:K是相机的内参数矩阵;R和t分别为相机的旋转矩阵和平移向量;d是像素值的深度。

相机坐标[xy z]T可以根据其在三维空间的坐标到二维像素坐标的反推计算:

其中,cx、cy和fx、fy分别为相机内参中的光心和焦距,是相机的固有参数。

式(2)将当前帧的RGB 图像、深度图像,关键帧对应的相机位姿信息变换到世界坐标,创建当前帧的点云地图。本文采用迭代最近点(iterated closest points,ICP)[13-14]算法将不同坐标系下的点云对准到同一世界坐标系,实现局部点云地图的拼接。算法如图1 所示。

图1 基于ICP 的三维点云拼接Fig.1 Three-dimensional point cloud registration based on ICP

ICP 首先将待拼接的2 片点云或其中1 片点云进行采样,然后根据点到点、点到投影、点到面这3 种方法确定对应点集,一般采用最小二乘法迭代求解2 片点云间的最优坐标变换,完成点云的拼接。

2 路径规划中的点云数据处理

2.1 点云模型中的滤波方法

机器人路径规划一般用直通滤波分割点云的范围,删除指定场景外的点。深度相机获取的点云数据量过大,需要经过降采样处理以减少点的数量,提高处理效率,路径规划算法常用体素滤波进行数据压缩,节省存储空间。由于设备精度误差和环境物体间的视野相互遮挡,深度相机输出的原始点云数据存在大量离群噪声点,路径规划算法常用统计滤波去除离群点噪声,保留物体表面上的点。

统计滤波首先通过K个最近邻域搜索功能计算点到其邻域的平均距离。计算如式(3)所示。

式中:µ 代表估计的平均距离;σ 代表标准差;α 为标准差倍数阈值。如果某点的计算值 µ±α·σ 不小于点云中所有点与邻域的距离l,则被认为是异常点,可将其剔除。故离群点的去除效果由阈值K和 α 决定。

2.2 障碍物点云分割及其坡度计算

机器人越障需把斜坡面和地平面分割出来,计算两个平面之间的夹角,如图2 所示。经典的点云分割算法分为基于聚类的分割算法和基于模型的分割算法[15],基于模型的分割算法采用随机采样一致性(random sampling consensus,RANSAC)原理,删除范围以外的点,得到指定范围内的点所组成的子集,从而拟合线或面。

图2 障碍物平面分割Fig.2 Obstacle plane segmentation

当两个点云平面即斜坡面和地平面被分割以后,如果以两个方程分别表示斜坡面:A1x+B1y+C1z+D1=0和地平面:A2x+B2y+C2z+D2=0,则两个平面的夹角 θ 用式(4)求取:

2.3 去噪方法的性能评估

为了评估统计滤波方法在不同设置下的准确性,定义假阳性率(FPR)和假阴性率(FNR)来表示两类不同的误差[16],FPR 为被误检为噪声点的正常点个数在总正常点云数中的比例,FNR 为被误检为正常点的噪声点个数在总噪声点云数中的比例。

3 实验结果与分析

3.1 数据集下的异常点剔除分析及参数选择

斯坦福大学的Table Scene 数据集如图3 所示,数据量共460 400 个点,将带有噪声的点云(4 719点)标为红色区域,统计滤波算法在不同参数下的异常点删除对比如图4 所示。不同参数的滤波结果如表1 所示。

图3 Table Scene 点云数据集Fig.3 Table Scene point cloud dataset

图4 不同参数下统计滤波的异常点删除效果Fig.4 Outlier removal effect of statistical filtering under different parameter

表1 统计滤波在不同参数下的滤波结果Table 1 Results of statistical filtering under different parameters

续表 1

从图4 可以看出,当K=20,α分别为0 和0.5时,滤波删除了物体表面上的点;当K=20,α=1时,滤波删除了桌面后方边缘处桌面内的点,出现了孔洞;当K=20,α=3 时,在桌面与地面之间出现了没有被删除的离群点;当α=2,K分别为20、50、100 时,滤波效果基本相当。根据表1 的处理时间,选取K=20,α=2 作为统计滤波的计算参数。

3.2 实际环境下的点云处理

3.2.1 机器人在路径规划中的点云处理

为了验证滤波算法是否可行,选取室外环境中的两处斜坡作为研究对象,如图5 所示。利用Kinect-2.0 相机采集RGB 图像和深度图像,通过ORB-SLAM2 算法求取关键帧,从而进行点云拼接,构建三维点云地图,Turtlebot 机器人如图6 所示,障碍物判断流程如图7 所示。

图5 室外环境示意图Fig.5 Outdoor environment diagram

图6 Turtlebot 机器人Fig.6 Turtlebot robot

图7 机器人路径规划中的点云处理示意Fig.7 Point cloud processing in robot path planning

机器人以0.2 m/s 的速度运行,如果斜坡角度小于20°,机器人继续执行先前规划的路径;如果坡度大于20°,那么机器人会停下来重新规划新的路径。两处斜坡如图8 所示。由Kinect-2.0 所拍摄的画面及通过ORB-SLAM2 所构建的局部环境点云如图9 所示,可发现点云拼接的局部地图包括斜坡、蓝色卷闸门以及大量离散分布的噪声点。

图8 室外越障环境Fig.8 Outdoor obstacle crossing environment

图9 两处斜坡的点云地图Fig.9 Point cloud maps of two slopes

3.2.2 直通滤波

在机器人左右两侧和前方进行直通滤波之后,得到的点云地图如图10 所示,可以看到滤波较好地去除了无关信息,保留了机器人视角范围内的有效信息。

图10 直通滤波后的点云地图Fig.10 Point cloud map after pass through filtering

3.2.3 体素滤波

直通滤波处理后,点云仍然存在许多视野重叠点,为提高算法速度,体素滤波降采样处理后的点云如图11 所示,点云变得稀疏但是仍保持着原来的形状特征,计算数据量对比如表2 所示。

图11 体素降采样后的点云地图Fig.11 Point cloud map after voxel down sampling

表2 体素滤波前后的点云地图数据对比Table 2 Comparison of point cloud map data before and after voxel filtering

从表2 可得,经过体素降采样后,第1 处斜坡环境地图中的点云数减少98.47%,存储空间减少了98.46%;第2 处斜坡环境地图中的点云数减少90.18%,存储空间减少了89.95%。

3.2.4 统计滤波

从图11 可以看出,经过直通滤波和体素滤波处理之后的两处斜坡点云,仍然存在远离点云平面的异常点,尤其是第2 处斜坡出现的噪声点要比第1 处斜坡更多(红色框标出部分),可能的原因是机器人在第2 处斜坡处的相机获得的信息更复杂,深度图像范围越大,噪声越多,严重影响平面分割的准确度,需要进行异常点的删除。采用3.1 节得到的K=20,α=2 作为统计滤波输入参数,滤波效果如图12 所示,基本保留了第1 处斜坡和第2 处斜坡表面的内点,去除了离群的噪声外点。

图12 统计滤波剔除离群点后的点云地图Fig.12 Point cloud map with outliers removed by statistical filtering

3.2.5 点云分割及其平面夹角计算

经过直通、体素和统计滤波处理以后,算法将图12 障碍物点云分割为两个平面,其效果如图13 所示。

图13 分割后的斜坡面和地平面点云Fig.13 Point cloud of slope and ground plane after segmentation

分割出的斜坡面和地平面的方程系数如表3所示,将每一个平面方程的前3 个系数A1、B1、C1和A2、B2、C2代入式(4)可求得第1 处斜坡坡度大小约为32°,第2 处斜坡坡度大小约为10°。

表3 分割出的各平面方程系数值Table 3 Coefficients of each plane equation separated out

3.2.6 机器人路径规划过程

机器人检测到前方有斜坡,算法经过式(4)计算后判断是否可以通过。由于第一个斜坡夹角为32°,Turtlebot 机器人无法通过,只能左转运动到位姿D重新规划路径,第2 处斜坡夹角约10°,机器人可直行,经过位姿E、F、G到达坡上终点,整个过程如图14 所示,机器人运动时线速度和角速度变化如图15 所示。

图14 机器人路径规划线路Fig.14 Robot path planning

图15 驱动轮线速度(V)和角速度(W)变化曲线Fig.15 Variation curve of linear velocity (V) and angular velocity (W) of driving wheel

从图15 可以看出,机器人在位姿A处检测到第1 处斜坡,停止前进对坡度进行计算,计算出来的夹角32°大于机器人越障的阈值20°,故无法通过,机器人原地旋转变为位姿B;在经过位姿C、位姿D的过程中,机器人同时有线速度和角速度的变化,在位姿E处检测到第2 处斜坡,同样停止前进对坡度进行计算,计算出来的夹角10°小于系统设定的阈值,机器人继续前进,经过F点和G点到达设定的终点。

4 结束语

本文对户外的机器人运动环境建立了三维点云地图,通过对点云地图进行直通滤波筛选出目标数据,再通过体素滤波降采样,然后使用统计滤波对目标点云中的噪声点进行删除,最后通过分割后的两个平面夹角,判断机器人是否可以通行。下一步计划在前端视觉里程计中,根据图像的灰度信息来计算相机运动,减少对环境纹理的依赖,实现更鲁棒的三维点云地图处理。

猜你喜欢

离群体素斜坡
基于多级细分的彩色模型表面体素化算法
瘦体素决定肥瘦
运用边界状态约束的表面体素加密细分算法
基于体素格尺度不变特征变换的快速点云配准方法
信仰的“斜坡”
一种相似度剪枝的离群点检测算法
梦是长长的斜坡(外一首)
离群数据挖掘在发现房产销售潜在客户中的应用
应用相似度测量的图离群点检测方法
无轨斜坡道在大红山铁矿中的应用