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.
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