为什么说move_base框架不适合3D导航

检测高度难以调整

多线雷达安装在一定高度,地面上有个比较矮的障碍物,要在代价地图里添加。这显然涉及参数min_obstacle_height,要将其降低
-0.5 未检测到低处障碍
-0.55 检测到障碍,但不合理
只稍微降低了min_obstacle_height,虽然是检测到了,但是个环形,这跟多线雷达数据的形状一样,所以认为其实是检测到了地面。

这里发现代价地图能做的修改其实很少了,主要在LOAM和octomap_server

检测距离不能太大

这说的是obstacle_range,如果太大,局部代价地图的窗口的四角都会出现障碍,不知是怎么添加进来的。

代价地图添加了太多不需要的点云数据

对于多线雷达,点云数据量比单线大了很多,在检测近处障碍的时候,计算sq_dist会得到很多点(虽然delta_z不是0)。单线雷达扫描的是一条线,多线其实是很多条线,但是代价地图是2D的,投影会有很多重复的,需要针对xy坐标去重,显著降低了效率,这又是costmap_2d不适合多线雷达的一个例子。

这种情况下,增大的网络占用已经不能忽略了,不能开Rviz,否则会大大影响到导航。