Git Product home page Git Product logo

ctlo's Introduction

CTLO:Continuous Time Lidar Odometry

CTLO is a light-weight Continuous Time Lidar Odometry for lidar data collected by UGVs. As a pure lidar odometry, It can achieve over 50hz with high accuracy.

nsh_indoor_outdoor
rotation_dataset
hdl_400
Deutsches Museum

How to Run

mkdir -p ctlo_ws/src
cd ctlo_ws/src/
git clone https://github.com/G3tupup/ctlo.git
cd ..
catkin_make
source devel/setup.bash
roslaunch ctlo lidar_odometry.launch

Dependency

CTLO is tested in Ubuntu 16.04, 18.04 and 20.04. Please install the following libraries before compilation.

  • ROS
  • Ceres Solver
  • Eigen
  • PCL(only used to display pointcloud in rviz)
  • OpenMP(optional)

Config launch file

  • lidar_topic: the topic of pointcloud in your rosbag. (Do not mix up "/xxx" with "xxx", which may cause error.)
  • rosbag_folder_name: the path of your rosbag. (Do not forget "/" at the end.)
  • rosbag_file_name: the name of your rosbag.
  • accumulate_count: the number of pointcloud which belongs in one frame. (1 for default and 75 for cartographer datasets)

Tips for higher speed(up to 100hz)

  • set OPENMPTHREAD in active_feature_map.hpp larger if your cpu have more cores.
  • set image_height_sample_step_ in feature_processor.hpp to 2/3 to reduce point cloud size.(This may reduce a bit of accuracy and robustness.)
  • set edge_feature_num_per_sub_line_ in feature_processor.hpp to 2/1 to reduce feature number.(This may reduce a bit of accuracy and robustness.)

Datasets

VLP16/HDL32 data collected by a UGV is highly recommended. Here are some tested public datasets:

Keystones

  • feature extraction proposed in LeGO-LOAM and improved
  • continuous time solver proposed in CT-ICP
  • incremental ndt in voxels for fast data assosiation and O(1) sliding window map update

Known Issues

  • Default parameters in feature_processor.hpp are for VLP16/HDL32 data, and you need to modify some of them for other kinds of lidar.
  • Feature extraction is similar with LeGO-LOAM, so it performs well for ground outdoor environment. Commenting function markGroundPoints() in feature_processor.hpp can help to cover with indoor/UAV environment.

ctlo's People

Contributors

g3tupup avatar

Stargazers

Christer Lien avatar

Watchers

 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.