rtabmapviz: using twist covariance instead of pose covariance

This commit is contained in:
matlabbe
2016-08-05 14:22:45 -04:00
parent 30ed81a32c
commit 8ad683736b
2 changed files with 17 additions and 17 deletions
+1 -1
View File
@@ -681,7 +681,7 @@ bool CoreWrapper::commonOdomUpdate(const nav_msgs::OdometryConstPtr & odomMsg)
// Only update variance if odom is not null
if(!odom.isNull())
{
// using MIN in case of 3DoF mapping (maybe not parameters are set, except x and yaw for the twist)
// using MIN in case of 3DoF mapping (maybe no parameters are set, except x and yaw for the twist)
float transVariance = uMax3(odomMsg->twist.covariance[0], MIN(odomMsg->twist.covariance[7], BAD_COVARIANCE), MIN(odomMsg->twist.covariance[14], BAD_COVARIANCE));
float rotVariance = uMax3(MIN(odomMsg->twist.covariance[21],BAD_COVARIANCE), MIN(odomMsg->twist.covariance[28], BAD_COVARIANCE), odomMsg->twist.covariance[35]);
if(uIsFinite(rotVariance) && rotVariance > rotVariance_)
+16 -16
View File
@@ -566,15 +566,15 @@ void GuiWrapper::commonDepthCallback(
cv::Mat covariance = cv::Mat::eye(6,6,CV_64FC1);
if(odomMsg.get())
{
UASSERT(odomMsg->pose.covariance.size() == 36);
if(!(odomMsg->pose.covariance[0] == 0 &&
odomMsg->pose.covariance[7] == 0 &&
odomMsg->pose.covariance[14] == 0 &&
odomMsg->pose.covariance[21] == 0 &&
odomMsg->pose.covariance[28] == 0 &&
odomMsg->pose.covariance[35] == 0))
UASSERT(odomMsg->twist.covariance.size() == 36);
if(odomMsg->twist.covariance[0] != 0 &&
odomMsg->twist.covariance[7] != 0 &&
odomMsg->twist.covariance[14] != 0 &&
odomMsg->twist.covariance[21] != 0 &&
odomMsg->twist.covariance[28] != 0 &&
odomMsg->twist.covariance[35] != 0)
{
covariance = cv::Mat(6,6,CV_64FC1,(void*)odomMsg->pose.covariance.data()).clone();
covariance = cv::Mat(6,6,CV_64FC1,(void*)odomMsg->twist.covariance.data()).clone();
}
}
if(odomHeader.frame_id.empty())
@@ -814,15 +814,15 @@ void GuiWrapper::commonStereoCallback(
cv::Mat covariance = cv::Mat::eye(6,6,CV_64FC1);
if(odomMsg.get())
{
UASSERT(odomMsg->pose.covariance.size() == 36);
if(!(odomMsg->pose.covariance[0] == 0 &&
odomMsg->pose.covariance[7] == 0 &&
odomMsg->pose.covariance[14] == 0 &&
odomMsg->pose.covariance[21] == 0 &&
odomMsg->pose.covariance[28] == 0 &&
odomMsg->pose.covariance[35] == 0))
UASSERT(odomMsg->twist.covariance.size() == 36);
if(odomMsg->twist.covariance[0] != 0 &&
odomMsg->twist.covariance[7] != 0 &&
odomMsg->twist.covariance[14] != 0 &&
odomMsg->twist.covariance[21] != 0 &&
odomMsg->twist.covariance[28] != 0 &&
odomMsg->twist.covariance[35] != 0)
{
covariance = cv::Mat(6,6,CV_64FC1,(void*)odomMsg->pose.covariance.data()).clone();
covariance = cv::Mat(6,6,CV_64FC1,(void*)odomMsg->twist.covariance.data()).clone();
}
}
if(odomHeader.frame_id.empty())