From 5ccf361ffcc00df582a9bcd5c5febe14254edd3d Mon Sep 17 00:00:00 2001 From: Hyungtae Lim Date: Sat, 1 Feb 2025 23:45:29 -0500 Subject: [PATCH] Renewed README.md with updated documentation --- README.md | 108 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 69 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index 61d4d38..829b215 100644 --- a/README.md +++ b/README.md @@ -1,56 +1,46 @@ -# ROBIN - -ROBIN is a library for outlier rejection based on compatibility graphs. - -If you find this library helpful or use it in your projects, please cite: -```bibtex -@InProceedings{Shi21icra-robin, - title={{ROBIN:} a Graph-Theoretic Approach to Reject Outliers in Robust Estimation using Invariants}, - author={J. Shi and H. Yang and L. Carlone}, - booktitle={IEEE Intl. Conf. on Robotics and Automation (ICRA)}, - note = {arXiv preprint: 2011.03659}, - pdf={https://arxiv.org/pdf/2011.03659.pdf}, - year={2021} -} -``` -and -```bibtex -@article{Shi22arxiv-PACE, - author = {J. Shi and H. Yang and L. Carlone}, - title = {Optimal and Robust Category-level Perception: Object Pose and Shape Estimation from {2D and 3D} Semantic Keypoints}, - journal = {arXiv preprint: 2206.12498}, - pdf = {https://arxiv.org/pdf/2206.12498.pdf}, - Year = {2022} -} -``` - -If you are interested in more works from us, please visit our lab page [here](http://web.mit.edu/sparklab/). +
+

ROBIN

+ + + + + + + +
+
+

ROBIN

+

ROBIN is a library for outlier rejection based on compatibility graphs.

+
--- # :gear: Build & Installation -## :package: Dependency +## :package: Dependencies ROBIN has the following dependencies: 1. OpenMP 2. Eigen3 -Thus, follow the below commandline: +Thus, run the following command: ```bash sudo apt-get install gcc g++ build-essential libeigen3-dev cmake python3-pip python3-dev git ninja-build -y ``` -## C++ Installation +## [![C++](https://img.shields.io/badge/C++-%2300599C.svg?logo=c%2B%2B&logoColor=white)](#) C++ Installation + +Run the following commands to build the library using CMake (inside the repository root directory): -Run the following to build the library using CMake (inside the repo root directory): ```bash mkdir build && cd build cmake .. && make sudo make install ``` + The following CMake options are provided: + ``` BUILD_DOCS: Build documentation. Default: OFF BUILD_TESTS: Enable testing with ctest. Default: ON @@ -59,18 +49,33 @@ USE_ASAN: Enable address sanitizer. Default: OFF ENABLE_DIAGNOSTIC_PRINT: Enable printing of diagnostic messages. Default: OFF ``` -## Python Installation +## [![Python](https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=fff)](#) Python Installation + +It's simple! To install Python bindings, we need basic packages as follows: -It's simple! To install Python bindings, just run: +``` +pip3 install --upgrade pip setuptools wheel scikit-build-core ninja cmake build +``` + +And then, just run in out-of-the-box (the `--verbose` option is only for tracking purposes): + +```bash +pip3 install "git+https://github.com/MIT-SPARK/ROBIN.git#subdirectory=python" --verbose +``` + +Using this repository, you can run the following command: ```bash pip3 install -e python/ ``` +Please refer to `python/example.py` for usage instructions. + --- # Third-party Data -Some of the testing data are from the [Network Repository](http://networkrepository.com/index.php). + +Some test data are from the [Network Repository](http://networkrepository.com/index.php). For more information, please refer to: Rossi, Ryan, and Nesreen Ahmed. "The network data repository with interactive graph analytics and visualization." Twenty-Ninth AAAI Conference on Artificial Intelligence. 2015. @@ -84,12 +89,37 @@ Rossi, Ryan, and Nesreen Ahmed. "The network data repository with interactive gr - License: Boost (https://github.com/catchorg/Catch2/blob/devel/LICENSE.txt) # Known Issues -For errors in MATLAB with missing CXXABI: + +To fix missing CXXABI errors in MATLAB: + ``` export LD_PRELOAD=/usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.so ``` -# FAQ -* How to fix errors like "ModuleNotFoundError: No module named 'robin_py.robin_py'"? - This might be caused by a mismatch between the Python interpreter versions the binding is built for and the interpreter - that the binding is installed on. Make sure to activate the correct virtual environment when calling `cmake ..` +--- + +# Citations + +If you find this library helpful or use it in your projects, please cite: +```bibtex +@InProceedings{Shi21icra-robin, + title={{ROBIN:} a Graph-Theoretic Approach to Reject Outliers in Robust Estimation using Invariants}, + author={J. Shi and H. Yang and L. Carlone}, + booktitle={IEEE Intl. Conf. on Robotics and Automation (ICRA)}, + note = {arXiv preprint: 2011.03659}, + pdf={https://arxiv.org/pdf/2011.03659.pdf}, + year={2021} +} +``` +and +```bibtex +@article{Shi22arxiv-PACE, + author = {J. Shi and H. Yang and L. Carlone}, + title = {Optimal and Robust Category-level Perception: Object Pose and Shape Estimation from {2D and 3D} Semantic Keypoints}, + journal = {arXiv preprint: 2206.12498}, + pdf = {https://arxiv.org/pdf/2206.12498.pdf}, + Year = {2022} +} +``` + +If you are interested in more works from us, please visit our lab page [here](http://web.mit.edu/sparklab/).