0
$\begingroup$

Rosanswers logo

hello,

I'm using lms100 only, when i use gmapping+laser scan matcher and costmap at the same time it was ok, but then i tried the other option; static map(which i built via gmapping before), map_server and amcl (again with laser scan matcher for odometry) can't manage it. it looks like amcl didn't do its job.

i don't have a robot system so i don't know which amcl (diff or omni) should i choose or if that even affects the functionality of amcl.

in rviz, it looks like this.

image description

my launch file:

 <launch>
      <param name="/use_sim_time" value="false"/>
      <node pkg="tf" type="static_transform_publisher" name="base_link_to_laser" 
        args="0.0 0.0 0.0 0.0 0.0 0.0 /base_link /laser 40" />
    
      <node pkg="rviz" type="rviz" name="rviz" 
        args="-d $(find laser_scan_matcher)/demo.rviz"/>
    
     <node pkg="lms1xx" name="lms1xx" type="LMS1xx_node">
        <param name="host" value="169.254.10.200" />
     </node>
    
      <node pkg="laser_scan_matcher" type="laser_scan_matcher_node" 
        name="laser_scan_matcher_node" output="screen">
        <param name="fixed_frame" value = "odom"/>
        <param name="use_alpha_beta" value="true"/>
        <param name="max_iterations" value="10"/>
      </node>
    
       <node name="map_server" pkg="map_server" type="map_server" args="$(find bsk)/launch/maps/gcost2.yaml"/>
    
      <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.2" />
      <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.2"/>
      <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="base_frame_id" type="str" value="base_link" />
      <param name="global_frame_id" type="str" value="map" />
      <param name="resample_interval" value="1"/>
      <param name="transform_tolerance" value="0.1"/>
      <param name="recovery_alpha_slow" value="0.0"/>
      <param name="recovery_alpha_fast" value="0.0"/>
      <param name="use_map_topic" value="true" />
      <param name="first_map_only" value="true" />
    </node>
    
     <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
        <rosparam file="$(find bsk)/launch/costmap_common_params.yaml" command="load" ns="global_costmap" />
        <rosparam file="$(find bsk)/launch/costmap_common_params.yaml" command="load" ns="local_costmap" />
        <rosparam file="$(find bsk)/launch/local_costmap_params.yaml" command="load" />
        <rosparam file="$(find bsk)/launch/global_costmap_params.yaml" command="load" />
        <rosparam file="$(find bsk)/launch/base_local_planner_params.yaml" command="load" />
        </node>
        </launch>

costmap_common_params.yaml:

obstacle_range: 2.5
raytrace_range: 3.0
footprint: [[-0.325, -0.325], [-0.325, 0.325], [0.325, 0.325], [0.46, 0.0], [0.325, -0.325]]
#robot_radius: 0.46
inflation_radius: 0.3

observation_sources: base_scan
base_scan: {data_type: LaserScan,  sensor_frame: /laser,  topic: /scan, expected_update_rate: 0.4,
  observation_persistence: 0.0, marking: true, clearing: true, max_obstacle_height: 0.4, min_obstacle_height: 0}

local_costmap_params.yaml:

local_costmap:
  global_frame: odom
  robot_base_frame: base_link
  update_frequency: 1.0
  publish_frequency: 2.0
  static_map: false
  rolling_window: true
  width: 6.0
  height: 6.0
  resolution: 0.020000

global_costmap_params.yaml:

global_costmap:
  global_frame: /map
  robot_base_frame: base_link
  update_frequency: 1.0
  static_map: true

base_local_planner_params.yaml: (didnt modify anything because i dont have robot system)

TrajectoryPlannerROS:
  max_vel_x: 0.45
  min_vel_x: 0.1
  max_vel_theta: 1.0
  min_in_place_vel_theta: 0.4

  acc_lim_theta: 3.2
  acc_lim_x: 2.5
  acc_lim_y: 2.5

  holonomic_robot: true

the errors in the terminal:

   [WARN] [1467201369.564382684]: Trajectory Rollout planner initialized with param meter_scoring not set. Set it to true to make your settins robust against changes of costmap resolution.
    [ WARN] [1467201370.169816275]: The /scan observation buffer has not been updated for 2.27 seconds, and it should b updated every 0.40 seconds.
    [ WARN] [1467201370.301085119]: The /scan observation buffer has not been updated for 1.25 seconds, and it should be updated every 0.40 seconds.
        [ INFO] [1467201370.739975409]: Recovery behavior will clear layer obstacles
        [ INFO] [1467201370.987085606]: Recovery behavior will clear layer obstacles
        [ INFO] [1467201641.943586259]: Setting pose (1467201641.943557): -2.015 0.022 -0.000
    [ INFO] [1467201669.857466951]: Setting pose (1467201669.857429): -1.915 0.013 -1.619
    [ INFO] [1467201685.386250862]: Setting pose (1467201685.386178): -2.534 0.053 2.826
    [ WARN] [1467201716.436344460]: Costmap2DROS transform timeout. Current time: 1467201716.4363, global_pose stamp: 1467201716.0885, tolerance: 0.3000
    [ WARN] [1467201716.437433328]: Could not get robot pose, cancelling reconfiguration

Originally posted by bsk on ROS Answers with karma: 73 on 2016-06-29

Post score: 1

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

you should clean up your costmap''s yaml file of these warning, and then test amcl. the warning shows that you didn't config yaml file well.


Originally posted by asimay_y with karma: 255 on 2016-06-30

This answer was ACCEPTED on the original site

Post score: 0


Original comments

Comment by bsk on 2016-06-30:
but that /scan observation buffer has not been updated error was just pop up twice.I saw answer from David Lu said if that warning shows up just in beginning its ok and other warnings happened because i tried 2DPoseEstimate in rviz which didnt work cuz amcl i think. I updated question with yamls

Comment by asimay_y on 2016-06-30:
I mean Trajectory Rollout planner is in planner yaml. modify it first.

Comment by asimay_y on 2016-06-30:
and in laser_scan_matcher, <param name="fixed_frame" value = "odom"/> i don't think above is right. you can also change or remove: expected_update_rate: 0.4,

Comment by bsk on 2016-06-30:
i removed expected rate and that warning is gone. main problem is still exist. why do you think odom isnt right? this configuration is ok with gmapping&costmap so i didnt change it.

Comment by bsk on 2016-06-30:
i updated question with base_local_planner_params.yaml but since i dont have a robot, didnt modify just use the defaults. I dont need to use planner after move_base, just want to manage to see local and global costmaps succesfully with a given static map

$\endgroup$

Your Answer

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