Robotics and Autonomous Systems 60 (2012) 41–54
Contents lists available at SciVerse ScienceDirect
Robotics and Autonomous Systems journal homepage: www.elsevier.com/locate/robot
LESS-mapping: Online environment segmentation based on spectral mapping R. Vázquez-Martín a,∗ , P. Núñez b , A. Bandera c a
Centro Andaluz de Innovación TIC (CITIC), Parque Tecnológico de Andalucía, Campanillas 29590-Málaga, Spain
b
Departamento de Teoría de la Señal y de las Comunicaciones, Universidad de Extremadura, Cáceres, Spain
c
Grupo ISIS, Departamento de Tecnología Electrónica, University of Málaga, Campus de Teatinos 29071-Málaga, Spain
article
info
Article history: Received 27 March 2011 Received in revised form 13 August 2011 Accepted 26 August 2011 Available online 16 September 2011 Keywords: Map partitioning Spectral clustering Environment segmentation
abstract Given the features obtained from a sequence of consecutively acquired sensor readings, this paper proposes an on-line algorithm for unsupervisedly detecting a transition on this sequence, i.e. the frame that divides the sequence into two tightly related parts that are dissimilar between them. Contrary to recently proposed approaches that address this partitioning problem dealing with a sequence of robot’s poses, our proposal considers each individual feature as a node of an incrementally built graph whose edges link two nodes if their associated features were simultaneously observed. These graph edges carry non-negative weights according to the locality of the features. Given a feature, its locality defines the set of features that has been observed simultaneously with it at least once. At each execution of the algorithm, the feature-based graph is split into two subgraphs using a normalized spectral clustering algorithm. The obtained partitions correspond to those parts in the environment that share the minimum amount of information. If this graph partition is validated, the algorithm determines that there is a significant change on the perceived scenario, assuming that a transition area has been traversed. In a map partitioning framework, we have tested the proposed approach in real environments where features are obtained using 2D laser sensors or vision (stereo and monocular cameras). The statistical evaluation of the experimental results demonstrates the performance of the proposal. © 2011 Elsevier B.V. All rights reserved.
1. Introduction Autonomous navigation is a fundamental ability for mobile robots, which typically requires the building and updating of an internal representation of the environment. Such representation can consist of a collection of distinguished features, which could be internally related by metric and/or topological relationships. The segmentation of this global feature-based map into a set of local sub-maps provides several advantages. In the framework of simultaneous localization and mapping (SLAM), submapping approaches have emerged as particularly suitable solutions to the scaling problem when mapping large areas [1,2]. Moreover, they reduce the whole computation time and produce more consistent estimates. Instead of the typical metric representation, appearance-based SLAM model the environment using topological representations [3,4], maintaining a probabilistic approach over the space of appearance in order to detect loop-closing. In these graph-based representations, nodes represent strategically interesting locations that have been visited. The problem is then to define what part of the mapped environment is associated to each
∗
Corresponding author. E-mail addresses:
[email protected] (R. Vázquez-Martín),
[email protected] (P. Núñez),
[email protected] (A. Bandera). 0921-8890/$ – see front matter © 2011 Elsevier B.V. All rights reserved. doi:10.1016/j.robot.2011.08.011
topological node. On the other hand, if the environment segmentation is closely enough to the one conducted by people, it could be useful to ease the human–robot interaction process, allowing the robot to share with people the same semantic labels to define the local sub-maps or ‘rooms’ [5]. With the aim of achieving a scalable or large-scale SLAM, approaches to map partitioning were initially addressed without taken into account the structure of the environment. For instance, they determine that a new local map must be created when the current map contains too many features [2] or when the robot’s location is too uncertain [1]. The main disadvantage of these criteria is that map transitions will not be linked to certain locations of the environment, but to the internal state of the robot or traversed map. On the contrary, map partitioning can be accomplished based on the statistical dependency of the observed features [6,7]. In an extended Kalman filter (EKF) SLAM framework, Rogers and Christensen [8] assume that this dependency is encoded on the information matrix, which they obtain from the inverse of the covariance matrix. Other possibility was simultaneously proposed by Zivkovic et al. [9] and Blanco et al. [10]. In these works, the map of the environment is represented as a graph, where nodes are associated to robot’s poses and edge weights determine the strength of the relationships between the nodes it links. Then, this graph is segmented using efficient approximations to the normalized graph cut criterion. These graph-partitioning methods can work off-line,
42
R. Vázquez-Martín et al. / Robotics and Autonomous Systems 60 (2012) 41–54
dividing the whole graph-based map into a variable number of submaps [10]. However, it will be more usual that our applications require that the detection of these transition areas will be conducted in an on-line manner [11]. To achieve this, partitioning algorithms can be periodically applied to the last acquired observations [11,12]. For on-line topological mapping, Valgren et al. [13] propose an incremental spectral clustering approach that uses panoramic images. Finally, it must be noted that although these approaches try to split the environment in parts where the minimum information is shared between the different areas, the criteria used are not appropriate for different sensors and/or features [13,11], or they must be previously set [10]. In these approaches, both the graph building process and the measurement employed to set the edge weights must be reformulated according to the employed sensor or/and feature. Given the features obtained from a sequence of consecutively acquired sensor readings, this paper proposes an algorithm for detecting a transition on this sequence, i.e. the frame that divides the sequence into two tightly related parts sharing the minimum amount of information between them. To detect this transition, the proposed algorithm takes into account the environment structure, which will emanate from the set of detected features as a graph. Like other closely related approaches [10,9,11,13], our algorithm then decomposes the acquired graph-based representation using a spectral clustering approach. However, our graph representation has significant differences with respect to the ones obtained by these approaches. Firstly, meanwhile all these approaches consider robot’s poses as the nodes of the graph to divide, in our proposal the nodes of the local graph are individual map features. Then, our method does not include directly in the graph building process information about the pose of the robot or sensor, reducing the dependency on metrical observations. Secondly, all these approaches employ different measurements to compute the edge weights, which are heavily conditioned by the sensor or features employed (e.g. the sensed-space overlap (SSO) measurement of Blanco et al. [10] requires that the sensor provides a homogeneous distribution of physical features). In our case, edge weights are computed using a measurement that is independent of the selected feature or sensor. This measurement is based on the relationship between features and it encodes the concept of locality [14]. Thus, our edge weights capture the covisibility of features in the graph representation. Obviously, using different sensors results in different environment subdivisions, due to the nature of the employed sensor. However, this can be considered a strength of these kind of approaches, not a weakness [15]. Our proposed measurement can be useable for any type of environment feature or sensor, including those which do not produce full-rank observations (e.g. cameras). This approach is also appropriate for systems with heterogeneous sensors, where combining relative covariances can be challenging. Finally, our proposal works on-line, allowing the robot to determine that it is entered into a new map area when this situation occurs. A double thresholding procedure is suggested in order to validate a suitable partition of the environment. The rest of the paper is organized as follows: after briefly presenting an overview of the proposal in Sections 2 and 3 presents our algorithm for feature-based map partitioning. Experimental results and the statistical analysis described in Section 4 demonstrate the efficiency and precision of the proposed method. Finally, in Section 5, we draw the main conclusions of this study and outline future research directions.
into an auxiliary graph (the Covisibility Graph). In this graph, features are represented as nodes, and those observed at the same time step t are connected by edges. This graph defines the map taking into account the locality of features: given a feature, its locality represents the set of features that has been observed simultaneously with it at least once [14]. The critical issue in this algorithm is to match observations taken at time steps t and t ′ , updating the Covisibility Graph (i.e., the data association problem). As it will be shown in Section 4, our map partitioning algorithm does not require the use of any specific module for data association. Thus, we have tested two different EKF-SLAM implementations, which conduct data association by means of the Combined Constraint Data Association (CCDA) [16] and the Joint Compatibility Branch and Bound (JCBB) algorithm [17], respectively. However, our algorithm has been also successfully used in a navigation system where metric information is not taken into account. In this case, data association is achieved using a naive Nearest Neighbour (NN) matching algorithm. Meanwhile the graph is being built a second process conducts the map partitioning. Firstly, covisibility weight is associated to every graph edge (Covisibility Rates). These weights allow to obtain a similarity or adjacency matrix from the graph. At each time instant, a spectral clustering algorithm is conducted over this matrix to propose a partition of the graph. When the algorithm determines that a partition is a valid one, it is assumed that a transition on the sequence of detected features has been found, i.e. the robot is entering in a new area. In order to validate a suitable partition, a double thresholding procedure will be employed. In this scheme, the Covisibility Graph (CovGraph) and Covisibility Rate (CovRate) are novel concepts, which will defined at Section 3. As it was aforementioned, the map partitioning process can be used for any sort of feature and/or sensor (it only needs the feature-based Covisibility Graph). Finally, our algorithm for map partitioning works on-line. If this algorithm is iteratively applied, a sequence of local stochastic maps is built using the location of a common feature as the reference, which allows a relationship between the different maps to be maintained. Under the assumption that motion and measurement errors are independent, ‘two local maps built with the same robot from disjoint sequences of steps are functions of independent stochastic variables. Therefore, the two maps will be statistically independent and uncorrelated’ [18]. Therefore, the environment can be mapped as a set of independent local stochastic maps. On the other hand, some approaches to scalable or large-scale SLAM maintain the shared information between these local maps according to the property of conditional independent maps [19]. An important issue in these approaches is the shared information between the different areas. A technique that finds partitions minimizing this information, like our proposal, provides several benefits, such as minimizing the information lost and the computational load. It can be noted that the proposed approach is an environment segmentation algorithm to find partitions in accordance to the environment structure, reducing the information loss and the dependence on metrical observations. Depending on the framework or approach it is used (SLAM, appearance-based, topological navigation) the location information and loop-closing is solved differently in the scope of every approach (see [20] or [21] for more details).
2. Overview of our proposal
The proposed approach is based on feature-based maps, where detected and matched landmarks are employed to build an auxiliary graph of observations known as the Covisibility Graph (CovGraph). In this graph, features are represented as nodes and
Given the set of features extracted from the data acquired by a sensor at a time step t, the algorithm firstly integrates them
3. Graph-based environment representation 3.1. The Covisibility Graph
R. Vázquez-Martín et al. / Robotics and Autonomous Systems 60 (2012) 41–54
43
Fig. 1. Covisibility Graph building process. Each node is labelled with a label and with the number of observations of the corresponding feature. Edges represent the locality of features, and their values correspond to the number of times they have been observed simultaneously.
those that have been observed from the same pose of the robot are connected by edges. Given a sequence of observations, the CovGraph is built incrementally at each step (see Fig. 1). A weight associated with each node in the graph, ni , stores the number of observations of the feature Fit up to time t. If two features Fit and Fjt have been perceived in the same observation at time t, an edge eij is created between them. The weight of this edge is initially set to 1 (aij = 1). If eij already exists, i.e. the two features have been observed previously at the same time, the edge value aij is incremented. Then, the CovGraph is a labelled graph, which has labels associated with each node (the number of times the corresponding feature has been observed) and labels associated with each edge (the number of times that the two features it links have been simultaneously observed). The main property represented in this graph is the locality of features. Given a feature, its locality defines the set of features that has been observed simultaneously with it at least once [14]. Thus, the CovGraph is composed by observed features and their relationships according to the covisibility between them. Locality in the CovGraph is represented as edges connecting the features. In this way, the information included in the CovGraph is independent for any sort of sensor or of feature used. Here, the critical problem is to match different observations zt and zt′ , taken at time steps t and t ′ . In an EKF-SLAM framework, this correspondence is solved in the Data Association stage, where the observations gathered at each time step are compared to those features stored in the map. After the Data Association stage, the correspondence problem is solved using the set of features updated in the SLAM process. In this way, the CovGraph building process is able to take advantage of a
batch data association method to achieve reliable multiple data tracking in cluttered environments [22]. However, as it was mentioned in Section 2, the EKF-SLAM is not a prerequisite for building the CovGraph, being possible to employ this technique out of the scope of a SLAM algorithm (e.g. see [21]) and using only a matching approach to solve the correspondence problem between observed features, as shown in Section 4.2.2. In particular, three different algorithms to solve the correspondence problem have been used along the experiments (see Section 4 for more details): the Joint Compatibility Branch and Bound (JCBB) [17], the Combined Constraint Data Association (CCDA) [16] and a naive implementation of the Nearest Neighbour algorithm. This manifests the independence of the matching algorithm used to solve the correspondence problem for the CovGraph building process. Thus, the CovGraph is obtained from the set of features given in the update stage of the EKF-SLAM algorithm or after the matching process in a system not based in a metric SLAM approach and, unlike previous approaches [10,11,9], the graph nodes are related to features, and no additional information about the robot pose is added directly. Using the concept of locality, those areas which are sensed simultaneously are more strongly related in the graph. This relationship is independent of the feature or sensor used in the mapping process. Once the CovGraph has been built, a similarity function must be defined to obtain a weighted graph with which to find the graph partition. This weighted graph will not have attributes associated with each node, allowing to apply the normalized spectral clustering over the attributes of the graph edges. Previous
44
R. Vázquez-Martín et al. / Robotics and Autonomous Systems 60 (2012) 41–54
Fig. 2. Similarity Matrices associated with two Covisibility Graphs. Both are rearranged matrices by making the observations within the same cluster to have consecutive indexes. After clustering these matrices should be block diagonal ideally. Both matrices show a bipartition of the graph.
approaches have defined this function differently. Blanco et al. [10] define the sensed-space overlap (SSO) function, which measures the covisibility between different areas of the environment. Their drawbacks are that robot poses are included in the graph building process and, on the other hand, if it is used for different features or sensors, the similarity function and graph building process must be adapted [10]. Other approaches define a distance function [11,13], but a scale-invariant measure is a prerequisite. Since no metric information is added to the CovGraph, the partitions obtained are independent of the scale of the environment. Finally, the information sharing metric proposed by Rogers and Christensen [8] is based in the information matrix, being necessary the inverse of the covariance matrix (a time consuming computation). In our approach a similar information metric is defined using the concept of locality of features. Our similarity matrix is updated during the incremental CovGraph building process with low cost. In our case, the similarity function is defined by the Covisibility Rate (CovRate). In the CovGraph, the edge weight aij (the number of times that the features Fit and Fjt have been perceived together) and the node weights ni and nj (the number of times that these features were perceived separately) defines a measure of the strength of association between both features up to time t. In order to translate this information to the graph edges, computing an average value related to the locality of features, the CovRate is defined as Cov Rateij =
aij min(ni , nj )
.
(1)
That is, the edge value is divided by the minimum number of observations of the corresponding features. The proposed estimator is closely related to the normalized mutual information measure [23]: the minimum possible value of CovRate is zero when two features have never been seen simultaneously (both variables are independent), and the maximum value is unity when two features have always been observed simultaneously (the strongest relation between them). The range of the CovRate is therefore [0, 1]. However, it must be noted that Mutual Information reliably quantifies the dependence between the joint distribution of two variables and what the joint distribution would be if these two variables were independent. Strictly, the Mutual Information of two uncertain variables is the number of bits of information expected to be gained about one of them upon determining the precise value of the other. In this scope, the CovRate definition can be seen as a measure of the feature knowledge through the locality of features, i.e. covisibility. Future work must deeply analyse how to formalize the CovRate definition taken into account these concepts. In any case, the CovRate measure given by Eq. (1) constitutes in our current framework the similarity function that computes
the locality of features in the CovGraph. Once this function is used to estimate the edge weights, the resulting adjacency or similarity matrix can be used to find the graph partition (see Section 3.2 for a formal definition of this matrix). As the CovGraph is undirected, this matrix is symmetric. It is also non-negative. Finally, our proposed CovRate-based similarity matrix is closely related to the inverse covariance matrix (the information matrix [14]), which constitutes the central information maintained by the extended information filter (EIF) solutions to SLAM. In the information matrix, elements can be thought of as links between the locations of different features. Strong links are found only between features which have been observed from the same robot’s location during map building [24]. To reduce computational costs, it is usual that EIF-based approaches maintain a sparse (normalized) information matrix, where only nearby features are linked through non-zero values. In the same way that the information about features that are observed from the same location becomes highly coupled in the information matrix, two features that are covisible many times has a high CovRate in our proposal (in Fig. 2, matrices represent a partition in two clusters). The aim of this proposal is to obtain submaps as much closer to conditional independence as possible. Then, the process to build the weighted similarity matrix which represents the perceived environment can be summarized as follows: 1. In the first step, in a new submap, the robot takes observations from the environment and the CovGraph is initiated with the features detected as nodes (see Fig. 1(a)). All these nodes will be linked by edges, since all these features were observed simultaneously. 2. In each succeeding step, each feature observed is included in the CovGraph, either as a new node if the feature was detected for the first time, or by incrementing the value associated with the corresponding node (see Fig. 1(b–f)). The features observed at the same time are either connected by edges in the CovGraph, or if an edge already exists (the corresponding features have already been observed simultaneously) the value associated with this edge is incremented. 3. The CovRate associated with each edge is computed in order to obtain the similarity or adjacency matrix (see Fig. 3). The spectral clustering algorithm can then be used to obtain a proposed partition of the graph. Note that only the values of the CovGraph that correspond to the features observed and their neighbours need to be recomputed at each iteration. 3.2. Graph partitioning Once the CovGraph is built and the similarity matrix is computed from it, the aim is to split the graph in order to minimize
R. Vázquez-Martín et al. / Robotics and Autonomous Systems 60 (2012) 41–54
45
Fig. 3. Covisibility Rates: (a–c) edge weights associated with the Covisibility Graphs in Fig. 1(d–f), respectively.
the loss of information in the map partition. Using the normalized spectral clustering proposed by Shi and Malik [25], we can simultaneously minimize the dissociation between groups and maximize the association within the groups. Next, we describe this algorithm with more details. Let G = (N , E ) be an undirected, weighted graph with node set N = {n1 , . . . , nn } and where each edge between two nodes ni and nj has associated a non-negative weight wij ≥ 0. The weighted adjacency matrix or similarity matrix of the graph G is the matrix W = (wij )i,j=1,...,n . Values wij equal to zero mean that nodes ni and nj are not connected. As it is commented in Section 3.1, our graph is undirected, and then this matrix is symmetric ∑n (wij = wji ). The degree of a node ni ∈ N is defined as di = j=1 wij . Then, the degree matrix D is defined as the diagonal matrix with the degrees {di }ni=1 on the diagonal. The normalized spectral clustering algorithm for graph partitioning aims to partition the graph G into two disjoint subsets, {A, A¯ }, by removing the edges connecting these two parts. The goal is to find a partition such that the edges between these subsets have a low weight value and the edges within a subset have high weight values. Moreover, the partition criterion should take into account that the subsets do not have a small size [25]. The Shi and Malik’s algorithm consists of the following steps [25]: 1. Compute the unnormalized Laplacian L = D − W . 2. Solve for the two eigenvectors {v1 , v2 } with the smallest eigenvalues of the generalized eigenproblem Lv = λDv.
(2)
3. Let V ∈ R be a matrix containing the vectors v1 and v2 as columns. 4. Let yi ∈ R2 be the vector corresponding to the i-th row of V . Cluster the points {yi }ni=1 into groups C1 and C2 using the kmeans algorithm. Then, the resulting clustering can be carried out to the underlying graph nodes nx2
ni ∈ A1 ni ∈ A2
if yi ∈ C1 if yi ∈ C2 .
(3)
Thus, the eigenvector corresponding to the second smallest eigenvalue of the generalized eigenproblem is the solution to the normalized cut problem [25,26] (the smallest eigenvalue is 0 with corresponding eigenvector equal to {1, 1, . . . , 1}T ). The NPhard optimization problem which implies this minimization is relaxed by allowing yi to do not take only two particular values, i.e. allowing yi ∈ R2 . The k-means clustering is then employed to re-transform the real-valued solution vector yi into a discrete indicator vector [26]. 3.3. Validation of the graph partition The proposed approach builds an auxiliary graph (CovGraph) incrementally from the observations gathered by the sensors. From this graph, an adjacency matrix is obtained using the similarity function defined by the Eq. (1). During this process, while the robot moves through the environment, the spectral clustering is run in
Fig. 4. Ncut values during the mapping process. If it is thresholded, a non-optimal solution can be taken due to the presence of local minima. In the y-axis the Ncut values are represented whereas the x-axis the number of the processed frames.
order to find a suitable partition of the map and the transition to a new area. As it has been aforementioned, the objective function is the minimum normalized cut of the graph [25]. Thus, the best partition is given when the minimum Ncut value is found. However, the aim of our approach is to provide a map partition while the robot is moving. If the Ncut value is thresholded, it is possible to fall in a local minima and a wrong partition would be taken (see Fig. 4). Another possibility is to study the set of eigenvalues of the similarity matrix. These eigenvalues generally correspond to clusters in the graph [26]. In our case, the spectral clustering algorithm is applied to the similarity matrix that is being built to find a partition of the associated graph into only two clusters in order to detect a new area. Therefore, we should evaluate the magnitude of the second eigenvalue (eig v2 ). In order to define a more robust criterion, these two values are combined. The map partition is valid if the following condition holds Ncut ≤ Ncutmin
&
eig v2 ≤ eig v2min
(4)
where Ncutmin and eig v2min are constants. The aim is that the partitions of the environment will be always located at the same areas. Fig. 5 shows three different trials where a robot leaves the same room to enter in a corridor. The trajectory of the robot is drawn in red. The red triangle is the starting point of each trajectory and the red square the position where the algorithm determines that the robot is entered into a new area. The perceived features have been obtained from laser scan data using the curvature-based environment description [27]. In the figure, features belonging to the old and new submaps have been drawn in blue and black, respectively, over the grey-coloured environment layout, and are associated to walls (straight-line segments) or to corners and edges (circles) (see [27] for further details about the extracted features). Blue features are associated to the last traversed submap. Black features are associated to the new detected submap, where the robot is currently entering. Then, this new submap is represented in these figures by a reduced set of features, which does not correspond with the final set of the complete submap. In these
46
R. Vázquez-Martín et al. / Robotics and Autonomous Systems 60 (2012) 41–54
Fig. 5. Several tests in the same environment following different trajectories. The spectral clustering algorithm generates the same submaps in each experiment. When the robot leaves the room and enters into the corridor the threshold values for Ncut and the second eigenvalue are satisfied (see text for details).
examples, the thresholds for submap generation for the Ncut value and the second eigenvalue have been set experimentally to 0.25 and 0.2, respectively. It can be noted that the same local maps are created even when the robot follows different trajectories through the same environment. Next section shows how this algorithm is able to be used for several features and/or sensor after choosing a correct pair of thresholds for partitioning validation. 4. Experimental results 4.1. Statistical experiments As it has been aforementioned, submapping approaches to SLAM reduce the computational burden and produce more consistent estimates when using local coordinates [19]. Most submapping techniques are based on building local maps of limited size, but taking this decision in accordance with the structure of the environment provides some benefits. Thus, although both approaches to submaps generation will incur in approximation errors, the structure-based approaches provide partitions consistent to the environment structure and not to which map partitioning decisions are made. In this Section, the approximation error of the proposed partitioning approach is estimated from a measure of the information lost when dividing the environment [28]. To accomplish this process, we must firstly define this measure. The key component for this statistical evaluation is the full covariance matrix maintained by EKF-based SLAM approaches. In the EKF-SLAM context, the off-diagonal elements of the covariance matrix capture the correlations in the estimates of the different variables, i.e. the correlations among the map features located at different parts of the environment. Another important issue about the covariance matrix is that its inverse, the information matrix, represents the amount of shared information between the different features in the map. As it was commented in Section 3.1, the similarity matrix obtained from the Covisibility Graph using the proposed CovRate measure is similar to the information matrix, representing the information shared between observations. SLAM approaches based on the information filter take advantage of the near sparse structure of the information matrix to reduce the computational load [24]. In these techniques, as the Sparse Extended Information Filter (SEIF) [24], the information matrix of the SLAM posterior is approximated by rounding to zero the small off-diagonal elements. This reduces the number of inter-feature links and therefore limits the density of the information matrix and the computation time. One important limitation of the techniques based on the information form is the difficulty to perform data association since the covariance matrix is not available [24]. In this Section, although an EKF-based approach to SLAM is conducted to obtain the local maps, the information matrix will be used to perform the statistical evaluation. Specifically, in order to measure the loss of information of forcing conditional independence (dividing up the map), the
Fig. 6. Loss of information for different values of the Ncut and the second eigenvalue.
off-diagonal elements of the information matrix are used. The information loss ratio e is then defined as:
∑ e=
(i,j):C (i)∩C (j)=∅
|H (i, j)|
|H (a, b)|
,
(5)
where H (i, j) is the item of the information matrix which relates features i and j, and C (i) represents the cluster where the feature i is included. The term |H (a, b)| is the norm of the information matrix. The loss ratio e is proportional to the sum of all the information matrix elements out of the block diagonal matrices for each cluster in the partition [28]. Once the measure to evaluate the loss of information has been defined, we have carried out several experiments using an EKFSLAM implementation in real indoor scenarios. The aim is to average several trials and use the full covariance matrix to compute the e value associated to the proposed partitions obtained by our approach. The process is as follows: the covariance matrix is maintained for the full EKF-SLAM map and, for each submap transition detected by the partitioning algorithm, the loss of information ratio is computed using Eq. (5) and the inverse of the covariance matrix (information matrix). Observations have been gathered by a Pioneer 2AT mobile robot equipped with a front SICK laser scanner. The robot moves in an office-like environment, being the conducted trajectories very close to the one shown in Fig. 15(a). As our approach employs two thresholds at the validation stage which can be modified, several runs have been conducted over this dataset in order to obtain the average loss information ratio e for different values of these thresholds. The obtained average information loss ratio e values are shown in Fig. 6. It can be seen that, in this framework, the largest value of e is below 1%. When the partitioning thresholds are below two fixed values: 0.25 for Ncut and 0.2 for the second eigenvalue, the loss of information is less than 0.2%. If these thresholds are set above these values, the loss of information increase significantly. It is also
R. Vázquez-Martín et al. / Robotics and Autonomous Systems 60 (2012) 41–54
47
Fig. 7. Part of the experiment in the Torres Quevedo building using the monocular SLAM approach. The robot’s trajectory is drawn in different colours. Each colour defines an environment partition (point-based features belonging to each submap and their associated uncertainty ellipses are drawn in this same colour): (a) scene in top view, and (b) 3D view of the trajectory and features of the created submaps.
clear that less information is lost using small thresholds, but, in these cases, the size of the resulting submaps are then too large. In order to select an appropriate pair of partitioning thresholds, a trade off between the loss of information and the meaningful of the generated maps must be considered. This will depend on the chosen sensor and/or feature and also on the final application. Hence, the optimal values of the spectral clustering thresholds are commented in the successive sections for the different experiments. Other approaches propose to start new maps after a fixed number of features [2]. When we test this criterion with our data set, although the loss of information is not drastic, less than 2% for a varying number of features in the map, the obtained maps depend on the decision taken and the robot’s trajectory. This decision can be also taken according to the robot uncertainty [1]. In both cases, the resulting maps are not in accordance to the environment structure, which provides some benefits as the reduced loss of information evaluated in this section. 4.2. Partitioning using vision 4.2.1. Partitioning in a monocular SLAM framework Several experiments to validate the proposed map partitioning algorithm have been carried out using a monocular SLAM framework. This implementation is based on an EKF where the state vector is composed by the camera and features locations. Then, the approach estimates the hand-held camera motion and the 3D scene point locations using an inverse depth and Cartesian parametrization (see [29,30] for further details). Experiments have been conducted using a single unibrain Fire-i digital camera and a laptop acquiring images at 30 frames per second. These images have been taken at the Torres Quevedo building in the Centro Politecnico Superior, University of Zaragoza. In this paper, we describe one of the conducted tests. It is composed by a set of 2345 images, which have been captured in an approximately squareshaped path along the entrance of the building (see Fig. 8). The robot’s trajectory closes a loop, so the last 500 captured frames have been taken in a previously visited area. In this monocular SLAM approach, a fast corner detector [31] is used. This detector, called FAST, is based on examining a small patch of an image to see if it looks like a corner instead of making assumptions about the form of the local image structure around a well localized point. This approach uses machine learning to classify patches of the image as corners or non-corners. Typically, in one image, hundreds of interest points can be detected, but only a subset of these features can be tracked for the real-time EKF-SLAM operation. Due to the high density of features in the environment and their covisibility relationships captured in the CovGraph, both map partitioning thresholds, which have been set to 0.25 for Ncut and 0.2 for the second eigenvalue in the rest of experiments described in this paper, have been set to 0.1. The aim is to be more demanding with the obtained partitions and
to reduce its number. The data association problem is solved in this monocular SLAM framework using the Joint Compatibility Branch and Bound algorithm [17], where a measurement of the joint compatibility of a set of pairings is employed to rejects spurious matchings. Joint compatibility of pairings is evaluated in an interpretation tree search that includes the largest number of joint compatible pairings. In order to show clearly the obtained map partitions, just part of the camera trajectory with the corresponding detected features has been depicted in Fig. 7. In this figure, the robot’s trajectory is drawn in different colours. Each colour defines a different environment partition, and point-based features belonging to each submap (and their associated uncertainty ellipses) are drawn in this same colour. It can be noted that Fig. 7(a–b) are not depicted in the real scale of the experiment. Using a single camera, the scale of the scene can be inferred from the relative observations due to the motion of the camera, but up to a given scale factor. The real scale is irretrievable without any measurement of the environment. Fig. 8 shows the complete experiment but only the camera trajectory is now represented over the layout of the environment. The snapshots illustrate when it is detected that the robot is entering into a new area. The triangle over the camera trajectory shows the starting point of the trial, and the number inside each frame can be used as a discrete time stamp. The figure shows that the loop is closed and, when it moves through a previously visited area, the algorithm produces very similar partitions (see the similarity between the grouped images, frames #274 and #2091, and frames #422 and #2265; they define the same transition areas). As it can be seen in Figs. 9 and 10, when the map partitioning decision is based on the number of features, like in the proposal of Estrada et al. [2], different results can be obtained for the same robot’s trajectory and environment. Moreover, due to the use of this arbitrary criterion, it is lucky to find map partitions which correspond to previously detected ones when the loop is closed (in this case, just one of them for each test). On the other hand, when the map partition decision is taken according to the structure of the environment, consistent partitions are obtained, being possible to correspond those parts of the trajectory and the map that are related to previously visited areas. 4.2.2. Partitioning using affine invariant regions The proposed partitioning algorithm has been also tested in real indoor scenarios using a stereo camera and a region-based visual landmarks detector. Fig. 11 shows the left images of several image pairs obtaining from three robot’s trajectories. The environment and trajectory are practically the same that the ones shown in Fig. 5: the robot starts in a room and it goes through a door to enter into a corridor. The illustrated experiments were conducted using a Pioneer 2AT robot platform which is now equipped with the stereoscopic camera. This stereo system is a STH-MDCS from Videre Design — a compact, low-power colour digital stereo head
48
R. Vázquez-Martín et al. / Robotics and Autonomous Systems 60 (2012) 41–54
Fig. 8. Complete experiment in the Torres Quevedo building using the monocular SLAM approach and the proposed map partitioning algorithm. Returning to a previously visited area produce similar partitions (frames #274–#2091 and #422–#2265) (see text for details).
with an IEEE 1394 digital interface. It consists of two 1.3 megapixel, progressive scan CMOS images mounted in a rigid body, and a 1394 peripheral interface module, assembled in an integral unit. Visual features used in the map partitioning process are associated with distinguished regions extracted using a perception-based grouping mechanism [32]. The correspondences between features observed in the environment have been performed using a naive Nearest Neighbour (NN) approach. In these experiments, no EKF-SLAM implementation have been used. Threshold values have been set to 0.25 for Ncut and 0.2 for the second eigenvalue, respectively. In order to evaluate the robustness of the proposal, the different trials were conducted under different viewing conditions (illumination, perceived objects) and following different trajectories. Fig. 11(a–c) show that a new submap is always generated when the robot leaves the room and enters into the corridor (frames #70, #104 and #71, respectively). Fig. 12 illustrates a different experiment in the same environment. In this case, the robot starts in the top left room and it goes through a door to enter into the corridor. A first partition is found when the robot enters into the corridor. The snapshot marked with a 1 value corresponds to this first partition. Then, the robot leaves the corridor to enter into a hall (partition 2) and it moves following the walls around a central closed room. Three new partitions are found. Then, the robot closes a loop and it returns to the top left room navigating through the corridor (partitions 6 and 7). Table 1 shows the Ncut values and second eigenvalues for the obtained partitions. It must be noted that, for some partitions, there is no values in this table. These partitions are associated to no connected parts of the CovGraph. This is an important limitation of
the approach, which can typically occur when the used sensor does not produce full-rank observations and the density of detected features is not so high. In this specific case, an order of ten or twenty affine invariant regions are usually detected in each image using the perception-based grouping mechanism. However, only a few regions are detected in those situations with poor visual information. When these few regions do not match with previously perceived ones in two consecutive observations, a discontinuity in the observation sequence is captured in the CovGraph, resulting in non-connected components. In our current implementation, these discontinuities are also marked as submap transitions. It is interesting to note that, when the robot moves through previously visited areas, the partitions associated to non-connected parts of the graph (e.g. the partitions 6 and 7) are very close to the partitions which have been found by applying the normalized spectral clustering algorithm to a connected CovGraph (partitions 1 and 2). In our tests, this is a typical situation which can be due to the less strength of the feature associations at these areas. However, the best choice to prevent a series of continuous partition events in these situations is to consider the robot’s trajectory or the camera motion when no connected components appear in the CovGraph building process. 4.3. Partitioning using laser range finders The proposed feature-based map partitioning algorithm has been extensively tested in real indoor scenarios for laser range finder. In this section, we show two experiments. The first one was
R. Vázquez-Martín et al. / Robotics and Autonomous Systems 60 (2012) 41–54
49
Fig. 9. Complete experiment in the Torres Quevedo building using the monocular SLAM approach and partitioning every 50 features in the map. In this test, just one partition matches with past partitions when the camera reaches a previously visited place (frames #154–#2047). Table 1 Ncut values and second eigenvalue for the different partitions found in the experiment at Fig. 12 (Section 4.2.2). Partitions
Ncut
eig v 2
#1 #2 #3 #4 #5 #6 #7
0.241 0.226 – 0.081 – – –
0.192 0.192 – 0.081 – – –
conducted using a set of laser scans from the Radish repository.1 These scans have been taken from a part of the Intel Jones Farms Campus, Oregon. The robot for this second experiment was a Pioneer 2DX with a SICK LMS200 and 0.5° angular resolution. The office-like ground plan is shown in Fig. 13(a). The second one is depicted in Fig. 13(b). It has been carried out in our laboratories on the fourth floor of the University Institute of Research Building, in the Technology Park of Andalusia (Spain). The platform used was the aforementioned Pioneer 2AT from ActivMedia equipped with a SICK LMS200 laser range finder for this experiment. The field of view is 180° in front of the robot and up to 8 m distance. The range samples are spaced every half a degree, all within the same plane. It can be noted that in all these tests the threshold values
1 http://radish.sourceforge.net/.
are equal to 0.25 for Ncut and 0.2 for the second eigenvalue as in the experiment using visual features. In fact, we always use these values except for the experiments conducted within the monocular SLAM framework. Natural features has been extracted from the laser scans using a curvature-based algorithm for laser scan data segmentation and characterization [27]. The whole segmentation process consists of three stages. The first stage divides the laser scan into clusters of consecutive range readings according to a distance criterion. Then, the second stage calculates the curvature function associated to each cluster and uses it to split each cluster into a set of straight-line and curve segments. Finally, a set of stable features (corners, edges, centre and radius of circle-shaped items and straight line segments) and their associated uncertainties are obtained (see [27] for further details). All features are described by three parameters and their covariance matrix, and they are suitable for use in the EKF-SLAM algorithm. As it was aforementioned, for our map partitioning algorithm, features are represented as nodes of the Covisibility Graphs. Edge weights are updated after the Data Association stage of the SLAM algorithm. In this case, all observations are integrated in a Combined Constraint Data Association (CCDA) method [16] in order to achieve reliable multiple data tracking in cluttered environments. In CCDA, a batch association between observations and features stored in the map is obtained by applying absolute and relative constraints. The absolute constraints determine individual compatibility across the two data sets, while the relative constraints guarantee joint compatibility. These two constraints are applied while building
50
R. Vázquez-Martín et al. / Robotics and Autonomous Systems 60 (2012) 41–54
Fig. 10. Complete experiment in the Torres Quevedo building using the monocular SLAM approach and partitioning every 60 features in the map. In this test, just one partition matches with past partitions when the camera reaches a previously visited place (frames #405–#2231).
a graph with observations and map features, and the largest set of compatible pairings are found searching for the maximum clique [16]. Fig. 14 shows an experiment on the first test area. In these figures, the ground-truth of the environment have been downloaded from the repository. Fig. 14(a–c) provide three snapshots of the initial part of the trajectory followed by the robot. The robot is only driven through the environment corridors, i.e. it does not enter into any room. Fig. 14(a) shows the initial robot pose and the first three detected partitions, which have been marked with the letters A, B and C. The trajectory points where the partitions have been found are marked with starts, whose interior colour will be used to define each submap in Fig. 14(d). Then, the robot closes a first loop. Three new partitions are found (submaps D, E and F), the last one of them determines that the robot is entering in the previously visited submap B. Fig. 14(b) shows how the robot traverses the submaps B and A, and then it enters into a new area (the submap G). Fig. 14(c) illustrates the closing of a second loop. Three new submaps (H, I and J) are delimited. The last robot pose in this trajectory is depicted by the black triangle. Fig. 14(a–c) show that the transition points are always detected in the traversed corridors. In total, 25 transition points are detected when the full dataset is run (4055 laser scans). Fig. 14(d) shows the final subdivision of the environment. For clarity reasons, instead of the transition points or the detected features, we have coloured the different areas generated by the partitioning algorithm. However, it must be noted that these areas have been manually delimited from the information provided by the detected partition points. That is, there are uncoloured areas on the figure, which are associated to non-traversed
environment regions (e.g., the central part of the top corridor). It can be noted as these partitions correspond to the same submaps shown in Fig. 14(c). Every corner on the environment has been considered as a transition area. Fig. 15 illustrates one experiment in the second test area. This test comprised 1500 scans of an office-like environment in which the robot was driven through different rooms. The ground-truth map and robot’s trajectory are shown in Fig. 15(a). The groundtruth map was obtained using the Mapper3 software from ActivMedia Robotics, whose process is based on off-line scan matching techniques applied over the complete set of scans. The robot’s trajectory starts in the top left room at Fig. 15(a). Then, the robot enters into a corridor to arrive to a hall. The robot surrounds a room to return to the hall. Here, the robot’s trajectory closes a loop. Then, it returns to the top left room through the previously traversed corridor. The local maps generated by the proposed approach during this route are shown in Fig. 15(b), in which different submaps are depicted in different colours. Nine map partition events are shown in Fig. 15(c), marked as stars labelled from A to I. The first one correspond to the trajectory’s starting point (A) and partitions from B to F correspond to the different submaps depicted in Fig. 15(b). The last three partitions (from G to I) are events that correspond to previously traversed areas. At the point G the algorithm detects a new area in the returning trajectory, that correspond to the area detected in point C (the red one) when the robot is leaving the corridor. Next, it can be noted that the partition point H, which determines that the robot is leaving this submap, is very close to the previously detected partition point C, detecting that the robot is
R. Vázquez-Martín et al. / Robotics and Autonomous Systems 60 (2012) 41–54
51
Fig. 11. Three experiments using vision in the same scenario under different viewing conditions. Detected visual landmarks are represented as ellipses. In each experiment, the correspondence between landmarks perceived at different frames is marked with the same index. In the three sequences, the partitioning is conducted at the same environment area, which corresponds to: (a) frame #70, (b) frame #104 and (c) frame #71.
entering in a new area, the corridor. Finally, when the robot returns to the room, the partition point I is very close to the partition point B. The submap associated to the corridor is then clearly delimited by two transitions areas, the one which includes the points B and I, and the one which includes C and H. Fig. 15(c) illustrate that previously mapped regions can be detected by the partition algorithm without a submap recognition process and without using location information. In this test, threshold values for submap generation for the Ncut value and the second eigenvalue have been set to 0.25 and 0.2 again, respectively. 4.4. Comparison to similar approaches In order to compare our method with a recently proposed approach, the libraries for map partitioning from the Mobile
Robot Programming Toolkit have been used.2 In these libraries, the approach proposed by Blanco et al. [10,28] is provided. This approach needs that the trajectory points and laser scans will be provided as a batch, and then it works in an off-line manner, to find the whole set of partitions. Moreover, as the nodes of the graph which will be cut are associated to robot’s poses, in order to obtain map partitions it is necessary an accurate robot trajectory. This usually forces to employ the partitioning algorithm inside the context of a SLAM algorithm. Experiments like the ones described in Section 4.2.2, where there is no information about the robot’s trajectory, cannot be addressed by this approach. Therefore, the
2 www.mrpt.org.
52
R. Vázquez-Martín et al. / Robotics and Autonomous Systems 60 (2012) 41–54
a
b
c
d
Fig. 14. Experiment in the Intel Farm Campus: (a–c) The robot’s trajectory at different instants of time. Partitions have been marked with starts and each detected submap has been marked with a letter; and (d) final map partition. Each coloured region represents a different submap, white spaces correspond to unexplored areas (see text for details). Fig. 12. Partitioning using vision. Images corresponding to the frames where the CovGraph is partitioned are represented over the real layout (see text for details).
EKF-SLAM implementation used in this section has been employed to generate the laser map needed by this approach. The threshold used for this approach is typically chosen heuristically and values in the range [0.2,1] will give good results [28]. In the experiment shown here the threshold value 0.9 has been used. The comparison results shown in this section have been obtained by running both approaches in the environment illustrated in Fig. 15(a). The robot’s trajectory is also the one depicted in this figure. Fig. 16 shows the obtained results for both approaches. Blue starts determine partitions found before the loop is closed by the robot and yellow ones are associated to partitions found after it is closed. Looking at the figure, it can be noted that the first obtained partitions are practically located at the same robot’s poses (partitions from 2 to 5). Then, the Blanco et al.’s proposal finds four partitions which are very close one from the other one (partitions from 5 to 9 at Fig. 16(b)). In our approach, a new partition is found at the robot’s pose marked as 6. The partitions marked as 7 (Fig. 16(a)) and as 10 (Fig. 16(b)) are newly located practically at the same robot’s poses.
a
However, when the robot closes the loop and it enters again into the corridor, the Blanco et al.’s proposal does not find any partitions (our proposal finds the partition 8). The last partition found by the Blanco et al.’s proposal (partition 11) is also very far from the entrance to the top left room. In our case, the partition 9 is very close to the previously detected one at the entrance of this room (partition 2). The proposed algorithm have been also tested in the MIT CSAIL building, third floor, in order to compare our results to the Brunskill et al. [11] approach. This dataset have been downloaded from the Radish repository.3 It has been obtained by running a B21 robot with a SICK LMS laser range finder. Our approach have been tested in this dataset within the same EKF-SLAM framework used for laser experiments (Section 4.3). In Fig. 17 results are shown for both approaches. It can be noted that the run from the Radish Repository used by our approach (Fig. 17(b)) is longer than the run used by the Brunskill et al.
3 http://radish.sourceforge.net/.
b
Fig. 13. (a) The ground plan of a part of the Intel Jones Farms Campus in Hillsboro, Oregon and (b) the second test area, an office-like environment sited at the Technology Park of Andalusia (Spain). Source: The Radish repository http://radish.sourceforge.net/.
R. Vázquez-Martín et al. / Robotics and Autonomous Systems 60 (2012) 41–54
a
53
c
b
Fig. 15. Experiment in a real indoor environment with a laser range finder: (a) Environment layout; (b) submaps detected; (c) partition events generated during the trajectory. The features were obtained using a curvature-based laser scan data segmentation algorithm [27] (see text for details).
proposal (Fig. 17(a)) and, therefore, the trajectories are different. In any case, the results are quite similar showing the performance of the proposed algorithm. This last statement is due to the Brunskill et al. proposal works in a complete hybrid mapping framework. That is, after the map is segmented submap identification is done by learning to label the robot’s submap using the AdaBoost algorithm [11], loop-closing is then performed when classifiers associated with to submaps overlaps. Thus, the results shown for the Brunskill et al. proposal have been obtained merging submaps. In our approach only a map partitioning decision have been taken, without additional assumptions about loop-closing and merging maps. It can be noted that the result using our algorithm have been obtained in a run with several loops (5 or 6 loops running corridors in both directions). This is only one reason why our approach is superior, on the other hand, the Brunskill et al. approach is based on grid maps for their graph building process and, therefore, is limited to laser range finders. This is the same case for the Blanco et al. [28] approach, where a grid map is needed for building the graph. When this approach is employed with vision the grid map is not available, features must be used and the graph construction must be adapted or something similar to a grid map is built using visual features. As has been shown along the experiments, our approach is based on a feature-based graph (CovGraph) and can be used for different features and/or sensors. 5. Conclusions and future work In this paper a spectral clustering technique for efficient graph partitioning has been used for submaps generation for autonomous navigation systems. Given a sequence of observations, an auxiliary graph is built incrementally whose edges carry non-negative weights according to the locality of the features. At each execution of the mapping procedure, the feature-based graph is split into two subgraphs using a normalized spectral clustering algorithm. If the graph partition is validated, the algorithm will determine that the robot is moving into a new area and a new local map is generated. This proposal used a graph-based independent representation, based on feature maps without constraints about the sort of features and the sensor used. Experiments with both laser range finder and vision have been successfully conducted. Our proposal builds a Covisibility Graph, where nodes are related to environment features and not to robot poses, as it has been employed by previous proposals [9–11]. On the other hand, the Covisibility Graph is
a
b
Fig. 16. Partitioning results for the environment and robot’s trajectory shown in Fig. 15(a) using: (a) the proposed approach; and (b) the approach described by Blanco et al. [10,28]. Blue stars determine partitions found before the robot closes the loop and yellow starts are associated to partitions found after the loop is closed.
an independent environment representation for any kind of feature or sensor. A near-optimal solution to partition this graph is achieved using spectral clustering minimizing loss of information. Experimental results show that the definition of the Covisibility Rate is a suitable measure which allows to compute the similarity matrix. This measure is based on the concept of feature locality, those features that are visible from the same pose. Furthermore, although this approach does not represent a significant computational load in the mapping process, an incremental spectral clustering algorithm can be used [13]. Finally, it must be noted that the proposed partitioning approach must be integrated into a hybrid mapping framework or a topological navigation system. When the robot is turning back or when traversing a loop for the second time, it can reaches a previously visited local map. In these situations, a loop-closing approach must be used to confirm the revisiting of the local map [3,4,12]. In this way, the unbounded growth of the topological representation when the robot moves through loops repeatedly will be avoided [13]. Future works will be focused on testing this map partitioning approach in outdoor scenarios. The concept of covisibility represent a different challenge in open areas, where it would be interesting to include more information in order to achieve a more
54
R. Vázquez-Martín et al. / Robotics and Autonomous Systems 60 (2012) 41–54
a
b
Fig. 17. Partitioning results in the MIT CSAIL dataset: (a) Brunskill et al. [11]; (b) the proposed approach. It can be noted that both results have been obtained in the same environment, but they belong to different runs.
robust criteria. Concepts and formalisms from the Information Theory research field could be also analysed to strengthen the Covisibility Rate definition. Acknowledgements This work has been partially granted by the Spanish Ministerio de Ciencia e Innovación (MICINN) and FEDER funds, and by the Junta de Andalucía, under project nos. TIN2008-06196 and P07-TIC-03106, respectively. The authors would like to convey special thanks to José María Martínez Montiel and Javier Civera for providing the monocular SLAM framework and their fruitful collaboration, to José Luis Blanco for providing his proposed partitioning approach and to Tomas Kollar for providing their results. The Intel Oregon and MIT CSAIL datasets were obtained from the Robotics Data Set Repository (Radish). Finally, we would like to thank the reviewers for their valuable comments that helped to improve the original manuscript. References [1] M. Bosse, P. Newman, J. Leonard, M. Soika, W. Feiten, S. Teller, An Atlas framework for scalable mapping, in: Proc. IEEE Int. Conf. Robotics Automation, 2003, pp. 1899–1906. [2] C. Estrada, J. Neira, J. Tardós, Hierarchical SLAM: Real-time accurate mapping of large environments, IEEE Transactions on Robotics 21 (4) (2005) 588–596. [3] A. Angeli, D. Filliat, S. Doncieux, J. Meyer, Incremental method for loop-closure detection using bags of visual words, IEEE Transactions on Robotics, Special issue on Visual SLAM 24 (5) (2008) 1027–1037. [4] M. Cummins, P. Newman, FAB-MAP: probabilistic localization and mapping in the space of appearance, International Journal of Robotics Research 27 (6) (2008) 647–665. [5] Z. Zivkovic, O. Booij, B. Kröse, From images to rooms, Robotics and Autonomous Systems 55 (2007) 411–418. [6] M. Paskin, Thin juntion tree filters for simultaneous localization and mapping, in: Proc. Int. Joint Conf. Artificial Intelligence, 2003, pp. 1157–1164. [7] U. Frese, P. Larsson, T. Duckett, A multilevel relaxation algorithm for simultaneous localization and mapping, IEEE Transactions on Robotics 21 (2) (2005) 196–207. [8] J. Rogers, H. Christensen, Normalized graph cuts for visual SLAM, in: Proc. IEEE/RSJ Int. Conf. Intelligent Robots Systems, 2009, pp. 918–923. [9] Z. Zivkovic, B. Bakker, B. Kröse, Hierarchical map building and planning based on graph partitioning, in: Proc. IEEE Int. Conf. Robotics Automation, 2006, pp. 803–809. [10] J. Blanco, J. González, J. Fernández-Madrigal, Consistent observation grouping for generating metric-topological maps that improves robot localization, in: Proc. IEEE Int. Conf. Robotics Automation, 2006, pp. 818–823. [11] E. Brunskill, T. Kollar, N. Roy, Topological mapping using spectral clustering and classification, in: Proc. IEEE/RSJ Int. Conf. Intelligent Robots Systems, 2007, pp. 3491–3496. [12] J. Blanco, J. Fernández-Madrigal, J. González, A new approach for large-scale localization and mapping: hybrid metric-topological SLAM, in: Proc. IEEE Int. Conf. Robotics Automation, 2007, pp. 2061–2067. [13] C. Valgren, T. Duckett, A. Lilienthal, Incremental spectral clustering and its application to topological mapping, in: Proc. IEEE Int. Conf. Robotics Automation, 2007, pp. 4283–4288.
[14] J. Neira, J. Tardós, J. Castellanos, Linear time vehicle relocation in SLAM, in: Proc. IEEE Int. Conf. Robotics Automation, 2003, pp. 427–433. [15] M. Chli, A. Davison, Automatically and efficiently inferring the hierarchical structure of visual maps, in: Proc. IEEE Int. Conf. Robotics Automation, 2009, pp. 387–394. [16] T. Bailey, Mobile robot localization and mapping in extensive outdoor environments, Ph.D. Thesis, University of Sydney, 2002. [17] J. Neira, J. Tardós, Data association in stochastic mapping using the joint compatibility test, IEEE Transactions on Robotics and Automation 17 (6) (2001) 890–897. [18] J. Tardós, J. Neira, P. Newman, J. Leonard, Robust mapping and localization in indoor environments using sonar data, International Journal Robotics Research 21 (2002) 311–330. [19] P. Piniés, L. Paz, J. Tardós, CI-Graph: An efficient approach for large scale SLAM, in: Proc. of the IEEE Int. Conf. on Robotics and Automation, 2009, pp. 3913–3920. [20] B. Williams, M. Cummins, J. Neira, P. Newman, I.R.J. Tardós, A comparison of loop closing techniques in monocular slam, Robotics and Autonomous Systems 57 (2009) 1188–1197. [21] K. Konolige, J. Bowman, Towards lifelong visual maps, in: Proc. of the IEEE/RSJ Int. Conf. on Intelligent Robots and Systems, 2009, pp. 1156–1163. [22] R. Vázquez-Martín, P. Núñez, J. del Toro, A. Bandera, F. Sandoval, Simultaneous mobile robot localization and mapping using an adaptive curvature-based environment description, in: Proc. 14th IEEE Mediterranean Electrotechnical Conf., 2008, pp. 343–349. [23] F. Reza, An Introduction to Information Theory, Dover, New York, 1994. [24] S. Thrun, W. Burgard, D. Fox, Probabilistic Robotics, The MIT Press, 2005. [25] J. Shi, J. Malik, Normalized cuts and image segmentation, IEEE Transactions on Pattern Analysis Machine Intelligence 22 (2000) 888–905. [26] U. von Luxburg, A tutorial on spectral clustering, Tech. Rep. TR-149, Max Planck Inst. Biological Cyb., 2006. [27] P. Núñez, R. Vázquez-Martín, J. del Toro, A. Bandera, F. Sandoval, Natural landmark extraction for mobile robot navigation based on an adaptive curvature estimation, Robotics and Autonomous Systems 56 (2008) 247–264. [28] J. Blanco, J.J. González, J. Fernández-Madrigal, Subjective local maps for hybrid metric-topological SLAM, Robotics and Autonomous Systems 57 (1) (2009) 64–74. [29] J. Montiel, J. Civera, A.J. Davison, Unified inverse depth parametrization for monocular SLAM, in: Proc. Robotics Science and Systems, 2006, pp. 16–19. [30] J. Civera, A.J. Davison, J. Montiel, Inverse depth parametrization for monocular SLAM, IEEE Transactions on Robotics 24 (5) (2008) 932–945. [31] E. Rosten, T. Drummond, Machine learning for high-speed corner detection, in: European Conference on Computer Vision, vol. 1, 2006, pp. 430–443. [32] R. Vázquez-Martín, R. Marfil, P Núñez, A. Bandera, F. Sandoval, A novel approach for salient image regions detection and description, Pattern Recognition Letters 30 (2009) 1464–1476.
R. Vázquez-Martín, M.S. Degree in Industrial Engineering and Ph.D. Degree from the University of Málaga, in 2002 and 2009, respectively. He worked as research assistant in the Electronic Technology Department of the University of Málaga during his Ph.D. His research interest during those years was simultaneous localization and map building, feature extraction, computer vision and software engineering. Currently, he is working at CITIC in R&D management in areas such as Ambient Intelligence and Health systems.
P. Núñez was born in Spain in 1978. He received the title of Telecommunication Engineering from the University of Málaga, Spain in 2003 and the Ph.D. Degree in 2008. In 2007 he joined the University of Extremadura as Assistant Professor in the Department of Tecnología de los Computadores y Comunicaciones. His research interests include mobile robot localization and environment description.
A. Bandera was born in Spain in 1971. He received his title of Telecommunication Engineering and Ph.D. Degree from the University of Málaga, Spain, in 1995 and 2000, respectively. During 1997 he worked in a research project under a grant by the spanish CYCIT. Since 1998 he has worked as Assistant Professor and Lecturer successively in the Department of Tecnología Electrónica of the University of Málaga. His research is focused on robotics and artificial vision.