Comments (7)
RKD-SLAM does not do local BA actually. The global BA only changes the local map in most cases and it is fast enough so we don't need an explict local BA. However for visual-inertial SLAM, local BA is necessary because velocity must be recovered for each frame rather than just keyframes, and the accumulating error must be reduced as soon as possible.
from ice-ba.
To my knowledge,visual-inertial SLAM also could realize Efficient Incremental BA as RKD-SLAM do. but u discard the method because of time-costing. in ICE-BA , imu's pre-integration make optimizer add velocity, accel zero-bias, gyro zero-bias which increase burden,so do local BA to recover velocity and do global BA to remove accumulating error when loop closed. it's right?
from ice-ba.
Not exactly. I don't discard the method as RKD-SLAM do. Global BA performs in a very similar way as RKD-SLAM, and the additional velocity and bias do not increase much time. The problem is, 1) global BA only optimizes keyframes, 2) the optimization time increases with the number of keyframes. Visual-inertial SLAM need pose and velocity to be recovered for each current frame in realtime. Only the constant time local BA can meet this requirement.
from ice-ba.
I got it. for realtime, need to choose local BA. but when keyframe's pose optimized is enough accuracy, whether it's ok to use imu's measurement to predict the current frame's pose and velocity(also inertial navigation system). After all INS's motion model is highly accurate within a short time if the initial state(pose,velocity) is ok.
from ice-ba.
Yes. But still the runtime of global keeps increasing. Also if keyframe is chosen based on covisibility, the latest keyframe may be temporally far away from current frame.
from ice-ba.
"The problem is, 1) global BA only optimizes keyframes, 2) the optimization time increases with the number of keyframes. Visual-inertial SLAM need pose and velocity to be recovered for each current frame in realtime. Only the constant time local BA can meet this requirement."
@liuhaomin you means if we want to test visual-inertial SLAM, global BA should be discarded because of it's increasing time with keyframes number increasing? or whether we can keep the keyframes number constant like local frame?
from ice-ba.
No need to discard it. It is running in background thread so would not affect the realtime performance.
from ice-ba.
Related Issues (20)
- After successful compilation, it cannot run. I use opencv3.3.0
- ISAM2 backend implementation.
- set parameters constant
- An error when implemented with my own images and imu data in stereo mode HOT 1
- Math bug in EigenMatrix3x3f variant of GetRodriguesJacobianInverse HOT 1
- Fixed KeyFrame in Local BA?
- how to export trajectory form tango phab 2 ?
- realtime running HOT 2
- Running with different SLAM algorithms HOT 1
- Why Embedded Point Iteration dosen't work?
- how to run ice-ba
- recompile with -fPIC HOT 1
- Clarification regarding feature depth updates
- similarities with a recent bundle adjustement procedure
- Convert to asl timestamp error
- How to integrate ICE-BA with other frontends HOT 6
- Can it run on an embedded platform?
- mistake in project?
- Evalutation Scripts, RMSE 0% on all sequences, trajectory file consists only of small number of frames HOT 1
- ../bin/ice_ba: symbol lookup error: ../bin/ice_ba: undefined symbol: _ZN6google21kLogSiteUninitializedE
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 ice-ba.