mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 01:20:25 +08:00
radiusPosesFiltering default keepLatest=true
git-svn-id: http://rtabmap.googlecode.com/svn/trunk/rtabmap@1550 f169173b-cf89-36c8-b27e-44dbe73f0c83
This commit is contained in:
@@ -393,7 +393,8 @@ bool RTABMAP_EXP loadTOROGraph(const std::string & fileName,
|
|||||||
std::map<int, Transform> RTABMAP_EXP radiusPosesFiltering(
|
std::map<int, Transform> RTABMAP_EXP radiusPosesFiltering(
|
||||||
const std::map<int, Transform> & poses,
|
const std::map<int, Transform> & poses,
|
||||||
float radius,
|
float radius,
|
||||||
float angle);
|
float angle,
|
||||||
|
bool keepLatest = true);
|
||||||
|
|
||||||
cv::Mat RTABMAP_EXP create2DMap(const std::map<int, Transform> & poses,
|
cv::Mat RTABMAP_EXP create2DMap(const std::map<int, Transform> & poses,
|
||||||
const std::map<int, pcl::PointCloud<pcl::PointXYZ>::Ptr > & scans,
|
const std::map<int, pcl::PointCloud<pcl::PointXYZ>::Ptr > & scans,
|
||||||
|
|||||||
@@ -1793,7 +1793,7 @@ bool loadTOROGraph(const std::string & fileName,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
std::map<int, Transform> radiusPosesFiltering(const std::map<int, Transform> & poses, float radius, float angle)
|
std::map<int, Transform> radiusPosesFiltering(const std::map<int, Transform> & poses, float radius, float angle, bool keepLatest)
|
||||||
{
|
{
|
||||||
if(poses.size() > 1 && radius > 0.0f && angle>0.0f)
|
if(poses.size() > 1 && radius > 0.0f && angle>0.0f)
|
||||||
{
|
{
|
||||||
@@ -1841,15 +1841,31 @@ std::map<int, Transform> radiusPosesFiltering(const std::map<int, Transform> & p
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool firstAdded = false;
|
if(keepLatest)
|
||||||
for(std::set<int>::iterator iter = cloudIndices.begin(); iter!=cloudIndices.end(); ++iter)
|
|
||||||
{
|
{
|
||||||
if(!firstAdded)
|
bool lastAdded = false;
|
||||||
|
for(std::set<int>::reverse_iterator iter = cloudIndices.rbegin(); iter!=cloudIndices.rend(); ++iter)
|
||||||
{
|
{
|
||||||
indicesKept.insert(*iter);
|
if(!lastAdded)
|
||||||
firstAdded = true;
|
{
|
||||||
|
indicesKept.insert(*iter);
|
||||||
|
lastAdded = true;
|
||||||
|
}
|
||||||
|
indicesChecked.insert(*iter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bool firstAdded = false;
|
||||||
|
for(std::set<int>::iterator iter = cloudIndices.begin(); iter!=cloudIndices.end(); ++iter)
|
||||||
|
{
|
||||||
|
if(!firstAdded)
|
||||||
|
{
|
||||||
|
indicesKept.insert(*iter);
|
||||||
|
firstAdded = true;
|
||||||
|
}
|
||||||
|
indicesChecked.insert(*iter);
|
||||||
}
|
}
|
||||||
indicesChecked.insert(*iter);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -773,7 +773,7 @@ void PreferencesDialog::resetSettings(QGroupBox * groupBox)
|
|||||||
}
|
}
|
||||||
|
|
||||||
_ui->groupBox_poseFiltering->setChecked(false);
|
_ui->groupBox_poseFiltering->setChecked(false);
|
||||||
_ui->doubleSpinBox_cloudFilterRadius->setValue(0.5);
|
_ui->doubleSpinBox_cloudFilterRadius->setValue(0.1);
|
||||||
_ui->doubleSpinBox_cloudFilterAngle->setValue(30);
|
_ui->doubleSpinBox_cloudFilterAngle->setValue(30);
|
||||||
}
|
}
|
||||||
else if(groupBox->objectName() == _ui->groupBox_logging1->objectName())
|
else if(groupBox->objectName() == _ui->groupBox_logging1->objectName())
|
||||||
|
|||||||
@@ -63,9 +63,9 @@
|
|||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>-530</y>
|
<y>0</y>
|
||||||
<width>709</width>
|
<width>709</width>
|
||||||
<height>1140</height>
|
<height>853</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_16">
|
<layout class="QVBoxLayout" name="verticalLayout_16">
|
||||||
@@ -86,7 +86,7 @@
|
|||||||
<enum>QFrame::Raised</enum>
|
<enum>QFrame::Raised</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>17</number>
|
<number>1</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="page_22">
|
<widget class="QWidget" name="page_22">
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_29">
|
<layout class="QVBoxLayout" name="verticalLayout_29">
|
||||||
@@ -371,7 +371,7 @@ Show a yellow background when the number of odometry inliers goes under this thr
|
|||||||
<double>0.010000000000000</double>
|
<double>0.010000000000000</double>
|
||||||
</property>
|
</property>
|
||||||
<property name="value">
|
<property name="value">
|
||||||
<double>0.500000000000000</double>
|
<double>0.100000000000000</double>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|||||||
Reference in New Issue
Block a user