Added CameraStereoImages class to read stereo images from a directory. Added a particle filter to smooth odometry trajectory. Added parameter RGBD/OptimizeEpsilon to limit TORO iterations when error improvement is small. Added Rtabmap/CreateIntermediateNodes parameter: this can be used to keep all odometry poses 'between' nodes used for loop closure detection. Added PnP approach to loop closure constraint estimation. Fixed decimation of stereo images when image size is odd.

This commit is contained in:
matlabbe
2015-06-11 16:57:16 -04:00
parent feba562c1b
commit b8dccc2228
49 changed files with 2651 additions and 729 deletions

View File

@@ -131,10 +131,12 @@ private slots:
void startDetection();
void pauseDetection();
void stopDetection();
void notifyNoMoreImages();
void printLoopClosureIds();
void generateMap();
void generateLocalMap();
void generateTOROMap();
void exportPoses();
void postProcessing();
void deleteMemory();
void openWorkingDirectory();
@@ -308,6 +310,7 @@ private:
QString _graphSavingFileName;
QString _toroSavingFileName;
QString _posesSavingFileName;
bool _autoScreenCaptureOdomSync;
QVector<int> _refIds;

View File

@@ -49,7 +49,7 @@ class RTABMAPGUI_EXP OdometryViewer : public QDialog, public UEventsHandler
Q_OBJECT
public:
OdometryViewer(int maxClouds = 10, int decimation = 2, float voxelSize = 0.0f, int qualityWarningThr=0, QWidget * parent = 0);
OdometryViewer(int maxClouds = 10, int decimation = 2, float voxelSize = 0.0f, float maxDepth = 0, int qualityWarningThr=0, QWidget * parent = 0);
virtual ~OdometryViewer();
public slots:
@@ -76,6 +76,7 @@ private:
QSpinBox * maxCloudsSpin_;
QDoubleSpinBox * voxelSpin_;
QSpinBox * decimationSpin_;
QDoubleSpinBox * maxDepthSpin_;
QLabel * timeLabel_;
int validDecimationValue_;
};

View File

@@ -90,7 +90,8 @@ public:
kSrcOpenNI2,
kSrcFreenect2,
kSrcStereoDC1394,
kSrcStereoFlyCapture2
kSrcStereoFlyCapture2,
kSrcStereoImages
};
public:
@@ -205,6 +206,7 @@ public:
double getLoopThr() const;
double getVpThr() const;
int getOdomStrategy() const;
int getOdomBufferSize() const;
QString getCameraInfoDir() const; // "workinfDir/camera_info"
//
@@ -248,6 +250,8 @@ private slots:
void setupTreeView();
void updateBasicParameter();
void openDatabaseViewer();
void selectSourceStereoImagesStamps();
void selectSourceStereoImagesPath();
void updateRGBDCameraGroupBoxVisibility();
void testOdometry();
void testRGBDCamera();