mirror of
https://github.com/introlab/rtabmap_ros.git
synced 2026-10-04 08:47:45 +08:00
Fixed variance conversion from double to float with large numbers (over float max but not inf) (ref: http://answers.ros.org/question/221550/problem-running-rtabmap_ros-against-a-bag-file/)
This commit is contained in:
+4
-4
@@ -629,8 +629,8 @@ bool CoreWrapper::commonOdomUpdate(const nav_msgs::OdometryConstPtr & odomMsg)
|
|||||||
|
|
||||||
lastPose_ = odom;
|
lastPose_ = odom;
|
||||||
lastPoseStamp_ = odomMsg->header.stamp;
|
lastPoseStamp_ = odomMsg->header.stamp;
|
||||||
double transVariance = uMax3(odomMsg->pose.covariance[0], odomMsg->pose.covariance[7], odomMsg->pose.covariance[14]);
|
float transVariance = uMax3(odomMsg->pose.covariance[0], odomMsg->pose.covariance[7], odomMsg->pose.covariance[14]);
|
||||||
double rotVariance = uMax3(odomMsg->pose.covariance[21], odomMsg->pose.covariance[28], odomMsg->pose.covariance[35]);
|
float rotVariance = uMax3(odomMsg->pose.covariance[21], odomMsg->pose.covariance[28], odomMsg->pose.covariance[35]);
|
||||||
if(uIsFinite(rotVariance) && rotVariance > rotVariance_)
|
if(uIsFinite(rotVariance) && rotVariance > rotVariance_)
|
||||||
{
|
{
|
||||||
rotVariance_ = rotVariance;
|
rotVariance_ = rotVariance;
|
||||||
@@ -1217,8 +1217,8 @@ void CoreWrapper::process(
|
|||||||
const SensorData & data,
|
const SensorData & data,
|
||||||
const Transform & odom,
|
const Transform & odom,
|
||||||
const std::string & odomFrameId,
|
const std::string & odomFrameId,
|
||||||
double odomRotationalVariance,
|
float odomRotationalVariance,
|
||||||
double odomTransitionalVariance)
|
float odomTransitionalVariance)
|
||||||
{
|
{
|
||||||
UTimer timer;
|
UTimer timer;
|
||||||
if(rtabmap_.isIDsGenerated() || data.id() > 0)
|
if(rtabmap_.isIDsGenerated() || data.id() > 0)
|
||||||
|
|||||||
+4
-4
@@ -183,8 +183,8 @@ private:
|
|||||||
const rtabmap::SensorData & data,
|
const rtabmap::SensorData & data,
|
||||||
const rtabmap::Transform & odom = rtabmap::Transform(),
|
const rtabmap::Transform & odom = rtabmap::Transform(),
|
||||||
const std::string & odomFrameId = "",
|
const std::string & odomFrameId = "",
|
||||||
double odomRotationalVariance = 1.0,
|
float odomRotationalVariance = 1.0,
|
||||||
double odomTransitionalVariance = 1.0);
|
float odomTransitionalVariance = 1.0);
|
||||||
|
|
||||||
bool updateRtabmapCallback(std_srvs::Empty::Request&, std_srvs::Empty::Response&);
|
bool updateRtabmapCallback(std_srvs::Empty::Request&, std_srvs::Empty::Response&);
|
||||||
bool resetRtabmapCallback(std_srvs::Empty::Request&, std_srvs::Empty::Response&);
|
bool resetRtabmapCallback(std_srvs::Empty::Request&, std_srvs::Empty::Response&);
|
||||||
@@ -229,8 +229,8 @@ private:
|
|||||||
bool paused_;
|
bool paused_;
|
||||||
rtabmap::Transform lastPose_;
|
rtabmap::Transform lastPose_;
|
||||||
ros::Time lastPoseStamp_;
|
ros::Time lastPoseStamp_;
|
||||||
double rotVariance_;
|
float rotVariance_;
|
||||||
double transVariance_;
|
float transVariance_;
|
||||||
rtabmap::Transform currentMetricGoal_;
|
rtabmap::Transform currentMetricGoal_;
|
||||||
bool latestNodeWasReached_;
|
bool latestNodeWasReached_;
|
||||||
rtabmap::ParametersMap parameters_;
|
rtabmap::ParametersMap parameters_;
|
||||||
|
|||||||
Reference in New Issue
Block a user