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

Can base local planner be used for moving obstacle?

asked 2013-03-19 16:53:53 -0600

ChengXiang gravatar image

updated 2014-01-28 17:15:48 -0600

ngrennan gravatar image

Hi guys, I have some queries regarding the base local planner in the navigation stack. I am wondering if the base local planner are able to avoid moving obstacles or is it only good for stationary obstacles?

From my simulation in Gazebo testing a robot with a moving obstacle (with a slow speed of 1m/s) , it seems that the robot is unable to do so. I configure the base_local_planner to use DWA.

Could this be a case of the robot are unable to move fast enough?

edit retag flag offensive close merge delete


@ChengXiang how exacly did you simmulate dynamic obstacles in ros if you dont mind me asking ... ? thx

rajnunes gravatar image rajnunes  ( 2016-06-08 23:39:34 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2013-03-19 23:17:06 -0600

fergs gravatar image

Define "avoid". I have definitely seen the DWA planner handle someone stepping out of a doorway into the path of a robot moving 1 m/s and the robot started to replan around the person, although eventually aborted the plan and came to a full, complete and safe stop. If that is OK in your definition of "avoid" I think you can eventually find satisfactory parameters, assuming your robot can actually accelerate/decelerate fast enough for whatever you are throwing at it.

The entire navigation stack is quite sensitive to acceleration limits -- characterizing your robot and specifying these will generally make a huge difference over pulling them from thin air.

edit flag offensive delete link more


By avoid I mean that I have a moving obstacle that is moving back and forth with a speed of 1m/s. Then I will set a goal for the robot to move pass the moving obstacle, or some time into the obstacle to see if it can avoid collision.

ChengXiang gravatar image ChengXiang  ( 2013-03-20 00:31:39 -0600 )edit

I don't think it's going to be highly robust at that task. It probably won't hit the moving obstacle, but it's unlikely to get through reliably (it probably will occasionally, but not always).

fergs gravatar image fergs  ( 2013-03-20 15:30:01 -0600 )edit

After looking through the source code, my understanding is that in every planning cycle, the planner will remove every trajectory in which it foresees collision with obstacle. That's how the obstacle avoidance work. But this implies that the planner assumed that the obstacle is stationary

ChengXiang gravatar image ChengXiang  ( 2013-03-20 19:02:13 -0600 )edit

So the vel cmd it generate at one instance may cause collision in the next instance, as the future movement of obstacle is not considered in the previous instance. So in the situation you described in your answer, it works as the obstructing person did not move subsequently. Am I right to say that?

ChengXiang gravatar image ChengXiang  ( 2013-03-20 19:06:13 -0600 )edit

Right, it doesn't try to predict where obstacles will be, it assumes the world is static. The thing you do get, is when the robot determines that it can't come up with a safe trajectory it will stop. Hence, it won't collide most likely, but it isn't designed for a moving obstacle course.

fergs gravatar image fergs  ( 2013-03-20 21:39:44 -0600 )edit

I see, I have been puzzled over my simulation result. But this seems to contradict the paper on ROS wiki, that stated RHINO is able to navigate in "populated and dynamic environment". Perhaps I misunderstood the meaning of "dynamic".

ChengXiang gravatar image ChengXiang  ( 2013-03-20 22:25:31 -0600 )edit

@ChengXiang did you manage to find a solution and make the robot avoid the moving obstacle? im looking to do the same , would really appreciate the help

ctguell gravatar image ctguell  ( 2013-11-03 15:26:23 -0600 )edit

Question Tools

1 follower


Asked: 2013-03-19 16:53:53 -0600

Seen: 2,519 times

Last updated: Mar 20 '13