Pipeline
- The simulation streams depth images and odometry from Unity and forwards rotor commands back.
- An OctoMap server turns depth images into point clouds and builds a 3D occupancy map.
- A mission-control state machine runs the mission: idle, takeoff, navigate to the cave, explore, finish.
- A frontier detector finds boundaries between mapped and unknown space, clusters them with mean-shift, and picks the best exploration goal.
- A sampling-based planner generates candidate quintic-polynomial trajectories, checks them for collisions against the map, and picks the best one.
- A geometric SE(3) controller (Lee et al.) tracks the trajectory.
Design decisions
- Frontier-based exploration: no predefined paths inside the cave; the drone decides where to go from the map itself.
- Sampling-based planning: sampling many smooth polynomial trajectories instead of graph search gives dynamically feasible paths.
- Non-zero terminal velocity: segments end at 70% of cruise speed so consecutive trajectories chain smoothly, without stop-and-go.
- Goal debouncing: small shifts in the frontier goal are ignored to avoid jittery replanning.
- Object detection: a semantic camera pipeline finds lanterns in the cave and tracks their 3D positions.