mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 09:30:25 +08:00
Refactoring: removed some code duplication about transformation estimation and features (2D-3D) extraction.
Added Feature2D::generateKeypoints3D() for convenience. Added parameter "Vis/PnPOpenCV2". Added parameter "Vis/ForwardEstOnly". Removed OdometryOpticalFlow class, replaced by OdometryF2F (frame-to-frame). To get the same previous OpticalFLow approach, parameter "Vis/CorType" should be set to 1. Some parameters under group "OdomFlow/..." are now under "Vis/CorFlow...". In Registration class, add computeTransformationMod() method to modify input signatures. Added constructor Signature(SensorData) for convenience. Modified words multimap used with cv::Point3f instead of pcl::PointXYZ to limit the use of PCL headers where they are not really required. Added Stereo::create() for convenience. Transform: fixed quaternion constructor where data_ was not initialized. Added parentheses operator for convenience. DatabaseViewer: loading .rtabmap/rtabmap.ini instead of .rtabmap/dbViewer.ini when used from rtabmap application. Added vertical layout option for convenience. MainWindow: fixed wrong Odometry speed values ParametersToolBox: using QStackedWidget instead of a QToolBox for space, added "Restore Defaults" button.
This commit is contained in:
@@ -104,8 +104,8 @@ int main (int argc, char * argv[])
|
||||
bool icp = false;
|
||||
bool flow = false;
|
||||
bool mono = false;
|
||||
int nnType = rtabmap::Parameters::defaultVisNNType();
|
||||
float nndr = rtabmap::Parameters::defaultVisNNDR();
|
||||
int nnType = rtabmap::Parameters::defaultVisCorNNType();
|
||||
float nndr = rtabmap::Parameters::defaultVisCorNNDR();
|
||||
float distance = rtabmap::Parameters::defaultVisInlierDistance();
|
||||
int maxWords = rtabmap::Parameters::defaultVisMaxFeatures();
|
||||
int minInliers = rtabmap::Parameters::defaultVisMinInliers();
|
||||
@@ -658,7 +658,8 @@ int main (int argc, char * argv[])
|
||||
if(flow)
|
||||
{
|
||||
// Optical Flow
|
||||
odom = new rtabmap::OdometryOpticalFlow(parameters);
|
||||
parameters.insert(rtabmap::ParametersPair(rtabmap::Parameters::kVisCorType(), "1"));
|
||||
odom = new rtabmap::OdometryF2F(parameters);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -666,8 +667,8 @@ int main (int argc, char * argv[])
|
||||
UINFO("Nearest neighbor = %s", nnName.c_str());
|
||||
UINFO("Nearest neighbor ratio = %f", nndr);
|
||||
UINFO("Local history = %d", localHistory);
|
||||
parameters.insert(rtabmap::ParametersPair(rtabmap::Parameters::kVisNNType(), uNumber2Str(nnType)));
|
||||
parameters.insert(rtabmap::ParametersPair(rtabmap::Parameters::kVisNNDR(), uNumber2Str(nndr)));
|
||||
parameters.insert(rtabmap::ParametersPair(rtabmap::Parameters::kVisCorNNType(), uNumber2Str(nnType)));
|
||||
parameters.insert(rtabmap::ParametersPair(rtabmap::Parameters::kVisCorNNDR(), uNumber2Str(nndr)));
|
||||
parameters.insert(rtabmap::ParametersPair(rtabmap::Parameters::kOdomBowLocalHistorySize(), uNumber2Str(localHistory)));
|
||||
|
||||
if(mono)
|
||||
|
||||
@@ -244,11 +244,9 @@ int main(int argc, char * argv[])
|
||||
|
||||
// generate kpts
|
||||
std::vector<cv::KeyPoint> kpts;
|
||||
cv::Rect roi = Feature2D::computeRoi(leftMono, "0.03 0.03 0.04 0.04");
|
||||
int type;
|
||||
Parameters::parse(parameters, Parameters::kKpDetectorStrategy(), type);
|
||||
Feature2D * kptDetector = Feature2D::create(Feature2D::Type(type), parameters);
|
||||
kpts = kptDetector->generateKeypoints(leftMono, roi);
|
||||
uInsert(parameters, ParametersPair(Parameters::kKpRoiRatios(), "0.03 0.03 0.04 0.04"));
|
||||
Feature2D * kptDetector = Feature2D::create(parameters);
|
||||
kpts = kptDetector->generateKeypoints(leftMono);
|
||||
delete kptDetector;
|
||||
|
||||
timeKpts = timer.ticks();
|
||||
|
||||
Reference in New Issue
Block a user