ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

nparker2020's profile - activity

2022-11-21 23:06:13 -0500 received badge  Famous Question (source)
2022-09-02 12:14:54 -0500 received badge  Notable Question (source)
2021-11-09 06:04:56 -0500 received badge  Popular Question (source)
2021-11-04 15:30:01 -0500 marked best answer robot_localization: Strange frequency of odometry message output

Hello,

I'm using the robot_localization package on ROS noetic, on an Ubuntu 20.04LTS system with a 4 Core i5. I am running an EKF node, and trying to get the odometry/filtered message output at a fairly high frequency (~200Hz)

I am running into some strange behavior when increasing the frequency configuration parameter for the filter. If the frequency parameter is set to ~30Hz or less, each odometry/filtered message is output at the expected frequency, and the delta between each message is evenly distributed. (i.e. at 20Hz, 20 odometry messages are received in a second, and they are each 50ms apart)

As soon as the frequency is increased to 40Hz, something strange happens. Several odometry messages are sent with very high frequency (~10 microseconds between each message), followed by a 50 millisecond gap. This behavior is consistent increasing the frequency up to 200Hz.

Even at 200Hz, the filter does output an odometry message 200 times in a second. However, the timing between each message is not evenly distributed at all.

I have reduced the number of sensors to 1, a simple odometry source from wheel encoders. This message is published at 200Hz. I have tried modulating the frequency at which this odometry message is published, as well as adjusting the queue sizes for the message.

Has anyone else experienced this? Is this the expected behavior for the filter?

Following section 1.3 of the troubleshooting guide, below is an output of the odom message:

header: 
  seq: 1942
  stamp: 
    secs: 1636049205
    nsecs: 696457465
  frame_id: "odom"
child_frame_id: "base_link"
pose: 
  pose: 
    position: 
      x: 0.0
      y: 0.0
      z: 0.0
    orientation: 
      x: 0.0
      y: 0.0
      z: 0.0
      w: 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]
twist: 
  twist: 
    linear: 
      x: 0.01
      y: 0.0
      z: 0.0
    angular: 
      x: 0.0
      y: 0.0
      z: 0.0
  covariance: [1e-06, 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.0001]

I am just hard-setting the X velocity to 0.01 for testing purposes. Also, here is my configuration file:

frequency: 40

silent_tf_failure: false

sensor_timeout: 0.1

two_d_mode: false

transform_time_offset: 0.0

transform_timeout: 0.0

print_diagnostics: true

debug: false

publish_tf: true

publish_acceleration: false

permit_corrected_publication: false

smooth_lagged_data: false

map_frame: map ...
(more)
2021-11-04 15:27:08 -0500 answered a question robot_localization: Strange frequency of odometry message output

ANSWER: The answer to this issue, provided by gvdhoorn (Thanks again!), was to disable Nagel's algorithm for the /odome

2021-11-04 15:27:08 -0500 received badge  Rapid Responder (source)
2021-11-04 15:23:57 -0500 commented question robot_localization: Strange frequency of odometry message output

Wow. OK. Comparing the stamps in the header yields exactly what I would expect. Each odometry message is delivered in 1/

2021-11-04 15:13:26 -0500 commented question robot_localization: Strange frequency of odometry message output

Wow. OK. Comparing the stamps in the header yields exactly what I would expect. Each odometry message is delivered in 1/

2021-11-04 14:59:47 -0500 commented question robot_localization: Strange frequency of odometry message output

Thanks for the reply. Yes, I assumed originally that Nagel's could be at work. I set the odom0_nodelay value to true in

2021-11-04 14:17:41 -0500 asked a question robot_localization: Strange frequency of odometry message output

robot_localization: Strange frequency of odometry message output Hello, I'm using the robot_localization package on ROS