AMCL doesn't work well with my robot [closed]
Hi,everyone. I'm trying to turn on navigation module on my robot,but i don't know how to judge weather the AMCL is working well on my robot. These two videos were recorded when I driving my robot around with a joystick.
http://www.youtube.com/watch?v=nKyDSSDDfsU
http://www.youtube.com/watch?v=eJ9-8BQTi1M
According to the videos, particles have been updated, it seems that amcl really worked, but the red laser line didn't match the black line in the map very well, it seems that amcl didn't work well.
this is the output of tf_monitor:
RESULTS: for all Frames
Frames:
Frame: /base_link published by /we_base_odom Average Delay: 0.000288508 Max Delay: 0.00262595
Frame: /laser_link published by /base_laser_tf Average Delay: -0.099723 Max Delay: 0
Frame: /odom published by /amcl Average Delay: -0.17089 Max Delay: 0
All Broadcasters:
Node: /amcl 20.3454 Hz, Average Delay: -0.17089 Max Delay: 0
Node: /base_laser_tf 10.1956 Hz, Average Delay: -0.099723 Max Delay: 0
Node: /we_base_odom 44.4666 Hz, Average Delay: 0.000288508 Max Delay: 0.00262595
and this is the output of view_frames:
AMCL:
<launch>
<node name="amcl" pkg="amcl" type="amcl" output="screen" >
<remap from="scan" to="scan" />
<!-- Overall filter parameters -->
<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="update_min_d" value="0.2"/>
<param name="update_min_a" value="0.2"/>
<param name="resample_interval" value="1"/>
<param name="transform_tolerance" value="0.2"/>
<param name="recovery_alpha_slow" value="0.0"/>
<param name="recovery_alpha_fast" value="0.0"/>
<param name="gui_publish_rate" value="10.0"/>
<!-- Laser model parameters -->
<param name="laser_max_beams" value="30"/>
<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_model_type" value="likelihood_field"/>
<param name="laser_likelihood_max_dist" value="2.0"/>
<!-- Odometery model parameters -->
<param name="odom_model_type" value="diff"/>
<param name="odom_alpha1" value="0.2"/>
<param name="odom_alpha2" value="0.2"/>
<param name="odom_alpha3" value="0.8"/>
<param name="odom_alpha4" value="0.2"/>
<!--param name="odom_model_type" value="omni"/>
<param name="odom_alpha1" value="0.2"/>
<param name="odom_alpha2" value="0.2"/>
<param name="odom_alpha3" value="0.8"/>
<param name="odom_alpha4" value="0.2"/>
<param name="odom_alpha5" value="0.1"/-->
<param name="odom_frame_id" value="odom"/>
<param name="base_frame_id" value="base_link"/>
<param name="global_frame_id" value="map"/>
<param name="initial_pose_x" value="1.6"/>
<param name="initial_pose_y" value="7.5"/>
</node>
</launch>
costmap_common:
map_type: costmap
transform_tolerance: 0.5
obstacle_range: 2.5
raytrace_range: 3.0
inflation_radius: 0.55
observation_sources: base_scan
base_scan: {sensor_frame: laser_link,
data_type: LaserScan,
topic: /scan,
expected_update_rate: 0.4,
observation_persistence: 0.0,
marking: true,
clearing: true,
min_obstacle_height: -0.10,
max_obstacle_height: 2.0}
local_costmap:
#Independent settings for the local costmap
local_costmap:
publish_voxel_map: true
global_frame: odom
robot_base_frame: base_link
update_frequency: 5.0
publish_frequency: 2.0
static_map: false
rolling_window: true
width: 10.0
height: 10.0
resolution: 0.025
origin_x: 0.0
origin_y ...