# M0173 dual tracking camera error

Source: https://forum.modalai.com/topic/4363/m0173-dual-tracking-camera-error
Category: General Questions (https://forum.modalai.com/category/2/general-questions)
Posted: 2025-04-21 05:55:28 UTC by Jetson Nano
Replies: 9 · Views: 1506

## Jetson Nano · 2025-04-21 05:55:28 UTC

Hello @Alex-Kushleyev @Eric-Katzfey @tom @modaltb can anyone help me with this error.
I am using the sdk 1.4.0 with the m0173 board with the configuration 29. While I run the voxl-qvio server I am getting error of missing files both opencv_tracking_front_intrinsics.yml and opencv_tracking_down_intrinsics.yml. even after manually placing them there are other errors occuring.
```
voxl2:/$ voxl-qvio-server 
loading config file
=================================================================
odr_hz:                           30.000
use_camera_height_bootstrap:      1
camera_height_off_ground_m:        0.085
enable_init_while_moving:         0
cam_imu_timeshift_s:               0.000
cam_imu_timeshift_s_uncertainty:   0.000
T_cam_wrt_imu_uncertainty:         0.001  0.001  0.001
R_cam_to_imu_uncertainty:          0.005  0.005  0.005
accl_fsr_ms2:                     156.000
gyro_fsr_rad:                     34.000
accl_noise_std_dev:                0.316
gyro_noise_std_dev:                0.010
cam_noise_std_dev:                100.000
min_std_pixel_noise:               0.500
fail_high_pixel_noise_points:      1.665
limited_imu_bw_trigger:           25.000
gps_imu_time_alignment_s:          0.000
T_gps_wrt_imu:                     0.000  0.000  0.000
enable_mapping:                   1
enable_gps_vel:                   0
en_auto_reset:                    1
auto_reset_max_velocity:          10.000
auto_reset_max_v_cov_instant:      0.100
auto_reset_max_v_cov:              0.010
auto_reset_max_v_cov_timeout_s:    0.500
auto_reset_min_features:          3
auto_reset_min_feature_timeout_s:  1.000
en_standby_mode:                  1
standby_skip_frames:              1
mask_file_path:                   
vio_cam config:
cam 0:
    enable:                1
    name:                  tracking_front
    pipe_for_preview:      tracking_front
    pipe_for_tracking:     tracking_front_misp_norm
    is_occluded_on_ground: 0
    imu:                   imu_apps
    is_extrinsic_present:  1
    extrinsic cam wrt imu:
    parent:                imu_apps
    child:                 tracking_front
    T_cam_wrt_imu:         0.037   0.000   0.001 
    RPY_imu_to_cam:        0.0    90.0    90.0 
    R_cam_to_imu:          0.000  -0.000   1.000 
                           1.000   0.000  -0.000 
                          -0.000   1.000   0.000 
    cal file:              opencv_tracking_front_intrinsics.yml
    is_cal_present:        1
    cam cal intrinsics:
    width:                 640
    height:                480
    fx:                    286.951
    fy:                    288.010
    cx:                    339.072
    cy:                    232.400
    n_coeffs:              4
    is_fisheye:            1
    D: -0.0135 0.0046 0.0000 0.0000 
=================================================================
existing instance of qvio-server found, attempting to stop it
thread is locked to cores: 4 5 6 7
waiting for imu
waiting for cam
connected to imu server
waiting for cpu_monitor
connected to camera server
Connected to cpu-monitor
ERROR expected 1280x800 img, got 640x480
Image resolution must match what's in the selected lens cal file
ERROR expected 1280x800 img, got 640x480
Image resolution must match what's in the selected lens cal file
ERROR expected 1280x800 img, got 640x480
Image resolution must match what's in the selected lens cal file
ERROR expected 1280x800 img, got 640x480
Image resolution must match what's in the selected lens cal file
ERROR expected 1280x800 img, got 640x480
Image resolution must match what's in the selected lens cal file
ERROR expected 1280x800 img, got 640x480
Image resolution must match what's in the selected lens cal file
ERROR expected 1280x800 img, got 640x480
Image resolution must match what's in the selected lens cal file
ERROR expected 1280x800 img, got 640x480
Image resolution must match what's in the selected lens cal file
ERROR expected 1280x800 img, got 640x480
Image resolution must match what's in the selected lens cal file
ERROR expected 1280x800 img, got 640x480
Image resolution must match what's in the selected lens cal file
ERROR expected 1280x800 img, got 640x480
Image resolution must match what's in the selected lens cal file
ERROR expected 1280x800 img, got 640x480
Image resolution must match what's in the selected lens cal file
ERROR expected 1280x800 img, got 640x480
Image resolution must match what's in the selected lens cal file
ERROR expected 1280x800 img, got 640x480
Image resolution must match what's in the selected lens cal file
ERROR expected 1280x800 img, got 640x480
Image resolution must match what's in the selected lens cal file
ERROR expected 1280x800 img, got 640x480
Image resolution must match what's in the selected lens cal file

```

and another error is voxl-mapper not starting because of vio error.

which is better qvio or ov.

```
voxl2:/$ voxl-mapper 
Loading our own config file
Loading extrinsics config file
existing instance of voxl-mapper found, attempting to stop it
Trying to init tsdf server
created tsdf server
waiting for server at /run/mpa/vvhub_body_wrt_fixed/
waiting for server at /run/mpa/tof
Connected to VIO server
Initializing ESDF structs
Connected to depth pipe
ESDF Thread is now locked to the following cores: 4 5 6
INFO waiting for VIO to start
INFO waiting for VIO to start
INFO waiting for VIO to start
INFO waiting for VIO to start
INFO waiting for VIO to start
INFO waiting for VIO to start

```
```
voxl2:~$ voxl-inspect-vins
waiting for server at /run/mpa/ov_extended

    T_imu_wrt_vio (m)   |Roll Pitch Yaw (deg)| state| error_code
    0.00    0.00    0.00|   0.0   -0.0    0.0| INIT | STALLED ERROR validating t
read 8424 bytes, but it should be a multiple of 5268
ERROR validating EXT VIO data received through pipe: read partial packet
read 2112 bytes, but it should be a multiple of 5268
    0.00    0.00    0.00|   0.0   -0.0    0.0| INIT | STALLED ERROR validating t
read 8424 bytes, but it should be a multiple of 5268
ERROR validating EXT VIO data received through pipe: read partial packet
read 2112 bytes, but it should be a multiple of 5268
    0.00    0.00    0.00|   0.0   -0.0    0.0| INIT | STALLED ERROR validating t
read 8424 bytes, but it should be a multiple of 5268
ERROR validating EXT VIO data received through pipe: read partial packet
read 2112 bytes, but it should be a multiple of 5268
    0.00    0.00    0.00|   0.0   -0.0    0.0| INIT | STALLED ERROR validating t
read 8424 bytes, but it should be a multiple of 5268
ERROR validating EXT VIO data received through pipe: read partial packet
read 2112 bytes, but it should be a multiple of 5268
    0.00    0.00    0.00|   0.0   -0.0    0.0| INIT | STALLED ERROR validating t
read 8424 bytes, but it should be a multiple of 5268
ERROR validating EXT VIO data received through pipe: read partial packet
read 2112 bytes, but it should be a multiple of 5268
    0.00    0.00    0.00|   0.0   -0.0    0.0| INIT | STALLED ^C
received SIGINT Ctrl-C
```

```
voxl2:~$ voxl-inspect-vio
waiting for server

 dt(ms) |    T_imu_wrt_vio (m)   |Roll Pitch Yaw (deg)|features|quality| state| 
   33.3 |    0.00    0.00    0.00|   0.0   -0.0    0.0|     0  |   -1% | FAIL |C
received SIGINT Ctrl-C

closing and exiting
```
```
voxl2:~$ voxl-inspect-vio-cams 
cam 0:
    enable:                1
    name:                  tracking_front
    pipe_for_preview:      tracking_front
    pipe_for_tracking:     tracking_front_misp_norm
    is_occluded_on_ground: 0
    imu:                   imu_apps
    is_extrinsic_present:  1
    extrinsic cam wrt imu:
    parent:                imu_apps
    child:                 tracking_front
    T_cam_wrt_imu:         0.039   0.000   0.001 
    RPY_imu_to_cam:        0.0    90.0    90.0 
    R_cam_to_imu:          0.000  -0.000   1.000 
                           1.000   0.000  -0.000 
                          -0.000   1.000   0.000 
    cal file:              opencv_tracking_front_intrinsics.yml
    is_cal_present:        1
    cam cal intrinsics:
    width:                 640
    height:                480
    fx:                    286.951
    fy:                    288.010
    cx:                    339.072
    cy:                    232.400
    n_coeffs:              4
    is_fisheye:            1
    D: -0.0135 0.0046 0.0000 0.0000 

cam 1:
    enable:                1
    name:                  tracking_down
    pipe_for_preview:      tracking_down
    pipe_for_tracking:     tracking_down_misp_norm
    is_occluded_on_ground: 1
    imu:                   imu_apps
    is_extrinsic_present:  1
    extrinsic cam wrt imu:
    parent:                imu_apps
    child:                 tracking_down
    T_cam_wrt_imu:        -0.089  -0.007   0.033 
    RPY_imu_to_cam:        0.0     0.0   180.0 
    R_cam_to_imu:         -1.000  -0.000   0.000 
                           0.000  -1.000  -0.000 
                           0.000   0.000   1.000 
    cal file:              opencv_tracking_down_intrinsics.yml
    is_cal_present:        1
    cam cal intrinsics:
    width:                 640
    height:                480
    fx:                    286.951
    fy:                    288.010
    cx:                    339.072
    cy:                    232.400
    n_coeffs:              4
    is_fisheye:            1
    D: -0.0135 0.0046 0.0000 0.0000 

R_imu_apps_to_body:
          1.000  -0.000   0.000 
          0.000   1.000  -0.000 
          0.000   0.000   1.000 
```

```

|                 Pipe Name |  bytes  | wide |  hgt |exp(ms)| gain | frame id |t
|   feature_tracker_overlay | 6144000 | 1280 | 1600 |  0.00 |    0 |        0 |    332.4  |  5.4 |  261.0 | RGB
|    hires_down_large_color |18495360 | 4056 | 3040 | 33.23 | 6678 |    12245 |   1538.8  |  5.6 |  832.8 | NV12
|  hires_down_large_encoded |    2336 | 4056 | 3040 | 33.23 | 6678 |    12247 |   1397.2  |  5.6 |    0.1 | H264 (P)   
|     hires_down_large_grey |12330240 | 4056 | 3040 | 33.23 | 6678 |    12247 |   1369.4  |  5.7 |  557.7 | RAW8
|    hires_down_small_color | 1179648 | 1024 |  768 | 33.23 | 6678 |    12251 |   1327.3  |  5.8 |   54.7 | NV12
|  hires_down_small_encoded |      64 | 1024 |  768 | 33.23 | 6678 |    12251 |   1312.8  |  5.8 |    0.0 | H264 (P)   
|     hires_down_small_grey |  786432 | 1024 |  768 | 33.23 | 6678 |    12249 |   1296.7  |  5.8 |   36.5 | RAW8
|       hires_down_snapshot |  786432 | 1024 |  768 | 33.23 | 6678 |    12211 |   8
|   hires_front_large_color |18495360 | 4056 | 3040 | 33.23 | 6678 |    12266 |   1946.7  |  5.5 |  813.1 | NV12
| hires_front_large_encoded |   20304 | 4056 | 3040 | 33.23 | 6678 |    12268 |   1592.5  |  5.4 |    0.8 | H264 (P)   
|    hires_front_large_grey |12330240 | 4056 | 3040 | 33.23 | 6678 |    12268 |   1548.0  |  5.5 |  545.2 | RAW8
|   hires_front_small_color | 1179648 | 1024 |  768 | 33.23 | 6678 |    12271 |   1503.0  |  5.6 |   53.2 | NV12
| hires_front_small_encoded |    2496 | 1024 |  768 | 33.23 | 6678 |    12284 |   1545.8  |  6.1 |    0.1 | H264 (P)   
|    hires_front_small_grey |  786432 | 1024 |  768 | 33.23 | 6678 |    12273 |   1532.1  |  5.7 |   36.0 | RAW8
|      hires_front_snapshot |  786432 | 1024 |  768 | 33.23 | 6678 |    12233 |   8
|                ov_overlay | 2211840 | 1280 | 1728 | 12.00 | 1596 |    12487 |    298.3  |  4.5 |   80.3 | RAW8
|                  tof_conf |   43200 |  180 |  240 |  0.06 |    0 |     4174 |    149.1  |  9.2 |    3.2 | RAW8
|                 tof_depth |   43200 |  180 |  240 |  0.06 |    0 |     4174 |    148.8  |  9.2 |    3.2 | RAW8
|                    tof_ir |   43200 |  180 |  240 |  0.06 |    0 |     4174 |    147.8  |  9.2 |    3.2 | RAW8
|             tracking_down | 1024000 | 1280 |  800 | 12.00 | 1596 |    12457 |    189.0  | 14.6 |  119.8 | RAW8
|       tracking_down_bayer | 1024000 | 1280 |  800 | 12.00 | 1596 |    12459 |    190.2  | 14.9 |  121.8 | RAW8
|   tracking_down_misp_grey | 1024000 | 1280 |  800 | 12.00 | 1596 |    12459 |    189.5  | 14.9 |  121.8 | RAW8
|   tracking_down_misp_norm | 1024000 | 1280 |  800 | 12.00 | 1596 |    12458 |    209.6  | 14.6 |  119.8 | RAW8
|            tracking_front | 1024000 | 1280 |  800 | 12.00 | 1596 |    12492 |    198.6  | 16.5 |  135.5 | RAW8
|      tracking_front_bayer | 1024000 | 1280 |  800 | 12.00 | 1596 |    12491 |    196.6  | 16.5 |  135.5 | RAW8
|  tracking_front_misp_grey | 1024000 | 1280 |  800 | 12.00 | 1596 |    12492 |    177.6  | 16.5 |  135.5 | RAW8
|  tracking_front_misp_norm | 1024000 | 1280 |  800 | 12.00 | 1596 |    12491 |    201.4  | 16.5 |  135.5 | RAW8
ERROR: only read 0 bytes of data, expected 10240000 | 12.00 | 1596 |    12392 |   8
ERROR: only read 0 bytes of data, expected 1024000
```

```
voxl2:~$ voxl-inspect-services 
Scanning services...

 Service Name             |  Enabled  |   Running   |  CPU Usage
-------------------------------------------------------------------
 docker-autorun           | Disabled  | Not Running |  
 modallink-relink         | Disabled  | Not Running |  
 voxl-auto-logger         | Disabled  | Not Running |  
 voxl-camera-server       |  Enabled  |   Running   |   204.0%
 voxl-cpu-monitor         |  Enabled  |   Running   |     0.9%
 voxl-dfs-server          | Disabled  | Not Running |  
 voxl-elrs-startup        | Disabled  | Not Running |  
 voxl-feature-tracker     |  Enabled  |   Running   |    75.7%
 voxl-flow-server         | Disabled  | Not Running |  
 voxl-imu-server          |  Enabled  |   Running   |     3.6%
 voxl-io-server           | Disabled  | Not Running |  
 voxl-lepton-server       |  Enabled  |   Running   |     3.4%
 voxl-lepton-tracker      | Disabled  | Not Running |  
 voxl-logger              | Disabled  | Not Running |  
 voxl-mapper              |  Enabled  |   Running   |     2.2%
 voxl-mavcam-manager      |  Enabled  |   Running   |     0.0%
 voxl-mavlink-server      |  Enabled  |   Running   |     1.8%
 voxl-modem               | Disabled  | Not Running |  
 voxl-open-vins-server    |  Enabled  |   Running   |    29.8%
 voxl-osd                 | Disabled  | Not Running |  
 voxl-portal              |  Enabled  |   Running   |     1.8%
 voxl-px4-imu-server      | Disabled  | Not Running |  
 voxl-px4                 | Disabled  | Not Running |  
 voxl-qvio-server         | Disabled  | Not Running |  
 voxl-rangefinder-server  |  Enabled  | Not Running |  
 voxl-remote-id           | Disabled  | Not Running |  
 voxl-softap              |  Enabled  |  Completed  |  
 voxl-state-estimator     | Disabled  | Not Running |  
 voxl-static-ip           | Disabled  | Not Running |  
 voxl-streamer            |  Enabled  |   Running   |     0.0%
 voxl-tag-detector        | Disabled  | Not Running |  
 voxl-tflite-server       | Disabled  | Not Running |  
 voxl-time-sync           | Disabled  | Not Running |  
 voxl-uvc-server          | Disabled  | Not Running |  
 voxl-vision-hub          |  Enabled  |   Running   |     3.4%
 voxl-vrx                 | Disabled  | Not Running |  
 voxl-vtx                 | Disabled  | Not Running |  
 voxl-wait-for-fs         |  Enabled  |  Completed  |  
```

## Reply by Alex Kushleyev (ModalAI staff) · 2025-04-21 17:28:39 UTC

@Jetson-Nano , it seems you are using cameras that output image resolution of 1280x800 but the calibration files contain information for 640x480 resolution. Wrong calibration files?

Please double check this.

Alex

## Reply by Jetson Nano · 2025-04-21 17:58:29 UTC (in reply to Alex Kushleyev)

@Alex-Kushleyev can you please share the calibration file opencv_tracking_open_intrinsics.yml and  opencv_tracking_down_intrinsics.yml.

## Reply by tom (ModalAI staff) · 2025-04-21 19:37:19 UTC (in reply to Jetson Nano)

@Jetson-Nano Is this a Starling 2 drone that you're using? If so, if you provide the serial number of the drone I can provide the calibration files. If not, you'll have to do the calibration yourself using a calibration card.

## Reply by Jetson Nano · 2025-04-21 20:06:30 UTC (in reply to tom)

@tom Yes I am using the starling 2 drone. I changed the camera modules to the latest cameras with M0173 board.
where will I find the serial number?

## Reply by tom (ModalAI staff) · 2025-04-21 20:29:19 UTC (in reply to Jetson Nano)

@Jetson-Nano The serial number is likely located somewhere on the frame of the drone. Should be on a white sticker and have the form MXX00000XXX

## Reply by tom (ModalAI staff) · 2025-04-22 20:10:48 UTC

@Jetson-Nano oh sorry I missed that you swapped to the M0173 + AR0144s, in that case you will have to recalibrate the cameras yourself as all I have is the original camera calibration which won't match your new setup

## Reply by Jetson Nano · 2025-04-22 20:25:48 UTC (in reply to tom)

@tom @Alex-Kushleyev @Eric-Katzfey 
I calibrated the camera, now i am not getting error while running the qvio-server, but different debug message
```
voxl2:~$ voxl-qvio-server 
loading config file
=================================================================
odr_hz:                           30.000
use_camera_height_bootstrap:      1
camera_height_off_ground_m:        0.085
enable_init_while_moving:         0
cam_imu_timeshift_s:               0.000
cam_imu_timeshift_s_uncertainty:   0.000
T_cam_wrt_imu_uncertainty:         0.001  0.001  0.001
R_cam_to_imu_uncertainty:          0.005  0.005  0.005
accl_fsr_ms2:                     156.000
gyro_fsr_rad:                     34.000
accl_noise_std_dev:                0.316
gyro_noise_std_dev:                0.010
cam_noise_std_dev:                100.000
min_std_pixel_noise:               0.500
fail_high_pixel_noise_points:      1.665
limited_imu_bw_trigger:           25.000
gps_imu_time_alignment_s:          0.000
T_gps_wrt_imu:                     0.000  0.000  0.000
enable_mapping:                   1
enable_gps_vel:                   0
en_auto_reset:                    1
auto_reset_max_velocity:          10.000
auto_reset_max_v_cov_instant:      0.100
auto_reset_max_v_cov:              0.010
auto_reset_max_v_cov_timeout_s:    0.500
auto_reset_min_features:          3
auto_reset_min_feature_timeout_s:  1.000
en_standby_mode:                  1
standby_skip_frames:              1
mask_file_path:                   
vio_cam config:
cam 0:
    enable:                1
    name:                  tracking_front
    pipe_for_preview:      tracking_front
    pipe_for_tracking:     tracking_front_misp_norm
    is_occluded_on_ground: 0
    imu:                   imu_apps
    is_extrinsic_present:  1
    extrinsic cam wrt imu:
    parent:                imu_apps
    child:                 tracking_front
    T_cam_wrt_imu:         0.037   0.000   0.001 
    RPY_imu_to_cam:        0.0    90.0    90.0 
    R_cam_to_imu:          0.000  -0.000   1.000 
                           1.000   0.000  -0.000 
                          -0.000   1.000   0.000 
    cal file:              opencv_tracking_front_intrinsics.yml
    is_cal_present:        1
    cam cal intrinsics:
    width:                 1280
    height:                800
    fx:                    460.295
    fy:                    462.185
    cx:                    635.691
    cy:                    396.209
    n_coeffs:              4
    is_fisheye:            1
    D: 0.0752 -0.0103 0.0157 -0.0074 
=================================================================
existing instance of qvio-server found, attempting to stop it
thread is locked to cores: 4 5 6 7
waiting for imu
waiting for cam
connected to imu server
waiting for cpu_monitor
connected to camera server
Connected to cpu-monitor
Client requested hard reset
WARNING failed to init in time, trying again
WARNING failed to init in time, trying again
Client requested hard reset
WARNING failed to init in time, trying again
Client requested hard reset
Client requested hard reset

```

Still I am not able to get data from voxl-mapper. how can I use the vio data from open-vins-server rather qvio-server
```
voxl2:/$ voxl-mapper 
Loading our own config file
Loading extrinsics config file
existing instance of voxl-mapper found, attempting to stop it
Trying to init tsdf server
created tsdf server
waiting for server at /run/mpa/vvhub_body_wrt_fixed/
waiting for server at /run/mpa/tof
Connected to VIO server
Initializing ESDF structs
Connected to depth pipe
ESDF Thread is now locked to the following cores: 4 5 6
INFO waiting for VIO to start
INFO waiting for VIO to start
INFO waiting for VIO to start
INFO waiting for VIO to start
INFO waiting for VIO to start
```

## Reply by Alex Kushleyev (ModalAI staff) · 2025-04-23 17:02:44 UTC (in reply to Jetson Nano)

@Jetson-Nano , can you please clarify what you are working on? Are you setting single camera QVIO or your custom drone or dual camera Open Vins? Is it a custom drone and have you created correct extrinsic calibration files for the cameras / IMU transforms?

Alex

## Reply by Jetson Nano · 2025-04-24 05:29:39 UTC (in reply to Alex Kushleyev)

@Alex-Kushleyev,  I using voxl2 with M0173 board with camera config 29. 
The errors are now solved, I made the necessary changes and reconfigured every server and pipeline and calibrated the cameras.
