#!/usr/bin/env python
PACKAGE = "strands_human_aware_navigation"

from dynamic_reconfigure.parameter_generator_catkin import *

gen = ParameterGenerator()
gen.add("timeout",
    double_t, 0,
    "The time of no human detections after which speed will be reset",
    1.0, 0.0, 10)
gen.add("max_dist",
    double_t, 0,
    "The maximum distance for a human detection to be considered close enough " + \
    "for speed reduction. Speed is calculated for the interval between min_dist and max_dist.",
    4.0, 1.0, 10.0)
gen.add("min_dist",
    double_t, 0,
    "The minimum distance at which speed will reach 0. Speed is calculated " + \
    "for the interval between min_dist and max_dist.",
    1.0, 0.0, 9.0)
gen.add("detection_angle",
    double_t, 0,
    "The in which humans are considered. +- detection_angle is used as a cone in front " + \
    "of the robot. E.g. 45 is treated as +45 and -45 to either side of the front. 180 form 360 degerees field of view.",
    45.0, 0.1, 180.0)
gen.add("max_vel_x",
    double_t, 0,
    "The maximum x velocity of the DWAPlannerROS.",
    0.55, -float("inf"), float("inf"))
gen.add("max_trans_vel",
    double_t, 0,
    "The maximum translational velocity of the DWAPlannerROS.",
    0.55, -float("inf"), float("inf"))
gen.add("max_rot_vel",
    double_t, 0,
    "The maximum rotation velocity of the DWAPlannerROS.",
    1.0, 0.0, float("inf"))

gaze_type_enum = gen.enum([ gen.const("gaze",     int_t, 0, "gaze at people and nav goal"),
                           gen.const("no_gaze",     int_t, 1, "no gazing behaviour")],
                         "An enum to set the gazing type")

gen.add("gaze_type", int_t, 0, "The gazing behaviour type", 0, 0, 1, edit_method=gaze_type_enum)

exit(gen.generate(PACKAGE, "strands_human_aware_navigation", "HumanAwareNavigation"))
