Abstract
3D models are an essential part of many robotic applications. In applications where the environment is unknown a-priori, or where only a part of the environment is known, it is important that the 3D model can handle the unknown space efficiently. Path planning, exploration, and reconstruction all fall into this category. In this letter we present an extension to OctoMap which we call UFOMap. UFOMap uses an explicit representation of all three states in the map, i.e., unknown, free, and occupied. This gives, surprisingly, a more memory efficient representation. We provide methods that allow for significantly faster insertions into the octree. Furthermore, UFOMap supports fast queries based on occupancy state using so called indicators and based on location by exploiting the octree structure and bounding volumes. This enables real-time colored octree mapping at high resolution (below 1 cm). UFOMap is contributed as a C++ library that can be used standalone but is also integrated into ROS.
Highlights
M ANY robot tasks require a 3D model of the environment to be completed
We compare our proposed mapping framework, UFOMap, against OctoMap when it comes to memory consumption, insertion time, and in three different use cases
We present UFOMap, an open source framework for 3D mapping
Summary
M ANY robot tasks require a 3D model of the environment to be completed. For navigation and manipulation tasks the model is often used to calculate collision free paths and in exploration to determine where new information can be found and how to get to it. 3D SLAM updates the model and localizes the robot using it. A number of different methods for modeling 3D environments exists: point clouds, elevation maps [1], multi-level surface maps [2], octrees [3], and signed distance fields [4]. All of these methods are able to represent occupied and free space. In algorithms where the unknown space is used extensively, OctoMap’s implicit representation of unknown space can be a bottleneck Use cases where this can be a problem are, for example, collision checking, path planning where we want to know if it is possible for a robot to move from one location to another and next-best view exploration methods such as [6], [7], [8], and [9].
Published Version (Free)
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.