优化库
文章平均质量分 84
ceres、g2o
陋室逢雨
leatherwang@foxmail.com
欢迎交流!
展开
-
【Eigen】(一)初探
参考:Eigen英文手册Eigen的API手册写的真心详细,推荐阅读. Eigen中涉及的分解方法主要包括,Cholesky分解、QR分解、SVD分解、特征值分解(eigendecomposition)等.1、线性求解问题中几种分解方法的比较针对求解 Ax=bAx=bAx=b 这种线性问题,Eigen提供了下面几种分解方法,每一种方法都提供了一个solve()函数以便求解得到 xxx,...原创 2018-12-11 17:18:12 · 3512 阅读 · 0 评论 -
【Ceres】(三)Covariance Estimation
参考:Ceres Covariance EstimationOne way to assess the quality of the solution returned by a non-linear least squares solver is to analyze the covariance of the solution.求解非线性问题y=f(x)+N(0,I)y = f(x) + N(0, I)y=f(x)+N(0,I)观测yyy是一个独立于xxx的随机非线性函数,其均值是f(x.原创 2020-11-08 11:49:22 · 2169 阅读 · 0 评论 -
g2o、Eigen、Mat矩阵类型转换
Se3<->SE3Quat Matrix3D Rbc=toEigenMatrix3d(se3bc.R()); Vector3D tbc=toG2oVector3D(se3bc.tvec); g2o::SE3Quat Tbc=g2o::SE3Quat(Rbc, tbc);Se2->SE3Qua原创 2018-06-16 15:36:56 · 5549 阅读 · 0 评论 -
g2o使用总结
需要解决的问题: 如何自定义Vertex和Edge? 如何选择Edge类型?一元还是二元? 如何赋值信息矩阵? 如何设置鲁棒核函数的阈值? 如何选择Vertex设置为固定? 如何边缘化以便稀疏化求解? 如何处理优化结束后outliner? 如何设置根据卡方分布的临界值表对Edge的chi2设置阈值?1. g2o提供的顶点vertex1) 李代数位姿clas...原创 2018-04-10 17:09:13 · 14796 阅读 · 27 评论 -
【Ceres】(一)自动求导(AutomaticDiff)
g2o中如果没有定义这个边的linearizeOplus(),就会调用数值求导。但是g2o的数值求导比较慢,效果较差。所以下面探讨在g2o中嵌入ceres的自动求导,避免复杂的雅可比矩阵的推导。参考:http://ceres-solver.org/automatic_derivatives.html 先看一下数值求导与自动求导的区别: We will now consider aut...原创 2018-07-09 13:24:14 · 6742 阅读 · 0 评论 -
【Ceres】(二)LocalParameterization参数化
参考:[1] ceres-solver[2]《A Tutorial on Graph-Based SLAM》[3]《流形与几何初步》[4]《Quaternion kinematics for the error-state Kalman filter》如果直接使用 over-parameterized way(如四元数),使用普通的加法就会打破其 constraint,比如旋转矩阵...原创 2019-01-15 14:54:17 · 12073 阅读 · 5 评论