rtabmap: use largest odom covariance instead of summation

This commit is contained in:
matlabbe
2017-07-13 11:39:19 -04:00
parent e944786ee5
commit 7f392f3796
3 changed files with 24 additions and 15 deletions
+5 -6
View File
@@ -763,16 +763,15 @@ bool CoreWrapper::odomUpdate(const nav_msgs::OdometryConstPtr & odomMsg)
covariance = cv::Mat(6,6,CV_64FC1, (void*)odomMsg->twist.covariance.data()).clone();
}
if(uIsFinite(covariance.at<double>(0,0)) && covariance.at<double>(0,0) != 1.0 && covariance.at<double>(0,0)>0.0)
if(uIsFinite(covariance.at<double>(0,0)) &&
covariance.at<double>(0,0) != 1.0 &&
covariance.at<double>(0,0)>0.0)
{
if(covariance_.empty())
// Use largest covariance error (to be independent of the odometry frame rate)
if(covariance_.empty() || covariance.at<double>(0,0) > covariance_.at<double>(0,0))
{
covariance_ = covariance;
}
else
{
covariance_ += covariance;
}
}
}