TL;DR: CLID-SLAM is a tightly-coupled LiDAR-Inertial Odometry and dense Mapping framework, which utilizes the Iterated Error-State Extended Kalman Filter (IESEKF) to fuse Signed Distance Function (SDF) predictions and IMU data to improve robustness.
We tested our code on Ubuntu 20.04 with an NVIDIA RTX 4090.
# Install Miniforge3
wget -O Miniforge3.sh "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
bash Miniforge3-$(uname)-$(uname -m).sh
# Clone the repo
git clone [email protected]:DUTRobot/CLID-SLAM.git
cd CLID-SLAM
# create conda environment
mamba create -n ros_env python=3.11
# Install ROS noetic
mamba install ros-noetic-desktop-full -c robostack-noetic -c conda-forge
# install pytorch
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
pip3 install -r requirements.txt
Newer College Dataset (also available on Baidu Disk due to Google Drive's maximum file size limit).
Edit ./dataset/converter/config/rosbag2dataset.yaml
.
input_bag: '/home/jiang/hku1_converted.bag'
output_folder: './dataset/hku/'
imu_topic: '/livox/imu'
lidar_topic: '/livox/pointcloud2'
image_topic: "/left_camera/image/compressed" # or /camera/color/image_raw
batch_size: 100 # Number of messages per batch
end_frame: -1 # -1 means process the entire bag file
Run:
python3 ./dataset/converter/rosbag2dataset_parallel.py
python3 slam.py ./config/run_ncd128.yaml
This project builds on PIN-SLAM by PRBonn/YuePanEdward. We gratefully acknowledge their valuable contributions.