All Projects → zpw6106 → tloam

zpw6106 / tloam

Licence: GPL-3.0 License
T-LOAM: Truncated Least Squares Lidar-only Odometry and Mapping in Real-Time

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to tloam

puma
Poisson Surface Reconstruction for LiDAR Odometry and Mapping
Stars: ✭ 302 (+84.15%)
Mutual labels:  lidar, odometry
direct lidar odometry
Direct LiDAR Odometry: Fast Localization with Dense Point Clouds
Stars: ✭ 202 (+23.17%)
Mutual labels:  lidar, odometry
lbjava
Learning Based Java (LBJava)
Stars: ✭ 12 (-92.68%)
Mutual labels:  feature-extraction
UrbanLoco
UrbanLoco: A Full Sensor Suite Dataset for Mapping and Localization in Urban Scenes
Stars: ✭ 147 (-10.37%)
Mutual labels:  lidar
urban road filter
Real-time LIDAR-based Urban Road and Sidewalk detection for Autonomous Vehicles 🚗
Stars: ✭ 134 (-18.29%)
Mutual labels:  lidar
camera lidar calibration
A tool used for calibrate the extrinsic between 2D laser range finder (LRF) and camera. ROS Version: https://github.com/TurtleZhong/camera_lidar_calibration_v2
Stars: ✭ 48 (-70.73%)
Mutual labels:  lidar
JetScan
JetScan : GPU accelerated portable RGB-D reconstruction system
Stars: ✭ 77 (-53.05%)
Mutual labels:  open3d
featurewiz
Use advanced feature engineering strategies and select best features from your data set with a single line of code.
Stars: ✭ 229 (+39.63%)
Mutual labels:  feature-extraction
rlas
R package to read and write las and laz files used to store LiDAR data
Stars: ✭ 23 (-85.98%)
Mutual labels:  lidar
uav-lidar-analytics-course
NCSU GIS595/MEA792: UAV/lidar Data Analytics
Stars: ✭ 23 (-85.98%)
Mutual labels:  lidar
BtcDet
Behind the Curtain: Learning Occluded Shapes for 3D Object Detection
Stars: ✭ 104 (-36.59%)
Mutual labels:  lidar
Applications-LidarBot
No description or website provided.
Stars: ✭ 15 (-90.85%)
Mutual labels:  lidar
awesome-lidar
😎 Awesome LIDAR list. The list includes LIDAR manufacturers, datasets, point cloud-processing algorithms, point cloud frameworks and simulators.
Stars: ✭ 217 (+32.32%)
Mutual labels:  lidar
TrackViz
Recorded tracks visualization plugin built on Unreal Engine. Airsim compatible.
Stars: ✭ 19 (-88.41%)
Mutual labels:  odometry
Awesome-3D-Object-Detection-for-Autonomous-Driving
Papers on 3D Object Detection for Autonomous Driving
Stars: ✭ 52 (-68.29%)
Mutual labels:  lidar
gan tensorflow
Automatic feature engineering using Generative Adversarial Networks using TensorFlow.
Stars: ✭ 48 (-70.73%)
Mutual labels:  feature-extraction
lidar body tracking
ROS Catkin package to track people using octree and cluster extraction
Stars: ✭ 68 (-58.54%)
Mutual labels:  lidar
sensor-fusion
Filters: KF, EKF, UKF || Process Models: CV, CTRV || Measurement Models: Radar, Lidar
Stars: ✭ 96 (-41.46%)
Mutual labels:  lidar
Rcpi
Molecular informatics toolkit with a comprehensive integration of bioinformatics and cheminformatics tools for drug discovery.
Stars: ✭ 22 (-86.59%)
Mutual labels:  feature-extraction
bottom-up-features
Bottom-up features extractor implemented in PyTorch.
Stars: ✭ 62 (-62.2%)
Mutual labels:  feature-extraction

T-LOAM: Truncated Least Squares Lidar-only Odometry and Mapping in Real-Time

The first Lidar-only odometry framework with high performance based on truncated least squares and Open3D point cloud library, The foremost improvement include:

  • Fast and precision pretreatment module, multi-region ground extraction and dynamic curved-voxel clustering perform ground point extraction and category segmentation.
  • Feature extraction based on principal component analysis(PCA) elaborate four distinctive feature,including: planar features, ground features, edge features, sphere features
  • There are three kinds of residual functions based on truncated least squares method for directly processing above features which are point-to-point, point-to-line, and point-to-plane.
  • Open3d point cloud library is integrated into SLAM algorithm framework for the first time. We extend more functions and implemented the message interface related to ROS.

[Demo Video] [Preprint Paper]

drawing

drawing drawing drawing drawing

Note that regard to pure odometry without corrections through loop closures, T-LOAM delivers much less drift than F-LOAM.

Framework overview

drawing

Each frame of the 3D LiDAR is processed as input. Four main processing modules are introduced to construct the backbone of the algorithm: (a) multi-region ground extraction module, (b) dynamic curved-voxel clustering module, (c) feature extraction module, (d) pose optimization module.

Evaluation

KITTI Sequence 00 F-LOAM T-LOAM
Translational Error(%) 1.11 0.98
Relative Error(°/100m) 0.40 0.60

Graphic Result(Path and Translation)

F-LOAM

drawing

T-LOAM

drawing

F-LOAM

drawing

T-LOAM

drawing

Dependency

-ROS(Melodic Ubuntu18.04)

sudo apt-get install python-catkin-tools ros-melodic-ecl-threads ros-melodic-jsk-recognition-msgs ros-melodic-jsk-visualization ros-melodic-velodyne-msgs

-YAML(0.6.3) Note that you must build a shared library due to we utilize the ros nodelet package.

tar -zxvf yaml-cpp-yaml-cpp-0.6.3.tar.gz
cd yaml-2.3.0 && mkdir build && cd build
cmake [-G generator] [-DYAML_BUILD_SHARED_LIBS=ON] ..
make 
sudo make install

-Open3D(A Modern Library for 3D Data Processing 0.12.0)

Please note that open3d installation will be a slightly troublesome process, please be patient. Another problem that needs attention is that Open3D-ML cannot be used in ROS at the same time due to the link error2286 and error3432. In order to fix this, you need to specify the cmake flag -DGLIBCXX_USE_CXX11_ABI=ON. However, the latest Tensorflow2.4 installed through conda(not pip) already supports the C++11 API, you can check the API with print(tensorflow.__cxx11_abi_flag__). If the flag is true, you can set the compile flag -DBUILD_TENSORFLOW_OPS=ON Next, you can complete the installation according to the instructions

cd Open3D
util/scripts/install-deps-ubuntu.sh
mkdir build && cd build 
cmake \
    -DBUILD_SHARED_LIBS=ON \
    -DPYTHON_EXECUTABLE=$(which python3) \
    -DBUILD_CUDA_MODULE=ON \
    -DGLIBCXX_USE_CXX11_ABI=ON \
    -DBUILD_LIBREALSENSE=ON  \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=/usr/local \
    -DBUILD_PYTORCH_OPS=OFF \
    -DBUILD_TENSORFLOW_OPS=OFF \
    -DBUNDLE_OPEN3D_ML=ON \
    -DOPEN3D_ML_ROOT=${replace with own Open3D-ML path} \
    ../
make -j4
sudo make install 

If you have clone problems, you can download it directly from the link below.

Baidu Disk code: khy9 or Google Drive

-Ceres Solver(A large scale non-linear optimization library 2.0) you can complete the installation according to the guide

Installation

Now create the Catkin Environment:

mkdir -p ~/tloam_ws/src
cd ~/tloam_ws
catkin init
catkin config --merge-devel
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release

And clone the project:

cd src
git clone https://github.com/zpw6106/tloam.git
catkin build

Usage

Download the KITTI Odometry Dataset (Graviti can provide faster download speed in China), then organize it according to the following structure, and modify the read path in the config/kitti/kitti_reader.yaml

drawing

-Example for running T-LOAM using the KITTI Dataset

roslaunch tloam tloam_kitti.launch

Contributors

Pengwei Zhou (Email: [email protected])

BibTex Citation

Thank you for citing our T-LOAM paper on IEEEif you use any of this code:

@ARTICLE{9446309,
  author={Zhou, Pengwei and Guo, Xuexun and Pei, Xiaofei and Chen, Ci},
  journal={IEEE Transactions on Geoscience and Remote Sensing}, 
  title={T-LOAM: Truncated Least Squares LiDAR-Only Odometry and Mapping in Real Time}, 
  year={2021},
  volume={},
  number={},
  pages={1-13},
  doi={10.1109/TGRS.2021.3083606}
  }

Credits

We hereby recommend reading A-LOAM ,floam and TEASER for reference and thank them for making their work public.

License

The source code is released under GPLv3 license.

I am constantly working on improving this code. For any technical issues or commercial use, please contact me([email protected]).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].