GithubHelp home page GithubHelp logo

Why use two factor graph? about lio-sam HOT 11 CLOSED

tixiaoshan avatar tixiaoshan commented on July 28, 2024 1
Why use two factor graph?

from lio-sam.

Comments (11)

TixiaoShan avatar TixiaoShan commented on July 28, 2024 7

It hurts the performance a bit but can run in real-time. However, I didn't test that configuration on a large-scale dataset, which will produce a large graph.

The accuracy heavily depends on the parameters - all the noise settings. Depend on your settings, the optimization may trust IMU pre-integration or lidar odometry more. So the system becomes quite sensitive. By separating them into two different files, the system becomes much more stable.

from lio-sam.

TixiaoShan avatar TixiaoShan commented on July 28, 2024 1

Won't the iterative optimization slowly converge to a satisfied precision, which relies not that much on the initial value? Will they finally get diverged result?
Imagine you give an initial guess that is completely upside down, optimization will converge to a local optimal pose rather than a global one.
And imu data will provide a better initial than consecutive odometry used before, right?
If the IMU is very good with low bias and noise, the initial should be similar or better than the consecutive odometry. The consecutive odometry is still an optimization process. So its performance is effected by initial guess, number of itertation, and number of features.

from lio-sam.

TixiaoShan avatar TixiaoShan commented on July 28, 2024

Q1. Right
Q2. I removed those constraints for faster optimization.
Q3. Your statement is correct.

from lio-sam.

xieqi1 avatar xieqi1 commented on July 28, 2024

@TixiaoShan Thank you for your answer. I want to have a further discussion about Q2 ~
If you joint optimize imu preintegration factor can the system run in real time? and how accuarcy of the system will improve?

from lio-sam.

xieqi1 avatar xieqi1 commented on July 28, 2024

@TixiaoShan Sounds cool ! From my point of view ,this "loose coupling" system may be more robust and reliable.
And compared with LOAM or LEGO-LOAM, a good initial estimate of odometry provided by imu preintegration make the map optimization more accuracy. So is the intital estimate play very important role in this system base on LOAM?

from lio-sam.

TixiaoShan avatar TixiaoShan commented on July 28, 2024

Yes, initial guess is the key to scan-matching.

from lio-sam.

YangSiri avatar YangSiri commented on July 28, 2024

So, @TixiaoShan

what exactly do The nosie settings rely on? Any experience or advice on this? Thank you very much!

from lio-sam.

TixiaoShan avatar TixiaoShan commented on July 28, 2024

@YangSiri
Depending on the IMU, I hand-tuned those parameters to get the best performance. If the parameter is very off, you may see the robot path becomes choppy.

from lio-sam.

YangSiri avatar YangSiri commented on July 28, 2024

Thank you, @TixiaoShan

I guess it is a tricky problem like in DL. I notice you mention that the initial guess provided for scan-to-map matching is very important. Won't the iterative optimization slowly converge to a satisfied precision, which relies not that much on the initial value? Will they finally get diverged result? And imu data will provide a better initial than consecutive odometry used before, right?

from lio-sam.

YangSiri avatar YangSiri commented on July 28, 2024

Yes, I get that. Thank you for your generous reply.

from lio-sam.

ZuoJiaxing avatar ZuoJiaxing commented on July 28, 2024

Thanks for your detailed description. It looks like the covariances of the IMU factors and scan matching are very important in the factor graph optimization.

from lio-sam.

Related Issues (20)

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.