Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion corelib/include/rtabmap/core/Memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ class RTABMAP_CORE_EXPORT Memory
void deleteLocation(int locationId, std::list<int> * deletedWords = 0);
void saveLocationData(int locationId);
void removeLink(int idA, int idB);
void removeRawData(int id, bool image = true, bool scan = true, bool userData = true);
void removeRawData(int id, bool image = true, bool scan = true, bool userData = true, bool occupancyGrid = true);
int reduceNode(int id, float maxDistance = 0.0f, bool keepLinkedInDb = false, int direction = 0);

//getters
Expand Down
5 changes: 3 additions & 2 deletions corelib/src/Memory.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3176,7 +3176,7 @@ void Memory::removeLink(int oldId, int newId)
}
}

void Memory::removeRawData(int id, bool image, bool scan, bool userData)
void Memory::removeRawData(int id, bool image, bool scan, bool userData, bool occupancyGrid)
{
UDEBUG("id=%d image=%d scan=%d userData=%d", id, image?1:0, scan?1:0, userData?1:0);
Signature * s = this->_getSignature(id);
Expand All @@ -3185,7 +3185,8 @@ void Memory::removeRawData(int id, bool image, bool scan, bool userData)
s->sensorData().clearRawData(
image && (!_reextractLoopClosureFeatures || !_registrationPipeline->isImageRequired()),
scan && !_registrationPipeline->isScanRequired(),
userData && !_registrationPipeline->isUserDataRequired());
userData && !_registrationPipeline->isUserDataRequired(),
occupancyGrid);
}
}

Expand Down
2 changes: 1 addition & 1 deletion corelib/src/Rtabmap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4423,7 +4423,7 @@ bool Rtabmap::process(
}
if(!_rawDataKept)
{
_memory->removeRawData(signature->id(), true, !_neighborLinkRefining && !_proximityBySpace, true);
_memory->removeRawData(signature->id(), true, !_neighborLinkRefining && !_proximityBySpace, true, false);
}

// Localization mode and saving localization data: save odometry covariance in a prior link
Expand Down
16 changes: 16 additions & 0 deletions corelib/src/SensorData.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -997,6 +997,14 @@ void SensorData::clearCompressedData(bool images, bool scan, bool userData, bool
_groundCellsCompressed=cv::Mat();
_emptyCellsCompressed=cv::Mat();
_obstacleCellsCompressed=cv::Mat();

if( _groundCellsCompressed.empty() && _groundCellsRaw.empty() &&
_obstacleCellsCompressed.empty() && _obstacleCellsRaw.empty() &&
_emptyCellsCompressed.empty() && _emptyCellsRaw.empty())
{
_cellSize = 0.0f;
_viewPoint = cv::Point3f();
}
}
}
void SensorData::clearRawData(bool images, bool scan, bool userData, bool occupancyGrid)
Expand Down Expand Up @@ -1024,6 +1032,14 @@ void SensorData::clearRawData(bool images, bool scan, bool userData, bool occupa
_groundCellsRaw=cv::Mat();
_emptyCellsRaw=cv::Mat();
_obstacleCellsRaw=cv::Mat();

if( _groundCellsCompressed.empty() && _groundCellsRaw.empty() &&
_obstacleCellsCompressed.empty() && _obstacleCellsRaw.empty() &&
_emptyCellsCompressed.empty() && _emptyCellsRaw.empty())
{
_cellSize = 0.0f;
_viewPoint = cv::Point3f();
}
}
}

Expand Down
Loading