Accepted to IEEE International Conference on Intelligent Robots and Systems (IROS 2026).
Paper | Arxiv | Video | Website
-
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.
-
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/ -
Install other dependencies -- for UR5e control, we use UR-RTDE package
pip install --user ur_rtde
- 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 # 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
# 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
- Process the trajectories using the "processTrajs.ipynb" notebook to analyze and generate neccessary trajectories.
- Deploy based of UR-RTDE package
python scripts/deploy.pyIf 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}
}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.
- IsaacLab: We use the
isaaclablibrary for the RL training and evaluation. - UR-RTDE: We use the
UR-RTDEpackage for UR5e real-time control.
Feel free to open an issue or discussion if you encounter any problems or have questions about this project.