Push Smarter, Not Harder: Hierarchical RL-Diffusion Policy for Efficient Nonprehensile Manipulation

Steven Caro, Stephen L. Smith
12/10/2025
cs.ROcs.LG

Official code: carosteven/HeRD (3 stars, last commit 2026-03-15).

Abstract

Nonprehensile manipulation, such as pushing objects across cluttered environments, presents a challenging control problem due to complex contact dynamics and long-horizon planning requirements. In this work, we propose HeRD, a hierarchical reinforcement learning-diffusion policy that decomposes pushing tasks into two levels: high-level goal selection and low-level trajectory generation. We employ a high-level reinforcement learning (RL) agent to select intermediate spatial goals, and a low-level goal-conditioned diffusion model to generate feasible, efficient trajectories to reach them. This architecture combines the long-term reward maximizing behaviour of RL with the generative capabilities of diffusion models. We evaluate our method in a 2D simulation environment and show that it outperforms the state-of-the-art baseline in success rate, path efficiency, and generalization across multiple environment configurations. Our results suggest that hierarchical control with generative low-level planning is a promising direction for scalable, goal-directed nonprehensile manipulation. Code, documentation, and trained models are available: https://github.com/carosteven/HeRD.

View on arXivView PDF

Code Implementations(1)

carosteven/HeRDOfficial100%

Official implementation of HeRD (Hierarchical RL-Diffusion Policy), a robot control framework that combines high-level spatial reinforcement learning with low-level diffusion-based trajectory generation for efficient nonprehensile manipulation in cluttered environments.

31PythonNov 4, 20257 months ago

Similar Papers

Cite this paper

@article{caro2025push,
  title  = {Push Smarter, Not Harder: Hierarchical RL-Diffusion Policy for Efficient Nonprehensile Manipulation},
  author = {Steven Caro and Stephen L. Smith},
  year   = {2025},
  eprint = {2512.10099},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2512.10099v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2512.10099.svg)](https://codeofpaper.com/paper/2512.10099)

Discussion