You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the IntegratedMatchingCostFactor (and others), the error is evaluated as const double error = 0.5 * residual.transpose() * residual; . This error is then used to create the HessianFactor as new gtsam::HessianFactor(keys()[0], H_source, -b_source, error).
As per the documentation of the HessianFactor, the constant term that needs to be provided to the constructor is $f = b^Tb$ where $b = \Sigma^{-1/2} (z - h(x_0))$ is the whitened negative error at the linearization point $x_0$.
Maybe I am misunderstanding something but I don't follow the reason for the factor of 0.5 in the code?
The text was updated successfully, but these errors were encountered:
Hmmm, maybe I added that constant for some reasons (consistency with GTSAM factors?), but I'm not very confident now. While the error value itself does not affect the optimization as long as H and b are correct, I'll re-check whether 0.5 is necessary.
In the IntegratedMatchingCostFactor (and others), the error is evaluated as
const double error = 0.5 * residual.transpose() * residual;
. Thiserror
is then used to create the HessianFactor asnew gtsam::HessianFactor(keys()[0], H_source, -b_source, error)
.As per the documentation of the HessianFactor, the constant term that needs to be provided to the constructor is$f = b^Tb$ where $b = \Sigma^{-1/2} (z - h(x_0))$ is the whitened negative error at the linearization point $x_0$ .
Maybe I am misunderstanding something but I don't follow the reason for the factor of 0.5 in the code?
The text was updated successfully, but these errors were encountered: