基于激光雷达和视觉融合的机器人SLAM应用研究
2022-09-19叶宏庆薛锦茹冀鹏哲
叶宏庆,薛锦茹,冀鹏哲
(华北理工大学,河北 唐山 063210)
0 引 言
随着机器人技术的发展,越来越多的机器人已经实现自主运动,但可靠性和制作成本依然制约着机器人的普及。通过使用相较3D激光雷达传感器成本更低的2D激光雷达和视觉传感器进行点云数据融合,实现平台搭建,优化机器人的SLAM技术,解决当前2D激光雷达存在的感知单一平面点云数据不足、视觉传感器数据计算量大等问题,提升地图精度,减少SLAM应用过程中的不确定性。
1 实验平台搭建
研究基于ROS构建由2D激光雷达和深度相机点云融合的SLAM平台,通过NVIDIA Jetson TX2运算平台和STM32微控制器通信传送数据,实现机器人自主运动。实验平台包括点云数据识别部分和运动部分,整体结构如图1所示。
图1 实验平台整体结构
云数据识别部分包括激光雷达获取平面点云数据和双目相机深度点云计算。运行时激光雷达获取2D平面内障碍物点云信息,双目相机获取机器人正面范围的影像,通过Stereo Matching计算可视范围内的深度点云数据,并对其进行范围剔除和距离筛选;最后将双目相机获得的点云与激光雷达点云序列进行比较更新,融合点云数据后根据占据栅格地图算法构建地图。点云数据融合过程如图1所示。
运动部分通过单片机STM32F4从NUC获取运动速度向量或从遥控中获取控制信息,经PID解算将电流或电压值发送给底盘电机,电机连接联轴器带动麦克纳姆轮转动,从而实现全方向移动。机器人整体设计如图1所示。
2 研究与测试
围绕ROS节点话题进行研究和测试。双目相机点云生成节点(cameraNode),将相机点云(/camera_cloud)传送给点云数据处理节点(/transNode)处理,得到深度数据(/depth);激光雷达点云生成节点,得到点云数据(/laser),二者由点云合成节点(/mergeNode)融合得到点云数据(/scan),再将其输出到HectorMapping的节点。点云融合建图部分ROS节点与话题如图2所示。
图2 点云融合建图部分ROS节点与话题
2.1 双目校正与像素匹配
使用金乾象工业相机中的两个自制双目深度相机,需要保证左右画面的同步和亮度,否则会导致深度图的计算结果不佳。因此,在相机点云生成(/camera_cloud)之前,需要对左右相机读取的原图像进行双目校正和像素匹配。
双目校正根据摄像头标定后获得的单目内参(焦距、成像原点、畸变系数)和双目相对位置关系(旋转矩阵和平移向量),分别对左右视图进行消除畸变和行对准,使得左右视图的成像原点坐标一致、摄像头光轴与对极线行对齐。原图像与校正后图像对比情况如图3所示。
图3 原图像与校正后图像的对比
像素匹配通过匹配代价计算、代价聚合、视差计算和视差优化等步骤,对左右视图上对应的像素点进行匹配得到视差图。依靠视差图,结合双目相机的内参,计算得到正交空间下的点云数据。
2.2 点云数据处理
由于双目相机参数的差异,帧速率不能完全同步,获取的点云数据存在一定误差,需要先通过点云数据处理节点(/transNode)变换和剔除数据,再通过点云合成节点(/mergeNode)融合同种格式的数据。
正交空间下的点云通过透视除法的逆变换得到相机空间下的点云数据,获得相对于相机实际位置的坐标。坐标变换与效果如图4所示。
图4 坐标变换与效果
数据转换部分将点云投影到二维平面,并转换为激光雷达点云格式的数据,即角度和对应方向的深度值。转换时,通过反正切函数,根据点云位置的水平偏移与深度值计算出角度和距离值,筛选取得各个角度上距离最近的点云,效果如图5所示。在融合点云之前,应当剔除视锥内不需要的部分,效果如图5中截取点云后的投影图所示;否则地面和天花板将对投影后的点云造成影响,效果如图5中的原点云投影图所示。考虑到双目左右图像的边缘缺少完整的匹配信息,点云可能出现极不稳定的深度值,效果如图5中未进行边缘剔除的投影图所示。因此,在能够反映完整深度值的情况下,剔除部分边缘深度值,效果如图5中边缘剔除后的投影图所示。
图5 点云处理效果
2.3 点云融合建图
点云合成节点将深度数据和激光雷达点云数据融合,并筛选出各个角度距离最近的点云输出到HectorMapping的节点。
经过测试,增加双目相机后的建图能够获取单线雷达扫描平面外的细节,自身位姿估计和建图结果更加精确,测试对比结果如图6所示。但与工业级产品相比稳定性差,建图过程中会有微小偏差。
图6 测试对比
3 结 语
本文通过激光雷达提供大范围点云信息,视觉传感器提供机器人正面区域补充激光雷达缺失的点云,较单线雷达大范围稀疏点云提高了计算准确度,使用Hector SLAM算法融合点云数据,更好地实现机器人点云获取和建图。