sm_options.c
Go to the documentation of this file.
00001 #include <options/options.h>
00002 
00003 #include "csm_all.h"
00004 
00005 
00006 void sm_options(struct sm_params*p, struct option*ops) {
00007         
00008         options_double(ops, "max_angular_correction_deg", &(p->max_angular_correction_deg),
00009                 90.0, "Maximum angular displacement between scans");
00010 
00011         options_double(ops, "max_linear_correction", 
00012                 &(p->max_linear_correction), 2.0,
00013                 "Maximum translation between scans (m)");
00014 
00015         options_int(ops, "max_iterations", 
00016                 &(p->max_iterations), 1000,
00017                 "When we had enough");
00018 
00019         options_double(ops, "epsilon_xy", 
00020                 &(p->epsilon_xy), 0.0001,
00021                 "A threshold for stopping (m)");
00022 
00023         options_double(ops, "epsilon_theta",
00024                 &(p->epsilon_theta),  0.0001, /* = 0.005 deg */
00025                 "A threshold for stopping (rad)");
00026 
00027         options_double(ops, "max_correspondence_dist", 
00028                 &(p->max_correspondence_dist), 2.0,
00029                 "dubious parameter (m)");
00030                 
00031         options_double(ops, "sigma", 
00032                 &(p->sigma), 0.01,
00033                 "Noise in the scan (m)");
00034 
00035         options_int(ops, "use_corr_tricks", 
00036                 &(p->use_corr_tricks), 1,
00037                 "Use smart tricks for finding correspondences.");
00038 
00039         options_int(ops, "restart", 
00040                 &(p->restart), 1,
00041                 "Restart: Restart if error is over threshold");
00042 
00043         options_double(ops, "restart_threshold_mean_error",
00044                 &(p->restart_threshold_mean_error),  0.01,
00045                 "Restart: Threshold for restarting. )");
00046 
00047         options_double(ops, "restart_dt", 
00048                 &(p->restart_dt), 0.01,
00049                 "Restart: displacement for restarting. (m)");
00050 
00051         options_double(ops, "restart_dtheta",
00052                 &(p->restart_dtheta),  deg2rad(1.5),
00053                 "Restart: displacement for restarting. (rad)");
00054 
00055         options_double(ops, "clustering_threshold",
00056                 &(p->clustering_threshold),  0.05,
00057                 "Max distance for staying in the same clustering");
00058 
00059         options_int(ops, "orientation_neighbourhood",
00060                 &(p->orientation_neighbourhood),  3,
00061                 "Number of neighbour rays used to estimate the orientation.");
00062 
00063 
00064         options_int(ops, "use_point_to_line_distance",
00065                 &(p->use_point_to_line_distance),  1,
00066                 "If 0, it's vanilla ICP.");
00067 
00068         options_int(ops, "do_alpha_test",
00069                 &(p->do_alpha_test),  0,
00070                 "Discard correspondences based on the angles");
00071 
00072         options_double(ops, "do_alpha_test_thresholdDeg", 
00073                 &(p->do_alpha_test_thresholdDeg), 20.0, "");
00074 
00075         options_double(ops, "outliers_maxPerc", 
00076                 &(p->outliers_maxPerc), 0.95, "");
00077 
00078         options_double(ops, "outliers_adaptive_order", 
00079                 &(p->outliers_adaptive_order), 0.7, "");
00080         options_double(ops, "outliers_adaptive_mult", 
00081                 &(p->outliers_adaptive_mult), 2.0, "");
00082 
00083         options_int(ops, "do_visibility_test", 
00084                 &(p->do_visibility_test), 0,
00085                 " ... ");
00086 
00087         options_int(ops, "outliers_remove_doubles", 
00088                 &(p->outliers_remove_doubles), 1, "no two points in laser_sens can have the same corr."); 
00089 
00090         options_int(ops, "do_compute_covariance", 
00091                 &(p->do_compute_covariance), 0,
00092                 "If 1, computes the covariance of ICP using the method http://purl.org/censi/2006/icpcov .");
00093 
00094         options_int(ops, "debug_verify_tricks", 
00095                 &(p->debug_verify_tricks), 0,
00096                 "Checks that find_correspondences_tricks gives the right answer.");
00097 
00098         options_double(ops, "gpm_theta_bin_size_deg", &(p->gpm_theta_bin_size_deg), 5.0, 
00099                 "GPM: Dimension of bins for finding first theta.");
00100         options_double(ops, "gpm_extend_range_deg", &(p->gpm_extend_range_deg), 15.0, 
00101                 "GPM: Area around maximum.");
00102         options_int(ops, "gpm_interval", &(p->gpm_interval), 1, "Interval of points to consider (1: all points, 2: every other point, etc.)");
00103 
00104         options_double(ops, "laser_x", &(p->laser[0]), 0.0, "laser.x (m)");
00105         options_double(ops, "laser_y", &(p->laser[1]), 0.0, "laser.y (m)");
00106         options_double(ops, "laser_theta", &(p->laser[2]), 0.0, "laser.theta (rad)");
00107 
00108         options_double(ops, "min_reading", &(p->min_reading), 0.0, "Don't use readings less than min_reading (m)");
00109         options_double(ops, "max_reading", &(p->max_reading), 1000.0, "Don't use readings longer than max_reading (m)");
00110         
00111         options_int(ops, "use_ml_weights", &(p->use_ml_weights), 0,
00112             "If 1, the field 'true_alpha' (or 'alpha') in the first scan is used to compute the incidence beta, and the factor (1/cos^2(beta)) used to weight the correspondence.");
00113 
00114         options_int(ops, "use_sigma_weights", &(p->use_sigma_weights), 0,
00115                 "If 1, the field 'readings_sigma' in the second scan is used to weight the correspondence by 1/sigma^2");
00116                 
00117 
00118         hsm_add_options(ops, &p->hsm);
00119 }


csm
Author(s): Andrea Censi
autogenerated on Fri May 17 2019 02:28:33