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

Robot Navigation Within a Corridor

asked 2014-06-06 19:31:21 -0600

ROSCMBOT gravatar image

Hello,

I'm trying to add a "virtual" corridor along the waypoints generated by the global planner (waypoints are in the middle of the virtual corridor), so the robot never leaves this "virtual" corridor when it's moving between the waypoints using a local planner. As an example, if during the robot's navigation within this corridor, an obstacle appears in front of the robot and covers the entire width of the corridor, the robot should stop.

I was wondering if I could do this by updating the costmap (nav_msgs/OccupancyGrid), and marking all the cells outside the "virtual" corridor as obstacles at the beginning?

Thanks.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2014-06-06 20:33:58 -0600

ahendrix gravatar image

The correct solution here is probably to modify the local planner, rather than trying to coerce the existing local planner to do what you've described. Here's why:

In the local planners, if the path is completely blocked they will abort and trigger a re-planning by the global planner. I suspect this isn't what you want.

By contrast, if you write your own local planner you can explicitly have it stay within a certain distance of the global plan, and have a configurable timeout for it to wait before triggering a re-planning when the path is completely blocked.

edit flag offensive delete link more

Comments

Thanks. Yes, I don't want the robot to replan if the path is completely blocked. In the ROS Navigation Stack, the default local planner is implemented based on the Dynamic Window Approach. Is there a way to modify the DWA planner to keep the robot within a certain distance of the global plan?

ROSCMBOT gravatar image ROSCMBOT  ( 2014-06-06 21:25:33 -0600 )edit

I haven't spent much time working with the DWA planner codebase, so I don't have any specific guidance to offer there.

ahendrix gravatar image ahendrix  ( 2014-06-06 22:46:44 -0600 )edit

The rough way would be: Look for return false in the function that computes velocities and change it to only do so if some time has passed.

dornhege gravatar image dornhege  ( 2014-06-07 07:14:21 -0600 )edit

Could you please elaborate? I didn't get how it helps to keep the robot within a certain distance of the global plan

ROSCMBOT gravatar image ROSCMBOT  ( 2014-06-07 11:34:06 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2014-06-06 19:31:21 -0600

Seen: 837 times

Last updated: Jun 06 '14