Nice, 17/18 December 2001
Adaptive Grids For Bathymetry Adaptive Grids For Bathymetry Mapping And NavigationMapping And Navigation
Michel Chedid and Maria-João Rendas
I3S - I3S - MAUVEMAUVE
Nice, 17/18 December 2001
Problem formulationProblem formulation MappingMapping
Off-lineOff-lineOn-lineOn-line
NavigationNavigation
Real Time Optimally Adapting Meshes (Real Time Optimally Adapting Meshes (RROAM)OAM)Noiseless dataNoiseless dataNoisNoisyy data dataDynamically expand the supportDynamically expand the support
Conclusions and future workConclusions and future work
Nice, 17/18 December 2001
Mapping
Given a set of altitude measures hi taken by a robot at positions (xi,yi,di), iteratively build an efficient representation of the observed sea-bed surface
Problems :
• large volume of data (off-line and on-line mapping)
• noisy data (off-line and on-line mapping)
• dynamic definition of the support S (on-line mapping)
iiiii hdzyx S),(
xi,yi
di
hi
Nice, 17/18 December 2001
• Find an efficient representation of a given set of data points – useful for on-line use of an a priori known map (limited on-board
memory)
– fast post-mission visualisation on acquired data
• Two distinct situations– noise-free data (existing maps)
– noisy data (learned maps)
Nice, 17/18 December 2001
Recursive update of an internal representation (of reduced complexity) of a set of (noisy) data points
New problem: the support set S is not known a priori (it depends on the robot trajectory) : the grid that supports the representation must be dynamically expanded.
Nice, 17/18 December 2001
Problem:
Given an internal map M, which contains uncertain information about the sea-bed depth over an area S, use the current robot’s measures to locate the robot in the map. Goal: reset large dead-reckoning errors, bound navigation errors.
Approaches:
• two step procedures (association filtering)
• non-linear filters (Gauss mixtures, particular filtering,...)
Requires: characterisation of the uncertainty associated to
• the current estimates of the robot position (xi,yi,zi)
• the uncertainty associated to the altitude measures, hi
• the uncertainty associated to the map M at each point zM(x,y)
Nice, 17/18 December 2001
Algorithm originated in the Computer Graphics community for fast visualisation of 3D animated scenes.
Triangulation algorithm based on a regular square grid of size (2n+1)(2n+1), n = 0, 1, 2, …that approximates a surface by a series of triangular facets.
The main advantages of the algorithm are• it adapts the resolution (size of the triangles) to the local characteristics of the surface (minimize the number of triangles that must be drawn)
on-board memory requirements • pointer structure that enables fast access to the individual triangles
real-time processing of the data
Nice, 17/18 December 2001
Nice, 17/18 December 2001
First level
Second level
LT1
LT1
RT1RT1
LT2 LT3 RT2 RT3
LT4 LT5
LT4 LT5
LT6 LT7
LT6
LT7
RT4 RT5
RT4RT5
RT6 RT7
RT6
RT7
Third level
Example: n = 1
Nice, 17/18 December 2001
Notation for neighboring triangles:
Triangle T
Base neighbor
Left neighbor Right neighbor
Every node has six pointers.
Nice, 17/18 December 2001
Splitting is done when a triangle is not a good enough approximation of the data. It increases the depth of the tree at that node.Constraint : splitting of some triangles forces split of other triangles to prevent discontinuities in the mesh
Example:
Nice, 17/18 December 2001
Merge: The operation opposit to split where two smaller triangles are merged to build a bigger triangle (they represent irrelevant details). It corresponds to eliminating branches at the lowest tree level (the eliminated triangles are leaves).
If a triangle and its base neighbor have been split once, they are said to form a mergeable diamond.
Using split and merge operations any triangulation can be obtained from any other given triangulation.
Nice, 17/18 December 2001
What is an error metric (associated to the triangles)?
Example : Geometric error metric eh
At the leaf nodes: eh = 0elsewhere in the tree: eh= max (eh,leftchild , eh,righchild ) + h
h
Nice, 17/18 December 2001
The triangulation algorithm starts with the complete binary tree of highest depth, and proceeds in two steps:
1. Compute the error metric for the current tree (recursively from the tree leaves)
2. Repeat until no changes are made: at every mergeable diamond if (eh < threshold and eh,baseneighbor< threshold)
eliminate the children nodes
Nice, 17/18 December 2001
Goal : • data compression ( memory limitations), • fast access to values ( real-time processing)
Drawback:• the support of the representation is static, the algorithm needs
to know all input data (over a complete regular grid) at once.
Nice, 17/18 December 2001
For noise-free measures1. Interpolate the data points over a regular grid (using, for instance, linear
interpolation). 2. Apply ROAM to obtain a grid adapted to the characteristics of the terrain
(concentrate density of points in high variability regions).
For noisy measures1. Define a regular grid at the finest admissible level of representation2. Recursiely update the grid points using the data set (Recursive Least
Squares)3. Apply ROAM to obtain a variable grid adapted to the geometry of the
represented terrain.
New error metric
Nice, 17/18 December 2001
We use two error metrics:
1. Geometric error: The angle α between the two children
2. Statistical error: The mean of the variances of the points that build up the triangle. It indicates if the triangle is rather stable.
α
Nice, 17/18 December 2001
Linear Model:z(k) = T (k)(k) + e(k) : k-th data point : vector of grid points
: interpolation operator
Update equations:
(k) = (k-1) + K(k) (z(k) - T (k) (k-1))
K(k) = P(k) (k)
P(k) = P(k-1) – [P(k-1) (k) T (k)P(k-1)]/[1+ T (k)P(k-1) T (k)]
P(k) is the covariance matrix
K(k) is the gain vector
Nice, 17/18 December 2001
Trajectory of the robot Reconstructed surface(artificial noise with a variance of 1 has been added)
Nice, 17/18 December 2001
Problem: No a priori knowledge of the surface support S
Solution:Dynamic expansion of the grid
Start with a grid of a fixed size. If the robot goes outside the grid Add a new grid of the same size and link it to its neighbors
Nice, 17/18 December 2001
Modifications of the original ROAM algorithm
Split and merge operationsNew boundaries constraints
Merging the smal grids into bigger grids when possible
Linking the new triangle binary trees Maintaining ROAM structure
Nice, 17/18 December 2001
Trajectory of the robot On-line reconstructed surface
Nice, 17/18 December 2001
Conclusions•ROAM is efficient and structured •The off-line version is fully implemented.•The on-line partially implemented.
Future work•Introduce the changes required for the on-line version.•Evaluate the obtained map from a navigation point of view.