• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

HaisenbergPeng/ROLL: A real-time, robust LiDAR-inertial localization system

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称(OpenSource Name):

HaisenbergPeng/ROLL

开源软件地址(OpenSource Url):

https://github.com/HaisenbergPeng/ROLL

开源编程语言(OpenSource Language):

C++ 81.6%

开源软件介绍(OpenSource Introduction):

1. ROLL

frameworkV10 ROLL is a LiDAR-based algorithm that can provide robust and accurate localization performance against long-term scene changes.

  • We propose a robust LOAM-based global matching module incorporating temporary mapping, which can prevent localization failures in areas with significant scene changes or insufficient map coverings. The temporary map can be merged onto the global map once matching is reliable again.
  • We extend a fusion scheme to trajectories from LIO and noisy global matching. By implementing a consistency check on the derived odometry drift, we successfully prevent the optimization results from going out of bounds.

Related paper: ROLL: Long-Term Robust LiDAR-based Localization With Temporary Mapping in Changing Environments. The paper is now accepted by IROS 2022

2. Prerequisites

  • Ubuntu 16.04, ROS kinetic
  • PCL 1.7
  • Eigen 3.3.7
  • GTSAM 4.0.2 (-DGTSAM_BUILD_WITH_MARCH_NATIVE = OFF)
  • Ceres 2.0 (It is optional since now the pose graph optimization is performed with GTSAM)

3. Build

mkdir catkin_ws/src -p && cd catkin_ws/src
git clone https://github.com/HaisenbergPeng/ROLL.git
git clone https://github.com/HaisenbergPeng/FAST_LIO.git
cd ../.. && catkin_make

4. Run

  1. Download NCLT datasets

    We need all data except for Image and Hokuyo. Extract all files in one directory.

  2. Generate rosbag with the original data

    Change the variables "record_time" and "root_dir", and arrange files in directory "root_dir" as following:

├── cov_2012-01-15.csv
├── gps.csv
├── gps_rtk.csv
├── gps_rtk_err.csv
├── groundtruth_2012-01-15.csv
├── kvh.csv
├── ms25.csv
├── ms25_euler.csv
├── odometry_cov_100hz.csv
├── odometry_cov.csv
├── odometry_mu_100hz.csv
├── odometry_mu.csv
├── README.txt
├── velodyne_hits.bin
└── wheels.csv
cd src/scripts
python nclt_data2bag_BIN.py

Then a rosbag named "2012-01-15_bin.bag" will be generated.

  1. Building a map with NCLT ground truth
roslaunch roll GTmapping_nclt.launch
rosbag play <root_dir>/2012-01-15_bin.bag --clock
  1. Localization test

    By default, the algorithm will get the initial pose from topic "ground_truth". If it cannot get such a topic, it load initial pose from variable "initialGuess".

roslaunch roll loc_nclt.launch
rosbag play <root_dir>/<another_bag> --clock
  1. Evaluation

    All evaluations were performed with matlab scripts, which are open-sourced as well

5. Acknoledgements

Thanks for LOAM, LIO-SAM, FAST-LIO2




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap