Comments (7)
I read the code as of commit 8b78958, and I think the data flow is like this (correct me if I'm wrong, which is very likely):
- The VIO publishes odom as topic
"/vins/odometry/imu_propagate_ros"
in visualization.cpp#L25. - And it is subcribed only in imageProjection.cpp#L93 of the LIO module, which collects the subscribed data in
odometryHandler()
, and it further deskews the laser scans and publishes a self-defined cloud msg calledcloudInfo
embedded with the odom information in the same file. - In mapOptmization.cpp#L833 the odom in the cloud is read to produce
transFinal
, which is an initial guess of the pose. The pose parameters are copied intotransformTobeMapped[6]
and updated in scan-map optimization in LMOptimization(). - The pose parameters
transformTobeMapped[6]
are added into isam2 graph as a "to pose" of a between factor in addOdomFactor().
So in summary, the function addOdomFactor()
adds a single odometry factor calculated from l, v and i sensors, instead of 3 independent factors as depicted in the paper.
from lvi-sam.
i agree this comment, if VINS-MONO breaks down, LVI-SAM doesn't produce good results
from lvi-sam.
Really? Only the laser odometry and IMU are used in the code?
from lvi-sam.
@lewisjiang You're right. Only LIO is being added as a factor. The VIO is only used as an initial guess for the LIO. The VIO replaces only the initial guess of the LIO in the LIO-SAM and does not perform any other role.
from lvi-sam.
After reading your paper and code, thank you very much for your work. But I have the following questions:
- The laser odometry only uses the result of the visual odometry as the initial optimization value. This should be loosely coupled.
- Compared with LIO-SAM, LVI-SAM only uses the result of the visual odometry as the initial value of scanning matching, and does not improve the laser odometry. Can the performance of the LVI-SAM really be significantly improved?
- The results of laser odometry, visual odometry, and IMU pre-integration are used in the paper to perform factor graph optimization. But only the results of the laser odometry and IMU are used in the code. The laser odometry has higher estimation accuracy than the visual odometry, so adding the result of the visual odometry to the factor graph will reduce the optimization accuracy, right?
- I think the author mentions it's tightly coupled because when VIO is not initialized, VIO system gets the IMU bias and state from the LIO.
- Yeah, it's hard to believe that there's a performance improvement, but I am trying to run LVI-SAM on real dataset and it's not working well when VINS fails to find enough features
- Maybe, Ceres gives the optimized VIO from biases and state from LIO (only initially) and LIO system uses that optimized VIO result as initial to optimize once again via iSAM2. So, it's kinda using both VIO and LIO in the factor graph asynchronously. I am curious whether there's a better way to integrate all into one solver.
from lvi-sam.
Based on the paper:
If the VIS reports failure, we then switch to IMU measurements for the initial guess.
The failure of VINS should not lead to the bad result? Since in such case, the LVI-SAM should turn into LIO-SAM?
from lvi-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 lvi-sam.
Related Issues (20)
- <!----- IMU Noise Params -----> HOT 3
- RVIZ map generation vs position topics HOT 2
- Question about Lidar-Inertial System Fail detection HOT 2
- calibration of fisheye and Lidar HOT 3
- What's the configures for the dataset named "jackal.bag"
- Can i run with KInect2. HOT 1
- difference between code and article HOT 4
- Moving Objects in SLAM Output HOT 2
- how to use gpu in lvi-sam? HOT 1
- How to use lvi-sam under ros2 HOT 1
- The problem involves loop_ detction HOT 1
- how to get the groundtruth in handheld dataset? HOT 3
- Clarity on Licensing HOT 2
- double free or corruption (out) [lvi_sam_mapOptmization-7] process has died [pid 467885, exit code -6, cmd /home/lho/slam_ws/devel/lib/lvi_sam/lvi_sam_mapOptmization __name:=lvi_sam_mapOptmization __log:=/home/lho/.ros/log/8d344714-13d5-11ee-85bb-ef38d9fcd78e/lvi_sam_mapOptmization-7.log]. log file: /home/lho/.ros/log/8d344714-13d5-11ee-85bb-ef38d9fcd78e/lvi_sam_mapOptmization-7*.log
- Failed to find Ceres - Missing required Ceres dependency: glog. Searched using GLOG_INCLUDE_DIR_HINTS: /usr/include and glog_DIR: . HOT 1
- The imu parameters in params_camera.yaml
- visual feature error
- [lvi_sam_visual_loop-10] process has died [pid 20463, exit code -11, cmd /home/feng/catkin_ws/devel/lib/lvi_sam/lvi_sam_visual_loop __name:=lvi_sam_visual_loop __log:=/home/feng/.ros/log/2976aef8-0054-11ef-8c59-024220373388/lvi_sam_visual_loop-10.log]. log file: /home/feng/.ros/log/2976aef8-0054-11ef-8c59-024220373388/lvi_sam_visual_loop-10*.log
- Feature extraction evaluation
- LVI-SAM+Scan Context
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 lvi-sam.