rst-tu-dortmund / teb_local_planner

An optimal trajectory planner considering distinctive topologies for mobile robots based on Timed-Elastic-Bands (ROS Package)
http://wiki.ros.org/teb_local_planner
BSD 3-Clause "New" or "Revised" License
1.05k stars 549 forks source link

Navigation problems when using TEB on UGV #91

Closed fangnan99 closed 6 years ago

fangnan99 commented 6 years ago

Hi, My team has been using the teb local planner in our UGV program, and we have encountered a couple problems.

Firstly, the car has demonstrated overshooting of steering. Even on long and smooth paths, the car would attempt to turn and could not follow the plan smoothly. It always turns too much, and then get overshoot, the turn back and get overshoot again and this never stops. Sometimes the overshoot even gets larger and larger. Also, we noticed that this problem only seems to occur after we upgraded to the latest version of teb_local_planner.

Secondly, sometimes the vehicle tries to move back and forth constantly at a certain point, even on perfectly feasible paths with no obstacles. The path planned by the planner was just a smooth line and it is almost straight, but the car just cannot follow it and move forward.

I haven't found any solutions in the forums or solved Github Issues, can anyone help?

Our parameters are listed below.

acc_lim_x: 0.5 acc_lim_theta: 0.05 max_vel_x: 0.7 max_vel_x_backwards: 0.23 max_vel_theta: 0.7

carlike robots

min_turning_radius : 3 wheelbase: 2.49 cmd_angle_instead_rotvel: true

footprint_model: type: "polygon" vertices: [ [2, -0.7], [2, 0.7], [-0.45, 0.7], [--0.45, -0.7] ]

xy_goal_tolerance: 1.5 yaw_goal_tolerance: 3.0 free_goal_vel: false

trajectory

dt_ref: 0.3 dt_hysteresis: 0.1

obstacle

min_obstacle_dist: 0.5 include_costmap_obstacles: false inflation_dist: 0.6

optime:

no_inner_iterations: 5 no_outer_iterations: 4 penalty_epsilon: 0.01 weight_max_vel_x: 2.0 weight_max_vel_theta: 1.0 weight_acc_lim_x: 1.0 weight_acc_lim_theta: 5.0 weight_kinematics_nh: 1000.0 weight_kinematics_forward_drive: 1.0 weight_kinematics_turning_radius: 1.0 weight_optimaltime: 1.0 weight_obstacle: 200.0 weight_viapoint: 1.0 weight_inflation: 0.5 weight_adapt_factor: 2.0

publish_feedback: true enable_homotopy_class_planning: true odom_topic: /golfcar/odom map_frame: world include_dynamic_obstacles: false force_reinit_new_goal_dist: 0.1 reinit_time: -1 obstacle_heading_threshold: -0.3 allow_init_with_backwards_motion: true roadmap_graph_no_samples: 3 roadmap_graph_area_width: 8 selection_cost_hysteresis: 1.1

subodh-malgonde commented 6 years ago

I am facing a similar problem - oscillations as well as overshoot. I posted a question on ROS Answers Oscillations when using teb_local_planner for car like robot .

@Anannf Were you able to fix this?

fangnan99 commented 6 years ago

Hi @subodh-malgonde. I was just an intern at the project and I have left now. However, I can tell you that my former colleagues have successfully fixed the problem by rewriting the teb planner, purely based on the principle proposed in the paper.

fangnan99 commented 6 years ago

I am facing a similar problem - oscillations as well as overshoot. I posted a question on ROS Answers Oscillations when using teb_local_planner for car like robot .

Plus, I just saw the video you posted @subodh-malgonde . It seems the planner is perfectly normal. The back and forth movement is just the vehicle trying to make a turn that it could not make directly. It seems to be a simple issue with the max steering angle. Is there a physical limitation of the max steering angle of the vehicle or have you set the max steering angle too small?

subodh-malgonde commented 6 years ago

@Anannf You were right. I should have guessed that something is limiting the steering, hence the back and forth. The following changes fixed it for me:

  1. Decreased inflation_dist and min_obstacle_dist
  2. Increased max_vel_theta and acc_lim_theta