urbste / MultiCol-SLAM

This repository contains a multi-fisheye camera SLAM. The underlying SLAM system is based on ORB-SLAM.
604 stars 220 forks source link

multicamera calibration? #7

Closed antithing closed 7 years ago

antithing commented 7 years ago

Hi, can you explain the necessary calibration process for me please? I can calibrate each camera separately using the info and links you provide, but how should I get the extrinsics between cameras?

Do I need to do this, as I would with a stereo based system? Or do i just calibrate each camera separately?

Thank you again for the code! :)

urbste commented 7 years ago

Hi,

yes you need to calibrate the relative orientations between the cameras. I actually used a room full of calibration targets to do that. So I don't have an out-of-the-box algorithm for you.

There are a couple of toolboxes, to calibrate multi-camera systems, but I did not try any of them. For example MCPTAM, also a multi-camera extension to PTAM comes with code to calibrate the intrinsics and extrinsics of your camera rig: https://github.com/aharmat/mcptam. It actually uses the same camera model, so you should be fine.

If you calibrate the rig with any other tool that uses a different camera model, you'd have to exchange the cCamModelGeneral_ class with your own. Then, however, you also have to adapt the Jacobian calculations and so on.

Steffen

antithing commented 7 years ago

Thanks! I am on windows without ROS, but will try to get MCPTAM running, or get a linux install just for calibration. :) Thanks again for making your code available.

urbste commented 7 years ago

No problem. Sorry that I can not provide any working calibration code, that is easy to use. But that was not the focus of my research. I hope you can get it running. Cheers, Steffen

FreedomRings commented 7 years ago

@antithing - Did you ever get MCPTAM calibration running on Windows? Tips?

antithing commented 7 years ago

Hi there. i did not. It is heavily bound into a linux workspace. I did get a calibration working though, using this:

https://sites.google.com/site/prclibo/toolbox/doc

FreedomRings commented 7 years ago

@antithing - I had the same problem - I also used a MatLab function (not this one) which did not work well for multiple cameras. I am writing a C++ program Frankensteined from other projects and I am missing one element that is not in your solution either. Those stinking 3 Affine parameters: c, d, and e. I cannot figure out how to calculate them, or even if I need to. Your solution does not seem to create them either. I am soooooo befuddled and cannot seem to find any code to calibrate the Affine parameters.

Any insights would be really helpful!

dzy130120 commented 6 years ago

@antithing i have three fish-eye cameras whose directions differ from each other by 120°, is the toolbox ,https://sites.google.com/site/prclibo/toolbox/doc ,suitable for my cameras?