gen.add("ground_reference_search_resolution_deg", double_t, 0, "defines the angular search regions in degrees", 30.0, 0.001, 1000.0);
gen.add("elevation_grid_resolution", double_t, 0, "define the coarseness of the elevation points", 1.0, 0.001, 1000.0);
# Robot related geometric parameters
gen.add("sensor_height", double_t, 0, "Ground is expected to be at z = -1*sensor_height", 0.27, 0.0, 2.0); #KITTI = 1.75: BLUE = 1.3 ADD baselink = 0.27
gen.add("robot_height", double_t, 0, "All obstacle points above this value (w.r.t the z ground predicted by the algorithm) are treated as overhanging obstacles", 1.50, 0.0, 3.0);
gen.add("angle_reduction_factor", double_t, 0, "To make the search area dependent to the data sparseness", 2.0, -100.0, 100.0);
gen.add("search_limit_in_shadow_area", double_t, 0, "minimum ROI area = 4*search_limit_in_shadow_area squared", 3.0, 0.0, 1000.0);
gen.add("propagation_z_additive_noise_per_meter", double_t, 0, "Noise added to new ground references scaled by the range", 0.1, 0.0, 1000.0);
gen.add("propagation_additive_noise_deg_per_meter", double_t, 0, "Noise added to new ground references scaled by the range", 0.1, 0.0, 1000.0);
gen.add("ground_reference_search_resolution_deg", double_t, 0, "It is the angular resolution when generating new ground references (graph nodes) in degrees", 20.0, 1.0, 100.0);
gen.add("elevation_grid_resolution", double_t, 0, "define the coarseness of the elevation points", 0.5, 0.01, 10.0);
gen.add("max_traversable_obstacle_height", double_t, 0, "used to discard edges", 0.15, 0.01, 0.99);
gen.add("max_slope_abs", double_t, 0, "used to discard edges", 0.3, 0.01, 0.99);
# labeling parameters
gen.add("number_of_references_used_for_labelling", int_t, 0, "used to evaluate each elevation point cloud from different POVs", 4, 1, 100);
gen.add("max_pred_std_dev_for_labelling", double_t, 0, "To give up trying to label ground points if we don't have enough confidence in our predictions", 0.3, 0.01, 1.0);
gen.add("classify_not_labeled_points_as_obstacles", bool_t, 0, "when a point has no reference satisfying the max_pred_std_dev_for_labelling threshold we can leave as unknown or label it as obstacle", True);
gen.add("discard_not_connected_references_for_labelling", bool_t, 0, "to exclude not connected vertices in the roadmap from the labelling step", True);
# visualization and debug parameters
gen.add("measure_performance", bool_t, 0, "to measure times of inner functions", False);
gen.add("show_dense_reconstruction", bool_t, 0, "creates dense pointcloud with ground predictions", False);