Added screenshots for ProcessADataSet tutorial.
Updated default parameter "RawDataKept" in database to true. Fixed a bug of showing rejected loop closure image in GUI when RawDataKept=false and the loop closure id is not set (only highestHypothesisId when the loop is rejected). git-svn-id: http://rtabmap.googlecode.com/svn/trunk/rtabmap@211 f169173b-cf89-36c8-b27e-44dbe73f0c83
@@ -141,7 +141,7 @@ class RTABMAP_EXP Parameters
|
|||||||
// Memory
|
// Memory
|
||||||
RTABMAP_PARAM(Mem, SimilarityThr, float, 0.20); // Similarity between the last signature and neighbor
|
RTABMAP_PARAM(Mem, SimilarityThr, float, 0.20); // Similarity between the last signature and neighbor
|
||||||
RTABMAP_PARAM(Mem, SimilarityOnlyLast, bool, false); // Only compare to the last signature in STM, otherwise it compares to all signatures in STM
|
RTABMAP_PARAM(Mem, SimilarityOnlyLast, bool, false); // Only compare to the last signature in STM, otherwise it compares to all signatures in STM
|
||||||
RTABMAP_PARAM(Mem, RawDataKept, bool, false); // Keep raw data
|
RTABMAP_PARAM(Mem, RawDataKept, bool, true); // Keep raw data
|
||||||
RTABMAP_PARAM(Mem, MaxStMemSize, unsigned int, 25); // Short-time memory size
|
RTABMAP_PARAM(Mem, MaxStMemSize, unsigned int, 25); // Short-time memory size
|
||||||
RTABMAP_PARAM(Mem, CommonSignatureUsed, bool, true); // A common signature/virtual place is automatically updated with id -1
|
RTABMAP_PARAM(Mem, CommonSignatureUsed, bool, true); // A common signature/virtual place is automatically updated with id -1
|
||||||
RTABMAP_PARAM(Mem, IncrementalMemory, bool, true);
|
RTABMAP_PARAM(Mem, IncrementalMemory, bool, true);
|
||||||
|
|||||||
BIN
doc/Tutorials/ProcessADataSet/dialog_delete_mem.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
doc/Tutorials/ProcessADataSet/dialog_initialization.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
doc/Tutorials/ProcessADataSet/dialog_working_directory.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
doc/Tutorials/ProcessADataSet/main_detection_start.png
Normal file
|
After Width: | Height: | Size: 192 KiB |
BIN
doc/Tutorials/ProcessADataSet/main_loop_detected.png
Normal file
|
After Width: | Height: | Size: 299 KiB |
BIN
doc/Tutorials/ProcessADataSet/main_statistics.png
Normal file
|
After Width: | Height: | Size: 256 KiB |
BIN
doc/Tutorials/ProcessADataSet/main_window.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
doc/Tutorials/ProcessADataSet/menu_delete_memory.png
Normal file
|
After Width: | Height: | Size: 115 KiB |
BIN
doc/Tutorials/ProcessADataSet/menu_source_images.png
Normal file
|
After Width: | Height: | Size: 116 KiB |
@@ -425,6 +425,8 @@ void MainWindow::processStats(const rtabmap::Statistics & stat)
|
|||||||
if(stat.loopClosureId()>0 || highestHypothesisId>0)
|
if(stat.loopClosureId()>0 || highestHypothesisId>0)
|
||||||
{
|
{
|
||||||
int id = stat.loopClosureId()>0?stat.loopClosureId():highestHypothesisId;
|
int id = stat.loopClosureId()>0?stat.loopClosureId():highestHypothesisId;
|
||||||
|
if(!_imagesMap.contains(id))
|
||||||
|
{
|
||||||
QByteArray ba;
|
QByteArray ba;
|
||||||
QBuffer buffer(&ba);
|
QBuffer buffer(&ba);
|
||||||
buffer.open(QIODevice::WriteOnly);
|
buffer.open(QIODevice::WriteOnly);
|
||||||
@@ -433,6 +435,7 @@ void MainWindow::processStats(const rtabmap::Statistics & stat)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
ULOGGER_DEBUG("");
|
ULOGGER_DEBUG("");
|
||||||
int rejectedHyp = bool(uValue(stat.data(), Statistics::kLoopRejectedHypothesis(), 0.0f));
|
int rejectedHyp = bool(uValue(stat.data(), Statistics::kLoopRejectedHypothesis(), 0.0f));
|
||||||
if(highestHypothesisId > 0)
|
if(highestHypothesisId > 0)
|
||||||
@@ -475,7 +478,8 @@ void MainWindow::processStats(const rtabmap::Statistics & stat)
|
|||||||
{
|
{
|
||||||
if(lcImg.isNull())
|
if(lcImg.isNull())
|
||||||
{
|
{
|
||||||
QMap<int, QByteArray>::iterator iter = _imagesMap.find(stat.loopClosureId());
|
int id = stat.loopClosureId()>0?stat.loopClosureId():highestHypothesisId;
|
||||||
|
QMap<int, QByteArray>::iterator iter = _imagesMap.find(id);
|
||||||
if(iter != _imagesMap.end())
|
if(iter != _imagesMap.end())
|
||||||
{
|
{
|
||||||
if(!lcImg.loadFromData(iter.value(), "JPEG"))
|
if(!lcImg.loadFromData(iter.value(), "JPEG"))
|
||||||
@@ -484,10 +488,6 @@ void MainWindow::processStats(const rtabmap::Statistics & stat)
|
|||||||
lcImg = QImage();
|
lcImg = QImage();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(stat.loopClosureImage())
|
|
||||||
{
|
|
||||||
lcImg = Ipl2QImage(stat.loopClosureImage());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!lcImg.isNull())
|
if(!lcImg.isNull())
|
||||||
|
|||||||