13 Jan

Optimization-based SLAM From the pre-optimization (blue line) to the post-optimization (orange line), we can see that the optimization method enables the loop closure effect. The key improvement lies in the better computer vision techniques by discarding possibly erroneous keypoints. Also, the...

14 Dec

Previously, I finished the feature matching and id assignment in the SLAM frontend. Last week, I combine the result with the preintegrated IMU data to formulate an optimization problem. Initial values I initialize the landmark position by triangulate two frames. The selection of these two points...

07 Dec

okvis is a visual odometry. Therefore, the feature matching only occurs within short time window, and the feature matching that enables loop closure is not provided. The following is the overview as well as the result of the feature matching that I implemented. Keyframe selection This part relie...

30 Nov

After surveying several SLAM and visual odometry implementation, I decided to work on okvis with monocular camera setting. I will run an nonlinear optimization on the output of the visual odometry system, which can be regarded as global bundle adjustment with IMU constraints. The output of visua...

26 Oct

For 3D navigation systems, representing the orientation is always annoying. After going through several painful learning and debugging processes, I share some lessons that I learned. The quaterion parameterization There are several ways to represent a 3d orientation. In real system, everyone pre...

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...