Expand description
§Apex Solver
A comprehensive Rust library for nonlinear least squares optimization, specifically designed for computer vision applications such as bundle adjustment, graph-based pose optimization, and SLAM.
§Features
- Multiple Optimization Algorithms: Gauss-Newton, Levenberg-Marquardt, and Dog Leg solvers
- Flexible Linear Algebra Backend: Support for both Sparse Cholesky and Sparse QR decomposition
- Configurable Solver System: Easy-to-use configuration system for algorithm and backend selection
- High Performance: Built on the faer linear algebra library for optimal performance
- Comprehensive Testing: Extensive test suite ensuring correctness and reliability
§Solver Types
- Gauss-Newton: Fast convergence for well-conditioned problems
- Levenberg-Marquardt: Robust algorithm with adaptive damping
- Dog Leg: Trust region method combining Gauss-Newton and steepest descent
§Linear Algebra Backends
- Sparse Cholesky: Efficient for positive definite systems
- Sparse QR: More robust for rank-deficient or ill-conditioned systems
Re-exports§
pub use factors::BundleAdjustment;pub use factors::LandmarksAndIntrinsics;pub use factors::OnlyIntrinsics;pub use factors::OnlyLandmarks;pub use factors::OnlyPose;pub use factors::OptimizeParams;pub use factors::PoseAndIntrinsics;pub use factors::SelfCalibration;pub use core::variable::Variable;pub use error::ApexSolverError;pub use error::ApexSolverResult;pub use factors::BetweenFactor;pub use factors::Factor;pub use factors::PriorFactor;pub use factors::ProjectionFactor;pub use linalg::LinearSolverType;pub use linalg::SparseCholeskySolver;pub use linalg::SparseLinearSolver;pub use linalg::SparseQRSolver;pub use logger::init_logger;pub use logger::init_logger_with_level;pub use optimizer::LevenbergMarquardt;pub use optimizer::OptObserver;pub use optimizer::OptObserverVec;pub use optimizer::OptimizerType;pub use optimizer::Solver;pub use optimizer::levenberg_marquardt::LevenbergMarquardtConfig;pub use apex_camera_models;pub use apex_io;pub use apex_manifolds;
Modules§
- camera_
models - core
- Core optimization components for the apex-solver library
- error
- Error types for the apex-solver library
- factors
- Factor implementations for graph-based optimization problems.
- linalg
- logger
- Centralized logging configuration for apex-solver binaries and examples
- manifold
- observers
- Observer pattern for optimization monitoring.
- optimizer
- Optimization solvers for nonlinear least squares problems.
Structs§
- BalLoader
- Loader for BAL (Bundle Adjustment in the Large) dataset files.
- Double
Sphere Camera - Double Sphere camera model with 6 parameters.
- Eucm
Camera - Extended Unified Camera Model with 6 parameters.
- FovCamera
- FOV camera model with 5 parameters.
- G2oLoader
- High-performance G2O file loader
- Graph
- Main graph structure containing vertices and edges
- Kannala
Brandt Camera - Kannala-Brandt fisheye camera model with 8 parameters.
- Pinhole
Camera - Pinhole camera model with 4 intrinsic parameters.
- RadTan
Camera - A Radial-Tangential camera model with 9 intrinsic parameters.
- Rn
- Rⁿ group element representing n-dimensional Euclidean vectors.
- SE2
- SE(2) group element representing rigid body transformations in 2D.
- SE3
- SE(3) group element representing rigid body transformations in 3D.
- SO2
- SO(2) group element representing rotations in 2D.
- SO3
- SO(3) group element representing rotations in 3D.
- Toro
Loader - TORO format loader
- UcmCamera
- Unified Camera Model with 5 parameters.
Enums§
Traits§
- Camera
Model - Trait for camera projection models.
- Interpolatable
- Trait for Lie groups that support interpolation.
- LieGroup
- Core trait for Lie group operations.
- Tangent
- Trait for Lie algebra operations.