mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 01:20:25 +08:00
Tango: some default parameters tuning
This commit is contained in:
@@ -729,6 +729,13 @@ SensorData CameraTango::captureImage(CameraInfo * info)
|
||||
CameraModel depthModel = model_.scaled(1.0f/float(depthSizeDec));
|
||||
std::vector<cv::Point3f> scanData(rawScanPublished_?cloud.total():0);
|
||||
int oi=0;
|
||||
int closePoints = 0;
|
||||
float closeROI[4];
|
||||
closeROI[0] = depth.cols/4;
|
||||
closeROI[1] = 3*(depth.cols/4);
|
||||
closeROI[2] = depth.rows/4;
|
||||
closeROI[3] = 3*(depth.rows/4);
|
||||
unsigned short minDepthValue=10000;
|
||||
for(unsigned int i=0; i<cloud.total(); ++i)
|
||||
{
|
||||
float * p = cloud.ptr<float>(0,i);
|
||||
@@ -747,6 +754,17 @@ SensorData CameraTango::captureImage(CameraInfo * info)
|
||||
pixel_y_h = static_cast<int>((depthModel.fy()) * (pt.y / pt.z) + depthModel.cy() + 0.5f);
|
||||
unsigned short depth_value(pt.z * 1000.0f);
|
||||
|
||||
if(pixel_x_l>=closeROI[0] && pixel_x_l<closeROI[1] &&
|
||||
pixel_y_l>closeROI[2] && pixel_y_l<closeROI[3] &&
|
||||
depth_value < 600)
|
||||
{
|
||||
++closePoints;
|
||||
if(depth_value < minDepthValue)
|
||||
{
|
||||
minDepthValue = depth_value;
|
||||
}
|
||||
}
|
||||
|
||||
bool pixelSet = false;
|
||||
if(pixel_x_l>=0 && pixel_x_l<depth.cols &&
|
||||
pixel_y_l>0 && pixel_y_l<depth.rows && // ignore first line
|
||||
@@ -776,6 +794,11 @@ SensorData CameraTango::captureImage(CameraInfo * info)
|
||||
}
|
||||
}
|
||||
|
||||
if(closePoints > 100)
|
||||
{
|
||||
this->post(new CameraTangoEvent(0, "TooClose", ""));
|
||||
}
|
||||
|
||||
if(oi)
|
||||
{
|
||||
scan = cv::Mat(1, oi, CV_32FC3, scanData.data()).clone();
|
||||
|
||||
@@ -99,6 +99,8 @@ rtabmap::ParametersMap RTABMapApp::getRtabmapParameters()
|
||||
parameters.insert(rtabmap::ParametersPair(rtabmap::Parameters::kRGBDOptimizeMaxError(), std::string("0.1")));
|
||||
parameters.insert(rtabmap::ParametersPair(rtabmap::Parameters::kRGBDProximityPathMaxNeighbors(), std::string("0"))); // disable scan matching to merged nodes
|
||||
parameters.insert(rtabmap::ParametersPair(rtabmap::Parameters::kRGBDProximityBySpace(), std::string("false"))); // just keep loop closure detection
|
||||
parameters.insert(rtabmap::ParametersPair(rtabmap::Parameters::kRGBDLinearUpdate(), std::string("0.05")));
|
||||
parameters.insert(rtabmap::ParametersPair(rtabmap::Parameters::kRGBDAngularUpdate(), std::string("0.05")));
|
||||
|
||||
if(parameters.find(rtabmap::Parameters::kOptimizerStrategy()) != parameters.end())
|
||||
{
|
||||
@@ -1286,7 +1288,7 @@ int RTABMapApp::Render()
|
||||
int rejected = (int)uValue(stats.data(), rtabmap::Statistics::kLoopRejectedHypothesis(), 0.0f);
|
||||
if(!paused_ && loopClosure>0)
|
||||
{
|
||||
main_scene_.setBackgroundColor(0, 0.7f, 0); // green
|
||||
main_scene_.setBackgroundColor(0, 0.5f, 0); // green
|
||||
}
|
||||
else if(!paused_ && rejected>0)
|
||||
{
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
<string name="pref_key_depth">pref_key_depth</string>
|
||||
<string name="pref_default_depth">2.5</string>
|
||||
<string name="pref_key_point_size">pref_key_point_size</string>
|
||||
<string name="pref_default_point_size">5</string>
|
||||
<string name="pref_default_point_size">10</string>
|
||||
<string name="pref_key_angle">pref_key_angle</string>
|
||||
<string name="pref_default_angle">20</string>
|
||||
<string name="pref_key_triangle">pref_key_triangle</string>
|
||||
|
||||
@@ -1391,6 +1391,10 @@ public class RTABMapActivity extends Activity implements OnClickListener, OnItem
|
||||
str = String.format("Too few features (%s) were tracked in the fisheye image. This may result in poor odometry!", value);
|
||||
}
|
||||
}
|
||||
else if(key.equals("TooClose"))
|
||||
{
|
||||
str = String.format("Too close! Tip: Scan from at least ~1 meter from surfaces.", value);
|
||||
}
|
||||
else
|
||||
{
|
||||
str = String.format("Unknown Tango event detected!? (type=%d)", type);
|
||||
|
||||
Reference in New Issue
Block a user