Move_base: Why is the robot still using recovery behaviors if they are turned off?
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 http://wiki.ros.org/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?
Thanks
move_base launch file:
<launch>
<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" />
</node>
</launch>
Do a
rosparam list
and then 2xrosparam 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.I will check it out. Thanks!
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
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 Could you update your question with the entire section of your launch file that runs and parametrizes
move_base
please? Also, did you check usingrosparam
? What's the verdict?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
@spmaniato I edited the question to include move_base.launch
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.