exportGraph: added RGBD-SLAM format (10) without motion capture coordinate transformation (#332)

This commit is contained in:
matlabbe
2018-11-08 12:26:37 -05:00
parent 433e20869c
commit c5057eb6b3
10 changed files with 120 additions and 55 deletions

View File

@@ -242,6 +242,7 @@ DatabaseViewer::DatabaseViewer(const QString & ini, QWidget * parent) :
connect(ui_->actionGenerate_local_graph_dot, SIGNAL(triggered()), this, SLOT(generateLocalGraph()));
connect(ui_->actionRaw_format_txt, SIGNAL(triggered()), this , SLOT(exportPosesRaw()));
connect(ui_->actionRGBD_SLAM_format_txt, SIGNAL(triggered()), this , SLOT(exportPosesRGBDSLAM()));
connect(ui_->actionRGBD_SLAM_motion_capture_format_txt, SIGNAL(triggered()), this , SLOT(exportPosesRGBDSLAMMotionCapture()));
connect(ui_->actionKITTI_format_txt, SIGNAL(triggered()), this , SLOT(exportPosesKITTI()));
connect(ui_->actionTORO_graph, SIGNAL(triggered()), this , SLOT(exportPosesTORO()));
connect(ui_->actionG2o_g2o, SIGNAL(triggered()), this , SLOT(exportPosesG2O()));
@@ -1981,10 +1982,14 @@ void DatabaseViewer::exportPosesRaw()
{
exportPoses(0);
}
void DatabaseViewer::exportPosesRGBDSLAM()
void DatabaseViewer::exportPosesRGBDSLAMMotionCapture()
{
exportPoses(1);
}
void DatabaseViewer::exportPosesRGBDSLAM()
{
exportPoses(10);
}
void DatabaseViewer::exportPosesKITTI()
{
exportPoses(2);
@@ -2177,7 +2182,7 @@ void DatabaseViewer::exportPoses(int format)
{
std::map<int, Transform> localTransforms;
QStringList items;
items.push_back("Robot");
items.push_back("Robot (base frame)");
items.push_back("Camera");
items.push_back("Scan");
bool ok;
@@ -2186,7 +2191,7 @@ void DatabaseViewer::exportPoses(int format)
{
return;
}
if(item.compare("Robot") != 0)
if(item.compare("Robot (base frame)") != 0)
{
bool cameraFrame = item.compare("Camera") == 0;
for(std::map<int, Transform>::iterator iter=optimizedPoses.begin(); iter!=optimizedPoses.end(); ++iter)
@@ -2274,7 +2279,7 @@ void DatabaseViewer::exportPoses(int format)
}
std::map<int, double> stamps;
if(format == 1)
if(format == 1 || format == 10)
{
for(std::map<int, Transform>::iterator iter=poses.begin(); iter!=poses.end(); ++iter)
{

View File

@@ -359,6 +359,7 @@ MainWindow::MainWindow(PreferencesDialog * prefDialog, QWidget * parent, bool sh
connect(_ui->actionGenerate_map, SIGNAL(triggered()), this , SLOT(generateGraphDOT()));
connect(_ui->actionRaw_format_txt, SIGNAL(triggered()), this , SLOT(exportPosesRaw()));
connect(_ui->actionRGBD_SLAM_format_txt, SIGNAL(triggered()), this , SLOT(exportPosesRGBDSLAM()));
connect(_ui->actionRGBD_SLAM_motion_capture_format_txt, SIGNAL(triggered()), this , SLOT(exportPosesRGBDSLAMMotionCapture()));
connect(_ui->actionKITTI_format_txt, SIGNAL(triggered()), this , SLOT(exportPosesKITTI()));
connect(_ui->actionTORO_graph, SIGNAL(triggered()), this , SLOT(exportPosesTORO()));
connect(_ui->actionG2o_g2o, SIGNAL(triggered()), this , SLOT(exportPosesG2O()));
@@ -5177,10 +5178,14 @@ void MainWindow::exportPosesRaw()
{
exportPoses(0);
}
void MainWindow::exportPosesRGBDSLAM()
void MainWindow::exportPosesRGBDSLAMMotionCapture()
{
exportPoses(1);
}
void MainWindow::exportPosesRGBDSLAM()
{
exportPoses(10);
}
void MainWindow::exportPosesKITTI()
{
exportPoses(2);
@@ -5200,7 +5205,7 @@ void MainWindow::exportPoses(int format)
{
std::map<int, Transform> localTransforms;
QStringList items;
items.push_back("Robot");
items.push_back("Robot (base frame)");
items.push_back("Camera");
items.push_back("Scan");
bool ok;
@@ -5209,7 +5214,7 @@ void MainWindow::exportPoses(int format)
{
return;
}
if(item.compare("Robot") != 0)
if(item.compare("Robot (base frame)") != 0)
{
bool cameraFrame = item.compare("Camera") == 0;
_exportPosesFrame = cameraFrame?1:2;
@@ -5302,7 +5307,7 @@ void MainWindow::exportPoses(int format)
}
std::map<int, double> stamps;
if(format == 1)
if(format == 1 || format == 10)
{
for(std::map<int, Transform>::iterator iter=poses.begin(); iter!=poses.end(); ++iter)
{

View File

@@ -61,7 +61,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>413</width>
<width>398</width>
<height>288</height>
</rect>
</property>
@@ -287,7 +287,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>412</width>
<width>397</width>
<height>288</height>
</rect>
</property>
@@ -647,7 +647,7 @@
<x>0</x>
<y>0</y>
<width>1547</width>
<height>22</height>
<height>25</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
@@ -660,6 +660,7 @@
</property>
<addaction name="actionRaw_format_txt"/>
<addaction name="actionRGBD_SLAM_format_txt"/>
<addaction name="actionRGBD_SLAM_motion_capture_format_txt"/>
<addaction name="actionKITTI_format_txt"/>
<addaction name="actionTORO_graph"/>
<addaction name="actionG2o_g2o"/>
@@ -1299,7 +1300,7 @@
<x>0</x>
<y>0</y>
<width>318</width>
<height>197</height>
<height>219</height>
</rect>
</property>
<attribute name="label">
@@ -1459,9 +1460,9 @@
<property name="geometry">
<rect>
<x>0</x>
<y>-151</y>
<width>519</width>
<height>791</height>
<y>0</y>
<width>282</width>
<height>885</height>
</rect>
</property>
<attribute name="label">
@@ -1994,8 +1995,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>310</width>
<height>243</height>
<width>307</width>
<height>171</height>
</rect>
</property>
<attribute name="label">
@@ -2123,7 +2124,7 @@
<x>0</x>
<y>0</y>
<width>185</width>
<height>485</height>
<height>487</height>
</rect>
</property>
<attribute name="label">
@@ -2723,16 +2724,25 @@
<property name="text">
<string>Raw format (*.txt)</string>
</property>
<property name="toolTip">
<string>Raw format (12 values transform)</string>
</property>
</action>
<action name="actionRGBD_SLAM_format_txt">
<property name="text">
<string>RGBD-SLAM format (*.txt)</string>
</property>
<property name="toolTip">
<string>RGBD-SLAM (stamp tx ty tz qx qy qz qw)</string>
</property>
</action>
<action name="actionKITTI_format_txt">
<property name="text">
<string>KITTI format (*.txt)</string>
</property>
<property name="toolTip">
<string>KITTI (stamp + 12 values transform)</string>
</property>
</action>
<action name="actionTORO_graph">
<property name="text">
@@ -2804,6 +2814,14 @@
<string>Update all loop closure covariances...</string>
</property>
</action>
<action name="actionRGBD_SLAM_motion_capture_format_txt">
<property name="text">
<string>RGBD-SLAM motion capture format (*.txt)</string>
</property>
<property name="toolTip">
<string>RGBD-SLAM (stamp tx ty tz qx qy qz qw)</string>
</property>
</action>
</widget>
<customwidgets>
<customwidget>

View File

@@ -27,7 +27,7 @@
<x>0</x>
<y>0</y>
<width>1012</width>
<height>22</height>
<height>25</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
@@ -40,6 +40,7 @@
</property>
<addaction name="actionRaw_format_txt"/>
<addaction name="actionRGBD_SLAM_format_txt"/>
<addaction name="actionRGBD_SLAM_motion_capture_format_txt"/>
<addaction name="actionKITTI_format_txt"/>
<addaction name="actionTORO_graph"/>
<addaction name="actionG2o_g2o"/>
@@ -1395,11 +1396,17 @@
<property name="text">
<string>KITTI format (*.txt)</string>
</property>
<property name="toolTip">
<string>KITTI (stamp + 12 values transform)</string>
</property>
</action>
<action name="actionRGBD_SLAM_format_txt">
<property name="text">
<string>RGBD-SLAM format (*.txt)</string>
</property>
<property name="toolTip">
<string>RGBD-SLAM (stamp tx ty tz qx qy qz qw)</string>
</property>
</action>
<action name="actionTORO_graph">
<property name="text">
@@ -1415,6 +1422,9 @@
<property name="text">
<string>Raw format (*.txt)</string>
</property>
<property name="toolTip">
<string>Raw format (12 values transform)</string>
</property>
</action>
<action name="actionG2o_g2o">
<property name="text">
@@ -1523,6 +1533,14 @@
<string>Tara Stereo USB Camera</string>
</property>
</action>
<action name="actionRGBD_SLAM_motion_capture_format_txt">
<property name="text">
<string>RGBD-SLAM motion capture format (*.txt)</string>
</property>
<property name="toolTip">
<string>RGBD-SLAM (stamp tx ty tz qx qy qz qw)</string>
</property>
</action>
</widget>
<customwidgets>
<customwidget>

View File

@@ -94,9 +94,9 @@
<property name="geometry">
<rect>
<x>0</x>
<y>-436</y>
<width>680</width>
<height>2986</height>
<y>-812</y>
<width>681</width>
<height>2983</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_16">
@@ -2941,7 +2941,7 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
<item>
<widget class="QStackedWidget" name="stackedWidget_src">
<property name="currentIndex">
<number>1</number>
<number>0</number>
</property>
<widget class="QWidget" name="page_41">
<layout class="QVBoxLayout" name="verticalLayout_64">
@@ -3061,7 +3061,7 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
<item>
<widget class="QStackedWidget" name="stackedWidget_rgbd">
<property name="currentIndex">
<number>6</number>
<number>7</number>
</property>
<widget class="QWidget" name="page_32">
<layout class="QVBoxLayout" name="verticalLayout_63">
@@ -4834,7 +4834,7 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
<item>
<widget class="QStackedWidget" name="stackedWidget_image">
<property name="currentIndex">
<number>1</number>
<number>2</number>
</property>
<widget class="QWidget" name="page_7">
<layout class="QVBoxLayout" name="verticalLayout_30">
@@ -5349,7 +5349,7 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
</item>
<item>
<property name="text">
<string>RGBD-SLAM</string>
<string>RGBD-SLAM (motion capture)</string>
</property>
</item>
<item>
@@ -5392,6 +5392,11 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
<string>EuRoC MAV</string>
</property>
</item>
<item>
<property name="text">
<string>RGBD-SLAM</string>
</property>
</item>
</widget>
</item>
<item row="9" column="0">
@@ -5497,7 +5502,7 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
</item>
<item>
<property name="text">
<string>RGBD-SLAM</string>
<string>RGBD-SLAM (motion capture)</string>
</property>
</item>
<item>
@@ -5540,6 +5545,11 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
<string>EuRoC MAV</string>
</property>
</item>
<item>
<property name="text">
<string>RGBD-SLAM</string>
</property>
</item>
</widget>
</item>
<item row="4" column="0">