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

Problem moving differential drive robot through narrow corridors. #28

Open jmudit19 opened 7 years ago

jmudit19 commented 7 years ago

Hello sir, I am trying to use teb_local_planner for passing though narrow paths efficiently. The planner works fine for broad pathways but when I am trying to pass a Robot: type : "line" line_start: [-0.42, -0.21] line_end: [0.42, -0.21] through a door with width ~0.7m. The robot gets stuck to this: screenshot from 2016-10-12 21-37-57 I am currently using ros-kinetic on ubuntu 15.10. The following are the configurations used :

teb1 teb2

And sometimes at this (I cannot increase the inflation radius further because it does not allow the robot to move through narrow pathways ) : screenshot from 2016-10-12 21-35-58 These are the configurations for global and local planner: global local

I have also tried the same with SBPL lattice planner. Please help!

croesmann commented 7 years ago

The error message "trajectory is not feasible" indicates that it seems like the robot-costmap-footprint (blue rectangular, defined in the costmap param file) collides with some of the lethal-obstacles cellls slightly at some point on the trajectory.

I am going to revise the planner completely in the next three weeks since I hadn't much resources during the last weeks to investigate the recently reported issues. I'll check this one as well.

nitin5 commented 7 years ago

Dear Chris, Please also investigate why TEB do not prefer a robot to move backward in straight line as one of the option. In narrow path ways, TEB ignores this option. Also, I have observed that TEB oscillates between local goal points as selected from the global plan. Thanks

croesmann commented 7 years ago

I pushed some significant changes to kinetic-devel (see changelog of version 0.6.5). I revised some parts of the code regarding parameter checking, backwards-initialization and backup strategies.

Please let me know if the proposed changes resolve some of your issues. The kinetic-devel branch might also be compiled with indigo/jade. I want to test the changes for a couple of weeks before I officially backport the important changes to indigo-devel/jade-devel.

andrew8liang commented 7 years ago

Hi, I also have the same question about moving the robot backward in a straight line on 0.6.5.

The expected behavior is: drive backwards. The actual behavior is: initially drive backwards, then rotate 180 degrees to drive forward until we are close to the final goal, then rotate another 180 degrees so that we are facing the correct direction. This gives us 360 degrees of unnecessary rotation. Is it possible to have the planner put equal weight on forward and backward motion?

My parameters, on 0.6.5: allow_init_with_backwards_motion: true, weight_kinematics_forward_drive: 0

Thanks!

croesmann commented 7 years ago

@andrew8liang Please avoid cross-posting if possible. I usually get notifications for both platforms ;-) I have answered your question at ROS answers.

In general, questions regarding the planner should be asked at ROS answers. Bug reports, Pull requests and enhancement requests here.

DPatricia commented 6 years ago

Hello, I'm having a similar issue with the robot getting stuck trying to go through a door. Are there some parameters which I can adjust to manage this? Thanks

subodh-malgonde commented 5 years ago

@DPatricia Were you able to figure out a solution for your problem? I have a similar issue. I have a car-like robot (width 0.3 m). No matter how I tune my minimum obstacle distance and inflation radius, it has a difficulty in entering a narrow door which is 1 m wide.

corot commented 5 years ago

I just discovered a magic parameter that makes wonders for me: _penaltyepsilon With default (0.1): TEB_BAD With 0.05: TEB_GOOD

@croesmann, would be great if you can provide some clue about how this parameter so greatly impacts the behavior of the robot

rrdpereira commented 2 years ago

I just discovered a magic parameter that makes wonders for me: _penaltyepsilon With default (0.1): TEB_BAD TEB_BAD With 0.05: TEB_GOOD TEB_GOOD

@croesmann, would be great if you can provide some clue about how this parameter so greatly impacts the behavior of the robot

Could you share the COMMON, LOCAL, GLOBAL and TEB configuration files? Or just the GitHub Link?