Local planner stops working while global planner updates path

asked 2016-06-08 09:31:35 -0600

schultza gravatar image

updated 2016-06-10 09:28:02 -0600

Hi together,

I am facing a problem. I am using the sbpl planner from this git as local planner and the teb_local_planner as local planner.

For the SBPL lattice planner I use the rover.mprim file just to try it out. After setting a goal, it tries to compute a path which works pretty good. But after driving a while the global planner updates its path which takes about 2-5 seconds. In the update time the local planner stops completely to send commands to my base controller (in this case a simulation).

I actually don't know what I should do now. Should I search for the update interval of the global path and try to lower this (I dont think there is a parameter for this in the sbpl planner) or should I try to figure out why the local planner is stopping.

Can you help me?

#Edit 1

So after trying to look in the source code of the move_base node, I checked all the possibilities when the global planner is replanning. After setting my planner frequency to 0, there was just the possibility that the local planner isn't sending valid commands to the move_base node.

So I started looking a bit deeper in it, and activating the debug logger level. Seeing some strange things. I just post here an output of my terminal and explain more after:

[ WARN] [1465567966.222422432, 803.000000000]: Map update loop missed its desired rate of 5.0000Hz... the loop actually took 0.9290 seconds
[DEBUG] [1465567966.569430695, 803.234000000]: TebOptimalPlanner::isHorizonReductionAppropriate(): Distance between consecutive poses > 0.9*min_obstacle_dist
[ WARN] [1465567966.569510343, 803.234000000]: TebLocalPlannerROS: trajectory is not feasible, but the planner suggests a shorter horizon temporary. Complying with its wish for at least 10s...
[DEBUG] [1465567966.636358038, 803.279000000]: New goal: distance to existing goal is higher than the specified threshold. Reinitalizing trajectories.
[ WARN] [1465567966.688034070, 803.306000000]: TebLocalPlannerROS: trajectory is not feasible. Resetting planner...
[ INFO] [1465567966.702152522, 803.320000000]: Move base is forcing 0,0,0 velocity cmd
[ INFO] [1465567967.678576361, 803.920000000]: [SBPL] Here SPBL gets a new plan request

Some of the output is generated by myself. After this output the global_planner is replanning.

So I am seeing that all the time th TEB Planner says the trajectory is not feasible the global_planner trys to provide a new global plan, which could be feasible. Also noticing the teb planner is a most of the time in "short horizont" mode (dont know the exact name). As you can see in the debug log messages before and after he is switching to shorter horizont mode.

Here is a picture of an example plan where all of this happens.

image description

Here is a link to my teb_planner paramter file

I hope this makes something clear

edit retag flag offensive close merge delete

Comments

If the local planner really does not command anything while the global plan is being updated, maybe the move_base state machine blocks the controller execution? Maybe you can investigate the source code.

croesmann gravatar imagecroesmann ( 2016-06-09 02:54:27 -0600 )edit

Can you please look at my #edit1? I think I localized the beahviour

schultza gravatar imageschultza ( 2016-06-10 09:13:54 -0600 )edit

thanks for reporting this. Did you tried the most recent version from source (git)? I have fixed some issues concerning feasibility. If it is still there, this might be a candidate for the issue tracker.

croesmann gravatar imagecroesmann ( 2016-06-14 16:23:15 -0600 )edit

Since we are using Indigo, we use version 4.2 from teb_planner. So I think it is the latest.

schultza gravatar imageschultza ( 2016-06-27 03:16:08 -0600 )edit

@schultza Did you fix the problem? Please post your answer if you fixed it.

Karthikeyan gravatar imageKarthikeyan ( 2016-08-26 08:52:08 -0600 )edit