Spatio-Temporal Mapping is a RGB-D odometry and mapping system specifically thought for dynamic environments such as agriculture setting.
In order to be able to install the python package you need the essential software installable with the following command on Ubuntu:
sudo apt-get install --no-install-recommends -y build-essential cmake pybind11-dev python3-dev python3-pip
Then, all the dependencies will be handled by the system, you just need to follow the instructions in the next section.
If you want to have dependencies installed on your machine, you can run the following command on Ubuntu:
sudo apt-get install libeigen3-dev libopencv-dev libtbb-dev libceres-dev
For tsl-robin map and Sophus, please refer to the relative github repos for installation from source.
NOTE: this software has been tested only on Ubuntu 22.04 machines, we do not ensure support for other platforms right now.
Neverthless, if you are on Ubuntu 20.04, be sure to install ceres-solver version 2.2.0 from source and turn off the option USE_SYSTEM_TBB for CMake (this will avoid to use the old version of openTBB).
NOTE 2: if you decide to not use your system installed version of Ceres, then be ready to huge memory consumption during building. For this reason, if you don't have a big RAM, just install libceres-dev with the command above.
All you have to do is to clone this repo:
git clone https://github.com/PRBonn/spatio-temporal-mapping
and install it with:
make install
This software gives you the possibility to perform three different tasks:
- Mapping (generate a map from a sequence of RGBD images by computing the odometry or with given poses)
st_mapping-mapping --help
- Mapping aligned on a given map (generate a map from a sequence of RGBD images aligned witha given reference map recorded previously on the same environment, even with drastic changes)
st_mapping-mapping_onref --help
- Deform a given map (deform a given map adapting it to changes visible through a new RGB-D sequence)
st_mapping-deform_ref --help
IMPORTANT: to use the generic dataloader (the one used by default) you need to have a "params.yaml" in the dataset folder that describes the camera parameters. Please, refer to our example file or write your own dataloader. This feature will be updated soon to be more user-friendly.
This project is free software made available under the MIT License. For details see the LICENSE file.
If you use this project, please refer to our paper on data association and paper on plants deformation:
@inproceedings{lobefaro2023iros,
author = {L. Lobefaro and M.V.R. Malladi and O. Vysotska and T. Guadagnino and C. Stachniss},
title = {{Estimating 4D Data Associations Towards Spatial-Temporal Mapping of Growing Plants for Agricultural Robots}},
booktitle = iros,
year = 2023,
codeurl = {https://github.com/PRBonn/plants_temporal_matcher}
}
@inproceedings{lobefaro2024iros,
author = {L. Lobefaro and M.V.R. Malladi and T. Guadagnino and C. Stachniss},
title = {{Spatio-Temporal Consistent Mapping of Growing Plants for Agricultural Robots in the Wild}},
booktitle = iros,
year = 2024,
codeurl = {https://github.com/PRBonn/spatio_temporal_mapping}
}
As we decided to continue the development of this software after papers acceptance, we created a git branch so that researchers can consistently reproduce the results of the publication. To checkout at this branch, you can run the following command:
git checkout iros2024
The purpose of this software goes beyond the research done with the papers, we aim to push this research direction even more. For this reason, we strongly suggest you to use the version on the main branch because it allows better results and higher performances. The iros2024 branch exists only to ensure results reproducibility.
The code structure of this software follows the same of KISS-ICP and some code is re-used from that repo. Please, if you use this software you should at least acknowledge also the work from KISS-ICP by giving a star on GitHub.