Octomap原理

1、八叉树

       八叉树是用于3D空间细分的分层数据结构(Meagher,1982;Wwi1he1ms and Van Gclder,1992),八叉树中的每个节点代表包含在立方体中的空间,通常称为体素。该体积被递归地细分成八个子体积,直到达到给定的最小体素尺寸,如图1所示。最小体素尺寸决定了八叉树的分辨率。由于八叉树是一种分层数据结构,如果相应地保持内部节点,则可以在任何级别切割该树以获得更粗的细分。

       在其最基本的形式中,八叉树可用于模拟布尔属性。在机器人绘图的上下文中,这通常是体积的占用。如果某个节点被测量为被占用,则八叉树树中的相应节点被初始化。在这个布尔设置中,任何未初始化的节点都可能是空闲的或未知的。为了解决这种模糊性,我们在树中显式表示空闲节点。这些是在传感器和测量端点之间的区域中产生的,例如,沿着用光线投射确定的光线。未初始化的是隐式地模拟未知空间。包含来自真实激光传感器数据的空困和占用节点的八叉树的图示可以在图1中看到。使用布尔占用状态或离散标签允许八叉树的紧凑表示:如果一个节点的所有子节点具有相同的状态(占用或空闲),则它们可以被修剪。这大大减少了树中需要维护的节点数量。
        在机器人系统中,人们通常必须应对传感器噪声和暂时或永久变化的环境。在这种情况下,单独的占用标签是不够的。相反,必须对占用进行概率建模,例如通过应用占用网格映射。然而,这种概率模型缺乏通过修剪进行无损压缩的可能性。

2、数据更新

猜你喜欢

转载自blog.csdn.net/qq_57061492/article/details/126344449