Updated how odometry guess is done (adapt to time between timestamps) and Kalman filtering (using velocity)

This commit is contained in:
matlabbe
2016-02-27 18:30:00 -05:00
parent a8d1b91083
commit 6d06b66496
16 changed files with 311 additions and 253 deletions

View File

@@ -128,6 +128,7 @@ CloudViewer::CloudViewer(QWidget *parent) :
// the "Invalid drawable" warning when the view is not visible.
//_visualizer->setupInteractor(this->GetInteractor(), this->GetRenderWindow());
this->GetInteractor()->SetInteractorStyle (_visualizer->getInteractorStyle());
_visualizer->getInteractorStyle()->GetInteractor()->SetDesiredUpdateRate(5.0);
_visualizer->setCameraPosition(
-1, 0, 0,

View File

@@ -369,7 +369,6 @@ void ImageView::setGraphicsViewMode(bool on)
{
_imageItem = _graphicsView->scene()->addPixmap(_image);
_imageItem->setVisible(_showImage->isChecked());
_showImage->setEnabled(true);
}
if(_imageDepthItem)
@@ -380,7 +379,6 @@ void ImageView::setGraphicsViewMode(bool on)
{
_imageDepthItem = _graphicsView->scene()->addPixmap(_imageDepth);
_imageDepthItem->setVisible(_showImageDepth->isChecked());
_showImageDepth->setEnabled(true);
}
this->updateOpacity();
@@ -725,7 +723,6 @@ void ImageView::setImage(const QImage & image)
{
_imageItem = _graphicsView->scene()->addPixmap(_image);
_imageItem->setVisible(_showImage->isChecked());
_showImage->setEnabled(true);
this->updateOpacity();
}
}
@@ -761,7 +758,6 @@ void ImageView::setImageDepth(const QImage & imageDepth)
{
_imageDepthItem = _graphicsView->scene()->addPixmap(_imageDepth);
_imageDepthItem->setVisible(_showImageDepth->isChecked());
_showImageDepth->setEnabled(true);
this->updateOpacity();
}
}
@@ -879,7 +875,6 @@ void ImageView::clear()
_graphicsView->scene()->removeItem(_imageItem);
delete _imageItem;
_imageItem = 0;
_showImage->setEnabled(false);
}
_image = QPixmap();
@@ -888,7 +883,6 @@ void ImageView::clear()
_graphicsView->scene()->removeItem(_imageDepthItem);
delete _imageDepthItem;
_imageDepthItem = 0;
_showImageDepth->setEnabled(false);
}
_imageDepth = QPixmap();

View File

@@ -1789,7 +1789,9 @@ void MainWindow::updateMapCloud(
_ui->graphicsView_graphView->updateGTGraph(_currentGTPosesMap);
}
cv::Mat map8U;
if((_ui->graphicsView_graphView->isVisible() || _preferencesDialog->getGridMapShown()) && (_createdScans.size() || _preferencesDialog->isGridMapFrom3DCloud()))
if((_ui->graphicsView_graphView->isVisible() || _preferencesDialog->getGridMapShown()) &&
((_gridLocalMaps.size() && !_preferencesDialog->isGridMapFrom3DCloud()) ||
(_projectionLocalMaps.size() && _preferencesDialog->isGridMapFrom3DCloud())))
{
float xMin, yMin;
float resolution = _preferencesDialog->getGridMapResolution();

View File

@@ -756,7 +756,6 @@ PreferencesDialog::PreferencesDialog(QWidget * parent) :
_ui->stereo_ssd->setObjectName(Parameters::kStereoSSD().c_str());
_ui->stereo_flow_eps->setObjectName(Parameters::kStereoEps().c_str());
_ui->stereo_opticalFlow->setObjectName(Parameters::kStereoOpticalFlow().c_str());
_ui->stereo_maxSlope->setObjectName(Parameters::kStereoMaxSlope().c_str());
//StereoBM
_ui->stereobm_blockSize->setObjectName(Parameters::kStereoBMBlockSize().c_str());

View File

@@ -64,8 +64,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>686</width>
<height>1990</height>
<width>681</width>
<height>2010</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_16">
@@ -86,7 +86,7 @@
<enum>QFrame::Raised</enum>
</property>
<property name="currentIndex">
<number>16</number>
<number>18</number>
</property>
<widget class="QWidget" name="page_22">
<layout class="QVBoxLayout" name="verticalLayout_29" stretch="0,1">
@@ -9601,55 +9601,6 @@ Lower the ratio -&gt; higher the precision. 0 means disabled, matching the neare
<string/>
</property>
<layout class="QGridLayout" name="gridLayout_33" columnstretch="0,1">
<item row="10" column="1">
<widget class="QLabel" name="label_215">
<property name="text">
<string>[OpticalFlow = true] The maximum slope for each stereo pairs.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLabel" name="label_206">
<property name="text">
<string>Maximum iterations.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="8" column="0">
<widget class="QCheckBox" name="stereo_ssd">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QSpinBox" name="stereo_winHeight">
<property name="minimum">
<number>3</number>
</property>
<property name="maximum">
<number>999999</number>
</property>
<property name="singleStep">
<number>1</number>
</property>
<property name="value">
<number>21</number>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="label_284">
<property name="text">
@@ -9705,6 +9656,58 @@ Lower the ratio -&gt; higher the precision. 0 means disabled, matching the neare
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QSpinBox" name="stereo_minDisparity">
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>999999</number>
</property>
<property name="singleStep">
<number>1</number>
</property>
<property name="value">
<number>0</number>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLabel" name="label_206">
<property name="text">
<string>Maximum iterations.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="8" column="0">
<widget class="QCheckBox" name="stereo_ssd">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QSpinBox" name="stereo_winHeight">
<property name="minimum">
<number>3</number>
</property>
<property name="maximum">
<number>999999</number>
</property>
<property name="singleStep">
<number>1</number>
</property>
<property name="value">
<number>21</number>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QSpinBox" name="stereo_iterations">
<property name="minimum">
@@ -9837,22 +9840,6 @@ Lower the ratio -&gt; higher the precision. 0 means disabled, matching the neare
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QSpinBox" name="stereo_minDisparity">
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>999999</number>
</property>
<property name="singleStep">
<number>1</number>
</property>
<property name="value">
<number>0</number>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QCheckBox" name="stereo_opticalFlow">
<property name="text">
@@ -9860,25 +9847,6 @@ Lower the ratio -&gt; higher the precision. 0 means disabled, matching the neare
</property>
</widget>
</item>
<item row="10" column="0">
<widget class="QDoubleSpinBox" name="stereo_maxSlope">
<property name="decimals">
<number>3</number>
</property>
<property name="minimum">
<double>0.001000000000000</double>
</property>
<property name="maximum">
<double>1.000000000000000</double>
</property>
<property name="singleStep">
<double>0.010000000000000</double>
</property>
<property name="value">
<double>0.100000000000000</double>
</property>
</widget>
</item>
</layout>
</widget>
</item>