The OctoMap library implements a 3D occupancy grid mapping approach, providing data structures and mapping algorithms in C++ particularly suited for robotics. The map implementation is based on an octree and is designed to meet the following requirements:
OctoMap库实现了3D占用网格映射方法,以C ++提供了特别适合机器人技术的数据结构和映射算法。 该地图实现基于八叉树,旨在满足以下要求:
- Full 3D model. The map is able to model arbitrary environments without prior assumptions about it. The representation models occupied areas as well as free space. Unknown areas of the environment are implicitly encoded in the map. While the distinction between free and occupied space is essential for safe robot navigation, information about unknown areas is important, e.g., for autonomous exploration of an environment.
- Updatable. It is possible to add new information or sensor readings at any time. Modeling and updating is done in a probabilistic fashion. This accounts for sensor noise or measurements which result from dynamic changes in the environment, e.g., because of dynamic objects. Furthermore, multiple robots are able to contribute to the same map and a previously recorded map is extendable when new areas are explored.
- Flexible. The extent of the map does not have to be known in advance. Instead, the map is dynamically expanded as needed. The map is multi-resolution so that, for instance, a high-level planner is able to use a coarse map, while a local planner may operate using a fine resolution. This also allows for efficient visualizations which scale from coarse overviews to detailed close-up views.
- Compact. The map is stored efficiently, both in memory and on disk. It is possible to generate compressed files for later usage or convenient exchange between robots even under bandwidth constraints.
完整的3D模型:该地图无需事先假设即可建模任意环境。可以表示模型的占用区域以及自由区域。环境的未知区域在地图中隐式编码。因为自由空间和占用空间之间的区分对于机器人导航的安全至关重要,所以获取未知区域的信息非常重要,例如对于环境的自主探索。
可更新的:可以随时添加新信息或传感器读数。建模和更新以概率方式进行。这考虑了环境中的动态变化(例如由于动态物体)而导致的传感器噪声或测量结果偏差。此外,当探索新的区域时,多个机器人能够对同一张地图做出贡献,并且先前记录的地图可以扩展。
灵活:地图的范围不必事先知道。而是根据需要动态扩展地图。该地图具有多种分辨率,因此,例如,高级计划者可以使用粗略的地图,而本地计划者可以使用高分辨率进行操作。这也可以实现有效的可视化,从粗略的概述到详细的特写视图。
紧凑:映射有效地存储在内存和磁盘中。即使在带宽限制下,也可以生成压缩文件供以后使用或在机器人之间方便地交换。
Detailed information about the implemented approach and evaluations can be found in the paper "OctoMap: An Efficient Probabilistic 3D Mapping Framework Based on Octrees" (PDF), published in the Autonomous Robots Journal.