Changing global/local planner weights

asked 2014-08-11 05:14:36 -0600

gerhenz gravatar image


I'm using a turtlebot 2 to build the map of a room and a corridor. I was having some problems because there's a glass wall between them and the kinect doesn't detect it very well. To solve this problem I manually edited the map file by drawing black lines. You can check the map here.

However, when the robot is in the room and I set a goal in the corridor the robot fails to get there. I think the problem is that the local planner tries to make the robot go through the wall (since the kinect doesn't detect it completely), even though the global planner works fine and it establishes a correct path. You can take a look at this image to help you visualize what I'm saying. The robot keeps rotating and moving to other directions and it doesn't follow the red line.

Doing a little research I found that I can change the values of a few parameters in the dwa_local_planner to solve this issue. For this reason, I changed the parameters path_distance_bias (increasing it) and goal_distance_bias (decreasing it) in the DWAPlannerConfig.h file.

Changing these parameters solved my problem, but I've got some questions about it:

  1. Is this the best approach to solve my problem?

  2. How these changes will affect the robot navigation in other situations? In order to solve my problem I had to set extremely high (path_distance_bias) and low (goal_distance_bias) values. I've done a few tests and the robot moves fine, but I'm afraid that there are a few situations where these parameter changes will make the robot behave incorrectly.


edit retag flag offensive close merge delete


Shouldn't these parameters be changed in the YAML file instead of the header file?

ROSCMBOT gravatar image ROSCMBOT  ( 2014-08-11 13:23:57 -0600 )edit

which YAML file are you referring to?

gerhenz gravatar image gerhenz  ( 2014-08-12 03:20:19 -0600 )edit

Please take a look at this thread

ROSCMBOT gravatar image ROSCMBOT  ( 2014-08-14 12:38:29 -0600 )edit