-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Can failure of costmap to meet its update rate make getRobotPose fail? #517
Comments
In both, but slightly different. On Stage I have a weird issue with the footprint trailing behind of the tf tree and robot model, what could indicate that the costmap truly struggles to keep path, because it's him who provides the footprint. So I just ignore it by now and concentrate on the real robot.. We use a i7-4770S (quadcore, 3.9GHz), 16 GB RAM, so we have plenty of computational power for move_base needs. |
…nstead of using that on the costmaps
Ok, tentative fix for the big problem (global planner failures) PRequested: #520 |
Fix about to be merged into lunar. Merge into I+K requires a bit of PR update, which I imagine will happen shortly. |
Hello, this somehow has not made it into Indigo or Kinetic as of yet. What's the timeline for this to be merged? Would be interested in this fix as we're sometimes facing similar issues. |
* Documentation for Graceful Motion Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Minor fix --------- Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
Ok, this is something rather mysterious I cannot understand, probably not a bug, but is bugging me quite a lot:
First, I have noticed that on all move_base components robot pose is get by calling Costmap2DROS::getRobotPose. That's fine, but... could somehow this method fail if the costmap is strugling to keep its update rate? I know this don't make sense because the map is updated in a separated thread, and the tf listener used to transform the robot pose into costmap frame has also his own thread.... but the fact is that I have this problem with global costmap / global planner:
And I also get similar problems with the local planner and local costmap.
Moreover, I have moved the getRobotPose to move_base.cpp and to dwa_local_planner_ros.cpp and... ❗ ❗ ❗ ❗ I fixed the problem on global planner and local planner respectively!!! For the global planner I also managed to fix the problem by reducing update rate to something ridiculously low, like 0.2Hz.
So I'm puzzled, really. Makes any sense all this? Could be that somehow tf listener don't get updated during costmaps updates? I have noticed that move_base_node.cpp runs ros:spin(); instead of ros::MultiThreadedSpinner, what makes a bit more plausible my wild guess.
Thanks!
The text was updated successfully, but these errors were encountered: