From e5c2eb7e5d6596617366da9a6015915957195785 Mon Sep 17 00:00:00 2001 From: Belos Thomas Date: Wed, 4 May 2022 16:33:22 +0200 Subject: [PATCH 1/6] Set theme jekyll-theme-cayman --- _config.yml | 1 + index.md | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 _config.yml create mode 100644 index.md diff --git a/_config.yml b/_config.yml new file mode 100644 index 00000000..c4192631 --- /dev/null +++ b/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-cayman \ No newline at end of file diff --git a/index.md b/index.md new file mode 100644 index 00000000..c4477256 --- /dev/null +++ b/index.md @@ -0,0 +1,37 @@ +## Welcome to GitHub Pages + +You can use the [editor on GitHub](https://github.com/belosthomas/libCML/edit/gh-pages/index.md) to maintain and preview the content for your website in Markdown files. + +Whenever you commit to this repository, GitHub Pages will run [Jekyll](https://jekyllrb.com/) to rebuild the pages in your site, from the content in your Markdown files. + +### Markdown + +Markdown is a lightweight and easy-to-use syntax for styling your writing. It includes conventions for + +```markdown +Syntax highlighted code block + +# Header 1 +## Header 2 +### Header 3 + +- Bulleted +- List + +1. Numbered +2. List + +**Bold** and _Italic_ and `Code` text + +[Link](url) and ![Image](src) +``` + +For more details see [Basic writing and formatting syntax](https://docs.github.com/en/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax). + +### Jekyll Themes + +Your Pages site will use the layout and styles from the Jekyll theme you have selected in your [repository settings](https://github.com/belosthomas/libCML/settings/pages). The name of this theme is saved in the Jekyll `_config.yml` configuration file. + +### Support or Contact + +Having trouble with Pages? Check out our [documentation](https://docs.github.com/categories/github-pages-basics/) or [contact support](https://support.github.com/contact) and we’ll help you sort it out. From 87ab1036f55c7877ccf19f80f23c3dec2e1467f5 Mon Sep 17 00:00:00 2001 From: Belos Thomas Date: Wed, 4 May 2022 16:34:26 +0200 Subject: [PATCH 2/6] Update index.md --- index.md | 181 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 160 insertions(+), 21 deletions(-) diff --git a/index.md b/index.md index c4477256..f82e9b41 100644 --- a/index.md +++ b/index.md @@ -1,37 +1,176 @@ -## Welcome to GitHub Pages +# 1. About libCML -You can use the [editor on GitHub](https://github.com/belosthomas/libCML/edit/gh-pages/index.md) to maintain and preview the content for your website in Markdown files. +libCML is a SLAM library and scientific tool, which include a novel fast thread-safe graph map implementation. If you are using this work, please cite : +```bibtex +@misc{libcml, + title={libCML : SLAM library}, + author={Thomas Belos, Pascal Monasse, Eva Dokladalova}, + url={https://github.com/belosthomas/libCML} +} +``` + +# 2. About MODSLAM + +MODSLAM is a mixed ORB-SLAM2 and DSO SLAM system. If you are using this work, please cite : +```bibtex +@inproceedings{modslam2021, + title={MOD SLAM: Mixed Method for a More Robust SLAM without Loop Closing}, + author={Belos, T., Monasse, P. and Dokladalova, E.}, + booktitle={In Proceedings of the 17th International Joint Conference on Computer Vision, Imaging and Computer Graphics Theory and Applications (VISIGRAPP 2022)} +} +``` + +# 3. Compilation -Whenever you commit to this repository, GitHub Pages will run [Jekyll](https://jekyllrb.com/) to rebuild the pages in your site, from the content in your Markdown files. +**Minimum Ubuntu Version :** 20 -### Markdown +**Minimum Fedora Version :** 34 -Markdown is a lightweight and easy-to-use syntax for styling your writing. It includes conventions for +## a. Windows, Linux and Mac -```markdown -Syntax highlighted code block +If you want to build the GUI, you will need Qt6 with Qt Multimedia and Qt Charts. Otherwise, please disable it with the according option (see below). -# Header 1 -## Header 2 -### Header 3 +We recommend you to use CLion from Jetbrains, or Qt Creator from Nokia, to build and test. +Otherwise, you can : + +```bash +mkdir build +cd build +cmake -DCMAKE_BUILD_TYPE=Release .. +make -j 4 +``` + +☕ Then, take a break, drink a cup of coffee. It can take hours time to build. + +This is a list of different option you can pass to cmake : +```bash +-DENABLE_GUI=OFF # Disable/Enable the gui +-DUSE_GOOGLE_HASH=ON # Disable/Enable Google Hash Map. Enabling this option cause the map to take more memory, but to be faster. +-DENABLE_OPENMP=OFF # Disable/Enable OpenMP +``` -- Bulleted -- List +## b. Android and iPhone -1. Numbered -2. List +We recommend you to use Qt Creator, as it is the most simple way to build ModSLAM on Android and iPhone. -**Bold** and _Italic_ and `Code` text +1. Download and Install Android Studio +2. Download and Install JDK 17 (Higher version not supporter for the moment) +3. Download and Install Qt (with QtCreator, Qt 6 for Android, Qt Multimedia and Qt Charts) +4. Launch Qt Creator. Go to Android settings. Make sure that all is ok. Download the Android SDK you want. +5. Open the project with Qt Creator, configure it for Android/Release and simply build it -[Link](url) and ![Image](src) +# 4. Execution + +```bash +cd build +./modslam -d PATH_TO_THE_DATASET +``` +where `PATH_TO_THE_DATASET` can be any dataset (TUM, KITTI, RobotCar, a mkv/mp4/avi/other video file...). +MODSLAM will automatically detect the right dataset format. + +Here is a list of arguments you can pass to the executable : +```bash +-c configfile.yaml # Load a specific config file +-g # Use Gui Mode +-t # Use Terminal Mode +-r path_to_result -f [tum|kitti|all] # Save the results with the specified format +-l log.txt # Write the log to a file +-s path_to_images # Export the 3D rendering to a ton of .jpeg files at specified folder +-z # Print the statistics at each iteration. Used for python script and result analasys. +``` + +# 5. Datasets + +## KITTI Odometry + +Download here : https://www.cvlibs.net/datasets/kitti/eval_odometry.php + - Gray Scale Required + - Color Optional + - Groundtruth Optional + +``` +/KITTI +├── dataset +│   ├── poses +│   │   ├── 00.txt +│   │   ├── 01.txt +│   │   ├── 02.txt +│   │   ├── 03.txt +│   │   ├── 04.txt +│   │   ├── 05.txt +│   │   ├── 06.txt +│   │   ├── 07.txt +│   │   ├── 08.txt +│   │   ├── 09.txt +│   │   └── 10.txt +│   └── sequences +│   ├── 00 +│   ├── 01 +│   ├── 02 +│   ├── 03 +│   ├── 04 +│   ├── 05 +│   ├── 06 +│   ├── 07 +│   ├── 08 +│   ├── 09 +│   ├── 10 ``` -For more details see [Basic writing and formatting syntax](https://docs.github.com/en/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax). +```bash +cd build +./modslam -d /KITTI/dataset/sequences/02 +``` + + +## Stereopolis + +``` +/Stereopolis +├── Camera_0.zip +├── Camera_0.gt.txt +├── Camera_0.mask.png +├── Camera_0.times.txt +├── Camera_0.xml +``` + +```bash +cd build +./modslam -d /Stereopolis/Camera_0.zip +``` + +# 5. Evaluation + +```bash +cd result +python3 statson.py # Compute the absolute trajectory error of each videos +python3 bruteforce.py # Make statistics for the parameters / Search for a better parameters set +python3 make2dtable.py # Make a 2D table of the variation of ATE between by varying two parameters +``` + +The configuration file `evaluation/config.txt` contains the SLAMs and the datasets to evaluate on : +```bash +ModSLAM "../cmake-build-release/modslam" +TUM "/home/thomas/Datasets/TUM" +KITTI "/home/thomas/Datasets/KITTI" +``` + +The configuration file `evaluation/modslam.yaml` is the SLAM configuration you want to initialize the python script with. + +Each result is stored in a `.json` file. Experience are never run twice. If a the result of an experience is already present in the `.json` file, the experience will not run a second time. +You can plot all the result stored in the json database : +```bash +python3 plotall.py +``` + + +# Known bugs -### Jekyll Themes +## The camera won't open on Android -Your Pages site will use the layout and styles from the Jekyll theme you have selected in your [repository settings](https://github.com/belosthomas/libCML/settings/pages). The name of this theme is saved in the Jekyll `_config.yml` configuration file. +This is a bug of Qt. Please use at least Qt 6.3.0. -### Support or Contact +## MSVC / CLang, LLVM Out of memory -Having trouble with Pages? Check out our [documentation](https://docs.github.com/categories/github-pages-basics/) or [contact support](https://support.github.com/contact) and we’ll help you sort it out. +This can be cause when you use the 32 bits of the compiler instead of the 64. +Please read https://cmake.org/cmake/help/git-stage/guide/user-interaction/index.html for more details. From 05aec6e03b3d6aea332db41c17f9c4d785283aa9 Mon Sep 17 00:00:00 2001 From: Belos Thomas Date: Wed, 4 May 2022 16:36:09 +0200 Subject: [PATCH 3/6] add google index --- googlec5faf53b8c17a41d.html | 1 + 1 file changed, 1 insertion(+) create mode 100644 googlec5faf53b8c17a41d.html diff --git a/googlec5faf53b8c17a41d.html b/googlec5faf53b8c17a41d.html new file mode 100644 index 00000000..d2ea41fd --- /dev/null +++ b/googlec5faf53b8c17a41d.html @@ -0,0 +1 @@ +google-site-verification: googlec5faf53b8c17a41d.html \ No newline at end of file From 562c20d333e3d1221916625db8c0144260723c75 Mon Sep 17 00:00:00 2001 From: Belos Thomas Date: Mon, 9 May 2022 09:49:12 +0200 Subject: [PATCH 4/6] Update index.md --- index.md | 53 +++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 41 insertions(+), 12 deletions(-) diff --git a/index.md b/index.md index f82e9b41..6dabf8d7 100644 --- a/index.md +++ b/index.md @@ -1,25 +1,51 @@ -# 1. About libCML +# 1. MOD SLAM: Mixed Method for a More Robust SLAM Without Loop Closing -libCML is a SLAM library and scientific tool, which include a novel fast thread-safe graph map implementation. If you are using this work, please cite : -```bibtex -@misc{libcml, - title={libCML : SLAM library}, - author={Thomas Belos, Pascal Monasse, Eva Dokladalova}, - url={https://github.com/belosthomas/libCML} -} -``` +**Paper link** : [https://hal.archives-ouvertes.fr/hal-03538133](https://hal.archives-ouvertes.fr/hal-03538133) -# 2. About MODSLAM +In recent years, the state-of-the-art of monocular SLAM has seen remarkable advances in reducing errors and improving robustness. At the same time, this quality of results can be obtained in real-time on small CPUs. +However, most algorithms have a high failure rate out-of-the-box. Systematic error such as drift remains still significant even for the best algorithms. This can be handled by a global measure as a loop closure, but it penalizes online data processing. We propose a mixed SLAM, based on ORB-SLAM2 and DSO: MOD SLAM. It is a fusion of photometric and feature-based methods, without being a simple copy of both. We propose a decision system to predict at each frame which optimization will produce the minimum drift so that only one will be selected to save computational time and resources. We propose a new implementation of the map that is equipped with the ability to actively work with DSO and ORB points at the same time. Our experimental results show that this method increases the overall robustness and reduces the drift without compromising the computational resources. Contrary to the best state-of-the-art algorithms, MOD SLAM can handle 100\% of KITTI, TUM, and random phone videos, without any configuration change. -MODSLAM is a mixed ORB-SLAM2 and DSO SLAM system. If you are using this work, please cite : +If you are using this work, please cite : ```bibtex @inproceedings{modslam2021, title={MOD SLAM: Mixed Method for a More Robust SLAM without Loop Closing}, - author={Belos, T., Monasse, P. and Dokladalova, E.}, + author={Thomas Belos, Pascal Monasse, and Eva Dokladalova}, booktitle={In Proceedings of the 17th International Joint Conference on Computer Vision, Imaging and Computer Graphics Theory and Applications (VISIGRAPP 2022)} } ``` +## Downloads + +### Windows + +https://github.com/belosthomas/libCML/releases + +### Linux + +Build Coming soon... + +### Android + +https://github.com/belosthomas/libCML/releases + + + +**Known issues on Android:** +- A lot of crashes +- Not internal calibration is used +- Based on old settings + +# 2. About libCML + +libCML is a SLAM library and scientific tool, which include a novel fast thread-safe graph map implementation. If you are using this work, please cite : +```bibtex +@misc{libcml, + title={libCML : SLAM library}, + author={Thomas Belos, Pascal Monasse, Eva Dokladalova}, + url={https://github.com/belosthomas/libCML} +} +``` + # 3. Compilation **Minimum Ubuntu Version :** 20 @@ -163,6 +189,9 @@ You can plot all the result stored in the json database : python3 plotall.py ``` +All the result are stored in a `result` folder. This is the kind of result you can except with a few experiences : + + # Known bugs From 7322369509dd243fe7539b878d84dc4ffb50f785 Mon Sep 17 00:00:00 2001 From: Belos Thomas Date: Mon, 9 May 2022 09:54:14 +0200 Subject: [PATCH 5/6] Update index.md --- index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/index.md b/index.md index 6dabf8d7..b24db957 100644 --- a/index.md +++ b/index.md @@ -1,3 +1,6 @@ +libCML and MODSLAM +=========================== + # 1. MOD SLAM: Mixed Method for a More Robust SLAM Without Loop Closing **Paper link** : [https://hal.archives-ouvertes.fr/hal-03538133](https://hal.archives-ouvertes.fr/hal-03538133) From 1ffd9b5bc4b1110d98e63c68b2a2f04c4ade7091 Mon Sep 17 00:00:00 2001 From: Belos Thomas Date: Mon, 9 May 2022 10:00:08 +0200 Subject: [PATCH 6/6] Update _config.yml --- _config.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/_config.yml b/_config.yml index c4192631..db25e929 100644 --- a/_config.yml +++ b/_config.yml @@ -1 +1,5 @@ -theme: jekyll-theme-cayman \ No newline at end of file +title: libCML and MODSLAM +theme: jekyll-theme-cayman +navbar-links: + Download for Windows: "https://github.com/belosthomas/libCML/releases" + Download for Android: "https://github.com/belosthomas/libCML/releases"