Move_base: Why is the robot still using recovery behaviors if they are turned off?

asked 2016-03-23 16:04:31 -0500

DanThe gravatar image

updated 2016-03-28 01:53:15 -0500

Hi all,

The current move_base launch file that I am using has the following parameters set as follows:

<param name="recovery_behavior_enabled" value="false"/>
<param name="clearing_rotation_allowed" value="false"/>

The wiki page for move_base states the following:

These recovery behaviors can be configured using the recovery_behaviors parameter, and disabled using the recovery_behavior_enabled parameter.

So why does the robot still perform clearing rotations if the related parameters are disabled?


move_base launch file:

  <master auto="start"/>

  <arg name="no_static_map" default="false"/>

  <arg name="base_global_planner" default="navfn/NavfnROS"/> 
  <!--<arg name="base_global_planner" default="carrot_planner/CarrotPlanner"/>-->

  <arg name="base_local_planner" default="base_local_planner/TrajectoryPlannerROS"/>

  <!--<arg name="base_local_planner" default="dwa_local_planner/DWAPlannerROS"/>-->

  <!--<arg name="base_local_planner" default="eband_local_planner/EBandPlannerROS"/>-->

  <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
    <rosparam file="/home/powerbot67/navigation_powerbot/src/powerbot_2dnav/config/costmap_common_params.yaml" command="load" ns="global_costmap" />
    <rosparam file="/home/powerbot67/navigation_powerbot/src/powerbot_2dnav/config/costmap_common_params.yaml" command="load" ns="local_costmap" />

    <rosparam file="/home/powerbot67/navigation_powerbot/src/powerbot_2dnav/config/local_costmap_params.yaml" command="load" />

    <rosparam file="/home/powerbot67/navigation_powerbot/src/powerbot_2dnav/config/global_costmap_params.yaml" command="load" />

    <rosparam file="/home/powerbot67/navigation_powerbot/src/powerbot_2dnav/config/base_local_planner_params.yaml" command="load" />

    <param name="base_global_planner" value="$(arg base_global_planner)"/>
    <param name="base_local_planner" value="$(arg base_local_planner)"/>  
    <param name="recovery_behavior_enabled" value="false"/> 
    <param name="recovery_behaviour_enabled" value="false"/> 
    <param name="clearing_rotation_allowed" value="false"/>
    <param name="planner_frequency" value="40.0"/> 

    <!--<param name="controller_frequency" value="10.0"/> --> 
    <!--<param name="planner_patience" value="40.0"/> -->
    <!--<param name="controller_patience" value="40.0"/> -->

    <!--<param name="oscillation_timeout" value="40"/> -->

    <!-- Remap into namespace for cmd_vel_mux switching-->
    <remap from="cmd_vel" to="/RosAria/cmd_vel" />
edit retag flag offensive close merge delete


Do a rosparam list and then 2x rosparam get ... after launching your system please. Just to confirm that the two parameters end up being set properly. Another issue might be that they're set, but in a different namespace.

spmaniato gravatar image spmaniato  ( 2016-03-23 16:41:46 -0500 )edit

I will check it out. Thanks!

DanThe gravatar image DanThe  ( 2016-03-23 16:49:33 -0500 )edit

are you running catkin_make or catkin_make install after changing those parameters? It could also be that your launch files are being read from /devel and not from /src

Mehdi. gravatar image Mehdi.  ( 2016-03-24 09:35:58 -0500 )edit

Thanks for your reply @Mehdi. No, I am not running either of catkin_make or catkin_make install. Is this always required after changing a parameter? I was only pressing 'save' after changing parameters in the launch file. I assumed that this is enough to affect a change in parameter. Thanks again

DanThe gravatar image DanThe  ( 2016-03-24 13:18:21 -0500 )edit

@DanThe Could you update your question with the entire section of your launch file that runs and parametrizes move_base please? Also, did you check using rosparam? What's the verdict?

spmaniato gravatar image spmaniato  ( 2016-03-24 14:06:57 -0500 )edit

rosparam get shows the parameters set correctly : powerbot67@powerbot67-desktop:~/catkin_ws$ rosparam get /move_base/recovery_behavior_enabled false powerbot67@powerbot67-desktop:~/catkin_ws$ rosparam get /move_base/clearing_rotation_allowed false

DanThe gravatar image DanThe  ( 2016-03-28 01:50:52 -0500 )edit

@spmaniato I edited the question to include move_base.launch

DanThe gravatar image DanThe  ( 2016-03-28 01:53:59 -0500 )edit

Hmm, in terms of recovery behaviors, the only difference between your setup and mine seems to be that I'm loading those two params from a YAML file. But that shouldn't matter at all ofc. Another difference is that I do provide the list recovery_behaviors in addition to setting the params to false.

spmaniato gravatar image spmaniato  ( 2016-03-28 08:21:44 -0500 )edit