Sadly it hasn't, though I'm down to only one epipolar error so that's progress I guess:

Reprojection error threshold -> 100
rgb Reprojection Error: 0.688267
1200
Reprojection error threshold -> 166.66666666666666
left Reprojection Error: 0.614719
1200
Reprojection error threshold -> 166.66666666666666
right Reprojection Error: 0.577443
['high epipolar error between right and rgb']
py: DONE.

I've uploaded the calibration images and board definition here: https://we.tl/t-5uGyFtsNkM
The command I ran was python calibrate.py -s 4 -ms 3.1 -brd FFC-3Pw -nx 22 -ny 16 -c 3 and this is from the ar0234x3 branch of DepthAI.

One thing I'm still unsure of which I suspect could have an impact is the HFOV value I'm using for the stereo cameras. They are the same as the centre with a 160deg lens instead of the 90 that the 0234 come with. I couldn't find a definition for the HFOV for these lenses but calculated it at 122deg, I'm not sure of my maths however as optics isn't my forte to say the least.

I'm out of ideas and kinda annoyed I can't get this working to be honest. If you've any advice, even suggestions for other lenses to try, I'd appreciate it. Heck, if I can just calibrate with the stereo cameras and ignore the centre could that be an option? I'm planning on using the colour stereo for SLAM and point cloud generation and the centre with narrower field for object detection. If I don't actually need the centre can we get rid of that as it's the RGB to right cam that's throwing the error?

I just ran the following to disable RGB and got the same error 🙁

python calibrate.py -s 4 -ms 3.1 -brd FFC-3Pw -nx 22 -ny 16 -c 3 -drgb -m process

Displaying Stereo Pair for visual inspection. Press the [ESC] key to exit.
1200
Reprojection error threshold -> 100
rgb Reprojection Error: 0.688267
1200
Reprojection error threshold -> 166.66666666666666
left Reprojection Error: 0.614719
1200
Reprojection error threshold -> 166.66666666666666
right Reprojection Error: 0.577443
['high epipolar error between right and rgb']
py: DONE.

Yes, I downloaded the file but didn't managed to take a close look, will get back on this soon, sorry for delay @kneave

    8 days later

    Hi @kneave sorry for delay, can you check if the lenses for both LEFT and RIGHT are the same? They look a bit different for me and this might affect calibration, could you try to get some better lighting? It was a bit dark in the pictures, maybe try to put the calib board on a wall and the room to be well light? As this way, the lights from above won't be reflected.

    Hi Daniel,

    They both came off the same camera model so should be the same. I finally found the specs for hfov and they're 120 rather than 122. Not sure if that 2deg difference is enough to cause a problem.

    Will check lighting when home too, thanks for the tips!

    Keegan

    2 months later

    Hi Folks, I had to take care of some other projects and I'm just picking this back up. Could I ask if the 3xar0234 branch is still the best one to follow for multi-cam calibration please? I see there has been a new release since I looked at this last and wanted to check there isn't some kind of new Easy Mode you've added! 😅

    • erik replied to this.

      Hi kneave ,
      For calibration, I believe the modular-calibration branch (PR here) would be the best to follow, as it will also be used for calibrating OAK-D-LR (which have 3x ar0234). Thoughts?
      Thanks, Erik

      I'll have a look, thanks. Just to complicate matters I've an oak-ffc-imx378 I'm hoping to use for the centre camera now. I've not been able to get it to be detected by the 3P yet which is annoying but it's been that long since I've looked at this I've likely forgotten a trick needed. That or the one USB cable I have that works reliably has gone AWOL 😅

        kneave is it the case that only FFC-IMX378 isn't being recognized, while other cameras are? If so, then it's not an USB issue. I would also suggest using latest depthai version.
        Thanks, Erik

          erik It's a bit random at the minute, it's sometimes saying no cameras detected but as it's getting that response it at least means it's connected to the 3P and able to get a response back. I'm currently printing a new enclosure, once I've got everything in place I'll do some more tests.

          Quick render of the new enclosure attached, it'll be 3d printed so not quite as shiny! You can see the centre camera hidden in the black separator between the eyes, I'm keen to make it look like he only has two as much as possible.

            Hi kneave ,
            Could you copy the full terminal log of cam_test script, please? If it doesn't work as expected we will send a replacement unit. The render looks dope!! Please let us know how it will turn out🙂
            Thanks, Erik

            Sure thing, does it matter which branch I run cam-test from or can I install the production libraries and run against them?

            Ok, I've done a lot of digging and should really be in bed but I may have stumbled upon something in this issues;
            https://github.com/luxonis/depthai-hardware/issues/292

            Current configuration is:
            Left: AR0234
            Centre: IMX378
            Right: AR0234

            I have a simple camera preview script which I've successfully used to focus the cameras in the past, it has this line that lists all the cameras:

            with dai.Device(pipeline) as device:
                print('Connected cameras: ', device.getConnectedCameras())

            First off, I ran this against the develop branch of depthai, making sure to run ./install_requirements.py:

            I then switch to the ar0234_x3 branch which is the only one I've been able to get the cameras working on in the past:

            This shows that the two AR0234 are detected, if I replace the center with the other AR0234 I have it is detected too and I'm able to preview from all three.

            This made me wonder about the IMX378 which led me to the issue I linked above. Taking a macro photo of the board it looks like it does indeed have the K28 power regulator on board and it also has all the pins connected, I'm starting to think I have one of the broken ones?

            Could I cut the problem pin and see if it works or having plugged it in would it have damaged it? I don't want to do any mods that may prevent a warranty claim but if all I need to so is cut that pin then it could be an easy win?

            • erik replied to this.

              Hi kneave ,
              Yes, you are right, you have the bad board - we apologize for the inconvenience. Full Errata here. We can either send a replacement, or you could try to fix it locally.
              Thanks, Erik

                Success! Kinda...

                If I run on the Main branch I can get cam_test to run and show the IMX378 camera but the two AR0234 cameras aren't detected. If I run on the ar0234x3 branch I can see all three cameras in my preview.py script however cam_test.py won't run as it doesn't recognise THE_1200_P as a valid resolution.

                I also tried the modular-calibration branch however I couldn't run install_requirements.py as it failed with the following error:
                ERROR: Could not find a version that satisfies the requirement depthai==2.19.1.0.dev+1eb01248fb7e994b51ceec91984bff46e0a5d5f2

                I suspect my combination of cameras is throwing things off slighting and that the IMX378 is supported on one branch and the AR0234 on another but not both together maybe? Either that or depthai_python just doesn't have an updated version of cam_test?

                I'm once again a little lost to be honest, if you know of a branch that has success with this camera combo could you point me towards it please?

                • erik replied to this.

                  Hi kneave ,
                  Looks like we didn't update requirements.txt. I just updated it on that branch (to 2.20.2), so it should work as expected - could you try again, please?
                  Thanks, Erik

                  Hi Eric,

                  To confirm, I'm now on the following branches for:
                  depthai: modular-calibration (Your commit 30 minutes ago)
                  depthai-python: main (for cam-test.py in utilities, latest commit)

                  I ran `install-requirements.py' from the root of depthai and the utilities folder of depthai-python.

                  When I run cam_test.py I only see the IMX378, it comes up in the preview window quite happily and the console reports this:

                  Enabled cameras:
                      rgb : color
                     left : color
                    right : color
                  DepthAI version: 2.20.2.0
                  DepthAI path: C:\Users\keegan\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\depthai.cp39-win_amd64.pyd
                  [184430105182410E00] [1.5] [0.865] [ColorCamera(6)] [error] Camera not detected on socket: 2
                  [184430105182410E00] [1.5] [0.866] [ColorCamera(4)] [error] Camera not detected on socket: 1
                  Connected cameras:
                   -socket RGB   : IMX378 4056 x 3040 focus:auto  - COLOR
                  USB speed: SUPER
                  IR drivers: []
                  Cam:      rgb           left          right    [host | capture timestamp]
                  FPS:  30.00| 30.00   0.00|  0.00   0.00|  0.00

                  If I switch to the ar0234x3 branch the cam_test.py script doesn't run as it looks as though there was a bit refactor that deprecated or changed a lot of the methods in depthai between then and 2.20.

                  It looks as though if I try and run with any version of depthai other than depthai==2.17.2.0.dev+211dc1c0a135d5615dba75ebf2098ba8cdc05cd0 it isn't able to see the AR0234 cameras. If I look at the depthai-python branch it looks as though ar0234x3 was never merged in to any other branch either.

                  I may be misreading the commit graph, I've been digging between branches for a while now and I've lost track, but is the AR0234 supported on either main or develop of depthai-python? To me it looks like it isn't and that it's only that old 2.17 branch that it's available in.