check if NonlinearFactor is valid before linearizing
parent
3c50f9387c
commit
3c06f07551
|
@ -185,6 +185,11 @@ std::shared_ptr<HybridGaussianFactor> HybridNonlinearFactor::linearize(
|
||||||
[continuousValues](
|
[continuousValues](
|
||||||
const std::pair<sharedFactor, double>& f) -> GaussianFactorValuePair {
|
const std::pair<sharedFactor, double>& f) -> GaussianFactorValuePair {
|
||||||
auto [factor, val] = f;
|
auto [factor, val] = f;
|
||||||
|
// Check if valid factor. If not, return null and infinite error.
|
||||||
|
if (!factor) {
|
||||||
|
return {nullptr, std::numeric_limits<double>::infinity()};
|
||||||
|
}
|
||||||
|
|
||||||
if (auto gaussian = std::dynamic_pointer_cast<noiseModel::Gaussian>(
|
if (auto gaussian = std::dynamic_pointer_cast<noiseModel::Gaussian>(
|
||||||
factor->noiseModel())) {
|
factor->noiseModel())) {
|
||||||
return {factor->linearize(continuousValues),
|
return {factor->linearize(continuousValues),
|
||||||
|
|
Loading…
Reference in New Issue