octomap, slam, path planning: how does it all fit together?
My goal is to simulate the flight of a UAV in an outdoor environment. My preliminary steps are to see what ROS packages exist which I can reuse, and determine what I need to write myself.
I've looked for projects which have overlap with mine:
- http://wiki.ros.org/hector_quadrotor
- http://wiki.ros.org/tum_ardrone
- http://www.ros.org/news/2010/08/robot...
However I'm still trying to figure out how the following topics fit together:
- SLAM
- OctoMap
- Path Planning
I'm not sure how they're intertwined, so I have several questions for experts out there:
OctoMap
- Is it only good for generating 3D probabilistic maps? Does it offer solutions for localization? Or is that out of scope?
- Is it capable of efficiently representing large geometric areas as obstacles? For example if I have a house I want to avoid, can I place a large rectangular prism in the map?
- Does it have support for dynamic obstacles? For example other drones or moving vehicles?
- Are octomaps even necessary for mobile drone applications (or outdoor applications in general)? Do people roll their own mapping solutions or does everyone use octomap?
- Is there a certain data type (or sensor type) that the octomap supports or requires? What if I have sonar, RGBD, LIDAR, monocular camera, etc.?
- What if an octomap gets too big? Is it possible to have a moving window filter around an area of interest (i.e. the drone) and "forget" the rest of the map (or dump to disk)?
Path Planning
- Can I view path planning as a function which takes in an octomap and returns a 3D path according to the planner algorithm?
SLAM
- Does a SLAM algorithm populate the octomap? Or does the SLAM algorithm work off the existing octomap and sensor data? What does this workflow look like?
Could you find answer to this question? A good answer to this question will greatly help me. Thank you.