Path planning in a complex environment.
I am using a turtlebot2 with an ASUS XTION laser scanner and I am trying to develop autonomous mapping functionality but I am running into a lot of issues with path planning. The robot often gets stuck and is unable to find a path to its goal. I am currently testing in an office environment that has a lot of complex obstacle features (chair legs, table legs, human legs, etc.) and I was wondering if these features might be affecting the performance of the path planner? There are also a few ceiling-to-floor windows which may be confusing the laser scanner.
Does anyone know the limitations of the DWA local planner in complex environments? In videos I see online, people often create very structured maze like environments which make it easy for the robot to navigate.
EDIT: The error I get from move_base is "Aborting because a valid plan could not be found. Even after executing all recovery behaviors." This occurs once the robot has mapped out a small area and gets stuck. It may be trying to send a goal to a location not in its vicinity but I'm not sure.
Also, I tend to get the warning "scan matching failed using odometry" when using gmapping so maybe this has something to with it.
Finally, I often get the error "You must specify at least three points for the robot footprint,reverting to previous footprint" even though my robotradius is set in the costmapcommon_params file.
Asked by pgigioli on 2016-03-17 16:01:16 UTC
Comments
By autonomous planning, are you referring to a frontier-exploration SLAM ? Or do you drive manually the robot during the mapping and then encounter motion planning problems after the mapping ? Your title is misleading, gmapping is the SLAM algorithm but you mention motion planning problems.
Asked by al-dev on 2016-03-18 01:37:49 UTC
Sorry, the title should be path planning in a complex environment. I'll edit the title. But yes, I am trying to do frontier-exploration SLAM but I often get the error "aborting because a valid plan could not be found." I am wondering if this is because the complex environment confuses the robot?
Asked by pgigioli on 2016-03-18 08:44:52 UTC
Ok. Are you using an existing package for frontier-exploration SLAM or did you write your own ? If you are using the move_base library with DWA as your local planner, what is your global planner ? Are you sure that it is the local planner failing and not the global planner ?
Asked by al-dev on 2016-03-18 14:06:36 UTC
I am using this existing package. How would I know if the global planner is failing? I do notice that the robot only plans goal nearby it and will never try to navigate across the room.
Asked by pgigioli on 2016-03-18 16:16:18 UTC
In fact, frontier exploration works at first until the robot gets caught in a corner and then I get an error that a valid plan was not found. So maybe you are on to something.
Asked by pgigioli on 2016-03-18 16:17:13 UTC
Ok then I suppose you are using the default global planner for move_base, navfn. Can you edit your post to add the exact error message that you are getting ? To help you it would help to know if it is the global or the local planner that is failing.
Asked by al-dev on 2016-03-18 17:09:11 UTC
I edited my original post with some of the errors I get. I appreciate your help!!!
Asked by pgigioli on 2016-03-18 18:10:02 UTC
"scan matching failed using odometry" suggests that your odometry may not be properly calibrated/functioning. Have you tried building maps by driving around your turtlebot and using gmapping, instead of autonomous mapping ? Do the maps look good ? Some screenshots of the maps would help.
Asked by al-dev on 2016-03-18 21:31:35 UTC
Also test your odometry as described in the "Odometry" section here : http://wiki.ros.org/navigation/Tutorials/Navigation%20Tuning%20Guide If gmapping cannot produce good maps because of a poor odometry, the scan matching could at some point position distant obstacles too close to the robot.
Asked by al-dev on 2016-03-18 21:32:17 UTC
I don't have access to my robot right now so I can't give you any screenshots but Gmapping works well when I drive manually. The maps are good and I can do autonomous navigation on those maps with good performance. It's only when I'm navigating in an unknown environment
Asked by pgigioli on 2016-03-19 02:26:57 UTC
For example if I use the "set nav goal" in Rviz for a mapped environment, there are no issues but if I do it while I'm gmapping, i get errors. I also get errors when I'm using autonomous exploration such as frontier exploration. Something about the global planner perhaps?
Asked by pgigioli on 2016-03-19 02:29:17 UTC
I'm thinking it might be an odometry issue because when I'm doing another unrelated process I get an error "waiting for transform from baselink to odom"
Asked by pgigioli on 2016-03-19 02:36:35 UTC