Hi Miguel,
I'll try to shed some light on this.
Obviously, you can implement the desired behaviour yourself. This would mean implementing a local planner following the 'nav_core::BaseLocalPlanner' interface (see the nav_core documentation).
gmapping
is actually "just" doing map building, thus, it does not send any commands. frontier_exploration
also just sends goals in terms of geometry_msgs::PoseStamped
using the move_base_msgs/MoveBaseAction
interface to the move_base
node. move_base
is actually the one creating the movement commands.
Thus, you would need to adapt the parameters of you local planner (and probably of you global planner) to achieve the respective behaviour.
Check out the move_base
documentation and especially the one for the dwa_local_planner
.
I guess you can achieve what you want by setting the parameter ~<name>/min_vel_x
for the dwa_local_planner
, if you have configured it as local planner in the move_base
node. (I'm not sure, if this works for base_local_planner
as well)