Software Suite for Sensor Placement (SP) and Informative Path Planning (IPP).
The library includes python code for the following:
- Greedy algorithm-based approaches
- Bayesian optimization-based approaches
- Genetic algorithm-based approaches
- Sparse Gaussian process (SGP)-based approaches
The library is available as a pip
package. To install the package, run the following command:
sudo apt-get install libhdf5-dev python3-pip -y
python3 -m pip install sgptools
Installation from source:
sudo apt-get install libhdf5-dev python3-pip -y
python3 -m pip install -r requirements.txt
python3 -m pip install -e .
Please refer to the demos folder for Jupyter notebooks demonstrating all the methods included in the library 😄
demos/
: Jupyter notebooks with code to demonstrate each method in the libraryIPP.ipynb
: SGP-based IPP (point, non-point, continuous sensing, distance constrained, and multi-robot)IPPBaselines.ipynb
: SGP-based IPP approach and baseline methodsnon_point_FoV.ipynb
: IPP with non-point FoV sensors (drone camera setup)non_stationary_demo.ipynb
: SP with non-stationary kernelobstacles.ipynb
: SP in an environment with obstacles
sgptools/
: SGP-Tools librarykernels/
: Kernel functionsneural_kernel.py
: Neural Non-Stationary Spectral Kernel
models/
: Sensor placement and IPP methodscore/
: GP/SGP models used for sensor placement and IPPaugmented_gpr.py
: GPflow's GP that supports transforms (expansion and aggregation)augmented_sgpr.py
: GPflow's SGP that supports transforms (expansion and aggregation)transformations.py
: Expansion and aggregation transforms for IPP
bo.py
: Bayesian optimization-based sensor placement method that maximizes mutual informationcma_es.py
: Genetic algorithm-based sensor placement method that maximizes mutual informationcontinuous_sgp.py
: Continuous SGP-based sensor placement methodgreedy_mi.py
: Greedy sensor placement method that maximizes mutual informationgreedy_sgp.py
: Greedy SGP-based sensor placement method
utils/
: Tools used for preprocessing the data, training GPs and SGPs, and generating pathsdata.py
: Tools to preprocess datasetsgpflow.py
: Tools to interface with GPflowmetrics.py
: Metrics used to quantify the solution qualitymisc.py
: Miscellaneous helper functionstsp.py
: TSP solver
- The Intel lab temperature dataset can be downloaded from here
- The ROMS ocean salinity dataset can be downloaded from here
- The Precipitation dataset can be downloaded from here
- The US soil moisture dataset can be downloaded from here
- The US elevation dataset can be downloaded from here
Please consider citing the following papers if you use SGP-Tools in your academic work 😄
@misc{JakkalaA23SP,
AUTHOR={Kalvik Jakkala and Srinivas Akella},
TITLE={Efficient Sensor Placement from Regression with Sparse Gaussian Processes in Continuous and Discrete Spaces},
NOTE= {Preprint},
YEAR={2023},
URL={https://itskalvik.github.io/publication/sgp-sp},
}
@inproceedings{JakkalaA24IPP,
AUTHOR={Kalvik Jakkala and Srinivas Akella},
TITLE={Multi-Robot Informative Path Planning from Regression with Sparse Gaussian Processes},
booktitle={IEEE International Conference on Robotics and Automation, {ICRA}},
YEAR={2024},
PUBLISHER = {{IEEE}},
URL={https://itskalvik.github.io/publication/sgp-ipp}
}
This work was funded in part by the UNC Charlotte Office of Research and Economic Development and by NSF under Award Number IIP-1919233.
The SGP-Tools software suite is licensed under the terms of the Apache License 2.0. See LICENSE for more information.