![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
- python: 3.10.14
- torch: 2.2.2 + cu118
- Issac sim: 4.1.0
- cuRobo: 0.7.6
- open3d: 0.19.0
- robofin: 0.0.1
pip install -r requirements.txt# Install basic packages
pip install mesh-to-sdf==0.0.15 trimesh==4.5.3 open3d==0.19.0 h5py==3.14.0 scikit-image==0.25.0 matplotlib==3.8.4
# Download and install robofin manually
wget https://github.com/fishbotics/robofin/archive/v0.0.1.tar.gz
tar -xzf v0.0.1.tar.gz
cd robofin-0.0.1 && pip install -e . && cd ..
# Download and install pointnet2_ops manually
wget https://github.com/fishbotics/pointnet2_ops/archive/main.tar.gz
tar -xzf main.tar.gz
cd pointnet2_ops-main && pip install -e . && cd ..Note: The omni_python command below refers to a system alias that points to the python.sh script in the Isaac Sim installation directory. For example, in our environment, we configured it following the official tutorial as: alias omni_python='~/.local/share/ov/pkg/isaac-sim-4.1.0/python.sh'. Besides version 4.1, we have also successfully tested on Isaac Sim 5.0.
For cuRobo installation, please refer to the official documentation.
First, we need to generate a dataset for learning the robot SDF. This implementation follows the RDF approach, using the mesh_to_sdf to sample SDF values.
omni_python sample_sdf_point.pyNext, we use the collected dataset to train the model with a default setting of 5000 epochs, which takes several minutes to complete. After training, the model will be used to sample robot points and generate meshes for visualization purposes.
omni_python encode_panda_sdf_points_sampler.pyWe use cuRobo to generate feasible trajectories in diverse environments and collect the corresponding SDF information for direct loading during training.
Place the environment configuration files from the scenes folder into /PATH_TO_CUROBO/src/curobo/content/configs/world, then load different environments by switching the environment parameter file, the code if the file is world_file = "dataset_generation_scene_1.yml".
omni_python traj_data_collect.pyAfter collecting data from all environments, merge the data into a single file for convenient access. You can modify the environment IDs to be merged in the target_env_list variable, which will affect which data is used during training.
omni_python process_dataset_diverse_env.pyTrain the model with configurable anchor points size parameters.
omni_python main_train.pyTest performance in different environments. You can modify the scene world_file = "dataset_generation_scene_1.yml" and the trajectory test dataset ./isaac_sim_traj/dataset0001.pkl.
omni_python eval_policy_results.py@misc{chen2025sampspatialanchorbasedmotion,
title={SAMP: Spatial Anchor-based Motion Policy for Collision-Aware Robotic Manipulators},
author={Kai Chen and Zhihai Bi and Guoyang Zhao and Chunxin Zheng and Yulin Li and Hang Zhao and Jun Ma},
year={2025},
eprint={2509.11185},
archivePrefix={arXiv},
}






