OseongKwon

  • 3 hours ago
  • Joined Mar 25, 2024
  • 0 best answers
    1. multi-cam calibration document guides you through creating an external matrix (R, t) using the checkerboard and the intrinsic matrix.
    2. Calc spatials on host walks through how to use depthframe to compute camera coordinates (X_cam, Y_cam, Z_cam) for an ROI.
    3. Generally, colorframe and depthframe have different sizes and views, and I understand that the rgb-depth aligned document guides how to align the depthframe to the colorframe so that the locations pointed to by each pixel are equivalent.
    4. Usually depthframe is used as Z_cam. The question is, if I align the stereoDepth node to CAM_A, wouldn't each pixel value of depthframe become the Z_cam of CAM_A, i.e. ColorCamera?
    5. If the above assumption is correct, the depthframe will be the Z_cam of CAM_A (i.e. ColorCamera), and using this, we can generate the camera coordinates (X_cam, Y_cam, Z_cam) for CAM_A according to method 2, and then generate the world coordinates (X, Y, Z) using the external matrix of CAM_A generated by method 1, right?
    6. If the above assumption is wrong and the depthframe still represents the Z_cam of CAM_C (default), then we need to use some method to map the BBox information detected by the colorframe to the depthframe. How should we do this?
    • I want to use OAK-D Pro PoE and YOLOv8 or 9 instance segmentation model to detect metal cubes:

      1. Detect objects using ColorCamera

      2. Calculate world coordinates using depthFrame of monoCameras.

      To achieve this goal, I referred to the following documents.

      ## depthAI Reference Documents

      1. multi-cam calibration

      • estimate extrinsics["cam_to_world"] using colorCamera intrinsic_mat @ (3840, 2160)

      • **intrinsic_mat is dependent of camera resolution.**

      2. Calc spatials on host

      • extrac HFOV in dai.CameraBoardSocket.CAM_C.

      • estimate [X{cam}, Y{cam}, Z_{cam}] using depthFrame.

      • **HFOV is independent of camera resolution.**

      3. rgb-depth aligned

      • set same resolution of colorCamera, monoCameras with 720P.

      • but colorCamera can't support 720P resolution, so setted 1080P

      • stereo DepthAlign to rgbCamSocket.

      • all cameras resolution has setted 1080P

      4. YOLO Segment & Depth | OAK-D Pro PoE

      ## Developement Plan and Question

      1. cameraPose.py generate extrinsics["cam_to_world"] with checkerboard.

      • get and save extrinsics["cam_to_world"]

      • but about What camera, ColorCamera or MonoCamera intrinsic_mat ?

      • and What resolution is setted 1080P, 720P ?

      • Or stereo's rectifiedRight or syncedRight in the same pipeline as main.py's pipeline?

      2. main.py detect and estimate world coordinates.

      • host detect cube using rgbFrame.

        • then I can use any size, any resolution model images of model input.
      • Get postprocessed depth with stereo DepthAlign to rgbCamSocket

        • but when we have got extrinsics["cam_to_world"] for CAM_C

        • Doesn't stereo DepthAlign affect extrinsics["cam_to_world"] matrix?

        • If I set depthAlign to CAM_A in stereoDepth, does the depth information become Z_cam of ColorCamers?

      • Estimate camera cooordinates using depthFrame, BBox, segementation mask.

      • Finally, camera coords are converted to world coords using extrinsics["cam_to_world"].

      Are there any additional issues that need to be carefully considered in the above plan?

      • jakaskerl
        1. The same problem is observed at 4~5 shaves.
        2. The detection capability decreases when the resolution is lowered.
        current resolution is 640x480.

        • when running the NN model on OAK-D, this color conversion needs to be performed. To do this,

          - Add the --reverse option when converting the blob,

          - Or add cam.setColorOrder(dai.ColorCameraProperties.ColorOrder.RGB)

          in the ColorCamera node.

          If you look at the example luxonis/depthai-experimentsblob/master/gen2-yolo/yolo-segmentation,

          there is no typical guidance on this. this is also a problem with the example.

        • I have an additional question.

          The default ColorOrder of the ColorCamera node is BGR, and the default color order when training the YOLO model is RGB.

          Therefore, when running the NN model on OAK-D, this color conversion needs to be performed. To do this,

          - Add the --reverse option when converting the blob,

          - Add cam.setColorOrder(dai.ColorCameraProperties.ColorOrder.RGB)

          in the ColorCamera node.

          If you look at the example luxonis/depthai-experimentsblob/master/gen2-yolo/yolo-segmentation,

          there is no typical guidance on this. Is this also a problem with the example?

          • Is EEPROM available: True

            User calibration: {

            "batchName": "",

            "batchTime": 1710401925,

            "boardConf": "IR-C00M00-00",

            "boardCustom": "",

            "boardName": "NG9097",

            "boardOptions": 7,

            "boardRev": "R4M2E4",

            "cameraData": [

            [
            
              1,
            
              {
            
                "cameraType": 0,
            
                "distortionCoeff": [
            
                  20\.86638641357422,
            
                  -32.677059173583984,
            
                  -0.0002762333897408098,
            
                  -0.0008607649360783398,
            
                  15\.335541725158691,
            
                  20\.334741592407227,
            
                  -31.194011688232422,
            
                  14\.251194953918457,
            
                  0\.0,
            
                  0\.0,
            
                  0\.0,
            
                  0\.0,
            
                  0\.0,
            
                  0\.0
            
                ],
            
                "extrinsics": {
            
                  "rotationMatrix": [
            
                    [
            
                      0\.999829888343811,
            
                      -0.006931177340447903,
            
                      -0.017091378569602966
            
                    ],
            
                    [
            
                      0\.0070127686485648155,
            
                      0\.9999642968177795,
            
                      0\.004718527663499117
            
                    ],
            
                    [
            
                      0\.01705806329846382,
            
                      -0.004837582819163799,
            
                      0\.9998428225517273
            
                    ]
            
                  ],
            
                  "specTranslation": {
            
                    "x": -7.5,
            
                    "y": 0.0,
            
                    "z": 0.0
            
                  },
            
                  "toCameraSocket": 2,
            
                  "translation": {
            
                    "x": -7.534882545471191,
            
                    "y": -0.013073663227260113,
            
                    "z": -0.05111880972981453
            
                  }
            
                },
            
                "height": 800,
            
                "intrinsicMatrix": [
            
                  [
            
                    793\.994384765625,
            
                    0\.0,
            
                    657\.1808471679688
            
                  ],
            
                  [
            
                    0\.0,
            
                    794\.08935546875,
            
                    413\.32696533203125
            
                  ],
            
                  [
            
                    0\.0,
            
                    0\.0,
            
                    1\.0
            
                  ]
            
                ],
            
                "lensPosition": 0,
            
                "specHfovDeg": 71.86000061035156,
            
                "width": 1280
            
              }
            
            ],
            
            [
            
              0,
            
              {
            
                "cameraType": 0,
            
                "distortionCoeff": [
            
                  4\.001035690307617,
            
                  -66.9148941040039,
            
                  0\.0006743997801095247,
            
                  8\.637108840048313e-05,
            
                  172\.0369873046875,
            
                  3\.8029394149780273,
            
                  -65.56036376953125,
            
                  169\.28741455078125,
            
                  0\.0,
            
                  0\.0,
            
                  0\.0,
            
                  0\.0,
            
                  0\.0,
            
                  0\.0
            
                ],
            
                "extrinsics": {
            
                  "rotationMatrix": [
            
                    [
            
                      0\.0,
            
                      0\.0,
            
                      0\.0
            
                    ],
            
                    [
            
                      0\.0,
            
                      0\.0,
            
                      0\.0
            
                    ],
            
                    [
            
                      0\.0,
            
                      0\.0,
            
                      0\.0
            
                    ]
            
                  ],
            
                  "specTranslation": {
            
                    "x": -0.0,
            
                    "y": -0.0,
            
                    "z": -0.0
            
                  },
            
                  "toCameraSocket": -1,
            
                  "translation": {
            
                    "x": 0.0,
            
                    "y": 0.0,
            
                    "z": 0.0
            
                  }
            
                },
            
                "height": 2160,
            
                "intrinsicMatrix": [
            
                  [
            
                    3108\.88037109375,
            
                    0\.0,
            
                    1885\.7392578125
            
                  ],
            
                  [
            
                    0\.0,
            
                    3108\.602783203125,
            
                    1121\.79638671875
            
                  ],
            
                  [
            
                    0\.0,
            
                    0\.0,
            
                    1\.0
            
                  ]
            
                ],
            
                "lensPosition": 0,
            
                "specHfovDeg": 68.7938003540039,
            
                "width": 3840
            
              }
            
            ],
            
            [
            
              2,
            
              {
            
                "cameraType": 0,
            
                "distortionCoeff": [
            
                  24\.113489151000977,
            
                  -35.388832092285156,
            
                  0\.000587688758969307,
            
                  -0.00025205861311405897,
            
                  16\.566253662109375,
            
                  23\.496505737304688,
            
                  -33.61455535888672,
            
                  15\.26012897491455,
            
                  0\.0,
            
                  0\.0,
            
                  0\.0,
            
                  0\.0,
            
                  0\.0,
            
                  0\.0
            
                ],
            
                "extrinsics": {
            
                  "rotationMatrix": [
            
                    [
            
                      0\.9998281002044678,
            
                      -0.016366522759199142,
            
                      0\.008714594878256321
            
                    ],
            
                    [
            
                      0\.016420133411884308,
            
                      0\.9998464584350586,
            
                      -0.006116184405982494
            
                    ],
            
                    [
            
                      -0.008613156154751778,
            
                      0\.006258227862417698,
            
                      0\.9999433159828186
            
                    ]
            
                  ],
            
                  "specTranslation": {
            
                    "x": 3.75,
            
                    "y": 0.0,
            
                    "z": 0.0
            
                  },
            
                  "toCameraSocket": 0,
            
                  "translation": {
            
                    "x": 3.7715814113616943,
            
                    "y": 0.072788767516613,
            
                    "z": 0.188406839966774
            
                  }
            
                },
            
                "height": 800,
            
                "intrinsicMatrix": [
            
                  [
            
                    797\.4026489257812,
            
                    0\.0,
            
                    618\.6478271484375
            
                  ],
            
                  [
            
                    0\.0,
            
                    797\.1689453125,
            
                    395\.1148986816406
            
                  ],
            
                  [
            
                    0\.0,
            
                    0\.0,
            
                    1\.0
            
                  ]
            
                ],
            
                "lensPosition": 0,
            
                "specHfovDeg": 71.86000061035156,
            
                "width": 1280
            
              }
            
            ]

            ],

            "deviceName": "",

            "hardwareConf": "F1-FV00-BC001",

            "housingExtrinsics": {

            "rotationMatrix": [],
            
            "specTranslation": {
            
              "x": 0.0,
            
              "y": 0.0,
            
              "z": 0.0
            
            },
            
            "toCameraSocket": -1,
            
            "translation": {
            
              "x": 0.0,
            
              "y": 0.0,
            
              "z": 0.0
            
            }

            },

            "imuExtrinsics": {

            "rotationMatrix": [
            
              [
            
                0\.0,
            
                0\.0,
            
                0\.0
            
              ],
            
              [
            
                0\.0,
            
                0\.0,
            
                0\.0
            
              ],
            
              [
            
                0\.0,
            
                0\.0,
            
                0\.0
            
              ]
            
            ],
            
            "specTranslation": {
            
              "x": 0.0,
            
              "y": 0.0,
            
              "z": 0.0
            
            },
            
            "toCameraSocket": -1,
            
            "translation": {
            
              "x": 0.0,
            
              "y": 0.0,
            
              "z": 0.0
            
            }

            },

            "miscellaneousData": [],

            "productName": "OAK-D-PRO-POE-FF",

            "stereoEnableDistortionCorrection": true,

            "stereoRectificationData": {

            "leftCameraSocket": 1,
            
            "rectifiedRotationLeft": [
            
              [
            
                0\.9999333024024963,
            
                -0.005228845402598381,
            
                -0.01029971893876791
            
              ],
            
              [
            
                0\.005253393203020096,
            
                0\.9999834299087524,
            
                0\.0023576999083161354
            
              ],
            
              [
            
                0\.010287219658493996,
            
                -0.0024116511922329664,
            
                0\.9999441504478455
            
              ]
            
            ],
            
            "rectifiedRotationRight": [
            
              [
            
                0\.9999755024909973,
            
                0\.0017350426642224193,
            
                0\.006784121040254831
            
              ],
            
              [
            
                -0.0017188594210892916,
            
                0\.9999956488609314,
            
                -0.0023905604612082243
            
              ],
            
              [
            
                -0.006788239348679781,
            
                0\.0023788409307599068,
            
                0\.9999741315841675
            
              ]
            
            ],
            
            "rightCameraSocket": 2

            },

            "stereoUseSpecTranslation": false,

            "version": 7,

            "verticalCameraSocket": -1

            }

            Factory calibration: {

            "batchName": "",

            "batchTime": 1710401925,

            "boardConf": "IR-C00M00-00",

            "boardCustom": "",

            "boardName": "NG9097",

            "boardOptions": 7,

            "boardRev": "R4M2E4",

            "cameraData": [

            [
            
              1,
            
              {
            
                "cameraType": 0,
            
                "distortionCoeff": [
            
                  20\.86638641357422,
            
                  -32.677059173583984,
            
                  -0.0002762333897408098,
            
                  -0.0008607649360783398,
            
                  15\.335541725158691,
            
                  20\.334741592407227,
            
                  -31.194011688232422,
            
                  14\.251194953918457,
            
                  0\.0,
            
                  0\.0,
            
                  0\.0,
            
                  0\.0,
            
                  0\.0,
            
                  0\.0
            
                ],
            
                "extrinsics": {
            
                  "rotationMatrix": [
            
                    [
            
                      0\.999829888343811,
            
                      -0.006931177340447903,
            
                      -0.017091378569602966
            
                    ],
            
                    [
            
                      0\.0070127686485648155,
            
                      0\.9999642968177795,
            
                      0\.004718527663499117
            
                    ],
            
                    [
            
                      0\.01705806329846382,
            
                      -0.004837582819163799,
            
                      0\.9998428225517273
            
                    ]
            
                  ],
            
                  "specTranslation": {
            
                    "x": -7.5,
            
                    "y": 0.0,
            
                    "z": 0.0
            
                  },
            
                  "toCameraSocket": 2,
            
                  "translation": {
            
                    "x": -7.534882545471191,
            
                    "y": -0.013073663227260113,
            
                    "z": -0.05111880972981453
            
                  }
            
                },
            
                "height": 800,
            
                "intrinsicMatrix": [
            
                  [
            
                    793\.994384765625,
            
                    0\.0,
            
                    657\.1808471679688
            
                  ],
            
                  [
            
                    0\.0,
            
                    794\.08935546875,
            
                    413\.32696533203125
            
                  ],
            
                  [
            
                    0\.0,
            
                    0\.0,
            
                    1\.0
            
                  ]
            
                ],
            
                "lensPosition": 0,
            
                "specHfovDeg": 71.86000061035156,
            
                "width": 1280
            
              }
            
            ],
            
            [
            
              0,
            
              {
            
                "cameraType": 0,
            
                "distortionCoeff": [
            
                  4\.001035690307617,
            
                  -66.9148941040039,
            
                  0\.0006743997801095247,
            
                  8\.637108840048313e-05,
            
                  172\.0369873046875,
            
                  3\.8029394149780273,
            
                  -65.56036376953125,
            
                  169\.28741455078125,
            
                  0\.0,
            
                  0\.0,
            
                  0\.0,
            
                  0\.0,
            
                  0\.0,
            
                  0\.0
            
                ],
            
                "extrinsics": {
            
                  "rotationMatrix": [
            
                    [
            
                      0\.0,
            
                      0\.0,
            
                      0\.0
            
                    ],
            
                    [
            
                      0\.0,
            
                      0\.0,
            
                      0\.0
            
                    ],
            
                    [
            
                      0\.0,
            
                      0\.0,
            
                      0\.0
            
                    ]
            
                  ],
            
                  "specTranslation": {
            
                    "x": -0.0,
            
                    "y": -0.0,
            
                    "z": -0.0
            
                  },
            
                  "toCameraSocket": -1,
            
                  "translation": {
            
                    "x": 0.0,
            
                    "y": 0.0,
            
                    "z": 0.0
            
                  }
            
                },
            
                "height": 2160,
            
                "intrinsicMatrix": [
            
                  [
            
                    3108\.88037109375,
            
                    0\.0,
            
                    1885\.7392578125
            
                  ],
            
                  [
            
                    0\.0,
            
                    3108\.602783203125,
            
                    1121\.79638671875
            
                  ],
            
                  [
            
                    0\.0,
            
                    0\.0,
            
                    1\.0
            
                  ]
            
                ],
            
                "lensPosition": 0,
            
                "specHfovDeg": 68.7938003540039,
            
                "width": 3840
            
              }
            
            ],
            
            [
            
              2,
            
              {
            
                "cameraType": 0,
            
                "distortionCoeff": [
            
                  24\.113489151000977,
            
                  -35.388832092285156,
            
                  0\.000587688758969307,
            
                  -0.00025205861311405897,
            
                  16\.566253662109375,
            
                  23\.496505737304688,
            
                  -33.61455535888672,
            
                  15\.26012897491455,
            
                  0\.0,
            
                  0\.0,
            
                  0\.0,
            
                  0\.0,
            
                  0\.0,
            
                  0\.0
            
                ],
            
                "extrinsics": {
            
                  "rotationMatrix": [
            
                    [
            
                      0\.9998281002044678,
            
                      -0.016366522759199142,
            
                      0\.008714594878256321
            
                    ],
            
                    [
            
                      0\.016420133411884308,
            
                      0\.9998464584350586,
            
                      -0.006116184405982494
            
                    ],
            
                    [
            
                      -0.008613156154751778,
            
                      0\.006258227862417698,
            
                      0\.9999433159828186
            
                    ]
            
                  ],
            
                  "specTranslation": {
            
                    "x": 3.75,
            
                    "y": 0.0,
            
                    "z": 0.0
            
                  },
            
                  "toCameraSocket": 0,
            
                  "translation": {
            
                    "x": 3.7715814113616943,
            
                    "y": 0.072788767516613,
            
                    "z": 0.188406839966774
            
                  }
            
                },
            
                "height": 800,
            
                "intrinsicMatrix": [
            
                  [
            
                    797\.4026489257812,
            
                    0\.0,
            
                    618\.6478271484375
            
                  ],
            
                  [
            
                    0\.0,
            
                    797\.1689453125,
            
                    395\.1148986816406
            
                  ],
            
                  [
            
                    0\.0,
            
                    0\.0,
            
                    1\.0
            
                  ]
            
                ],
            
                "lensPosition": 0,
            
                "specHfovDeg": 71.86000061035156,
            
                "width": 1280
            
              }
            
            ]

            ],

            "deviceName": "",

            "hardwareConf": "F1-FV00-BC001",

            "housingExtrinsics": {

            "rotationMatrix": [],
            
            "specTranslation": {
            
              "x": 0.0,
            
              "y": 0.0,
            
              "z": 0.0
            
            },
            
            "toCameraSocket": -1,
            
            "translation": {
            
              "x": 0.0,
            
              "y": 0.0,
            
              "z": 0.0
            
            }

            },

            "imuExtrinsics": {

            "rotationMatrix": [
            
              [
            
                0\.0,
            
                0\.0,
            
                0\.0
            
              ],
            
              [
            
                0\.0,
            
                0\.0,
            
                0\.0
            
              ],
            
              [
            
                0\.0,
            
                0\.0,
            
                0\.0
            
              ]
            
            ],
            
            "specTranslation": {
            
              "x": 0.0,
            
              "y": 0.0,
            
              "z": 0.0
            
            },
            
            "toCameraSocket": -1,
            
            "translation": {
            
              "x": 0.0,
            
              "y": 0.0,
            
              "z": 0.0
            
            }

            },

            "miscellaneousData": [],

            "productName": "OAK-D-PRO-POE-FF",

            "stereoEnableDistortionCorrection": true,

            "stereoRectificationData": {

            "leftCameraSocket": 1,
            
            "rectifiedRotationLeft": [
            
              [
            
                0\.9999333024024963,
            
                -0.005228845402598381,
            
                -0.01029971893876791
            
              ],
            
              [
            
                0\.005253393203020096,
            
                0\.9999834299087524,
            
                0\.0023576999083161354
            
              ],
            
              [
            
                0\.010287219658493996,
            
                -0.0024116511922329664,
            
                0\.9999441504478455
            
              ]
            
            ],
            
            "rectifiedRotationRight": [
            
              [
            
                0\.9999755024909973,
            
                0\.0017350426642224193,
            
                0\.006784121040254831
            
              ],
            
              [
            
                -0.0017188594210892916,
            
                0\.9999956488609314,
            
                -0.0023905604612082243
            
              ],
            
              [
            
                -0.006788239348679781,
            
                0\.0023788409307599068,
            
                0\.9999741315841675
            
              ]
            
            ],
            
            "rightCameraSocket": 2

            },

            "stereoUseSpecTranslation": false,

            "version": 7,

            "verticalCameraSocket": -1

            }

            User calibration raw: [7, 0, 170, 85, 3, 0, 0, 0, 0, 78, 71, 57, 48, 57, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 52, 77, 50, 69, 52, 0, 0, 0, 0, 161, 251, 127, 63, 188, 86, 171, 187, 39, 192, 40, 188, 168, 36, 172, 59, 234, 254, 127, 63, 164, 131, 26, 59, 186, 139, 40, 60, 203, 12, 30, 187, 87, 252, 127, 63, 101, 254, 127, 63, 95, 106, 227, 58, 85, 77, 222, 59, 90, 75, 225, 186, 183, 255, 127, 63, 243, 170, 28, 187, 225, 111, 222, 187, 84, 230, 27, 59, 78, 254, 127, 63, 1, 2, 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, 255, 112, 8, 0, 15, 0, 22, 78, 66, 69, 0, 0, 0, 0, 168, 183, 235, 68, 0, 0, 0, 0, 165, 73, 66, 69, 124, 57, 140, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 63, 124, 8, 128, 64, 109, 212, 133, 194, 52, 202, 48, 58, 32, 34, 181, 56, 120, 9, 44, 67, 92, 99, 115, 64, 232, 30, 131, 194, 148, 73, 41, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 150, 137, 66, 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, 255, 32, 3, 0, 5, 0, 197, 89, 71, 68, 0, 0, 0, 0, 118, 169, 26, 68, 0, 0, 0, 0, 208, 74, 71, 68, 181, 142, 197, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 63, 109, 232, 192, 65, 42, 142, 13, 194, 32, 15, 26, 58, 188, 38, 132, 185, 176, 135, 132, 65, 216, 248, 187, 65, 78, 117, 6, 194, 125, 41, 116, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 184, 143, 66, 0, 2, 188, 244, 127, 63, 22, 19, 134, 188, 169, 199, 14, 60, 132, 131, 134, 60, 240, 245, 127, 63, 70, 106, 200, 187, 50, 30, 13, 188, 210, 17, 205, 59, 73, 252, 127, 63, 151, 97, 113, 64, 71, 18, 149, 61, 185, 237, 64, 62, 0, 0, 112, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 3, 0, 5, 0, 164, 127, 70, 68, 0, 0, 0, 0, 147, 75, 36, 68, 0, 0, 0, 0, 184, 133, 70, 68, 218, 169, 206, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 63, 92, 238, 166, 65, 79, 181, 2, 194, 107, 211, 144, 185, 245, 164, 97, 186, 97, 94, 117, 65, 141, 173, 162, 65, 86, 141, 249, 193, 229, 4, 100, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 184, 143, 66, 0, 1, 218, 244, 127, 63, 238, 30, 227, 187, 56, 3, 140, 188, 94, 203, 229, 59, 169, 253, 127, 63, 225, 157, 154, 59, 90, 189, 139, 60, 150, 132, 158, 187, 179, 245, 127, 63, 194, 29, 241, 192, 235, 50, 86, 188, 245, 97, 81, 189, 0, 0, 240, 192, 0, 0, 0, 0, 0, 0, 0, 0, 2, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 79, 65, 75, 45, 68, 45, 80, 82, 79, 45, 80, 79, 69, 45, 70, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 82, 45, 67, 48, 48, 77, 48, 48, 45, 48, 48, 0, 0, 0, 0, 70, 49, 45, 70, 86, 48, 48, 45, 66, 67, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 169, 242, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 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, 0, 255, 255, 3, 255]

            Factory calibration raw: [7, 0, 170, 85, 3, 0, 0, 0, 0, 78, 71, 57, 48, 57, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 52, 77, 50, 69, 52, 0, 0, 0, 0, 161, 251, 127, 63, 188, 86, 171, 187, 39, 192, 40, 188, 168, 36, 172, 59, 234, 254, 127, 63, 164, 131, 26, 59, 186, 139, 40, 60, 203, 12, 30, 187, 87, 252, 127, 63, 101, 254, 127, 63, 95, 106, 227, 58, 85, 77, 222, 59, 90, 75, 225, 186, 183, 255, 127, 63, 243, 170, 28, 187, 225, 111, 222, 187, 84, 230, 27, 59, 78, 254, 127, 63, 1, 2, 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, 255, 112, 8, 0, 15, 0, 22, 78, 66, 69, 0, 0, 0, 0, 168, 183, 235, 68, 0, 0, 0, 0, 165, 73, 66, 69, 124, 57, 140, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 63, 124, 8, 128, 64, 109, 212, 133, 194, 52, 202, 48, 58, 32, 34, 181, 56, 120, 9, 44, 67, 92, 99, 115, 64, 232, 30, 131, 194, 148, 73, 41, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 150, 137, 66, 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, 255, 32, 3, 0, 5, 0, 197, 89, 71, 68, 0, 0, 0, 0, 118, 169, 26, 68, 0, 0, 0, 0, 208, 74, 71, 68, 181, 142, 197, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 63, 109, 232, 192, 65, 42, 142, 13, 194, 32, 15, 26, 58, 188, 38, 132, 185, 176, 135, 132, 65, 216, 248, 187, 65, 78, 117, 6, 194, 125, 41, 116, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 184, 143, 66, 0, 2, 188, 244, 127, 63, 22, 19, 134, 188, 169, 199, 14, 60, 132, 131, 134, 60, 240, 245, 127, 63, 70, 106, 200, 187, 50, 30, 13, 188, 210, 17, 205, 59, 73, 252, 127, 63, 151, 97, 113, 64, 71, 18, 149, 61, 185, 237, 64, 62, 0, 0, 112, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 3, 0, 5, 0, 164, 127, 70, 68, 0, 0, 0, 0, 147, 75, 36, 68, 0, 0, 0, 0, 184, 133, 70, 68, 218, 169, 206, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 63, 92, 238, 166, 65, 79, 181, 2, 194, 107, 211, 144, 185, 245, 164, 97, 186, 97, 94, 117, 65, 141, 173, 162, 65, 86, 141, 249, 193, 229, 4, 100, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 184, 143, 66, 0, 1, 218, 244, 127, 63, 238, 30, 227, 187, 56, 3, 140, 188, 94, 203, 229, 59, 169, 253, 127, 63, 225, 157, 154, 59, 90, 189, 139, 60, 150, 132, 158, 187, 179, 245, 127, 63, 194, 29, 241, 192, 235, 50, 86, 188, 245, 97, 81, 189, 0, 0, 240, 192, 0, 0, 0, 0, 0, 0, 0, 0, 2, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 79, 65, 75, 45, 68, 45, 80, 82, 79, 45, 80, 79, 69, 45, 70, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 82, 45, 67, 48, 48, 77, 48, 48, 45, 48, 48, 0, 0, 0, 0, 70, 49, 45, 70, 86, 48, 48, 45, 66, 67, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 169, 242, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 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, 0, 255, 255, 3, 255]

            • PoE, USB all cameras are same with

              d.getCameraSensorNames()
              {<CameraBoardSocket.CAM_C: 2>: 'OV9282',
              <CameraBoardSocket.CAM_A: 0>: 'IMX378',
              <CameraBoardSocket.CAM_B: 1>: 'OV9282'}

              • I've test OAK-D Pro PoE with tirandazi/depthai-yolov8-segment code.
                I created a separate model that learns only two classes from the basic YOLOv8s_seg model, created onnx and blob files, and ran this model after modifying some shape and class information using the github code mentioned above, but the following error occurred.

                ```

                PS C:\Users\great\OneDrive\Documents\ITman\OAK_D\depthai-yolov8-segment-main>
                & C:/Users/great/anaconda3/envs/py310/python.exe c:/Users/great/OneDrive/Documents/ITman/OAK_D/depthai-yolov8-segment-main/main.py
                
                Color cam resolution:  (1280, 800)
                Left cam resolution:  (1280, 800)
                Right cam resolution:  (1280, 800)
                [18443010E103F7F400] [192.168.0.102] [6.110] [ColorCamera(4)] [warning] Unsupported resolution set for detected camera IMX378/214, needs 1080_P / 4_K / 12_MP. Defaulting to 1080_P
                [18443010E103F7F400] [192.168.0.102] [6.161] [NeuralNetwork(3)] [warning] Network compiled for 6 shaves, maximum available 10, compiling for 5 shaves likely will yield in better performance
                [18443010E103F7F400] [192.168.0.102] [6.670] [StereoDepth(5)] [error] Stereo rectification error: 1, trying to recover.
                [18443010E103F7F400] [192.168.0.102] [6.670] [StereoDepth(5)] [error] Stereo alignment error: 1, trying to recover.
                [18443010E103F7F400] [192.168.0.102] [1732086905.791] [host] [warning] Monitor thread (device: 18443010E103F7F400 [192.168.0.102]) - ping was missed, closing the device connection
                [2024-11-20 16:17:22.877] [depthai] [error] Device with id 18443010E103F7F400 has crashed. Crash dump logs are stored in: C:\Users\great\OneDrive\Documents\ITman\OAK_D\depthai-yolov8-segment-main\.cache\depthai\crashdumps\b4f6dd7b65d6361d04e08fb19ae9f6f2814ae31d\crash_dump.json - please report to developers.

                So I use OAK-D Pro with usb-c type interface for comparison and I don't find any problem log at all.

                I need to use PoE, how should I do it?

                • jakaskerl
                  When the internal space is 7m x 7m x 7m,

                  Would it be appropriate for us to estimate the camera's pose (R, t) using a chessboard for distance estimation? If appropriate, how big should the chessboard be?

                  If it's difficult, should I hire a surveyor?

                • In an environment like the picture below, I want to convert the target's camera coordinates Pc, measured with the oak-d camera, into world coordinates Pw and transmit them to the robot.

                  At this time, we need to know R and t to change it to world coordinates. At this time, the allowable error in world coordinates is about 5 to 10 cm.

                  Therefore, the accuracy of R and t is important.

                  Therefore, I would like to get answers to several questions below.

                  1. What is the rotation axis of the rotation verector (quaternion) that can be obtained from the IMU?

                  2. Is it possible to change the rotation axis to be as similar to world coordinates as possible?

                  3. What is the accuracy or tolerance of quaternion values ​​for a camera in a fixed position?

                  4. Is calibration of the IMU required, if necessary? What is the correction method?

                  4. In order to accurately measure t, I need to accurately measure the camera's position coordinates from the origin I specify. Which point on the camera (or which designation behind the camera) should be measured as the camera's position?

                  I own oak-d cameras:

                  1. OAK-D Pro PoE

                  2. OAK-D Pro

                  3. OAK-D SR

                  Please let us know if you have any other information necessary for the success of the project.

                  • jakaskerl replied to this.
                  • OseongKwon What is the rotation axis of the rotation verector (quaternion) that can be obtained from the IMU?

                    From the datasheet: The rotation vector provides an orientation output that is expressed as a quaternion referenced to magnetic north
                    and gravity.
                    [source]

                    OseongKwon Is it possible to change the rotation axis to be as similar to world coordinates as possible?

                    Only through post transformations.

                    OseongKwon 3. What is the accuracy or tolerance of quaternion values ​​for a camera in a fixed position?

                    Best to check the datasheet. It has the info.

                    OseongKwon In order to accurately measure t, I need to accurately measure the camera's position coordinates from the origin I specify. Which point on the camera (or which designation behind the camera) should be measured as the camera's position?

                    Why not just calibrate it with a chessboard? I should solve all your problems. luxonis/depthai-experimentstree/master/gen2-multiple-devices/multi-cam-calibration <-- has a calibration script.

                    Thanks,
                    Jaka

                  • The values ​​of my OAK-D Pro PoE device's intrinsic matrix are shown below:

                    cams = {'RGB':'CAM_A', 'LEFT':'CAM_B', 'RIGHT':'CAM_C'}
                    for k in cams.keys():
                        inP = cal.getCameraIntrinsics(eval(f'dai.CameraBoardSocket.{cams[k]}'))
                        print(f'{k} camera focal legnth X in pixels: {inP[0][0]}')
                        print(f'{k} camera focal legnth Y in pixels: {inP[1][1]}')
                    RGB camera focal legnth X in pixels: 3108.88037109375
                    RGB camera focal legnth Y in pixels: 3108.602783203125
                    LEFT camera focal legnth X in pixels: 793.994384765625
                    LEFT camera focal legnth Y in pixels: 794.08935546875
                    RIGHT camera focal legnth X in pixels: 797.4026489257812
                    RIGHT camera focal legnth Y in pixels: 797.1689453125

                    Is this normal?

                  • another miss notation

                    @ https://docs.luxonis.com/projects/api/en/latest/references/python/#depthai.CalibrationHandler.getCameraIntrinsics

                    Matrix representation of intrinsic matrix f[ text{Intrinsic Matrix} = left [ begin{matrix} f_x & 0 & c_x \ 0 & f_y & c_y \ 0 & 0 & 1 end{matrix} right ] f]

                    => Matrix representation of intrinsic matrix :
                    $$ \text{Intrinsic Matrix} = \left [ \begin{matrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{matrix} \right] $$

                  • erik

                    1. Is there any way to check new calibrated state?
                    1. you say "we are now proud to announce that starting in March 2024, stereo cameras shipped from Luxonis will be implemented with a next generation calibration procedure that delivers much better accuracy than our old generation. Please note that fortunately the performance is not hardware limited so existing devices can be recalibrated."

                      So, can you replace the device with a freshly calibrated one?

                    2. Is there any difference between the reference site you suggested for manual recalibration and the site below?
                      https://docs.luxonis.com/projects/hardware/en/latest/pages/guides/calibration/

                  • BradleyDillon

                    I have an OAK-D Pro PoE FF product.

                    The casting date is March 7th, 2024 and the delivery date is March 8th.

                    Installed flashed bootloader version is 0.0.22, but newest is 0.0.26.
                    - Should I update my bootloader?

                    - What additional work will be needed on the calibration data if I update it?

                    The MxID is 184430108145A20F00. Has improved calibration been done for this product?

                    Is there any way to check this?

                  • https://docs.luxonis.com/projects/api/en/latest/components/device/

                    ...
                    getInputQueue(self: depthai.Device, name: str, maxSize: int, blocking: bool = True) -> depthai.DataInputQueue
                    
                    Gets an input queue corresponding to stream name. If it doesn’t exist it throws. Also sets queue options
                    
                    Parameter name:
                    Queue/stream name, set in XLinkOut node
                    ...

                    XlinkIn not XLinkOut