ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Follow the straight global plan

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

ashutosh08 gravatar image

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

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 image ashutosh08  ( 2020-02-12 01:06:23 -0500 )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 image mgruhler  ( 2020-02-12 01:39:35 -0500 )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 image ashutosh08  ( 2020-02-12 02:45:40 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
1

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

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 image ashutosh08  ( 2020-02-12 04:14:38 -0500 )edit

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

ashutosh08 gravatar image ashutosh08  ( 2020-02-17 04:12:12 -0500 )edit

Question Tools

1 follower

Stats

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

Seen: 609 times

Last updated: Feb 12 '20