AdaptPNP is built upon IsaacSim 4.5.0, please refer to NVIDIA Official Document for download.
We recommend placing the Isaac Sim source folder at `~/isaacsim_4.5.0` to match the Python interpreter path specified in the `.vscode/settings.json` file we provide. If you prefer to use a custom location, please make sure that the Python interpreter path in `.vscode/settings.json` is updated accordingly.
We will use ~/isaacsim_4.5.0/python.sh to run the isaacsim's python file. To facilitate the running, we can define a new alias in '.bashrc' file.
echo 'alias isaac="~/isaacsim_4.5.0/python.sh"' >> ~/.bashrc
source ~/.bashrcDownload the dependencies for isaac sim
issac -m pip install -r requirement.txt
Start the Demo_Scene to load the scene and test the IsaacSim download
isaac Env_StandAlone/Demo_Scene.pyBecause the GraspNet API environment is not directly compatible with Isaac Sim, we need to install the GraspNet API in a separate environment and establish a web-server interface for communication between Isaac Sim and the GraspNet API.
Here are the steps to follow:
- Create conda environment for graspnet API:
conda create -n graspnet python=3.8 -y
conda activate graspnet
conda install pytorch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0 cudatoolkit=11.1 -c pytorch -c nvidia- Validation of the environment:
conda activate graspnet # activate the environment
python # enter the python interpreter
>>> import torch
>>> torch.__version__
'1.9.0'
>>> torch.version.cuda
'11.1'
>>> torch.cuda.is_available()
True
# If all the above are True,
# Then the environment is set up correctly.
# If not,
# Please do the following steps:
conda deactivate
unset LD_LIBRARY_PATH
conda activate graspnet- Install the rest of the dependencies:
cd graspnet_flask
pip install -r requirements.txt
cd graspnet_flask/pointnet2
python setup.py install
cd graspnet_flask/knn
python setup.py install
cd graspnet_flask/graspnetAPI
pip install .- Run the server:
cd ../..
python graspnet_flask/grasp_backend.pyNow you already setup for the sim and the grasping backend, we can start to integrate it with non-prehensile skills in the simulator!
-
Set your Openai API key and Doubao API key in scripts/main.py
You can get the Openai API key on OpenAI
You can get the Doubao API key on Volcano Engine
-
Set the task in scripts/main.py
First, you can choose from four predefined scenes: align, bookshelf, wall, or slope. To set the scene, simply import the desired environment class and instantiate it.
# Set the scene here from Env_StandAlone.External_dexterity.wall import Demo_Scene_EnvSecond, the
task_instructiondefines the high-level goal the robot should accomplish. In themain()function, set thetask_instructionto specify the goal you want the robot to perform.task_instruction = "Get the keyboard to the transparent target." -
isaac scripts/main.py
You can refer to an introductory Colab notebook that demonstrates the examples of planning.
Remember to set the Openai API key.
If you find this work useful, please cite:
@article{zhu2025adaptpnp,
title={AdaptPNP: Integrating Prehensile and Non-Prehensile Skills for Adaptive Robotic Manipulation},
author={Zhu, Jinxuan and Tie, Chenrui and Cao, Xinyi and Wang, Yuran and Guo, Jingxiang and Chen, Zixuan and Chen, Haonan and Chen, Junting and Xiao, Yangyu and Wu, Ruihai and Shao, Lin},
journal={arXiv preprint arXiv:2511.11052},
year={2025}
}