0
$\begingroup$

I am writing a bachelor's diploma on vSLAM. I learned and programmed EKF-SLAM like it's written in MonoSLAM paper, and I was going to write, that I can't use KF and have to use EKF because of non-linearity of observation function, but wait, how is it possible, if everything is linear?!

I understand, that if I store direction of a camera in form of axis-angle vector or quaternion then there will be something non-linear, but what if I will store it directly as values of rotation matrix? Then my observation function is just going to be a multiplication of matrices, which is a linear operator, and therefore linear. Am I wrong?

$\endgroup$
2
1
$\begingroup$

Well in EKF SLAM, the underlying assumption is that all states are gaussian in nature and we can linearize the motion and observation models around the mean at each instant. This is done to write the equations in a form similar to what you see in the Kalman Filter.

Note: This linearization is just an approximation that we have made. It leads to error due to which nowadays we use other methods like Graph SLAM or particle filters.

Even if you represent the angles in form of a rotation matrix, the cosine and sine functions are non- linear in nature which we can't get rid of easily. The states contain angles and model is a function of states which is non- linear in nature.

You can store them in your state space however that just increases the dimension of your state space since instead of three euler angles, you now have 6 terms (cosine and sine value of each angle). This is really undesirable in nature as it unnecessarily increases the computation time of the over all algorithm (which is of the order $O(n^{2.4})$ in EKF SLAM.

$\endgroup$
2
  • $\begingroup$ The thing is, if I will use only rotation matrix to represent rotation, then I don't need sin and cos anymore, because rotation is linear in matrix form. I still think that I must be wrong somewhere, because it is too good to be true, but what else can be non-linear? $\endgroup$
    – Arqwer
    May 31 '17 at 18:26
  • $\begingroup$ I think your first paragraph succinctly answers the question. $\endgroup$
    – JSycamore
    Jun 1 '17 at 12:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.