mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-03 01:50:24 +08:00
GUI: Added Multi-Session Localization view. CameraModel: set localTransform to optical rotation in default constructor (fixed matrix invertion errors with code ignoring setting local transform), save/read local transform in/from camera calibration yaml file (so that local transform is also exported when extracting rgb/depth images). Rtabmap: in localization mode, ignore landmarks farther than RGBD/LocalRadius if no global loop closures are already in odometry cache.
This commit is contained in:
@@ -74,6 +74,7 @@ class PostProcessingDialog;
|
||||
class DepthCalibrationDialog;
|
||||
class DataRecorder;
|
||||
class OctoMap;
|
||||
class MultiSessionLocWidget;
|
||||
|
||||
class RTABMAPGUI_EXP MainWindow : public QMainWindow, public UEventsHandler
|
||||
{
|
||||
@@ -404,6 +405,8 @@ private:
|
||||
PdfPlotCurve * _likelihoodCurve;
|
||||
PdfPlotCurve * _rawLikelihoodCurve;
|
||||
|
||||
MultiSessionLocWidget * _multiSessionLocWidget;
|
||||
|
||||
ProgressDialog * _progressDialog;
|
||||
|
||||
CloudViewer * _cloudViewer;
|
||||
|
||||
64
guilib/include/rtabmap/gui/MultiSessionLocSubView.h
Normal file
64
guilib/include/rtabmap/gui/MultiSessionLocSubView.h
Normal file
@@ -0,0 +1,64 @@
|
||||
/*
|
||||
Copyright (c) 2010-2016, Mathieu Labbe - IntRoLab - Universite de Sherbrooke
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the Universite de Sherbrooke nor the
|
||||
names of its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
|
||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef RTABMAP_MULTISESSIONLOCSUBVIEW_H_
|
||||
#define RTABMAP_MULTISESSIONLOCSUBVIEW_H_
|
||||
|
||||
#include "rtabmap/gui/RtabmapGuiExp.h" // DLL export/import defines
|
||||
#include <opencv2/core.hpp>
|
||||
#include <QWidget>
|
||||
|
||||
class Ui_multiSessionLocSubView;
|
||||
|
||||
namespace rtabmap {
|
||||
|
||||
class ImageView;
|
||||
|
||||
class RTABMAPGUI_EXP MultiSessionLocSubView : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
MultiSessionLocSubView(ImageView * mainView, int mapId, QWidget * parent = 0);
|
||||
virtual ~MultiSessionLocSubView();
|
||||
|
||||
public Q_SLOTS:
|
||||
void updateView(
|
||||
int nodeId,
|
||||
const QImage & image,
|
||||
const std::multimap<int, cv::KeyPoint> & features,
|
||||
float locRatio,
|
||||
const QColor & bgColor);
|
||||
void clear();
|
||||
|
||||
private:
|
||||
Ui_multiSessionLocSubView * ui_;
|
||||
int mapId_;
|
||||
};
|
||||
|
||||
} /* namespace rtabmap */
|
||||
#endif /* RTABMAP_MULTISESSIONLOCSUBVIEW_H_ */
|
||||
76
guilib/include/rtabmap/gui/MultiSessionLocWidget.h
Normal file
76
guilib/include/rtabmap/gui/MultiSessionLocWidget.h
Normal file
@@ -0,0 +1,76 @@
|
||||
/*
|
||||
Copyright (c) 2010-2016, Mathieu Labbe - IntRoLab - Universite de Sherbrooke
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the Universite de Sherbrooke nor the
|
||||
names of its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
|
||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef RTABMAP_MULTISESSIONLOCWIDGET_H_
|
||||
#define RTABMAP_MULTISESSIONLOCWIDGET_H_
|
||||
|
||||
#include "rtabmap/gui/RtabmapGuiExp.h" // DLL export/import defines
|
||||
|
||||
#include "rtabmap/core/Statistics.h"
|
||||
#include "rtabmap/core/Signature.h"
|
||||
#include <QWidget>
|
||||
|
||||
class QPushButton;
|
||||
class QProgressBar;
|
||||
|
||||
namespace rtabmap {
|
||||
|
||||
class MultiSessionLocSubView;
|
||||
class ImageView;
|
||||
|
||||
class RTABMAPGUI_EXP MultiSessionLocWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
MultiSessionLocWidget(
|
||||
const QMap<int, Signature> * cache,
|
||||
const std::map<int, int> * mapIds,
|
||||
QWidget * parent = 0);
|
||||
virtual ~MultiSessionLocWidget();
|
||||
|
||||
ImageView * getImageView() {return imageView_;}
|
||||
|
||||
public Q_SLOTS:
|
||||
void updateView(
|
||||
const Signature & lastSignature,
|
||||
const Statistics & stats);
|
||||
void clear();
|
||||
|
||||
private:
|
||||
const QMap<int, Signature> * cache_;
|
||||
const std::map<int, int> * mapIds_;
|
||||
std::map<int, std::pair<MultiSessionLocSubView*, int> > subViews_;
|
||||
ImageView * imageView_;
|
||||
QProgressBar * totalLocProgressBar_;
|
||||
QPushButton * resetbutton_;
|
||||
int totalFrames_;
|
||||
int totalLoops_;
|
||||
};
|
||||
|
||||
} /* namespace rtabmap */
|
||||
#endif /* RTABMAP_MULTISESSIONLOCWIDGET_H_ */
|
||||
Reference in New Issue
Block a user