]> defiant.homedns.org Git - ros_wild_thumper.git/blobdiff - launch/move_base.launch
navigation stack tuning
[ros_wild_thumper.git] / launch / move_base.launch
index 3c1880d8d4ae09f3cb55a9c49ae91ed4d6db21db..33c5636f3cf9ffdb09eeb780b7ccc04440c5fe16 100644 (file)
@@ -2,8 +2,13 @@
 <launch>
        <arg name="slam_gmapping" default="false" />
        <arg name="map_file" default="$(find wild_thumper)/data/map.yaml" />
+       <arg name="global_odom" default="false" />
+       <arg name="close_to_obstacles" default="false" />
        <arg name="nomap" default="false" />
-       <arg name="base_local_planner" default="base_local_planner/TrajectoryPlannerROS"/> <!-- base_local_planner/TrajectoryPlannerROS || dwa_local_planner/DWAPlannerROS -->
+       <arg name="base_global_planner" default="navfn/NavfnROS"/> <!-- navfn/NavfnROS || carrot_planner/CarrotPlanner -->
+       <arg name="base_local_planner" default="base_local_planner/TrajectoryPlannerROS"/> <!-- base_local_planner/TrajectoryPlannerROS || dwa_local_planner/DWAPlannerROS || pose_follower/PoseFollower -->
+       <!-- default: [{name: conservative_reset, type: clear_costmap_recovery/ClearCostmapRecovery}, {name: rotate_recovery, type: rotate_recovery/RotateRecovery}, {name: aggressive_reset, type: clear_costmap_recovery/ClearCostmapRecovery}]" -->
+       <arg name="recovery_behaviors" default="[{name: conservative_reset, type: clear_costmap_recovery/ClearCostmapRecovery}, {name: aggressive_reset, type: clear_costmap_recovery/ClearCostmapRecovery}]"/>
 
        <!-- Run AMCL -->
        <group unless="$(arg nomap)">
                <node name="map_server" pkg="map_server" type="map_server" args="$(arg map_file)" output="screen" unless="$(arg slam_gmapping)" />
 
                <include file="$(find amcl)/examples/amcl_diff.launch" unless="$(arg slam_gmapping)" />
-               <param name="amcl/base_frame_id" value="base_footprint" />
+               <group ns="amcl">
+                       <param name="base_frame_id" value="base_footprint" />
+                       <param name="odom_model_type" value="diff-corrected" />
+                       <!-- Specifies the expected noise in odometry's rotation estimate from the rotational component of the robot's motion. -->
+                       <param name="odom_alpha1" value="0.001" />
+                       <!-- Specifies the expected noise in odometry's rotation estimate from translational component of the robot's motion. -->
+                       <param name="odom_alpha2" value="0.001" />
+                       <!-- Specifies the expected noise in odometry's translation estimate from the translational component of the robot's motion. -->
+                       <param name="odom_alpha3" value="0.04" />
+                       <!-- Specifies the expected noise in odometry's translation estimate from the rotational component of the robot's motion. -->
+                       <param name="odom_alpha4" value="0.001" />
+                       <!-- How many evenly-spaced beams in each scan to be used when updating the filter. -->
+                       <param name="laser_max_beams" value="50" />
+                       <!-- Exponential decay rate for the slow average weight filter, used in deciding when to recover by adding random poses. -->
+                       <param name="recovery_alpha_slow" value="0.001" />
+                       <!-- Exponential decay rate for the fast average weight filter, used in deciding when to recover by adding random poses. -->
+                       <param name="recovery_alpha_fast" value="0.1" />
+                       <!-- Minimum allowed number of particles. -->
+                       <param name="min_particles" value="100" />
+               </group>
        </group>
 
-       <node pkg="gmapping" type="slam_gmapping" name="slap_gmapping" if="$(arg slam_gmapping)">
-               <param name="scan" value="scan" />
-               <param name="delta" value="0.01" />
-               <param name="map_update_interval" value="5.0" />
-               <param name="linearUpdate" value="0.5" />
-               <param name="angularUpdate" value="0.25" />
-               <param name="xmin" value="-5.0"/>
-               <param name="ymin" value="-5.0"/>
-               <param name="xmax" value="5.0"/>
-               <param name="ymax" value="5.0"/>
-               <param name="odom_frame" value="odom"/>
-               <param name="maxUrange" value="6.0"/>
-               <param name="maxRange" value="8.0"/>
-               <param name="minimumScore" value="200"/>
-               <param name="linearUpdate" value="0.5"/>
-               <param name="particles" value="80"/>
-       </node>
+       <include file="$(find wild_thumper)/launch/gmapping.launch" if="$(arg slam_gmapping)" />
 
-       <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
+       <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen" clear_params="true">
                <param name="base_local_planner" value="$(arg base_local_planner)"/>
+               <param name="base_global_planner" value="$(arg base_global_planner)"/>
                <param name="controller_frequency" value="10.0" />
+               <param name="max_planning_retries" value="3" />
+               <param name="clearing_rotation_allowed" value="false" />
+               <param name="GlobalPlanner/default_tolerance" value="0.2" />
+               <param name="conservative_reset/affected_maps" value="local" />
+               <param name="make_plan_clear_costmap" value="false" />
+               <param name="make_plan_add_unreachable_goal" value="false" />
+               <rosparam param="recovery_behaviors" subst_value="True">$(arg recovery_behaviors)</rosparam>
                <rosparam file="$(find wild_thumper)/config/costmap_common_params.yaml" command="load" ns="global_costmap" />
                <rosparam file="$(find wild_thumper)/config/costmap_common_params.yaml" command="load" ns="local_costmap" />
-               <rosparam file="$(find wild_thumper)/config/global_costmap_params.yaml" command="load" unless="$(arg nomap)" />
-               <rosparam file="$(find wild_thumper)/config/global_costmap_params_odom.yaml" command="load" if="$(arg nomap)" />
+               <rosparam file="$(find wild_thumper)/config/global_costmap_params.yaml" command="load" />
+               <rosparam file="$(find wild_thumper)/config/global_costmap_params_odom.yaml" command="load" if="$(arg global_odom)" />
                <rosparam file="$(find wild_thumper)/config/local_costmap_params.yaml" command="load" />
                <rosparam file="$(find wild_thumper)/config/base_local_planner_params.yaml" command="load" />
+               <rosparam file="$(find wild_thumper)/config/nav_close_to_obstacles.yaml" command="load" if="$(arg close_to_obstacles)" />
                <remap from="/cmd_vel" to="move_base/cmd_vel"/>
        </node>
 </launch>