# On Sharing Spatial Data with Uncertainty Integration Amongst Multiple Robots Having Different Maps
## 4 Obstacle Removal and Update in T-Node Map
### Integrating Uncertainty in Confidence Decay Mechanism  
Uncertainty in obstacle's position affects the rate of confidence decay. If there is a large uncertainty in obstacle's spatial position, the threshold time \(t_{th}\) is reduced by an uncertainty factor. In case of no uncertainty, Equations (1)-(4) are used. In SLAM, the obstacle's uncertainty in state is generally represented by the covariance matrix (\(\Sigma_{t}\)),  
\[\Sigma_{t}= \begin{bmatrix}\sigma_{x}^{2}&\sigma_{xy}&\sigma_{x\theta}\\ \sigma_{xy}&\sigma_{y}^{2}&\sigma_{y\theta}\\ \sigma_{x\theta}&\sigma_{y\theta}&\sigma_{\theta}^{2}\end{bmatrix}  \tag{5}\]  
If the uncertainty given by \(\Sigma_{t}\) is large, the confidence falls down faster and vice-versa. Hence, the confidence decay is modeled as,  
\[\text{Confidence decay}\propto\frac{1}{\text{Uncertainty given by }\Sigma_{t}}. \tag{6}\]  
The eigenvalues (\(\lambda_{1},\cdots\)\(\lambda_{n}\)) and eigenvectors (\(\vec{v}_{1},\cdots\)\(\vec{v}_{n}\)) of the matrix \(\Sigma_{t}\) denotes the magnitude of the variance. Two largest eigenvalues \(\lambda_{1}\) and \(\lambda_{2}\) control the decay of confidence. The threshold time after uncertainty integration \(t_{th}^{{}^{\prime}}\) is given as,  
\[t_{th}^{{}^{\prime}}=t_{th}-\frac{\Psi}{\sqrt{\lambda_{1}^{2}+\lambda_{2}^{2} }}, \tag{7}\]  
Figure 7: Obstacle confidence decay function. \(c_{th}=0.55\), \(t_{z}=600\) s. Effects of uncertainty are not considered and \(\text{Ufactor}=0\). where, \(\Psi\) is a controlling factor. The new confidence \(c^{{}^{\prime}}\) is given as,  
\[ \begin{split} c^{{}^{\prime}}&=1-\left(\frac{t_{th}^{ \prime}}{t_{z}}\right)^{n}\\ &=1-\left(\frac{t_{th}-\frac{\Psi}{\sqrt{\lambda_{1}^{2}+\lambda_ {2}^{2}}}}{t_{z}}\right)^{n}\\ &=t_{z}^{-n}\left(\lambda_{1}^{2}+\lambda_{2}^{2}\right)^{\frac{ -n}{2}}\left[t_{z}^{n}\left(\lambda_{1}^{2}+\lambda_{2}^{2}\right)^{\frac{n}{ 2}}-\left\{t_{th}\left(\lambda_{1}^{2}+\lambda_{2}^{2}\right)^{\frac{1}{2}}- \Psi\right\}^{n}\right].\end{split}  \tag{8}\]  
The degree of the curve is given as,  
\[ \begin{split} n^{{}^{\prime}}&=\frac{\log(1-c_{th}^{{} ^{\prime}})}{\log\left(\frac{t_{th}^{{}^{\prime}}}{t_{z}}\right)},\\ \implies n^{{}^{\prime}}&=\frac{\log\left(1-t_{z}^{-n }\left(\lambda_{1}^{2}+\lambda_{2}^{2}\right)^{-\frac{n}{2}}\left[t_{z}^{n} \left(\lambda_{1}^{2}+\lambda_{2}^{2}\right)^{\frac{n}{2}}-\left\{t_{th} \left(\lambda_{1}^{2}+\lambda_{2}^{2}\right)^{\frac{1}{2}}-\Psi\right\}^{n} \right]\right)}{\log\left(t_{th}\left(\lambda_{1}^{2}+\lambda_{2}^{2}\right)^{ \frac{1}{2}}-\Psi\right)-\log\left(t_{z}\left(\lambda_{1}^{2}+\lambda_{2}^{2} \right)^{\frac{1}{2}}\right)}.\end{split}  \tag{9}\]  
Figure 8 shows the results of integrating the spatial uncertainty in the obstacle confidence decay time for various values \(c_{th}=0.55\), \(t_{z}=600\) s and different values of the uncertainty factory (Ufactor). In Figure 8, Ufactor represents,  
\[\text{Ufactor}=\frac{\Psi}{\sqrt{\lambda_{1}^{2}+\lambda_{2}^{2}}}, \tag{10}\]  
where, values \(\lambda_{1}\) and \(\lambda_{2}\) capture the amount of estimated uncertainty. In Figure 8, Ufactor is given as a factor of threshold time. It can be seen that for more uncertainty, the curve starts to fall faster to the threshold time. Appropriate values of Ufactor can be chosen depending on different scenarios. Moreover, this value can also be changed dynamically. The obstacle confidence decay mechanism ensures a smooth robot operation in multi-robot system where multiple robots frequently inform each other about the new obstacle information. If a robot receives an obstacle information update from another robot while it is navigating towards its goal location, then it would have to stop and update its map information which consumes time and computation. To avoid this, a check is performed to see if the information received affects the current navigation towards the goal. This is easily achieved by checking the blocked flag of the corresponding edge.