0
$\begingroup$

Rosanswers logo

Hello,

I'm trying to tune move_base under fairly ideal circumstances so I did not think it would be this hard. I am using the arbotix_python base controller in "fake" mode which basically just moves the simulated robot exactly as it's told on /cmd_vel. So I am treating it as an "ideal" test case with no physics.

I then have a Python script that moves a simulated TurtleBot to the four corners of a 1 meter square on a blank map using the simple move_base action server.

I've run through the Navigation Tuning Guide and spent many hours of trial and error tweaking the various parameters using dynamic_reconfigure but I still can't figure out why the robot has such a tendency to spin in place before it gets to a goal even when there are no obstacles and I have the recovery and clearing behaviors disabled. The problem gets worse as I make the goal tolerances smaller--for example, setting the xy_goal_tolerance to 0.05 tends to guarantee spinning and often timing out before getting to the goal.

I'm wondering if others have figured out any secrets behind this spinning behavior. I'm also wondering if not having any real or simulated observation sources could be causing it?

I get the same results whether I use the latest Electric or Fuerte debian install under Ubuntu 11.10.

EDIT 1:

My navigation config files can be found here.

And the script that moves the robot in a square can be found here.

Thanks!
patrick


Originally posted by Pi Robot on ROS Answers with karma: 4046 on 2012-07-10

Post score: 5


Original comments

Comment by Eric Perko on 2012-07-10:
Could you post the navigation configs you are using?

Comment by Pi Robot on 2012-07-10:
@Eric Perko: Here is a link to all four config files:http://code.google.com/p/ros-by-example/source/browse/#svn%2Ftrunk%2Frbx_vol_1%2Frbx1_nav%2Fconfig%2Ffake

Comment by KruseT on 2012-07-10:
Also note that you should state in your config files which local planner to use explicitly. By default move_base will use trajectory_planner_ros, which is tweaked for the PR2 and has "hidden" recovery behaviors. Prefer to use the dwa_planner_ros.

Comment by Pi Robot on 2012-07-11:
Thanks @KruseT. I just now tried using dwa_planner_ros explicitly and got some crazy results--robot going all over the place instead of just hitting the corners of the square. However, using trajectory_planner_ros with parameter dwa set to True gives really nice results.

Comment by KruseT on 2012-07-11:
The parameters may be a bit different between trajecotry_planner_ros and dwa_planner_ros. Else both local planners are very similar (dwa_planner is something like trajectory_planner_ros 2.0).

Comment by Pi Robot on 2012-07-12:
I thought I had set the parameters correctly based on the Wiki page but I'll try again when I get a chance. In the meantime, does setting the dwa parameter to True do a similar job as using the dwa_planner directly?

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

Well, I think I might have found the root of most of my problems. I was getting the most spinning when I set the xy_goal_tolerance to 0.05 or less. But I just realized that my blank map only had a resolution of 0.05. When I set the map resolution to 0.01, I was able to get good behavior without all the spinning. So perhaps in the end that's all it was...


Originally posted by Pi Robot with karma: 4046 on 2012-07-10

This answer was ACCEPTED on the original site

Post score: 5

$\endgroup$

Your Answer

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