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 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 factors::camera::BundleAdjustment;pub use factors::camera::CameraModel;pub use factors::camera::DoubleSphereCamera;pub use factors::camera::EucmCamera;pub use factors::camera::FovCamera;pub use factors::camera::KannalaBrandtCamera;pub use factors::camera::LandmarksAndIntrinsics;pub use factors::camera::OnlyIntrinsics;pub use factors::camera::OnlyLandmarks;pub use factors::camera::OnlyPose;pub use factors::camera::OptimizeParams;pub use factors::camera::PinholeCamera;pub use factors::camera::PoseAndIntrinsics;pub use factors::camera::RadTanCamera;pub use factors::camera::SelfCalibration;pub use factors::camera::UcmCamera;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;
Modules§
- 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.
- io
- linalg
- logger
- Centralized logging configuration for apex-solver binaries and examples
- manifold
- Manifold representations for optimization on non-Euclidean spaces.
- observers
- Observer pattern for optimization monitoring.
- optimizer
- Optimization solvers for nonlinear least squares problems.