Skip to content

Commit

Permalink
Fixed node ID=0 issues as msgs may not have seq. (#1202)
Browse files Browse the repository at this point in the history
(cherry picked from commit 097cab0)
  • Loading branch information
borongyuan authored Sep 2, 2024
1 parent a97efff commit 3eb0b47
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 5 deletions.
2 changes: 2 additions & 0 deletions rtabmap_conversions/src/MsgConversion.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1402,6 +1402,7 @@ rtabmap::Signature nodeFromROS(const rtabmap_msgs::Node & msg)
std::multimap<int, int> words;
std::vector<cv::KeyPoint> wordsKpts;
std::vector<cv::Point3f> words3D;

cv::Mat wordsDescriptors = rtabmap::uncompressData(msg.word_descriptors);

if(msg.word_id_keys.size() != msg.word_id_values.size())
Expand Down Expand Up @@ -1456,6 +1457,7 @@ rtabmap::Signature nodeFromROS(const rtabmap_msgs::Node & msg)
}
s.setWords(words, wordsKpts, words3D, wordsDescriptors);
s.sensorData() = sensorDataFromROS(msg.data);
s.sensorData().setId(msg.id);
return s;
}
void nodeToROS(const rtabmap::Signature & signature, rtabmap_msgs::Node & msg)
Expand Down
7 changes: 2 additions & 5 deletions rtabmap_slam/src/CoreWrapper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1778,10 +1778,7 @@ void CoreWrapper::commonSensorDataCallback(
}

SensorData data = rtabmap_conversions::sensorDataFromROS(*sensorDataMsg);
if(lastPoseIntermediate_)
{
data.setId(-1);
}
data.setId(lastPoseIntermediate_?-1:0);

OdometryInfo odomInfo;
if(odomInfoMsg.get())
Expand Down Expand Up @@ -2282,7 +2279,7 @@ void CoreWrapper::process(
}

// If not intermediate node
if(data.id() > 0)
if(data.id() >= 0)
{
localizationDiagnostic_.updateStatus(rtabmap_.getStatistics().localizationCovariance(), twoDMapping_);
tick(stamp, rate_>0?rate_:1000.0/(timeMsgConversion+timeRtabmap+timeUpdateMaps+timePublishMaps));
Expand Down

0 comments on commit 3eb0b47

Please sign in to comment.