1
$\begingroup$

I studied about Sparse Extended Information Filter slam. I want to clarify some points regarding this topic. As per the sparse extended information(SEIIF) slam when the robot sees some landmarks it can update the information matrix according to it's position and landmarks number. Lets the robot at $x_t$ position and sees landmarks $m_1$ and $m_2$. So according to the algorithm it update rows and columns of $x_t$,$m_1$,$m_2$. Then it move and at $x_{t+1}$ position it sees landmark $m_3$ ,then it update rows and columns of $x_{t+1}$,$m_3$ and also there is a weak link between $m_1$ , $m_2$, $m_3$. At the $x_{t+1}$ position it discard previous position and the rows and columns corresponding to $x_t$.

Now my doubts is that what happened with the information matrix when the robot moving around to arena without observing any landmarks.Say, $x_1$ is the robot initial position then it go to the next position say, $x_2$ then as per the algorithm $x_1$ position will be discard. So if the robot only moving around without observing landmarks means only the 1st cell of information matrix say(0,0) is overwrite all the time. Then what is its effect on $\mu$?

The key formula on which the algorithm based is $\mu=\Omega^{-1}Xi$ where $\Omega$ represent information matrix and Xi represent information vector.

The algorithm taken from Probabilistic Robotics Chapter 12 page 315[pdf] and page 304[hard copy].

$\endgroup$
1
$\begingroup$

I'm not sure I fully understand the scope of your question - are you asking what happens if you don't have any landmarks?

SLAM is simultaneous localization and mapping. I don't think you can localize or map without any landmarks.

Table 12.2 gives:

$$ \bar{\mu}_t = \mu_{t-1} + F^T_x\delta \\ $$

which is just the previous $\mu$ plus the incremental position change from motion $\delta$; $F_x$ is a block identity matrix.

Table 12.5 updates/corrects the state estimates as you mentioned, but $\mu$ and $\Omega$ get build in Table 12.3, the $\rm{\textbf{Algorithm SEIF_measurement_update}}$. Specifically, line 3 says:

$$ \mbox{for all observed features } z^i_t= \left(r^i_t\ \ \phi^i_t\ \ s^i_t\right)^T \mbox{do} $$

This is a loop, so if there are no observed features then it doesn't execute the code inside, which means line 5 never happens:

$$ \mbox{if landmark } j \mbox{ never seen before} \\ $$

which consequently means that line 6 also never gets called, which is where the the $\mu$ gets built:

$$ \left(\begin{array}{ccc} \mu_{j,x} \\ \mu_{j,y} \\ \mu_{j,s} \end{array}\right) = \left(\begin{array}{ccc} \mu_{t,x} \\ \mu_{t,y} \\ s^i_t \end{array}\right) + r^i_t\left(\begin{array}{ccc} \cos\left(\phi^i_t + \mu{t,\theta}\right) \\ \sin\left(\phi^i_t + \mu{t,\theta}\right) \\ 0 \end{array}\right)\\ $$

Finally, since $H^i_t$ isn't preallocated or predefined, it also fails to be built on line 11 (I'm not rewriting that definition here). Since $H^i_t$ isn't built, $\Omega_t$ and $\xi$ fail to update (lines 13 and 14).

So, as mentioned at the top of the post, if you don't have any landmarks, $\mu$ never gets built, ever.

Also, if you don't currently see any landmarks, then the same loop that has the potential to build $\mu$ never runs and you cannot update $\mu$ (because $\xi$ and $\Omega$ don't get updated).

$\endgroup$
  • $\begingroup$ No I am not asking for no landmarks. I want to stated that let's think like that for 500 timestamp the robot moving around a arena but don't see any landmark. At 501 timestamp the robot 1st observed a landmark. In that case how could I proceed for 1st 500 time stamp? $\endgroup$ – Encipher Sep 12 '18 at 3:05

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.