This is the repository accompanying the paper "CoViS-Net: A Cooperative Visual Spatial Foundation Model for Multi-Robot Applications".
Setup Miniconda as instructed here. Run the commands below to create and activate the environment. Don't forget to source the pre_training_setup
script. Creating the conda environment can take up to 30 minutes, but installing libmamba can help speeding up resolving dependencies.
conda env create -f environment.yml
conda activate covisnet
export ./pre_training_setup.bash
Download the HM3D dataset by signing up on the website.
python -m habitat_sim.utils.datasets_download --username xxx --password xxx --uids hm3d_full
Make sure the dataset was downloaded:
ls data/versioned_data/hm3d-1.0/hm3d/train | wc -l
The command should show a number higher than 800.
The dataset generation can be triggered with the following command:
./dataset_util/generate_dataset.bash 800
The number indicates the upper limit on the HM3D scenes used for the data generation (0 would only generate the first scene, 800 all training scenes). The datasets will be moved to the datasets
folder.
The dataset can be downloaded here. You can also run the download.sh
script from within the datasets
folder.
After generating the dataset, update the dataset path of the field data/data_dir
in train/configs/covisnet.yaml
. Update the logging configuration in train/configs/logging.yaml
as appropriate.
To reproduce training, run the following command:
python3 -m train fit --config train/configs/covisnet.yaml --config train/configs/logging.yaml
An overview of pre-trained models can be found in the models
directory.
The ROS2 on-robot evaluation code can be found in the evaluation/ros2
directory.
To export a trained model (or one of the pre-trained models) for the decentralized deployment, adapt the path to the model in the script and run
python3 -m evaluation.export_model_torchscript
python3 -m evaluation.export_torchscript_tensorrt
We include some tests for individual components.
To test the dataloader, run:
python3 -m train.dataloader
To test the model, run:
python3 -m train.models.model_bev_pose
You can run the download.sh
script in the models
directory to download exported models to be used with the evaluate_decentralized
script. After you have also downloaded the download.sh
script in the dataset
directory, you can run
python -m evaluation.run_decentralized
from the root of the repository to evaluate some selected images from the real-world dataset.