zikangyuan / sr_lio Goto Github PK
View Code? Open in Web Editor NEW[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
[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
Hi, @ZikangYuan
Thanks for your nice work.
But I'm confused about the classification in your paper (part 2, LiDAR-Inertial Odometry), BA based and optimization based framework? What's the difference between them?
Looking forward to your reply.
Hi
Have you benchmarked the performance of SR_LIO and fast-lio2 for the newer collage dataset and NTU viral dataset?
How does it perform with lower speed vehicles?
请问袁博,MID360这类的非重复扫描激光雷达能用这个算法吗?
hello, What was used to assess the ATE in your table?
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
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
期待你的回复!
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.
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显示的小车也是静止的。不知道为什么,能帮忙看下么?
数据集上传百度网盘了,以下是链接:
链接:https://pan.baidu.com/s/1dA_IN8ektz6zxa8kaw7QCA
提取码:j9pp
--来自百度网盘超级会员V9的分享。
再次感谢。
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!!
很优秀的工作。但是我们遇到了以下问题:配置文件motion_compensation:CONSTANT_VELOCITY, sweep_cut_num: 1。运行LIO模式直接会飞,运行LO模式正常,请问是什么原因呢?我这边多个人测试了都是这样的情况。期待你的回复,同时祝愿论文中稿。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.