0
$\begingroup$

Rosanswers logo

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?


Originally posted by ChengXiang on ROS Answers with karma: 201 on 2013-03-19

Post score: 0


Original comments

Comment by rajnunes on 2016-06-08:
@ChengXiang how exacly did you simmulate dynamic obstacles in ros if you dont mind me asking ... ? thx

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

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.


Originally posted by fergs with karma: 13902 on 2013-03-19

This answer was ACCEPTED on the original site

Post score: 3


Original comments

Comment by ChengXiang on 2013-03-20:
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.

Comment by fergs on 2013-03-20:
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).

Comment by ChengXiang on 2013-03-20:
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

Comment by ChengXiang on 2013-03-20:
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?

Comment by fergs on 2013-03-20:
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.

Comment by ChengXiang on 2013-03-20:
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".

Comment by ctguell on 2013-11-03:
@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

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.