I am trying to implement GraphSLAM from Sebastian Thrun's paper, The GraphSLAM Algorithm with Applications to Large-Scale Mapping of Urban Structures.

When I compute the inverse of my information matrix, $\Omega^{-1}$, I get an error, Matrix is Singular, because $\Omega$ is singular. How could I avoid matrix singularity when implementing GraphSLAM?

Please don't suggest me pinv() method it cannot give me actual answer.

I had considered using a pseudo-inverse, but, instead, I want to prevent $\Omega$ from becoming singular so that I can compute the exact inverse.

Below is where $\Omega$ is computed (see line 7), from Table 2. Calculation of and ξ in GraphSLAM:

Table 2. Calculation of  and ξ in GraphSLAM

  • $\begingroup$ It is a 3*3 matrix where diagonal elements are 0.001 and all other elements are zero. $\endgroup$
    – Encipher
    Commented Jul 25, 2018 at 17:28
  • $\begingroup$ I retracted my earlier comments. I saw $R_t^{-1}$ and assumed that that was the inverse matrix you were computing. You should update your post to include more details on the $\Omega^{-1}$ computation, because it is not performed in the given pseudo code. $\endgroup$
    – koverman47
    Commented Jul 25, 2018 at 20:20
  • $\begingroup$ I have only this pseudo code. This is the problem of this implementation. So that I am looking for help. $\endgroup$
    – Encipher
    Commented Jul 26, 2018 at 6:10
  • $\begingroup$ Is the code here the code that you are using? $\endgroup$
    – koverman47
    Commented Jul 26, 2018 at 14:44
  • 1
    $\begingroup$ If you don't want to use a pseudo-inverse, you can regularize $\Omega$ by adding $\Omega := \Omega + \epsilon I$ for some small $\epsilon > 0$. Also, looking at your first comment, if $\Omega$ is a diagonal with 0.001, then it should be invertible. $\endgroup$ Commented Oct 28, 2018 at 6:37

1 Answer 1


If $\Omega$ is singular, you cannot avoid a matrix singularity. This is like saying you want to solve the system of equations $$x = 1$$ $$x = 7$$

There are many techniques to avoid robotic singularities, but if the math represents a pose whereby a degree of freedom is lost in the mechanism, there is no way to get around a singular (and therefore non-invertible) matrix.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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