• Calibration questions

I am struggling with calibration and had a few more questions.

  1. Some of the polygons for the calibration appear impossible; the script does not redraw the polygon based on data from the boardconfig file which provides camera locations. It seems like both polygon shape and size would need to change based on baseline and certainly based on camera order (color, left right ought to be different than left, color right). Does location really matter or are you just trying to get enough images in very different orientations to let the algorithms sort it out? If it does matter, do you have figures of the poses/locations? Does even more images lower epipolar error?
  2. I am running the latest released code and get quite a few -mst errors (up to a 0.5s). I am connected to OAK-D 4 FFC PoE via a TRENDnet 2.5GPoE switch. Nothing else is on the network, everything is running at 1G and there are no fire walls. The switch adds around 2us of latency during traffic tests. What would cause this? If this parameter only ensures samples are closely grouped to eliminate motion errors, it would be helpful to just toss the bad frames and report why like the checker board not seen error versus halting the calibration and forcing restart. (I am using OV9282 pair with AR0234, no external sync yet)
  3. There are a number of Xlink communication errors with the rgb camera. Power to the board looks clean. The SW displays a warning about using the AR0234 with OV9282 not being fully supported, should this be expected?

Thank you.

    Hi bob

    bob Does location really matter or are you just trying to get enough images in very different orientations to let the algorithms sort it out?

    Yep. More images means more data for the algorithm and usually means lower epipolar errror yes.

    cc @erik

    Thanks,
    Jaka

    Hi @bob ,

    1. Polygons aren't really necessary to follow, they are more of a guide, not the rule. We are working on updating calibration docs (PR here), and I'd suggest following that instead.
    2. Our cameras are 1gbps or lower, so 2.5gbps wouldn't work. I am not sure what you mean with The switch adds around 2us of latency during traffic tests - is that seconds or microseconds?
    3. Could you share the error logs of these?

    Thank you for the responses. The switch adds about 2 microseconds and is 2.5gigabitpersecond so it is only limited by the speed of the OAK-D 4 FFC card. Typically it just says error communicating with rgb camera and the timing errors are also from the rgb camera and show delay times increasing to up to a 0.5s. I will paste in a detailed error log when I run it tomorrow; is there a way to run the calibration in debug mode or get more information when it fails than just the likely not terribly helpful increasing time stamps/Xlink communication with rgb camera failed message?

    Here is an example of the increasing timestamps; trace= 10. ts is sometimes >0.5s; decreasing the time between captures sometimes makes it worse but it can still occur when spaced minutes apart.

    py: Saved image as: dataset\right\right_p2_6.png

    Status of right is True

    Start capturing...

    new minimum: {'ts': 0.19998200000000033, 'indicies': {'rgb': 0, 'left': 0, 'right': 0}} min required: 0.1

    new minimum: {'ts': 0.20850499999999705, 'indicies': {'rgb': 0, 'left': 0, 'right': 0}} min required: 0.1

    new minimum: {'ts': 0.19215599999999888, 'indicies': {'rgb': 0, 'left': 0, 'right': 0}} min required: 0.1

    new minimum: {'ts': 0.10017499999999657, 'indicies': {'rgb': 3, 'left': 3, 'right': 3}} min required: 0.1

    new minimum: {'ts': 0.199955000000001, 'indicies': {'rgb': 0, 'left': 0, 'right': 0}} min required: 0.1

    new minimum: {'ts': 0.10017499999999657, 'indicies': {'rgb': 2, 'left': 2, 'right': 2}} min required: 0.1

    new minimum: {'ts': 0.1999569999999995, 'indicies': {'rgb': 0, 'left': 0, 'right': 0}} min required: 0.1

    new minimum: {'ts': 0.10017499999999657, 'indicies': {'rgb': 1, 'left': 1, 'right': 1}} min required: 0.1

    new minimum: {'ts': 0.10017499999999657, 'indicies': {'rgb': 0, 'left': 0, 'right': 0}} min required: 0.1

    new minimum: {'ts': 0.30305099999999996, 'indicies': {'rgb': 0, 'left': 0, 'right': 0}} min required: 0.1

    new minimum: {'ts': 0.3059590000000014, 'indicies': {'rgb': 0, 'left': 0, 'right': 0}} min required: 0.1

    new minimum: {'ts': 0.30886900000000495, 'indicies': {'rgb': 0, 'left': 0, 'right': 0}} min required: 0.1

    new minimum: {'ts': 0.21761300000000006, 'indicies': {'rgb': 3, 'left': 3, 'right': 3}} min required: 0.1

    new minimum: {'ts': 0.3117789999999978, 'indicies': {'rgb': 0, 'left': 0, 'right': 0}} min required: 0.1

    new minimum: {'ts': 0.21761300000000006, 'indicies': {'rgb': 2, 'left': 2, 'right': 2}} min required: 0.1

    new minimum: {'ts': 0.3146889999999978, 'indicies': {'rgb': 0, 'left': 0, 'right': 0}} min required: 0.1

    new minimum: {'ts': 0.21761300000000006, 'indicies': {'rgb': 1, 'left': 1, 'right': 1}} min required: 0.1

    new minimum: {'ts': 0.21761300000000006, 'indicies': {'rgb': 0, 'left': 0, 'right': 0}} min required: 0.1

    py: Capture failed, unable to sync images! Fix the argument minSyncTimestamp or (-mts). Set to: 0.1

    Images were unable to sync, threshold to high. Device closing with exception.

    • erik replied to this.

      Hi bob ,
      Perhaps it would be best to update the calibrate.py (somewhere here) to add HW syncing, which should resolve the timestamp syncing - both OV9282 and AR0234 support HW syncing (docs here). Thoughts?