IMU rate is not stable on ZED-X

Hi,
I collected a SVO at 60hz, when I publish the IMU, its all over the place rather than being 200 hz

jetson5@jetson5:~$ ros2 topic hz /zed/zed_node/imu/data_raw --window 200
WARNING: topic [/zed/zed_node/imu/data_raw] does not appear to be published yet
average rate: 140.944
min: 0.000s max: 0.095s std dev: 0.01240s window: 144
average rate: 147.153
min: 0.000s max: 0.094s std dev: 0.01107s window: 200
average rate: 146.419
min: 0.000s max: 0.095s std dev: 0.01102s window: 200
average rate: 159.635
min: 0.000s max: 0.097s std dev: 0.01104s window: 200
average rate: 156.046
min: 0.000s max: 0.092s std dev: 0.01026s window: 200
average rate: 153.565
min: 0.000s max: 0.094s std dev: 0.01214s window: 200
average rate: 155.754
min: 0.000s max: 0.094s std dev: 0.01196s window: 200
average rate: 147.448
min: 0.000s max: 0.097s std dev: 0.01219s window: 200
average rate: 142.785
min: 0.000s max: 0.097s std dev: 0.01370s window: 200
average rate: 149.882
min: 0.000s max: 0.094s std dev: 0.01225s window: 200
average rate: 143.311
min: 0.000s max: 0.094s std dev: 0.01366s window: 200
average rate: 145.530
min: 0.000s max: 0.093s std dev: 0.01341s window: 200
average rate: 149.512
min: 0.000s max: 0.094s std dev: 0.01217s window: 200
average rate: 139.039
min: 0.000s max: 0.094s std dev: 0.01341s window: 200
average rate: 144.051
min: 0.000s max: 0.094s std dev: 0.01150s window: 200
average rate: 153.913
min: 0.000s max: 0.094s std dev: 0.01155s window: 200
average rate: 154.659
min: 0.000s max: 0.093s std dev: 0.01190s window: 200
average rate: 143.501
min: 0.000s max: 0.093s std dev: 0.01250s window: 200
average rate: 154.576
min: 0.000s max: 0.093s std dev: 0.01134s window: 200
average rate: 134.959
min: 0.000s max: 0.086s std dev: 0.01349s window: 200
average rate: 142.139
min: 0.000s max: 0.094s std dev: 0.01304s window: 200
average rate: 155.763
min: 0.000s max: 0.094s std dev: 0.01175s window: 200
average rate: 150.004
min: 0.000s max: 0.094s std dev: 0.01173s window: 200
average rate: 159.955
min: 0.000s max: 0.095s std dev: 0.01166s window: 200
average rate: 158.214
min: 0.000s max: 0.095s std dev: 0.01074s window: 200
average rate: 148.953
min: 0.000s max: 0.093s std dev: 0.01192s window: 200
average rate: 151.321
min: 0.000s max: 0.094s std dev: 0.01199s window: 200
average rate: 146.640
min: 0.000s max: 0.094s std dev: 0.01198s window: 200
average rate: 157.064
min: 0.000s max: 0.092s std dev: 0.01040s window: 200
average rate: 142.941
min: 0.000s max: 0.094s std dev: 0.01198s window: 200
average rate: 145.537
min: 0.000s max: 0.094s std dev: 0.01325s window: 200
average rate: 155.549
min: 0.000s max: 0.093s std dev: 0.01196s window: 200
average rate: 147.410
min: 0.000s max: 0.092s std dev: 0.01332s window: 200
average rate: 141.260
min: 0.000s max: 0.091s std dev: 0.01325s window: 200
average rate: 146.438
min: 0.000s max: 0.095s std dev: 0.01220s window: 200
average rate: 140.699
min: 0.000s max: 0.094s std dev: 0.01367s window: 200
average rate: 142.611
min: 0.000s max: 0.094s std dev: 0.01358s window: 200
average rate: 154.006
min: 0.000s max: 0.094s std dev: 0.01209s window: 200
average rate: 140.612
min: 0.000s max: 0.094s std dev: 0.01368s window: 200
average rate: 146.107
min: 0.000s max: 0.094s std dev: 0.01232s window: 200
average rate: 144.749
min: 0.000s max: 0.094s std dev: 0.01362s window: 200
average rate: 146.444
min: 0.000s max: 0.094s std dev: 0.01325s window: 200
average rate: 141.382
min: 0.000s max: 0.093s std dev: 0.01300s window: 200
average rate: 150.557
min: 0.000s max: 0.088s std dev: 0.01150s window: 200
average rate: 141.330
min: 0.000s max: 0.084s std dev: 0.01256s window: 200
average rate: 147.759
min: 0.000s max: 0.097s std dev: 0.01219s window: 200
average rate: 156.252
min: 0.000s max: 0.095s std dev: 0.01208s window: 200
average rate: 158.135
min: 0.000s max: 0.094s std dev: 0.01180s window: 200
average rate: 161.817
min: 0.000s max: 0.093s std dev: 0.01042s window: 200
average rate: 140.543
min: 0.000s max: 0.094s std dev: 0.01327s window: 200
average rate: 140.520
min: 0.000s max: 0.093s std dev: 0.01332s window: 200
average rate: 161.838
min: 0.000s max: 0.094s std dev: 0.01206s window: 200
average rate: 145.951
min: 0.000s max: 0.091s std dev: 0.01214s window: 200
average rate: 148.728
min: 0.000s max: 0.093s std dev: 0.01198s window: 200
average rate: 149.808
min: 0.000s max: 0.090s std dev: 0.01166s window: 200
average rate: 152.425
min: 0.000s max: 0.095s std dev: 0.01199s window: 200
average rate: 147.813
min: 0.000s max: 0.094s std dev: 0.01314s window: 200
average rate: 144.322
min: 0.000s max: 0.093s std dev: 0.01324s window: 200
average rate: 140.085
min: 0.000s max: 0.094s std dev: 0.01330s window: 200
average rate: 142.158
min: 0.000s max: 0.094s std dev: 0.01312s window: 200
average rate: 142.033
min: 0.000s max: 0.094s std dev: 0.01320s window: 200
average rate: 150.433
min: 0.000s max: 0.094s std dev: 0.01188s window: 200
average rate: 144.195
min: 0.000s max: 0.094s std dev: 0.01359s window: 200
average rate: 153.137
min: 0.000s max: 0.092s std dev: 0.01178s window: 200
average rate: 162.511
min: 0.000s max: 0.091s std dev: 0.01043s window: 200
average rate: 137.199
min: 0.000s max: 0.095s std dev: 0.01476s window: 200
average rate: 148.247
min: 0.000s max: 0.092s std dev: 0.01275s window: 200
average rate: 153.334
min: 0.000s max: 0.095s std dev: 0.01227s window: 200
average rate: 150.876
min: 0.000s max: 0.095s std dev: 0.01234s window: 200
average rate: 150.235
min: 0.000s max: 0.094s std dev: 0.01219s window: 200
average rate: 147.092
min: 0.000s max: 0.092s std dev: 0.01116s window: 200
average rate: 1.538
min: 0.000s max: 128.662s std dev: 9.07448s window: 200
average rate: 1.539
min: 0.000s max: 128.662s std dev: 9.07452s window: 200
average rate: 152.923
min: 0.000s max: 0.094s std dev: 0.01073s window: 200
average rate: 142.440
min: 0.000s max: 0.094s std dev: 0.01205s window: 200
average rate: 148.400
min: 0.000s max: 0.098s std dev: 0.01233s window: 200
average rate: 144.234
min: 0.000s max: 0.098s std dev: 0.01280s window: 200
average rate: 156.841
min: 0.000s max: 0.089s std dev: 0.01132s window: 200
average rate: 154.635
min: 0.000s max: 0.095s std dev: 0.01219s window: 200
average rate: 149.423
min: 0.000s max: 0.095s std dev: 0.01057s window: 200
average rate: 145.319
min: 0.000s max: 0.083s std dev: 0.01011s window: 200
average rate: 141.204
min: 0.000s max: 0.092s std dev: 0.01273s window: 200
average rate: 156.632
min: 0.000s max: 0.092s std dev: 0.01115s window: 200
average rate: 152.166
min: 0.000s max: 0.095s std dev: 0.01202s window: 200
average rate: 159.183
min: 0.000s max: 0.019s std dev: 0.00698s window: 200
average rate: 142.846
min: 0.000s max: 0.018s std dev: 0.00758s window: 200
average rate: 141.522
min: 0.000s max: 0.018s std dev: 0.00764s window: 200
average rate: 144.890
min: 0.000s max: 0.019s std dev: 0.00772s window: 200
average rate: 146.786
min: 0.000s max: 0.019s std dev: 0.00768s window: 200
average rate: 144.510
min: 0.000s max: 0.021s std dev: 0.00769s window: 200
average rate: 145.510
min: 0.000s max: 0.021s std dev: 0.00774s window: 200
average rate: 133.218
min: 0.000s max: 0.083s std dev: 0.01009s window: 200
average rate: 126.794
min: 0.000s max: 0.083s std dev: 0.01232s window: 200
average rate: 153.027
min: 0.000s max: 0.088s std dev: 0.01177s window: 200
average rate: 149.613
min: 0.000s max: 0.083s std dev: 0.01117s window: 200
average rate: 138.158
min: 0.000s max: 0.085s std dev: 0.01276s window: 200
average rate: 153.552
min: 0.000s max: 0.087s std dev: 0.01149s window: 200
average rate: 137.600
min: 0.000s max: 0.099s std dev: 0.01383s window: 200
average rate: 148.905
min: 0.000s max: 0.088s std dev: 0.01181s window: 200
average rate: 143.089
min: 0.000s max: 0.093s std dev: 0.01243s window: 200
average rate: 146.501
min: 0.000s max: 0.091s std dev: 0.01307s window: 200
average rate: 137.181
min: 0.000s max: 0.094s std dev: 0.01369s window: 200
average rate: 136.510
min: 0.000s max: 0.094s std dev: 0.01491s window: 200
average rate: 149.128
min: 0.000s max: 0.088s std dev: 0.01271s window: 200
average rate: 144.126
min: 0.000s max: 0.086s std dev: 0.01219s window: 200
average rate: 142.077
min: 0.000s max: 0.089s std dev: 0.01236s window: 200
average rate: 128.940
min: 0.000s max: 0.098s std dev: 0.01392s window: 200
average rate: 150.500
min: 0.000s max: 0.082s std dev: 0.01062s window: 200
average rate: 134.306
min: 0.000s max: 0.098s std dev: 0.01310s window: 200
average rate: 135.280
min: 0.000s max: 0.098s std dev: 0.01484s window: 200
average rate: 147.147
min: 0.000s max: 0.094s std dev: 0.01202s window: 200
average rate: 131.017
min: 0.000s max: 0.094s std dev: 0.01339s window: 200
average rate: 141.346
min: 0.000s max: 0.094s std dev: 0.01243s window: 200
average rate: 148.313
min: 0.000s max: 0.081s std dev: 0.01073s window: 200
average rate: 141.336
min: 0.000s max: 0.066s std dev: 0.01096s window: 200
average rate: 139.991
min: 0.000s max: 0.074s std dev: 0.01136s window: 200
average rate: 152.080
min: 0.000s max: 0.086s std dev: 0.01138s window: 200
average rate: 140.369
min: 0.000s max: 0.092s std dev: 0.01247s window: 200
average rate: 123.865
min: 0.000s max: 0.092s std dev: 0.01622s window: 200
average rate: 140.675
min: 0.000s max: 0.092s std dev: 0.01391s window: 200
average rate: 140.291
min: 0.000s max: 0.090s std dev: 0.01362s window: 200
average rate: 153.475
min: 0.000s max: 0.088s std dev: 0.01122s window: 200
average rate: 143.311
min: 0.000s max: 0.095s std dev: 0.01376s window: 200
average rate: 135.695
min: 0.000s max: 0.091s std dev: 0.01466s window: 200
average rate: 131.510
min: 0.000s max: 0.090s std dev: 0.01521s window: 200
average rate: 137.967
min: 0.000s max: 0.090s std dev: 0.01464s window: 200
average rate: 152.875
min: 0.000s max: 0.091s std dev: 0.01228s window: 200
average rate: 140.669
min: 0.000s max: 0.089s std dev: 0.01232s window: 200
average rate: 149.046
min: 0.000s max: 0.092s std dev: 0.01185s window: 200
average rate: 150.117
min: 0.000s max: 0.090s std dev: 0.01176s window: 200
average rate: 147.990
min: 0.000s max: 0.084s std dev: 0.01154s window: 200
average rate: 149.388
min: 0.000s max: 0.094s std dev: 0.01235s window: 200
average rate: 143.502
min: 0.000s max: 0.094s std dev: 0.01300s window: 200

how to resolve it?
Thanks!

How di you record the SVO?
Have you checked the IMU frequency using other tools, e.g. ZED Sensor Viewer?

Hi

This is how I recorded the SVO at 60 FPS

########################################################################

Copyright (c) 2022, STEREOLABS.

All rights reserved.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS

“AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT

LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR

A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT

OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,

SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT

LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,

DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY

THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT

(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE

OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

########################################################################
import sys
import pyzed.sl as sl
from signal import signal, SIGINT
import argparse
import os

cam = sl.Camera()

#Handler to deal with CTRL+C properly
def handler(signal_received, frame):
cam.disable_recording()
cam.close()
sys.exit(0)

signal(SIGINT, handler)

def main(opt):
init = sl.InitParameters()
init.depth_mode = sl.DEPTH_MODE.NONE # Set configuration parameters for the ZED
init.camera_fps = opt.fps # Set the framerate from argument
init.async_image_retrieval = False; # This parameter can be used to record SVO in camera FPS even if the grab loop is running at a lower FPS (due to compute for ex.)

status = cam.open(init) 
if status > sl.ERROR_CODE.SUCCESS: 
    print("Camera Open", status, "Exit program.")
    exit(1)
    
recording_param = sl.RecordingParameters(opt.output_svo_file, sl.SVO_COMPRESSION_MODE.H265) # Enable recording with the filename specified in argument
err = cam.enable_recording(recording_param)
if err != sl.ERROR_CODE.SUCCESS:
    print("Recording ZED : ", err)
    exit(1)

runtime = sl.RuntimeParameters()
print(f"SVO is Recording at {opt.fps} FPS, use Ctrl-C to stop.") # Start recording SVO, stop with Ctrl-C command
frames_recorded = 0

while True:
    if cam.grab(runtime) <= sl.ERROR_CODE.SUCCESS : # Check that a new image is successfully acquired
        frames_recorded += 1
        print("Frame count: " + str(frames_recorded), end="\r")

if name == “main”:
parser = argparse.ArgumentParser()
parser.add_argument(‘–output_svo_file’, type=str, help=‘Path to the SVO file that will be written’, required=True)
parser.add_argument(‘–fps’, type=int, help=‘Camera framerate (e.g. 15, 30, 60, 100)’, default=30)
opt = parser.parse_args()
if not opt.output_svo_file.endswith((“.svo”, “.svo2”)):
print("–output_svo_file parameter should be a .svo file but is not : ", opt.output_svo_file, “Exit program.”)
exit()
main(opt)

The Zed_Sensor_Viewer says that accel, gyro, orientation and temp are at 189 Hz and not 200 Hz