Ask Your Question
0

Follow the straight global plan

asked 2020-02-12 01:04:58 -0600

ashutosh08 gravatar image

updated 2020-02-12 02:41:58 -0600

Suppose I want to go to point B from A. Global plan initially publishes a straight plan. But whenever, a dynamic obstacle is in the path, DWA will try to drive around the obstacle.

However, I would want to stop for some time and then follow the initial global plan after the obstacle moves away from the plan. I've tried to play with goal_distance_bias, path_distance_bias and other parameters with no success. Is there some straight-forward way to classify dynamic obstacle from the cost map, so I can send zero_velocity from DWA upon detecting one?

Or do I have to write a custom local planner? If yes, could you guys point me towards something to achieve this functionality?

Edit

This question asks a similar question with no answer but some helpful comments.

edit retag flag offensive close merge delete

Comments

@mgruhler you've answered a similar question. Could you shed some light on this?

ashutosh08 gravatar imageashutosh08 ( 2020-02-12 01:06:23 -0600 )edit

@ashutosh08 could you please link to that specific answer (I don't know which one that was...) and detail why this doesn't answer your question or what the difference is to that question?

mgruhler gravatar imagemgruhler ( 2020-02-12 01:39:35 -0600 )edit

@mgruhler see edit. My task is to align the local planner with the initial straight global plan, and if there were any obstacles, preferably stop the robot rather than moving around.

ashutosh08 gravatar imageashutosh08 ( 2020-02-12 02:45:40 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2020-02-12 03:34:18 -0600

mgruhler gravatar image

Is there some straight-forward way to classify dynamic obstacle from the cost map, so I can send zero_velocity from DWA upon detecting one?

As I said in the question you link to: No (not to my knowledge, at least).

Or do I have to write a custom local planner?

You could try the teb_local_planner (following Tut 3 on this page) and check if this helps.

If only following the global plan without obstacle avoidance, only waiting, is your only goal, I'd go for a custom planner. This could have a simple PD controller for path following and a little look-ahead stopping movement once it encounters an obstacle...

edit flag offensive delete link more

Comments

thank you so much for your help. looks like implementing a PD controller is the best way for me.

ashutosh08 gravatar imageashutosh08 ( 2020-02-12 04:14:38 -0600 )edit

@mgruhler thanks worked like a charm. Additionally, what could be the best way to detect an obstacle without implementing move_base?

ashutosh08 gravatar imageashutosh08 ( 2020-02-17 04:12:12 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2020-02-12 01:04:58 -0600

Seen: 15 times

Last updated: Feb 12