Coder Social home page Coder Social logo

zikangyuan / sr_lio Goto Github PK

View Code? Open in Web Editor NEW
463.0 463.0 64.0 52.98 MB

[IROS 2024] A LiDAR-inertial odometry (LIO) package that can adjust the execution frequency beyond the sweep frequency

License: GNU General Public License v2.0

Python 4.14% C++ 93.94% CMake 1.91%

sr_lio's People

Contributors

einstian1 avatar zikangyuan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sr_lio's Issues

ate evaluation

hello, What was used to assess the ATE in your table?

CMake Error---- include could not find load file: FetchContent

Hello, CMake Error. How can I solve it?

CMake Error at sr_lio/CMakeLists.txt:19 (include):
include could not find load file:

FetchContent

CMake Error at sr_lio/CMakeLists.txt:21 (FetchContent_Declare):
Unknown CMake command "FetchContent_Declare".

-- Configuring incomplete, errors occurred!
See also "/home/jason/SR-LIO/build/CMakeFiles/CMakeOutput.log".
See also "/home/jason/SR-LIO/build/CMakeFiles/CMakeError.log".
Makefile:1496: recipe for target 'cmake_check_build_system' failed
make: *** [cmake_check_build_system] Error 1
Invoking "make cmake_check_build_system" failed

Drift when motion_compensation is CONSTANT_VELOCITY

Hi, Dr. Yuan @ZikangYuan

Thanks for your nice work.

在测试sr_lio时,遇到了一个问题,烦请有空帮忙解答一下;

在求解方式为LIO模式下,
motion_compensation设置为CONTINUOUS时,程序运行为CT_POINT_TO_PLANE的残差和IMU残差优化求解;
motion_compensation设置为CONSTANT_VELOCITY时,程序运行为POINT_TO_PLANE的残差和IMU残差优化求解;

在不改变其他参数的情况下,运行NCLT和KAIST的测试数据,当motion_compensation设置为CONSTANT_VELOCITY时,激光里程计总是会出现漂移,不知道是否是我那里设置有误?

配置文件:
yaml.zip

期待你的回复!

2023-05-10 11-46-14屏幕截图
2023-05-10 11-47-32屏幕截图

Running with RS-Bpearl

Hello !
Sorry for bothering, but i'm testing the LiDAR RS-Bpearl, and after a launch, with this config file

common:
    lidar_topic:  "/rslidar_points"
    imu_topic:  "/imu/data"
    point_filter_num: 1
    sweep_cut_num: 1
    time_sync_en: false         # ONLY turn on when external time synchronization is really not possible
    gravity_acc: [ 0.0, 0.0, 9.80416]
    
lidar_parameter:
    lidar_type: 4                # 1 for Livox serials LiDAR, 2 for Velodyne LiDAR, 3 for ouster LiDAR, 4 for robosense
    N_SCANS: 32
    SCAN_RATE: 10                # only need to be set for velodyne, unit: Hz,
    time_unit: 0            # the unit of time/t field in the PointCloud2 rostopic: 0-second, 1-milisecond, 2-microsecond, 3-nanosecond.
    blind: 0.2
    fov_degree:    360
    det_range:     100.0

imu_parameter:
    acc_cov: 0.1
    gyr_cov: 0.1
    b_acc_cov: 0.0001
    b_gyr_cov: 0.0001
    time_diff_enable: false

extrinsic_parameter:
    extrinsic_enable:  false      # true: enable the online estimation of IMU-LiDAR extrinsic,
    extrinsic_t: [ 0, 0, 0]
    extrinsic_R: [ 1, 0, 0, 
                   0, -1, 0, 
                   0, 0, -1]

odometry_options:
    voxel_size: 0.1 # The voxel size for the grid sampling of the new frame (before keypoints extraction)
    sample_voxel_size: 1.5 # The size of a voxel for the selection of `keypoints` by grid sampling
    max_distance: 2000.0 # The threshold of the distance to suppress voxels from the map
    max_num_points_in_voxel: 20 # The maximum number of points per voxel of the map
    init_num_frames: 20
    min_distance_points: 0.15
    distance_error_threshold: 100.0 # The motion of the sensor between two frames which is considered erroneous (stops the odometry)
    motion_compensation: CONSTANT_VELOCITY # The profile of the motion compensation (IMU, CONSTANT_VELOCITY)
    initialization: INIT_IMU # [INIT_IMU, INIT_CONSTANT_VELOCITY]

icp_options:
    size_voxel_map: 1.0 # The voxel size of in the voxel map
    num_iters_icp: 5 # The number of iterations of the ICP
    min_number_neighbors: 20 # The minimum number of neighbor points to define a valid neighborhood
    voxel_neighborhood: 1
    max_number_neighbors: 20
    max_dist_to_plane_ct_icp: 0.3
    threshold_orientation_norm: 0.1 # Threshold on orientation changes (in degrees) for early termination of the ICP
    threshold_translation_norm: 0.01 # Threshold on distance changes (in m) for early termination of the ICP
    debug_print: false
    num_closest_neighbors: 1
    min_num_residuals: 200 # The minimum number of residuals for a valid ICP problem
    max_num_residuals: 600 # The maximum number of residuals considered (if more keypoints exist, residuals are randomly sampled)

It doesnt flag any error, but whenever i run my bag file i get this error:

process[lio_optimization-1]: started with pid [39834]
process[rviz-2]: started with pid [39835]
[ INFO] [1712774027.763838755]: Wait more IMU measurements...
[ INFO] [1712774027.879328679]: Wait more IMU measurements...
[ INFO] [1712774027.983301862]: Wait more IMU measurements...
[ INFO] [1712774028.059215990]: Wait more IMU measurements...
[ INFO] [1712774028.158987724]: Wait more IMU measurements...
[ INFO] [1712774028.287150254]: Wait more IMU measurements...
[ INFO] [1712774028.358323531]: Wait more IMU measurements...
[ INFO] [1712774028.493346267]: Wait more IMU measurements...
[ INFO] [1712774028.560667782]: Wait more IMU measurements...
[ INFO] [1712774028.676756769]: Wait more IMU measurements...
[ INFO] [1712774028.785067563]: Wait more IMU measurements...
[ INFO] [1712774028.888341760]: Wait more IMU measurements...
[ INFO] [1712774028.960092560]: Wait more IMU measurements...
[ INFO] [1712774029.060610629]: Wait more IMU measurements...
[ INFO] [1712774029.158085200]: Wait more IMU measurements...
[ INFO] [1712774029.260941911]: Wait more IMU measurements...
[ INFO] [1712774029.360273904]: Wait more IMU measurements...
[ INFO] [1712774029.481662640]: Wait more IMU measurements...
[ INFO] [1712774029.586016466]: Wait more IMU measurements...
[ INFO] [1712774029.692679456]: Wait more IMU measurements...
[ INFO] [1712774029.758716389]: Wait more IMU measurements...
[ INFO] [1712774029.859113073]: Wait more IMU measurements...
[ INFO] [1712774029.986836790]: Wait more IMU measurements...
[ INFO] [1712774030.097330981]: Wait more IMU measurements...
[ INFO] [1712774030.158912450]: Wait more IMU measurements...
[ INFO] [1712774030.284812213]: Wait more IMU measurements...
[ INFO] [1712774030.360431773]: Wait more IMU measurements...
[ INFO] [1712774030.460586029]: Wait more IMU measurements...
[ INFO] [1712774030.559054065]: Wait more IMU measurements...
[ INFO] [1712774030.658294263]: Wait more IMU measurements...
[ INFO] [1712774030.761387006]: IMU Initialization Done.
init_gravity = 9.80198 -0.143398 0.149096
init_bg = -0.00188656 -0.000223365 0.000389759
lio_optimization: /home/pedro/catkin_ws/src/sr_lio/src/utility.cpp:220: void distortFrameByConstant(std::vector&, std::vector&, double, Eigen::Matrix3d&, Eigen::Vector3d&): Assertion `time_point > time_frame_begin - 1e-6 && time_point < time_frame_end + 1e-6' failed.
[lio_optimization-1] process has died [pid 39834, exit code -6, cmd /home/pedro/catkin_ws/devel/lib/sr_lio/lio_optimization __name:=lio_optimization __log:=/home/pedro/.ros/log/d4096686-f766-11ee-900c-8b22dffe9a47/lio_optimization-1.log].
log file: /home/pedro/.ros/log/d4096686-f766-11ee-900c-8b22dffe9a47/lio_optimization-1*.log

Do you got any ideia what the problem can be?
Thank you in advance.

Running Error

ERROR: cannot launch node of type [velodyne_pointcloud/cloud_node]: Cannot locate node of type [cloud_node] in package [velodyne_pointcloud]. Make sure file exists in package path and permission is set to executable (chmod +x)

跑自己采集的数据,程序不动了。。

袁博士:
你好,感谢你的工作,我是刚入门激光slam的小白。我跑自己的数据集,以下是我的yaml文件:
robosense.txt
这个不能上传yaml文件,我后缀改为txt了,您改成yaml就可以了。
我跑的数据集,在小车静止状态下,有输出,小车要运动后,系统没数据输出了,rviz显示的小车也是静止的。不知道为什么,能帮忙看下么?
Screenshot from 2024-06-08 15-51-17

数据集上传百度网盘了,以下是链接:
链接:https://pan.baidu.com/s/1dA_IN8ektz6zxa8kaw7QCA
提取码:j9pp
--来自百度网盘超级会员V9的分享。
再次感谢。

How to sve global point cloud as a PCD or other types?

Some parameters in the YAML file look similar to fast-lio2(E.g “pcd_save_en”), but I don't see any use of these parameters in the source code. The point cloud cannot be saved even if pcd_save_en is set to true. After turning on the debug mode, the saved point cloud does not seem to be in the global coordinate system. How should I save the final point cloud? Thank you for your help!!

运行单变量的LIO模式无效

很优秀的工作。但是我们遇到了以下问题:配置文件motion_compensation:CONSTANT_VELOCITY, sweep_cut_num: 1。运行LIO模式直接会飞,运行LO模式正常,请问是什么原因呢?我这边多个人测试了都是这样的情况。期待你的回复,同时祝愿论文中稿。

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.