[ros-users] Costmap2DROS timeouts and poor amcl performance
zdydek
zac at mit.edu
Sun Dec 19 15:19:54 UTC 2010
Hi all,
Below is the configuration for move_base and amcl that I am using on my
robot:
Launch file:
<launch>
<master auto="start"/>
<!-- Run the map server -->
<node name="map_server" pkg="map_server" type="map_server" args="$(find
myRobot2dnav)/resources/maps/obstacle_course_2.yaml"/>
<!-- Run the back hokuyo laser node -->
<node pkg="hokuyo_node" type="hokuyo_node" name="hokuyo_back"
respawn="false" output="screen">
<!-- Starts up faster, but timestamps will be inaccurate. -->
<!-- Set the port to connect to here -->
</node>
<!-- Run the front hokuyo laser node -->
<node pkg="hokuyo_node" type="hokuyo_node" name="hokuyo_front"
respawn="false" output="screen">
<!-- Starts up faster, but timestamps will be inaccurate. -->
<!-- Set the port to connect to here -->
</node>
<!-- Create a new laser scan for clearing obstacles -->
<node pkg="laser_filters" type="scan_to_scan_filter_chain" output="screen"
name="scan_to_scan_max_range_filter">
<rosparam command="load" file="$(find
assisted_teleop)/launch/max_range_filter.yaml" />
</node>
<!-- Run AMCL -->
<include file="$(find myRobot2dnav)/resources/cfg/amcl_diff.launch" />
<!-- Run logging utility rosbag -->
<node pkg="rosbag" type="record" name="rosbagger" args="-j amcl_pose map
move_base/SBPLLatticePlanner/plan move_base/SBPLLatticePlanner/primitives
move_base/SBPLLatticePlanner/sbpl_lattice_planner_stats
move_base/current_goal move_base/local_costmap/robot_footprint odom
particlecloud scan tf" respawn="false" />
<!-- Run RVIZ >
<node name="rviz" pkg="rviz" type="rviz" respawn="false"
output="screen"/-->
<include file="$(find
myRobot2dnav)/resources/launch/rviz_move_base.launch"/>
<!-- Run MOVE BASE NAVIGATION -->
<node pkg="move_base" type="move_base" respawn="true" name="move_base"
output="screen">
<rosparam file="$(find
myRobot2dnav)/resources/cfg/costmap_common_params.yaml" command="load"
ns="global_costmap" />
<rosparam file="$(find
myRobot2dnav)/resources/cfg/costmap_common_params.yaml" command="load"
ns="local_costmap" />
<rosparam file="$(find
myRobot2dnav)/resources/cfg/local_costmap_params.yaml" command="load" />
<rosparam file="$(find
myRobot2dnav)/resources/cfg/global_costmap_params.yaml" command="load" />
<rosparam file="$(find
myRobot2dnav)/resources/cfg/base_local_planner_params.yaml" command="load"
/>
</node>
</launch>
Common costmap params:
map_type: costmap
transform_tolerance: 0.3
obstacle_range: 2.5
max_obstacle_height: 2.0
raytrace_range: 3.0
footprint: [[0.235, 0.075], [0.165, 0.285], [-0.845, 0.285], [-0.915,
0.075], [-0.915, -0.075], [-0.845, -0.285], [0.165, -0.285], [0.235,
-0.075]]
footprint_padding: 0.05
#Cost function parameters
inflation_radius: 0.55
#The cost at which a cell is considered an obstacle when a map is read from
the map_server
lethal_cost_threshold: 10
#Configuration for the sensors that the costmap will use to update a map
observation_sources: scan scan_filtered
scan: {data_type: LaserScan, expected_update_rate: 0.4,
observation_persistence: 0.0, marking: true, clearing: false,
max_obstacle_height: 0.4, min_obstacle_height: 0.08}
scan_filtered: {data_type: LaserScan, expected_update_rate: 0.4,
observation_persistence: 0.0, marking: false, clearing: true,
max_obstacle_height: 0.4, min_obstacle_height: 0.08}
Global costmap params:
global_costmap:
global_frame: /map
robot_base_frame: base_link
update_frequency: 5.0
static_map: true
Local costmap params:
local_costmap:
global_frame: odom
robot_base_frame: base_link
update_frequency: 5.0
publish_frequency: 2.0
static_map: false
rolling_window: true
width: 6.0
height: 6.0
resolution: 0.05
base_local_planner params:
TrajectoryPlannerROS:
#Set the acceleration limits of the robot
acc_lim_th: 3.0
acc_lim_x: 0.7
acc_lim_y: 0.0
#Set the velocity limits of the robot
max_vel_x: 0.5
min_vel_x: 0.2
max_rotational_vel: 0.4
min_in_place_rotational_vel: 0.3
backup_vel: -0.1
holonomic_robot: false
#Set the tolerance on achieving a goal
xy_goal_tolerance: 0.1
yaw_goal_tolerance: 0.05
#We'll configure how long and with what granularity we'll forward simulate
trajectories
sim_time: 1.0
sim_granularity: 0.025
vx_samples: 5
vtheta_samples: 8
#Parameters for scoring trajectories
goal_distance_bias: 1.0
path_distance_bias: 7.0
occdist_scale: 0.0001
heading_scoring: true #false #true
heading_lookahead: 0.325
dwa: true
oscillation_reset_dist: 0.05
prune_plan: true
amcl params:
<launch>
<node pkg="amcl" type="amcl" name="amcl" output="screen">
<!-- Publish scans from best pose at a max of 10 Hz -->
<!-- translation std dev, m -->
<!-- -->
</node>
</launch>
Output from tf_monitor:
RESULTS: for all Frames
Frames:
Frame: /back_laser published by /myRobotDrive Average Delay: 0.000967104 Max
Delay: 0.0118755
Frame: /base_link published by /myRobotDrive Average Delay: 0.000975577 Max
Delay: 0.0104565
Frame: /front_laser published by /myRobotDrive Average Delay: 0.0012427 Max
Delay: 0.0128218
Frame: /odom published by /amcl Average Delay: -0.0140583 Max Delay:
0.282411
All Broadcasters:
Node: /amcl 20.1061 Hz, Average Delay: -0.0140583 Max Delay: 0.282411
Node: /myRobotDrive 44.8557 Hz, Average Delay: 0.00106694 Max Delay:
0.0128218
If anyone sees something out of place that may be causing my problems,
please let me know.
Thanks!
-Zac
--
View this message in context: http://ros-users.122217.n3.nabble.com/Costmap2DROS-timeouts-and-poor-amcl-performance-tp2112835p2115821.html
Sent from the ROS-Users mailing list archive at Nabble.com.
More information about the ros-users
mailing list