Machine Vision

cancel
Showing results for 
Search instead for 
Did you mean: 

calibration with mechanical positioning

I have a piston controlled with by a very precise actuator. 

The design involves moving the piston up to grab a part and moving back down to the field of view of the camera and measuring the height of the part that was just received.

The camera lens is focused on the center of the piston.

I'm new to Machine Vision, and I don't know how to calibrate something like this.

I have seen the examples in \examples\Vision\Calibration\

But all of those examples are based off of having a calibrated card/image to base measurements from.

 

Is it possible to create a calibration routine that involves moving the piston in fixed measured heights. I can move the piston in 1mm increments well within the tolerance of the actuator. 

I don't know how to apply this technique to the image calibration VI's that are seen in the  \examples\Vision\Calibration\ 

 

I also have the issue of depth. I would like the calibration to be based on the center of the piston. But as the piston moves up and down when lower you can see the top of the piston, and when it is higher you only see the edge of the top of the piston. 

I know the circumference of the piston. Is there a calibration operation that can apply offset by edge detection in 3D space?

 

When taking measurements of the part I intend the piston top to be centered of the camera vision. Where the top of the piston looks like a flat line.

 

Any ideas or suggestions where to begin investigating would be greatly appreciated.

At the moment I new to Vision, and don't really know where to start, or if this is possible.

 

How to calibrate camera with a fixed moving object?How to calibrate camera with a fixed moving object?

 

 

 


Engineering - The art of applied creativity  ~Theo Sutton
0 Kudos
Message 1 of 6
(2,663 Views)

Hi,

 

When you say calibration, do you mean you are trying to set up a coordinate system to detect the center of the piston? 

Are you only going to be analyzing parts when the piston's top is centered with the camera? 

T. Le
Vision Product Support Engineer
National Instruments
0 Kudos
Message 2 of 6
(2,621 Views)

I am only interested in measuring the height of the part on top of the piston. 

And yes, the piston top will be centered with the camera when taking measurements.

 

The parts being measured will be a small ball about 1.001 mm to maybe 2.001 mm max, It is important to get the most accurate measurements possible. We are using a high resolution /high end camera with square pixels.

I am assuming that there will be limited lens distortion in the center of the the camera view.

The diameter of the piston is know, It may be possible to use the diameter as a calibration option. 

 

All of the calibration examples that shipped with Machine vision relied upon a known calibrated image on a 2d plane.

Unfortunately the measurement is being taken in a space between the light and the camera.

 

I've thought about moving the piston finding the center of the piston, and then create a piece-wise calibration lookup table based on pixel row. 

But I would rather use the fancy calibration machine image VI's to do this work for me. 


When finished this will be a speed process. We are using high end NI industrial controllers with some hefty FPGA's on board. I'm not entirely sure what approach I should take with this.

 

I am open to any suggestions.

 

Regards,

 

 

measure height of ballmeasure height of ball

 

 

 

 


Engineering - The art of applied creativity  ~Theo Sutton
0 Kudos
Message 3 of 6
(2,613 Views)

Hi,

 

I might be missing something but what exactly are you trying to calibrate? Calibration in 2D is usually to convert measurements in software to real life units or correct distortion and perspective. In the 3D space, we do have stereo vision VIs but they are typically used when you have two cameras and are trying to compute depth. 

 

Are you worried about the location of the ball on the piston and that measurements might be different depending on how far the ball is from the camera or are you just trying to convert pixels into real life measurements? 

 

Sorry if I misunderstood the question!

T. Le
Vision Product Support Engineer
National Instruments
0 Kudos
Message 4 of 6
(2,594 Views)

Yes, I'm trying to convert pixels into real life measurements.

 

 

 

 


Engineering - The art of applied creativity  ~Theo Sutton
0 Kudos
Message 5 of 6
(2,591 Views)

Hi,

 

From my understanding of your application, it seems like all you need to do is measure the length of an object in pixel and give it a known real world measurement and use that data for your calibration. 

For example, if you know the length of your piston you could use the Caliper function to measure in pixel the length and associate it to the known real life distance. That way you can use that calibration information for the measurement of the height of the ball. 

 

I would recommend looking at the NI Calibration Training Interface for Point Distance Calibration to get a better idea of how to do that. The VI that will allow you to achieve this will be: IMAQ Learn Calibration Template VI.

 

I hope this helps!

T. Le
Vision Product Support Engineer
National Instruments
0 Kudos
Message 6 of 6
(2,581 Views)