Is there an example of robot_localization with amcl on turtlebot?
I'm trying to get the ekflocalization node working on the turtlebot without adding any sensors, and I'm having problems. I am wondering if this is something that someone has already done and has existing launch files for? The real work I want to do is add more sensors to it but I can't even get fusion of the /odom and /amclpose to work. If someone can point me to an example it would help greatly.
As an addition - I suspect my problem has to do with the fact the kobuki base defines a 'basefootprint' which is a parent of 'baselink', and robotstatepublisher publishes odom->basefootprint->baselink while ekflocalization expects a direct odom->baselink transform.
roswtf gives me these errors:
ERROR TF re-parenting contention:
- reparenting of [baselink] to [basefootprint] by [/robotstatepublisher]
- reparenting of [baselink] to [odom] by [/ekflocalization]
ERROR TF multiple authority contention:
- node [/robotstatepublisher] publishing transform [baselink] with parent [basefootprint] already published by node [/ekf_localization]
- node [/ekflocalization] publishing transform [baselink] with parent [odom] already published by node [/robotstatepublisher]
Asked by mkhansen on 2015-12-09 18:35:49 UTC
Answers
I don't think robot_state_publisher is publishing the odom->base_footprint transform. That is likely being done by the Kobuki driver. A quick look at the source code shows that it's publishing that transform. There appears to be a publish_tf
setting that lets you turn off broadcast of the odom->base_footprint transform. Set that to false, then make sure your world_frame
is set to odom for ekf_localization_node
and your base_link_frame
is set to base_footprint. tf
represents its transforms as a tree, so you can't have more than one parent for a given frame. You also don't want multiple nodes publishing the same transform.
Asked by Tom Moore on 2015-12-16 20:34:08 UTC
Comments
Thanks Tom, this seems to have solved that problem, when I run roswtf those errors are now gone. However as soon as I move the robot I get this error --
Asked by mkhansen on 2015-12-18 13:52:40 UTC
Error: TF_NAN_INPUT: Ignoring transform for child_frame_id "base_footprint" from authority "unknown_publisher" because of a nan value in the transform (-nan -nan -nan) (-nan -nan -nan -nan)
Asked by mkhansen on 2015-12-18 13:53:33 UTC
So going back to my original question, do you have an example of ekf_localization working with Turtlebot?
Asked by mkhansen on 2015-12-18 13:54:18 UTC
I do not, no. I've never used a Turtlebot. NAN transform issues tend to mean you've got a bad covariance matrix specified either for your input data or within the parameters for the EKF.
Asked by Tom Moore on 2015-12-23 08:35:06 UTC
Do you have any working examples of using it with AMCL? If so, that may help me to debug my issue.
Asked by mkhansen on 2015-12-23 13:12:06 UTC
I'm afraid I don't, no, though I know others have done it.
Asked by Tom Moore on 2015-12-28 08:32:41 UTC
Hi mkhansen, Tom Moore, I have a same question now for my project,and would like to know any update here, since time past quite a lot now. Is there any example of robot_localization package working with Turtlebot and AMCL? Thank you in advance.
Asked by yunp on 2017-05-05 15:12:09 UTC
I don't have one, but if someone were to put something like that together, I would include it in the package as a sample config file.
Asked by Tom Moore on 2017-08-01 03:15:46 UTC
Comments