Skip to content

Repository files navigation

Non-Prehensile Throwing: A Reinforcement Learning Perspective

Accepted to IEEE International Conference on Intelligent Robots and Systems (IROS 2026).

Paper | Arxiv | Video | Website

IsaacSim Python Linux platform

Installation

  1. Follow IsaacLab installation guide https://isaac-sim.github.io/IsaacLab/main/source/setup/installation/pip_installation.html .

    Our setup is based Ubuntu 22.4, IsaacSim 4.5, and IsaacLab 2.1.0. We use RL_games for training.

  2. Activate isaaclab conda env and source the np_throw task -- The task was developed using IsaacLab template (https://isaac-sim.github.io/IsaacLab/v2.1.0/source/overview/developer-guide/template.html)

    conda activate env_isaaclab
    python -m pip install -e source/Throw/
    
  3. Install other dependencies -- for UR5e control, we use UR-RTDE package

    pip install --user ur_rtde

Train & Play & Eval

Train

  • Pretrained weights are included for the four policies.
# in the root directory of NP-Throw 
python scripts/train.py --task=NPThrow --num_envs 4096 --headless --experiment_name Default --seed 0  

Play

# in the root directory of NP-Throw  -- Make sure to set training flag to False
python scripts/play.py --task=NPThrow --num_envs 32 --experiment_name Default --seed 0

# Use playZero during enviroment setup for debugging.
# python scripts/zeroAgent.py --task=NPThrow --num_envs 16

Eval

# in the root directory of NP-Throw  -- Make sure to set training flag to False
# For the environment configuration file, select a target object and the evaluation target.
python scripts/Eval.py --task=NPThrow --num_envs 32 --headless --experiment_name Default --seed 0 --envSeed 0 --targetObject woodBlock

Deploy

  1. Process the trajectories using the "processTrajs.ipynb" notebook to analyze and generate neccessary trajectories.
  2. Deploy based of UR-RTDE package
python scripts/deploy.py

Citation

If you use this code in your research, please cite our paper:

@inproceedings{NP_Throw_IROS2026,
  title = "Non-Prehensile Throwing: A Reinforcement Learning Perspective",
  author = "{Abdullah Mustafa, Ryo Hanai, Ixchel Ramirez, Floris Erich, Ryoichi Nakajo, Yukiyasu Domae, Tetsuya Ogata}",
  booktitle={IROS 2026},
  year={2026},
  organization={IEEE}
}

License

This codebase is under CC BY-NC 4.0 license. You may not use the material for commercial purposes, e.g., to make demos to advertise your commercial products.

Acknowledgements

  • IsaacLab: We use the isaaclab library for the RL training and evaluation.
  • UR-RTDE: We use the UR-RTDE package for UR5e real-time control.

Contact

Feel free to open an issue or discussion if you encounter any problems or have questions about this project.

About

Project page of paper: "NP-Throw: Learning Non-Prehensile Throwing via Reinforcement Learning", IROS 2026

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages