想要路径规划好,Octomap少不了!

Octomap建图介绍

Octomap是一种基于八叉树的先进三维地图创建工具,能够呈现完整的3D图形,展示无障碍区域和未映射区域。通过融合和更新基于占有率栅格的传感器数据,Octomap可以在多次测量中实现高效更新。该地图提供多种分辨率选项,支持数据压缩,存储高效。Octomap的代码主要包含两个模块:三维地图创建工具octomap和可视化工具octovis。它引入了一种基于稠密点云的新地图表达方式,具有占据空间小、便于更新等明显优势,非常适用于机器人导航。

Octomap-八叉树原理

Octomap通过将空间划分成八个小正方体,构造出一种称为八叉树的结构。八叉树就是一个空间构造地图的方法,其基本思想就是递归地把空间分成8个方块。当你想要找到空间中一个点块时,就不断地将分解的空间块再次分成8个方块,直到找到你要寻找的“点块”大小为止。
这些立方块在内存中以八叉树的结构组织起来,每个树的节点对应于空间中的一个立方块,每个立方块称为体素。在达到给定的最小体素大小之前(也称为叶节点),这个空间会被连续细分为8个子空间。 这种结构允许大的正方体(称为父节点)细分为小的正方体(称为子节点),并且该过程可以持续进行,直到达到预定的最小体素,即叶节点。

下面是我们用P450无人机在室内环境中的Octomap实景建图的效果。地图由多个小方块组成,当分辨率高时,方块就小;分辨率较低时,方块就大。


高分辨率下呈现的地图效果

低分辨率下呈现的地图效果

更进一步,Octomap使用概率来描述节点的占据状态。若一个节点的占据概率大于0.5,则认为该节点被占据;若0.5,则认为未被占据。这种概率表示方法不仅方便根据传感器数据更新节点状态,还能在所有子节点状态相同时,删除这些子节点,仅使用父节点来表示该空间状态,极大地节省了存储空间。

建图技术对比

RTAB-Map建图(D435i)

我们现在使用P450无人机起飞,来观察EGO-Planner最初采用的视觉建图技术。这种建图技术是基于D435i深度相机实现的环境三维实时建图,由于不支持地图保存功能,存在一定的局限性。此外,深度相机对环境光线等因素非常敏感,这也导致建图的精度不高,从而影响EGO-Planner功能的执行准确性。

Octomap建图(雷达)

接下来我们把Octomap雷达建图技术适配于EGO-Planner路径规划中,然后使用P450无人机结合Octomap建图为大家演示相应的室内雷达EGO功能。

室内雷达EGO功能演示

无人机能够在飞行中通过雷达实时识别周围的障碍物和地形,收集必要的空间数据。收集到的数据随后需要转换成Octomap可以处理的格式。利用ROS,我们可以将雷达数据转换为点云格式,然后通过Octomap的算法更新三维地图。这个过程包括数据的融合、节点的更新,以及概率计算,以确定每个体素的状态。

总而言之,Octomap的优势在于其三维地图构建能力和对动态环境的处理,特别适合于需要精确三维模型的应用。而RTAB-Map在实时性、环境识别与重定位以及在移动设备上的高效运行方面表现更佳,适合于实时导航和大规模环境映射。选择哪种技术取决于应用的具体需求,如对三维空间建模的精度要求、实时性需求以及计算资源的限制等。

如果您对本文中提及的技术有兴趣或者想了解更多相关内容,可以在评论区留言,我们将持续为您带来更多精彩的科技资讯和研究成果。