# Estimation of Visual Maps with a Robot Network Equipped with Vision Sensors

^{*}

## Abstract

**:**

## 1. Introduction

## 2. Related Work

- Distributed solutions: in this case each robot builds an independent local map using its own observations. Commonly, at a later step, the individual maps are referred to a global reference frame and fusion of the maps is carried out to build a common map.
- Centralized solutions: the estimation of the trajectories of the robots and the construction of the map are made by a centralized agent in the system. Normally, this agent receives the observations of all the robots in order to compute a single coherent map.

^{2}particle filters must be maintained for a team of K robots.

## 3. 3D Visual SLAM for a Team of Mobile Robots

_{t}. The observation consists of two parts, o

_{t}= (z

_{t}, d

_{t}), where z

_{t}= (X

_{c}, Y

_{c}, Z

_{c}) is a three dimensional distance vector relative to the left camera reference frame and d

_{t}is the visual descriptor associated to the landmark. The map L is represented by a collection of N landmarks L = {l

_{1}, l

_{2}, ..., l

_{N}}. Each landmark is described as: l

_{k}= {μ

_{k}, ∑

_{k}, d

_{k}}, where μ

_{k}= (X

_{k}, Y

_{k}, Z

_{k}) is the mean vector that describes the 3D position of the landmark k in coordinates of a global reference frame. The mean vector is associated with the covariance matrix ∑

_{k}that describes the uncertainty in the position of the landmark. Also, the landmark l

_{k}is associated with a descriptor d

_{k}that was computed using the visual appearance of the point in the space.

_{t}and the movement of the robot at time t as u

_{t}. On the other hand, the robot path until t is referred as x

_{1:t}= {x

_{1}, x

_{2}, . . . , x

_{t}}, the set of observations made by the robot until time t will be designated z

_{1:t}= {z

_{1}, z

_{2}, . . . , z

_{t}} and the set of actions u

_{1:t}= {u

_{1}, u

_{2}, . . . , u

_{t}}. The SLAM problem tries to determine the location of every landmark in the map L and robot path x

_{1:t}using a set of sensor measurements z

_{1:t}and considering that the robot performed the movements u

_{1:t}. Thus, the SLAM problem attempts to estimate the following probability function defined over the map and path:

_{1:t}designates the set of data associations performed until time t, c

_{1:t}= {c

_{1}, c

_{2}, . . . , c

_{t}}. The data association is represented with the variable c

_{t}and can be explained in the following manner: while the robot explores the map, it has to decide whether the observation o

_{t}= (z

_{t}, d

_{t}) corresponds to a landmark observed before or it is a new one. Considering that, at time t, the map is formed by N landmarks, this correspondence is represented by c

_{t}, where c

_{t}∈ [1 . . . N]. The notation z

_{t,ct}means that the measurement z

_{t}corresponds to the landmark c

_{t}in the map. If none of the landmarks in the map until the moment correspond to the current measurement, we indicate it as c

_{t}= N + 1, since a new landmark is added to the map. For the moment, we consider this correspondence as known. In Section 5 we present an algorithm to compute the data association using the data provided by the vision sensors.

_{1:t}and the map L, given the observations z

_{1:t}, movements u

_{1:t}and data associations c

_{1:t}can be separated into two parts: the estimation of the probability over robot paths p(x

_{1:t}|z

_{1:t}, u

_{1:t}, c

_{1:t}), and the product of N independent estimators p(l

_{k}|x

_{1:t}, z

_{1:t}, u

_{1:t}, c

_{1:t}) over landmark positions, each conditioned to the path estimate . The first part p(x

_{1:t}|z

_{1:t}, u

_{1:t}, c

_{1:t}) is approximated using a set of M particles. Each particle stores N independent landmark estimations implemented as EKFs. Thus, we define each particle as:

_{k}conditioned to the path of the particle m and the observations until time t. On the other hand, ${\mathrm{\Sigma}}_{t,k}^{\left[m\right]}$ refers to the covariance matrix associated to the uncertainty in the position. Finally, ${d}_{j}^{\left[m\right]}$ represents the visual descriptor associated to the landmark j. When a landmark is first sensed and initialized in the map a visual descriptor is computed in base of the image information nearby the projected point.

_{t−1}at time t−1 and the robot control u

_{t}. This, process represents the increase in uncertainty when the robot carries out a movement using the probability function p(x

_{t}|x

_{t−1}, u

_{t}). The estimation process follows a prediction and update fashion, as described in [22]. Each particle is assigned a weight that accounts for the probability of the estimated map and path.

_{t,〈i〉}and uses its vision sensor to obtain the observation o

_{t,〈i〉}= {z

_{t,〈i〉}, d

_{t,〈i〉}}, where, again z

_{t,〈i〉}is a relative measurement distance from the location of the robot to the observed landmark. Also, d

_{t,〈i〉}denotes the visual descriptor associated with the landmark. The trajectory that the robot 〈i〉 followed until time t will be referred as x

_{1:t,〈i〉}= {x

_{1,〈i〉}, x

_{2,〈i〉}, . . . , x

_{t,〈i〉}}.

_{1:t,〈1:K〉}= {x

_{1:t,〈1〉}, x

_{1:t,〈2〉}, . . . , x

_{1:t,〈K〉}} will represent all the trajectories of the robots until time t. In addition, u

_{1:t,〈1:K〉}= {u

_{1:t,〈1〉}, u

_{1:t,〈2〉}, . . . , u

_{1:t,〈K〉}} denotes the movements performed by the robots and the observations will be referred as z

_{1:t,〈1:K〉}= {z

_{1:t,〈1〉}, z

_{1:t,〈2〉}, . . . , z

_{1:t,〈K〉}}. In a similar way to the case where a single robot explores the environment, we express the data association with the variable c

_{t}, which indicates that the observation z

_{t,〈i〉}was produced when the robot observed the landmark c

_{t}of the map. It is important to highlight that we propose to estimate a single map common to all the robots, thus each observation will have a correspondence to a landmark in the map with independence of the robot that observed it. At each time step, the robot obtains an observation and computes the data association. We refer to the set of data associations until time t as c

_{1:t}= {c

_{1}, c

_{2}, . . . , c

_{t}}.

_{1:t,〈1:K〉}and the map L, considering that the robots have performed a number of movements u

_{1:t,〈1:K〉}and observations z

_{1:t,〈1:K〉}with data association c

_{1:t}in the map. Equation (4) is analogous to Equation (2) and indicates that the estimation of the map and the K trajectories can be separated into two parts: the first function p(x

_{1:t,〈1:K〉}|z

_{1:t,〈1:K〉}, u

_{1:t,〈1:K〉}, c

_{1:t}) suggests the estimation of the robot trajectories, conditioned to all the measurements, movements and data associations, whereas the map is estimated using N independent estimations conditioned to the paths x

_{1:t,〈1:K〉}. In consequence, Equation (4) divides the SLAM problem in two different parts: the localization of K robots in the map and a number of independent landmark estimations, each one conditioned to the trajectories x

_{1:t,〈1:K〉}of all the robots. The estimation of both parts is carried out by means of a particle filter. Each of the M particles is associated with a map L, formed by N independent estimations for each of the landmarks. The computation of each landmark position is implemented by means of an Extended Kalman Filter (EKF). In our case, each of the Kalman Filters will be conditioned to the K paths of the robot team. Each particle in the filter is represented as:

_{t,〈1:K〉}= {x

_{t,〈1〉}, x

_{t,〈2〉}, ⋯,x

_{t,〈K〉}}. To sum up, the algorithm proposes the estimation of a path state of dimension 3K using jointly the information provided by all the sensors in the robot network. In order to clarify, Table 1 presents the structure of the particle defined in (5).

- New particles generation (Section 3.1).
- Updating each landmark with new sensor measurements (Section 3.2).
- Compute a weight for each particle (Section 3.3).
- Resampling based on the weight (Section 3.4).

#### 3.1. New Particles Generation

_{t}represents the possible locations of the robot in the environment. When the robot moves, the uncertainty grows, and this fact is translated in a wider spread of the particles associated to each robot. In order to do this, we generate a new set of hypotheses S

_{t}based on the previous set S

_{t−1}by adding some noise according to a probabilistic motion model p(x

_{t}|x

_{t−1}, u

_{t}). We compute a new pose ${x}_{t,\langle i\rangle}^{\left[m\right]}$ for each one of the robots independently using the motion model, by applying the movement model to each of the K poses of the particle separately using u

_{t,〈i〉}, the movement performed by the robot 〈i〉.

#### 3.2. Updating Each Landmark with New Sensor Measurements

_{t,〈i〉}= {z

_{t,〈i〉}, d

_{t,〈i〉}}. For the moment we assume that this measurement belongs to the landmark c

_{t}. Later, in Section 5 we deal with this problem in more detail.

_{k}is performed independently, using the standard EKF equations:

_{t,〈i〉}the prediction for the current sensor measurement z

_{t,〈i〉}that assumes that it has been associated with the landmark c

_{t}in the map. The observation model g(x

_{t}, l

_{ct}) is linearly approximated by the Jacobian matrix G

_{lct}, considering that the noise in the sensor is Gaussian and can be represented with the covariance matrix R

_{t}. Next, Equation (10) updates the prior estimate ${\mu}_{{c}_{t},t-1}^{\left[m\right]}$ of the landmark using the difference between the current and predicted observation v = (z

_{t,〈i〉}− ẑ

_{t,〈i〉}). Following, Equation (11) represents the updated covariance matrix ${\mathrm{\Sigma}}_{{c}_{t,}t}^{\left[m\right]}$, that defines the uncertainty in the landmark c

_{t}associated to the particle m. In this case the covariance matrix is of dimensions 3 × 3, since ${\mu}_{{c}_{t},t-1}^{\left[m\right]}$ is a three dimensional vector representing the 3D position of the landmark c

_{t}.

_{t}associated with the noise in the sensor. In our case, we consider the equations of a standard stereo pair of cameras, assuming pin-hole cameras and parallel optical axes of both cameras. In a standard stereo pair of cameras, we can compute the 3D coordinates of a point in space relative to the left camera reference system as:

_{x}and C

_{y}refer to the intersection of the optical axis with the image plane in both cameras. Also, the parameter f is the focal distance of the cameras. Given that we assume an error in the estimation of the projected points (r, c), we can compute the propagation of this error to the relative measurement (X

_{r}, Y

_{r}, Z

_{r}), assuming a first order linear error propagation law. In consequence, the covariance matrix R

_{t}associated to z

_{t,〈i〉}= (X

_{r}, Y

_{r}, Z

_{r}) can be computed as: R

_{t}= JR

_{sp}J

^{T}, where J = ▿

_{r,c,d}z

_{t,〈i,i〉}is the Jacobian matrix and R

_{sp}is the error matrix associated with the errors in the computation of d, r and c. We assume typical errors in cameras that take into account the uncertainty in the camera calibration parameters: σ

_{d}= 1 pixel, σ

_{r}= σ

_{c}= 10 pixel. Thus ${R}_{\mathit{sp}}=\mathit{diag}\left({\sigma}_{d}^{2},{\sigma}_{r}^{2},{\sigma}_{c}^{2}\right)$. This model has been previously used in a visual SLAM context in [24].

#### 3.3. Compute a Weight for Each Particle

_{t}by choosing particles from the set S

_{t−1}. In the case of K robots, and considering that each one obtains a single measurement from its sensor z

_{t,〈i〉}with data association c

_{t}, the weight ${\omega}_{t,\langle i\rangle}^{\left[m\right]}$ associated with the particle m and the robot 〈i〉 is computed as:

_{t,〈i〉}={ω

_{t,〈1〉}⋯ ω

_{t,〈K〉}}. In order to estimate the joint probability over the robot paths, the total weight associated to the particle ${S}_{t}^{\left[m\right]}$ is calculated by the product of the prior K weights: ${\omega}_{t}^{\left[m\right]}={\prod}_{i=1}^{K}{\omega}_{t,\langle i\rangle}^{\left[m\right]}$. Finally, the weights are normalized to approximate a probability density function, so that ${\mathrm{\Sigma}}_{i=1}^{M}{\omega}_{t}^{\left[i\right]}=1$.

#### 3.4. Resampling Based on the Weight

_{t−1}will be included in the set S

_{t}or not with probability proportional to its weight ${\omega}_{t}^{\left[m\right]}$. If the weight assigned to the particle is high, the particle will be included in S

_{t}with high probability. Often, particles with low weight are discarded and are not integrated in S

_{t}. After resampling, the resulting particle set S

_{t}is distributed according to p(x

_{1:t,〈1:K〉}, L|z

_{1:t,〈1:K〉}, u

_{1:t,〈1:K〉}, c

_{1:t,〈1:K〉}).

#### 3.5. Path and Map Estimation

## 4. Visual Landmarks

1: S = ∅ |

2: [Image_{t,〈1〉}, Image_{t,〈2〉}, Image_{t,〈3〉}] = AcquireImages () |

3: [o_{t,〈1〉}, o_{t,〈2〉}, o_{t,〈3〉}] = ObtainObservations(Image_{t,〈1〉}, Image_{t,〈2〉}, Image_{t,〈3〉}) |

4: InitialiseMap(S, x_{0,〈1:3〉}, o_{t,〈1:3〉}) |

5: for t = 1 to numMovements do |

6: [Image_{t,〈1〉}, Image_{t,〈2〉}, Image_{t,〈3〉}] = AcquireImages () |

7: [o_{t,〈1〉}, o_{t,〈2〉}, o_{t,〈3〉}] = ObtainObservations(Image_{t,〈1〉}, Image_{t,〈2〉}, Image_{t,〈3〉}) |

8: [S, ω_{t,〈1〉}] = MRSLAM(S, o_{t,〈1〉}, R_{t}, u_{t,〈1〉}) |

9: [S, ω_{t,〈2〉}] = MRSLAM(S, o_{t,〈2〉}, R_{t}, u_{t,〈2〉}) |

10: [S, ω_{t,〈3〉}] = MRSLAM(S, o_{t,〈3〉}, R_{t}, u_{t,〈3〉}) |

11: ω_{t} = ω_{t,〈1〉}ω_{t,〈2〉}ω_{t,〈3〉} |

12: [Neff] = ComputeNeff(ω_{t}) |

13: if Neff < 0.5 // resample when the number of effective particles is low? then |

14: S = ImportanceResampling(S, ω_{t}) // Sample randomly from S |

15: end if |

16: end for |

function [S_{t}] = MRSLAM(S_{t−1}, o_{t,〈i〉}, R_{t}, u_{t,〈i〉}) |

17: S_{t} = ∅ |

18: for m = 1 to M {repeat for every particle} do |

19:
$\left[{x}_{t,\langle i\rangle}^{\left[m\right]}\right]=\text{GenerateNewparticeWithNoise}\left({x}_{t-1,\langle i\rangle},{u}_{t,\langle i\rangle}\right)$// generate a new particle using the movement model p(x_{t,〈i〉}|x_{t−1,〈i〉}, u_{t,〈i〉}) |

20: for$n=1\hspace{0.17em}\text{to\hspace{0.17em}}{N}_{t-1}^{\left[m\right]}$ // find data associations do |

21: ${\widehat{z}}_{t,\langle i\rangle}=g\left({x}_{t,\langle i\rangle}^{\left[m\right]},{\mu}_{n,t-1}^{\left[m\right]}\right)$ |

22: ${G}_{{l}_{n}}={\nabla}_{{l}_{{c}_{t}}}g{\left({x}_{t},{l}_{n}\right)}_{{x}_{t,\langle i\rangle}={x}_{t,\langle i\rangle}^{\left[m\right]};{l}_{{c}_{t}}={\mu}_{{c}_{t,}t-1}^{\left[m\right]}}$ |

23: ${Z}_{n,t}={G}_{{l}_{n}}{\mathrm{\Sigma}}_{n,t-1}^{\left[m\right]}{G}_{{l}_{n}}^{T}+{R}_{t}$ |

24: D(n) = (z_{t,〈i〉} − ẑ_{t,〈i〉})^{T} [Z_{n,t}]^{−}^{1}(z_{t,〈i〉} − ẑ_{t,〈i〉}) |

25: E(n) = (d_{t,〈i〉} − d_{n})^{T} (d_{t,〈i〉} − d_{n}) |

26: end for |

27: $D\left({N}_{t-1}^{\left[m\right]}+1\right)={D}_{0}$ |

28: j = find(D ≤ D_{0}) {Find candidates below D_{0}} |

29: c_{t} = argmin_{j} E(j) {Find minimum among candidates} |

30: if E(c_{t}) > E_{0} // Is this a new landmark? then |

31: ${c}_{t}={N}_{t-1}^{\left[m\right]}+1$ |

32: end if |

33: if${c}_{t}={N}_{t-1}^{\left[m\right]}+1$ / / New landmark then |

34: ${N}_{t}^{\left[m\right]}={N}_{t-1}^{\left[m\right]}+1$ |

35: ${\mu}_{{c}_{t},t}^{\left[m\right]}={g}^{-1}\left({x}_{t,\langle i\rangle}^{\left[m\right]},{z}_{t,\langle i\rangle}\right)$ |

36: ${\mathrm{\Sigma}}_{{c}_{t},t}^{\left[m\right]}={G}_{{l}_{{c}_{t}}}^{T}{R}_{t}^{-1}{G}_{{l}_{{c}_{t}}}$ |

37: ${\omega}_{t}^{\left[m\right]}={p}_{0}$ |

38: else |

39: ${N}_{t}^{\left[m\right]}={N}_{t-1}^{\left[m\right]}//\hspace{0.17em}\text{Old\hspace{0.17em}landmark}$ |

40: ${K}_{t}={\mathrm{\Sigma}}_{{c}_{t},t-1}^{\left[m\right]}{G}_{{l}_{{c}_{t}}}^{T}{Z}_{{c}_{t},t}^{-1}$ |

41: ${\mu}_{{c}_{t},t}^{\left[m\right]}={\mu}_{{c}_{t},t-1}^{\left[m\right]}+{K}_{t}\left({z}_{t,\langle i\rangle}-{\widehat{z}}_{t,\langle i\rangle}\right)$ |

42: ${\mathrm{\Sigma}}_{{c}_{t},t}^{\left[m\right]}=\left(I-{K}_{t}{G}_{{l}_{{c}_{t}}}\right){\mathrm{\Sigma}}_{{c}_{t},t-1}^{\left[m\right]}$ |

43: end if |

44: ${\omega}_{t,\langle i\rangle}^{\left[m\right]}=\frac{1}{\sqrt{\left|2\pi {Z}_{{c}_{t}}\right|}}{e}^{\{-\frac{1}{2}{({z}_{t,\langle i\rangle}-{\widehat{z}}_{t,{c}_{t}})}^{T}{\left[{Z}_{{c}_{t}}\right]}^{-1}({z}_{t,\langle i\rangle}-{\widehat{z}}_{t,{c}_{t}})\}}$ |

45: add
$\{{x}_{t,\langle i\rangle}^{\left[m\right]},{N}_{t}^{\left[m\right]},{\mu}_{1,t}^{\left[m\right]},{\mathrm{\Sigma}}_{1,t}^{\left[m\right]},{d}_{1,t}^{\left[m\right]},\cdots ,{\mu}_{{N}_{t}^{\left[m\right]},t}^{\left[m\right]},{\mathrm{\Sigma}}_{{N}_{t}^{\left[m\right]},t}^{\left[m\right]},{d}_{{N}_{t}^{\left[m\right]},t}^{\left[m\right]},{\omega}_{t}^{\left[m\right]}\}$ to S_{t} |

46: end for |

47: return S_{t} |

## 5. Data Association

_{t,〈i〉}= {z

_{t,〈i〉}, d

_{t,〈i〉}} was obtained from an already seen landmark in the map or it is a new landmark that should be initialised. In this section, we introduce a method to compute the data association and the extension to the multi-robot case. Figure 1 explains the data association in the case of visual landmarks. In the figure, we represent the position of two different visual landmarks with stars, with uncertainty depicted with an ellipse. Each landmark (θ

_{1}, θ

_{2}) owns a visual descriptor (d

_{1}, d

_{2}). With dashed line we represent the observation o

_{t,〈i〉}= {z

_{t,〈i〉}, d

_{t,〈i〉}} that consists of a distance measurement z

_{t,〈i〉}and a visual descriptor d

_{t,〈i〉}. The uncertainty in the measurement is denoted by an ellipse. Since we are using a vision sensor, the descriptor d

_{t,〈i〉}describes the visual appearance of the point in space. In this case, the robot must decide whether the observation o

_{t,〈i〉}corresponds to landmark θ

_{1}, landmark θ

_{2}or it is a new landmark. In [4] a Mahalanobis distance function is used in the computation of the data association. Thus, the distance D is computed for all the landmarks in the map:

_{t,〈i〉}is associated with the landmark c

_{t}in the map that minimizes D. If the minimum value surpasses a pre-defined threshold, a new landmark is created.

_{0}as candidates. Next, given a U-SURF descriptor as observed by the robot d

_{t,〈i〉}and a U-SURF descriptor d

_{j}associated to a landmark in the map, we compute a squared Euclidean distance function:

_{0}the observation is associated with the landmark. On the other hand, a new landmark is created whenever the distance E exceeds a pre-defined threshold (selected experimentally), since the current observation cannot be correctly explained by any of the landmarks in the map up to now.

## 6. Results

#### 6.1. Results Offline

#### 6.2. Results Online

## 7. Conclusions

## Acknowledgments

## References

- Parker, L. Current state of the art in distributed autonomous mobile robotics. Dist. Auton. Robotic Syst
**2000**, 14, 3–12. [Google Scholar] - Howard, A. Multi-robot simultaneous localization and mapping using particle filters. Int. J. of Robotics Res
**2006**, 25, 1243–1256. [Google Scholar] - Howard, A.; Sukhtame, G.S.; Mataric, M.J. Multi-robot simultaneous localization and mapping using manifold representations. Proc. IEEE
**2006**, 94, 1360–1369. [Google Scholar] - Montemerlo, M.; Thrun, S. Simultaneous localization and mapping with unknown data association using FastSLAM. Proceedings of the IEEE International Conference on Robotics & Automation (ICRA), Taipei, Taiwan, September 2003.
- Stachniss, C.; Grisetti, G.; Hähnel, D.; Burgard, W. Improved Rao-Blackwellized mapping by adaptive sampling and active loop-closure. Proceedings of the Workshop on Self-Organization of AdaptiVE behavior (SOAVE), Ilmenau, Germany; 2004; pp. 1–15. [Google Scholar]
- Triebel, R.; Burgard, W. Improving simultaneous mapping and localization in 3D using global constraints. Proceedings of the National Conference on Artificial Intelligence (AAAI), Pittsburgh, PA, USA, July 2005.
- Vázquez-Martín, R.; Núñez, P.; Bandera, A.; Andoval, F. Curvature-based environment description for robot navigation using laser range sensors. Sensors
**2009**, 9, 5894–5918. [Google Scholar] - Gil, A.; Reinoso, O.; Martínez-Mozos, O.; Stachniss, C.; Burgard, W. Improving data association in vision-based SLAM. Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Beijing, China, October 2006.
- Sim, R.; Elinas, P; Griffin, M.; Little, J.J. Vision-based slam using the rao-blackwellised particle filter. IJCAI Workshop on Reasoning with Uncertainty in Robotics, Edinburgh, Scotland, July 2005.
- Nistér, D. Preemptive RANSAC for live structure and motion estimation. Proceedings of the International Conference on Computer Vision (ICCV), Nice, France, October 2003.
- Lemaire, T.; Lacroix, S. 6DOF entropy minimization SLAM. Proceedings of the IEEE International Conference on Robotics & Automation (ICRA), Rome, Italy, April 2007.
- Frintrop, S.; Jensfelt, P.; Christensen, H.I. Attentional landmark selection for visual SLAM. Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Beijing, China; 2006. [Google Scholar]
- Gil, A.; Martínez Mozos, O.; Ballesta, M.; Reinoso, O. A comparative evaluation of interest point detectors and local descriptors for visual SLAM; Springer: Berlin, Germany, 2009.
- Harris, C.G.; Stephens, M. A combined corner and edge detector. Proceedings of the Alvey Vision Conference, Manchester, UK, August 1988.
- Bay, H.; Tuytelaars, T.; Van Gool, L. SURF: Speeded up robust features. Proceedings of the European Conference on Computer Vision, Graz, Austria; 2006. [Google Scholar]
- Thrun, S. An online mapping algorithm for teams of mobile robots. Int. J. of Robot. Research
**2001**, 20, 335–363. [Google Scholar] - Stewart, B.; Ko, J.; Fox, D.; Konolige, K. A hierarchical bayesian approach to mobile robot map structure estimation. Proceedings of the Conference on Uncertainty in AI (UAI), Acapulco, Mexico, August 2003.
- Fenwick, J.W.; Newman, P.M.; Leonard, J.J. Cooperative concurrent mapping and localization. Proceedings of the IEEE International Conference on Robotics and Automation (ICRA), Washington, USA; 2002; pp. 1810–1817. [Google Scholar]
- Gamini Dissanayake, M.W.M.; Newman, P.; Clark, S.; Durrant-Whyte, H.; Csorba, M. A solution to the simultaneous localization and map building (SLAM) problem. IEEE T. Robot. Auto
**2001**, 17, 229–241. [Google Scholar] - Neira, J.; Tardós, J.D. Data association in stochastic mapping using the joint compatibility test. IEEE T. Robot. Auto
**2001**, 17, 890–897. [Google Scholar] - Williams, S.B.; Dissanayake, G.; Durrant-Whyte, H. Towards multi-vehicle simultaneous localisation and mapping. Proceedings of the IEEE/RSJ International Conference on Robotics and Automation (ICRA), Washington, USA, May 2002.
- Gil, A.; Reinoso, O.; Ballesta, M.; Juliá, M. Multi-robot visual SLAM using a rao-blackwellized particle filter. Robot. Auton. Syst
**2010**, 58, 68–80. [Google Scholar] - Thrun, S.; Burgard, W.; Fox, D. Probabilistic Robotics; The MIT Press: Cambridge, MA, USA, 2005; ISBN: 0-262-20162-3. [Google Scholar]
- Se, S.; Lowe, D.; Little, J. Vision-based mobile robot localization and mapping using scale-invariant features. Proceedings of the IEEE International Conference on Robotics & Automation (ICRA), Seoul, Korea, May 2001; pp. 2051–2058.
- Davison, A.J. Real-time simultaneous localisation and mapping with a single camera. Proceedings of the International Conference on Computer Vision (ICCV), Nice, France; 2003. [Google Scholar]
- Lowe, D. Distinctive image features from scale-invariant keypoints. Int. J. Comput. Vision
**2004**, 2, 91–110. [Google Scholar] - Lowe, D. Object recognition from local scale-invariant features. Proceedings of the International Conference on Computer Vision (ICCV), Kerkyra, Corfu, Greece, September 1999; pp. 1150–1157.
- Jensfelt, P.; Kragic, D.; Folkesson, J.; Björkman, M. A Framework for vision based bearing only 3D SLAM. IEEE Proceedings of the International Conference on Robotics & Automation, Orlando, FL, USA, May 2006.
- Lingua, A.; Marenchino, D.; Nex, F. Performance analysis of the SIFT operator for automatic feature extraction and matching in photogrammetric applications. Sensors
**2009**, 9, 3745–3766. [Google Scholar] - Murillo, A.C.; Guerrero, J.J.; Sagüés, C. SURF features for efficient robot localization with omnidirectional images. Proceedings of the IEEE International Conference on Robotics & Automation (ICRA), Rome, Italy, April 2007.
- Schmid, C.; Mohr, R.; Bauckhage, C. Evaluation of interest point detectors. Int. J. of Comp. Vision
**2000**, 37, 151–172. [Google Scholar] - Mikolajczyk, K.; Tuytelaars, T.; Schmid, C.; Zisserman, A.; Matas, J.; Schaffalitzky, F.; Kadir, T.; Van Gool, L. A comparison of affine region detectors. Int. J. Comput. Vision
**2005**, 65, 43–72. [Google Scholar] - Mikolajczyk, K; Schmid, C. A performance evaluation of local descriptors. IEEE T. Pattern. Anal
**2005**, 27, 1615–1630. [Google Scholar] - Burgard, W.; Moors, M.; Stachniss, C.; Schneider, F. Coordinated multi-robot exploration. IEEE T. Robot. Auto
**2005**, 21, 376–386. [Google Scholar]

**Figure 2.**Figure (a): robots used in the experiments; Figure (b): visual map created jointly using two robots.

**Figure 3.**Figure (a) shows the true path (continuous line), odometry (dash and dots) and estimated path (discontinuous line) for the trajectory “A”. Figure (b) presents the true path (continuous line), odometry (dash and dots) and estimated path (discontinuous line) for the trajectory “B”. Figure (c) presents the absolute position error in trajectory “A” at each time step, whereas Figure (d) presents the absolute position error in trajectory “B” at each time step.

**Figure 4.**Figure (a): RMS error in position when the number M of particles is varied. Using M = {1, 10, 50, 100, 200, 300, 400, 500, 1000, 1500, 2000, 2500}. Figure (b): RMS error in position when the number B of observations integrated at each time step is varied B = {1, 5, 10, 20}.

**Figure 6.**Figure (a): true path (continuous line), odometry (dash-dotted line) and estimated path (discontinuous) for trajectory “A”. Figure (b) and Figure (c) present the same data for trajectories “B” and “C” respectively.

Particle 1 | {(x, y, θ)_{〈1〉}, ⋯,(x, y, θ)_{〈K〉}}^{[1]} | ${\mu}_{1}^{\left[1\right]}{\mathrm{\Sigma}}_{1}^{\left[1\right]}{d}_{1}^{\left[1\right]}$ | ⋯ | ${\mu}_{N}^{\left[1\right]}{\mathrm{\Sigma}}_{N}^{\left[1\right]}{d}_{N}^{\left[1\right]}$ |

⋮ | ||||

Particle M | {(x, y, θ)_{〈1〉}, ⋯, (x, y, θ)_{〈K〉}}^{[}^{M}^{]} | ${\mu}_{1}^{\left[M\right]}{\mathrm{\Sigma}}_{1}^{\left[M\right]}{d}_{1}^{\left[M\right]}$ | ⋯ | ${\mu}_{N}^{\left[M\right]}{\mathrm{\Sigma}}_{N}^{\left[M\right]}{d}_{N}^{\left[M\right]}$ |

© 2010 by the authors; licensee MDPI, Basel, Switzerland. This article is an Open Access article distributed under the terms and conditions of the Creative Commons Attribution license http://creativecommons.org/licenses/by/3.0/.

## Share and Cite

**MDPI and ACS Style**

Gil, A.; Reinoso, Ó.; Ballesta, M.; Juliá, M.; Payá, L.
Estimation of Visual Maps with a Robot Network Equipped with Vision Sensors. *Sensors* **2010**, *10*, 5209-5232.
https://doi.org/10.3390/s100505209

**AMA Style**

Gil A, Reinoso Ó, Ballesta M, Juliá M, Payá L.
Estimation of Visual Maps with a Robot Network Equipped with Vision Sensors. *Sensors*. 2010; 10(5):5209-5232.
https://doi.org/10.3390/s100505209

**Chicago/Turabian Style**

Gil, Arturo, Óscar Reinoso, Mónica Ballesta, Miguel Juliá, and Luis Payá.
2010. "Estimation of Visual Maps with a Robot Network Equipped with Vision Sensors" *Sensors* 10, no. 5: 5209-5232.
https://doi.org/10.3390/s100505209