eolson AUV2004

50 %
50 %
Information about eolson AUV2004

Published on June 18, 2007

Author: FunSchool

Source: authorstream.com

Robust Range Only Beacon Localization:  Robust Range Only Beacon Localization Edwin Olson (eolson) John Leonard (jleonard) Seth Teller (teller) (@csail.mit.edu) MIT Computer Science and Artificial Intelligence Laboratory Outline:  Outline Our goal: Navigate with LBL beacons, without knowing the beacon locations Components Outlier rejection without a prior Initial solution estimation SLAM filter Optimal exploration Experimental Results:  Experimental Results Using real data from GOATS’02 Applications:  Applications Operation in unsurveyed beacon fields Covert deployment Aerial deployment Autonomous deployment Moving baseline navigation Vehicles serve as beacons Detection of beacon movement Basic Idea:  Basic Idea Record range measurements while traveling a relatively short distance. Initialize feature in Kalman filter based on trilateration. Continue updating both robot state and beacon position with EKF. but… Feature Initialization:  Feature Initialization Noise is a major issue Interference from sensors/other robots Outlier rejection Necessary due to non Gaussian error (if Gaussian noise, Kalman filter is optimal) No prior with which to do outlier detection How bad is the noise?:  How bad is the noise? Our data set has extensive interference from SAS payload But is the noise Gaussian?:  But is the noise Gaussian? Extensive outliers; result is not Gaussian (Multiplicative noise model is similarly poor) Noise Characterization:  Noise Characterization Noise is non-stationary Particular errors can occur consistently Examples: Multi-path, periodic interference Outlier RejectionPrevious Work:  Outlier Rejection Previous Work Prior-based outlier rejection ('gating') But we don’t have a prior… Newman’03 searches for 'low-noise' regions, uses them to extrapolate a constraint over higher noise regions Many parameters to tune, ad-hoc Outlier rejection:  Outlier rejection Goal Well-principled method (few tunable parameters) Good performance, even in extreme noise Other considerations CPU time isn’t really a factor Data arrives so slowly (~4Hz)… More important to make good use of data Try to make use of what we do know E.g., dead-reckoned vehicle position Measurements:  Measurements Use vehicle’s dead-reckoned position and measured range to construct a circle: Beacon lies on circle Measurement Consistency:  Measurement Consistency Consider pair-wise measurement consistency Limited dead-reckoning accuracy limits comparison of measurements to small window of time Spectral Clustering Formulation:  Spectral Clustering Formulation Consider many pair-wise compatibility tests Construct a graph: vertices are measurements, edges connect consistent measurements Inliers will tend to be more connected than outliers! Graph Outlier Rejection:  Outlier Rejection Find a cut that separates the inliers from outliers Cut A: Good! Cut B: Awful Cut C: Mediocre How do we formalize this? Adjacency Matrix:  Adjacency Matrix Create an Adjacency matrix where element {i,j}=consistency of measurements i and j Graph Partitioning:  Graph Partitioning Let u be an indicator vector If ui=1, then measurement i is an inlier If ui=0, then measurement i is an outlier What makes a value of u good? Highly consistent measurements are classified as inliers Less consistent measurements are classified as outliers Average Connectivity:  Average Connectivity Use average inlier connectivity as our metric: Intuition: Given a set of inliers, when should a measurement be added? Answer: when it’s at least as consistent with the inliers as the inliers are with themselves Number of edges connecting inliers (*2) Total number of inliers Spectral Clustering:  Spectral Clustering How does our metric perform? Cut A: 1.6 Cut B: 0.5 Cut C: 1.43 Finding the best u vector:  Finding the best u vector For discrete-valued u, this is hard! For continuous-valued u, exact solution is known Differentiating r(u) with respect to u, setting to zero: It’s an eigenvalue problem! Maximize r(u) by setting u to the maximum eigenvector Optimal eigenvector:  Optimal eigenvector First eigenvalue of adjacency matrix A Finding the u vector:  Finding the u vector We now have the optimal continuous-valued u vector. Larger values -andgt; inliers We need the discrete version Threshold u by scalar t Brute force search for t Only O(n); try each value of u as threshold Incorporate prior, if known, of % of outliers Computation in blocks:  Computation in blocks Measurements use dead-reckoned position Error in Adjacency matrix grows with dead-reckoning error Must limit this by performing outlier rejection in blocks Computation in blocks also bounds work needed to compute eigenvector Computational Optimization:  Computational Optimization Helpful observation: Our solution is the largest eigenvector, use the power method to find it! Power method Behavior of Anv is dominated by the largest eigenvector of A (call it u). For all1 v, Anv  u as n  infinity Anv is good enough in a few iterations (~3) 1Except vTu=0 Result on one block:  Result on one block Results from our algorithm: Black: outlier Blue: inlier Highly consistent set of measurements are classified as inliers Spectral clustering of 25 measurements (GOATS’02 data) Result on many blocks:  Result on many blocks Spectral Clustering, block size=20, prior=50% outliers After Before Multiple vehicles:  Multiple vehicles If vehicles positions are known in the same coordinate frame, just add the data and use the same algorithm. No need to do outlier rejection independently on each AUV. In fact, better not to! Initial Solution Estimation:  Initial Solution Estimation Given 'clean' data, estimate a beacon location Or determine that it’s still ambiguous! Compute intersections of consistent measurements Find an area with many votes Solution Estimation:  Solution Estimation Put each intersection into a 2-dimensional accumulator Extract peaks We get multiple solutions and the number of votes for each If #votes in 1st peak andgt;andgt; #votes in 2nd peak, then initialize feature Ratio ~=2 Initial Solution Estimation:  Initial Solution Estimation Vote ratio=4 to show algorithm working for longer. Ratio~=2 more realistic. Put it all together:  Put it all together We can now filter range measurements We can estimate where beacons are When we find a beacon, add feature to SLAM filter Beacons define coordinate system for robot Differ from global frame by rigid translation and rotation Difference is related to dead-reckoning error before acquiring beacons. SLAM:  SLAM GOATS’02 data Four beacons Dead-reckoned path in Red Uncalibrated compass+DVL EKF path with prior beacon locations in magenta SLAM Movie:  SLAM Movie Optimal Exploration:  Optimal Exploration Robot at x, beacon is at either A or B. Disambiguate by maximizing the difference in range depending on actual location i.e., maximize: What should robot do now? Path leads to two possible solutions Path leads to only one plausible solution Optimal Exploration: Solution:  Optimal Exploration: Solution Gradient is easily computed Absolute value handled by setting A to be the closest of A and B. Optimal robot motions given possible beacon locations at (-1,0) and (1,0). Arrow size indicates magnitude of ∆r per distance traveled. Future Work:  Future Work Guess beacon locations earlier and use particle filter to track the multiple hypotheses Incorporate optimal exploration algorithm into experiment. Questions/Comments:  Questions/Comments

#votes presentations

Add a comment

Related presentations