Skip to content

OpenGHz/auto-atomic-operation

Repository files navigation

Auto Atomic Operation Logo

Auto Atomic Operation

PyPI Python License Docs

A YAML-driven atomic operation framework for robotic manipulation.

auto-atomic-operation lets you define robotic manipulation tasks — move, grasp, release, pick, place, push, pull, press — as declarative YAML files. A built-in state machine handles task sequencing, pose resolution, end-effector control, and execution tracking. A plugin-based backend system decouples task logic from the underlying hardware or simulator, making it easy to run the same task definition against a real robot, a physics simulator, or a lightweight mock for testing.

Features

  • Hydra-powered task configuration — describe multi-stage manipulation tasks in YAML; full Hydra support means _target_ instantiation, variable interpolation, and command-line overrides work out of the box
  • Flexible pose references — specify targets relative to world, robot base, end-effector, or tracked objects
  • Pluggable backends — connect any robot or simulator by implementing a small set of abstract interfaces
  • Pose randomization — per-object position/orientation randomization with automatic collision avoidance on reset
  • Multi-arm support — single-arm and dual-arm (left/right) topologies
  • Execution records — detailed per-stage status, failure reasons, and timing after every run
  • MuJoCo backend included — a ready-to-use backend with RGB-D cameras, tactile sensors, force/torque, IMU, and joint state support
  • 3D Gaussian Splatting rendering — photorealistic rendering for any task via _gs.yaml configs

Installation

Requires Python 3.10+.

Install from PyPI

pip install auto-atomic-operation

The PyPI release lags behind source and does not ship with demo configs/assets. For the latest features and runnable demos, install from source.

Install from source

GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/OpenGHz/auto-atomic-operation.git
cd auto-atomic-operation

pip install -e .              # core framework only
pip install -e ".[mujoco]"    # with the built-in MuJoCo backend
pip install -e ".[gs]"        # with 3D Gaussian Splatting rendering

MuJoCo demo assets live in Git LFS. After cloning, install Git LFS and pull them:

sudo apt-get install git-lfs   # Debian/Ubuntu
git lfs pull

Running demos

The CLI looks for configs in ./aao_configs/ relative to the current working directory. After cloning the repo, run from the project root:

aao_demo --list                          # list every available config
aao_demo --config-name mock              # mock backend, no simulator required
aao_demo --config-name pick_and_place    # MuJoCo demo (default)
aao_demo --config-name <config>          # any other config

For all CLI flags, Hydra overrides, and aao_eval usage, see the CLI Reference.

Robotiq tasks

pick_and_place cup_on_coaster
pick_and_place cup_on_coaster
stack_color_blocks press_three_buttons
stack_color_blocks press_three_buttons
open_drawer close_drawer
open_drawer close_drawer
open_hinge_door close_hinge_door
open_hinge_door close_hinge_door

Franka task

pick_and_place_franka
pick_and_place_franka

3D Gaussian Splatting demos

GS configs are named <task>_gs and run identically to the native MuJoCo demos. Asset bundles live on Hugging Face:

pip install huggingface_hub httpx[socks]
hf download OpenGHz/auto-atom-assets --repo-type=dataset --include "assets/gs/*" --local-dir .
cup_on_coaster_gs stack_color_blocks_gs
cup_on_coaster_gs stack_color_blocks_gs
press_three_buttons_gs arrange_flowers_gs
press_three_buttons_gs arrange_flowers_gs
hang_toothbrush_cup_gs wipe_the_table_gs
hang_toothbrush_cup_gs wipe_the_table_gs

Documentation

Full documentation is hosted at openghz.github.io/auto-atomic-operation. Common entry points:

License

See LICENSE.

About

A YAML-driven atomic operation framework for robotic manipulation.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages