Is it possible to change the IMU-Camera-transform entries?

Hello everyone!

I have a problem with the transformation between the camera lens and the IMU. I think that the transformation matrix is not correct like this. Is it possible to change these entries?
grafik

With kind regards
Dan

Hi @Dan
why do you think that the information is not correct?

It looks like these values are interpreted as meters (translation values). So when I rotate the camera around the Y-axis you can see that the coordinate system is outside the camera.
It may be that I understand it wrong, what does the transformation matrix look like with another ZED 2i?

Those values are in millimeters, what measurement units have you set when opening the camera?

measurement units a set to meter, but there is no difference between meters and millimeters in the result.

grafik

What version of the ZED SDK are you using?
With the latest ZED SDK v3.8.1 the problem is not present.

ok. i´m actually using the latest ZED SDK.
But if you say that the values in the imu_cam_transform are plausible and in millimeters,
I can work with that.

Thanks.

It’s odd because I just tested it and I can get the correct camera/IMU transform:

$ python3 hello_zed.py 
Hello! This is my serial number: 35199186
55BB7E909370
0.999999 0.000924 0.000770 0.023000
-0.000925 1.000000 0.000255 -0.000220
-0.000770 -0.000256 1.000000 -0.002000
0.000000 0.000000 0.000000 1.000000

This is the simple code that I used (I modified the hello_zed.py example):

import pyzed.sl as sl


def main():
    # Create a Camera object
    zed = sl.Camera()

    # Create a InitParameters object and set configuration parameters
    init_params = sl.InitParameters()
    init_params.coordinate_units = sl.UNIT.METER
    init_params.sdk_verbose = False

    # Open the camera
    err = zed.open(init_params)
    if err != sl.ERROR_CODE.SUCCESS:
        exit(1)

    # Get camera information (ZED serial number)
    zed_serial = zed.get_camera_information().serial_number
    print("Hello! This is my serial number: {0}".format(zed_serial))
    
    info = zed.get_camera_information()
    cam_imu_transf = info.sensors_configuration.camera_imu_transform
    print(cam_imu_transf)

    # Close the camera
    zed.close()

if __name__ == "__main__":
    main()

Oh no, that was my mistake unfortunately. I passed the init_params at sl.Camera() and not when opening the ZED zed.open(init_params).
sorry…

1 Like

No worries, the important is that you solved your issue :+1: