ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

How to remove recovery behavior?

asked 2021-04-05 08:40:53 -0500

FFelizpe gravatar image

Hello, good morning!

I've been working on a project, and I've been wanting to remove the default recovery behavior from ROS when it's navigating, to stop the robot from doing its own thing when it's lost and stopping it from eventually turning off the program when it doesn't find a route - I want to replace that with my own code for recoveries.

However, I'm stuck on a problem - I can't find a way to do that. There is a parameter that enables/disables the recovery behavior, yes, but that doesn't seem to do much - when I turn that to False, the recovery behavior continues working like nothing happened. I'm using Kinetic on a Raspberry Pi 4.

Does anybody know how can I do that? Thanks in advance!

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2021-04-05 09:39:38 -0500

tryan gravatar image

As mentioned in the move_base wiki:

~recovery_behavior_enabled (bool, default: true) Whether or not to enable the move_base recovery behaviors to attempt to clear out space.

If that's what you tried to turn false, there's not enough information to say why it's not working. If it's set in multiple places, one instance may be overriding the false setting. In any case, since you're planning to use your own recovery behavior anyway, you can override the default behaviors with your own nav_core::RecoveryBehavior plugin:

~recovery_behaviors (list, default: [{name: conservative_reset, type: clear_costmap_recovery/ClearCostmapRecovery}, {name: rotate_recovery, type: rotate_recovery/RotateRecovery}, {name: aggressive_reset, type: clear_costmap_recovery/ClearCostmapRecovery}] For 1.1+ series)

A list of recovery behavior plugins to use with move_base, see pluginlib documentation for more details on plugins. These behaviors will be run when move_base fails to find a valid plan in the order that they are specified. After each behavior completes, move_base will attempt to make a plan. If planning is successful, move_base will continue normal operation. Otherwise, the next recovery behavior in the list will be executed. These plugins must adhere to the nav_core::RecoveryBehavior interface specified in the nav_core package. (1.0 series default: [{name: conservative_reset, type: ClearCostmapRecovery}, {name: rotate_recovery, type: RotateRecovery}, {name: aggressive_reset, type: ClearCostmapRecovery}]). Note: For the default parameters, the aggressive_reset behavior will clear out to a distance of 4 * ~/local_costmap/circumscribed_radius.

If you would like more specific help, please provide the configuration and launch files you're using, so we can determine what the issue may be.

edit flag offensive delete link more


I found out there were two recovery behaviors parameters, in more than one parameter archive! I had turned one false, but the other was still true - I fixed that, deleting the copy!

Thanks a lot for the help!

FFelizpe gravatar image FFelizpe  ( 2021-10-21 15:07:46 -0500 )edit

Question Tools

1 follower


Asked: 2021-04-05 08:40:53 -0500

Seen: 1,218 times

Last updated: Apr 05 '21