Skip to content

Commit

Permalink
Renewed README.md with updated documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
LimHyungTae committed Feb 2, 2025
1 parent 5bcc76e commit 5ccf361
Showing 1 changed file with 69 additions and 39 deletions.
108 changes: 69 additions & 39 deletions README.md
Original file line number Diff line number Diff line change
@@ -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/).
<div align="center">
<h1>ROBIN</h1>
<a href="https://github.com/MIT-SPARK/ROBIN"><img src="https://img.shields.io/badge/-C++-blue?logo=cplusplus" /></a>
<a href="https://github.com/MIT-SPARK/ROBIN"><img src="https://img.shields.io/badge/Python-3670A0?logo=python&logoColor=ffdd54" /></a>
<a href="https://github.com/MIT-SPARK/ROBIN"><img src="https://img.shields.io/badge/MATLAB-Supported-g?logo=mathworks" /></a>
<a href="https://github.com/MIT-SPARK/ROBIN"><img src="https://img.shields.io/badge/Linux-FCC624?logo=linux&logoColor=black" /></a>
<a href="https://github.com/MIT-SPARK/ROBIN"><img src="https://custom-icon-badges.demolab.com/badge/Windows-0078D6?logo=windows11&logoColor=white" /></a>
<a href="https://arxiv.org/abs/2011.03659"><img src="https://img.shields.io/badge/arXiv-b33737?logo=arXiv" /></a>
<a href="https://ieeexplore.ieee.org/document/9562007"><img src="https://img.shields.io/badge/DOI-10.1109/ICRA48506.2021.9562007-004088.svg"/>
<br />
<br />
<p align="center"><img src="https://github.com/user-attachments/assets/072cac24-657b-46b1-a808-354d9f3abc45" alt="ROBIN" width="80%"/></p>
<p><strong><em>ROBIN is a library for outlier rejection based on compatibility graphs.</em></strong></p>
</div>

---

# :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
Expand All @@ -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.
Expand All @@ -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/).

0 comments on commit 5ccf361

Please sign in to comment.