Robotics StackExchange | Archived questions

TF_NAN_INPUT errors from use of ekf_localization_node

UPDATE: I have verified that simply setting odom0differential to false also solves the problem. It is in fact probably not a problem with the ARM system I'm using, as I eventually got the same error on a x8664 laptop that I mounted on the robot. It seems as though it works fine for a while, and then the error shows up continuously after a while. Is there maybe some sort of caching applied which keeps erronous values and is reset by changing the settings in the launch file?

ORIGINAL QUESTION:

Whenever I use ekflocalizationnode in my project, I get this error:

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)
         at line 240 in /tmp/buildd/ros-indigo-tf2-0.5.11-0trusty-20150522-1835/src/buffer_core.cpp
I don't get it when I put all values of the (currently only) input of the node to false, but as soon as I put a 'true' at the position for (e.g.) the x input, it shows up again. I am using wheel odometry of a Kobuki for this input. Here is a sample odometry message:
header: 
  seq: 20227
  stamp: 
    secs: 1435652980
    nsecs: 60858344
  frame_id: odom
child_frame_id: base_footprint
pose: 
  pose: 
    position: 
      x: 0.0
      y: 0.0
      z: 0.0
    orientation: 
      x: 0.0
      y: 0.0
      z: 0.0
      w: 1.0
  covariance: [0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.7976931348623157e+308, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.7976931348623157e+308, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.7976931348623157e+308, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05]
twist: 
  twist: 
    linear: 
      x: 0.0
      y: 0.0
      z: 0.0
    angular: 
      x: 0.0
      y: 0.0
      z: 0.0
covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
---

This is the launchfile I am currently trying to use for the ekflocalizationnode: http://pastebin.com/SPrXDD53

Asked by quantumflux on 2015-06-30 03:56:05 UTC

Comments

Can you please post a sample odometry input message? Also, please let me know which version of robot_localization you're using. I see you're using Indigo, but did you install the package from the package manager or build it from source?

Asked by Tom Moore on 2015-06-30 08:36:54 UTC

Update: I tried to use a different bag file with your launch file, and I could not reproduce your issue. You'll have to post a sample odometry message.

Asked by Tom Moore on 2015-07-06 19:31:12 UTC

Hey, sorry for the delay. After a bit of testing I noticed that this only happens on one unit, which is the one I was testing it on first. It runs an ARM-based embedded system, so that might have something to do with it. On all x86 based platforms this issue does not exist, and in fact (cont.)

Asked by quantumflux on 2015-07-08 01:30:52 UTC

(cont.) I can run the package fine when I "outsource" it to one of our x86-based workstations instead of running it directly on the robot.

Asked by quantumflux on 2015-07-08 01:32:01 UTC

Which ARM board are you using? Did you build from scratch or use the package manager?

Asked by Tom Moore on 2015-07-08 18:51:07 UTC

Any update on this?

Asked by Tom Moore on 2015-07-29 18:29:37 UTC

Yes, sorry. Vacation and other stuff kept me from posting updates. I will update the question to reflect the changed circumstances I have encountered.

Asked by quantumflux on 2015-08-20 04:04:13 UTC

Answers

No, there's no caching going on. Is the message you posted above the output of ekf_localization_node or an input message? Can you post a bag file that shows the behavior you're describing?

Asked by Tom Moore on 2015-08-20 10:21:11 UTC

Comments