Ask Your Question
0

the robot rotates instead of following the path

asked 2020-08-03 07:35:11 -0500

mateusguilherme gravatar image

updated 2020-08-03 14:10:02 -0500

Hello

my robot seems to be undecided when following a trajectory from a certain point. It rotate in the same place over and over again.

Video: robot video

The problem seems to happen sometimes and only in a few places.

Maybe my robot's footprint is interfering negatively. I believe that there is no problem with the base, because using the teleop_twist_keyboard it works well.

My robot is differential, with RPLIDAR A1. Move_base is running on a machine on the local network with core i5 and base_controler on a raspberrypi. My odometry rate is approximately 50Hz. My local planner is TrajectoryPlannerROS

Any parameter tips to adjust?

Here are my yaml files:

    local_costmap:
          global_frame: /map
          robot_base_frame: /base_footprint
          update_frequency: 5.0
          publish_frequency: 2.0
          static_map: false
          rolling_window: true
          width: 5.0
          height: 5.0
          resolution: 0.02 #defaul 0.02
          transform_tolerance: 0.5

    global_costmap:
          global_frame: /map
          robot_base_frame: /base_footprint
          transform_tolerance: 0.5 

          update_frequency: 1.0
          publish_frequency: 1.0 
          static_map: true
          rolling_window: false

   costmap_common_params_navigation:
          obstacle_range: 2.5
          raytrace_range: 3.0

          footprint: [[-0.06,-0.115],[-0.06,0.115],[0.17,0.115],[0.17,-0.115]]

          observation_sources: scan
          scan: {sensor_frame: base_link,  observation_persistence: 0.0, max_obstacle_height: 0.4, min_obstacle_height: 0.0, data_type: LaserScan, topic: /scan, marking: true, clearing: true}


    move_base:

          controller_patience: 15.0 
          planner_frequency: 3.0 
          controller_frequency: 15.0 

          TrajectoryPlannerROS:
              max_vel_x: 0.20
              min_vel_x: 0.10
              max_vel_theta:  1.0 #0.4
              min_vel_theta: -1.0 #-0.4
              max_rotational_vel: 0.6 
              min_in_place_rotational_vel: 0.6 
               max_in_place_vel_theta: 1.0 
               min_in_place_vel_theta: 1.0 
              occdist_scale: 0.05 #defaul 0.1 
              holonomic_robot: false


    AMCL:
    <launch>
        <node pkg="amcl" type="amcl" name="amcl" output="screen">
          <!-- Publish scans from best pose at a max of 10 Hz -->
          <param name="odom_model_type" value="diff"/>
          <param name="odom_alpha5" value="0.1"/>
          <param name="transform_tolerance" value="0.1"/>
          <param name="gui_publish_rate" value="10.0"/>
          <param name="laser_max_beams" value="30"/>
          <param name="min_particles" value="500"/>
          <param name="max_particles" value="5000"/>
          <param name="kld_err" value="0.05"/>
          <param name="kld_z" value="0.99"/>
          <param name="odom_alpha1" value="0.2"/>
          <param name="odom_alpha2" value="0.2"/>
          <!-- translation std dev, m -->
          <param name="odom_alpha3" value="0.8"/>
          <param name="odom_alpha4" value="0.2"/>
          <param name="laser_z_hit" value="0.5"/>
          <param name="laser_z_short" value="0.05"/>
          <param name="laser_z_max" value="0.05"/>
          <param name="laser_z_rand" value="0.5"/>
          <param name="laser_sigma_hit" value="0.2"/>
          <param name="laser_lambda_short" value="0.1"/>
          <param name="laser_lambda_short" value="0.1"/>
          <param name="laser_model_type" value="likelihood_field"/>
          <!-- <param name="laser_model_type" value="beam"/> -->
          <param name="laser_likelihood_max_dist" value="2.0"/>
          <param name="update_min_d" value="0.2"/>
          <param name="update_min_a" value="0.5"/>
          <param name="odom_frame_id" value="odom"/> 
          <param name="resample_interval" value="1"/>
          <param name="recovery_alpha_slow" value="0.0"/>
          <param name="recovery_alpha_fast" value="0.0"/>
          <param name="base_frame_id" value="base_footprint"/>
        </node>
    </launch>
edit retag flag offensive close merge delete

Comments

Looks like it's within the inflation zone around the counter. If that behavior is absent when out in the middle of the room, it looks like ROS trying to avoid hitting the counter. Reduce inflation and make sure that you don't start or stop navigation within an inflation zone. If that behavior occurs even outside of inflation zones, then I can't help you.

billy gravatar image billy  ( 2020-08-04 01:24:10 -0500 )edit

Thank you for your reply. I believe this is the reason, because in the middle of the room it is working normally.

mateusguilherme gravatar image mateusguilherme  ( 2020-08-06 09:12:31 -0500 )edit

OK. I'll change comment to answer and you can mark as correct.

billy gravatar image billy  ( 2020-08-07 17:12:20 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2020-08-07 17:12:35 -0500

billy gravatar image

Looks like it's within the inflation zone around the counter. If that behavior is absent when out in the middle of the room, it looks like ROS trying to avoid hitting the counter. Reduce inflation and make sure that you don't start or stop navigation within an inflation zone.

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

2 followers

Stats

Asked: 2020-08-03 07:35:11 -0500

Seen: 65 times

Last updated: Aug 07