Comments (10)
Thanks @Pallav1299, I managed to combine the produced results with KITTI ground truth through TUM format. However, it seems that there is a clear misalignment issue. Have you experienced something similar?
from lio-sam.
There are still some unsolved problems in LIO-SAM when a loop is closed or a GPS measurement is received. Any inputs are welcome from the community.
from lio-sam.
@TixiaoShan, my use-case requires creating globally correct point cloud maps. I haven't read the code thoroughly. Can you please list down the issues with including GPS measurements and loop closure, so as to keep track of the required changes and improvements?
from lio-sam.
Initial misalignment causes the /lio_sam/mapping/path to drift away from /odometry/gps. Further, when GPS data should be added to the pose graph, there is sudden jump in the pose. Hence leading to imperfect global poses.
I am trying with the default params on the Kitti_raw_data "2011_10_03_drive_0042 (4.5 GB)" dataset while it doesn't have position covariance in the /gps/fix data. Am I doing something wrong here?
from lio-sam.
You should tune the function that adds GPS factor in mapOptimization.cpp carefully. KITTI dataset doesn't give GPS covariance, so you have to change the threshold to figure out the best settings. When a GPS factor is added, imuPreintegration will be reset and cause a loss of initial guess in updateInitialGuess(). If the vehicle is moving very fast, the scan-matching may fail. You can disable these lines to help this problem. But it's not perfect. I am still trying to figure out solving matching failure when a GPS factor is added.
from lio-sam.
-
I tried with the above mentioned changes. I noticed that at points where positionCovariance is greater than the threshold, most of the GPS values though being correct, are neglected due to being relatively old or new w.r.t the pointcloud timestamp. This leads to error accumulation.
Later when a new GPS factor is added, heavy ISAM optimization takes place on a large number of nodes. During this time the imuPreintegration gets reset.
I tried on the kitti dataset. Please correct me if I am wrong. -
I tried with and without GPS elevation integrated on KITTI dataset and tested with the ground truth data from Odometry sequences(I've less no. of keyposes so the data is scaled down, but the trend is almost same for X and Y axes)
-
Without using elevation from GPS, the Z axis has following results:
-
With GPS elevation, the following result is obtained for elevation in the final trajectory as compared to groundtruth :
Dotted line is ground truth
Should we use elevation from GPS or not?
from lio-sam.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
from lio-sam.
- I tried with the above mentioned changes. I noticed that at points where positionCovariance is greater than the threshold, most of the GPS values though being correct, are neglected due to being relatively old or new w.r.t the pointcloud timestamp. This leads to error accumulation.
Later when a new GPS factor is added, heavy ISAM optimization takes place on a large number of nodes. During this time the imuPreintegration gets reset.
I tried on the kitti dataset. Please correct me if I am wrong.- I tried with and without GPS elevation integrated on KITTI dataset and tested with the ground truth data from Odometry sequences(I've less no. of keyposes so the data is scaled down, but the trend is almost same for X and Y axes)
- Without using elevation from GPS, the Z axis has following results:
- With GPS elevation, the following result is obtained for elevation in the final trajectory as compared to groundtruth :
Dotted line is ground truth
Should we use elevation from GPS or not?
@Pallav1299 You mentioned that the number of keyframes was different from the KITTI's ground truth.
I actually have the same problem. Did you evaluate the results using tum format for the trajectories?
from lio-sam.
@polbolso I didn't try visualizing in TUM or EUROC formats using EVO. I used KITTI format data. With KITTI format you would have to maintain the same number of poses to evaluate relative and absolute pose errors. This issue is solved by using timestamps in TUM format if I am not wrong. I'd suggest converting KITTI format poses to TUM for evaluation
in EVO.
from lio-sam.
Thanks @Pallav1299, I managed to combine the produced results with KITTI ground truth through TUM format. However, it seems that there is a clear misalignment issue. Have you experienced something similar?
I experienced same issue. There is a difference between vehicle axis and yours. You need to change the x y z poses reference to KITTI vehicle setup.
from lio-sam.
Related Issues (20)
- Issue with running build script due to EIGEN HOT 1
- ERROR: cannot launch node of type [lio_sam/lio_sam_imuPreintegration]: Cannot locate node of type [lio_sam_imuPreintegration] in package [lio_sam]. Make sure file exists in package path and permission is set to executable (chmod +x) HOT 1
- I don't find the topic sub for GPS HOT 2
- Rooftop rosbag not working in ROS2 HOT 9
- Could not find a connection between 'lidar_link' and 'base_link' because they are not part of the same tree.Tf has two or more unconnected trees. HOT 2
- mid-70 can do it?
- catkin_make的问题
- [lio_sam_imuPreintegration-1] process has died [pid 12068, exit code -6 HOT 1
- 'gtsam::ValuesKeyDoesNotExist'
- cloudExtraction() of imageProjection.cpp typo?
- Point cloud timestamp not available, deskew function disabled, system will drift significantly! HOT 3
- Robust initialization
- Increase Point Cloud Density in SLAM Mapping with unitree GO2 EDU Bot HOT 5
- Large Map Closed Loop Issue HOT 3
- Unable to View Map in Rviz with Custom Rosbag Using Livox Horizon HOT 1
- "LIO-SAM mapping range"
- Gazebo Ignition recorded ros2 bag drift randomly HOT 1
- Config for NCLT HOT 1
- Accuracy with mid 360 for indoor tracking
- point cloud data and the corresponding pose for each frame
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lio-sam.