Calibration Storage


  • I was wondering if there was a way to store calibration settings, for example if we have a wide array of objects we want to repeatedly scan of different sizes we would have to recalibrate the scanner for each object, despite knowing and having previously calibrated for a similar object.



  • Hi Davis,

    The scanner is factory calibrated, and works with a wide array of objects without recalibration. The calibration card that comes with the unit is used to calibrate the turntable and it's position relative to the scanner; So if you move the turntable, you will need to recalibrate for that position. 
    Please let me know if this is what you meant.


  • Thanks, Drew.

    So all of the calibration-related tasks in the API are strictly for calibrating the turntable? I tried using them but wasn't able to get any of them to work, but I'm relatively new to the websocket/JSON communication, so it could just be user error.

    If the calibration is strictly for the turntable, how to we ensure the scanner only captures an object on a table and not the entire table? With calibration it would make sense that you can eliminate the "floor" with the knowkledge of calibration card's orientation, but with only the factory calibration the scanner should just capture everything within its capture window, right?

    Thanks again for all your help.


  • Hi Davis,
    Can you share your code for getting a calibration working with me? I might be able to help debug what's going on. Just to give you some confidence in the machine, the API's are all the same api's that are used with the official software. So if the actual software is working, you can rest assured that the api's are working. So this might just be a small mistake in your code.

    A small correction to my previous reply: There is both a camera calibration and a turntable calibration end point in the API.

    The camera calibration is used for automation and integration clients that have changed the cameras position with respect to each other. Don't use this, as the factory calibration is far more precise and done by robotic arms.

    The turntable calibration on the other hand, is used for calibrating the turntable w.r.t the scanner at a specific focus length. 

    The pseduo code steps are:

    1) Set camera focus, exposure and gain

    https://matter-and-form.github.io/three-python-library/three/MF/V3/Tasks/SetCameras.html

    2) Call Turntable calibration (requires calibration card on the turntable, connected to the THREE, and visible to both cameras).

    https://matter-and-form.github.io/three-python-library/three/MF/V3/Tasks/CalibrateTurntable.html

    3) After a success, then call scan with the turntable object  (specifying steps and rotation amount) and the camera settings for the scan.

    https://matter-and-form.github.io/three-python-library/three/MF/V3/Settings/Scan.html

     

    You are correct about eliminating the floor. Scanning with the turntable will cut off any data points outside of an imaginary cylinder on the bed. So the points on the turntable itself and below will be cut off and discarded. This cylinder can be set with  

    Hopefully this helps a little.


  • Drew,

    Thank you, this helps a lot. We are currently trying to use the camera without the turntable, so I'll just leave the camera at factory defaults for now. 

    My only remaining question would be if there is a way to pseudo-calibrate without a turntable. Strictly to gain the benefit of the "cut off and discard" effect mentioned. Like a single capture of the calibration card on a fixed floor.

    If the card requires multiple angles to know the floor location (not just for the nice "auto allignment" when using the table), then I understand this wouldn't be possible.

    Thanks again!


Please login to reply this topic!