#!/usr/bin/env python
from dynamic_reconfigure.parameter_generator_catkin import ParameterGenerator, double_t

gen = ParameterGenerator()

# velocities
gen.add('min_vel_x', double_t, 0, 'The minimum x velocity for the robot in m/s', 0.0)
gen.add('max_vel_x', double_t, 0, 'The maximum x velocity for the robot in m/s', 0.55)
gen.add('min_vel_y', double_t, 0, 'The minimum y velocity for the robot in m/s', -0.1)
gen.add('max_vel_y', double_t, 0, 'The maximum y velocity for the robot in m/s', 0.1)
gen.add('max_vel_theta', double_t, 0, 'The absolute value of the maximum rotational velocity for the robot in rad/s. '
                                      'The minimum rotational velocity is assumed to be -max_vel_theta', 1.0)

# acceleration
gen.add('acc_lim_x', double_t, 0, 'The acceleration limit of the robot in the x direction in m/s^2', 2.5)
gen.add('acc_lim_y', double_t, 0, 'The acceleration limit of the robot in the y direction in m/s^2', 2.5)
gen.add('acc_lim_theta', double_t, 0, 'The acceleration limit of the robot in the theta direction in rad/s^2', 3.2)

gen.add('decel_lim_x', double_t, 0, 'The deceleration limit of the robot in the x direction in m/s^2', -2.5)
gen.add('decel_lim_y', double_t, 0, 'The deceleration limit of the robot in the y direction in m/s^2', -2.5)
gen.add('decel_lim_theta', double_t, 0, 'The deceleration limit of the robot in the theta direction in rad/s^2', -3.2)

gen.add('min_speed_xy', double_t, 0, 'The absolute value of the minimum translational/xy velocity in m/s. '
                                     'If the value is negative, then the min speed will be arbitrarily close to 0.0. '
                                     'Previously called min_trans_vel', 0.1)
gen.add('max_speed_xy', double_t, 0, 'The absolute value of the maximum translational/xy velocity in m/s. '
                                     'If the value is negative, then the max speed is hypot(max_vel_x, max_vel_y). '
                                     'Previously called max_trans_vel', 0.55)
gen.add('min_speed_theta', double_t, 0, 'The absolute value of the minimum rotational velocity in rad/s. '
                                        'If the value is negative, then the min speed will be arbitrarily close to 0.0.'
                                        ' Previously called min_rot_vel', 0.4)

exit(gen.generate('dwb_plugins', 'dwb_plugins', 'KinematicParams'))
