Generating effective exploration from a sensor space representation of ...

14 downloads 0 Views 272KB Size Report
Apr 14, 1997 - building local re exes will have to deal with some awkward properties of the subsurface ...... of spatial representations, TR, Austin, Texas, 1990.
Generating e ective exploration from a sensor space representation of robot perception Leo Dorst, Heleen Erkamp

RWCP Novel Functions: SNN Laboratory Amsterdam, Dept. of Mathematics, Computer Science, Physics and Astronomy, University of Amsterdam, Kruislaan 403, NL-1098 SJ Amsterdam, The Netherlands [email protected]

April 14, 1997 Abstract

When a mobile robot moves around in an unknown world, without a way of establishing its position, it needs to use its sensor data to navigate. The common approach is to interpret the sensor data to a geometrical model of the environment, and base the navigation and exploration strategies on that model. In this paper, we attempt to generate explorative motions based on the raw sensor data, for the special, idealized case of a robot with exact noise-free distance sensors in a rectangular room. In the space spanned by the sensor values, the environment is represented by subsurface of a dimensionality equal to the number of degrees of freedom of motion. Exploration is: establishing this surface; navigation is: using it to generate goal-directed motions. We show that the approach seems promising in simple cases, but touch on the diculties in extending it to more realistic situations, arising from the awkward properties of the sensor space subsurface in the general case: discontinuity, self-intersection, and degeneracy.

Keywords: navigation, exploration, geometric representation, sensor space, distance senors Submitted to: AFPAC'97: Algebraic Frames for the Perception-Action Cycle, Kiel, Germany, September 8-9, 1997.

1

1 Towards minimal world representations for navigation and exploration Robot motion planning has traditionally taken rather involved representations in which to perform its computations: sensor data is made into a geometrical model of the task space, which may subsequently be re-represented in con guration space [2, 6]. But recently, some work has been done in seeing how far the robot could get on the basis of sensory data alone, with minimal capabilities. To get the maximum out of this limited data, one needs to use all structure present in it. Donald and Jennings [1] have made a formal study of the algebraic structure of the sensory data (it forms a lattice), and especially of the coarseness of the `perceptual equivalence classes' of nondistinguishable locations. Kuipers [5] used a hierarchical model based on sensor values. Krose and Eecen [4] attempted to impose a Kohonen neural network onto the hypersurface of sensor values induced by the environment of a mobile robot in an oce. Estimating the local dimension of the sensory subspace using principal component analysis (a check to nd how wild the hypersurface was) gave strange results. That prompted us to a more detailed analysis of the kind of sensor spaces they were dealing with, based on simpli ed distance sensors in idealized oce-like environments. This led to a Master's thesis [3], the companion to this paper. Throughout, we try to make explicit the assumptions on the capabilities of the robotic creature that needs to perform the navigation, hoping to establish a minimal complexity of a robot capable of a speci ed motion behavior.

2 Representation of a sensed world Consider a robot with n exact distance sensors, arranged in a crown in a plane parallel to the

oor, in a 2-D rectangular room with obstacles. When the robot moves around, the distance values will vary. Each sensory state of the robot can be represented in a n dimensional sensor space, of which each dimension and axis corresponds to a distance sensor. In this space, not all values are possible, since the lay-out of the room restricts the sensor values. In fact, since the robot motions have three degrees of freedom, we expect a 3-dimensional subsurface to contain all sensor values (in the noise-free case). Motions of the robot result in the robot's representational point to move over this subsurface. We would like to use this view of the representation of sensor data as an inspiration to design e ective (and ecient) exploration and navigation algorithms. Since little interpretation of sensory data would be necessary, such algorithms would be fast, and could conceivably be seen as `re exes', responding immediately by actions on perceptions. We can see beforehand that this will not go all the way to supplanting planning, and that some maintenance of a global representation (but not necessarily geometrical task space) will be necessary. Indeed, even a less ambitious scheme of building local re exes will have to deal with some awkward properties of the subsurface in sensor space, namely:  discontinuity The surface is not smooth, and not even continuous: when a sensor looks at an obstacle in the room, pointing close to its contour, then a small motion will make the sensor beam `slide o ' the obstacle and point to the wall behind. This leads to a sudden, discontinuous drop on the associated sensor value, and therefore to a discontinuity in the surface of feasible sensor values.  self-intersecting Not only is the surface discontinuous, it is also potentially self-intersecting, more likely to be so with a small number of sensors. For with, for example, 3 sensors at right angles to each other, a robot tightly in the upper right corner of the room observes the same distance values as when it is placed 90 degrees turned in the upper left corner, in a similar position. These two states are represented by the same point in sensor space. 2

 degenerate

The surface can also be degenerate, i.e. even in the continuous parts not locally 3-dimensional, corresponding to the 3 degrees of freedom of motion. It is more likely to be degenerate with a small number of sensors. An example for the robot with 3 sensors occurs when two of the sensors point to the same wall, and the third at an opposite but parallel wall: a motion parallel to those walls does not lead to a change in sensor values and is therefore undetectable. By example, we introduce the terms which we will use to describe the di erent concepts which will play a role in the analysis. Consider a robot with three sensors s1 , s2 and s3 , placed in a room. The con guration of the robot is determined by position and orientation (x; y; ) and can be viewed as a point in its con guration space. The sensory state of the robot consists of the values of its sensors. With di denoting the value of si , this is (d1 ; d2 ; d3 ) for the 3-sensor robot. This can be interpreted as a point in the sensor space of the robot, which is thus the 3-dimensional space spanned by axes ei along which the value di of si is plotted. For n sensors, the space is n-dimensional. Since the robot has a limited number of degrees of freedom (denoted by m), the observations by the n sensors cannot assume arbitrary values. In general, they will lie on an m-dimensional subspace of the n dimensional sensor space. We will refer to this as the sensor subsurface. Each sensor is directed towards a particular wall; let that wall for sensor si be W(si ). We will de ne as the aspect of the robot in this state the walls the sensors perceive, so the aspect in this situation is the ordered triple (W(s1 ); W(s2 ); W(s3 )). Con gurations of the robots with the same aspect are said to belong to the same aspect class, denoted as [W(s1 ); W(s2 ); W(s3 )]. In much of this paper, we restrict ourselves to a xed orientation; then we obtain positional aspect classes. `Belonging to the same aspect class' (positional or not) is an equivalence relation on con gurations, and leads to a partition in con guration space (for xed orientation in the case of positional aspect classes). The sensors thus induce a description of the con guration space of the robot by the aspect classes and their connections. Within each aspect class the robot can move freely, since there are no obstacles (if there would be, at least one sensor would have a di erent aspect at some con guration, and this would create a di erent aspect class, which is a contradiction). Two aspect classes that are connected along a line are called neighbors; a point robot could freely move between the two aspect classes. The aspect classes can also be found as a partition of the sensor surface into patches. Since in our example the walls are straight, and our sensor values di are distances, for xed orientation there is a simple variation of the sensory state with position, within the same aspect class: it is linear. In the three-dimensional sensor space, for a xed orientation the sensory states within the same positional aspect class are thus represented by a linear surface. These we call facets (the surface looks like that of a diamond), each facet can be characterized by the aspect class [W(s1 ); W(s2 ); W(s3 )] (together with the orientation ). The aspect classes are what [1] calls the perceptual equivalence classes. Since this term might be applied to boths aspects and facets, we have preferred to distinguish the two by giving them di erent names in this paper ([1] works mostly in task space and does not need to distinguish the two).

3 Examples of sensor spaces In this simple case study, a robot moves in a rectangular room. Though the example was initially intended only to develop the intuition on sensor spaces, we soon found that this case was hard enough and we went into depth on this special case, to the expense of other, more realistic problems. In most of the cases studied, the robot performs pure translations, keeping its orientation xed, and we thus restrict ourselves to positional aspect classes. 3

x



d

P Figure 1: One sensor perceiving one wall

3.1 One sensor, one wall: the canonical situation

All perceptions are derivable from compositions of the canonical situation of one sensor looking at one wall, see gure 1. The distance d measured is:

d(x; y; ) = cosx  :

This distance changes with changes in (x; y; ) according to the Jacobian:   @d @d @d   = 0 cos1  xcossin2  : J (x; y; )  @x @y @ It follows from this that: @d : tan  = d1 @

(1) (2) (3)

This does not necessarily mean that we can determine  from the perceived distances. This is only true if the robot can measure the variation of  in radians, since otherwise the estimation of @d d @ as  gives an unknown scaling constant. Note that eq.(3) cancels scaling constants in d, and that d and d can always be measured in the same units: they are sensor values. Under certain assumptions, the robot is indeed capable of measuring the angular increments: If (1) it is known that the output port corresponding to the  parameter is a rotation, then the robot can perform a pure rotation. It should then increase it until the measured d values repeat (i.e. (2) it needs memory, and (3) the capability to compare). If (4) it was in a general position (and it probably was), then it has turned 2. If (5) the actuation of the  port is linear in , then the rescaling factor c follows. Then, having , it can establish the perpendicular distance to the wall to which the distance was measured, in the same units as the sensed distance d. In the following, we will not assume that all these conditions hold. As a consequence, we cannot use the relative depth ow to determine  and x (and y possibly from another sensor looking at another wall), but have to use simpler means of establishing relative position and orientation of the robot. In a general problem, we will have n sensors, in arbitrary placement on the robot, in an arbitrary room. We discuss how the various aspects of the problem determine the sensor surface.

3.2 The e ect of varying the number of sensors

1. One sensor When the robot has only one distance sensor, it perceives the room in a highly degenerate way. The positional aspect classes for the robot in a xed orientation are sketched in gure 2. In both, positions parallel to the wall that labels the aspect class are indistinguishable. For each constant angle  (except degenerate angles, which are multiples of =2), the sensor space consists of two facets, and in each of those d is linear in x and y. The situation in this 1-D space is strongly degenerate, and a drawing as in gure 2 is not very useful: any sensor value can occur in either aspect class and is thus not to helpful in locating the robot. Basically, d only provides a linear measure for the proximity (rather than the distance) of the walls, without identifying them. 4

w1 s1

[w1 ]



w2

[w2 ]

[w2 ] [w1 ]

d Figure 2: One sensor perceiving a room, and its sensor space

d2

s1  s2

[w1 ; w2 ]

[w1 ; w2 ]

w1 [w1 ; w3 ]

[w1 ; w3 ]

[w2 ; w2 ] [w2 ; w3 ]

w2

[w2 ; w3 ] [w2 ; w2 ]

w3

Figure 3: Two sensors perceiving a room, and the sensor space

5

d1

2. Two sensors If the robot has two sensors, the positional aspect classes are as sketched in gure 3. Two of these aspect classes, [w1 ; w2 ] and [w1 ; w3 ] have sensors that point to non-parallel walls, and these are therefore usable as guides to the positioning; the other two [w2 ; w2 ] and [w1 ; w3 ] are incapable of distinguishing motions parallel to one of the walls, and are thus not really better than using one sensor in their aspect classes. Figure 3 also sketches the corresponding sensor space. The facets corresponding to [w1 ; w2 ] and [w1 ; w3 ] are clearly visible; the facets of [w2 ; w2 ] and [w1 ; w3 ] are degenerated to lines. Yet we will call these facets, since they are the sensor space representation of (positional) aspect classes. Note that the case of one sensor ( gure 2) is subsumed in this gure by projection to the d1 axis. 3. Three sensors When we add a third sensor, some of the degeneracy is resolved. The aspect classes and the sensorspace surface are indicated in gure 4. Again there is a degenerate facet, corresponding to an aspect class where the sensor basically acts as if it were 1 sensor, since all three are looking at parallel walls: it is aspect class [w1 ; w3 ; w1 ]. Note that gure 3 is subsumed in this gure, by projection along the d3 axis. Only the vertical walls (normal vectors without d3 components) remain in this projection process. By using even more sensors, we can disambiguate the degenerate facets even more, but in a general room there will always remain a possibility that all sensors are looking at parallel walls (though it is small, and rooms and sensor crowns can be designed such that it never occurs). In this paper, we stop at three, to retain the degeneracy in our sensor surface, and to meet the challenge of working with it. If we succeed, we will be able to group sensors at random, since degeneracies will not bother us. Donald and Jennings [1] show that the relationship between the various perceptual equivalence classes when switching on or o sensors is algebraically a lattice. The above examples show that as geometric entities in the sensor space, the elements in this lattice are connected by projection.

3.3 The e ect of sensor placement

The partition in aspect classes depends on the relative placement of the sensors on the robot. The boundaries caused by sensor si will all have the direction of view of si , which we denote as N(si ). Since each di erent direction can add at most 2 boundaries to an aspect class (namely if this sensor causes both limits), we have a limit on the number of boundaries of an aspect class: If we have a robot with n sensors, which have m directions (mod ), then the positional aspect classes are at most (2m)-gons, and so are the facets. In the 3-sensor example of section 3.2, we thus expect at most quadrangular aspect classes and facets, as gure 4 con rms.

3.4 The e ect of robot orientation

Both positional aspect classes and the associated facets depend on the orientation  of the robot. Figure 5 shows how the facets change as the robot rotates: the essential structure and connectivity length(w1 ) ]), just the relative sizes and remains valid for a wide range (from about 0 to   atan[ length( w2 ) the orientations of the facets change. The cases 0 and  are degenerate, after which the sequence essentially repeats (with just a permutation of the sensor identi ers). Figure 6a shows that at continuing rotation, the sensors will perceive the same world at di erent locations: the facets of di erent orientations di ering by =2 thus may coincide. 6

[w1 ; w2 ; w1 ]

w1 [w1 ; w3 ; w1 ]

s3 s  1 s2

[w1 ; w3 ; w4 ]

w4

[w2 ; w2 ; w1 ]

w2

[w2 ; w3 ; w1 ] [w2 ; w3 ; w4 ]

w3

[w2 ; w2 ; w1 ] [w2 ; w3 ; w1 ]

d3

[w1 ; w3 ; w1 ] [w2 ; w3 ; w4 ] [w1 ; w2 ; w1 ]

[w1 ; w3 ; w4 ]

d2 d1 Figure 4: Three sensors perceiving a room, and the sensor space

7

500 500

400 400

300 d3

300 d3

0

200

0

200

100

100

200

100

200

100

d2

300d2

300 0

0 600 500

600

400 400

300 d1

400 500

400

200 100

0

500

 = 10 degrees

300 d1

200

100

500 0

 = 20 degrees

600 500 500 400 400 d3300

0

200

100

d3 300

0 100

200 200

200 100

100

300 d2 400

300d2 0 700

0

400 600

700 500

400

300 d1

500 200

100

600

500 500

400 d1

300

200

0

 = 30 degrees

600 100

0

 = 40 degrees

Figure 5: The in uence of rotation on the facets.

8

a

b Figure 6: Two problems for the sensor surface.

3.5 The e ect of the shape of the room

When the room is made non-concave, the robot with three sensors may obtain the same measured values at di erent locations in the room which do not belong to the same positional aspect class. An example is indicated in gure 6b. In the two con gurations indicated, and the regions around them, the observations will be locally identical. This implies that in the sensor space, the facets at those con gurations coincide partially. There is then no way of discriminating such regions based on local observations; only non-local aspects such as the neighboring facets (e.g. contained in a memory of the history) will lead to disambiguation. In this paper, we will not endow the robot with such faculties; as a consequence, we will have to exclude this type of room from our consideration. We will limit ourselves to convex rooms only.

4 Exploring the sensor surface We represent the sensor subsurface by an ever-expanding graph of which the nodes represent the facets discovered so far and the edges the established connectivities. The facets are characterized by the in nite plane of which they are a part, as well as by the Jacobian of the transformation between task space and sensors space (we will nd the need for this in section 4.4). The edges of the facets are implicitly coded as intersections with neighboring facets, and we represent the intersection line in the edge data structure, as a position and direction vector pair. From this one can compute the cone of normal directions to the intersection line of the facets, if required. The graph is implemented as adjacency lists (see [7]). The basic exploration algorithm is indicated in gure 7. We discuss the mathematics and details behind each of the steps.

4.1 Notation

We need to quantify the faceted sensor surface in the sensor space of the robot. We will do so only for our 3-sensor robot, where the tools of vector calculus can be used to produce a concise representation. Similar computations can be performed in n dimensions, though their representation will be more involved. We denote position vectors in the room by capital bold letters, such as P, Q, R, and position vectors in the sensor space by lower case bold font: p, q, r. Unit direction vectors in task space are eu = (U1 ; U2 )T and ev = (V1 ; V2 )T . A wall in task space is along an in nite straight line W1 X1 + W2 X2 + W3 = 0 (in suitably chosen coordinates), with normal vector W = (W1 ; W2 )T and `support' W3 (which is the distance to the origin if W is a unit normal vector). An in nite plane in sensor space is a1 d1 + a2 d2 + a3 d3 + a4 = 0, with normal vector a = (a1 ; a2 ; a3 ). We will embed these concepts into homogeneous coordinates, and indicate the result by a hat accent `^'. This embedding is done in the natural way: a position vector gets an extra component equal to 1, so P^ = (P1 ; P2 ; 1)T and p^ = (p1 ; p2; p3 ; 1)T ; a direction vector gets a 0, 9

Compute facet data of the current position Insert the node with facet information into the graph While exploration not finished Move robot to new position If robot has crossed boundary (of facet and aspect class) Compute new facet data If facet is new Insert node into the graph If facet and previous facet are neighbors Compute edge If edge is new Insert edge into graph Postprocessing: cleaning up the graph, and deduction

Figure 7: The basic exploration algorithm so e^u = (U1 ; U2 ; 0)T and e^v = (V1 ; V2 ; 0)T ; and a carrier for a plane gets the support as fourth ^ = (W1 ; W2 ; W3 )T , or in sensor space a^ = (a1 ; a2 ; a3 ; a4 )T . A point Q on the coordinate, so W ^ T Q^ = 0; a point p on the sensor space surface satis es a^T p^ = 0. wall thus satis es W The symbols P, p, N(si ) and W(si ) will always be used as the position of the robot in task space, the corresponding point in sensor space, the viewing direction of sensor si , and the wall currently seen by si . respectively. We will normalize the direction vector, so always kN(si )k = 1, but we will not need to normalize the W(si ) (since in all formulas the normalization constant will happen to cancel out). We will often abbreviate N(si ) and W(si ) to Ni and Wi , respectively. Various products of vectors play an important role, and it is convenient to have a notation for them. Let P = (P1 ; P2 ; 1)T , W = (W1 ; W2 ; W3 )T , V = (V1 ; V2 ; V3 )T . Then the symmetric product (W  P) is just the dot product: (W  P)  W1 P1 + W2 P2 (4) and for the homogeneous coordinate vectors: ^  P^ )  W1 P1 + W2 P2 + W3 P3 = (W  P) + W3 : (W (5) The skew-symmetric product (W ^ V) is de ned as: ^  V^ ]3 : (W ^ V)  W1 V2 ? W2 V1 = [W (6) ^  V^ ]3 (the third component of the cross product of W ^ and V^ ) is slightly The notation [W misleading since it suggests that W3 and V3 occur in the result, which they do not; therefore we prefer the notation (W ^ V). Note that the result is a real number, not a vector! The skewsymmetric product derives its name from the property (W ^ V) = ?(V ^ W).

4.2 Facet computation

The distance di measured by sensor si when it looks at wall W(si ) along ray N(si ) is: ^ (si )  P^ ) (W (7) di = (W (si )  N(si )) which is eq.(1) in vector notation. Such a di is the i-th component pi of a point p in sensor space corresponding to P in task space. We can de ne a matrix W^ such that ^ (si )]j (8) W^ ij = (W[(W si )  N(si )) 10

and then eq.(7) is the obviously linear mapping between task space and sensor space points: p = W^ P^ (9) Computation of facet data at position P is done with a small local motion in the eu -direction to a point Q and in the ev -direction to a point R. These directions are arbitrary, but they must be the same in local robot coordinates (so rotate with ) throughout the task space. This requires that: the robot must be able to perform reproducible motions by reproducible actuation of its propulsion mechanism. We then have Q = P + eu , R = P + ev , leading to three associated sensor vectors p, q and r. These three position vectors in the 3-D sensor space determine the plane:  pq+qr+rp  a^ = (10) ?p  (q  r) (with follows by straightforward computation;  denotes the cross product of 3-vectors). Combining eq.(7) and eq.(10) then yields (after a straightforward but rather lengthy computation): 0 1 (W2 ^W3 ) (eu ^ev ) ( N 2 W2 ) (N3 W3 ) BB CC BB CC (W3 ^W1 ) (eu ^ev ) (N3 W3 ) (N1 W1 ) B CC a^ = B (11) BB CC (W1 ^W2 ) (eu ^ev ) BB CC (N1 W1 ) (N2 W2 ) @ ^ ^ A W^ 2 P^ ) (W3 ^W1 )+(W^ 3 P^ ) (W1 ^W2 ) (eu ^ ev ) ? (W1P) (W2 ^W(N3 )+( 1 W1 ) (N2 W2 ) (N3 W3 ) If the two sensors s1 and s2 point to parallel walls, then W(s1 ) = W(s2 ), and eq.(11) becomes: 1 0 (W1 ^W3 ) (eu ^ev ) ( N  W ) ( N  W ) 2 1 3 3 CC BB CC BB ?(W1 ^W3 ) (eu ^ev ) (N1 W1 ) (N3 W3 ) CC B (12) a^ = B CC BB 0 CC BB @ ([W^ 1]3[W^ 2]3 ) (W1^W3) (eu ^ev ) A ? (N1 W1 ) (N2 W1 ) (N3 W3 ) Note that P does not occur in this expression, notably not in a4 : these facets are somewhat degenerate. The parallel wall problem occurs when s3 also points to a wall with the same normal vector. Then we nd, by substitution: 001 B 0 CC a^ = B (13) @0A 0 which is an illegal facet descriptor, indicating that the facet has become degenerate. To such a degenerate facet, one can assign a cone of normal vectors, dependent on position; we will not go into this here. In computing a^, it must be ascertained that the points P, Q and R are indeed within the same aspect class. To make sure of this, the robot moves to a fourth position S within the triangle PQR. If the associated observations p, q and r are on the same facet, then s = W^ S^ should be in the same plane, and so (^a  ^s) = 0. If one of the points was not on the same facet, p, q and 11

r determine a plane that does not contain a local facet, and then (^a  ^s) will be non-zero. If this occurs, the robot will make di erent local moves until three points are found that do determine a facet. If one of the points is in a degenerate facet, this method can not detect that fact, since all points in the degenerate facet are in the same plane as the facets that meet it. The three points can still be used for computation of a^, but the computation of the Jacobian (see section 4.4) will give the wrong result since part of the actual motion in task space does not lead to a change in the corresponding point in sensor space. (In [3] and this paper, we check this in postprocessing, but it would be better to resolve this locally and make it lead to a regeneration of the points Q and R. This can be done by nding locally, through interpolation, the point where the linear dependence changes.)

4.3 Choosing the next position

Choosing the next position to go to, given a partially explored sensor space, is the essence of exploration. Since the detailed issues in dealing with degeneracy were more complicated than we had supposed, we did not get to this level. Instead, we made the robot follow tractable (at the moment), and the results would appear hard to a xed path `as the ox plows' ( o%oo& ), from lower right to upper left, see gure 8. Along this path the robot takes large discrete steps, with possible wriggles or local deviations for connectivity analysis as speci ed below.

4.4 When facets are neighbors: the need for proprioception

Two facets are neighbors if the corresponding aspect classes are neighbors in task space. This implies that there is a boundary between them; and this boundary is determined by some sensor si , so it runs in the direction N(si ). At the two sides of this boundary, si is directed to two ^ (si ) and W ^ (si )0 . We nd:1 di erent walls, let us call them W If two aspect classes have a common boundary determined by si ; then the corresponding facets have normal vectors with identical i?th elements : This implies that the facets meet in a simple fold :

(14)

Derivation: By substitution in eq.(11): the only element that does not change from the substi0 ^ ^ tution of W(si ) by W(si ) is the i-th element. 2

The converse: `if two facets have their i-th element in common, then they are neighbors' is not true. The move from aspect class [wi ; wj ; wk ] to [wi ; wj ; w` ] by a pure translation changes only ^ (s3 ), and thus the two facets involved will have the same third component. However, there W might well have been another wall `cutting the corner' between wk and w` ; such a wall would generate intermediate facets, and thus the two facets [wi ; wj ; wk ] and [wi ; wj ; w` ] would not be neighbors; and a sequence of such corner cuts might even generate arbitrarily many intermediate facets. There is thus no simple local test of the connectivity of the sensor subsurface. We should apparently perform the following tests: 1. if a^ and a^0 do not share one of their rst 3 components (which must be non-zero), they are not neighbors (by eq.(14)); 2. if they do, then the robot must investigate whether there exists a point on sensor space surface that is on the intersection of the two facets. This second test requires generating a motion in task space that will take the perception (d1 ; d2 ; d3 ) to the intersection line in sensor space. There are two issues:

Note that the application of this rule demands that the facet representation a^ is computed using eq.(11). A multiple of this a^ would lead to the same facet plane (^a d^ ) = 0, but might not obey the rule above (for instance, multiplying a^ by (N1 W1 ) (N2 W2 ) (N3 W3 ) appears natural in eq.(11), but it should not be done). 1









12

 not every point of the intersection line needs to be a perception for the two facets to meet;

so the right point needs to be chosen;  travelling to the intersection line implies that one can relate directions of travel in sensor space and in task space. This implies that one needs to determine the Jacobian of the mapping between task space and sensor space (this suces in this case of a linear mapping W^ between the two spaces; nite motions within the same aspect class then obey the same Jacobian as in nitesimal motions; in general, the Jacobian will be position-dependent, even within a positional aspect class). The fact that we need the Jacobian is rather interesting to the necessary capabilities of the autonomous system. Before, we saw that the robot needed to be able to perform the same actuations leading to eu and ev (for a xed orientation). Now we see that more is required: The robot must be able to perform any linear combination of the basic actuations that lead to eu and ev motions, since it should be able to go to the hypothesized boundary points. This is virtually the need for a reproducible proprioception (observation of the actuation) and the associated actuation capability. Apparently, pure perception alone is not sucient to build a map of the sensory subsurface. Sensory exploration requires proprioception. To determine the Jacobian relative to translation in any direction, it is sucient to take two steps in arbitrary but linearly independent directions and measure the change of perception. It is natural to use the same eu and ev directions that were used to compute a^, so that computing the Jacobian does not involve more translational motions. The Jacobian is, for the in nitesimal translation directions eu and ev , in (u; v) coordinates: 0 (W1 eu) (W1ev ) 1 BB (N1W1) (N1 W1) CC (15) J =B BB ((NW22Weu2)) ((NW22Wev2)) CCC A @ (W3 eu ) (W3 ev ) (N3 W3 ) (N3 W3 ) We thus nd that to establish the connectivity of the facets on the sensor subsurface, we need to determine of each facet the in nite plane of which it is a part (this is denoted by a^), and the Jacobian J giving the relationship between in nitesimal and nite straight motions on the surface and those in task space. These two elements will then feature in the exploration algorithms that enable us to establish the structure of the sensory subsurface. Back to the algorithm: if the present facets (^a; J ) and an existing facet (^a0 ; J 0 ) might be neighbors, the hypothesized common edge line is computed (this needs to be done anyway to ll the edge data of the graph), and the robot goes from p to some point s on this line to determine whether it actually exists in sensor space, i.e. whether he can sense the appropriate data at the corresponding location in task space. We have chosen in [3] to go the closest point s to p in sensor space (this seems to work well enough for our situation, but more search along the line might be needed in general rooms). From the direction s ? p, one can compute the task space displacement (S ? P), in (u; v) coordinates, from J (S ? P) = s ? p. (This might seem non-invertible since J is not square but 2  3, so there are 3 equations with 2 unknowns. However, s and p are restricted to the sensor surface so that we have the additional equation 0 = (^a  (^s ? p^ )) = (a  (s ? p)). This reduces the number of equations by one, and so the equations have a solution, except in degenerate facets.) The robot moves to S using appropriate actuation along eu and ev . At S, the robot computes the local facet there; if it is equal to (^a; J ) or (^a0 ; J 0 ), the two are indeed connected and the edge can be added to the graph. If it is a new facet (^a00 ; J 00 ), the algorithm recurses. Note that even in the case of the parallel wall problem, a new facet will be found, with a^00 = (0; 0; 0; 0)T and J unde ned. One then knows this is connected to (^a; J ) and (^a0 ; J 0 ), and these connections determine the cone of normal vectors at s. 13

4.5 Detection of boundary crossing: a^-test and IP-test

Detection of whether an aspect boundary is crossed (and hence a facet boundary) can be done in two ways, which will lead to two classes of algorithms which we dubbed `^a-test' and `IP-test' (`IP' for `inner product').  a^-test In the a^-test method, we just compute a^ at every position; if it has not changed, we are still on the same facet, at least if we have been able to make full size moves in the eu and ev directions: a^ would change proportionally if that is not the case. (So a more robust version of the a^-test should use test this proportionality rather than equality.)  IP-test In the IP-test method, when we move from a position P with facet (^a; J ) to a point Q, with associated observation vector q, we compute (^a  q^ ). If it equals zero, then q is on the facet plane. If there is no chance of q being on a degenerate facet, then this test is sucient to decide that no boundary has been crossed. If the parallel wall problem occurs, the fact that a degenerate facet was passed is not detected until the robot leaves the corresponding aspect class, since only then (^a  q^ ) becomes non-zero (q passes a fold on the surface). At that point, a wriggle to determine the new a^ is required. The IP-test method is thus awed around degenerate facets, but as we will see (in section 5) it paradoxically performs better there than the a^-test method in some cases (in the sense of nding more correct connections between the facets). It is de nitely faster, since the local wriggles to determine the facet are not needed at every step.

4.6 Postprocessing

After exploration, the graph can be postprocessed. We have seen in section 4.2 that the parallel wall problem may lead to a computation of a^ that di ers from the correct value by a factor; this could be detected and repaired if the correct value is also represented in the graph. Furthermore, the graph could be checked for other connections that have never been observed, but that can be inferred from the data gathered. This deduction contains some pitfalls (see [3]) which are unsolved, and therefore we do not perform postprocessing at present.

5 Some test results The exploration algorithms were implemented in our robot simulator. We have used two rooms, both convex and rather simple, to test the algorithms: the rectangular room of gure 4, and the same room with the top right corner cut o by a wall w0 . The robot is sent through the rooms in a xed, plowing-like pattern, as indicated in gures 8 and 9, with discrete steps from lower right to upper left; and in a second test in a random pattern ( gure 9). The use of a^-test or IP-test determines whether each discrete step is accompanied by local wriggles; and whether or not one decides to actively explore connectivity determines local excursions from the plowing path. The algorithms are evaluated by the correctness and completeness of the nodes and connections in the resulting graph of facets. We show the graphs found; missing nodes (which did not occur) and missing edges are dashed. For clarity, the boundaries of the aspect classes have been drawn in the gures. The dicult node for a degenerate facet is indicated in grey. Extended results are given in [3]. We illustrate some of the ndings:  IP-test without Jacobian moves The top pair in gure 8 shows an exploration using the IP-test to determine whether a boundary has been crossed; no exploration of a possible connection between facets is performed, just the neighbor test of eq.(14). For this simple room, this is not too bad: only the 14

250 200 150 100 50 0 −50

[w1 ; w3 ; w4 ]

[w1 ; w3 ; w1 ]

[w1 ; w2 ; w1 ]

[w2 ; w3 ; w4 ]

[w2 ; w3 ; w1 ]

[w2 ; w2 ; w1 ]

[w1 ; w3 ; w4 ]

[w1 ; w3 ; w1 ]

[w1 ; w2 ; w1 ]

[w2 ; w3 ; w4 ]

[w2 ; w3 ; w1 ]

[w2 ; w2 ; w1 ]

[w1 ; w3 ; w4 ]

[w1 ; w3 ; w1 ]

[w1 ; w2 ; w1 ]

[w2 ; w3 ; w4 ]

[w2 ; w3 ; w1 ]

[w2 ; w2 ; w1 ]

−100 −150 −200 −250 −300

−200

−100

0

100

200

300

250 200 150 100 50 0 −50 −100 −150 −200 −250 −300

−200

−100

0

100

200

300

250 200 150 100 50 0 −50 −100 −150 −200 −250 −300

−200

−100

0

100

200

300

Figure 8: Robot exploration tracks in the simulations in the rectangular room, and the facet graphs found (see text).

15

250 200 150 100

[w1 ; w3 ; w4 ]

[w1 ; w3 ; w1 ]

[w1 ; w2 ; w1 ]

[w0 ; w3 ; w4 ]

[w0 ; w3 ; w1 ]

[w0 ; w2 ; w1 ]

[w2 ; w3 ; w4 ]

[w2 ; w3 ; w1 ]

[w2 ; w2 ; w1 ]

[w1 ; w3 ; w4 ]

[w1 ; w3 ; w1 ]

[w1 ; w2 ; w1 ]

[w0 ; w3 ; w4 ]

[w0 ; w3 ; w1 ]

[w0 ; w2 ; w1 ]

[w2 ; w3 ; w4 ]

[w2 ; w3 ; w1 ]

[w2 ; w2 ; w1 ]

[w1 ; w3 ; w4 ]

[w1 ; w3 ; w1 ]

[w1 ; w2 ; w1 ]

[w0 ; w3 ; w4 ]

[w0 ; w3 ; w1 ]

[w0 ; w2 ; w1 ]

[w2 ; w3 ; w4 ]

[w2 ; w3 ; w1 ]

[w2 ; w2 ; w1 ]

50 0 −50 −100 −150 −200 −250 −300

−200

−100

0

100

200

300

250 200 150 100 50 0 −50 −100 −150 −200 −250 −300

−200

−100

0

100

200

300

250 200 150 100 50 0 −50 −100 −150 −200 −250 −300

−200

−100

0

100

200

300

Figure 9: Robot exploration tracks in the simulations in the cut-o room, and the facet graphs found (see text).

16

connections to the degenerate facet are not found. In the gure, the little triangular wriggles on the discrete locations on the path are the eu and ev moves, which are only performed when the robot detects that it is on a new facet.  IP-test with Jacobian moves When we permit the exploration of assumed connections, the result improves slightly (middle of gure 8). The explorative moves are clearly visible - they may not be the shortest moves in task space, but they are the shortest on the facets. Establishing the connection between [w1 ; w3 ; w1 ] and [w1 ; w2 ; w1 ] fails even though the robot moves there (around position (50,100)): the robot still believes to be in [w2 ; w3 ; w1 ]. Note that a move into the degenerate node when two changes occur at (0,-150) (when the robot believes to be in [w2 ; w3 ; w1 ]), induces continued wriggling afterwards, since the test of identity of the a^'s cannot be performed (^a is all zero).  a^-test with Jacobian moves Surprisingly, the more correct a^-test method nds fewer connections (bottom of gure 8). The reason is that it cannot use the correctly computed a^ = (0; 0; 0; 0)T to compute the move to an edge. It is now clear that the IP-test method was lucky in stumbling on some of the edges, which were computed on the basis of old and incorrect assumptions about the facet it was in.  a (slightly) more complicated room The same kind of results hold for the rectangular room with a corner cut o ( gure 9), for similar reasons. The top two pairs show IP-test with Jacobian moves and a^-test with Jacobian moves, respectively.  random exploration with Jacobian moves Random exploration (bottom of gure 9), is less e ective: the same 100 or so moves lead to a rather incomplete graph. The data found was correct, though, which is some con rmation of the robustness of the algorithm. These tests are obviously insucient to prove the algorithms, but they provide a useful illustration. On the screen, the robot moves like a dog: basically on the leash of the plowing motion, but every now and then sning at other locations, for sensible reasons which are not obvious to the observer (remember that the aspect boundaries are actually invisible!).

6 Conclusions We treated some of the issues involved in exploring space based on sensor data alone, in the simpli ed case of a deterministic sensor and actuator, with noiseless data, in a convex room. 1. We found the basic equations governing the faceted sensor space, and showed the serious degeneracy that occurs when sensors are pointing to parallel walls. Since the algorithms and calculations are based on determining directions, all fail near or in such a degenerate facet. 2. The ultimate goal is to perform basic navigation and exploration with as few capabilities of the robot as we needed. At some points in the analysis, we needed to augment the robot with new capabilities. Most notable among these are the capability to perform repeatable motions in identical directions, which suggests that a robot should have proprioception in order to be e ective in exploration. 3. Our treatment was for the 3-sensor case, with sensors at right angles; neither of these appear to by fundamental restrictions to our results. In fact, the more sensors, the better, since then the parallel wall problem is unlikely to occur!

17

4. We have not really treated the rotational degree of freedom  of the robot. An in-place rotation (assuming the robot can do this) might resolve some of the issues, However, the possibility of full rotation brings its own problems: the sensor surface will fold upon itself (see section 3.4). We have found thinking about exploration in terms of sensor space enlightening: it helped us to identify essential needs in robot navigation. Although the exact analysis given here has its limitations in applications, we plan to use the sensor spaces as a continued inspiration for the development of elementary exploratory behavior.

References [1] B. Donald, J. Jennings, Sensor interpretation and task-directed planning using perceptual equivalence classes, Proc. IEEE 1991 ICRA, Sacramento, CA, 1991, pp. 190-197. [2] L. Dorst, I. Mandhyan, K.I. Trovato, The Geometrical Representation of Path Planning Problems, Robotics and Autonomous Systems, Elsevier, vol.7, 1991, pp.181-195. Available at http://carol.wins.uva.nl/~ leo/papers/ias.html

[3] H. Erkamp, A representation in sensor values of an unknown environment through exploration of a mobile robot, Master's Thesis, University of Amsterdam, 1996. Available at http://www.fwi.uva.nl/research/neuro/publications/publications.html. [4] B.J.A. Krose and M. Eecen, A self-organizing representation of sensor space for mobile robot navigation, in Proceedings of the IEEE/RSJ/GI International Conference on Intelligent Robots and Systems, pages 9{14. Published by IEEE, 1994. Available at http://www.fwi.uva.nl/research/neuro/publications/publications.html. [5] B. Kuipers, Y. Byun, A robot exploration and mapping strategy based on a semantic hierarchy of spatial representations, TR, Austin, Texas, 1990. [6] J.-C. Latombe, Robot motion planning, Kluwer Academic, Boston, 1991. [7] D.F. Stubbs and N.W. Webre, Data structures with abstract data types and Pascal, Brooks/Cole Publishing Company, 1989

18