19 Oct

It took me a while to really understand the structure of the okvis SLAM system. In order to prevent from studying its structure all over again, it is better for me to put down what I understand so far. The main goal of this post is to bridge the gap between the theoretical understanding and the so...

12 Oct

I implemented the preintegration techniques from this paper. In order to implement the preintegration, the underlying optmization problem structure is also change. To be precise, previously, we optimize all the IMU data point, but now we only optimize the keyframe. The trajectory plot show t...

23 Sep

The SLAM frontend, in my definition, finds the features in the image and assigns the same landmark id to matched images. The overall SLAM performance relies on the quality of observation file provided by the frontend, as well as the optimization problem established by the backend. Frontend The...

10 Sep

Goal It is common to test and to compare algorithms on synthetic data. Some properties might be more noticeable when we can control the data generating process. In addition, it also helps debugging. Forster et al, IEEE Trans. on Robotics, 2017 Sjanic et al, IEEE Trans. on Aerospace and Elect...

10 Sep

For explicit-landmark optimization-based SLAM systems, the skeleton of SLAM backend can be considered as a nonlinear least-squares optimization problem, or \((\hat{s}_{1:n}, \hat{\lambda}) = {arg\,min}_{({s}_{1:n}, {\lambda})}\, \sum_{t=0}^{n-1} \| s_{t+1} - f(s_t, u_t) \|^2_{Q} + \sum_{t=1}^n \| o...

19 Aug

At first, I started with the okvis project to build my own BOEM SLAM. After spending several weeks understanding what is going on in that well-established project, I realized that there is not way to develop and to test on that project. What I need is to build a project with smaller scale that I can...

06 Aug

There are several existing visual-inertial SLAM implementations. Among all, I pick okvis as our development basis. However, the okvis project is too well-written with sophisticated implementation. There are also some building problem. In summary, it is pretty hard for us to develop, especially fro...

16 Jul

I wrote a 2D SLAM simulation on Python as a starting point. I implemented the nonlinear least squares (NLS) SLAM. To be specific, it is just to solve: \((\hat{s}_{1:n}, \hat{\lambda}) = {arg\,min}_{({s}_{1:n}, {\lambda})}\, \sum_{t=0}^{n-1} \| s_{t+1} - f(s_t, u_t) \|^2_{Q} + \sum_{t=1}^n \| o_t -...