Open Apero

Contents

Open Apero#

Open Apero (Open Active PErception Library for RObotics) is a C++17 library for active perception in mobile robotics: a robot decides where to move and what to sense to gather the observations its task needs, such as unexplored volume, unseen surface or target points.

Each planning cycle grows a graph of candidate viewpoints and scores each by its gain, what it would observe in the current map. Among the paths that start at the robot, the planner seeks the one with the most gain g(p) whose cost c(p), such as trajectory time, fits the budget C:

\[p^{*} = \arg\max_{p \in \mathcal{P}} \; g(p) \quad \text{subject to} \quad c(p) \le C\]

The robot executes the first edge of p*, and the planner plans again from where it arrives:

        flowchart LR
    Grow["Grow<br/>candidates"] --> Score["Score<br/>their gain"] --> Search["Search the<br/>best path"] --> Move["Execute<br/>its first edge"] --> Grow
    

It is the code release of An Efficient Beam Search Algorithm for Active Perception in Mobile Robotics (Qu et al., IJRR 2026; project page): the paper’s beam-search planners, its baselines except the external FUEL planner, its graph benchmark and its simulated experiments.

  • Planners: beam searches NBS and DBS, shortest-path tree search (SPT) and TSP on a random annulus graph (RRAG); tree baselines RRT and RRT*

  • Tasks: volumetric exploration, surface reconstruction and point collection (task:=)

  • Plugins for every role: map, generator, evaluator, path planner, sensor model, robot model, cost computer, backtracker and layer, each selected by its YAML type:

  • ROS Noetic node for any robot, on a Voxblox map, and a Habitat-sim setup that renders the paper’s HSSD scenes

Status: 1.0.0, research code. Ubuntu 20.04 with ROS Noetic, or Docker on any other x86_64 Linux host; no ROS 2 port.

Where to Start#

I want to…

Read

See it run in a few minutes

Getting Started

Install it natively on Ubuntu 20.04

Installation

Understand the design

How Open Apero Works, then the Modules

Run it on my robot

Integrating a Robot

Add a planner, gain measure or robot model

Extending Open Apero

Reproduce the paper

Reproducing the Paper

Look up a key or a class

Parameter Reference, API Reference

If you use Open Apero in your research, please cite the paper; see Citation, License and Acknowledgments.