@
目录- 一、ceres::Problem
- Problem::AddResidualBlock()
- Problem::AddParameterBlock()
- Problem::SetParameterBlockConstant() 和 SetParameterBlockVariable().
一、ceres::Problem
Problem包含两个主要的成员函数Problem::AddResidalBlock()
and Problem::AddParameterBlock()
Problem::AddResidualBlock()
Problem::AddResidualBlock()顾名思义,就是向问题中添加一个残差块。它添加了一个CostFunction和一个可选的LossFunction,并将CostFunction与一组参数块相连。loss_function
可以是nullptr,在这种情况下,项的代价只是残差的二范数
Problem::AddParameterBlock()
用户可以选择使用 Problem::AddParameterBlock() 显式添加参数块。这会导致额外的正确性检查;但是,如果 Problem::AddParameterBlock()不存在,Problem::AddResidualBlock() 会隐式添加参数块,因此不需要显式调用 Problem::AddParameterBlock()。
Problem::AddParameterBlock()的另一个作用是将LocalParameterization 对象与参数块相关联。
Problem::SetParameterBlockConstant() 和 SetParameterBlockVariable().
在优化问题中我们常常会需要固定某一个参数不优化,可以使用Problem::SetParameterBlockConstant(),反之要解除这种固定使用SetParameterBlockVariable().