How to reduce update rate of global planner on Navigation?
Hello there! I've looked for this question around, but haven't found anything close to it, so I've been a bit confused.
The problem is that what I'm using to control and run ROS and Navigation (ROS1, using Kinetic) in my robot, a Raspberry Pi 4, seems to be struggling a bit with all the processing - it's mostly a hunch, and not a confirmation. For the most part, the Rasp has been just fine - however, one little thing has been bugging me:
When the robot goes around, at some times, especially when going in a straight line, the robot... kind of "hiccups", stopping for a little second, and continuing its navigation like nothing happened. The prime suspect for this is that the global planner is updating too fast, every time, and I wanted to find a way to reduce the update rate or, even more, completely take it off, so the robot doesn't update its own rate and recalculate the global plan at all, just stopping in case it sees an unavoidable obstacle.
Is there a way to do that, to reduce or remove the updating of the path at all?
Thanks in advance!
Edit: The parameters I'm using on the planner, and the error that appears when navigating:
Global Costmap:
robot_base_frame: base_link
update_frequency: 0.4
publish_frequency: 1.0
transform_tolerance: 0.5
resolution: 0.05
obstacle_range: 2.5
raytrace_range: 3.0
global_frame: map
static_map: true
track_unknown_space: true
Local Costmap:
robot_base_frame: base_link
update_frequency: 0.4
publish_frequency: 1.0
transform_tolerance: 0.5
resolution: 0.05
obstacle_range: 2.5
raytrace_range: 3.0
global_frame: odom
static_map: false
rolling_window: true
This is the error I get when trying to run:
[ WARN] [1653910255.369828451]: Control loop missed its desired rate of 5.0000Hz... the loop actually took 0.2608 seconds
[ WARN] [1653910255.747803223]: Control loop missed its desired rate of 5.0000Hz... the loop actually took 0.2391 seconds
[ WARN] [1653910256.155917322]: Control loop missed its desired rate of 5.0000Hz... the loop actually took 0.2472 seconds
[ WARN] [1653910256.552435223]: Control loop missed its desired rate of 5.0000Hz... the loop actually took 0.2437 seconds
What makes you think the global planner is executing multiple times? In a well-operating system, it only runs once for each goal you provide.
Is the planner_frequency of move_base set to the default value of 0.0?If 0.0, this should be the behavior you want.
ref : http://wiki.ros.org/move_base#line-689