Clone Gen-Swarms repository which was built over the Diffusion Probabilistic Models for 3D Point Cloud Generation work.
git clone https://github.com/cplou99/Gen-SwarmsInstall all packages via conda environment YAML file.
# Create the environment
conda env create -f env.yml
# Activate the environment
conda activate gen-swarmsInstall RVO2-3D Library which is an easy-to-use C++ implementation of the optimal reciprocal collision avoidance (ORCA) formulation
git clone https://github.com/mtreml/Python-RVO2-3D
cd Python-RVO2-3D
python setup.py build
python setup.py installDataset is available at data folder of diffusion-point-cloud paper. Please, download and locate the shapenet.hdf5 file inside the data folder of Gen-Swarms repository.
Some checkpoints are located at logs_gen folder.
# Train a generator
python train_gen.pyYou may specify the value of arguments. Please find the available arguments in the script. By default, new checkpoints will be saved at logs_gen folder.
Note that --categories can take all (use all the categories in the dataset), airplane, chair (use a single category), or airplane,chair (use multiple categories, separated by commas).
To generate some pointclouds with their trajectories from a trained model, please run.
# Test a generator
python test_gen.py --ckpt ./logs_gen/gen-swarms_airplane.pt --categories airplane --num_gen_samples 10Results will be saved at results folder. If you want to replicate the results of the paper, please set --num_gen_samples None to generate 607 samples.
You may find some additional scripts inside show folder to visualize results.
@inproceedings{plou2024genswarmsadaptingdeepgenerative,
title={Gen-Swarms: Adapting Deep Generative Models to Swarms of Drones},
author={Carlos Plou and Pablo Pueyo and Ruben Martinez-Cantin and Mac Schwager and Ana C. Murillo and Eduardo Montijano},
booktitle={Proceedings of the European Conference on Computer Vision (ECCV) Workshops},
year={2024},
url={https://arxiv.org/abs/2408.15899},
archivePrefix={arXiv},
eprint={2408.15899},
primaryClass={cs.RO}
}
