00001 PACKAGE='vslam_system'
00002 import roslib; roslib.load_manifest(PACKAGE)
00003
00004 from dynamic_reconfigure.parameter_generator import *
00005
00006 def add_params(gen):
00007 detector_enum = gen.enum( [gen.const("FAST", str_t, "FAST", "FAST detector"),
00008 gen.const("Harris", str_t, "Harris", "Harris detector"),
00009 gen.const("Star", str_t, "Star", "Star detector"),
00010 gen.const("SURF", str_t, "SURF", "SURF detector")],
00011 "Enum to set the keypoint detector" )
00012 gen.add("detector", str_t, 0, "Keypoint detector", "FAST", edit_method = detector_enum)
00013
00014 gen.add("fast_threshold", int_t, 0, "FAST detector threshold", 10, 1, 200)
00015 gen.add("fast_nonmax_suppression", bool_t, 0, "FAST detector nonmax suppression on/off", True)
00016
00017 gen.add("harris_max_keypoints", int_t, 0, "Max keypoints returned", 300, 1, 1000)
00018 gen.add("harris_block_size", int_t, 0, "Size of averaging block", 3, 1, 11)
00019 gen.add("harris_min_distance", double_t, 0, "Minimum distance between returned corners", 1.0, 1.0, 20.0)
00020 gen.add("harris_quality_level", double_t, 0, "Minimal accepted quality", 0.01, 0.0, 1.0)
00021 gen.add("harris_k", double_t, 0, "Harris detector free parameter", 0.04, 0.0, 1.0)
00022
00023 gen.add("star_max_size", int_t, 0, "Max feature size", 16, 4, 128)
00024 gen.add("star_response_threshold", int_t, 0, "Threshold to eliminate weak features", 30, 0, 200)
00025 gen.add("star_line_threshold_projected", int_t, 0, "Threshold to eliminate edges", 10, 0, 50)
00026 gen.add("star_line_threshold_binarized", int_t, 0, "Another threshold to eliminate edges", 8, 0, 50)
00027 gen.add("star_suppress_nonmax_size", int_t, 0, "Size of neighborhood for nonmax suppression", 5, 0, 11)
00028
00029 gen.add("surf_hessian_threshold", double_t, 0, "Minimum hessian response", 1000, 0, 8000)
00030 gen.add("surf_octaves", int_t, 0, "Number of octaves", 3, 1, 10)
00031 gen.add("surf_octave_layers", int_t, 0, "Number of layers within each octave", 4, 1, 10)
00032
00033 gen.add("grid_adapter", bool_t, 0, "Grid partitioning adapter on/off", False)
00034 gen.add("grid_max_keypoints", int_t, 0, "Max total keypoints", 300, 1, 1000)
00035 gen.add("grid_rows", int_t, 0, "Grid rows", 4, 1, 8)
00036 gen.add("grid_cols", int_t, 0, "Grid columns", 4, 1, 8)
00037
00038
00039
00040 gen.add("vo_ransac_iterations", int_t, 0, "Visual Odometry RANSAC iterations", 1000, 1, 10000)
00041 gen.add("vo_polish", bool_t, 0, "Visual Odometry polish with SBA on/off", True)
00042
00043 gen.add("vo_window_x", int_t, 0, "Visual Odometry matching window size (x)", 92, 1, 640)
00044 gen.add("vo_window_y", int_t, 0, "Visual Odometry matching window size (y)", 48, 1, 480)
00045
00046 gen.add("min_keyframe_dist", double_t, 0, "Minimum keyframe distance (meters)", 0.2, 0, 50.0)
00047 gen.add("min_keyframe_angle", double_t, 0, "Minimum keyframe angular distance (radians)", 0.1, 0, 3.14)
00048 gen.add("min_inliers", int_t, 0, "Minimum keyframe inliers", 0, 0, 1000)
00049
00050
00051
00052 gen.add("pr_ransac_iterations", int_t, 0, "Place Recognizer RANSAC iterations", 5000, 1, 10000)
00053 gen.add("pr_polish", bool_t, 0, "Place Recognizer polish with SBA on/off", True)
00054
00055 gen.add("pr_window_x", int_t, 0, "Place Recognizer matching window size (x)", 92, 1, 640)
00056 gen.add("pr_window_y", int_t, 0, "Place Recognizer matching window size (y)", 48, 1, 480)
00057
00058 gen.add("pr_skip", int_t, 0, "Number of latest frames for Place Recognizer to skip", 20, 0, 100)
00059 gen.add("pr_inliers", int_t, 0, "Minimum number of inliers for Place Recognition", 200, 1, 1000)
00060