Giter VIP home page Giter VIP logo

partmanip's Introduction

PartManip: Learning Cross-Category Generalizable Part Manipulation Policy from Point Cloud Observations

CVPR 2023

This is the official repository of PartManip: Learning Cross-Category Generalizable Part Manipulation Policy from Point Cloud Observations.

For more information, please visit our project page.

Overview

overview We introduce a large-scale cross-category part manipulation benchmark PartManip with diverse object datasets, realistic settings, and rich annotations. We propose a generalizable vision-based policy learning strategy and boost the performance of part-based object manipulation by a large margin, which can generalize to unseen object categories and novel objects in the real world.

pipeline We first train state-based expert policy using our proposed canonicalization to the part coordinate frame and the part-aware reward. We then use the learned expert to collect demonstrations for pre-training the vision-based policy by behavior cloning. After pre-training, we train the vision-based policy to imitate the state-based expert policy using DAgger. We also introduce several point cloud augmentation techniques to boost the generalization ability. For the vision backbone, we introduce 3D Sparse-UNet which has a large expression capability. Furthermore, we introduced an extra domain adversarial learning module for better cross-category generalization.

Dataset & Assets

To obtain our assets, please fill out this form and check the Terms&Conditions in it. Please cite our paper if you use our dataset.

How to use our code

Installation

  1. install issacgym following the official guide

  2. install dependencies

pip install wandb tensorboard ipdb gym tqdm rich opencv_python pytorch3d pyparsing pytorch_lightning addict yapf h5py sorcery pynvml torchdata==0.5.1 einops
  1. (Optional for full implementation, not necessary) install GAPartNet environment following the official guide

Training and Testing

For training:

run scripts in scripts/train.sh to train different tasks.

An example:

# drawer
python gym/train.py --task=FrankaPoseCabinetBase --algo=pregrasp_ppo \
--task_config=cfg/task_cfg.yaml --algo_config=cfg/algo/pregrasp_ppo.yaml \
--sim_device=cuda:0 --graphics_device_id=0 --seed=0526 --headless \
--group_name state --save_name 0.2_2_0_1_0_2 \
--rot_coef 0.2 --handle_coef 2 --vel_coef 0 --dist_coef 1 --tip_coef 0 --dicouple_coef 2 \
--target open --category drawer --minibatches 2 --nsteps 5 --noptepochs 8 \
--canonical_space handle --pregrasp part --obs state --eval_round 3 --eval_freq 10 \
--action_normalization clip --control ik_abs_axis_angle --asset_num 200_40_40_5

For testing:

run scripts in scripts/test.sh to test different tasks with trained ckpt.

An example:

# drawer
python gym/train.py --task=FrankaPoseCabinetBase --algo=pregrasp_ppo \
--task_config=cfg/task_cfg.yaml --algo_config=cfg/algo/pregrasp_ppo.yaml \
--sim_device=cuda:0 --graphics_device_id=0 --seed=0526 --headless \
--group_name state --save_name 0.2_2_0_1_0_2 \
--rot_coef 0.2 --handle_coef 2 --vel_coef 0 --dist_coef 1 --tip_coef 0 --dicouple_coef 2 \
--target open --category drawer --minibatches 2 --nsteps 5 --noptepochs 8 \
--canonical_space handle --pregrasp part --obs state --eval_round 3 --eval_freq 10 \
--action_normalization clip --control ik_abs_axis_angle --asset_num 200_40_40_5 \
--test --ckpt xxxx.tar

Training Curve

There are some examples of our tested training curves:

A training example of drawer:

Training Curve for Drawer

A training example of door:

Training Curve for Door

License

This work and the dataset are licensed under CC BY-NC 4.0.

CC BY-NC 4.0

Citation

If you find our work useful in your research, please consider citing:

@article{geng2023partmanip,
    title={PartManip: Learning Cross-Category Generalizable Part Manipulation Policy from Point Cloud Observations},
    author={Geng, Haoran and Li, Ziming and Geng, Yiran and Chen, Jiayi and Dong, Hao and Wang, He},
    journal={arXiv preprint arXiv:2303.16958},
    year={2023}
}

Contact

If you have any questions, please open a github issue or contact us:

Haoran Geng: [email protected]

He Wang: [email protected]

partmanip's People

Contributors

geng-haoran avatar

Stargazers

 avatar MinCheol Kim avatar ZhengLi avatar  avatar Winky Ge avatar Hanzhi Chen avatar Sun Chunguang avatar  avatar Yu avatar  avatar Atreya Bhat avatar Yiran Geng avatar  avatar Wanli Peng avatar Zhifeng Gu avatar  avatar Xiaobing Han avatar Yu Li(李宇) avatar Yuyang Li avatar Yingdong Hu avatar kaku avatar  avatar Jeff Carpenter avatar Dongjie Yu avatar Ruihai Wu avatar Bingxuan Li avatar  avatar Pushkal Katara avatar Junfeng Ni avatar  avatar

Watchers

He Wang avatar Kostas Georgiou avatar

partmanip's Issues

how to train vision-based policy

Hi, Thanks for the amazing work!
We have successfully trained a state-based RL model on drawer and would like guidance on generating operation data based on point clouds and further training the vision-based policy. We would appreciate your expert advice on the recommended approach for achieving this.

Thank you for your assistance.

How to get training dataset

Hi, Thanks for the amazing work!

I was trying to run the training scripts but I get this error while running:

FileNotFoundError: [Errno 2] No such file or directory: 'assets/drawer/train'

How do I setup the training assets?

how to reproduce the open door result

Hello, thank you for your incredible work!

I have tried the command given in train.sh for door, but I can't reproduce the result shown on the readme. I have also tried using asset_num 200_40_40_5 for training but it still doesn't work.

Can you give some guidance on how to reproduce the results for door?

problem of the form to obtain Dataset & Assets

Hello, thank you for your incredible work!

I've been attempting to replicate the demo example lately. Unfortunately, the Google form for obtaining the Dataset&Assets seems to be malfunctioning. It doesn't allow me to input my name, affiliation, and other details in the answer frame.

I was wondering if you could fix the form, or if it's possible, I would greatly appreciate it if you could directly send me the Dataset to my email.

Here's my email [email protected]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.