-
Notifications
You must be signed in to change notification settings - Fork 52
Unstable generated frequency #25
Comments
@versatran01 @chenste |
@ke-sun Yes, I think I have seen something similar, but I don't recall if it's with microstrain or vectornav. |
Do you guys have any idea where could it come from? Thx |
I'm just guessing here, what if you comment out the diagnostic updater? |
I tried to comment out the |
How about disabling all output except for acc/gyro? |
Nope, we deactivated them in the config launch file, it generates the same result. |
Do you think these jumps are timestamped incorrectly (by the driver) or are they output incorrectly by the sensor? |
Sorry for the late reply. Honestly, I'm not quite sure. It seems the data is neither replica nor error data (it keeps somehow continuity wrt others). It can be the timestamp is wrong, cus when we set it at 200Hz, see fig1 before. It seems the "drop-off" generates a infinitely high frequency which is physically less plausible. |
I wouldn't say it's "infinitely high", judging from the plot here unless you are fixing the axis limits then the drop-offs are a fixed +-0.004s. |
Actually, yes it's the axis limits. Like i said before, the "drop-offs" constantly drops 0.005s so if we fix the frequency at 0.005, it drops to a near 0 period. True that I wouldn't say "infinitely" but the frequency is out of the capacity of the unit.
According to some previous observation, the measurements are roughly continue and in-middle of two neighbours. I'll check the generated deltas to see if they are relatively consensus to a constant motion model. (if the real "drop-offs" are truly measured with a very short time after previous measurement, then it would be much more similar to the previous measurement than the following one. Otherwise, it should be similar to an average of the sum of previous and following ones.) Again, big thanks for the help, I will tell you as soon as I have some results. (might be tomorrow |
I could reproduce this issue on the Scenario: per published message, the publisher grabs the most recent data and the current system timestamp to stuff into the message
The first point is far more important than the second. It allows us to properly filter the data with respect to the age of the data using The second point can be done with the inclusion of This plot was done by running the node in ROS2 at a baudrate of 921600 and published at 100Hz. The data is centered around 0.01 sec (as expected) with a maximum of +/-0.000004 sec jitter. None of the symptoms described in this ticket are present with the patch applied. Thanks to @clalancette for all the work he put into fixing this (alongside the ROS2 port in general :) |
@IanTheEngineer Thanks for testing, do you think you can pull the fix from the other branch to master? |
I'm headed out of town for the weekend, but I will submit a patch early next week. The core change will be #28, converted to ROS1 Time: |
Hi,
I'd like to thank you first for sharing the tool with us.
We tested your driver on a vn-100 under the environment:
Ubuntu 16.04 + ROS Kinetic
Actually we record the ros message published by the driver and visualize the statistics of the bag recorded. One thing we noticed abnormal is that the generated frequency seems unstable along the temporal direction. See figures.
We visualize the data by subtracting consecutive frames, and show the temporal interval along the recording time. One may notice that:
a drop of relative exact 0.05s occurs around every 15~20 frames.
And this strange behavior is independent to the choice of imu_rate or sync_rate in the configuration launch file, in other words, if we set the imu_rate to 100 we still notice this drop in similar amount and period (0.05s and 20 frames).
We've been investigating it for quite a long time but failed to come up with a solution, we'd like to know if you have any good insight about this problem.
Thanks ;-)
The text was updated successfully, but these errors were encountered: