Tango: added "Settings->Mapping->ArUco Marker Detection" option

This commit is contained in:
matlabbe
2019-02-23 03:02:42 +00:00
parent d089e95e5a
commit 17521e8efb
8 changed files with 175 additions and 7 deletions
@@ -776,6 +776,7 @@ public class RTABMapActivity extends Activity implements OnClickListener, OnItem
boolean keepAllDb = sharedPref.getBoolean(getString(R.string.pref_key_keep_all_db), Boolean.parseBoolean(getString(R.string.pref_default_keep_all_db)));
boolean optimizeFromGraphEnd = sharedPref.getBoolean(getString(R.string.pref_key_optimize_end), Boolean.parseBoolean(getString(R.string.pref_default_optimize_end)));
String optimizer = sharedPref.getString(getString(R.string.pref_key_optimizer), getString(R.string.pref_default_optimizer));
String markerDetection = sharedPref.getString(getString(R.string.pref_key_marker_detection), getString(R.string.pref_default_marker_detection));
mGPSSaved = sharedPref.getBoolean(getString(R.string.pref_key_gps_saved), Boolean.parseBoolean(getString(R.string.pref_default_gps_saved)));
if(mGPSSaved)
{
@@ -831,6 +832,15 @@ public class RTABMapActivity extends Activity implements OnClickListener, OnItem
RTABMapLib.setMappingParameter("Mem/NotLinkedNodesKept", String.valueOf(keepAllDb));
RTABMapLib.setMappingParameter("RGBD/OptimizeFromGraphEnd", String.valueOf(optimizeFromGraphEnd));
RTABMapLib.setMappingParameter("Optimizer/Strategy", optimizer);
if(Float.parseFloat(markerDetection) == -1)
{
RTABMapLib.setMappingParameter("RGBD/MarkerDetection", "false");
}
else
{
RTABMapLib.setMappingParameter("RGBD/MarkerDetection", "true");
RTABMapLib.setMappingParameter("Aruco/Dictionary", markerDetection);
}
if(!DISABLE_LOG) Log.d(TAG, "set exporting parameters...");
RTABMapLib.setCloudDensityLevel(Integer.parseInt(sharedPref.getString(getString(R.string.pref_key_density), getString(R.string.pref_default_density))));
@@ -1111,6 +1121,7 @@ public class RTABMapActivity extends Activity implements OnClickListener, OnItem
float optimizationMaxError,
float optimizationMaxErrorRatio,
boolean fastMovement,
int landmarkDetected,
String[] statusTexts)
{
mStatusTexts = statusTexts;
@@ -1191,6 +1202,11 @@ public class RTABMapActivity extends Activity implements OnClickListener, OnItem
mToast.setText(String.format("Loop closure detected! (%d/%d inliers)", inliers, matches));
mToast.show();
}
else if(landmarkDetected != 0)
{
mToast.setText(String.format("Landmark %d detected!", landmarkDetected));
mToast.show();
}
else if(rejected > 0)
{
if(inliers >= Integer.parseInt(mMinInliers))
@@ -1206,7 +1222,7 @@ public class RTABMapActivity extends Activity implements OnClickListener, OnItem
}
else
{
mToast.setText(String.format("Loop closure rejected, not enough inliers (%d/%d < %s).", inliers, matches, mMinInliers));
mToast.setText(String.format("Loop closure rejected, not enough inliers (%d/%d < %s).", inliers, matches, mMinInliers));
}
mToast.show();
}
@@ -1248,6 +1264,7 @@ public class RTABMapActivity extends Activity implements OnClickListener, OnItem
final float optimizationMaxErrorRatio,
final float distanceTravelled,
final int fastMovement,
final int landmarkDetected,
final float x,
final float y,
final float z,
@@ -1356,7 +1373,7 @@ public class RTABMapActivity extends Activity implements OnClickListener, OnItem
runOnUiThread(new Runnable() {
public void run() {
updateStatsUI(loopClosureId, inliers, matches, rejected, optimizationMaxError, optimizationMaxErrorRatio, fastMovement!=0, statusTexts);
updateStatsUI(loopClosureId, inliers, matches, rejected, optimizationMaxError, optimizationMaxErrorRatio, fastMovement!=0, landmarkDetected, statusTexts);
}
});
}
@@ -206,6 +206,7 @@ public class SettingsActivity extends PreferenceActivity implements OnSharedPref
((Preference)findPreference(getString(R.string.pref_key_features))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_features))).getEntry() + ") "+getString(R.string.pref_summary_features));
((Preference)findPreference(getString(R.string.pref_key_features_type))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_features_type))).getEntry() + ") "+getString(R.string.pref_summary_features_type));
((Preference)findPreference(getString(R.string.pref_key_optimizer))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_optimizer))).getEntry() + ") "+getString(R.string.pref_summary_optimizer));
((Preference)findPreference(getString(R.string.pref_key_marker_detection))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_marker_detection))).getEntry() + ") "+getString(R.string.pref_summary_marker_detection));
((Preference)findPreference(getString(R.string.pref_key_cloud_voxel))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_cloud_voxel))).getEntry() + ") "+getString(R.string.pref_summary_cloud_voxel));
((Preference)findPreference(getString(R.string.pref_key_texture_size))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_texture_size))).getEntry() + ") "+getString(R.string.pref_summary_texture_size));
@@ -265,6 +266,7 @@ public class SettingsActivity extends PreferenceActivity implements OnSharedPref
if(key.compareTo(getString(R.string.pref_key_features))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_features));
if(key.compareTo(getString(R.string.pref_key_features_type))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_features_type));
if(key.compareTo(getString(R.string.pref_key_optimizer))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_optimizer));
if(key.compareTo(getString(R.string.pref_key_marker_detection))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_marker_detection));
if(key.compareTo(getString(R.string.pref_key_cloud_voxel))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_cloud_voxel));
if(key.compareTo(getString(R.string.pref_key_texture_size))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_texture_size));