Why does elastic band fail to set plan?
I came across next error while executing navigation of turtlebot with elastic band. As a condition, there is an obstacle(trash) between initial position and goal position. Without a trash, the error doesn't happen.
[ INFO] [1398906012.806944687]: Using plugin "static_layer" [ INFO] [1398906013.027047016]: Requesting the map... [ INFO] [1398906013.361219594]: Resizing costmap to 4000 X 4000 at 0.050000 m/pix [ INFO] [1398906014.101873513]: Received a 4000 X 4000 map at 0.050000 m/pix [ INFO] [1398906014.124545626]: Using plugin "obstacle_layer" [ INFO] [1398906014.157334499]: Subscribed to Topics: scan bump [ INFO] [1398906014.305734060]: Using plugin "inflation_layer" [ INFO] [1398906014.880262074]: Using plugin "obstacle_layer" [ INFO] [1398906015.106663584]: Subscribed to Topics: scan bump [ INFO] [1398906015.374262701]: Using plugin "inflation_layer" [ INFO] [1398906015.827124830]: Created local_planner eband_local_planner/EBandPlannerROS [ WARN] [1398906016.226553024]: Map update loop missed its desired rate of 2.0000Hz... the loop actually took 1.7923 seconds [ WARN] [1398906064.118454742]: Band is broken. Could not close gaps in converted path. Path not set. Global replanning needed [ERROR] [1398906064.118672550]: Setting plan to Elastic Band method failed! [ERROR] [1398906064.119511556]: Failed to pass global plan to the controller, aborting.
So, I looked for where the error happened and found that same ROS_ERROR code is described on line 171 in eband_local_planner_ros.cpp.
if(!eband_->setPlan(transformed_plan_)) { ROS_ERROR("Setting plan to Elastic Band method failed!"); return false; }
If eband_.setPlan() is true, ROS_ERROR doesn't happen. But, I don't come up with the solution that it become true. Could anyone tell me any solution if you know it? Thank you in advance!
I use carrot_planner as global_planner. Is it bad to match the planner with eband_local_planner?