Repository navigation
Home
OmniPlanner: Universal Exploration and Inspection Path Planning Across Robot Morphologies (aka GBPlanner 3.0)
Welcome to the OmniPlanner wiki!
This wiki provides installation instructions, examples, configuration guidance, and documentation for running the planner on aerial, ground, and underwater robotic platforms.
OmniPlanner is a unified path-planning framework for autonomous operation in uknown environments. It supports three mission behaviors within the same architecture:
- Volumetric exploration
- Visual inspection
- Target reach
Rather than implementing a separate planner for each robot or task, the framework separates reusable planning logic from robot-specific motion, sensing, and traversability constraints. A common planning kernel is combined with lightweight embodiment, sensor, and mission adaptation layers. This allows the same core planner to be used across aerial, ground, and underwater robots that can be approximated as holonomic systems.
The planner operates on an incrementally constructed volumetric Signed Distance Field (SDF) map. Ground robots additionally use a local 2.5D elevation map for terrain-support and slope reasoning. Robot configurations contain position and yaw, and can optionally include the pitch angle of an actuated sensor.
The planner kernel provides the graph construction, graph search, and local-global planning mechanisms shared by all robot embodiments and behaviors.
At every planning iteration, the local planner constructs a bounded, sampling-based graph around the current robot configuration. Samples represent collision-free robot configurations and are connected using embodiment-valid edges.
The local graph provides:
- Short-horizon collision-free motion
- Reachability reasoning in the currently mapped free space
- Candidate paths for exploration, inspection, or target reach
- Bounded computational cost through a fixed local planning volume
Three sampling distributions are supported:
- Uniform sampling, for broad coverage of the local planning volume
- Gaussian sampling, for denser connectivity near the robot in confined environments
- Hybrid sampling, which combines local density with longer-range coverage
The graph can be built incrementally or through batch construction. In batch mode, a complete set of candidate configurations is sampled before connectivity is evaluated, allowing the planner to discover disconnected rooms, branches, and narrow transitions more efficiently.
The global planner maintains a persistent, sparse graph representing previously validated connectivity across the mapped environment. Unlike the transient local graph, it grows throughout the mission.
Representative local paths are added to the global graph after path clustering, reducing redundant vertices and edges while retaining long-range connectivity. The global graph is used for:
- Repositioning toward distant informative regions
- Guiding target-reach missions through previously mapped space
- Tracking long global routes using repeated local replanning
- Computing a safe return-to-home path
- Enforcing mission-duration or endurance constraints
When following a global path, the planner does not command the complete route blindly. Instead, a lookahead point is selected on the global route and tracked using a newly constructed local graph, allowing the robot to react to newly observed obstacles.
Task-specific operation is implemented by applying different objective functions, path-scoring criteria, and termination conditions to the shared planning kernel. The graph construction and feasibility checks remain unchanged.
The volumetric exploration behavior selects paths that reveal previously unknown map volume using the configured depth sensor model. For each local graph iteration, shortest paths from the current robot configuration are computed. Candidate paths are scored according to their cumulative expected volumetric information gain, while penalizing excessive path length and large deviations from the current exploration direction. When useful local gain is exhausted, the planner queries the global graph and repositions the robot toward a previously identified frontier with remaining exploration potential. Frontier selection also accounts for travel cost, remaining mission time, and the cost of returning home. If no valid frontier remains, exploration is considered complete and the robot returns to its start location.
The visual inspection behavior plans camera viewpoints that cover mapped surfaces while respecting:
- Camera field of view
- Minimum and maximum sensing distance
- Robot collision constraints
- Robot yaw
- Optional actuated-camera pitch
Candidate viewpoints are sampled in free space around the selected surface. A greedy coverage procedure removes redundant viewpoints and retains a compact subset that contributes new surface observations. The selected viewpoints are inserted into a collision-free planning graph. Pairwise graph distances are then used to solve a Traveling Salesman Problem, and the final inspection route is formed by concatenating the shortest feasible paths between consecutive viewpoints.
The target reach behavior guides the robot toward a user-defined position, including targets initially located in unknown space. If the target is connected to the explored global graph, the planner uses the corresponding global route as guidance. Otherwise, it selects a frontier that balances the cost of reaching the frontier with the remaining distance from that frontier to the target. A lookahead point is chosen along the global guiding path, and the local planner selects the collision-free path whose endpoint makes the greatest progress toward it. Planning continues until the target is reached, no frontier remains, or no feasible path can make further progress.
OmniPlanner retains the bifurcated local-global architecture of GBPlanner 2.0, but extends it from a morphology-aware exploration planner into a multi-behavior and cross-domain planning framework.
The main extensions are:
- Multiple planning behaviors: support for volumetric exploration, visual inspection, and target reach using the same planning kernel
- Underwater robot support: embodiment adaptation for hover-capable underwater vehicles, including structure-proximity constraints
- Visual inspection planning: surface-aware viewpoint generation, greedy coverage selection, graph connection, and TSP-based viewpoint ordering
- Actuated camera support: robot state can include camera pitch in addition to position and yaw
- Target-reach behavior: global frontier guidance and local lookahead tracking toward goals in known or unknown space
- Additional sampling strategies: Gaussian and hybrid sampling in addition to uniform sampling
- Batch graph construction: simultaneous sampling and connectivity evaluation for faster discovery of reachable branches and compartments
- Broader validation: demonstrations across aerial, ground, underwater, and marsupial ground-aerial systems in simulation and field deployments
GBPlanner 2.0 was designed specifically for exploration. OmniPlanner generalizes its local-global graph architecture by expressing task differences as modular objectives and robot differences as adaptation layers, while keeping the common planning kernel unchanged.
This open-source release is based upon work supported by a) the Research Council of Norway under Grant NCEI (No. 357451) and b) the European Commission under the Horizon Europe Programme through Grants SYNERGISE (No. 101121321), AUTOASSESS (No. 101120732), SPEAR (No. 101119774), and DIGIFOREST (No. 101070405).