Skip to content

Repository files navigation

AM-Bench: aerial manipulation platforms, tasks, controllers, and disturbances

AM-Bench

A modular simulation suite and benchmark for aerial manipulation policy learning.

arXiv Isaac Sim Python Platform License pre-commit

[Project page][Documentation][Paper]

Standardized benchmarks have driven robot manipulation learning, but they overwhelmingly assume a fixed, ground-supported base. Aerial manipulation breaks that assumption: the arm moves the base it is mounted on, thrust is limited, and aerodynamics couple the two. AM-Bench is an Isaac Lab suite for studying how embodiment, control, disturbances, and policy choice interact in that regime.

Key Features

  • Embodiments spanning actuation regimes — underactuated (UAQuad, UAHexa), fully actuated (FAHexa), and overactuated (OmniHexa), plus an EE floating end-effector oracle for isolating task logic from flight dynamics.
  • 12 tasks across three interaction classes — instantaneous contact, object transport, and articulated or constrained contact.
  • Standard low-level controllers — 4-DoF and 6-DoF PID, L1 adaptive, and whole-body MPC, with Pyroki inverse kinematics.
  • Configurable disturbances — aerodynamic drag, ground effect, near-wall effect, and rotor actuator saturation, all switchable per environment.
  • Policy-learning baselines — ACT, Diffusion Policy, and OpenPI (π₀ / π₀.₅), sharing one canonical LeRobot dataset format, plus scripted experts for every task.
  • One action interface — absolute end-effector pose, or absolute base pose and arm joints when a policy should command the whole body directly.

Installation

A native Linux host (Ubuntu 22.04 or 24.04), a discrete NVIDIA GPU, and Isaac Sim 5.1 with Python 3.11 are required. WSL and Docker are not maintained paths.

Once Isaac Sim and Isaac Lab are installed:

git clone https://github.com/ambench/ambench.git
cd ambench
source ../IsaacLab/env_isaaclab/bin/activate
./scripts/setup/install.sh
export JAX_PLATFORMS=cpu
export ACADOS_SOURCE_DIR="$(pwd)/ext/acados"
export LD_LIBRARY_PATH="$ACADOS_SOURCE_DIR/lib:$ACADOS_SOURCE_DIR/build:$LD_LIBRARY_PATH"
python scripts/environments/list_envs.py

The standard installer initializes Pyroki and acados, builds the acados libraries, installs their Python interfaces, and installs the two AM-Bench packages from source/. Add the three exports to ~/.bashrc, using the absolute path to your AM-Bench checkout for ACADOS_SOURCE_DIR, so new terminals use the maintained JAX and acados configuration.

See Installation for the full procedure, then Verify Installation.

Quick Start

Step an environment with zero actions to confirm the scene loads:

python scripts/environments/zero_agent.py \
  --task PressButton-Am-EE-Abs-PID-Direct-v0 \
  --num_envs 1 --headless --device cuda:0

Record demonstrations from the scripted expert:

python scripts/data/record_demos_scripted.py \
  --task PressButton-Am-FAHexa-Abs-PID-Direct-v0 \
  --dataset_root <dataset-root> \
  --state_keys ee_pos ee_quat gripper_width \
  --task_prompt "press the button" \
  --num_demos 10

Documentation

ambench.github.io/docs covers installation, the environment registry, configuration, demonstration collection, policy evaluation, and extension guides. The source lives in the ambench.github.io repository under docs/; send documentation changes there.

Contributing: start from Extend an Existing Environment for the task, robot, controller, and policy guides, and Development Setup for editor configuration, formatting, building the docs, and simulator performance tuning. AGENTS.md and CODING_STYLE.md describe the repository conventions.

Citation

If you use AM-Bench in your research, please cite:

@article{wang2026ambench,
  title  = {{AM-Bench}: A Modular Simulation Suite and Benchmark for Aerial Manipulation Policy Learning},
  author = {Wang, Yutong and Lee, Dongjae and Guo, Xiaofeng and Zhan, Yuanzhu and
            Jiang, Yufei and Saravanan, Bavin and Cao, Muqing and Xie, Jia and
            Mao, Chenyang and Scherer, Sebastian and Geng, Junyi and Shi, Guanya},
  year   = {2026},
  journal = {arXiv preprint arXiv:2609.00641},
  eprint = {2609.00641},
  archivePrefix = {arXiv},
  primaryClass = {cs.RO},
  url = {https://arxiv.org/abs/2609.00641}
}

Machine-readable metadata is in CITATION.cff.

License

AM-Bench is released under the Apache License 2.0.

This repository redistributes third-party components under their own licenses, including the Universal Manipulation Interface / Diffusion Policy source tree (MIT, Columbia Artificial Intelligence and Robotics Lab) and several files derived from Isaac Lab (BSD-3-Clause). See THIRD_PARTY_NOTICES.md for the complete list.

About

AM-Bench: a modular simulation suite and benchmark for aerial manipulation policy learning (CoRL 2026)

Resources

Stars

19 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages