teb local planer makes robot move backwards
I am developing a differential drive robot, using the navigation stack with teb local planner. Currently the robot is operating with a jetson nano, has an RPLIDAR A1 and wheel encoders.
The question is , when we set the 2d nav goal in rviz, running the navigation stack, the planner has a good looking path but the behaviour of the robot is to go backwards. i am checking the topic /cmd_vel and its sending backward (negative) values on the linear.x.
Is there any parameter i need to tune or change? Is there something we are missing?
So far i've tried increasing the parameter weight_kinematics_forward_drive = 1000 but still not having a good response from the physical robot.
Any hint on where i should look for is really appreciated.
Log from the nav launch:
SUMMARY
========
CLEAR PARAMETERS
* /move_base/
PARAMETERS
* /amcl/base_frame_id: base_footprint
* /amcl/gui_publish_rate: 10.0
* /amcl/kld_err: 0.05
* /amcl/kld_z: 0.99
* /amcl/laser_lambda_short: 0.1
* /amcl/laser_likelihood_max_dist: 5
* /amcl/laser_max_beams: 30
* /amcl/laser_model_type: likelihood_field
* /amcl/laser_sigma_hit: 0.1
* /amcl/laser_z_hit: 0.9
* /amcl/laser_z_max: 0.05
* /amcl/laser_z_rand: 0.5
* /amcl/laser_z_short: 0.05
* /amcl/max_particles: 5000
* /amcl/min_particles: 500
* /amcl/odom_alpha1: 0.2
* /amcl/odom_alpha2: 0.2
* /amcl/odom_alpha3: 0.8
* /amcl/odom_alpha4: 0.2
* /amcl/odom_alpha5: 0.1
* /amcl/odom_frame_id: odom
* /amcl/odom_model_type: diff
* /amcl/recovery_alpha_fast: 0.0
* /amcl/recovery_alpha_slow: 0.0
* /amcl/resample_interval: 1
* /amcl/transform_tolerance: 0.1
* /amcl/update_min_a: 0.5
* /amcl/update_min_d: 0.2
* /move_base/GlobalPlanner/allow_unknown: False
* /move_base/GlobalPlanner/cost_factor: 0.55
* /move_base/GlobalPlanner/default_tolerance: 0.3
* /move_base/GlobalPlanner/last_plan_if_blocked: True
* /move_base/GlobalPlanner/neutral_cost: 66
* /move_base/GlobalPlanner/old_navfn_behavior: False
* /move_base/GlobalPlanner/use_dijkstra: True
* /move_base/GlobalPlanner/use_grid_path: False
* /move_base/GlobalPlanner/use_quadratic: True
* /move_base/GlobalPlanner/visualize_potential: True
* /move_base/TebLocalPlannerROS/acc_lim_theta: 1.0
* /move_base/TebLocalPlannerROS/acc_lim_x: 0.5
* /move_base/TebLocalPlannerROS/costmap_obstacles_behind_robot_dist: 0.5
* /move_base/TebLocalPlannerROS/footprint_model/type: polygon
* /move_base/TebLocalPlannerROS/footprint_model/vertices: [[-0.45, 0.25], [...
* /move_base/TebLocalPlannerROS/free_goal_vel: False
* /move_base/TebLocalPlannerROS/holonomic_robot: False
* /move_base/TebLocalPlannerROS/include_costmap_obstacles: True
* /move_base/TebLocalPlannerROS/include_dynamic_obstacles: True
* /move_base/TebLocalPlannerROS/inflation_dist: 0.5
* /move_base/TebLocalPlannerROS/is_footprint_dynamic: False
* /move_base/TebLocalPlannerROS/map_frame: map
* /move_base/TebLocalPlannerROS/max_vel_theta: 1.5
* /move_base/TebLocalPlannerROS/max_vel_x: 1.0
* /move_base/TebLocalPlannerROS/max_vel_x_backwards: 0.11
* /move_base/TebLocalPlannerROS/max_vel_y: 0.0
* /move_base/TebLocalPlannerROS/min_obstacle_dist: 0.15
* /move_base/TebLocalPlannerROS/min_vel_y: 0.0
* /move_base/TebLocalPlannerROS/no_outer_iterations: 4
* /move_base/TebLocalPlannerROS/obstacle_poses_affected: 30
* /move_base/TebLocalPlannerROS/odom_topic: /odom
* /move_base/TebLocalPlannerROS/optimization_activate: True
* /move_base/TebLocalPlannerROS/optimization_verbose: False
* /move_base/TebLocalPlannerROS/penalty_epsilon: 0.1
* /move_base/TebLocalPlannerROS/sim_granularity: 0.05
* /move_base/TebLocalPlannerROS/sim_time: 0.8
* /move_base/TebLocalPlannerROS/vtheta_samples: 20
* /move_base/TebLocalPlannerROS/vx_samples: 18
* /move_base/TebLocalPlannerROS/weight_acc_lim_theta: 1
* /move_base/TebLocalPlannerROS/weight_acc_lim_x: 1
* /move_base/TebLocalPlannerROS/weight_dynamic_obstacle: 10
* /move_base/TebLocalPlannerROS/weight_kinematics_forward_drive: 1000
* /move_base/TebLocalPlannerROS/weight_kinematics_nh: 1000
* /move_base/TebLocalPlannerROS/weight_kinematics_turning_radius: 1
* /move_base/TebLocalPlannerROS/weight_max_vel_theta: 1
* /move_base/TebLocalPlannerROS/weight_max_vel_x: 2
* /move_base/TebLocalPlannerROS/weight_obstacle: 50
* /move_base/TebLocalPlannerROS/weight_optimaltime: 1
* /move_base/TebLocalPlannerROS/xy_goal_tolerance: 0.25
* /move_base/TebLocalPlannerROS/yaw_goal_tolerance: 0.2
* /move_base/base_global_planner: global_planner/Gl...
* /move_base/base_local_planner: teb_local_planner...
* /move_base/footprint_model/type: polygon
* /move_base/global_costmap/footprint: [[-0.45, 0.25], [...
* /move_base/global_costmap/global_frame: map
* /move_base/global_costmap/inflation_layer/cost_scaling_factor: 25.0
* /move_base/global_costmap/inflation_layer/enabled: True
* /move_base/global_costmap/inflation_layer/inflation_radius ...