
Background Knowledge:
Calibration for sensors is arguably the most important step you can take for making sense of data. This was without a doubt the hardest task we had at Mycionics, due to the complexity involved in a proper camera calibration. There are multiple types of camera calibrations, depending on your particular application a different calibration should be used. I will only go over the ones offered by OpenCV libraries.
Quick Run:
Now there are plenty of tutorials on how camera calibration can be performed, I will skip past that and focus on the different calibration boards themselves, and which ones should be used for which purpose.
Circles:

I have lumped regular circles with asymmetrical circles together under this field. This is a fairly popular technique due to the fact we do not need a measurement of the black circles. This lowers calculation error, and by certain authors been claimed to be a less biased calibration scheme. As it allows for more accurate identification, and less false positives.
Checkerboard:

We have progressed quite a bit in computer vision, to allow us to detect corners quite quickly. This form of calibration will give a pretty fast but typically inaccurate calibration. It is hard to determine also what the orientation of the checkerboard is, this is the biggest concern with the calibration process.
ArUco:

An attempt to fix the issue in the checkerboard pattern is to encode data, stating which number each of the individual squares is. Unfortunately this technique also lack precision, and ChArUco was designed to fix this.
ChArUco:

This is probably your best bet at a low error calibration. Combining the best of 2 worlds, the precision of checkerboard corner identification with location data. This allows you to determine current blind spots, and inform the calibrator to handle these blind spots.
Most Important Tidbits:
- Use ChArUco
- You can calculate error for single images and drop them from calibration
- Stereo Calibration has to be performed after intrinsic calibrations