论文算法学习实现(5):动态障碍物的检测和剔除2
前言背景: 根据前面讲到的动态障碍物检测和剔除算法,结合视角椎视野模型,实现动态障碍物剔除如下。
前言研究一:动态障碍物的检测和剔除算法解析
前言研究二:视角椎的实现和数据剔除
一. 动态障碍物检测去除算法更新如下:
结合上一节中对障碍物检测讨论
-
利用视角锥检测相机视野空间中障碍物的变化,可以判断出哪些点是新的点哪些点是旧的的点,因此我们对比两次点集的不一致进行比较区分;
-
现在可以利用视角椎滤出得到的数据(3D点云数据),是在相机视野范围内的数据,且可以根据相机的移动(获取相机位姿),
实时更新Frustum的视野范围,即可以实时得到当前视野范围内的点云数据。
二. 分别利用C++代码和ROS节点消息实现了障碍物的去除
1. 将分别有障碍物和无障碍物的点云地图保存下来,检测动态障碍物的位置:
检测在同一片区域内、同样的视角椎范围内地图的不同点;
2.将检测到的动态障碍物用不同颜色标注,显示在同一个窗口,可以对比看出哪些是要剔除的部分:
从上图中可以看出,蓝色与白色是地图中的静态障碍物, 而红色是在地图中保留、当前帧中没有的数据,我们需要将其剔除;
3. 将检测到的动态障碍物剔除,并将剔除动态障碍物后的地图与原地图进行对比:
下面图是原地图数据(保留有rgb颜色), 上图中的右图为处理过程中的图,标出了需要除掉了障碍物(红色物体), 上图中的左图为最后处理得到的图。
三. 小结
总而言之, 针对算法的解析和设计,实现了基于视锥体的障碍物检测和剔除。但是还需要对其进一步优化,保证其算法的稳定性。