point sets maps and navigation
play

Point sets, Maps and Navigation D.A. Forsyth Issues Where am I? - PowerPoint PPT Presentation

Point sets, Maps and Navigation D.A. Forsyth Issues Where am I? Simplest: register observations and motion to a map correspondence and robustness Build a map Register observations to one another global consistency


  1. Point sets, Maps and Navigation D.A. Forsyth

  2. Issues • Where am I? • Simplest: register observations and motion to a map • correspondence and robustness • Build a map • Register observations to one another • global consistency • Incorporating motion models • Registration should benefit from knowledge of motion • Filtering

  3. Simplest case • Registration with known correspondence • No motion model • 3D observations of known beacons at known 3D locations • beacons y_i; observations x_i • (for generality) weights w_i • Problem: • choose rotation R, translation t to minimize w i ( R x i + t − y i ) T ( R x i + t − y i ) X C ( R, t ) = i • THIS CAN BE DONE IN CLOSED FORM!

  4. The translation • Solve for translation as function of R X X X r t C = 0 = R ( w i x i ) + t ( w i ) � ( w i y i ) i i i • So Weighted centroids t = y − R x • Plug this into cost function to get w i ( R ( x i − x ) − ( y i − y )) T ( R ( x i − x ) − ( y i − y )) X G ( R ) = i

  5. The rotation w i ( R ( x i − x ) − ( y i − y )) T ( R ( x i − x ) − ( y i − y )) X G ( R ) = i • Substitute w i ( R ( u i ) − ( v i )) T ( R ( u i ) − ( v i )) X G ( R ) = i • Expand X u T i u i − 2 v i R u i + v T ⇥ ⇤ G ( R ) = w i i v i i • So MAXIMIZE X H ( R ) = w i v i R u i i

  6. The rotation X H ( R ) = w i v i R u i • Rewrite using i U = [ u 1 , u 2 , . . . ] • To get: WV T RU ⇥ ⇤ H ( R ) = Trace • Rotate through Trace to get: RUWV T ⇤ ⇥ H ( R ) = Trace • Rewrite This is data H ( R ) = Trace [ RD ]

  7. The SVD (in case you don’t recall!) D = A Σ B T • For any D • A is orthonormal, B is orthonormal, Sigma is diagonal • by convention, diagonal values are sorted by magnitude • we drop zero diagonals, and corresponding columns of B, A^T • they don’t do anything • A staple of numerical analysis • stable, well-behaved, etc. algorithms easily available • partial SVDs available • works fine at very large scales • generally, a good thing

  8. The rotation H ( R ) = Trace [ RD ] • SVD data D = A Σ B T • Substitute, and rotate: Σ B T RA RA Σ B T ⇤ ⇥ ⇥ ⇤ H ( R ) = Trace = Trace • This must be orthonormal!

  9. The rotation • We must maximise: H ( R ) = Trace [ Σ M ( R )] • (where M(R) is orthonormal) • But this means that M(R) has 1 or -1 on the diagonal! • So if Σ B T RA RA Σ B T ⇤ ⇥ ⇥ ⇤ H ( R ) = Trace = Trace • the orthonormal matrix we’re looking for is: R = BA T

  10. Final details • Careful: R = BA T • could be a reflection (ie det=-1; a flip; etc.) • Fix: 1 , 1 , det( BA T ) ) A T ⇥ ⇤ R = B (diag

  11. So far • Given two sets of points • with known correspondences • weights • We can find optimal rotation, translation to register • easily • in closed form • We now know where we are • for (say) x_i 3D measurements, y_i beacons • Missing: • what happens if we *don’t* have correspondences? • robustness

  12. ICP = Iterated closest points • What if we *don’t* have correspondences? • Idea: • Repeat until convergence: • each x corresponds to “closest” y • register • Big simple idea, lots of variants • What is “closest”? • What if you have lots of points?

  13. • Full set of slides is on web page • I’m going to show some to make major points

  14. The issue here is efficiency - also, some points are more helpful than others (think corners)

  15. Uniform samples are shakey - stratify 1 1 0.9 0.9 0.8 0.8 0.7 0.7 0.6 0.6 0.5 0.5 0.4 0.4 0.3 0.3 0.2 0.2 0.1 0.1 0 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Uniform Block stratified

  16. Q: who corresponds with who? Doesn’t have to be closest!

  17. Speeding this up (in low D) • We care about 2D, 3D • Some correspondence errors may be tolerable. • We’re making pooled estimates of rotation and translation • Idea • target points into octree (kd tree, etc) • closest point *within tree cell* • which may not be the overall closest point! • whatever! • Other hashing procedures could apply • but mostly more trouble than necessary in 2 or 3 D

  18. Warning - KD trees aren’t exact This doesn’t usually *matter* but…

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend