UWSpace is currently experiencing technical difficulties resulting from its recent migration to a new version of its software. These technical issues are not affecting the submission and browse features of the site. UWaterloo community members may continue submitting items to UWSpace. We apologize for the inconvenience, and are actively working to resolve these technical issues.
 

On the Manifold: Representing Geometry in C++ for State Estimation

dc.contributor.authorKoppel, Leonid
dc.date.accessioned2018-12-19T16:16:27Z
dc.date.available2018-12-19T16:16:27Z
dc.date.issued2018-12-19
dc.date.submitted2018-12-12
dc.description.abstractManipulating geometric objects is central to state estimation problems in robotics. Typical algorithms must optimize over non-Euclidean states, such as rigid transformations on the SE(3) manifold, and handle measurements expressed in multiple coordinate frames. Researchers typically rely on C++ libraries for geometric tasks. Commonly used libraries range from linear algebra software such as Eigen to robotics-targeted optimization frameworks such as GTSAM, which provides manifold operations and automatic differentiation of arbitrary expressions. This thesis examines how geometric operations in existing software can be improved, both in runtime performance and in the expression of geometric semantics, to support rapid and error-free development of robotics algorithms. This thesis presents wave_geometry, a C++ manifold geometry library providing representations of objects in affine, Euclidean, and projective spaces, and the Lie groups SO(3) and SE(3). It encompasses the main contributions of this work: an expression template-based automatic differentiation system and compile-time checking of coordinate frame semantics. The library can evaluate Jacobians of geometric expressions in forward and reverse mode with little runtime overhead compared to hand-coded derivatives, and exceeds the performance of existing libraries. While high performance is achieved by taking advantage of compile-time knowledge, the library also provides dynamic expressions which can be composed at runtime. Coordinate frame conversions are a common source of mistakes in calculations. However, the validity of operations can automatically be checked by tracking the coordinate frames associated with each object. A system of rules for propagating coordinate frame semantics though geometric operations, including manifold operations, is developed. A template-based method for checking coordinate frame semantics at compile time, with no runtime overhead, is presented. Finally, this thesis demonstrates an application to state estimation, presenting a framework for formulating nonlinear least squares optimization problems as factor graphs. The framework combines wave_geometry expressions with the widely used Ceres Solver software, and shows the utility of automatically differentiated geometric expressions.en
dc.identifier.urihttp://hdl.handle.net/10012/14264
dc.language.isoenen
dc.pendingfalse
dc.publisherUniversity of Waterlooen
dc.subjectroboticsen
dc.subjectcomputer visionen
dc.subjectmanifold geometryen
dc.subjectsoftware toolsen
dc.subjectautomatic differentiationen
dc.subjectcoordinate framesen
dc.titleOn the Manifold: Representing Geometry in C++ for State Estimationen
dc.typeMaster Thesisen
uws-etd.degreeMaster of Applied Scienceen
uws-etd.degree.departmentMechanical and Mechatronics Engineeringen
uws-etd.degree.disciplineMechanical Engineeringen
uws-etd.degree.grantorUniversity of Waterlooen
uws.contributor.advisorWaslander, Steven
uws.contributor.affiliation1Faculty of Engineeringen
uws.peerReviewStatusUnrevieweden
uws.published.cityWaterlooen
uws.published.countryCanadaen
uws.published.provinceOntarioen
uws.scholarLevelGraduateen
uws.typeOfResourceTexten

Files

Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Koppel_Leonid.pdf
Size:
1.02 MB
Format:
Adobe Portable Document Format
Description:
Accepted MASc Thesis
License bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
license.txt
Size:
6.08 KB
Format:
Item-specific license agreed upon to submission
Description: