# slict **Repository Path**: zjyfzu/slict ## Basic Information - **Project Name**: slict - **Description**: https://github.com/brytsknguyen/slict - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-05 - **Last Updated**: 2025-09-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README SLICT: Multi-Input, Multi-Scale, Efficient, Surfel-Based, Lidar-Inertial Continuous-Time Odometry and Mapping, with Internal Association === Note: This is an actively developed repo. The stable versions are listed at https://github.com/brytsknguyen/slict/tags. # Publication The details of SLICT are presented in two RA-L papers. Please cite these works if you find SLICT useful: ``` @article{nguyen2023slict, title = {SLICT: Multi-input Multi-scale Surfel-Based Lidar-Inertial Continuous-Time Odometry and Mapping}, author = {Nguyen, Thien-Minh and Duberg, Daniel and Jensfelt, Patric and Yuan, Shenghai and Xie, Lihua}, journal = {IEEE Robotics and Automation Letters}, volume = {8}, number = {4}, pages = {2102--2109}, year = {2023}, publisher = {IEEE} } ``` ``` @article{nguyen2024eigen, title = {Eigen Is All You Need: Efficient Lidar-Inertial Continuous-Time Odometry With Internal Association}, author = {Nguyen, Thien-Minh and Xu, Xinhang and Jin, Tongxing and Yang, Yizhuo and Li, Jianping and Yuan, Shenghai and Xie, Lihua}, journal = {IEEE Robotics and Automation Letters}, year = {2024}, volume = {9}, number = {6}, pages = {5330-5337}, doi={10.1109/LRA.2024.3391049} } ``` # Summary ## SLICT 1: (Please checkout the tag [slict.1.0](https://github.com/brytsknguyen/slict/releases/tag/slict.1.0))
[arxiv](https://arxiv.org/abs/2211.03900) [RA-L](https://ieeexplore.ieee.org/document/10048526) ## SLICT 2 (current commit): Upgrades to using B-spline for trajectory representation, knot length as small as 0.01s, with an efficient solver that ensures real-time performance. More details can be find at our [RA-L paper](https://ieeexplore.ieee.org/document/10504969). # Build & Run ## Prerequisites The software was developed on the following dependencies. Ubuntu 20.04 and ROS Noetic is a must for compiling SLICT due to UFOMap's [minimum requirement](https://github.com/UnknownFreeOccupied/ufomap/wiki/Setup#installation). However **a docker** can be used to run SLICT with older OS versions. Please find the instructions below. - [Ubuntu 20.04](https://releases.ubuntu.com/20.04/) with [ROS Noetic](http://wiki.ros.org/noetic/Installation) - [Ceres 2.1.0](http://ceres-solver.org/installation.html) (or older, if you use later versions you may encounter [this error](https://github.com/brytsknguyen/slict/issues/2#issuecomment-1431686045)) ```bash git clone https://ceres-solver.googlesource.com/ceres-solver cd ceres-solver && git fetch --all --tags git checkout tags/2.1.0 mkdir build && cd build cmake .. && make -j$(nproc) sudo make install ``` - Sophus ```bash git clone https://github.com/strasdat/Sophus cd Sophus mkdir build && cd build cmake .. -DSOPHUS_USE_BASIC_LOGGING=ON make -j$(nproc) sudo make install ``` - One more package: ``` sudo apt install ros-$ROS_DISTRO-tf2-sensor-msgs ``` ## Installation SLICT uses UFOMap for global map management. It also supports epicyclic lidar (Livox). Thus, three packages need to be included in the catkin workspace: 1. [SLICT](https://github.com/brytsknguyen/slict) 2. [UFOMap (devel_surfel)](https://github.com/brytsknguyen/ufomap/tree/devel_surfel) 3. To compile the package for use with livox lidars (avia, mid-70, mid 360), you need to install [Livox ROS driver (forked)](https://github.com/brytsknguyen/livox_ros_driver) and [Livox ROS driver2 (forked)](https://github.com/brytsknguyen/livox_ros_driver2) (you need to install [LIVOX-SDK](https://github.com/Livox-SDK/Livox-SDK) and [LIVOX-SDK2](https://github.com/Livox-SDK/Livox-SDK2)) Please install all dependencies first. Afterwards, create a ros workspace, clone the packages to the workspace, and build by `catkin build` or `catkin_make`, for e.g.: ``` mkdir -p slict_ws/src cd slict_ws/src git clone https://github.com/brytsknguyen/slict git clone https://github.com/brytsknguyen/ufomap && cd ufomap && git checkout devel_surfel && cd .. git clone https://github.com/brytsknguyen/livox_ros_driver git clone https://github.com/brytsknguyen/livox_ros_driver2 cd .. && catkin build ``` The launch files for NTU VIRAL, Newer College, MCD VIRAL, and FusionPortable are provided under `launch` Please raise an issue if you encounter any problem. ## Example After build step success, run following commands: ```bash source devel/setup.zsh # Or make this command automatic by: echo "source /home/$USER/slict_ws/devel/setup.bash" >> ~/.bashrc" roslaunch slict run_mcdviral.launch bag_file:=${PATH_TO_THE_MCD_SEQ} # Example: roslaunch slict run_mcdviral.launch bag_file:=/media/tmn/mySataSSD1/DATASETS/MCDVIRAL/PublishedSequences/ntu_day_01/*.bag ``` You can also modify the path # Learning SLAM? SLICT was developed with intention to keep things educational.The whole backbone of the program is in the following steps: