30 if (
model !=
nullptr) {
31 const auto &robust = std::dynamic_pointer_cast<noiseModel::Robust>(
model);
34 sigmas = robust->noise()->sigmas();
44 else if (
n == 3 ||
n == 6) {
48 throw std::runtime_error(
"Can only convert isotropic rotation noise");
54 throw std::runtime_error(
"Can only convert Pose2/Pose3 noise models");
58 auto isoModel = noiseModel::Isotropic::Sigma(
d,
sigma);
59 const auto &robust = std::dynamic_pointer_cast<noiseModel::Robust>(
model);
61 return noiseModel::Robust::Create(
62 noiseModel::mEstimator::Huber::Create(1.345), isoModel);
64 return std::move(isoModel);