GLIM¶
Pelorus can act as the odometry module inside GLIM, which then handles submapping and global optimization on top of it. This page assumes GLIM and Rust are already installed, and uses a ROS 2 Jazzy layout for the configuration paths.
The plugin links against the Pelorus C library dynamically, so changing the acceleration backend later is a matter of rebuilding pelorus_c alone.
If you want to install with existing binaries, use the existing release channels.
Otherwise, install from source.
cd ros2_ws/src
git clone https://codeberg.org/stelzo/pelorus.git
colcon build --packages-select pelorus --cmake-args -DPELORUS_BUILD_GLIM=ON
source install/setup.bash
Add -DPELORUS_FEATURE_CUDA=ON, -DPELORUS_FEATURE_VULKAN=ON or -DPELORUS_FEATURE_METAL=ON to that configure step for GPU acceleration. The standalone page lists the rest of the options.
We need to tell GLIM to use our plugin now.
When build from source, the json is in the install folder.
sudo ln -s "$(pwd)/install/pelorus/share/pelorus_glim_odometry/config/config_odometry_pelorus.json \
/opt/ros/jazzy/share/glim/config/config_odometry_pelorus.json
If you installed the system library, the json will be in the system folders instead.
sudo ln -s /usr/local/share/pelorus_glim_odometry/config/config_odometry_pelorus.json \
/opt/ros/jazzy/share/glim/config/config_odometry_pelorus.json
Then select it in /opt/ros/jazzy/share/glim/config/config.json:
"config_odometry": "config_odometry_pelorus.json",
// simplify the other modules while getting started
"config_sub_mapping": "config_sub_mapping_passthrough.json",
"config_global_mapping": "config_global_mapping_pose_graph.json"