ceres::CostFunction* cost_function = new ceres::AutoDiffCostFunction<CostFunctor, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9>( new CostFunctor);参数含义
时间: 2023-09-29 13:11:06 浏览: 184
Ceres Solver 2020 文档.pdf
这段代码是使用Ceres Solver库来定义一个Cost Function,其中的模板参数`<CostFunctor, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9>`的含义如下:
- `CostFunctor`是定义了计算残差的函数对象类型,它需要继承自ceres::SizedCostFunction,并实现Evaluate()方法。
- `3`表示这个Cost Function计算出来的残差的维度为3。
- `1, 1, 1, 1, 1, 1, 1, 1, 1, 1`表示Cost Function的输入参数个数,这里是10个,每个参数都是一个标量。
- `9`表示Jacobian矩阵的列数,它等于每个输入参数的自变量个数之和,即1+1+1+1+1+1+1+1+1+1=10。
因此,这个Cost Function的定义是一个计算3维残差的函数,它有10个输入参数,每个参数都是一个标量,它的Jacobian矩阵的列数为9。其中,`new CostFunctor`是Cost Function的实现,`new ceres::AutoDiffCostFunction`是用于自动求导的Ceres函数对象,它会自动生成Cost Function的Jacobian矩阵。
阅读全文