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.03k stars 546 forks source link

The path calculated by TEB will pass through obstacles #317

Open Today20180409 opened 3 years ago

Today20180409 commented 3 years ago

When using teb, I found that obstacles have a big impact on its results. Sometimes the path goes straight through obstacles. When passing through the door, the path didn’t go in the middle of the door, but turned to one side. This is frustrating, I tried the costmap_converter plugin, but it still doesn’t work. 20210808195810

1628425203

My parameters are as follows: TebLocalPlannerROS:

Miscellaneous Parameters

odom_topic: odom
map_frame: map

Trajectory

teb_autosize: True
dt_ref: 0.3
dt_hysteresis: 0.1
min_samples: 3
max_samples: 500
global_plan_overwrite_orientation: True
allow_init_with_backwards_motion: False
global_plan_viapoint_sep: 1.0
via_points_ordered: true
max_global_plan_lookahead_dist: 3.0
global_plan_prune_distance: 1
exact_arc_length: false
force_reinit_new_goal_dist: 1

force_reinit_new_goal_angular: 0.5 * M_PI

feasibility_check_no_poses: 2
publish_feedback: false

min_resolution_collision_check_angular: M_PI

control_look_ahead_poses: 1

Robot

max_vel_x: 0.4
max_vel_x_backwards: 0.10001
max_vel_y: 0.0
max_vel_theta: 0.5
acc_lim_x: 0.6
acc_lim_y: 0
acc_lim_theta: 1.0
min_turning_radius: 0.0

wheelbase: 1.0

cmd_angle_instead_rotvel: false

is_footprint_dynamic: false

footprint_model:
type: "polygon"
vertices: [ [0.28, 0.24], [0.28, -0.24], [-0.28, -0.24], [-0.28, 0.24] ] # for type "polygon"

GoalTolerance

xy_goal_tolerance: 0.2
yaw_goal_tolerance: 0.1
free_goal_vel: false
complete_global_plan: false

Obstacles

min_obstacle_dist: 0.01
inflation_dist: 0.3
dynamic_obstacle_inflation_dist: 0.3
include_dynamic_obstacles: true
include_costmap_obstacles: true
costmap_obstacles_behind_robot_dist: 1.0
obstacle_poses_affected: 30

legacy_obstacle_association: false
obstacle_association_force_inclusion_factor: 10
obstacle_association_cutoff_factor: 50

costmap_converter_plugin: ""

costmap_converter_spin_thread: true

costmap_converter_rate: 5

Optimization

no_inner_iterations: 5
no_outer_iterations: 4
optimization_activate: true
optimization_verbose: false
penalty_epsilon: 0.1
obstacle_cost_exponent: 4
weight_max_vel_x: 0.8
weight_max_vel_theta: 1
weight_acc_lim_x: 1
weight_acc_lim_theta: 1
weight_kinematics_nh: 1000

weight_kinematics_forward_drive: 1000
weight_kinematics_turning_radius: 0
weight_optimaltime: 1 # must be > 0
weight_shortest_path: 0
weight_obstacle: 20
weight_inflation: 0.2
weight_dynamic_obstacle: 1
weight_dynamic_obstacle_inflation: 0.2
weight_viapoint: 1
weight_adapt_factor: 2

Homotopy Class Planner

enable_homotopy_class_planning: false

Recovery

shrink_horizon_backup: false shrink_horizon_min_duration: 10 oscillation_recovery: true oscillation_v_eps: 0.1 oscillation_omega_eps: 0.1 oscillation_recovery_min_duration: 10 oscillation_filter_duration: 10

Can someone give me some suggestions? thanks. @Christoph Rösmann

hxj0316 commented 2 years ago

Hello, I followed the steps to download and compile the teb local path planning algorithm. I would like to ask how to use it for gazebo simulation and how to use it for actual mobile robots?

VRichardJP commented 2 years ago

I had a similar issue using include_dynamic_obstacles=true. It seems that teb behavior changes quite a lot when include_dynamic_obstacles is set to true. Interestingly the implementation is faster, but more buggy. Maybe try again without dynamic obstacles?