manif-geom-cpp
|
Templated, header-only library implementing the most common manifolds in robotics in 2D and 3D. Operationally very similar to variations on Eigen's Quaternion<T>
class, but with added chart maps and rules for addition and subtraction on tangent spaces. Meant to be used with nonlinear least-squares solvers like Ceres Solver (http://ceres-solver.org/) which take advantage of templating to implement auto-differentiation on arbitrary mathematical formulations in code.
The \(SO(3)\) math is based on my notes on 3D rotation representations.
For more information, see https://andrewtorgesen.com/anixpkgs/cpp/manif-geom-cpp.html.
This code is meant to be built as a static library with CMake. It should be compatible with the latest versions of Eigen and Boost (unit test framework only).
Install with
By default, building will also build and run the unit tests, but this can be turned off with the CMake option BUILD_TESTS
.