Giter VIP home page Giter VIP logo

slict's Introduction

SLICT: Multi-Input Multi-Scale Surfel-Based Lidar-Inertial Continuous-Time Odometry and Mapping

Demo Video

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. However a docker can be used to run SLICT with older OS versions. Please find the instructions below.

  • Ubuntu 20.04 with ROS Noetic

  • Ceres 2.1.0

    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
  • One more package:

    sudo apt install ros-$ROS_DISTRO-tf2-sensor-msgs
    

Installation

we will clone this repo

  1. SLICT
  2. UFOMap (devel_surfel)
  3. Livox ROS driver (forked)

Please install all dependencies first. Afterwards, create a ros workspace, clone the package 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
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:

source devel/setup.zsh
roslaunch slict run_ntuviral.launch bag_file:=${PATH_HAVE_THE_NTU_BAG}
# for example
roslaunch slict run_ntuviral.launch bag_file:=/home/kin/bags/ntu_viral/eee_01/eee_01.bag

Docker User

Precompiled Image

To use SLICT on any platform without compiling issues, we prepare a docker image with all things precomiled.

First, please install docker engine using the instructions at https://docs.docker.com/engine/install .

Once done, pull this repo into your workspace, then build (ignore error), and source devel/setup.sh to update the path to packages. For e.g.

mkdir catkin_ws/src
cd catkin_ws/src
git clone https://github.com/brytsknguyen/slict
catkin build                                        # there may be error
source ../devel/setup.bash                          # now SLICT's path is set

Now we can just call the scripts under docker for the corresponding dataset. For example you can run SLICT with an NTU VIRAL sequence by

roscd slict/docker && ./run_ntuviral.sh /path/to/dataset

You can also set a default /path/to/dataset in the script run_ntuviral.sh at this line.

To change between the sequence, simply change the bag_file argument in the launch file.

Recompile SLICT on local container

For advance users who wants to test your changes to SLICT on the local container, simply build one with the provided docker file:

roscd slict/docker && make build  # Container is named slict-noetic-focal

Afterwards, you can remove the repository reference brytsknguyen in the script to use the local container slict-noetic-focal

Publication

The details of SLICT are presented in the paper (accepted, pending publication) and further elaborated in the attached slides slides. Please cite this work if you find it 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    = { },
  number    = { },
  pages     = {0--8},
  year      = {2023}
  publisher = {IEEE}
}

image

slict's People

Contributors

kin-zhang avatar brytsknguyen avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.