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

how to make the robot rotate towards the path direction

asked 2012-12-19 23:38:58 -0600

micmac gravatar image

updated 2014-01-28 17:14:38 -0600

ngrennan gravatar image

Hello, I have set up the Navigation stack on a Neato xv-11 with an Asus xtion pro live mounted on it (the neato lidar is dead, sadly).

slam (amcl) is functioning correctly, the planner (TrajectoryPlannerROS) also computes a good path to follow, but I'm having troubles finding the right parameters in order for the robot to start following the new plan.

Let me explain: when the robot is already headed towards the path direction, it has no problem to start going along it and reach the goal. But when the robot is in an opposite direction to the new plan, I wish it could rotate first so as to be aligned to the path direction before following it. Instead it start rotating a bit left, then right, as if it was searching how to reach the path, and it also advances slowly in the wrong direction doing so. Until it eventually reaches an obstacle and get stuck.

I tried to set the path bias and the goal bias as well as I could, I understand that the goal bias must be high enough for the robot to head towards it, but if I set it too high it doesn't follow the path close enough (so my path bias=26 and goal bias=20)

If you had any tips on how to solve this problem, that would be greatly appreciated.

Another question I have regarding navigation is: how to configure NavFn in order to issue a new plan whenever the robot get stuck on obstacles ? sometimes it does so, but some other times it just tries to follow the current plan on and on and bumps into the same obstacles without issuing a new plan.

edit retag flag offensive close merge delete

Comments

1

I have similar problems. There are some good tips here: http://www.ros.org/wiki/navigation/Tutorials/Navigation%20Tuning%20Guide

joq gravatar image joq  ( 2012-12-20 09:12:14 -0600 )edit

Thank you for your advice, I have seen this page already but I may not have followed all of the tips already. It is expert documentation and worth reading again and again.

micmac gravatar image micmac  ( 2013-01-01 21:00:35 -0600 )edit

1 Answer

Sort by » oldest newest most voted
2

answered 2012-12-20 10:45:01 -0600

updated 2012-12-20 10:48:32 -0600

Here we have to analyse two different points.

  1. Parametrization problems (where you are focused)
  2. Theoretical limits of the navigation methods (used in the ROS navigation architecture)

Concerning the parametrization you could try many many things. For instance you could make sure that the dynamic window limits for the angular velocities are wide enough to guarantee the exploration of the onself-rotation action.

However, from my taste you are struggling with the theoretical limits of the navigation architecture. From my taste a non-holonomic the default navigation algorithms used in ROS are limitated. The global path plan computed by the disktra algoritm (like navfn does) won't be in many cases a good path to be followed by non-holonomic local-planners like the Dynamic Window Approach or the Trajectory Rollout algorithm.

In general, this approach works, specially when you have enough free space. But it shows serveral problems when there are obstacles in the surroundings of the initial path (where the robot has to turn back)

You could try to use the sbpl planner to avoid these situations. It takes into account the kinodynamic capabilities of the vehicle for computing the path during the global planning process (while the NavFn doesn't)

edit flag offensive delete link more

Comments

1

Thank you, very good analysis. I've managed to get a more successful navigation:goal bias is higher so the robot doesn't follow the exact plan,but at least it heads towards the direction and manages to avoid obstacles (by tweaking occdist_scale parameter).I will use your advices and see how it works

micmac gravatar image micmac  ( 2013-01-01 20:36:27 -0600 )edit

By the "dynamic window limits", do you refer to sim_period and sim_granularity parameters as in this question: http://answers.ros.org/question/10035/questions-about-the-dynamic-window-approach-in-ros/ ? Would it help if I raise the angular acceleration and velocity parameters ?

micmac gravatar image micmac  ( 2013-01-01 20:41:16 -0600 )edit

In this case I mean the linear/angular speed and acceleration limits.

Pablo Iñigo Blasco gravatar image Pablo Iñigo Blasco  ( 2013-01-14 09:39:27 -0600 )edit

Question Tools

Stats

Asked: 2012-12-19 23:38:58 -0600

Seen: 3,478 times

Last updated: Dec 20 '12