使用ROS,2D激光雷达和霍夫变换进行地平面检测

时间:2018-07-17 14:22:16

标签: opencv detection ros hough-transform lidar

最近,作为业余爱好者项目,我们已经构建了我们的第一个原型机器人(UGV),并且正在使用ROS Kinetic和OpenCV进行多种障碍物检测和避免任务。作为我们的主要3D环境地图绘制设备,我们使用立体声相机,并且希望点云数据能够足以检测高精度的地平面。机器人只能在高度差不超过5-6cm或更大的地面上行驶。

不幸的是,从立体相机(Stereolabs的ZED cam)生成的点云数据对于我们的用例而言可能不够精确。因此,我们购买了2D LIDAR(RPLidar A2M8),并以45°角(向下显示到地面)放在机器人的“鼻子”上。

我们的计划是使用LIDAR激光扫描数据来识别地面开始为“非平面”的位置。我们希望将检测到的机器人中心下方的地线用作参考点/参考线,并且距它左右的每个点或线的高度差都将超过5-6厘米(可能再增加1-2厘米)处于其“禁止行驶/危险区域”。

问题如下:

我们考虑过使用霍夫变换(Hough Transform)或某种具有类似输出的算法来绘制位于机器人中心(宽度大约为40至50厘米)下方的参考地线。作为备份/驾驶改进策略,我们也想使用相机数据并应用Canny Edge Filter + Hough Transform来检测地面上的边缘,因此,如果LIDAR数据不正确,我们的机器人可以更好地检测其“无驱动区域”准确或足够精确。另外,我们可能会尝试使用立体摄像机和几种算法来检测“通用地面”,然后获取LIDAR数据并从地面“减去”其数据,以找到我们的“安全驾驶区”。

您认为这是实现我们特定目标的正确方法,还是可以将我引向其他方向,从而使您的观点更好?我可能会在接下来的几天和几周内对其进行测试,看看是否可行,但是如果你们中的一些人知道更好的方法,那么我将非常高兴,这样我们就不会浪费太多时间“朝错误的方向行驶” :-)非常感谢!

0 个答案:

没有答案