zijiechenrobotics / ig_lio Goto Github PK
View Code? Open in Web Editor NEWiG-LIO: An Incremental GICP-based Tightly-coupled LiDAR-inertial Odometry
License: GNU General Public License v2.0
iG-LIO: An Incremental GICP-based Tightly-coupled LiDAR-inertial Odometry
License: GNU General Public License v2.0
Could this project adjust the output frequency of the mileage, such as at the scale of the IMU.
Hi author, I ran your code and it worked great. Although this is not the focus of the article, I saw the code interface for fused GNSS sensors. Will the relevant code be open sourced later?
您好,我运行了您的代码库,效果很不错,但是如题,为什么您的紧耦合方案不需要滑窗和边缘化呢?
您好,我想问一下TIME EVALUATION是怎么评估的~
since you used avia_1, avia_2,avia_3 in your paper, but what are the specific sequences correspondened by them in https://drive.google.com/drive/folders/1CGYEJ9-wWjr8INyan6q1BZz_5VtGB-fP
I hope you can present the detail correspondences.
Looking forward to your response.
感谢您的工作,请问如何将轨迹和建图投影到卫星地图
作者你好,我在算法运行之初,使用voxel_map_ptr_->AddCloud(PCDCloudGMap);将事先建好的地图存入到Voxelmap中,然后通过给定初值,实现在已知地图上定位的功能。但是我发现通过ComputeHashIndex无法为当前帧的点云在地图中很好的找到对应的索引,或者说,在同一个位置,SLAM过程中voxel_map_ptr_的hashidx,和定位中的hashidx没有一样的,请问有什么好的办法吗?
Thank you for your team's wonderful workt! How can I save the global map?
config files have typos.
# from "ig_lio/config/avia.yaml"
# ...
inti_pos_cov: 0.0001 # it should be "init_pos_cov"
# ...
anyway, thanks for sharing the code.
iG-LIO works really good!
Hi. Thank you for sharing your great work.
I think there is no proper License updated yet.
Please kindly specify the proper license!
亲爱的B友,可以给个paper的pdf吗?没有IEEE的会员。
祝你成果多多~ღ( ´・ᴗ・` )比心
Hello dear,
First, what an amazing work that pushes the LIO state of art further !
I started to play a little bit with the package using a LIVOX mid-360 on a grounded robot and i observed that in x-y the estimation is quite good, however there is a significant drift in Z, as you can see in the following picture :
What do you think about this behaviour ? i can also provide the bag file if its necessary !
EDIT : To prevent that, is it possible to add a constraint regarding the flatness of the world ?
Thank you !
P_ = L * temp_P * L
是不是少了一个转置最后非常感谢作者的开源工作
How did you manage to generate a bag file for the NCLT dataset? With these instructions from FAST-LIO? Thanks
Hi, I just follow your demo line in 2.4 AVIA Dataset, but ig-lio drift and fly away quikly, how to solve it , thank you.
How do you save scans like you could do it for LIO SLAMs ?
I tried using this in config.yaml -
pcd_save: interval: -1
pcd_save_en: true
Didn't work, any help would be appreciated !
Hi author, thanks for the great work!
I am confused about the coordinate system of the ground_truth.csv provided by NCLT.
As far as I know, the IMU attitude is transformed to the LiDAR coordinate system in the script. The trajectory should be in the transformed coordinate system. Is there any script or method to generate ground_truth.txt of the NCLT Dataset in the IMU coordinate system?
Another question about nclt extrinsic parameter for lidar-->imu:
t_imu_lidar : [0, 0, 0.28]
R_imu_lidar : [1, 0, 0,
0, 1, 0,
0, 0, 1]
Is this extrinsic parameter really correct?
In liw-oam project(https://github.com/ZikangYuan/liw_oam) , the extrinsic is set as:
T_IMU_LIDAR = [[1, 0, 0, 0.112],
[0, 1, 0, 0.176],
[0, 0, 1, -0.247],
[0, 0, 0, 1]]
Thanks to your excellent work!
I believe that adding a feature to save point cloud maps as .PCD file would make it even more powerful and useful. Such a feature would enable users to conveniently save and manage point cloud data.
Thank you for your time and effort!
Why need to expand? This may be crush the system...
May I ask how this algorithm performs in high-speed motion (20m/s), what is its pose error, and is its accuracy sufficient...
作者您好,我在使用自己设备录制的操场数据包的时候,跑了大概100米左右整个建图突然发生了极大的漂移,我们使用的是外部的imu,你知道这是为什么吗?
enable_ahrs_initalization: Set true or false. If the IMU message has orientation channel, iG-LIO can be initialized via AHRS.
I didn't understand this, what orientation? is this about a 9 axis IMU?
Hi, I'm trying your code, but there are some problems.
[ERROR] [1704597406.254755494]: PluginlibFactory: The plugin for class 'autoware_rviz_debug/DecisionMakerPanel' failed to load. Error: According to the loaded plugin descriptions the class autoware_rviz_debug/DecisionMakerPanel with base class type rviz::Panel does not exist. Declared types are rviz_plugin_tutorials/Teleop
[rospack] Error: no package given
[librospack]: error while executing command
[rospack] Error: no package given
[librospack]: error while executing command
[ 37%] Building CXX object ig_lio/CMakeFiles/ig_lio_node.dir/src/pointcloud_preprocess.cpp.o
[ 37%] Building CXX object ig_lio/CMakeFiles/ig_lio_node.dir/src/lio.cpp.o
[ 37%] Building CXX object ig_lio/CMakeFiles/ig_lio_node.dir/src/faster_voxel_grid.cpp.o
[ 50%] Building CXX object ig_lio/CMakeFiles/ig_lio_node.dir/src/ig_lio_node.cpp.o
[ 62%] Building CXX object ig_lio/CMakeFiles/ig_lio_node.dir/src/voxel_map.cpp.o
[ 75%] Building CXX object ig_lio/CMakeFiles/ig_lio_node.dir/src/SymmetricEigenSolver.cpp.o
[ 87%] Building CXX object ig_lio/CMakeFiles/ig_lio_node.dir/src/timer.cpp.o
In file included from /home/edu/ig_lio/catkin_ws/src/ig_lio/src/voxel_map.cpp:1:0:
/home/edu/ig_lio/catkin_ws/src/ig_lio/include/ig_lio/voxel_map.h:10:10: fatal error: execution: No existe el archivo o el directorio
#include
^~~~~~~~~~~
compilation terminated.
ig_lio/CMakeFiles/ig_lio_node.dir/build.make:117: fallo en las instrucciones para el objetivo 'ig_lio/CMakeFiles/ig_lio_node.dir/src/voxel_map.cpp.o'
make[2]: *** [ig_lio/CMakeFiles/ig_lio_node.dir/src/voxel_map.cpp.o] Error 1
make[2]: *** Se espera a que terminen otras tareas....
In file included from /home/edu/ig_lio/catkin_ws/src/ig_lio/include/ig_lio/lio.h:30:0,
from /home/edu/ig_lio/catkin_ws/src/ig_lio/src/lio.cpp:1:
/home/edu/ig_lio/catkin_ws/src/ig_lio/include/ig_lio/voxel_map.h:10:10: fatal error: execution: No existe el archivo o el directorio
#include
^~~~~~~~~~~
compilation terminated.
ig_lio/CMakeFiles/ig_lio_node.dir/build.make:103: fallo en las instrucciones para el objetivo 'ig_lio/CMakeFiles/ig_lio_node.dir/src/lio.cpp.o'
make[2]: *** [ig_lio/CMakeFiles/ig_lio_node.dir/src/lio.cpp.o] Error 1
In file included from /home/edu/ig_lio/catkin_ws/src/ig_lio/include/ig_lio/lio.h:30:0,
from /home/edu/ig_lio/catkin_ws/src/ig_lio/src/ig_lio_node.cpp:16:
/home/edu/ig_lio/catkin_ws/src/ig_lio/include/ig_lio/voxel_map.h:10:10: fatal error: execution: No existe el archivo o el directorio
#include
^~~~~~~~~~~
compilation terminated.
ig_lio/CMakeFiles/ig_lio_node.dir/build.make:75: fallo en las instrucciones para el objetivo 'ig_lio/CMakeFiles/ig_lio_node.dir/src/ig_lio_node.cpp.o'
make[2]: *** [ig_lio/CMakeFiles/ig_lio_node.dir/src/ig_lio_node.cpp.o] Error 1
/home/edu/ig_lio/catkin_ws/src/ig_lio/src/pointcloud_preprocess.cpp: In member function ‘void PointCloudPreprocess::ProcessVelodyne(const ConstPtr&, pcl::PointCloudpcl::PointXYZINormal::Ptr&)’:
/home/edu/ig_lio/catkin_ws/src/ig_lio/src/pointcloud_preprocess.cpp:70:12: warning: variable ‘yaw_end’ set but not used [-Wunused-but-set-variable]
double yaw_end = yaw_first;
^~~~~~~
CMakeFiles/Makefile2:2628: fallo en las instrucciones para el objetivo 'ig_lio/CMakeFiles/ig_lio_node.dir/all'
make[1]: *** [ig_lio/CMakeFiles/ig_lio_node.dir/all] Error 2
Makefile:145: fallo en las instrucciones para el objetivo 'all'
make: *** [all] Error 2
Invoking "make -j8 -l8" failed
edu@edu-APB20:~/ig_lio/catkin_ws$
Figure 1 and 2 are the pcd I saved. It looks like many points are clustered into grids.
Figure3 is the screenshot of each frame from rviz2, I subscribe the /cloud_registered
and set Size(pixels)
to 5(default:1), I only managed to see the points after that. No matter which angle I rotate the lidar to, the number of points is always small and sparse.
In figure4, I set Size(pixels)
to 2, Decay Time
to 300, it can be seen that although it is a smooth wall, there are still some points that are particularly dense, while others are very sparse.
Lidar: livox mid360
Due to special requirements, I flipped the roll axis of the radar 180 degrees.
I run ig_lio_mapping.launch.py
, and it loaded livox.yaml
.
here is my params:
/**:
ros__parameters:
#for odom
odom/sendTF: true
#topic names
odom/lidar_topic: /livox/lidar #/points_raw
odom/imu_topic: /livox/imu #/imu_correct
odom/lidar_type: livox # livox velodyne ouster
#frames
odom/odom_frame: lio_odom
odom/robot_frame: base_link
odom/imu_frame: imu_link
odom/lidar_frame: livox_frame
odom/min_radius: 1.0
odom/max_radius: 150.0
odom/point_filter_num: 1
odom/time_scale: 1000.0 # nclt: 0.001 other: 1000.0
odom/enable_ahrs_initalization: false
odom/enable_acc_correct: true
odom/scan_resolution: 0.05
odom/voxel_map_resolution: 0.5
odom/max_iterations: 10
odom/acc_cov: 0.1
odom/gyr_cov: 0.1
odom/ba_cov: 0.000001 #0.000001
odom/bg_cov: 0.000001 #0.000001
odom/init_ori_cov: 0.0001
odom/init_pos_cov: 0.0001
odom/init_vel_cov: 100.0
odom/init_ba_cov: 0.0001
odom/init_bg_cov: 0.0001
odom/gravity: 9.80665
odom/gicp_constraints_gain: 100.0 #100.0
odom/point2plane_constraints_gain: 1000.0 #1000.0
odom/enable_undistort: true
odom/enable_outlier_rejection: true
#for extrinsics
extrinsics/imu2lidar/t: [0.011, -0.02329, 0.04412]
extrinsics/imu2lidar/r: [1.0, 0.0, 0.0,
0.0, 1.0, 0.0,
0.0, 0.0, 1.0 ]
extrinsics/robot2lidar/t: [0.0, 0.0, 0.0]
extrinsics/robot2lidar/r: [1.0, 0.0, 0.0,
0.0, 1.0, 0.0,
0.0, 0.0, 1.0 ]
extrinsics/robot2imu/t: [0.0, 0.0, 0.0]
extrinsics/robot2imu/r: [1.0, 0.0, 0.0,
0.0, 1.0, 0.0,
0.0, 0.0, 1.0 ]
#for map
map/save_map_path: /home/handshow/ig_lio/map #do not put / at the end of line
map/map_name: loc
map/map_frame: map # lio_odom
Thanks for sharing this amazing work, I am a beginner in this field. I can not figure out how to set the initial covariance metrix? Would you mind sharing your experience or learning experience? Thans a lot.
Good Wishes!
According to some of your commits and comments, you tried ig_lio on the HILTI SLAM challenge. Could you provide the config files you used? Thank you
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.