ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A
Ask Your Question

Navigation stack parameter tuning for high accurate localization

asked 2013-01-27 20:16:33 -0500

moyashi gravatar image

Hi, everyone.

I'm using nav stack and tuning parameters.
I tuned parameters as followings because high accurate localization is required.

    (base_local_planner's parameters)
        xy_tolerance: 0.03 (<- small value)
        yaw_tolerance: 0.05 (<- small value)

        max_vel_x: 0.50
        min_vel_x: 0.01

        max_vel_theta: 1.57
        min_vel_theta: 0.01
        max_rotational_vel: 1.57
        min_in_place_rotational_vel: 0.01

        acc_lim_th: 1.57
        acc_lim_x: 0.5
        acc_lim_y: 0.5

    (amcl's parameters)
        min_particles: 500
        max_particles: 1000(<- I can't change this value for some reason)
        kld_err: 0.01
        kld_z: 0.99
        update_min_d: 0.1
        update_min_a: 0.2
        resample_interval: 1
        transform_tolerance: 0.5

        laser_z_hit: 0.99
        laser_z_rand: 0.01
        laser_sigma_hit: 0.3
        laser_model_type: likelihood_field

        odom_alpha1~alpha5: 0.2

move_base's frequency is set to 10[Hz].
I think that my robot has enough small minimum translational and rotational velocities,
however it often oscillates at a goal point.
When the oscillation occurs, navigation takes so much time.

How can I avoid the above problem ?
Any other effective parameters ??
(I think amcl parameters are not related to accuracy of a localization but robustness of it.)

The robot can realize very low velocity(At least 0.005[m/s], 0.005[rad/s]).
Sensor: LRF (error: +/- 0.010[m])
Map resolution: 0.010[m/pixel]
Map was drawn manually and the width of the wall is 1 pixel.

Thanks in advance.

edit retag flag offensive close merge delete


What oscillates the robot motion or the localization? Is this also happening when the goal is in open space without obstacles? Did you verify that the manually drawn map fits the laser measurements?

dornhege gravatar image dornhege  ( 2013-01-27 23:49:40 -0500 )edit

Thank you for your comment! It happens in open space. I think Localization causes oscillation and the robot repeatedly rotates and moves forward because of it. I've verified my map is well suited to the laser measurements.

moyashi gravatar image moyashi  ( 2013-01-29 14:31:47 -0500 )edit

If you suspect localization, you should test that without the navigation and just teleoperate the robot by hand. Localization should match your actual robot pose in the world and laser scans should lie on the map's walls. If not, check back.

dornhege gravatar image dornhege  ( 2013-01-29 22:58:49 -0500 )edit

Thank you for your good advice. I've checked it. The result showed that the robot could move very accurately, even if its velocity was very low (0.01m/s).

moyashi gravatar image moyashi  ( 2013-02-04 14:35:21 -0500 )edit

So localization is fine, right? Although low velocities usually are not the problem, but high velocities. In that case, what can you robot do kinematically (diff drive?). The parameters you have set (3cm, 3deg) are impossible to reach by the simple base_local_planner

dornhege gravatar image dornhege  ( 2013-02-04 22:11:35 -0500 )edit

Even if the maximum velocity is set to low, the oscillation occurs and my robot is omni-driven. Recently I doubt of the adequacy of amcl's params(update_min_a = 0.2 and update_min_d = 0.2). Would you mind if I ask why the parameters are impossible and how big parameters are possible ?

moyashi gravatar image moyashi  ( 2013-02-06 13:33:39 -0500 )edit

First, if you have omni-drive, make sure holonomic_robot is set to true. If you had a diff-drive robot only a full motion planner could reach position and orientation at the same time, which base_local_planner isn't.

dornhege gravatar image dornhege  ( 2013-02-06 22:30:54 -0500 )edit

How to check whether laser measurements fits the built map. What is the test procedure

Kishore Kumar gravatar image Kishore Kumar  ( 2016-02-05 05:56:49 -0500 )edit

1 Answer

Sort by » oldest newest most voted

answered 2013-02-06 22:32:40 -0500

dornhege gravatar image

If you don't trust amcl, you can lower update_min_a/d. You should test with teleoperation again, if you can simply control your robot towards the goal (not only in reality, but also looking at amcl). If that's sufficient, you can start tuning the navigation.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2013-01-27 20:16:33 -0500

Seen: 2,485 times

Last updated: Jan 27 '13