非线性优化
文章平均质量分 91
泠山
欢迎提出任何想法和指正,没回复多半是太忙了
展开
-
Ceres-Solver和G2O中的new是否存在内存泄露
然而,在某些情况下,这可能是不希望的,因此也可以在构造函数中指定。出来的是否需要释放呢?如果不手动释放,是否存在内存泄漏的风险?与 Ceres 内的内存管理方式异曲同工,G2O 是在将。析构时自动释放掉,所以并不会造成内存泄露的问题。作为第二个参数,同时传递一个指向。可以看见上面的代码段。原创 2024-05-08 16:33:26 · 737 阅读 · 0 评论 -
Ceres Manifolds/LocalParameterization 类
x在老版本中,想实现流形的建模,使用的是类。在 V2.1.0 版本时,新增了Manifolds类并在 V2.2.0 时,Ceres-Solver 官方将类删除了。两个类在用法上区别不大。但不得不说,老版本的命名方式确实不如新版,至少新版又短又一眼能看出其用途。对于四元数或者旋转矩阵这种使用过参数化表示旋转的方式,它们是。原创 2024-01-10 16:59:08 · 1452 阅读 · 0 评论 -
Ceres 获取雅可比及海塞矩阵
在执行边缘化过程中,我们需要构建整个问题对应的 Hessian 矩阵,然后将要被边缘化的状态变量移动到 Hessian 矩阵的右下角或者左下角,执行舒尔补。因此我们可以将边缘化问题拆解成两个子问题:Hessian 矩阵的构建和被边缘化的状态变量移动到 Hessian 矩阵的右下或左下角。而本文仅记录使用 Ceres 的接口获取优化问题中 Jacobian 和 Hessian 矩阵的过程。转载 2024-01-05 20:19:01 · 278 阅读 · 0 评论 -
Ceres-Solver 官方文档-其二
像所有基于梯度的优化算法一样,Ceres Solver 依赖于能够评估目标函数及其在其域中任意点的导数。实际上,在使用 Ceres Solver 求解优化问题时,定义目标函数及其雅可比矩阵是用户需要执行的主要任务。应该使用这三种方法中的哪一种(单独使用还是组合使用)取决于情况和用户愿意做出的权衡。不幸的是,数值优化教科书很少详细讨论这些问题,用户只能自己摸索。本文的目的是填补这一空白,并在 Ceres Solver 上下文中详细描述这三种方法中的每一种,以便用户能够做出明智的选择。原创 2023-07-10 17:37:45 · 424 阅读 · 0 评论 -
Ceres-Solver 官方文档-其一
具体来说,它创建了一个表示机器人姿态的节点图,以及表示两个节点之间的相对变换(delta position and orientation)的边。这种优化问题通常被表述为非线性最小二乘问题,其中误差是观测到的特征位置与相应的三维点在相机图像平面上的投影之差的平方。在某些情况下,我们无法定义一个模板代价拟函数,例如,当残差的求值涉及对无法控制的库函数的调用时。计算导数是迄今为止使用 Ceres 最复杂的部分,根据具体情况,用户可能需要更复杂的计算导数的方法。拟合随机分布在具有近似线段轮廓的椭圆上的点。原创 2023-07-10 13:52:07 · 1584 阅读 · 2 评论 -
Ceres 线性求解器选择
LinearSolverType 里面定义了。原创 2023-05-09 18:33:28 · 866 阅读 · 1 评论 -
解超定方程 Ax=0 与奇异值分解
很显然,这个方程有一个零解,但这不是我们想要的,我们实际想求非零解。问题来了,那么多的特征向量,应该选择哪个作为解呢?前文已经介绍了奇异值分解,现在来聊聊奇异值分解的一个应用。也就是说(1)式的解,就是这些特征向量中的一个。上方公式(7)的推导,利用了公式(6) 及。工程中很多问题会归结为求解超定方程。这是一个带约束的最小二乘问题,我们把。等一些问题都是求解这个方程。为了求极值,我们分别对。方程(1)的非零解就是。转载 2023-04-13 11:24:08 · 356 阅读 · 0 评论 -
Lie theory for the roboticist
什么是群?群是一些元素组成的集合,例如含有元素XYZ\{X,Y,Z\}XYZ的集合GGG,它群通过四个公理定义。这里十四讲讲的完全一样群带有一些运算,被称为封闭性(Composition),即两个元素的组合得出的一个元素也在该群中;存在这样的一个元素-----单位元素(Identity element) ,当我们用任何其他元素与单位元素进行操作时,我们所得到的都是该元素本身;群内有一个逆元素(Inverse element),当我们用其逆元素操作元素时,我们会得到单位元素;原创 2023-03-22 23:54:08 · 329 阅读 · 0 评论 -
非线性优化
如果从系统状态空间表达式来观察,线性系统和非线性系统最明显的区别方法就是线性系统遵从叠加原理,而非线性系统不然。所谓叠加原理举个例子就是:f(x)=2x,f(y)=2y,f(x+y)=2(x+y)=2x+2y=f(x)+f(y)f(x)=2x,f(y)=2y,f(x+y)=2(x+y)=2x+2y=f(x)+f(y)f(x)=2x,f(y)=2y,f(x+y)=2(x+y)=2x+2y=f(x)+f(y)举个反例:f(x)=2x2,f(y)=2y2,f(x)+f(y)=2(x2+y2)f(x)=2x^原创 2022-10-09 19:49:43 · 1084 阅读 · 0 评论 -
Ceres 曲线拟合
Ceres 是一个广泛使用的最小二乘问题求解库。在 Ceres 中,我们作为用户,只需按照一定步骤定义待解的优化问题,然后交给求解器计算。minx12∑iρi(∥fi(xi1,…xin)∥2)s.t.lj≤xj≤ujminxs.t.21∑iρi(∥fi(xi1,…xin)∥2)lj≤xj≤uj在这个问题中,x。原创 2022-09-16 18:06:56 · 1143 阅读 · 0 评论 -
g2o 曲线拟合
的行为了。比如会使用左乘更新或右乘更新,而不是直接的加法。原创 2020-11-05 09:46:13 · 852 阅读 · 1 评论 -
雅克比矩阵理解
雅克比矩阵理解1.概述1.1 示例1.2 意义1.3 雅克比矩阵的使用2. 雅克比行列式Reference:高翔,张涛 《视觉SLAM十四讲》雅可比矩阵和雅可比行列式Jacobian prerequisite knowledge1.概述设 f:Rn→Rmf:\mathbb{R}^{n} \rightarrow \mathbb{R}^{m}f:Rn→Rm 是一个函数,它的输入是向量 x∈Rnx\in \mathbb{R}^{n}x∈Rn,输出是向量 y=f(x)∈Rmy=f(x)\in \ma原创 2021-04-12 20:32:48 · 3783 阅读 · 0 评论 -
解析解与数值解
数值解,即采用某种计算方法,如有限元的方法,数值逼近,插值的方法,得到的解。当无法由微积分技巧求得解析解时,这时便只能利用数值分析的方法来求得其数值解了。在数值分析的过程中,首先会将原方程式加以简化,以利后来的数值分析。例如,会先将微分符号改为差分符号等。然后再用传统的代数方法将原方程式改写成另一方便求解的形式。这时的求解步骤就是将一独立变量带入,求得相依变量的近似解。原创 2020-07-15 20:34:12 · 760 阅读 · 0 评论