-
Notifications
You must be signed in to change notification settings - Fork 555
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
Time Error #1
Comments
Thank you for sharing the issue. In common robot configurations, the transformation between odom and map is published by some localization node (e.g. the amcl node). Could you please provide me with further information:
|
Are you using the latest version in the official debian repo or the latest version of this github repo (0.2.1), since they are not synchronized yet?
Did it work with any previous version?
Which ROS distributation are you using (indigo/jade)?
Does your navigation / amcl setup work with the default local planner (dwa)?
When does this issue appear? While you are starting move_base with the teb_local_planner plugin or while you are sending any goal to the navigation stack?
Are you running the planner on the same machine that is running the roscore (to neglect network delays)?
Can you try to test your setup in simulation with
Thanks so much for all your help. Would it be possible for you to post your test robot so I can compare the configuration and see if I can isolate the problem? |
I was able to temporarily fix the problem by increasing the cache size of the TransformListener (defaults to 10). The issue is that the poses returned from the global plan have a time header and if too much time passes (ie the local planner encounters multiple obsticles), a transform can no longer be requested using the last step of the global plan becasue the time stored with the pose occurs prior to the last time stored in the cache. Changing this time to a larger value fixed the issue for me as long as the robot does attempt any plans with an extremely long distance (and therefore time difference). |
Great to hear that you have a temporary fix. Thanks for answering my questions. They are really helpful for figuring out what's going on there. After your hint that the issue often appears close to the goal, I've checked the
This call does not wait for a new tf broadcast and tries to find a transformation related to the time stamp of the global_plan. To fix that issue (beside the exception handling), we could use the most recent TF transform, rather than the one that belongs to the time stamp of the global_plan (by changing the TF function call). I will try to make the changes within the next few hours. ps: You mentioned some robot oscillations at the goal: This should not occur ideally. There are three reasons that I have in mind:
|
Yes, I figured out that that line was what was causing the issue. The stamp in the last step on the global plan was expiring for me because my global planner wasn't sending the plan except when it had a new route. Increasing the frequency fixed this; however, I agree using the last known pose would be a good solution. |
I pushed commit 01acd28 containing a possible fix a few minutes ago. Could you please give me some feedback, if the fix works? I decided to completely avoid the TF lookup in the isGoalReached method and moved the actual checking into the computeVelocityCommand method. This also avoids redundant calls to the costmap layer. |
When running the local planner (latest version), I get this error repeatedly.
Any ideas on what could be causing this?
The text was updated successfully, but these errors were encountered: