===== Algorithm Creation =====
How to create algorithm in SLAM-Hive System.
==== Full Version ====
=== 1. Build SLAM algorithm images ===
We provide some SLAM algorithms Dockerfile and running scripts, here is an example to build an image:
cd SLAM_Hive
mkdir slam_hive_algos
cd slam_hive_algos
git clone https://github.com/SLAM-Hive/orb-slam2-ros-mono.git
cd orb-slam2-ros-mono
sudo chmod +x install.sh
./install.sh
You can check whether the image is successfully built as follows:
$ docker images
You can see:
slam-hive-algorithm     orb-slam2-ros-mono      [IMAGE ID]      [CREATED]       [SIZE]
Go go to other directory in // /SLAM_Hive/slam_hive_algos/<> // and execute the above command to build remaining images. After that you will see the following images:
REPOSITORY             TAG                              IMAGE ID       CREATED         SIZE
slam-hive-evaluation   evo                              0254b6ded2cb   5 weeks ago     1.79GB
slam-hive-algorithm    vins-mono                        de2b13e0fc07   5 weeks ago     2.96GB
slam-hive-algorithm    vins-fusion-mono-imu             9078af9ba64a   7 days ago      3.1GB
slam-hive-algorithm    vins-fusion-stereo               9078af9ba64a   7 days ago      3.1GB
slam-hive-algorithm    vins-fusion-stereo-imu           9078af9ba64a   7 days ago      3.1GB
slam-hive-algorithm    orb-slam2-ros-mono               2f8241d1df9a   6 weeks ago     3.39GB
slam-hive-algorithm    orb-slam2-ros-rgbd               2f8241d1df9a   6 weeks ago     3.39GB
slam-hive-algorithm    orb-slam2-ros-stereo             2f8241d1df9a   6 weeks ago     3.39GB
slam-hive-algorithm    orb-slam3-ros-mono               28c13955a331   9 days ago      4.17GB
slam-hive-algorithm    orb-slam3-ros-mono-inertial      28c13955a331   9 days ago      4.17GB
...
=== 2. Add new SLAM algorithm to SLAM-Hive ===
For example, you want to upload a new SLAM algorithms named "New-SLAM" with mono mode and stereo mode:
You can firstly create Docker images following other provided algorithms and name them as: "slam-hive-algorithm:new-slam-mono" and "slam-hive-algorithm:new-slam-stereo".
https://github.com/SLAM-Hive/slam_hive_web?tab=readme-ov-file#631-create-your-own-algorithm lists the components of a algorithm, and the explanation of each file can be found. Here is a tree structure of a algorithm folder:
/SLAM-Hive/slam_hive_algos/orb-slam2-ros-mono$ tree -L 1
.
├── Dockerfile
├── install.sh
├── ORB_SLAM2
└── **slamhive**
/SLAM-Hive/slam_hive_algos/orb-slam2-ros-mono/slamhive$ tree -L 1
.
├── mapping.py
├── mappingtask.yaml
├── mono.launch
└── template.yaml
Then you input:
Image tag:                                  new-slam-mono
Dockerfile and mapping script address link: Docker build link # If you provide
Algorithm Class Name:                       new-slam
Description:                                # Some description of algorithm
Attribute:                                  # Some special attributes of algorithm
 
After all, you can click //save// button to add the algorithm to the database.
Here we give a novel SLAM algorithm example of complete building tutorial.
**TODO**