Teresa A Vidal-Calleja

C Berger

J Sola

S Lacroix

Environment Modeling for Cooperative Aerial / Ground Robotic Systems

his paper addresses the cooperative localization and visual mapping problem for multiple aerial and ground robots. We propose the use of heterogeneous visual landmarks, points and line segments. A large-scale SLAM algorithm is generalized to manage multiple robots, in which a global graph maintains the topological relationships between a series of local sub-maps built by the different robots. Only single camera setups are considered: in order to achieve undelayed initialization, we present a novel parametrization for lines based on anchored Plücker coordinates, to which we add extensible endpoints to enhance their representativeness. The built maps combine such lines with 3D points parametrized in inverse-depth. The overall approach is evaluated with real-data taken with a helicopter and a ground rover in an abandoned village.his paper addresses the cooperative localization and visual mapping problem for multiple aerial and ground robots. We propose the use of heterogeneous visual landmarks, points and line segments. A large-scale SLAM algorithm is generalized to manage multiple robots, in which a global graph maintains the topological relationships between a series of local sub-maps built by the different robots. Only single camera setups are considered: in order to achieve undelayed initialization, we present a novel parametrization for lines based on anchored Plücker coordinates, to which we add extensible endpoints to enhance their representativeness. The built maps combine such lines with 3D points parametrized in inverse-depth. The overall approach is evaluated with real-data taken with a helicopter and a ground rover in an abandoned village.T

I. INTRODUCTION

In a aerial / ground multi-robot context, as in any multirobot context, the ability to build and share environment models among the robots is an essential pre-requisite to the development of cooperation schemes. Be it for exploration, surveillance or intervention missions, environment models are indeed necessary to plan and coordinate paths, but also to determine the utility of vantage points, to assess whether robots will be able to communicate or not, and to localize the robots in a common frame. In particular, 3D information on the environment is required: not only the robots evolve in the three dimensions, but the determination of vantage points calls for visibility computations in the 3D space. Also, vision is here the primary environment sensor to build environment representations: besides the fact that images carry a lot of information on the environment, vision is passive, it has the main advantage to perceive features that are arbitrarily far away, and it is the only sensor that can be exploited on-board micro-drones -that have undoubtedly a promising future. Approach. Our aerial / ground context requires the resolution of the two following issues: on the one hand the mapping approach must be distributed so as to cope with the communications constraints, and on the other hand the map structure must allow data association and fusion, coping with the fact that the sensors or viewpoints can be very different among the different robots. The contribution of this paper is therefore twofold.

We first propose a distributed mapping approach in which robots build series of sub-maps using a classical EKF-based SLAM paradigm. The overall spatial consistency of the maps among the robots is ensured by an optimization process, that takes into account various inter-robot and absolute localization estimates. This work stems from the work on hierarchical SLAM proposed by Estrada et al in [START_REF] Estrada | Hierarchical SLAM: Real-time accurate mapping of large environments[END_REF], which relies on a hierarchical representation of the map: the global level is an adjacency graph, where nodes are local maps (or "sub-maps"), and edges are relative locations between local maps. In a multi-robot context, various events can trigger loop closures and later map merging, namely rendezvous between robots, landmark correspondences ("map matching") and absolute localizations provided by GPS fixes or by matches with an a priori existing map. These events exhibit a cycle on the graph of the map poses, and thus define constraints that allows the system to refine the estimates of the sub-maps origins.

Among the three possibilities to close loops in the overall graph of maps, map matching is the most difficult to achieve when maps have been built by heterogeneous robots, i.e. with different kinds of sensors or vantage points. To be able to match maps, we need to represent in maps characteristics of the environment that are invariant with respect to large viewpoint changes. For this purpose, we exploit line segments detected in the images in order to build 3D wireframe maps that can be matched among the robots. This calls for a dedicated implementation of the EKF-based SLAM approach, which relies on the undelayed initialization of anchored Plücker 3D lines.

Outline. Sections II and III present the localization and mapping approach to deal with multiple robots. The approach is based on the scalable SLAM approaches, known as hybrid or hierarchical, that consider sub-maps and graph levels. Section IV is devoted to the building of a 3D wireframe model on the basis of line segments detected in monocular imagery. It introduces the anchored Plücker line parametrization to use segments as landmarks in a monocular EKF SLAM approach. Finally, Section V present results obtained with data gathered by a helicopter and a ground rover.

II. HIERARCHICAL SLAM

The multiple robot localization and mapping problem is formulated using sub-maps in a similar manner to hierarchical SLAM in [START_REF] Estrada | Hierarchical SLAM: Real-time accurate mapping of large environments[END_REF] or hybrid metric-topological SLAM in [START_REF] Blanco | Subjective local maps for hybrid metric-topological SLAM[END_REF], where there are two levels: metric (local sub-maps), and topological (global graph).

The topological (global) level represents the relationships

x i m = » xi mi - , (1)
where xi is the current pose of the robot, and mi = [l i 1 . . . li m ] ⊤ is the set of m mapped landmarks, both with respect to the i-th lrf. EKF-SLAM keeps a Gaussian estimate

x i m ∼ N {x i m , P i m } of this map, namely xi m = » xi mi - , P i m = » Px i x i Px i m i (Px i m i ) ⊤ Pm i m i - . (2)
The maps are built sequentially as mentioned above. Once a threshold is passed, either in number of landmarks or in robot's uncertainty, a new map is created. Let us consider for now that no information is shared between these sub-maps, thus the new map starts in a lrf with robot's pose and error covariance equal to zero.

Topological

The global origins of the maps in the wrf are computed as the compounding of the previous global origin with the relative transformation between sub-maps, Si+1 = Si ⊕ s i+1 i . The current position of the robot in wrf is computed as Xi = Si ⊕ xi. Also, the global map can be obtained through,

Mi = Si ⊕ mi . ( 4
)
Mean and covariances of the Gaussian estimates are obtained by regular linear-Gaussian propagation using the Jacobians of ⊕ and ⊖.

Considering the relative transformations between local maps as past robot poses, we note that the global level can be viewed as a sparse delayed-state pose-SLAM [START_REF] Eustice | Exactly sparse delayed-state filters for view-based SLAM[END_REF], where local maps are like landmarks hanging from robot poses in wrf. The main difference is associated to the fact that the state-space in our case contains relative poses xi, instead of absolute poses Si.

Loop Closure. At the global level, a loop closure corresponds to a cycle in the graph, that appears for instance when a relative position estimate between non-consecutive sub-maps is established by a map matching process. Such a cycle defines a constraint between a series of relative transformations:

h(s) = s 1 0 ⊕ s 2 1 • • • ⊕ s 0 i = 0 (5) = Si ⊕ s 0 i = 0 . ( 6
)
Given that h(s) is not linear due to the angular terms, the enforcement of this constraint can be formulated as a nonlinear constrained optimization problem. A solution for instance could be based on the Iterative EKF [START_REF] Estrada | Hierarchical SLAM: Real-time accurate mapping of large environments[END_REF]: the part of the state involved in the loop closure at global level then becomes correlated, resulting in a non-sparse covariance matrix Ps.

Note that for a single robot, local maps are obtained sequentially, hence the relative transformation between the local maps is given by the last robot pose in the current lrf,

s i+1 i = xi.

III. MULTIPLE ROBOTS

A hierarchical/hybrid SLAM approach in the multi-robot case seems a priori straightforward: each robot manages a set of sub-maps and a global graph of poses. But the interests of multi-robot mapping arise of course when the robots exchange mapping or position information, which allows to enhance the spatial consistency and to build up a multi-robot global graph of map poses (origins of local sub-maps).

In general when multiple robots are exploring the same area, they meet sooner or later or their maps partially overlap: these events will allow the system to establish connections between robot locations [START_REF] Vidal-Calleja | Evendriven loop closure in multi-robot mapping[END_REF]. The events we have identified are: (i) robots rendezvous (Figure 1 All these events create a link between the robots' global levels. Whereas in a single robot case a loop closure only occurs when the robot revisits a previously mapped place, in a multi-robot case these events trigger loop closures: any cycle that appears in the overall graph defined by the concatenation of each robot graph (the multi-robot graph) is a loop closure. The compounding of all relative transformations that define a cycle is equal to zero as in Eq. 5, and a batch optimization over the transformations can be performed. Note that to obtain a cycle in the graph defined by the concatenation of two robots global levels, at least two events between these robots are required.

The main advantage to exploit a hierarchical map structure in multi-robot mapping is the low communication bandwidth required among the robots: only the individual graphs need to be exchanged to update the multi-robot graph. We will however see that in the map-matching case, the sub-maps that match must also be communicated: but they have naturally already been exchanged to establish the matches. Most importantly is that in the general case, only marginal distributions of each node has to be communicated, as opposed to the full joint distributions of the graph. As we will see later, each robot performs its own optimization based on the minimal cycle. Robot Rendezvous. The event occurs when a robot observes another robot (partial rendezvous) or when both robots observe each other (full rendezvous). We will focus on the case when the relative transformation between two robots it is fully recovered, from the information obtained through a partial or full rendezvous.

New local maps are created in the instant of the rendezvous, then the current robot poses are promoted to the global level. In this way, the observed transformation z naturally produces a link between the maps' origins Si and Sj on the global level, thus z = s i j .

Matching common information. There exist at least two different ways to match common information. For example, using information completely independent to the SLAM, e.g.

image's descriptors matching (SIFT, SURF), image indexing techniques or scan matching (ICP). A common way to produce a map of poses [3] is to find the rotation and translation between two robot poses using one of these techniques, as opposed to tracking features. A second way to match common information is using the available information of the maps (position and uncertainty in global level

). This is usually done using the current position of the robot or robots in the wrf. Particularly, when no information is shared between submaps, which is the case between sub-maps built by different robots, but an approximation for the sub-maps that are built by the same robot, the origin of the local sub-map is the only state that changes after the constraint is applied. It can be easily shown that mi-1 ⊥ mi | xi-1, i.e., given the relative transformations, the consecutive local sub-maps are independent. Notice that the global poses S are d-separated of all possible paths between any pair of sub-maps m or even M. Note that the approximation can be palliated using conditionally independent local maps as proposed in [START_REF] Piniés | Scalable slam building conditionally independent local maps[END_REF].

Also, in the multi-robot case it can happen that two different events create a link on the same node, i.e. if a map-matching is established after a rendezvous. To avoid this problem, new sub-maps are started after an event occurs. In the case of receiving GPS fixes once in a while, the fact of starting a new local map at the time t when the fix is received, removes the dynamics aspects of the internal local maps setting a fix pose at global level.

Similarly, to avoid counting information twice if one eventually wants to merge all the sub-maps, after a mapmatching event both sub-maps should be fused into a single sub map. This has the disadvantage that the sub-maps must be shared among the two robots, but on the one hand this is a pre-requisite for at least one robot to establish the matches,

d = n v π n v L O Q P2 P1
Fig. 2. Geometrical representation of the Plücker coordinates and subvectors n and v. The line L and the origin O define the support plane π. The line's sub-vector n ∈ R 3 is orthogonal to π. The sub-vector v ∈ R 3 is a director vector of the line, and lies on π. This implies

n ⊥ v. The closest point to O is Q = (v × n : v ⊤ v) ∈ P 3 . The distance from L to O is d = n / v ,
showing that v acts as the homogeneous part of L, thus exhibiting inverse-depth properties.

and on the other hand such events will occur when the robots are within communication range.

IV. LINE SEGMENTS FOR MONOCULAR EKF-SLAM

We explore the possibility of using linear landmarks or line segments, which provide an improved semantic over points: lines inherently contain the notions of connectivity and boundary, which open the door to potential automatic interpretations of the environment, both at the metrical and topological levels. A 3D model based on lines, akin to a wireframe model, can further allow the possibility to build higher level entities (planes, closed regions, objects).

Plucker lines (PL). Plücker lines have been used in major vision works with straight 3D lines [6], [7]. These works, and other ones referenced therein, are based on Structure From Motion approaches. We showed in [8], drawing on previous work in [9], the way to employ Plücker lines to achieve undelayed initialization of lines in monocular SLAM.

The Plücker coordinates for a line consist of a homogeneous 6-vector in projective space, L ∈ P 5 . In this vector, one can identify two sub-vectors 1 , L = (n : v), with {n, v} ∈ R 3 , with which an intuitive geometrical interpretation of the line in 3D Euclidean space is possible (Fig. 2):

• The sub-vector n is a vector normal to the plane π supporting the line L and the origin O. • The sub-vector v is a director vector of the line.

• The distance from the line to the origin is given by d = n / v . The two most remarkable properties of the Plücker line are its linear transformation and projection equations and the inverse-depth behavior of the sub-vector v, something that will allow us to design appropriate initialization methods 1 We use a colon (:) to separate the non-homogeneous and homogeneous parts in projective space. for EKF. For details on the use of Plücker lines in monocular EKF-SLAM see [START_REF] Solà | Undelayed initialization of line segments in monocular SLAM[END_REF]. [START_REF] Civera | Inverse depth parametrization for monocular SLAM[END_REF]. Anchoring the Plücker line means referring it to a point p0 in 3D space different from the origin (Fig. 3). The anchor point p0 is chosen to be the optical center at initialization time. The effect of such anchoring is that, on subsequent EKF updates, only the accumulated errors from the anchor p0 to the current camera position T are considered, in contrast with regular Plücker lines where the error accounts for the absolute motion of the sensor from the origin of coordinates.

= p 0 + (v × n)/(v ⊤ v) n v π Λ !"#$%&'"($ )!)*!"#$%&'"($

Anchored Plücker lines (APL). Now, we add an anchor to the parametrization to improve linearity, as it is done for points in the inverse-depth parametrization

The anchored Plücker line (APL, Fig. 3) is then the 9-vector:

Λ = " p0 n v # ∈ R 9 (7)
Transformation and projection expressions are as follows:

Frame transformation: Given a (camera) reference frame C specified by a rotation R and a translation T, an anchored Plücker line Λ in global frame is obtained from a line Λ C in frame C with the affine transformation

Λ = " R 0 0 0 R 0 0 0 R # •Λ C + " T 0 0 # . ( 8
)
The inverse transformation is performed with

Λ C = " R 0 0 0 R 0 0 0 R # ⊤ • " Λ - " T 0 0 # " . (9)
Un-anchoring: given an anchored Plücker line Λ = (p0, n : v), its corresponding (un-anchored) Plücker line L is computed with

L = » n + p0 × v v - ( 10
)
Pin-hole projection: Projection is better expressed for regular Plücker lines. Given a perspective camera defined by the intrinsic parameters k = (u0, v0, αu, αv), a Plücker line L C = (n C : v C ), expressed in the camera's coordinate system, projects into a homogeneous line l ∈ P 2 in the image plane with the linear expression [START_REF] Bartoli | The 3D line motion matrix and alilgnment of line reconstructions[END_REF], [START_REF] Solà | Fusing monocular information in multi-camera SLAM[END_REF]

l = K•n C αv 0 0 0 αu 0 -αvu 0 -αuv 0 αuαv •n C ∈ P 2 . ( 11
)
where K is called the Plücker intrinsic matrix.

Transformation and projection: Transformation and projection are accomplished with a transformation to the camera frame (9), un-anchoring (10), and projection [START_REF] Solà | Fusing monocular information in multi-camera SLAM[END_REF]. This can be composed in one single expression with:

l = K•R ⊤ •(n -(T -p0) × v) ∈ P 2 , ( 12
)
in which we will notice:

• The linear behavior with respect to n.

• For accurate estimates of the camera motion (T -p0), which is true for observations shortly after initialization, the linear behavior with respect to v, which additionally exhibits inverse-depth behavior. Expression [START_REF] Fabiani | Autonomous flight and navigation of vtol uavs: from autonomy demonstrations to out-of-sight flights[END_REF] gives us the means to analyze line observability as a function of the camera motion (Fig. 3(b)). Let (T -p0) be the camera motion since initialization time. Because the projected line l is expressed in projective space, any vector l ′ = αl, with α ∈ R, represents the same line and the line sub-vector v is only observable if the vector (T -p0) × v is not proportional to n. If we remind the Plücker constraint stating that v ⊥ n, this resumes to a motion (T -p0) that does not belong to the plane π. As the anchor p0 belongs to this plane, we conclude that the new camera position T must escape the plane π in order to fully observe the line.

Segment endpoints. The line's endpoints in 3D space are maintained out of the filter via two abscissas defined in the local 1D reference frame of the line, whose origin is at the point q = p0 + v×n v ⊤ v , the closest point to the anchor (see Fig. 3(a)). Given the line Λ = (p0, n : v) and abscissas {t1, t2}, the 3D Euclidean endpoints are obtained with

pi = q + ti • v v ∈ E 3 , i ∈ {1, 2}. (13)
Back-projection of an APL. APL back-projection consists in defining a Plücker line L from a segment observation l, and anchoring it at the camera position T to obtain an APL Λ. These operations are detailed below.

Back-projection of a Plücker line: In the camera frame, the Plücker sub-vector n C resulting from the observation l is simply

n C = K -1 l. (14)
The sub-vector v C is not measured and must be obtained by injecting prior information. We give here the formulation and refer the reader to [START_REF] Solà | Undelayed initialization of line segments in monocular SLAM[END_REF] where full explanations and justifications are provided. The sub-vector v C is obtained with

v C = Eβ, (15)
where E ∈ R 3×2 is a matrix transforming vectors β ∈ R 2 in the Cartesian plane into the plane in R 3 supporting the line, defined by the optical center and n C . It is constructed as a base spanning the plane orthogonal to n C , i.e., the two non-measured DOFs,

E = [e1 e2] , n C ⊥ e1 ⊥ e2 ⊥ n C , (16)
the base vectors ei being chosen so that e1 is parallel to the image plane,

e1 = ˆnC 2 -n C 1 0 ˜⊤ p (n C 1 ) 2 + (n C 2 ) 2 and e2 = n C n C ×e1. (17)
The vector β = (β1, β2) must be provided as prior. To help selecting an appropriate one, we give here some intuitive notions about β: Anchoring: This step is trivial as we have interest in making the anchor p0 coincide with the current camera position, which is the origin when we are in camera frame,

Λ C = 2 4 0 n C v C 3 5 . (18)
Back-projection and transformation: The operations above plus the transformation to the global frame (8) can be composed and written as a single-step function of R, T, l and β,

Λ = " p0 n v # = 2 4 T RK -1 l REβ 3 5 . ( 19
)
ALP initialization and update in EKF-SLAM. We now have expressed all the basic relations to deal with APL, that are useful to exploit them in an EKF framework. The line initialization and update equations are not depicted here, details can be found in [START_REF] Solà | Undelayed initialization of line segments in monocular SLAM[END_REF].

V. EXPERIMENTAL RESULTS

The environment is "semi-structured", in the sense that it does not contain as many buildings as an urban area -and the building themselves do not contain many straight lines or perfect planar areas, see Figures 4.

The ground robot Dala is an iRobot's ATRV platform, equipped with a calibrated stereo-vision bench made of two 1024 × 768 cameras with a baseline of 0.35m. The helicopter Ressac is controlled by algorithms developed at Onera [START_REF] Fabiani | Autonomous flight and navigation of vtol uavs: from autonomy demonstrations to out-of-sight flights[END_REF], and is also equipped with a calibrated stereo vision bench made of two 1024 × 768 cameras, with a 0.9m baseline (Figure 5). Involved processes. Unfortunately, because of engineering issues encountered during the data collection, no inertial or odometric motion estimates are available2 . As a consequence, we use a visual odometry approach based on stereo vision for the motion prediction steps of the EKF SLAM algorithms -all the results presented hereafter have therefore been obtained using exclusively visual data.

The SLAM algorithms integrate two types of observations from only one camera; image points ( parametrized as inversedepth points) and image line segments (parametrized as anchored Plücker line segments). At each image acquisition, point observations are firstly processed: the resulting updated motion estimate is exploited by the line segment tracker, and line landmarks observations are then processed. A heuristic is used to select the points that will be used as landmarks: the image is regularly partitioned in 3 × 3 regions, in which one ensures that at least 2 landmarks are being tracked. As for the lines, all the ones whose length is grater than 60 pixels are retained as landmarks.

Point landmarks are Harris interest points, that are matched from one view to the other with the group based matching procedure described in [START_REF] Lemaire | Vision-based slam: Stereo and monocular approaches[END_REF]. We use different initialization parameters for inverse depth point parametrization with Dala and Ressac. Dala's parameters are ρinit = 0.1 m -1 and σρ = 0.2 m -1 , while Ressac's parameters are ρinit = 0.025 m -1 and σρ = 0.0125 m -1 (the points are initialized at 40m, which is its the helicopter average elevation over the terrain.

We use the algorithms presented in [START_REF] Berger | DSeg: Direct line segments detection[END_REF] to detect and track segments. For the estimation part, the a priori parameters used in the experiment for the APL are β = (0.025, 0), σ

VI. CONCLUSION

We have explored the use of a multiple local maps technique for multi-robots according to a hierarchical SLAM approach, in which loop closures are integrated through an optimization process (an Iterative EKF). Loop closures are triggered using multi-or single-robot events such as finding information correspondences between unconnected local maps, rendezvous between two robots or GPS fixes. Therefore, the mapping problem is relegated within the local sub-maps, and is decorrelated from the global localization problem, making our approach akin to a cooperative localization approach. The approach is distributed, and the graph level is the sole information that must be exchanged between the robots. It is well suited to a multi-robot context, and it can in particular handle all the possible localization means, from odometry to absolute localization with respect to an initial model.

In order to build more meaningful landmark maps and to be able to match data acquired from very different vantage points (or even different sensors), we have proposed to use line segments to build a wireframe model. An important contribution of this paper is the new line segment parametrization for undelayed initialization. We add an anchor to our previously proposed parametrization [START_REF] Solà | Undelayed initialization of line segments in monocular SLAM[END_REF] to improve the linearity, exactly as it is done with inverse-depth points. Thanks to the crosscorrelations stored in the EKF, the anchor allows the filter to account for accumulated errors only from the anchor to the current position, not from the origin of coordinates. Ongoing work is a more detailed analysis of different line parametrization in view of their linearity behavior.

Heterogeneous visual landmarks are proposed to map semi-structured environments. We combine inverse-depth points and anchored Plücker line segments. Our experiments show that inverse-depth points, that are numerous in the scene but not very robust to large viewpoint variations, play a crucial role for robot localization, while Plücker line segments, that are seldom in semi-structured environments but allow detection and matching from disparate viewpoints, are well suited to build a 3D model that exhibit some of the environment structure.

s j i between local

  maps i and j. The metric level contains the local maps, composed of the set of landmarks mi and the current robot pose xi. Each local map stores information in its own lrf. At a certain point a new local map is generated with the robot pose acting as the new local reference frame (lrf ). Thus the robot pose xi truly represents the relation between the previous map and the new one, and one can set s i+1 i = xi. Other non-correlative relations s j i may be established between maps as we will see. Based on simple frame compositions, information in the world reference frame (wrf) is also available for the origins Si of each map, and for the map itself Mi if it is required. Metric Level. The local or metric level contains the featurebased locally referred stochastic maps, built with the standard EKF-SLAM. The i-th local map is defined by

  Level. The global or topological level is represented as an adjacency graph in which origins of local maps Si in wrf are nodes, and the links between them are the relative transformations s i+1 i . Let us define the global level as the Gaussian state s ∼ N {ŝ; Ps} of relative transformations between local maps, namely:

  (a)), (ii) common information match within sub-maps (Figure 1(b)), and (iii) receiving external information that provide absolute localizations (e.g. a GPS fix (Figure 1(c)), or feature matches with an existing environment model. The latter is not exactly a multi-robot loop closure, it provides a link between a lrf and a global geo-referenced frame: this yields the possibility to establish a link with another robot that has already been absolutely localized once.

  Fig. 1. Loop-closing events for multiple robots.

  Geometrical interpretation of anchor p 0 and sub-vectors n and v. The closest point to the anchor is q

  Observability conditions. The line is 3D-observable if and only if the motion vector (T-p 0 ) does not lie on the line's support plane π.

Fig. 3 .

 3 Fig. 3. The anchored Plücker line.

Fig. 4 .Fig. 5 .

 45 Fig. 4. Aerial view of the experiment area (obtained on www.geoportail.fr). The robot Dala evolves in the north-west group of buildings, while the helicopter Ressac is flying along a swathing pattern oriented diagonally between the north-west and south-east groups of buildings, at an elevation of about 40m. The red rectangle approximately represents the field of view of the image acquired by Ressac shown on top-right of the figure. On this latter image, the red angular sector shows approximately the field of view of Dala when taking the bottom-right image.

  β 1 = 0.025 and σ β 2 = 0.0375 for both robots. The prediction of the line segment position in the image, required for the segment tracker, is done using the projection of the 3D line segment into the image frame. New local maps are created when 100 landmarks (combining points and line segments) are in the map. Immediately after, the current robot's pose is the new relative transformation in the global graph. Enforcing loop closures. In the experiments, we have two types of events: rendezvous and image to image matching. • The rendezvous is emulated using matches of interest points perceived by the two robots using their current image frames. The 3D coordinates of the points in each robot frame are obtained by stereo vision: as a result, the point matches yields an estimate of the relative robot position. • The image matching event recovers the relative transformation between the current robot's pose and a past pose from a different robot (origin of a local sub-map), using also matches of interest points between their respective frames. Figure 7 shows results obtained by the integration of events between Dala and Ressac. Dala starts at the entry of the northwest group of buildings, with no uncertainty in its local map, but also in the wrf : the first Dala sub-map is the origin of the world. Ressac starts above Dala, and heads towards southeast. A first rendezvous event occurs immediately after start, and Ressac is localized in Dala's reference frame. A second event occurs after Ressac comes back from the south-east village, passing above a place previously visited by Dala. The effects of the image to image matching event are shown in Figure 6. The figure also shows the image frames that were evaluated for the matching: new local maps are initiated afterward for both robots. Note that Ressac's uncertainty in height is pretty large, especially before the second event: the visual motion estimates are indeed not very precise in the vertical direction, because Ressac stereo baseline is small with respect to the depth of the perceived pointsand the integration of points and lines in the sub-maps does not reduces much the elevation estimates. However, after the image to image matching event, the elevation of Ressac and the origins of all the built maps are strongly corrected.

Fig. 6 .Fig. 7 .

 67 Fig. 6. Top: Image frames from both robots before the event. Green squares represent interest point currently considered as landmarks, yellow squares represent interest points just initialized as landmarks. The line segments are in blue, with endpoints in red. Yellow ellipses are the uncertainty in the image view. Bottom: Event effect in the global map, the sub maps origins expressed in the wrf are the large ellipsoids -only 3D line segments landmarks are shown here.

• The "image to image" association produces a link directly between images, that are associated to certain poses Si and Sj . Note, the robot poses have to be part of the global graph when this event occurs.

• A vector β = (1, 0) is a line parallel to the image plane at a distance d = n C from the optical center. • A vector β = (0, 1) is a line perpendicular to the detected segment l in the image. • The distance from the optical center to the line is given by d = n C / β .

GPS ground truth could neither be recorded.

Acknowledgments. This work has been partially founded by the Action project (action.onera.fr). Cyrille Berger is

founded by a Cifre contract with Thales Optronics. We would like to especially thank the Onera "Ressac team" for all their help for the experiments.